//
// The variable below sets the duration of the "item added to cart" message display in seconds
//

var cartAddConfirmDisplayTimeout = 1;

//
// END
//




var xmlhttp;
var lookupMode = "cartAdd";
var lookupURL;
var vItemDspSpanID;
var vItemDspSpanInnerHTML;

function cartAdd(Obj) {
	if (isNaN(Obj.itemQty.value) ||
		Obj.itemQty.value.length == 0 ||
		Obj.itemQty.value <= 0)
		{
		alert("Please enter a valid quantity to add to the cart");
		Obj.itemQty.select();
		return false;
		}

	lookupMode = "cartAdd";
	// append random string to the URL to get around IE caching
	lookupURL = "pages/cart_add.cfm?randStr=" + Math.random() + "&dID="+Obj.dID.value+"&pID="+Obj.pID.value+"&iID="+Obj.iID.value+"&itemQty="+Obj.itemQty.value;

	vItemDspSpanID = Obj.itemDspSpanID.value;
	vItemDspSpanInnerHTML = document.getElementById(vItemDspSpanID).innerHTML;
	document.getElementById(vItemDspSpanID).innerHTML = "<img src=\"graphics/loading_circle.gif\" align=\"middle\"> Please wait";

	loadXMLDoc();

	return false;
}

function processAJAXresponse(updateResponse) {
	updateResponse = quickTrim(updateResponse);
	if (lookupMode == "cartAdd")
		{
		if (updateResponse.toUpperCase().indexOf("ERROR") != -1)
			{
			document.getElementById(vItemDspSpanID).innerHTML = "Unable to add item";
			}
		else
			{
			document.getElementById(vItemDspSpanID).innerHTML = "<font color=red><b><i>Adding to Cart</b></i></font>";
			}
		setTimeout("resetBuyDsp()",cartAddConfirmDisplayTimeout*1000);
		lookupMode = "cartUpdate";
		lookupURL = "pages/cart_get_status.cfm?randStr=" + Math.random();
		loadXMLDoc();
		}
	else if (lookupMode == "cartUpdate")
		{
		updateResponseArry = updateResponse.split("|");
		if (updateResponseArry.length >= 3)
			{
			document.getElementById("cartStatusItemCount").innerHTML = updateResponseArry[0];
			document.getElementById("cartStatusTotAmt").innerHTML = numFormat(updateResponseArry[1]);
			if (updateResponseArry[2] != 0)
				{
				document.getElementById("cartStatusDlrDscAmt").innerHTML = updateResponseArry[3] + " discount total";
				}
			else
				{
				document.getElementById("cartStatusDlrDscAmt").innerHTML = "Total";
				}
			}
		lookupMode = "cartAdd";
		}
}

function loadXMLDoc() {
	if (xmlhttp!=null)
		{
		//---- abort previous connection ----
		xmlhttp.abort();
		}
	xmlhttp=null;
	if (window.XMLHttpRequest)
		{
		// code for all new browsers
		xmlhttp=new XMLHttpRequest();
		}
	else if (window.ActiveXObject)
		{
		// code for IE5 and IE6
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	if (xmlhttp!=null)
		{
		xmlhttp.onreadystatechange=state_Change;
		xmlhttp.open("GET",lookupURL,true);
		//xmlhttp.setRequestHeader('Content-Length', '1');
		xmlhttp.send('1');
		}
	}	

function state_Change()	{
	if (xmlhttp.readyState==4)
		{
		// 4 = "loaded"
		if (xmlhttp.status==200)
			{
			// 200 = "OK"
			processAJAXresponse(xmlhttp.responseText);
			//xmlhttp.abort();
			//xmlhttp=null;
			}
		else
			{
			loadXMLDoc_tryAgain();
			}
		}
	}

//---- cancel previous timeout and try again in 20 seconds ----
function loadXMLDoc_tryAgain() {
	if (timeoutSeq != "")
		{
		clearTimeout(timeoutSeq);
		}
	//xmlhttp.abort();
	//xmlhttp=null;
	timeoutSeq = setTimeout("loadXMLDoc()",20000);
	}
//---- END ----	

//---- trim whitespace ----
function quickTrim(str) {
	str = str.replace(/^\s+/, '');
	for (var i = str.length - 1; i >= 0; i--)
		{
		if (/\S/.test(str.charAt(i)))
			{
			str = str.substring(0, i + 1);
			break;
			}
		}
	return str;
	}
//---- END ----

function cartUpdateDsp() {
	lookupMode = "cartUpdate";
	// append random string to the URL to get around IE caching
	lookupURL = "pages/cart_get_status.cfm?randStr=" + Math.random();
	loadXMLDoc();
}

function resetBuyDsp() {
	document.getElementById(vItemDspSpanID).innerHTML = vItemDspSpanInnerHTML;
}

function numFormat(Obj) {
	Obj = Math.round(Obj * 100) / 100;
	YTS = String(Obj);
	dotPosition = YTS.indexOf(".")
	if (dotPosition == -1) {Obj = YTS+".00"}
	else {
		 YTI = YTS.substr(0,dotPosition);
		 YTF = YTS.substr(dotPosition+1,YTS.length-dotPosition);
		 if (YTF.length == 0) {YTF = "00"} else {if (YTF.length == 1) {YTF = YTF+"0"} else {YTF = YTF.substr(0,2)}}
		 Obj = YTI+"."+YTF;
		 }
	return Obj;
}
