//var loadingImg = $('loading'); 
//function that switches visibility of loadingImg
function showLoad(show){
     if(show){
	 	$('loading').style.display = 'block';
	}else{
		$('loading').style.display = 'none';
} } 


function rawCookies() {
	alert(document.cookie);
}


function getstockrecord_OLD(aCatNo){
		var record = '';
		var handleResponse = function(response) {
			alert(response); 
		}
		var request = new Ajax('shop_getstockrecord.php',{postBody:eval("'" + "catno=" + aCatNo + "'"), onComplete: handleResponse}).request();
}




function ajaxloading(){
	vLoading = new Element('div', { 'id':'loading', 'class': 'data-loading'} ).inject(document.body);
	vLoading.innerHTML = ' Loading data...';
	vLoading.setStyle('top',window.getScrollTop());
	vLoading.setStyle('left',((window.getWidth()/2)+window.getScrollLeft()) - 50);
}




function getstockrecord(aCatNo) {
	var response = null;
	var vURL = 'shop_getstockrecord2.php';
	var vParam = 'catno=' + aCatNo;
	var xhr = new XHR({
		method: 'get',
		async: false,
		onRequest: function(){
			vLoading = new Element('div', { 'id':'loading', 'class': 'data-loading'} ).inject(document.body);
			vLoading.innerHTML = ' Loading data...';
			vLoading.setStyle('top',window.getScrollTop());
			vLoading.setStyle('left',((window.getWidth()/2)+window.getScrollLeft()) - 50);
		},
		onFailure: function () {
			$('loading').remove();
			return false;
		},
		onSuccess: function () {
			$('loading').remove();
		}
	}).send(vURL,vParam);
	return xhr.transport.responseText;
}



function ajaxerror(){
	return false;
}











function getcartcheck() {
	var response = null;
	var vURL = 'shop_cartcheck.php';
	var vParam = '';
	var xhr = new XHR({
		method: 'post',
		async: false
	}).send(vURL,vParam);
	return xhr.transport.responseText;
}







function changeCart(aCatNo,aType,aThis){
	
	if(aThis){
		aThis.value='Please Wait...';
		aThis.disabled=true;
		aThis.style.cursor='wait';
	}
	
	
	var vCookieName = 'cart_item_' + aCatNo;
	//WHAT ARE WE DOING ADDING OR REMOVING FROM CART?
	if(aType == '' || aType == undefined || aType == null) aType = 'inc';
	
	//CHECK FOR EXISTING COOKIE
	var vExistingCookie = readCookie(vCookieName);
	if(vExistingCookie != null){
		//SPLIT COOKIE DATA INTO AN ARRAY
		var vDataArray 		= vExistingCookie.split('$$');
		var vCatNo 			= vDataArray[0];
		var vQuantity 		= vDataArray[1];
		var vDesc 			= vDataArray[2];
		var vPrice 			= vDataArray[3];
		var vStock 			= vDataArray[4];
		var vWeight 		= vDataArray[5];
	

		//CHECK QUANTITY
		if(parseInt(vQuantity) == 1 && aType == 'dec'){
			eraseCookie(vCookieName);
		}else
		
		if(parseInt(vQuantity) > 0){
			var vNewQuantity = 0;
			
			if(parseInt(vQuantity) == parseInt(vStock) && aType == 'inc'){
				vNewQuantity = parseInt(vStock);
			}else{
				if(parseInt(vQuantity) == 3 && aType == 'inc'){
					vNewQuantity = 3;
				}else{
					if(aType == 'inc'){
						vNewQuantity = parseInt(vQuantity)+1;
					}else{
						vNewQuantity = parseInt(vQuantity)-1;
					}
				}
			}
		var vNewData = vCatNo + '$$' + vNewQuantity + '$$' + vDesc + '$$' + vPrice + '$$' + vStock + '$$' + vWeight;
		createCookie(vCookieName,vNewData,7);
		}
	}else{  //NEW ADDITION TO CART
		// AJAX TO GET STOCK RECORD
		var vNewRecord = getstockrecord(aCatNo);
		if(vNewRecord != ''){
			createCookie(vCookieName,vNewRecord,7);
		}else{
			//ERROR A CATNO DOS NOT EXIST FOR AN ITEM ON THE PAGE
		}
	}
	

	if(aThis){
		aThis.value='ADD TO CART';
		aThis.disabled=false;
		aThis.style.cursor='pointer';
	}
	
	loadcart();
	return false;
}


















function loadcart(){
	
/* 
 * THIS FUNCTION LOADS THE COOKIES INTO THE SHOPING CART FOR DISPLAY PURPOSES
 * AND IT ALLOWS IN PLACE EDITING OF CART QUANTITIES - DOES NOT SHOW WEIGHTS
 */	

var aTarget = "cart_content";


	if(document.cookie){
	var vCartItems = '';
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		if(c.indexOf('cart_item_') >= 0){
			c = c.substring(c.indexOf('=')+1,c.length)
			var vData = c.split('$$');
			vCartItems += buildCartItem(vData,'shop');
		}
	}
	
	if(vCartItems != ""){
	
	var vCartItemsHeader = '';
	vCartItemsHeader += "<thead><tr>";
	vCartItemsHeader += "<td>Item</td>";
	vCartItemsHeader += "<td>Description</td>";
	vCartItemsHeader += "<td>Qty</td>";
	vCartItemsHeader += "<td class='qtybuttoncol'></td>";
	vCartItemsHeader += "<td>Price</td>";
	vCartItemsHeader += "<td>Total</td></thead>";
	
	vCartItems = "<table class='cartitems'>" + vCartItemsHeader + vCartItems + "<tr></tr>" + "</table>";
	$(aTarget).innerHTML = vCartItems;

	//CALCULATE ITEM COUNT
	var vOrderItemCount = 0;
	$$('.itemquantity').each(function(el){
		vOrderItemCount += parseFloat(el.firstChild.nodeValue);
	});

	//CALCULATE COST SUB TOTAL
	var vOrderSubTotal = 0;
	$$('.itemtotal').each(function(el){
		vOrderSubTotal += parseFloat(el.firstChild.nodeValue);
	});
	
	//CALCULATE VAT and TOTAL
	//var vOrderTax = ((vOrderSubTotal)* 0.175);
	var vOrderTax = ((vOrderSubTotal)* 0);
	var vOrderTotal = vOrderSubTotal + vOrderTax;
	
	//DISPLAY TOTALS
	var vTotalTable = "<table class='totaltable'>";
	vTotalTable += "<tr><td class='subtotal'>Sub Total</td><td class='subtotal'>" + vOrderSubTotal.toFixed(2) + "</td></tr>";
	vTotalTable += "<tr><td class='subtotal'>Tax</td><td class='subtotal'>" + vOrderTax.toFixed(2) + "</td></tr>";
	vTotalTable += "<tr><td class='subtotal'>Total (without shipping)</td><td class='subtotal'>" + vOrderTotal.toFixed(2) + "</td></tr>";
	vTotalTable += "</table>"; 
	
	//DISPLAY BUTTONS
	var vAdminButtons = "<div id='cartadmin'>";
	vAdminButtons += "<input type='button' class='button adminbutton' onclick='goto_Checkout()' value='CHECKOUT' />";
	vAdminButtons += "<input type='button' class='button adminbutton' onclick='eraseAllCookies(); loadcart();' value='Clear My Cart' />";
	vAdminButtons += "</td></tr>";
	vAdminButtons += "<p>Please Note: All prices now include UK sales tax.</p>";
	vAdminButtons += "</div>";
	
	vCartHTML = vCartItems + vTotalTable + vAdminButtons;
	
	}else{
		vCartHTML = "<p class='cartempty'>" + "shopping cart empty" + "</p>"; 
	}	
	}else{
		vCartHTML = "<p class='cartempty'>" + "shopping cart empty" + "</p>"; 
	}
	$(aTarget).innerHTML = vCartHTML;
	return false;
}


















function getshippingrecord(aRegion, aCode) {
	var response = null;
	var vURL = 'shop_getshippingrecord2.php';
	var vParam = 'region=' + aRegion + '&code=' +aCode;
	var xhr = new XHR({
		method: 'get',
		async: false,
		onRequest: function(){
			vLoading = new Element('div', { 'id':'loading', 'class': 'data-loading'} ).inject(document.body);
			vLoading.innerHTML = ' Loading data...';
			vLoading.setStyle('top',window.getScrollTop());
			vLoading.setStyle('left',((window.getWidth()/2)+window.getScrollLeft()) - 50);
		},
		onFailure: function () {
			$('loading').remove();
			return false;
		},
		onSuccess: function () {
			$('loading').remove();
		}
	}).send(vURL,vParam);
	return xhr.transport.responseText;
}




function setRegion(a,b){
	a.style.cursor='wait';
	createCookie("cart_region",a.value,7);
	createCookie("cart_shippingcode",b,7);
	var vNewRecord	= getshippingrecord(a.value,b);
	
	
	
	//alert(vNewRecord);
	
	
	
	vNewRecord 		= vNewRecord.split("$$");
	createCookie("cart_shippinghandling",vNewRecord[0],7);
	createCookie("cart_shippingcost",vNewRecord[1],7);
	createCookie("cart_shippingdesc",vNewRecord[2],7);
	loadcart_checkout();
	a.style.cursor='pointer';
}









function loadcart_checkout(){
	
/* 
 * THIS FUNCTION LOADS THE COOKIES INTO THE SHOPING CART
 * FOR CHECKOUT PURPOSES CHANGING QUANTITIES HAS BEEN REMOVED
 */	

var aTarget = "cart_content";


	if(document.cookie){
	var vCartItems = '';
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		if(c.indexOf('cart_item_') >= 0){
			c = c.substring(c.indexOf('=')+1,c.length)
			var vData = c.split('$$');
			vCartItems += buildCartItem(vData,'checkout');
		}
	}
	
	
	if(vCartItems != ""){
	
	var vCartItemsHeader = '';
	vCartItemsHeader += "<thead><tr>";
	vCartItemsHeader += "<td>Item</td>";
	vCartItemsHeader += "<td>Description</td>";
	vCartItemsHeader += "<td>Qty</td>";
	vCartItemsHeader += "<td class='qtybuttoncol'></td>";
	vCartItemsHeader += "<td>Item Price</td>";
	vCartItemsHeader += "<td>Item Weight</td>";
	vCartItemsHeader += "<td>Weight Total</td>";	
	vCartItemsHeader += "<td>Price Total</td></thead>";
	
	vCartItems = "<table class='cartitems'>" + vCartItemsHeader + vCartItems + "<tr></tr>" + "</table>";
	$(aTarget).innerHTML = vCartItems;

	//CALCULATE ITEM COUNT
	var vOrderItemCount = 0;
	$$('.itemquantity').each(function(el){
		vOrderItemCount += parseFloat(el.firstChild.nodeValue);
	});


	//CALCULATE COST SUB TOTAL
	var vOrderSubTotal = 0;
	$$('.itemtotal').each(function(el){
		vOrderSubTotal += parseFloat(el.firstChild.nodeValue);
	});
	

	//CALCULATE WEIGHT SUB TOTAL
	var vWeightSubTotal = 0;
	$$('.weighttotal').each(function(el){
		vWeightSubTotal += parseInt(el.firstChild.nodeValue);
	});
	
	//ADD PACKAGING WEIGHT
	vWeightSubTotal = vWeightSubTotal + 150;
	
	
	//CALULATE WEIGHT BANDS
	var vWeightBand = 0;
	var x = vWeightSubTotal;
	var y = vOrderSubTotal;
	if (y < 46) {
		if (x < 500) {
			vWeightBand = "A1";
		}
		else if (x < 1000) {
				vWeightBand = "A2";
		}
		else if (x < 1500) {
				vWeightBand = "A3";
		}
		else if (x < 2000) {
			vWeightBand = "A4";
		}
		else if (x >= 2000) {
			vWeightBand = "A5";
		}
	}else if(y > 45){
		if (x < 500) {
			vWeightBand = "B1";
		}
		else if (x < 1000) {
				vWeightBand = "B2";
		}
		else if (x < 1500) {
				vWeightBand = "B3";
		}
		else if (x < 2000) {
			vWeightBand = "B4";
		}
		else if (x >= 2000) {
			vWeightBand = "B5";
		}
	}

	//GET REGION
	var vOrderRegion = '';
	var vShippingDesc = '';
	var vShippingHandling = 0;
	var vShippingCost = 0;
	var vShippingCostTotal = 0;
	var vShippingTotal = 0;
	
	var vUKChecked		= '';
	var vEuropeChecked	= '';
	var vUSAChecked 	= '';
	var vWorldChecked	= '';
	
	

	/*
	 * GET SHIPPING COSTS PER REGION
	 * FOR FIRST AND ADDITIONAL ITEMS
	 * READ FROM COOKIE SET IN ACTION IN SetRegion()
	 */
	
	var vRegionCookie = readCookie('cart_region');
	if(vRegionCookie != null){
		vOrderRegion = vRegionCookie.substring(vRegionCookie.indexOf('=')+1,vRegionCookie.length);

		var vCookie = readCookie('cart_shippingcode');
		if(vCookie != null){
			vShippingCode 	= vCookie.substring(vCookie.indexOf('=')+1,vCookie.length);
		}

		var vCookie = readCookie('cart_shippinghandling');
		if(vCookie != null){
			vShippingHandling 	= parseFloat(vCookie.substring(vCookie.indexOf('=')+1,vCookie.length));
		}
		
		var vCookie = readCookie('cart_shippingcost');
		if(vCookie != null){
			vShippingCost = parseFloat(vCookie.substring(vCookie.indexOf('=')+1,vCookie.length));
		}

		var vCookie = readCookie('cart_shippingdesc');
		if(vCookie != null){
			vShippingDesc = vCookie.substring(vCookie.indexOf('=')+1,vCookie.length);
		}


		//PRE CHECK REGION SELECTION
		
		if(vOrderRegion == 'uk'){
			vUKChecked = " checked='checked'";
		}else if(vOrderRegion == 'europe'){
			vEuropeChecked = " checked='checked'";
		}else if(vOrderRegion == 'usa'){
			vUSAChecked = " checked='checked'";
		}else if(vOrderRegion == 'world'){
			vWorldChecked = " checked='checked'";
		}
		
	}
	
	if(vOrderItemCount == 0){
		vShippingTotal = 0;
	}else{
		//var vShippingCostTotal = (vOrderItemCount-1) * vShippingCost;
		var vShippingCostTotal = vShippingCost;
		vShippingTotal = vShippingHandling + vShippingCostTotal;
	}






	//var vOrderTax = ((vOrderSubTotal)* 0.175);
	var vOrderTax = ((vOrderSubTotal)* 0);
	var vOrderTotal = vOrderSubTotal + vShippingTotal + vOrderTax;
	
	var vTotalTable = "<table class='totaltable'>";
	vTotalTable += "<tr><td class='subsubtotal'>Sub Total</td><td class='subsubtotal'>" + vOrderSubTotal.toFixed(2) + "</td></tr>";


	

	//DISPLAY WEIGHT TOTAL
	//vTotalTable += "<tr><td class='subsubtotal'>Weight Sub Total</td><td class='subsubtotal'>" + vWeightSubTotal + "g</td></tr>";


	//DISPLAY WEIGHT BAND
	vTotalTable += "<tr><td>Weight Band</td><td>" + vWeightBand + "</td></tr>";
	

		
	
	
	
	vTotalTable += "<tr><td>Shipping Region</td><td>";

	//RADIO BUTTON REGION OPTIONS
	vTotalTable += "<table class='region'>";
	vTotalTable += "<tr><td>";
	vTotalTable += "<input type='radio' name='shipping_region' id='shipping_region' value='uk'" + vUKChecked + " onclick='setRegion(this, \"" + vWeightBand + "\")'>UK<br/>";
	vTotalTable += "<input type='radio' name='shipping_region' id='shipping_region' value='europe'" + vEuropeChecked + " onclick='setRegion(this, \"" + vWeightBand + "\")'>Europe<br/>";
	vTotalTable += "<input type='radio' name='shipping_region' id='shipping_region' value='world'" + vWorldChecked + " onclick='setRegion(this, \"" + vWeightBand + "\")'>Rest of World<br/>";
	vTotalTable += "</td></tr>";
	
	//DISPLAY WEIGHT DESCRIPTION
	vTotalTable += "<tr><td>Weight Band: " + vWeightBand + " " + vShippingDesc + "</td></tr>";
	vTotalTable += "</table>";





	vTotalTable += "</td></tr>";
	vTotalTable += "<tr><td class='shipping'>Packaging and Handling</td><td class='shippingfirst'>" + vShippingHandling.toFixed(2) + "</td></tr>";
	vTotalTable += "<tr><td class='shipping'>Shipping (based on weight band " + vWeightBand + ")</td><td class='shippingadditional'>" + vShippingCostTotal.toFixed(2) + "</td></tr>";
	vTotalTable += "<tr><td class='shippingtotal'>Shipping Total</td><td class='shippingtotal'>" + vShippingTotal.toFixed(2) + "</td></tr>";
	vTotalTable += "<tr><td class='taxpayable'>Tax</td><td class='taxpayable'>" + vOrderTax.toFixed(2) + "</td></tr>";
	vTotalTable += "<tr><td class='totalpayable'>Total Payable</td><td class='totalpayable'>" + vOrderTotal.toFixed(2) + "</td></tr>";
	vTotalTable += "</table>"; 
	
	
	
	
	
	
	
	var vAdminButtons = "<div id='cartadmin'>";
	vAdminButtons += "<input type='button' class='button adminbutton' onclick='confirmPay(this)' value='Pay with PAYPAL' />";
	vAdminButtons += "<input type='button' class='button adminbutton' onclick='history.go(-1)' value='Back to Shop' />";
	//vAdminButtons += "<input type='button' class='button' onclick='rawCookies(); loadcart();' value='ADMIN: Display Raw Cookies' />";
	vAdminButtons += "<p>When you click the Pay with PayPal button you will have <b>30 minutes</b> to pay for your reserved order.</p>";
	vAdminButtons += "<p>Unpaid orders will be deleted and items returned to stock.</p>";
	vAdminButtons += "</div>";
	
	
	vCartHTML = vCartItems + vTotalTable + vAdminButtons;
	
	
	}else{
		vCartHTML = "<p class='cartempty'>" + "shopping cart empty" + "</p>"; 
	}	
	}else{
		vCartHTML = "<p class='cartempty'>" + "shopping cart empty" + "</p>"; 
	}
	$(aTarget).innerHTML = vCartHTML;
	return false;
	
	
}





















function buildCartItem(aData, aCheckout){
	
	if (aCheckout == 'checkout') {
		aCheckout = true;
	}else{aCheckout = false;}
	var vCatNo			= aData[0].toUpperCase();
	var vQuantity		= aData[1];
	var vDesc			= aData[2];
	var vPrice			= parseFloat(aData[3]);
	var vStock			= aData[4];
	var vTotal			= (vPrice* parseInt(vQuantity)).toFixed(2);
	var vWeight			= parseInt(aData[5]);
	var vWeightTotal	= (vWeight* parseInt(vQuantity));
	
	var vCartItem		= '';
	var vQuantityDown	= '';
	var vQuantityUp		= '';
	
	
	if (!aCheckout) {
		if (parseInt(vQuantity) == 1) {
			vQuantityDown = "<input type='button' class='button addcart' value='-' onclick='changeCart(\"" + aData[0] + "\",\"dec\")'>";
		}
		else {
			vQuantityDown = "<input type='button' class='button addcart' value='-' onclick='changeCart(\"" + aData[0] + "\",\"dec\")'>";
		}
		
		if (parseInt(vQuantity) == parseInt(vStock)) {
			vQuantityUp = "";
		}
		else {
		
			if (parseInt(vQuantity) == 3) {
				vQuantityUp = "";
			}
			else {
				vQuantityUp = "<input type='button' class='button addcart' value='+' onclick='changeCart(\"" + aData[0] + "\")'>";
			}
		}
		
	}
	
	vCartItem += "<tr><td>" + vCatNo + "</td>";
	vCartItem += "<td>" + vDesc + '</td>';
	vCartItem += "<td class='itemquantity'>" + vQuantity + "</td>";
	vCartItem += "<td class='itemquantitychange'>" + vQuantityUp + vQuantityDown + "</td>";
	vCartItem += "<td>" + vPrice.toFixed(2) + "</td>";
	
	if (aCheckout) {
		vCartItem += "<td>" + vWeight + "</td>";
		vCartItem += "<td class='weighttotal'>" + vWeightTotal + "</td>";
	}
	
	vCartItem += "<td class='itemtotal'>" + vTotal + "</td></tr>";
	vCartItem += "<tr>";
	return vCartItem;
}











function goto_Checkout(){
	//MOOdalBox.open("shop_checkout.php", "Please select your shipping and press PAY to continue with your order.",	"800 600");
	location.href="shop_checkout.php";
}


function confirmPay(aThis){
        var vAnswer = confirm("CHECKOUT. You are about to be redirected to PayPal to pay for your order.\n\nAre you sure you wish to proceed.\n\nClick OK to continue.");

        if(vAnswer){
                validate_cart(aThis);
        }else{
                alert("Action cancelled");
        }
        return false;
} 


function validate_cart(aThis){
	var vChecked = 0;
	$$('input[type="radio"]').each(function(r) {
		if (r.id == 'shipping_region' && r.checked == true) vChecked = 1;
	});
	
	if(vChecked == 0){
		//$$('.region').setStyle('background', 'red');
		alert("You MUST select your appropriate shipping region.")
	}else{
		//MOOdalBox.open("shop_cartcheck.php", "Processing and verifying your shopping cart...",	"800 300");
		aThis.value="PLEASE WAIT";
		//aThis.disabled=true;
		//aThis.addClass('inactive');
		//alert("checkout");
		location.href="shop_cartcheck.php";
	}
}

function shipping_init(){
	//$$('input[type="radio"]').each(function(r) {
	//	if (r.id == 'shipping_region') r.checked = false;
	//});
	eraseCookie('cart_region');
	eraseCookie('cart_shippingcode');
	eraseCookie('cart_shippinghandling');
	eraseCookie('cart_shippingcost');
	eraseCookie('cart_shippingdesc');
}

