	var coords;
	var product_selected;
	var product_id;
	var product_qty;
	var product_available;
	
	dojo.addOnLoad(function(){
		dojo.query("IMG.btn_addtocart").forEach(function(node){
			dojo.connect(node, "onclick", function(){
				submitForm(node);
			});
		});
		
		coords = dojo.coords("ShoppingCart", true);
		dojo.style("shopping_cart_ajax", {
			"left": coords.x + 'px',
			"top": (coords.y + coords.h) + 'px'
		});
	});
	
	function submitForm(node){
		product_selected = node;
		product_id = parseInt(dojo.attr(product_selected, "product_id"));
		product_qty = dojo.byId("qty_" + product_id).value;
		product_available = parseInt(dojo.attr(product_selected, "product_qty"));
    // submit the form in the background
	
		if(!check_qty()) return; // Check whether products enough
		
		dojo.style("shipping_loading_bg", {
			"width": (coords.w + 50) + 'px',
			"height": coords.h + 'px',
			"left": coords.x + 'px',
			"top": coords.y + 'px',
			"display": "block"
        });
		dojo.style("shipping_loading", {
			"left": (coords.x + coords.w/2) + 'px',
			"top": (coords.y + coords.h/2 - 20) + 'px',
			"display": "block"
        });
		
    	dojo.xhrPost({
        	url: "/index.php?action=add_product_ajax",
			postData: "products_id=" + product_id + "&amount=" + product_qty,
			handleAs: "text",
			load: function(data){
				update_cart();
				dojo.style("shipping_loading_bg", "display", "none");
				dojo.style("shipping_loading", "display", "none");
				//console.log("Data Recieved: " + data);
			},
			error: function (error) {
				console.error ('Error: ', error);
			}
		});
		return false;
	}
	
	function update_cart(){
   		dojo.xhrGet({
       		url: "/ajax_update_cart.php",
			handleAs: "json",
			content: { products_id: product_id, qty: product_qty },
			load: function(data){
				/*
				dojo.query("TD.shoppingcartbox_bg").forEach(function(node){
					node.innerHTML = data;
				});
				*/
				dojo.byId("cart_qty").innerHTML = data.cart_total_amount + " Items";
				dojo.byId("cart_cost").innerHTML = data.cart_total_cost;
				dojo.byId("ajax_product_name").innerHTML = data.product_name;
				dojo.byId("ajax_product_qty").innerHTML = product_qty;
				dojo.byId("ajax_product_cost").innerHTML = data.product_price;
				dojo.byId("ajax_cart_total_qty").innerHTML = data.cart_total_amount;
				dojo.byId("ajax_cart_total_cost").innerHTML = data.cart_total_cost;
				dojo.byId("ajax_product_img").src = data.product_image;
				
				dojo.fx.wipeIn({node: "shopping_cart_ajax", duration: 500}).play();
			},
			error: function (error) {
				console.error ('Error: ', error);
			}
		});
	}
	
	function shopping_cart_ajax_close(){
		dojo.fx.wipeOut({node: "shopping_cart_ajax", duration: 500}).play();
	}

	function check_qty(){
		var error;
		error = "We apologize, but you are not able to order this amount of product.\n";
		error += "Maximum amount you can order is " + product_available + ".\n";
		error += "Our stock will added in a short time.";
		
		if(product_qty > product_available){
			alert(error);
			return false;
		}else{
			return true;
		}
	}