function goApply() {
	if (trim(document.frmCartClaimCode.DiscountCode.value)=='')
	{
		alert('Please enter a promotional claim code.');
		document.frmCartClaimCode.DiscountCode.focus();
		return false;		
	}
	return true;
}
function goRemoveClaimCode() {
	document.frmCartClaimCode.FormAction.value="Remove ClaimCode";
	document.frmCartClaimCode.submit();
}
function goRemoveFreeShipping() {
	document.frmCartClaimCode.FormAction.value="Remove FreeShipping";
	document.frmCartClaimCode.submit();
}

function chkItemSelection(me, btnvalue)
{
	me.FormAction.value=btnvalue;
	var bradchecked = false;
	for (var i=0; i<me.elements.length; i++)
		if (me.elements[i].type=='checkbox' && me.elements[i].checked) bradchecked = true;
	
	if (!bradchecked)
	{	
		alert("Please select an item to delete from the cart");
		return false;
	}
	me.submit();
}

function setRemoveItem(me, btnvalue, itemd)
{
	me.FormAction.value=btnvalue;
	var bradchecked = false;
	for (var i=0; i<me.elements.length; i++)
	{
		if (me.elements[i].type=='checkbox' && me.elements[i].name==itemd)
		{
			me.elements[i].checked=true; 
			bradchecked = true;
		}
		else
		{
			me.elements[i].checked=false;
		}
	}
	
	if (!bradchecked)
	{		
		return false;
	}
	me.submit();
}

function continueShopping(me, btnvalue)
{
	me.FormAction.value=btnvalue;
	//return true;
	me.submit();
}

function formatNum(num, prfx, sfxx) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num)) num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+''+
	num.substring(num.length-(4*i+3));	
	//put in the commas
	if (num >= 1000 || num <= -1000) {
		var iStart = num.indexOf(".");
		if (iStart < 0)
			iStart = num.length;
		iStart -= 3;
		while (iStart >= 1) {
			num = num.substring(0,iStart) + "," + num.substring(iStart,num.length)
			iStart -= 3;
		}		
	}
	num = prfx + num + '.' + cents + sfxx;
	return ((sign)?num:'('+num+')');
}

function SelectShippingOption(frm)
{
	//frm.FormAction.value='SelectShippingOption';
	//frm.submit();	
	//OR - Alternate method below.	
	//ShippingCalculation
	var shipprice=0;
	var mytotal = 0;
	if (frm.MyShippingOption.value!='') {
		shipprice = frm.MyShippingOption.value.split('\t')[2];		
	}	   
	//Ignore the tax display, if it is Avalara
	if(frm.AvalaraTaxAvailable.value == '1')
	{
		totalTax = frm.AvalaraSalesTax.value;
		mytotal = eval(frm.TempTotal.value) + eval(totalTax) + eval(shipprice);
	}
	else
	{
	//Tax Calculation		
	var totalTax=0;	
	if (frm.CustomerTaxAvailable.value=='1') {
		totalTax = frm.sProductTotal.value * document.frm.CustomerTaxRate.value;
	}
	else {
		taxrate = frm.SystemTaxRateProduct.value;
		shiptaxrate = frm.SystemTaxRateShipping.value;
		totalTax = frm.sTaxableProductTotal.value * frm.SystemTaxRateProduct.value + shipprice * frm.SystemTaxRateShipping.value;				
	}			
	if (totalTax > 0) {
	    document.getElementById("MyTax").innerHTML = formatNum(eval(totalTax.toFixed(2)),frm.prefix.value,frm.suffix.value);
	}
	else {
	    totalTax = 0;
	    document.getElementById("MyTax").innerHTML = '------';
	}	
		mytotal = eval(frm.TempTotal.value) + eval(totalTax) + eval(shipprice);
	}	
	document.getElementById("MyTotal").innerHTML = formatNum(eval(mytotal.toFixed(2)),frm.prefix.value,frm.suffix.value);
}

function setSaveForLater(me, btnvalue, selValue)
{
	me.FormAction.value=btnvalue;
	me.ProdSelectedToSaveForLater.value=selValue;
	//return true;
	me.submit();
}

function fnClearCart(me)
{
	if(confirm("Are you sure you want to clear the cart?"))
	{
		me.submit();
	}
	else
	return(false);
}

function validateQtys(me, btnvalue, dblMinQtyAvl, bexpress)
{
	var intStockQty;
	var intMinQty;
	var StockQtyName, MinQtyName, StockTextName;
	var strStockMessage, strNewStockMessage, iItemInvisible;
	strNewStockMessage='';		
	me.FormAction.value=btnvalue;		
	if(me.hidMinimumAmount.value == 'false' && btnvalue == 'Check Out')
	{
		alert("The sub total is less than the minimum order amount ( " + dblMinQtyAvl + " )");
		return false;
	}
	for (var i=0; i<me.elements.length; i++)
	{
		intStockQty = 0;
		intMinQty = 0;
		if (me.elements[i].name.indexOf('ProdQty')==0)
		{
			StockQtyName = me.elements[i].name.replace("ProdQty","StockQty");
			MinQtyName = me.elements[i].name.replace("ProdQty","MinQty");
			StockTextName = me.elements[i].name.replace("ProdQty","StockText");
			ItemInvisibleTextName = me.elements[i].name.replace("ProdQty","ItemInvisible");					
			iItemInvisible = 0;			
			for(j=i; j<me.elements.length; j++)
			{
				if(me.elements[j].name == StockQtyName)
				{
					intStockQty = me.elements[j].value;
				}
							
				if(me.elements[j].name== MinQtyName)
				{
					intMinQty = me.elements[j].value;
				}
				if(me.elements[j].name== StockTextName)
				{
					strStockMessage = me.elements[j].value;
				}
				if(me.elements[j].name== ItemInvisibleTextName)
				{
					iItemInvisible = me.elements[j].value;
				}
				
			}
						
						
			if(intMinQty == 0){intMinQty = 1;}
						
			if (!validate_DOUBLE(me.elements[i],"quantity")) return false;
			if (!validate_INTEGER(me.elements[i],"quantity")) return false;
						
			if (parseFloat(me.elements[i].value)<parseFloat(intMinQty))
			{
				alert("The minimum quantity for this product is " + intMinQty);
				me.elements[i].focus();
				return false;
			}
						
						
			//if (parseFloat(me.elements[i].value)>parseFloat(me.elements[i+5].value) && me.elements[i+5].value != -1)
						
			if (parseFloat(me.elements[i].value)>parseFloat(intStockQty) && intStockQty != -1)
			{	
				if(intStockQty > 0) {
					alert('The available quantity in stock for "' + strStockMessage +'" is ' + intStockQty + '. Please reduce the order quantity in order to proceed');
					me.elements[i].focus();
					return false;				
				} else {
					if (strNewStockMessage!='')
					{	strNewStockMessage = strNewStockMessage + '\n'	}
					strNewStockMessage=strNewStockMessage + '   - ' + strStockMessage;
					//alert(strStockMessage +' is not in stock at this time. Please check back later.');
				}			
			}
			if (iItemInvisible==1)
			{
				if (strNewStockMessage!='')
				{	strNewStockMessage = strNewStockMessage + '\n'	}
				strNewStockMessage=strNewStockMessage + '   - ' + strStockMessage;
			}
						
		}
	}
	if (strNewStockMessage!= '') 
	{
		if (bexpress == 'express') {
			strNewStockMessage = 'The following item(s) in your shopping cart are currently NOT IN STOCK:\n\n' + strNewStockMessage + '\n\nPlease remove the above item(s).';
			alert(strNewStockMessage);
			return false;		
		}
		else  {
			strNewStockMessage = 'The following item(s) in your shopping cart are currently NOT IN STOCK:\n\n' + strNewStockMessage + '\n\nWould you like to remove the above item(s) and proceed to checkout?';
			if (confirm(strNewStockMessage))
			{
				//return true
			}
			else
			{
				return false;
			}
		}
		
	}
	return true;
}

function validateShippingForm(blnUseRealTime, blnRealTimeCANPost)
{
	if(blnUseRealTime == "1" && blnRealTimeCANPost == "1")	
		return validateCANADAShippingForm()					
	else
		return validateUSShippingForm()
}
function validateUSShippingForm()
{		
	if(document.frmCartShipping.CartCountryCode.value=='US' || document.frmCartShipping.cartZIPCode.value=="")
	{
		if (document.frmCartShipping.cartZIPCode.value=='')
		{
				alert("Please enter a valid zip code");
				document.frmCartShipping.cartZIPCode.focus();
				return false;
		}				
	}
				
	if(document.frmCartShipping.CartCountryCode.value=='US')
	{
		if(document.frmCartShipping.ShipState.value == '')
		{
			alert("Please select the state");
			document.frmCartShipping.ShipState.focus();
			return false;
		}	
	}
	else
	{
		if (document.frmCartShipping.CustCountry.value == document.frmCartShipping.CartCountryCode.value)
		{
			document.frmCartShipping.ShipProvince.value = document.frmCartShipping.ShipProvinceDD.options[document.frmCartShipping.ShipProvinceDD.selectedIndex].value;
			if(document.frmCartShipping.ShipProvince.value == '')
			{	alert("Please select the shipping province");
				document.frmCartShipping.ShipProvinceDD.focus();
				return false;
			}
		}
		else
		{
			if(document.frmCartShipping.ShipProvince.value == '')
			{	alert("Please enter the shipping province");
				document.frmCartShipping.ShipProvince.focus();
				return false;
			}
		}	
	}
	return true;
}
function validateCANADAShippingForm()
{				
	if (document.frmCartShipping.cartZIPCode.value=="") {
		alert("Please enter a valid zip code");
		document.frmCartShipping.cartZIPCode.focus();
		return false;
	}
	if(document.frmCartShipping.CartCountryCode.value=='US')
	{
		if(document.frmCartShipping.ShipState.value == '')
		{
			alert("Please select the state");
			document.frmCartShipping.ShipState.focus();
			return false;
		}	
	}
	else
	{
		if (document.frmCartShipping.CustCountry.value == document.frmCartShipping.CartCountryCode.value)
		{
			document.frmCartShipping.ShipProvince.value = document.frmCartShipping.ShipProvinceDD.options[document.frmCartShipping.ShipProvinceDD.selectedIndex].value;
			if(document.frmCartShipping.ShipProvince.value == '')
			{	alert("Please select the shipping province");
				document.frmCartShipping.ShipProvinceDD.focus();
				return false;
			}
		}
		else
		{
			if(document.frmCartShipping.ShipProvince.value == '')
			{	alert("Please enter the shipping province");
				document.frmCartShipping.ShipProvince.focus();
				return false;
			}
		}	
	}
	return true;
}


function fnChangeState(selCountry, custCountry, sDomesticCountry)
{	
	var selectedCountry;
	if (selCountry == '')
	{
		selectedCountry = sDomesticCountry.toUpperCase();
	}
	else
	{
		selectedCountry = selCountry.toUpperCase();
	}
	if(selectedCountry == 'US')	
	{		
		TRState.style.visibility = "visible";		
		TRState.style.display = "block";		
		TRProvince.style.visibility = "hidden";		
		TRProvince.style.display = "none";
		TRState1.style.visibility = "visible";		
		TRState1.style.display = "block";		
		TRProvince1.style.visibility = "hidden";		
		TRProvince1.style.display = "none";	
	}	
	else	
	{		
		TRState.style.visibility = "hidden";		
		TRState.style.display = "none";		
		TRProvince.style.visibility = "visible";		
		TRProvince.style.display = "block";
		TRState1.style.visibility = "hidden";		
		TRState1.style.display = "none";		
		TRProvince1.style.visibility = "visible";		
		TRProvince1.style.display = "block";
		
		if(selectedCountry == custCountry.toUpperCase())
			{
				document.getElementById('customSProvinceDropdown').className="divshow";
				document.getElementById('customSProvinceText').className="divhide";
			}
		else
			{	
				document.getElementById('customSProvinceDropdown').className="divhide";
				document.getElementById('customSProvinceText').className="divshow";
			}			
	}
}

var IE = document.all?true:false

if (!IE) document.captureEvents(Event.MOUSEMOVE)

document.onmousemove = getMouseXY;

// Temporary variables to hold mouse x-y pos.s
var tempX;// = 0
var tempY;// = 0

function getMouseXY(e) {
  if (IE) { // browser is IE
    tempX = event.clientX + document.body.scrollLeft
    tempY = event.clientY + document.body.scrollTop
  } else {  // browser is NS
    tempX = e.pageX
    tempY = e.pageY
  }  

  if (tempX < 0){tempX = 0}
  if (tempY < 0){tempY = 0}  
 
  return true
}

function displayBorder(x, y)
{
	tempX = tempX - x;
    	tempY = tempY - y;
    	
	document.getElementById('shipping_selector').className = 'divshow';
	//document.getElementById('bordertable').className = 'withborder';
	
	document.getElementById('bordertable').style.position = "absolute";
	document.getElementById('bordertable').style.left = tempX;
	document.getElementById('bordertable').style.top = tempY;
	
	document.getElementById('MouseX').value = tempX;
	document.getElementById('MouseY').value = tempY;
	
	if(document.getElementById('MyShippingOption') != null)
		document.getElementById('MyShippingOption').disabled = true;
}
function hideBorder()
{
	document.getElementById('shipping_selector').className = 'divhide';
	if(document.getElementById('MyShippingOption') != null)
		document.getElementById('MyShippingOption').disabled = false;
	//document.getElementById('bordertable').className = 'withoutborder';	
}

function displayShippingForm(x, y)
{
	document.getElementById('shipping_selector').className = 'divshow';
	//document.getElementById('bordertable').className = 'withborder';
	
	document.getElementById('bordertable').style.position = "absolute";
	document.getElementById('bordertable').style.left = x;
	document.getElementById('bordertable').style.top = y;
	
	if(document.getElementById('MyShippingOption') != null)
		document.getElementById('MyShippingOption').disabled = true;

}
