	var oXmlHttp;
	var allowQuickAdd = true;
	
	function quickAddItem()
	{
		if (allowQuickAdd == false)
			return false;
		
		allowQuickAdd = false;
		
		var sku = document.frmQuickAdd.quickaddsku.value;
		sku = StrTrim(sku).replace(/enter\s*item\s*\#/gi, '');
		
		if(sku != ""){
			var url="/cart/cartmaintenance.aspx?item1=" + sku + "&qty1=1&act=expajx&cttr=1";
			oXmlHttp = GetHttpObject(stateChanged);
			oXmlHttp.open("GET", url, true)
			oXmlHttp.send(null);
		}
		else{
			alert("Please enter a SKU!");
			document.frmQuickAdd.quickaddsku.focus();
			allowQuickAdd = true;
		}

	}

	//Listener for state changes
	function stateChanged()
	{
		var respAry;
		var descr;
		
		if (oXmlHttp.readyState==4 || oXmlHttp.readyState=="complete")
		{
			var resp = oXmlHttp.responseText;
			if (Left(resp, 7) == "SUCCESS")
			{
				
				var refr = window.location.pathname;
				if (refr.indexOf('/cart/') >= 0)
				{
					//on cart pages do a full page refresh
					window.location = '/cart/shoppingcart.aspx'
					return true;
				}
				
				respAry = resp.split("~");
				
				document.getElementById('headerCartItems').innerHTML = respAry[1];
				document.getElementById('headerCartTotal').innerHTML = respAry[2];
				document.frmQuickAdd.quickaddsku.value = '';
				
				toggleQuickAddPopup(true);
				//document.getElementById('bubbleSKU').innerHTML = respAry[3];
				if(respAry[5].length > 20){
					descr = Left(respAry[5], 20);
				}
				else{
					descr = respAry[5];
				}
				
				document.getElementById('bubbleDescr').innerHTML = unescape(descr);
				document.getElementById('bubbleImage').src = '/product_images/small/' + respAry[6];
				document.frmQuickUpdate.quickUpdateID.value = respAry[4];
				document.frmQuickUpdate.quickUpdateSKU.value = respAry[3];
				document.frmQuickUpdate.quickSetCartID.value = respAry[7];
			}
			else if(Left(resp, 7) == "VERSION")
			{
				respAry = resp.split("~");
				toggleQuickAddStylePopup(true);
				document.getElementById('speech-bubble3').innerHTML = respAry[1];
			}
			else if(Left(resp, 11) == "VARIABLESET")
			{
				respAry = resp.split("~");
				window.location = respAry[1];
			}
			else
			{
				alert(resp.replace(/FAILED/, '') + " - The SKU you entered does not exist or is out of stock.  Please enter a valid SKU.");
				document.frmQuickAdd.quickaddsku.select();
				document.frmQuickAdd.quickaddsku.focus();
			}

			allowQuickAdd = true;
		}
	}

	function toggleQuickAddPopup(show)
	{
		if (show)
		{
			document.getElementById('speech-bubble').style.display = 'block';
			toggleQuickUpdatePopup(false);
		}
		else
		{
			document.getElementById('speech-bubble').style.display = 'none';
		}
	}


	function toggleQuickAddStylePopup(show)
	{
		if (show)
		{
			document.getElementById('speech-bubble3').style.display = 'block';
		}
		else
		{
			document.getElementById('speech-bubble3').style.display = 'none';
		}
	}


	var updateXmlHttp;
	var allowQuickUpdate = true;

	function quickUpdateItem()
	{
		if (allowQuickUpdate == false)
			return false;
		
		allowQuickUpdate = false;
		
		var itemID = document.frmQuickUpdate.quickUpdateID.value;
		itemID = StrTrim(itemID);
		var qty = document.frmQuickUpdate.quickUpdateQTY.value;
		qty = StrTrim(qty);

		var setCartID = document.frmQuickUpdate.quickSetCartID.value;
		setCartID = StrTrim(setCartID);

		if (IsNumberType(qty,"INT") != true) 
		{
			alert("Please enter an integer value for quantity!");
			document.frmQuickUpdate.quickUpdateQTY.focus();
			allowQuickUpdate = true;
			return false;
		}
		
		var sku = document.frmQuickUpdate.quickUpdateSKU.value;
		sku = StrTrim(sku);
		
		if(itemID != ""){
		    var url = "/cart/cartmaintenance.aspx?item1=" + itemID + "&txtqty1=" + qty + "&act=updajx&ctrr=1&sku1=" + sku + "&setcartid1=" + setCartID;
			updateXmlHttp = GetHttpObject(updateStateChanged);
			updateXmlHttp.open("GET", url, true)
			updateXmlHttp.send(null);
		}
		else{
			allowQuickUpdate = true;
		}

	}
	
	//Listener for state changes
	function updateStateChanged()
	{
		if (updateXmlHttp.readyState==4 || updateXmlHttp.readyState=="complete")
		{
			var resp = updateXmlHttp.responseText;

			if (Left(resp, 7) == "SUCCESS")
			{
				var respAry = resp.split("~");
				
				document.getElementById('headerCartItems').innerHTML = respAry[1];
				document.getElementById('headerCartTotal').innerHTML = respAry[2];
				//document.getElementById('bubbleUpdateSKU').innerHTML = respAry[3]
				document.getElementById('bubbleUpdateDescr').innerHTML = document.getElementById('bubbleDescr').innerHTML;
				document.getElementById('bubbleUpdateImage').src = document.getElementById('bubbleImage').src
				
				toggleQuickAddPopup(false);
				toggleQuickUpdatePopup(true);
			}
			else
			{
				alert("The quantity update failed.");
			}

			allowQuickUpdate = true;
		}
	}
	
	function toggleQuickUpdatePopup(show)
	{
		if (show)
			document.getElementById('speech-bubble2').style.display = 'block';
		else
		{
			document.getElementById('speech-bubble2').style.display = 'none';
			document.frmQuickUpdate.quickUpdateQTY.value = '';
		}
	}
	
	
	//Get http object and test whether it's i.e. or others
	//Otherwise return false
	function GetHttpObject(handler)
	{
		
		if(!document.all){
			try{
				var oRequester = new XMLHttpRequest();
				oRequester.onload=handler;
				oRequester.onerror=handler;
				return oRequester;
			}
			catch (error){
				alert("Your request can not be completed at this time.");
				return false;
			}
		}
		else{
			try
			{
				var oRequester = new ActiveXObject("Microsoft.XMLHTTP");
				oRequester.onreadystatechange=handler;
				return oRequester;
			}
			catch (error)
			{
				alert("Your request can not be completed at this time.");
				return false;
			}
		}
	}
	
	function Left(str, n)
	{
		if (n <= 0)
			return "";
		else if (n > String(str).length)
			return str;
		else
			return String(str).substring(0,n);
	}
	
	function styleEnterSku(sku){
		document.frmQuickAdd.quickaddsku.value = sku;
		toggleQuickAddStylePopup(false);
		quickAddItem();				
	}
