function resetStoreLoader(id) {
	var loaderDIV = dojo.byId(id);
	loaderDIV.style.height = '0px';
	loaderDIV.style.width = '0px';
	loaderDIV.style.display = 'none';
}
function addToCart(id, abs) {
	var wrapper = dojo.byId('cartContents');
	var cartDIV = dojo.byId('cartLoader');
	cartDIV.style.height = wrapper.offsetHeight + 'px';
	cartDIV.style.width = wrapper.offsetWidth + 'px';
	cartDIV.style.display = 'block';

    dojo.xhrPost({
	    url: 'do/store.php?' + icmsID + 'action=addToCart&abs=' + abs, 
		handleAs: "json-comment-filtered",
		load: function(response) {
				if (response.status == 'success') {
					redrawCart();
					if (dojo.byId('cartQtyDisplay[' + id + ']')) {
						if (response.newQty > 0) {
							var node = dojo.byId('cartQtyDisplay[' + response.id + ']');
							dojo.style(node, 'display', 'block');
							node.innerHTML = response.newQty + " in cart";
						}
					} else {
						dojo.byId('cartTotals').innerHTML = response.cartTotal;
						dojo.byId('newPrice[' + id + ']').innerHTML = response.newPrice;
						dojo.byId('totalPrice[' + id + ']').innerHTML = response.totalPrice;
						dojo.byId('cartQty[' + id + ']').value = response.newQty;
					}
				} else {
					alert('There was an error adding to your cart. Please try again.\n' + response.content);
					setTimeout("resetStoreLoader('cartLoader')", 200);
				}
			},
       	error: 	function(error,args){
					alert('I\'m sorry, something happened when we tried to add to the cart. Please try again.' + "\n" + 'Error code SAC-002.' + "\n" + error);
				},
		form: 'cartAdd[' + id + ']'
   });
}
function displayLargeImage() {
	var node = dojo.byId('productImageLarge');
	dojo.fx.wipeIn({ node: (node), duration:300 }).play();
}
function hideLargeImage() {
	var node = dojo.byId('productImageLarge');
	dojo.fx.wipeOut({ node: (node), delay:200, duration:300 }).play();
}
function removeFromCart(prod) {
	var wrapper = dojo.byId('cartContents');
	var cartDIV = dojo.byId('cartLoader');
	cartDIV.style.height = wrapper.offsetHeight + 'px';
	cartDIV.style.width = wrapper.offsetWidth + 'px';
	cartDIV.style.display = 'block';

    dojo.xhrGet({
	    url: 'do/store.php?' + icmsID + 'action=removeFromCart&prodID=' + prod, 
		handleAs: "json-comment-filtered",
		load: function(response) {
				if (response.status == 'success') {
					fadeOutNode('cart[' + prod + ']');
					redrawCart();
					redrawTotals();
					setTimeout("emptyNode('cart[" + prod + "]')", 2000);
				}
			},
       	error: 	function(error,args){
					alert('I\'m sorry, something happened when I processed the request. Please try again.' + "\n" + 'Error code SAC-007.' + "\n" + error);
				}
   });
}
function emptyNode(node) {
	var myNode = dojo.byId(node);
	myNode.innerHTML = '';
}
function fadeOutNode(node) {
	var animNode = dojo.byId(node);
	dojo.fadeOut({
		node: (animNode),
		delay:200,
		duration:500,
		properties:{
					height: { end: 0, unit:"px" },
					padding: { end: 0, unit:"px" },
					margin: { end: 0, unit:"px" },
					opacity: { end: 0 },
					border: { end: 0, unit: "px"}
					}
	}).play();
}

function redrawCart() {
	var node = dojo.byId('cartContentsInner');
    dojo.xhrGet({
	    url: 'do/store.php?' + icmsID + 'action=reDrawCart', 
		handleAs: "json-comment-filtered",
		load: function(response) {
				if (response.status == 'success') {
					node.innerHTML = response.content;
				}
				setTimeout("resetStoreLoader('cartLoader')", 500);
			},
       	error: 	function(error,args){
					alert('I\'m sorry, something happened when I processed the request. Please try again.' + "\n" + 'Error code SAC-004.' + "\n" + error);
					resetStoreLoader('cartLoader');
				}
   });
}
function redrawTotals() {
	var node = dojo.byId('cartTotals');
    dojo.xhrGet({
	    url: 'do/store.php?' + icmsID + 'action=reDrawTotals', 
		handleAs: "json-comment-filtered",
		load: function(response) {
				if (response.status == 'success') {
					node.innerHTML = response.content;
				}
			},
       	error: 	function(error,args){
					alert('I\'m sorry, something happened when I processed the request. Please try again.' + "\n" + 'Error code SAC-009.' + "\n" + error);
				}
   });
}
function updateCDSD() {
	var node = dojo.byId('cDSDSelect');
	if (node.value == '0') {
		hideMe('cDSD');
	} else {
		showMe('cDSD');
	}
}

function scrollToTop() {
	scroll(0,0);
	return true;
}
function retreiveShippingQuote(weight) {
	var node = dojo.byId('cDSDSelect');
	if (node.value == 'same') {		// get postcode data from billing address
		var postcode = dojo.byId('billing_postcode').value;
	} else {
		var postcode = dojo.byId('shipping_postcode').value;
	}
	if (postcode.length == 4) {
		var shipNode = dojo.byId('shippingQuotes');
	    dojo.xhrGet({
		    url: 'do/store.php?' + icmsID + 'action=quoteShipping&w=' + weight + '&d=' + postcode, 
			handleAs: "json-comment-filtered",
			load: function(response) {
					if (response.status == 'success') {
						shipNode.innerHTML = response.content;
					} else {
						shipNode.innerHTML = 'Unable to calculate shipping options. Please re-enter your postcode. If the problem persists, please contact us.';
					}
				},
	       	error: 	function(error,args){
						alert('I\'m sorry, something happened when I processed the request. Please try again.' + "\n" + 'Error code SAC-009.' + "\n" + error);
					}
	   });

	} else {
		return false;
	}
}

function processCheckout() {
	scrollToTop();

	var loaderDIVLocator = dojo.byId("bodyLoader");
	var loaderDIV = dojo.byId("checkoutLoader");
		loaderDIV.style.height = loaderDIVLocator.offsetHeight + 'px'; loaderDIV.style.width = loaderDIVLocator.offsetWidth + 'px'; loaderDIV.style.display = 'block';

	dojo.xhrPost({
	    url: 'do/store.php?' + icmsID + 'action=processCheckout', 
		handleAs: "json-comment-filtered",
		load: function(response){
				if (response.status == 'success') {
					if (response.complete == true) {
						for (i=0; i<response.visibilityUpdates.length; i++) { // reset all the content
							if (dojo.byId(response.visibilityUpdates[i].id)) var contentNode = dojo.byId(response.visibilityUpdates[i].id);
							contentNode.style.visibility = response.visibilityUpdates[i].display;
						}
						var node = dojo.byId('mainBody');
						node.innerHTML = response.content;
						redrawCart();	// get reset cart values
					} else {	// not complete
						for (i=0; i<response.visibilityUpdates.length; i++) { 
							var contentNode = dojo.byId(response.visibilityUpdates[i].id);
							if (contentNode) contentNode.style.visibility = response.visibilityUpdates[i].display;
						}
					}
				} else { 
					alert('I\'m sorry, something happened when I processed the request. Please try again.' + "\n" + 'Error code SAC-010.' + "\n" + error);
				}
				setTimeout("resetStoreLoader('checkoutLoader');", 500);
			},
       	error: 	function(error,args){
					alert('I\'m sorry, something happened when I processed the request. Please try again.' + "\n" + 'Error code SAC-011.' + "\n" + error + response);
					setTimeout("resetStoreLoader('checkoutLoader');", 500);
				},
        form: "checkoutData"
	});
}
function updateShipping() {
    dojo.xhrPost({
	    url: 'do/store.php?' + icmsID + 'action=reDrawTotals', 
		handleAs: "json-comment-filtered",
		load: function(response) {
				if (response.status == 'success') {
					node.innerHTML = response.content;
				}
			},
       	error: 	function(error,args){
					alert('I\'m sorry, something happened when I processed the request. Please try again.' + "\n" + 'Error code SAC-009.' + "\n" + error);
				},
		form: ''
   });

}
function showMe(myID) {
	var node = dojo.byId(myID);
	dojo.style(node, 'display', 'block');
}
function hideMe(myID) {
	var node = dojo.byId(myID);
	dojo.style(node, 'display', 'none');
}
