var bDebugOn = false;

function debug(str)
{
	if(bDebugOn)
	{
		alert(str);
	}
}

function getMessage(code)
{
	alert(code);
}

		function showCCFlds(obj)
		{
			try
			{
				var opt = obj.options[obj.selectedIndex];
				var vals = opt.value.split("*");
				//ert(vals[0]);
				//debug("@18:" + vals[0]);
				switch(vals[0])
				{
					case "NAMM":
					
					//	alert(obj.form.name);
						debug(lblExpMonth.style);
						lblExpMonth.style.color='red';
						obj.form.txtCVV2New.value = "000";
						obj.form.txtCVV2New.style.display = "none";
						obj.form.chkDebit.style.display = "none";
						//lblDebit.style.display="none";
						lblDebit.style.color="silver";
						//expiration.style.display = "none";
						obj.form.selExpMonth.style.display = "none";
						obj.form.selExpMonth.selectedIndex = 11;
						obj.form.selExpYear.selectedIndex = obj.form.selExpYear.options.length-1;
						obj.form.selExpYear.style.display = "none";
						//document.frmMainForm.action = "order.asp?CartId=" + CartId + "&type=8";
						//lblExpires.style.display = "none";
						break;
					case "CK":
						//debug(lblExpMonth.style);
						obj.form.txtCVV2New.value = "000";
						obj.form.txtCardNumber.value = "00000";
						obj.form.txtCardNumber.style.display = "none";						
						obj.form.txtCVV2New.style.display = "none";
						obj.form.chkDebit.style.display = "none";
						//lblDebit.style.display="none";
						lblDebit.style.color="silver";
						//expiration.style.display = "none";
						obj.form.selExpMonth.style.display = "none";
						obj.form.selExpMonth.selectedIndex = 11;
						obj.form.selExpYear.selectedIndex = obj.form.selExpYear.options.length-1;
						obj.form.selExpYear.style.display = "none";
						//document.frmMainForm.action = "order.asp?CartId=" + CartId + "&type=8";
						//lblExpires.style.display = "none";
						break;
					case "YAM":
					
					//	alert(obj.form.name);
						debug(lblExpMonth.style);
						lblExpMonth.style.color='red';
						obj.form.txtCVV2New.value = "000";
						obj.form.txtCVV2New.style.display = "none";
						obj.form.chkDebit.style.display = "none";
						//lblDebit.style.display="none";
						lblDebit.style.color="silver";
						//expiration.style.display = "none";
						obj.form.selExpMonth.style.display = "none";
						obj.form.selExpMonth.selectedIndex = 11;
						obj.form.selExpYear.selectedIndex = obj.form.selExpYear.options.length-1;
						obj.form.selExpYear.style.display = "none";
						//document.frmMainForm.action = "order.asp?CartId=" + CartId + "&type=8";
						//lblExpires.style.display = "none";
						break;
					case "PAYPAL_PYT":
						obj.form.txtCVV2New.value = "000";
						obj.form.txtCVV2New.style.display = "none";
						obj.form.chkDebit.style.display = "none";
						lblDebit.style.display="none";
						lblExpMonth.style.display="none";
						//expiration.style.display = "none";
						obj.form.txtCardHolder.value = "NA";
						document.frmMainForm.txtCardNumber.value ="NA";
						obj.form.selExpMonth.style.display = "none";
						obj.form.selExpMonth.selectedIndex = 11;
						obj.form.selExpYear.selectedIndex = obj.form.selExpYear.options.length-1;
						obj.form.selExpYear.style.display = "none";
						//document.frmMainForm.action = "PayPal2.asp?" + CartId ;
						//lblExpires.style.display = "none";
						break;
					default:
						obj.form.txtCVV2New.style.display = "";
						obj.form.chkDebit.style.display = "";
						lblDebit.style.display="";
						//lblCVVHelp.style.display="";
						//lblCVV.style.display="";
						//tdCVV.style.display = "";
						obj.form.selExpMonth.style.display = "";
						//obj.form.selExpMonth.selectedIndex = 11;
						//obj.form.selExpYear.selectedIndex = obj.form.selExpYear.options.length-1;
						obj.form.selExpYear.style.display = "";
						lblExpires.style.display = "";
						//document.frmMainForm.action = "order.asp?CartId=" + CartId + "&type=8";
					}
			}
			catch(ex)
			{
			}
		}


function MBFormCheck()
{
	
	//try
	//{
		if(document.frmMainForm.radPaySelection.length > 1)
		{
			if(!document.frmMainForm.radPaySelection[0].checked
				&& !document.frmMainForm.radPaySelection[1].checked)
			{
				//alert("Please Choose a Shipping Method");
				document.frmMainForm.radPaySelection[1].checked = true;
			}
		}
		
		if(document.frmMainForm.radPaySelection[0].checked)
		{
			var opts = document.frmMainForm.payment.options[document.frmMainForm.payment.selectedIndex].value.split("*");
			if(opts[3] == "CC")
			{
				if(document.frmMainForm.txtCVV2.value == "" && String(opts[1]) != "NAMM"
				&& String(opts[1]) != "YAM")
				{
					alert("Please enter security code!");
					document.frmMainForm.txtCVV2.focus();
					return(false);
				}
			}
			
		}


		if(document.frmMainForm.radPaySelection[1].checked)
		{
			top.status = "new card";
			var opts = document.frmMainForm.selCardType.options[document.frmMainForm.selCardType.selectedIndex].value.split("*");
			////{txtCardNumber
			//alert(document.frmMainForm.selCardType.options[document.frmMainForm.selCardType.selectedIndex].value);
			//alert(opts[3]);
				if((opts[1] != "PP") && document.frmMainForm.txtCardNumber.value == "")
				{
					alert("Please enter your Card Number.");
					document.frmMainForm.txtCardNumber.focus();
					return(false);
				}
			
				if(document.frmMainForm.txtCardHolder.value == "")
				{
					alert("Please enter your name as it appears on the card.");
					document.frmMainForm.txtCardHolder.focus();
					return(false);
				}

				if(document.frmMainForm.txtCVV2New.value == "" && String(opts[0]) != "NAMM" && String(opts[0]) != "YAM")
				{
					alert("CVV is a required field");
					document.frmMainForm.txtCVV2New.focus();
					return(false);
				}
				
			//}
			
		}
		
		/*
		if(!document.frmMainForm.chkPolicyAck.checked)
		{
			alert("Please check the box indicating that you have read and understand our Payment Terms.");
			document.frmMainForm.txtChkPolAcc.focus();
			return(false);
		}
		*/
		
		return(true);
	//}
	//catch(ex)
	//{
	///	top.status = ex.message;
	//}
}


//	@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//	@		Description			: This function will be called when the user clicks the continue button.
//  @                     It checks whether the user selected the new card option. If credit card 
//  @                     is selected then whether one or more item are payable thru credit card.
//	@	  Pages Affected  : Shipping.asp
//  @		Function Name		: Continue()									
//	@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

function Continue(CartId)
{
	var ret_val = true;
	var paytype = new Array();
	var iOrderType='8';
	var check;
	
	debug("@213:Continue");
	if (document.frmMainForm.ShipMethod){
		var vshiptext = document.frmMainForm.ShipMethod.options[document.frmMainForm.ShipMethod.selectedIndex].text;
		if(vshiptext.indexOf("MINIMUM") > -1) 
		{
			document.frmMainForm.NOTES.innerText  +=  "\r\nPLEASE SHIP:" + vshiptext ;
		}
	}
	
	if ((document.frmMainForm.elements["payment"]==null && document.frmMainForm.elements["selCardType"]==null) && document.frmMainForm.CODPay.value=="yes" && iOrderType == 8 ){
			alert(getMessage("iAllNotPayThroCOD_NoPayment"));
			return false;
		}
	if (document.frmMainForm.radPaySelection){
		if (document.frmMainForm.radPaySelection.length > 1)
		{
		if (document.frmMainForm.radPaySelection[0].checked)
			check = 1;
		else if (document.frmMainForm.radPaySelection[1].checked)
			check = 2;
		}
	}
	else
	{
		if (document.frmMainForm.payment)
			check = 1;
		else if (document.frmMainForm.selCardType)
			check = 2;
	}

	debug("@243:check: " + check);
	
	document.frmMainForm.hdnCheck.value = check;
	
	
	
	if (check == 1){
		paytype = document.frmMainForm.payment.options[document.frmMainForm.payment.selectedIndex].value.split("*")
		debug("@251:payment:" + paytype);
		if(parseInt(paytype[2]) == 3){
			if (document.frmMainForm.CreditPay.value=="no"){
					alert(getMessage("iAllNotPayThroCC"));
					document.frmMainForm.payment.focus()
					return false;
			}
			if (document.frmMainForm.DelNpc.value=="yes"){
					var strCfm;
					strCfm = confirm(getMessage("iNotPayThroCC"));
					if (!strCfm)
					return false;
			}
			if (parseInt(paytype[5]) == 5 || paytype[1] == "PAYPAL_PYT")
				ret_val = true;
			else
				ret_val = ValidateExisting();
		}
		if(parseInt(paytype[2]) == 2){
			if (document.frmMainForm.CODPay.value=="yes"){	
				alert(getMessage("iAllNotPayThroCOD"));
				document.frmMainForm.payment.focus()
				return false;
			}
		}
	}
	else if (check == 2){
		debug("@278:" + paytype[0]);
		debug("@279:Paytype:" + document.frmMainForm.selCardType.options[document.frmMainForm.selCardType.selectedIndex].value);
		paytype = document.frmMainForm.selCardType.options[document.frmMainForm.selCardType.selectedIndex].value.split("*")
		if (document.frmMainForm.CreditPay.value=="no"){
			alert(getMessage("iAllNotPayThroCC"));
			return false;
		}
		if (document.frmMainForm.DelNpc.value=="yes"){
			var strCfm;
			strCfm = confirm(getMessage("iNotPayThroCC"));
			if (!strCfm)
			return false;
		}
		debug("@290:paytype[3]=" + paytype[3]);
		if(paytype[4]=="CC" && paytype[0] != "CK")
		{
			ret_val = ValidateNewCard()
		}
		else
		{
			ret_val = true;
		}
	}
	
	debug("@300:ret-val:" + ret_val);
	
	if (ret_val)
	{
		debug("@304Check:" + check);
		
		//document.frmMainForm.action = "order2.asp?CartId=" + CartId + "&type=8";
		if(bDebugOn)
		{
			document.frmMainForm.action = "dumpform.asp?CartId=" + CartId + "&type=8";
			document.frmMainForm.action = "order.asp?CartId=" + CartId + "&type=8";
		}
		else
		{
			document.frmMainForm.action = "order.asp?CartId=" + CartId + "&type=8";
		}
		debug("@242:" + document.frmMainForm.action);
		debug("@243:" + paytype[5]);
		
		if (check==1 )
		{
		
			if ((parseInt(paytype[5]) == 5) && (paytype[6] == "T"))
			{
				document.frmMainForm.action = "WPPurchase.asp?CartId=?" + CartId ;
				document.frmMainForm.PROC_CODE.value = paytype[7];
			}
			else if(paytype[2]==3 && (paytype[7]!="" && paytype[7]!=0) && paytype[6]=="T" )
			{
				document.frmMainForm.action = "CCProcess.asp?CartId=" + CartId ;
			}
		}
		if (check==2)
		{
			if( paytype[2]=="T" && paytype[1]!="" && paytype[0] != "CK")
				document.frmMainForm.action = "CCProcess.asp?" + CartId ;
		}

		if(paytype[0].indexOf("PAYPAL") == 0)
		{
			document.frmMainForm.action = "PayPal2.asp?CartId=" + CartId ;
		}
		if(paytype[0].indexOf("TELEC") == 0)
		{
			//var vship = document.frmMainForm.ShipMethod.selectedIndex;
		
			document.frmMainForm.action = "telecheck.asp?CartId=" + CartId  
			//	+ vship + "&amt=" 
			//	+ document.frmMainForm.totalprice.value;
		}
	
		debug(document.frmMainForm.action);
		document.frmMainForm.submit();
	}
}
// End of the function Continue()


//	@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//	@		Description			: This function is used to calculate the shipping price dynamically ,
//	@		                	 whenever the user change the shipping method.
//	@	  Pages Affected  : Shipping.asp
//  @		Function Name		: UpdatePrice()									
//	@		Input Parameters: null
//	@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

function UpdatePrice(iLocale)
{
	if (document.frmMainForm.ShipMethod){
		if (iLocale == null)
			iLocale=1033;
		var vshipprice,iCurrentShipprice,iCurrentTaxPrice,frmshipprice,paytype;
		var bPaymentExists = true;	//This is true when payment select box is being used.
		
			if(document.frmMainForm.radPaySelection)
			{			
				try{
				bPaymentExists = document.frmMainForm.radPaySelection[0].checked;
				}	catch(ex) 
				{
					bPaymentExists = false;
				}
			}
	
		paytype=new Array();
		vshipprice = document.frmMainForm.ShipMethod.options[document.frmMainForm.ShipMethod.selectedIndex].value.split("*");
		vshiptext = document.frmMainForm.ShipMethod.options[document.frmMainForm.ShipMethod.selectedIndex].text;
		
		if (document.frmMainForm.payment)
			paytype = document.frmMainForm.payment.options[document.frmMainForm.payment.selectedIndex].value.split("*");
								
		if (bPaymentExists && paytype[3] == "COD"){
				iCurrentShipprice = vshipprice[0];
				iCurrentShipprice=getEnglishLocale(iCurrentShipprice,iLocale)
				iCurrentTaxPrice = vshipprice[4];
				iCurrentTaxPrice=getEnglishLocale(iCurrentTaxPrice,iLocale)
		}
		else{
				iCurrentShipprice = vshipprice[2];
				iCurrentShipprice=getEnglishLocale(iCurrentShipprice,iLocale)
				iCurrentTaxPrice = vshipprice[3];
				iCurrentTaxPrice=getEnglishLocale(iCurrentTaxPrice,iLocale)
		}
		
		if (iCurrentShipprice == null || iCurrentShipprice == "")
			iCurrentShipprice = 0;
		
		if (iCurrentTaxPrice == null || iCurrentTaxPrice == "")
			iCurrentTaxPrice = 0;
			
		iCurrentShipprice	= parseFloat(iCurrentShipprice)
		//iCurrentTaxPrice	= parseFloat(iCurrentTaxPrice)
		
		var iOriginalTaxable= parseFloat("79");		
		var iOriginalTax	= parseFloat("5.135");		
		var iOriginalExempt	= parseFloat("0");
		
		iCurrentTaxPrice = iOriginalTax  // ** dwb -- don't tax shipping
		
		var iCurrentTaxable, iCurrentExempt;
		
		if(iCurrentTaxPrice == iOriginalTax)	//This indicates no tax on shipping
		{
			iCurrentTaxable = iOriginalTaxable;
			iCurrentExempt	= iOriginalExempt+iCurrentShipprice;
		}
		else									//This indicates tax is charged on shipping
		{			
			iCurrentTaxable = iOriginalTaxable + iCurrentShipprice;
			iCurrentExempt	= iOriginalExempt;
		}
				
		document.frmMainForm.shipprice.value	= formatValue(iCurrentShipprice);
		document.frmMainForm.taxable.value		= formatValue(iCurrentTaxable);		
		document.frmMainForm.tax_price.value	= formatValue(iCurrentTaxPrice);
		document.frmMainForm.exempt.value		= formatValue(iCurrentExempt);
		document.frmMainForm.totalprice.value	= formatValue(iCurrentTaxable+iCurrentTaxPrice+iCurrentExempt);
		//document.frmMainForm.totalprice.value	= formatValue(iCurrentTaxable+iOriginalTaxPrice+iCurrentExempt);

		setFormat("frmMainForm.shipprice");
		setFormat("frmMainForm.taxable");
		setFormat("frmMainForm.tax_price");
		setFormat("frmMainForm.exempt");
		setFormat("frmMainForm.totalprice");
		
		document.frmMainForm.shipprice.value  =  getCurrentLocale(document.frmMainForm.shipprice.value,iLocale);
		if(vshiptext.indexOf("MINIMUM") > -1) 
		{
			document.frmMainForm.shipprice.value  =  "MIN" + document.frmMainForm.shipprice.value ;
		//	document.frmMainForm.NOTES.innerText  +=  "\r\nPLEASE SHIP:" + vshiptext ;
		}
		
		document.frmMainForm.taxable.value	= getCurrentLocale(document.frmMainForm.taxable.value,iLocale);
		document.frmMainForm.tax_price.value	= getCurrentLocale(document.frmMainForm.tax_price.value,iLocale);
		document.frmMainForm.exempt.value	= getCurrentLocale(document.frmMainForm.exempt.value,iLocale);
		document.frmMainForm.totalprice.value	= getCurrentLocale(document.frmMainForm.totalprice.value,iLocale);
		
		if(paytype[1] == "PAYPAL_PYT")
		{
			document.frmPayPal.amount.value = document.frmMainForm.totalprice.value;
			document.frmPayPal.shipping.value = document.frmMainForm.shipprice.value;
			//document.frmPayPal.submit();
		}

		//if(paytype[1] == "TELECHECK")
		//{
		//	document.frmTelecheck.Amount.value = document.frmMainForm.totalprice.value 
		//	 + document.frmMainForm.shipprice.value;
		//	
		//}

	}
}
// End of the function UpdatePrice()

//	@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//	@	Description		: This function is to find whether the user has entered all the  
//  @                     Mandatory Fields for the new card.
//	@	Pages Affected  : Shipping.asp
//  @	Function Name	: ValidateExisting()
//	@		
//	@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

function ValidateExisting()
{
	
	return true;
}


//	@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//	@	Description		: This function is to find whether the user has entered all the  
//  @                     Mandatory Fields for the new card.
//	@	Pages Affected  : Shipping.asp
//  @	Function Name	: ValidateNewCard()
//	@		
//	@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

function ValidateNewCard()
{
	// IF keynotes, just verify there is a number
	var cardType= document.frmMainForm.selCardType.options[document.frmMainForm.selCardType.selectedIndex].value.split("*");
	if(cardType[5]=="5") 
	{
		document.frmMainForm.selExpMonth.selectedIndex = 11;
		document.frmMainForm.selExpYear.selectedIndex = 19;
		if(document.frmMainForm.txtCardNumber.value == "")
		{
			alert("Please enter your card number.");
			document.frmMainForm.txtCardNumber.focus();
			return false;
		}
		else
		{
			return true;
		}
	}
	
	var date = new Date();
	var month = date.getMonth();
	var year = date.getFullYear();
	
	var vc = valcard();
	debug("@523:vc: " + vc);
	
	if((document.frmMainForm.txtCardNumber.value == "") || (parseInt(valcard()) == 0))
	{
		alert(getMessage("iValidCardNumber"));
		document.frmMainForm.txtCardNumber.focus();
		document.frmMainForm.txtCardNumber.select();
		return false;
	}
	
	if (document.frmMainForm.txtCVV2New.value != "")
		if(isNaN(document.frmMainForm.txtCVV2New.value)){
			alert(getMessage("iValidSecurityCode"));
			document.frmMainForm.txtCVV2New.focus();
			document.frmMainForm.txtCVV2New.select();
			return false;
		}
	if(parseInt(document.frmMainForm.selExpMonth.options[document.frmMainForm.selExpMonth.selectedIndex].value,10) == 0)
	{
		alert(getMessage("iSelectExpMonth"));
		document.frmMainForm.selExpMonth.focus();
		return false;
	}
	if((document.frmMainForm.selExpYear.options[document.frmMainForm.selExpYear.selectedIndex].value == year) && (parseInt(document.frmMainForm.selExpMonth.options[document.frmMainForm.selExpMonth.selectedIndex].value,10) < parseInt(month+1)))
	{
		alert(getMessage("iValidExpMonth"));
		document.frmMainForm.selExpMonth.focus();
		return false;
	}
	if(parseInt(document.frmMainForm.selExpYear.options[document.frmMainForm.selExpYear.selectedIndex].value) == 0)
	{
		alert(getMessage("iSelectExpYear"));
		document.frmMainForm.selExpYear.focus();
		return false;
	}
	if(document.frmMainForm.txtCardHolder.value=="" || document.frmMainForm.txtCardHolder.value.charAt(0)==" "){
			alert(getMessage("iValidText"));
			document.frmMainForm.txtCardHolder.focus();
			document.frmMainForm.txtCardHolder.select();
			return false;
	}
	
	return true;
}

//	@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//	@		Description			: Function IsNumeric checks whether the entered value is a 
//	@											numeric and greater than Zero
//  @		Function Name		: IsNumeric(value)									
//	@		Input Parameters	: value to be tested
//	@		Return Value		: 0 - Success	  1 - Failure
//	@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

function IsNumeric(value)
{
	var validate=/(^\d+$)/
	if ((validate.test(value)) && (value > 0))
		return 0; 
	else
		return 1; 
}
// End of the function IsNumeric(value)


//	@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//	@		Description			: This function is to validate card number.
//	@	  Pages Affected		: Shipping.asp
//  @		Function Name		: valcard()									
//	@		Input Parameters: null
//	@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

function valcard()
{	
	debug("Valcard:");
	
	var cardNumber,cardType,Checksum,Flag,Counter,PartNumber,Number;
	cardType= document.frmMainForm.selCardType.options[document.frmMainForm.selCardType.selectedIndex].value.split("*")
	cardNumber=document.frmMainForm.txtCardNumber.value
	var length = cardNumber.length;
	if( length == 0 ) {						
		alert(getMessage("iValidCardNumber"));
		return(0);				
	}
	var validate=/(^\d+$)/
	if (validate.test(cardNumber)==false)
		 return(0);
	
	if (cardType[5]=="5") return(1); // Keynotes okay
		
	debug("@607:Card Type" + cardType[5] + ", length: " + length);
	
	switch(parseInt(cardType[5])) {
		case 3:
			if( length != 15 ) {
				return(0);
			}
			var prefix = parseInt( cardNumber.substring(0,4));
			if(( prefix < 3400 || prefix > 3499 ) && ( prefix < 3700 || prefix > 3799 )) {
				return(0);
			}
			break;
		case 4:
			if( length != 16 ) {
				return(0);
			}
			var prefix = parseInt( cardNumber.substring(0,4));
			if( prefix != 6011 ) {
				return(0);
			}
			break;
		case 2:
			if( length != 16 ) {
				return(0);
			}
			var prefix = parseInt( cardNumber.substring(0,4));
			if( prefix < 5100 || prefix > 5599) {
				return(0);
			}
			break;
		case 1:
			if( length != 16 && length != 13 ) {
				return(0);
			}
			var prefix = parseInt( cardNumber.substring(0,4));
			if( prefix < 4000 || prefix > 4999)  {
				return(0);
			}
			break;
		case 6:
			if ( length != 14 )
			{
				return(0);
			}
			var prefix = parseInt( cardNumber.substring(0,4));
			if(( prefix < 3000 || prefix > 3059 ) && ( prefix < 3600 || prefix > 3699 ) && ( prefix < 3800 || prefix > 3889 ) ) 		
			{
				return(0);
			}
			break;
		case 7:
			if ( length != 14 )
			{
				return(0);
			}
			var prefix = parseInt( cardNumber.substring(0,4));
			if( prefix < 3890 || prefix > 3899 )
			{
				return(0);
			}
			break;
		case 9:
			if ( length != 16 )
			{
				return(0);
			}
			var prefix = parseInt( cardNumber.substring(0,4));
			if( prefix < 3528 || prefix > 3589 )
			{
				return(0);
			}
			break;
		case 8:
			if ( length != 15 )
			{
				return(0);
			}
			var prefix = parseInt( cardNumber.substring(0,4));
			if( prefix != 2014 || prefix != 2049 )
			{
				return(0);
			}
			break;
	}

	Counter=length;
	Checksum=0;
	Number=0;
	PartNumber='';
	Flag=0;
	while(Counter > 0) {		
		PartNumber = cardNumber.charAt(Counter-1);
		Number = parseInt(PartNumber);
		if (Flag) {
			Number*=2;
			if (Number >= 10) Number-=9;
		}
		Checksum +=	Number;
		Flag=!(Flag)
		Counter = Counter -1;
	}
	if (Checksum%10 == 0)
		return(1); 
	else
		return(0);
}
// End of the function valcard()

//	@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//	@		Description			: This function is to set the value of form variable 
//	@							  hdnAVSAddressCode.
//	@		Pages Affected		: Shipping.asp
//  @		Function Name		: SetAVSAddressCode()
//	@		Input Parameters	: null
//	@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
function SetAVSAddressCode(check)
{
	if (check == 1){
		if(document.frmMainForm.selAVSAddr)
			document.frmMainForm.hdnAVSAddressCode.value = document.frmMainForm.selAVSAddr.options[document.frmMainForm.selAVSAddr.selectedIndex].value;
		else if (document.frmMainForm.hdnAVSAddr)
			document.frmMainForm.hdnAVSAddressCode.value = document.frmMainForm.hdnAVSAddr.value 
	}
	else if (check==2){
		if(document.frmMainForm.selAVSAddrNew)
			document.frmMainForm.hdnAVSAddressCode.value = document.frmMainForm.selAVSAddrNew.options[document.frmMainForm.selAVSAddrNew.selectedIndex].value;
		else if(document.frmMainForm.hdnAVSAddrNew)
			document.frmMainForm.hdnAVSAddressCode.value = document.frmMainForm.hdnAVSAddrNew.value;
	}
}

//	@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//	@		Description			: This function is to automatically select the option of  
//	@							  New card if the user starts typing the card number.
//	@		Pages Affected		: Shipping.asp
//  @		Function Name		: toggleOption()
//	@		Input Parameters	: null
//	@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

function toggleOption()
{
	if (document.frmMainForm.radPaySelection)
		if (document.frmMainForm.txtCardNumber != "")
			try{
				document.frmMainForm.radPaySelection[1].checked = true;
			}
			catch(ex)
			{
				debug("toggleOption" + ex.message);
			}
}		


var  iAllNotPayThroCC = 0;
var  iIndividualPrice = 1;
var  iShownBelow = 2;
var  iUniqueAttributes = 3;
var  iCallForPrice = 4;
var  iCartSpaces = 5;
var  iValidInvNo = 6;
var  iValidNo = 7;
var  iValidQuantity = 8;
var  iGuest = 9
var  iValidPriceComb = 10;
var  iSelectOtherInv = 11;
var  iKitPrice = 12;
var  iLoginName = 13;
var  iLoginPassNoSpace = 14;
var  iLoginEmpty = 15;
var  iMaxPriceGTMinPrice = 16;
var  iMoreInfoNotAvail = 17;
var  iChgSecretInfo = 18;
var  iRepCallForShipDetail = 19;
var  iRepCallForPayOption = 20;
var  iChooseDelMethods = 21;
var  iChooseCartName = 22;
var  iEnterSearchText = 23;
var  iValidCardNumber = 24;
var  iValidEmail = 25;
var  iValidInteger = 26;
var  iValidPrice = 27;
var  iValidReasonForReturn = 28;
var  iValidText = 29;
var  iEnterCartName = 30;
var  iEnterCustSurvDet = 31;
var  iEnterSecretAns = 32;
var  iValidEntry = 33;
var  iValidFaxNo = 34;
var  iLoginEmail = 35;
var  iValidPhoneNo = 36;
var  iValidStateCode = 37;
var  iValidZipCode = 38;
var  iMandatory = 39;
var  iPass4Char = 40;
var  iLogin4Char = 41;
var  iPassCPassSame = 42;
var  iEnterZipCode = 43;
var  iAddressType = 44;
var  iLoginNoSpace = 45;
var  iPassNoSpace = 46;
var  iSecretAnsNoSpace = 47;
var  iSecretAnsStartNoSpace = 48;
var  iEnterNewPass = 49;
var  iEnterNewSecretAns = 50;
var  iEnterNewSecretQue = 51;
var  iSelectCountry = 52;
var  iSelectShipAddr = 53;
var  iSelectChgPass = 54;
var  iSelectExpMonth = 55;
var  iSelectExpYear = 56;
var  iSelectItems = 57;
var  iSelectRMAType = 58;
var  iValidExpMonth = 59;
var  iPrintVerKit = 60;
var  iQtyEqualSerial = 61;
var  iQty = 62;
var  iSearchNoStartSpace = 63;
var  iOneItemToCont = 64;
var  iItemToBeReturned = 65;
var  iSerialNotSelected = 66;
var  iNotPayThroCC = 67;
var  iStAddrGT255 = 68;
var  iStAddrStartSpace = 69;
var  iKitItem = 70;
var  iQtyGreaterThanShipQty = 71;
var  iQtyLessThanOne = 72;
var  iMatrixCombNotPresent  = 73;
var  iMoreThanOneSecretAns = 74;
var  iSelectCity = 75;
var  iTotalQtyExceed = 76;
var  iRemoveItemFromCart = 77;
var  iEmptyCart = 78;
var  iDelSavedCart = 79;
var  iItemCode = 80;
var  iNext = 81;
var  iPrevious = 82;
var  iEmptyWishCart = 83
var  iBuyValidQuantity = 84
var  iRemoveItemFromWishCart = 85
var  iEnterName = 86;
var  iSelectEvent = 87;
var  iEndDateVal = 88;
var  iEventDateVal = 89;
var  iFirstName = 90;
var  iLastName = 91;
var  iGroomFirst = 92;
var  iGroomLast = 93;
var  iBrideFirst = 94;
var  iBrideLast = 95;
var  iNonWishListItemsInCartPresent = 96;
var  iCannotEditEventHoldAddr = 97;
var  iEventRemove = 98;
var  iEventCurrent = 99;
var  iWishSearchDateValidate = 100;
var  iAllNotPayThroCOD = 101;
var  iAllNotPayThroCOD_NoPayment = 102;
var	 iSelectAddress = 103;
var  iValidSecurityCode = 104;
var  iRemoveCard=105;
var  iDefaultCard=106;
var  iNonEditableAddresses=107;
var  iInValidStartDate=108;
var iInvalidLoginId = 109;
var iInvalidCartname = 110;
var iSpouseFirstName = 111;
var iSpouseLastName	= 112;
var iAccessCode = 113;
var iCC_Expiry_Msg1 = 114;
var iCC_Expiry_Msg2 = 115;
var iCC_Expiry_Msg3 = 116;
var iCC_Expiry_Msg4 = 117;
var iCC_Expiry_Msg5 = 118;
var iCC_Expiry_Msg6 = 119;
var iCC_Expiry_Msg7 = 120;
var iCC_Expiry_Msg8 = 121;


var aMessageStrings = new Array();

aMessageStrings[0]  = "Some of the items in your Shopping Cart are not payable through Credit Card. Please select a different payment method";
aMessageStrings[1]  = "and their individual prices";
aMessageStrings[2]  = "are shown below";
aMessageStrings[3]  = "Attributes are the same. Please select unique attributes";
aMessageStrings[4]  = "Call for price";
aMessageStrings[5]  = "Cart name should not start with spaces";
aMessageStrings[6] = "Enter a valid Invoice Number";
aMessageStrings[7] = "Enter a valid number";
aMessageStrings[8] = "Enter valid quantity";
aMessageStrings[9] = "guest";
aMessageStrings[10] = "Invalid price combination";
aMessageStrings[11] = "Items in this invoice are invalid. Click on back to select other invoice";
aMessageStrings[12] = "KIT PRICE";
aMessageStrings[13] = "Login Name cannot be";
aMessageStrings[14] = "Login name or password cannot have spaces";
aMessageStrings[15] = "Login name should not be empty";
aMessageStrings[16] = "Maximum Price should be greater than Minimum Price";
aMessageStrings[17] = "More information is not available for this item";
aMessageStrings[18] = "or Change Secret Info";
aMessageStrings[19] = "Our representative will call you for shipping details";
aMessageStrings[20] = "Our representative will contact you for your preferred payment option";
aMessageStrings[21] = "Please choose delivery method";
aMessageStrings[22] = "Please choose the Cart Name";
aMessageStrings[23] = "Please enter a word or phrase to be searched";
aMessageStrings[24] = "Please enter a valid card number";
aMessageStrings[25] = "Please enter a valid Email address";
aMessageStrings[26] = "Please enter a valid integer";
aMessageStrings[27] = "Please enter a valid price";
aMessageStrings[28] = "Please enter a valid reason for return";
aMessageStrings[29] = "Please enter a valid text";
aMessageStrings[30] = "Please enter Cart Name";
aMessageStrings[31] = "Please enter Customer Survey details. Mandatory fields cannot be empty";
aMessageStrings[32] = "Please enter the secret answer";
aMessageStrings[33] = "Please enter valid entry";
aMessageStrings[34] = "Please enter valid Fax number";
aMessageStrings[35] = "Please enter valid Login/Email id";
aMessageStrings[36] = "Please enter valid Phone number";
aMessageStrings[37] = "Please enter valid State Code";
aMessageStrings[38] = "Invalid zip code - please check if the zip code you entered is numeric and five digits long";
aMessageStrings[39] = "Please enter value. Mandatory fields cannot be empty";
aMessageStrings[40] = "Please make sure your new password has at least 4 characters";
aMessageStrings[41] = "Please make sure your login name is at least 4 characters";
aMessageStrings[42] = "Please make sure that password and confirm password are same";
aMessageStrings[43] = "Please enter ZIP code";
aMessageStrings[44] = "Please select address type";
aMessageStrings[45] = "Please make sure that the login name does not contain any spaces";
aMessageStrings[46] = "Please make sure that the password does not contain any spaces";
aMessageStrings[47] = "Secret answer field should not start with spaces";
aMessageStrings[48] = "Please make sure that the Secret Answer does not start with space";
aMessageStrings[49] = "Please make sure that you have entered a new password";
aMessageStrings[50] = "Please make sure that you have entered Secret Answer";
aMessageStrings[51] = "Please make sure that you have entered Secret Question";
aMessageStrings[52] = "Please select a Country";
aMessageStrings[53] = "Please select a shipping address";
aMessageStrings[54] = "Please select Change password";
aMessageStrings[55] = "Please select Expiry Month";
aMessageStrings[56] = "Please select Expiry Year";
aMessageStrings[57] = "Please select one or more Items";
aMessageStrings[58] = "Please select RMA types";
aMessageStrings[59] = "Please select valid Expiry Month";
aMessageStrings[60] = "Printable Version of Kit";
aMessageStrings[61] = "Qty to be returned should be equal to the number of serial selected";
aMessageStrings[62] = "Qty";
aMessageStrings[63] = "Search field should not start with spaces";
aMessageStrings[64] = "Select atleast one item to continue";
aMessageStrings[65] = "Select the items to be returned by clicking the corresponding checkbox";
aMessageStrings[66] = "Serial numbers are not selected for the quantity specified";
aMessageStrings[67] = "Some Items selected are Not Payable through Credit card. Click OK to Create the Order without these items. Click Cancel to change Payment Method";
aMessageStrings[68] = "Street address should not be greater than 255 characters";
aMessageStrings[69] = "Street address should not start with spaces";
aMessageStrings[70] = "The Items of the kit";
aMessageStrings[71] = "The quantity to be returned cannot be greater than the shipped qty";
aMessageStrings[72] = "The quantity to be returned cannot be less than one";
aMessageStrings[73] = "The selected matrix combination is not present";
aMessageStrings[74] = "You have entered more than one secret answer";
aMessageStrings[75] = "Please select a city";
aMessageStrings[76] = "Total quantity in the cart cannot exceed";
aMessageStrings[77] = "Are you sure you want to remove this item from your shopping cart?";
aMessageStrings[78] = "Are you sure you want to empty your shopping cart?";
aMessageStrings[79] = "Are you sure you want to delete this saved cart?";
aMessageStrings[80] = "Item Code";
aMessageStrings[81] = "Next";
aMessageStrings[82] = "Previous";
aMessageStrings[83] = "Are you sure you want to remove all items?";
aMessageStrings[84] = "Enter valid quantity";
aMessageStrings[85] = "Are you sure you want to remove this item?";
aMessageStrings[86] = "Please enter a name";
aMessageStrings[87] = "Please select an event name";
aMessageStrings[88] = "End date should be greater than or same as start date";
aMessageStrings[89] = "Event date should be greater than start date";
aMessageStrings[90] = "First Name";
aMessageStrings[91] = "Last Name";
aMessageStrings[92] = "Groom's First Name";
aMessageStrings[93] = "Groom's Last Name";
aMessageStrings[94] = "Bride's First Name";
aMessageStrings[95] = "Bride's Last Name";
aMessageStrings[96] = "Your cart contains some of the items, which are not in the event holder's list. These items will also be shipped to the event holder's shipping address. Click OK if you wish to proceed";
aMessageStrings[97] = "You cannot edit event holder's shipping address";
aMessageStrings[98] = "Are you sure you want to remove this event?";
aMessageStrings[99] = "Please select the event to make it current";
aMessageStrings[100] = "Event to date should be greater than event from date";
aMessageStrings[101] = "Your cart contains some downloadable item(s) which cannot be paid through COD Payment Method. Please select a different payment method";
aMessageStrings[102] = "A payment method is required to proceed further as your cart contains some downloadable item(s). Please remove the downloadable item(s) to proceed";
aMessageStrings[103] = "Please select an address.";
aMessageStrings[104] = "Please enter a valid security code.";
aMessageStrings[105] = "Are you sure you want to delete this card?";
aMessageStrings[106] = "Please select the card to make it default";
aMessageStrings[107] = "This address cannot be edited since it is used in the final document";
aMessageStrings[108] = "Start date should be greater than or same as current date";
aMessageStrings[109] = "Only the following characters are allowed for Login" + ":  \n [0-9 A-Z a-z #:;,/_><-]";
aMessageStrings[110] = "Enter a valid cart name";
aMessageStrings[111] = "Spouse's First Name";
aMessageStrings[112] = "Spouse's Last Name";
aMessageStrings[113] = "Please enter a valid access code";
aMessageStrings[114] = "The credit card you selected has expired.";
aMessageStrings[115] = "To continue, you can do one of the following";
aMessageStrings[116] = "select another valid card from the list.";
aMessageStrings[117] = "pay using a new card.";
aMessageStrings[118] = "click on EDIT to update your card details.";
aMessageStrings[119] = "Invalid expiry date.";
aMessageStrings[120] = "Please verify and try again.";
aMessageStrings[121] = "This option is available for credit cards only."

//	@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//	@	Description			: This function gets the message thats to be displayed in alert,
//  @						  confirm and other texts in Library files.
//  @   Pages Affected		: All pages
//  @	Function Name		: getMessage(iMessageID)									
//	@	Input Parameters	: iMessageID --> Constant string
//	@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

function getMessage(iMessageID){
	 return eval("aMessageStrings["+iMessageID+"]");
}

function popUp(url) {
sealWin=window.open(url,"win",'toolbar=0,location=0,directories=0,status=1,menubar=1,scrollbars=1,resizable=1,width=500,height=450');
self.name = "mainWin";
}


	function RemoveUnlisted(list, str)
	{
		var newStr = "";

		for (var i = 0;  i < str.length;  i++)
		{
			var ch = str.charAt(i);
			for (j = 0;  j < list.length;  j++)
			if (ch == list.charAt(j))
				newStr += ch;
		}
		return (newStr)	
	}
