function getElemRefs(id) {
	//document.getElementById(id); //Standard
	//document.all[whichButton].disabled = true; //Older IE
	//document.layers[whichButton].disabled = true; //NN4
	
	var el = (document.getElementById)? document.getElementById(id): (document.all)? document.all[id]: (document.layers)? getLyrRef(id,document): null;
	if (el) el.css = (el.style)? el.style: el;
	return el;
}

// get reference to nested layer for ns4
// from old dhtmllib.js by Mike Hall of www.brainjar.com
function getLyrRef(lyr,doc) {
	if (document.layers) {
		var theLyr;
		for (var i=0; i<doc.layers.length; i++) {
			theLyr = doc.layers[i];
			if (theLyr.name == lyr) return theLyr;
			else if (theLyr.document.layers.length > 0) 
				if ((theLyr = getLyrRef(lyr,theLyr.document)) != null)
				return theLyr;
		}
		return null;
	}
}


function pausecomp(millis) 
{
	var date = new Date();
	var curDate = null;
	
	do { curDate = new Date(); } 
	while(curDate-date < millis);
} 


function MM_jumpMenu(targ,selObj,restore){ //v3.0
	eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
	if (restore) selObj.selectedIndex=0;
}


function scrollTo(id)
{
	var lyr = getElemRefs(id);
	//alert(lyr);
	lyr.scrollIntoView(true);
	return null;
}


function focusOnLoad(id)
{
	var lyr = getElemRefs(id);
	lyr.focus();
	return null;
}


function keyHandler(e)
{
	var key = e.keyCode? e.keyCode : e.charCode;
	//alert(unicode);
	
	/*
	if (document.all)
	{
		e = window.event;
	}
	
	var key;
	
	if (document.layers)
	{
		key = e.which;
	}
	
	if (document.all)
	{
		key = e.keyCode
	}
	*/
	//var chr = String.fromCharCode(key);
    //alert('Character representation of pressed was ' + chr);
	//alert('Unicode value of key pressed was ' + key);
	return key;
}

function toggleDisplay(id) {
	var lyr = getElemRefs(id);
	if (lyr && lyr.css)
	{
		if(lyr.css.visibility=='visible')
		{
			lyr.css.visibility = "hidden";
			lyr.css.display = "none";
		}
		else
		{
			lyr.css.visibility = "visible";
			lyr.css.display = "inline";
		}
	}
}


var xmlhttp;

function itemDisplay(item_id,cart_id)
{
	var results_lyr = getElemRefs('item_'+item_id);
	
	xmlhttp=GetXmlHttpObject();
	var url="./ajax/itemDisplay.php";
	url=url+"?cart_id="+cart_id;
	url=url+"&item_id="+item_id;
	url=url+"&sid="+Math.random();
	xmlhttp.onreadystatechange=function() {
		//if (xmlhttp.readyState==1 || xmlhttp.readyState==2 || xmlhttp.readyState==3)
		if (xmlhttp.readyState==1)
		{
			//results_lyr.innerHTML='hello';
			results_lyr.innerHTML='<img src="./media/small_circle.gif" border="0">';
		}
		
		if (xmlhttp.readyState==4)
		{
			//results_lyr.innerHTML='hello';
			results_lyr.innerHTML=xmlhttp.responseText;
		}
	}
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}



function cartDisplay(cart_id)
{
	var results_lyr = getElemRefs('cartDisplay');
	
	xmlhttp=GetXmlHttpObject();
	var url="./ajax/cartDisplay.php";
	url=url+"?cart_id="+cart_id;
	url=url+"&sid="+Math.random();
	xmlhttp.onreadystatechange=function() {
		//if (xmlhttp.readyState==1)
		if (xmlhttp.readyState==1 || xmlhttp.readyState==2 || xmlhttp.readyState==3)
		{
			if (results_lyr.innerHTML != '<img src="./media/large_spinner.gif" border="0">')
			{
				results_lyr.innerHTML='<img src="./media/large_spinner.gif" border="0">';
			}
		}
		
		if (xmlhttp.readyState==4)
		{
			results_lyr.innerHTML=xmlhttp.responseText;
			checkStep(cart_id);
			//return '1';
		}
	}
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
	
	//return 'something else';
}




function cartProcess(cart_id,payment_type)
{
	var results_lyr = getElemRefs(''+payment_type+'_process_button');
	
	xmlhttp=GetXmlHttpObject();
	var url="./ajax/cartProcess.php";
	url=url+"?cart_id="+cart_id;
	url=url+"&payment_type="+payment_type;
	url=url+"&sid="+Math.random();
	xmlhttp.onreadystatechange=function() {
		//if (xmlhttp.readyState==1)
		if (xmlhttp.readyState==1 || xmlhttp.readyState==2 || xmlhttp.readyState==3)
		{
			if (results_lyr.innerHTML != '<img src="./media/large_spinner.gif" border="0">')
			{
				results_lyr.innerHTML='<img src="./media/large_spinner.gif" border="0">';
			}
		}
		
		if (xmlhttp.readyState==4)
		{
			results_lyr.innerHTML='<img src="./media/large_spinner.gif" border="0"><meta http-equiv="refresh" content="0;url=index.php?cart_id='+cart_id+'">';
			//checkStep(cart_id);
			//return '1';
		}
	}
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
	
	//return 'something else';
}



function checkStep(cart_id)
{
	var step_1_img = getElemRefs('step_1_image');
	var step_2_3_img = getElemRefs('step_2_3_image');
	var step_3_img = getElemRefs('step_3_image');
	
	xmlhttp=GetXmlHttpObject();
	var url="./ajax/checkStep.php";
	url=url+"?cart_id="+cart_id;
	url=url+"&sid="+Math.random();
	//alert(url);
	xmlhttp.onreadystatechange=function() {
		if (xmlhttp.readyState==1)
		{
			//results_lyr.innerHTML='<img src="./media/large_spinner.gif" border="0">';
		}
		
		if (xmlhttp.readyState==4)
		{
			//alert(xmlhttp.responseText);
			if(xmlhttp.responseText=='3')
			{
step_2_3_img.src="./media/cart_steps/cart_on_checkout_on_header.png";
step_3_img.src="./media/cart_steps/checkout_on_header.png";
			}
			else if(xmlhttp.responseText=='2')
			{
step_2_3_img.src="./media/cart_steps/cart_on_checkout_off_header.png";
step_3_img.src="./media/cart_steps/checkout_off_header.png";
			}
			else
			{
step_2_3_img.src="./media/cart_steps/cart_off_checkout_off_header.png";
//step_3_img.src="./media/cart_steps/checkout_off_header.png";
			}
			//results_lyr.innerHTML='hello';
			//results_lyr.innerHTML=xmlhttp.responseText;
		}
	}
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
	//Consider saving all form fields one last time when a user navigates away from a page//
}



function showItemBarcode(item_id,cart_id)
{
	var results_lyr = getElemRefs('item_barcode_'+item_id);
	
	xmlhttp=GetXmlHttpObject();
	var url="./ajax/showItemBarcode.php";
	url=url+"?cart_id="+cart_id;
	url=url+"&item_id="+item_id;
	url=url+"&sid="+Math.random();
	xmlhttp.onreadystatechange=function() {
		//if (xmlhttp.readyState==1 || xmlhttp.readyState==2 || xmlhttp.readyState==3)
		if (xmlhttp.readyState==1)
		{
			//results_lyr.innerHTML='<img src="./media/barcode.gif" border="0">';
			results_lyr.innerHTML='<img src="./media/small_circle.gif" border="0">';
		}
		
		if (xmlhttp.readyState==4)
		{
			//results_lyr.innerHTML='hello';
			//settimeout("results_lyr.innerHTML='<img src=\"'+xmlhttp.responseText+'\" border=\"0\">'", 2000);
			results_lyr.innerHTML='<img src="'+xmlhttp.responseText+'" border="0">';
		}
	}
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}



function showCartBarcode(cart_id)
{
	var results_lyr = getElemRefs('cart_barcode');
	
	xmlhttp=GetXmlHttpObject();
	var url="./ajax/showCartBarcode.php";
	url=url+"?cart_id="+cart_id;
	url=url+"&sid="+Math.random();
	xmlhttp.onreadystatechange=function() {
		//if (xmlhttp.readyState==1 || xmlhttp.readyState==2 || xmlhttp.readyState==3)
		if (xmlhttp.readyState==1)
		{
			//results_lyr.innerHTML='<img src="./media/barcode.gif" border="0">';
			results_lyr.innerHTML='<img src="./media/small_circle.gif" border="0">';
		}
		
		if (xmlhttp.readyState==4)
		{
			//results_lyr.innerHTML='hello';
			//settimeout("results_lyr.innerHTML='<img src=\"'+xmlhttp.responseText+'\" border=\"0\">'", 2000);
			results_lyr.innerHTML='<img src="'+xmlhttp.responseText+'" border="0">';
		}
	}
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}




function addItem(unique_id,cart_id)
{
	//var results_lyr = getElemRefs('reg_'+id);
	//var cartDisplayReturn = '';
	var new_item_id = '';
	
	xmlhttp=GetXmlHttpObject();
	var url="./ajax/addItem.php";
	url=url+"?cart_id="+cart_id;
	url=url+"&unique_id="+unique_id;
	url=url+"&sid="+Math.random();
	//alert(url);
	xmlhttp.onreadystatechange=function() {
		if (xmlhttp.readyState==1)
		{
			//results_lyr.innerHTML='<img src="./media/large_spinner.gif" border="0">';
		}
		
		if (xmlhttp.readyState==4)
		{
			new_item_id=xmlhttp.responseText;
			cartDisplay(cart_id);
			//alert(new_item_id);
			//cartDisplayReturn = cartDisplay(cart_id);
			//alert(cartDisplayReturn);
			//setTimeout("editItem("+new_item_id+","+cart_id+")", 1000);
			//if(cartDisplayReturn=='something else')
			//{
				//alert('hello');
				//editItem(new_item_id,cart_id);
			//}
		}
	}
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}



function editItem(item_id,cart_id)
{
	var results_lyr = getElemRefs('item_'+item_id);
	
	xmlhttp=GetXmlHttpObject();
	var url="./ajax/editItem.php";
	url=url+"?cart_id="+cart_id;
	url=url+"&item_id="+item_id;
	url=url+"&sid="+Math.random();
	xmlhttp.onreadystatechange=function() {
		if (xmlhttp.readyState==1)
		{
			//results_lyr.innerHTML='<img src="./media/large_spinner.gif" border="0">';
		}
		
		if (xmlhttp.readyState==4)
		{
			//results_lyr.innerHTML='hello';
			results_lyr.innerHTML=xmlhttp.responseText;
		}
	}
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
	//Consider saving all form fields one last time when a user navigates away from a page//
}




function nl2br(text){
	var re_nlchar;
	text = escape(text);
	if(text.indexOf('%0D%0A') > -1){
		re_nlchar = /%0D%0A/g ;
	}else if(text.indexOf('%0A') > -1){
		re_nlchar = /%0A/g ;
	}else if(text.indexOf('%0D') > -1){
		re_nlchar = /%0D/g ;
	}
	return unescape( text.replace(re_nlchar,'<br />') );
}


function saveTextArea(field_name,field_value,item_id,cart_id)
{
	var results_lyr = getElemRefs('item_'+field_name+'_'+item_id);
	
	xmlhttp=GetXmlHttpObject();
	
	var url="./ajax/saveItemFieldMulti.php";
	url=url+"?cart_id="+cart_id;
	url=url+"&field_name="+field_name;
	url=url+"&field_value="+nl2br(field_value);
	//url=url+"&field_value="+field_value;
	url=url+"&item_id="+item_id;
	url=url+"&sid="+Math.random();
	//alert(url);
	xmlhttp.onreadystatechange=function() {
		if (xmlhttp.readyState==1)
		{
			//results_lyr.innerHTML='hello';
			results_lyr.innerHTML='<img src="./media/small_circle.gif" border="0">';
		}
		
		if (xmlhttp.readyState==4)
		{
			//results_lyr.innerHTML='hello';
			results_lyr.innerHTML=xmlhttp.responseText;
			//xmlhttp.responseText = '<img src="././media/accepted_16.png" border="0">';
			//setTimeout(""+results_lyr.innerHTML+"=xmlhttp.responseText",5000);
			//cartDisplay(cart_id);
		}
	}
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}



function saveItemFieldMulti(field_name,field_value,item_id,cart_id)
{
	var results_lyr = getElemRefs('item_'+field_name+'_'+item_id);
	
	xmlhttp=GetXmlHttpObject();
	
	var url="./ajax/saveItemFieldMulti.php";
	url=url+"?cart_id="+cart_id;
	url=url+"&field_name="+field_name;
	url=url+"&field_value="+field_value;
	url=url+"&item_id="+item_id;
	url=url+"&sid="+Math.random();
	//alert(url);
	xmlhttp.onreadystatechange=function() {
		if (xmlhttp.readyState==1)
		{
			//results_lyr.innerHTML='hello';
			results_lyr.innerHTML='<img src="./media/small_circle.gif" border="0">';
		}
		
		if (xmlhttp.readyState==4)
		{
			//results_lyr.innerHTML='hello';
			results_lyr.innerHTML=xmlhttp.responseText;
			//xmlhttp.responseText = '<img src="././media/accepted_16.png" border="0">';
			//setTimeout(""+results_lyr.innerHTML+"=xmlhttp.responseText",5000);
			//cartDisplay(cart_id);
		}
	}
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}




function saveItemFieldSingle(field_name,field_value,item_id,cart_id)
{
	var results_lyr = getElemRefs('item_'+field_name+'_'+item_id);
	
	xmlhttp=GetXmlHttpObject();
	var url="./ajax/saveItemFieldSingle.php";
	url=url+"?cart_id="+cart_id;
	url=url+"&field_name="+field_name;
	url=url+"&field_value="+field_value;
	url=url+"&item_id="+item_id;
	url=url+"&sid="+Math.random();
	xmlhttp.onreadystatechange=function() {
		if (xmlhttp.readyState==1)
		{
			//results_lyr.innerHTML='hello';
			results_lyr.innerHTML='<img src="./media/small_circle.gif" border="0">';
		}
		
		if (xmlhttp.readyState==4)
		{
			//results_lyr.innerHTML=xmlhttp.responseText;
			//itemDisplay(item_id,cart_id);
			cartDisplay(cart_id);
		}
	}
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}



function mailCartDisplay(cart_id)
{
	var results_lyr = getElemRefs('mail_cart_display');
	
	xmlhttp=GetXmlHttpObject();
	var url="./ajax/mailCartDisplay.php";
	url=url+"?cart_id="+cart_id;
	url=url+"&sid="+Math.random();
	xmlhttp.onreadystatechange=function() {
		if (xmlhttp.readyState==1)
		{
			//results_lyr.innerHTML='hello';
			results_lyr.innerHTML='<img src="./media/large_spinner.gif" border="0">';
		}
		
		if (xmlhttp.readyState==4)
		{
			//results_lyr.innerHTML='hello';
			results_lyr.innerHTML=xmlhttp.responseText;
			//xmlhttp.responseText = '<img src="././media/accepted_16.png" border="0">';
			//setTimeout(""+results_lyr.innerHTML+"=xmlhttp.responseText",5000);
			//cartDisplay(cart_id);
		}
	}
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}



function fromPaypalPause(cart_id,iteration)
{
	setTimeout("fromPaypal('"+cart_id+"',"+iteration+")",2000);
	return false;
}


function fromPaypal(cart_id,iteration)
{
	var results_lyr = getElemRefs('from_paypal');
	var processing_text = '<br /><br /><br /><br /><font style="font-weight: bold;\"><font style="font-size: 16pt;">Your payment was processed by PayPal successfully!</font><br /><br />Usually PayPal tells our servers instantly that your payment was processed successfully but sometimes it may take a few moments.<br /><br /><br /><font style="font-size: 18pt;">Please wait...</font><br /><br /><img src="./media/large_spinner.gif" border="0"></font>';
	
	//cartDisplay(cart_id);
	//alert(cart_id);
	//alert(iteration);
	xmlhttp=GetXmlHttpObject();
	var url="./ajax/fromPaypal.php";
	url=url+"?cart_id="+cart_id;
	url=url+"&iteration="+iteration;
	url=url+"&sid="+Math.random();
	xmlhttp.onreadystatechange=function() {
		if (xmlhttp.readyState==1)
		{
			if(iteration==5 || iteration==99)
			{
				//results_lyr.innerHTML='hello';
				results_lyr.innerHTML='<br /><br /><br /><br /><br /><br /><br /><br /><img src="./media/large_spinner.gif" border="0">';
			}
			else
			{
				//results_lyr.innerHTML='hello';
				results_lyr.innerHTML=''+processing_text+'<meta http-equiv="refresh" content="5;url=index.php?cart_id='+cart_id+'&from_paypal=true&iteration='+iteration+'">';
			}
		}
		
		if (xmlhttp.readyState==4)
		{
			if(xmlhttp.responseText=="processed")
			{
				//alert('processed');
				//results_lyr.innerHTML=xmlhttp.responseText;
				results_lyr.innerHTML=''+processing_text+'<meta http-equiv="refresh" content="0;url=index.php?cart_id='+cart_id+'&from_paypal=true&iteration=99">';
			}
			else if(iteration==5 || iteration==99)
			{
				//alert('unprocessed');
				results_lyr.innerHTML=xmlhttp.responseText;
			}
			else
			{
				iteration = iteration + 1;
				//alert(iteration);
				results_lyr.innerHTML=''+processing_text+'<meta http-equiv="refresh" content="5;url=index.php?cart_id='+cart_id+'&from_paypal=true&iteration='+iteration+'">';
				
				//iteration = iteration + 1;
				//fromPaypalPause(cart_id,iteration);
				//fromPaypal(cart_id,iteration);
			}
			//results_lyr.innerHTML=xmlhttp.responseText;
			//xmlhttp.responseText = '<img src="././media/accepted_16.png" border="0">';
			//setTimeout(""+results_lyr.innerHTML+"=xmlhttp.responseText",5000);
			//cartDisplay(cart_id);
		}
	}
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}


function saveDiscount(field_name,field_value,item_id,cart_id)
{
	var results_lyr = getElemRefs('discount_field');
	
	if (field_value.length < 5 || keyHandler(event) == 37 || keyHandler(event) == 38 || keyHandler(event) == 39 || keyHandler(event) == 40)
	{
		//results_lyr.innerHTML='';
		return;
	}
	
	
	xmlhttp=GetXmlHttpObject();
	var url="./ajax/saveDiscount.php";
	url=url+"?cart_id="+cart_id;
	url=url+"&field_name="+field_name;
	url=url+"&field_value="+field_value;
	url=url+"&item_id="+item_id;
	url=url+"&sid="+Math.random();
	xmlhttp.onreadystatechange=function() {
		if (xmlhttp.readyState==1)
		{
			//results_lyr.innerHTML='hello';
			results_lyr.innerHTML='<img src="./media/small_circle.gif" border="0">';
		}
		
		if (xmlhttp.readyState==4)
		{
			if(xmlhttp.responseText == "VALID")
			{
				//alert(cart_id);
				results_lyr.innerHTML='<img src="./media/accepted_16.png" border="0">&nbsp;<font style="font-style: italic; font-size: 10pt;">Applying discount...</font>';
				cartDisplay(cart_id);
				//setTimeout("alert(''+cart_id+'');",1000);
			}
			else
			{
				results_lyr.innerHTML=xmlhttp.responseText;
			}
		}
	}
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}


function removeItem(item_id,cart_id)
{
	//var results_lyr = getElemRefs('reg_'+id);
	
	xmlhttp=GetXmlHttpObject();
	var url="./ajax/removeItem.php";
	url=url+"?cart_id="+cart_id;
	url=url+"&item_id="+item_id;
	url=url+"&sid="+Math.random();
	xmlhttp.onreadystatechange=function() {
		if (xmlhttp.readyState==1)
		{
			//results_lyr.innerHTML='<img src="./media/large_spinner.gif" border="0">';
		}
		
		if (xmlhttp.readyState==4)
		{
			//results_lyr.innerHTML=xmlhttp.responseText;
			cartDisplay(cart_id);
		}
	}
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}



function GetXmlHttpObject()  //XML OBJECT
{
	var xmlHttp_tmp = false;
	if (window.XMLHttpRequest)
	{// Mozilla, Safari,...
		xmlHttp_tmp = new XMLHttpRequest();
		if (xmlHttp_tmp.overrideMimeType)
		{
			// set type accordingly to anticipated content type
			//xmlHttp_tmp.overrideMimeType('text/xml');
			xmlHttp_tmp.overrideMimeType('text/html');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			xmlHttp_tmp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				xmlHttp_tmp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
				alert("Your browser does not support AJAX! Please install the latest version of Firefox, available at http://www.getfirefox.com");
			}
		}
	}
	
	return xmlHttp_tmp;  // Mandatory Statement returning the ajax object created
}