var Cart = Class.create({
	  
	defaultOptions : {
	},
	  
	initialize: function(options) 
	{
		this.options = Object.extend(Object.extend({ }, this.defaultOptions), options || { });
		this.install_events();
	},
	  
	install_events: function(event)
	{
		obj = this;
		
		$$('form.action_cart_add_product').each(function(form) 
		{
			form.observe('submit', obj.add_product_to_cart.bindAsEventListener(obj));
		});
	},
	
	recount_submit_quantity: function(event)
	{
		
	},

	add_product_to_cart: function(event)
	{
		obj = this;
		event.stop();
		form = event.element();
		
	    // jest ok, wystawiamy wiadomość o wysyłaniu wiadomości
	    obj.message = new Api_message2();
	    obj.message.set_message('Dodaje produkt do koszyka...<br/>/Adding a product to the cart');
	    obj.message.show();
	    
		form.request(
		{
			onSuccess:  function(transport)
			{
				status = transport.headerJSON.status; 
				if(status == 'ERROR' || status == 'WARNING') {
					obj.message.set_message(transport.headerJSON.message);
					obj.message.show_cancel();
				}
				else {
					obj.message.set_message(transport.headerJSON.message);
					obj.message.auto_hide(5);
					obj.message.show_cancel();

					overall = $('cart_overall_gross_price');
					if(overall) {
						price = new Number(transport.headerJSON.cart_summary.overall_gross_price).toFixed(2);
						overall.update(price);
					}
					
//					new Ajax.Request('/index.php/site/cart/summary',
//					{	
//						method:     'get',
//						onSuccess:  function(transport)
//						{
//							overall = $('cart_overall_gross_price');
//							if(overall) {
//								price = new Number(transport.headerJSON.cart_summary.overall_gross_price_with_delivery).toFixed(2);
//								overall.update(price);
//							}
//						}
//					});
					
				}
			}
		});    
	}

});

document.observe("dom:loaded", function() {
    new Cart();
});

function isNumeric(sText)
{
	var ValidChars = "0123456789";
	var IsNumber=true;
	var Char;
	for(i = 0; i < sText.length && IsNumber == true; i++) { 
		Char = sText.charAt(i); 
		if(ValidChars.indexOf(Char) == -1) {
			IsNumber = false;
		}
	}
	return IsNumber;
}

function setProductBoxQuantity(product_id, package_quantity) 
{
	if(!isNumeric(package_quantity) || package_quantity == 0) package_quantity = 1; 
	if(isNumeric($F('prod' + product_id + '_quantity'))) {
		$('prod' + product_id + '_box_quantity').value = $F('prod' + product_id + '_quantity') * package_quantity;
	} else { 
		$('prod' + product_id + '_quantity').value = '1'; 
	}
}

