//<script>
var blTransInProgress = false;
var jsTab = String.fromCharCode(9);
var strOrigCardString;
var intOrigCardType;

function UseThisCard()
{
	if(blTransInProgress){alert("Your payment request is being processed, please wait.");return false;}

	var objCardType = document.frmCreditCard.PaymentType;

	blTransInProgress = true;

/*
	if(document.frmCreditCard.CVV2.value == '')
	{
		alert("Please enter your credit card CVV2 number.");
		document.frmCreditCard.CVV2.focus();
		return false;
	}
*/

	
	document.frmCreditCard.defaultCard.value = 'Yes';
	document.frmCreditCard.action.value = 'ProcessPayment';

	if(document.frmCreditCard.PaymentType.value != 'Combo'){document.frmCreditCard.PaymentType.value = 'Credit';}
	
	document.frmCreditCard.submit();
	return false;
}

function ValidatePayment()
{

	if(blTransInProgress){alert("Your payment request is being processed, please wait.");return false;}

	blTransInProgress = true;

	var objCardType = document.frmCreditCard.CreditCardType;
	var strValue = '';
	var i
	var blChecked = false;

	for( i = 0; i < objCardType.length; i++)
	{
		if(objCardType[i].checked)
		{
			strValue = objCardType[i].value;
			blChecked = true;
		}
	}


	/*
	if(objCardType.value != 'Combo')
	{
		for( i = 0; i < objCardType.length; i++)
		{
			if(objCardType[i].checked)
			{
				strValue = objCardType[i].value;
				blChecked = true;
			}
		}
	}
	else
	{
		blChecked = true;	
		strValue = objCardType.value;
	}
	*/
	
	if(!(blChecked))
	{
		alert("Please select a payment method.");
		blTransInProgress = false;
		return false;
	}
	else
	{
		document.frmCreditCard.action.value = 'ProcessPayment';

		switch (strValue)
		{
			case 'BBucks':
				document.frmCreditCard.PaymentType.value = 'BBucks';
				document.frmCreditCard.submit();
				break;
			case 'PayPal':
				document.frmCreditCard.PaymentType.value = 'PayPal';
				document.frmCreditCard.submit();
				break;
			default:
				if(document.frmCreditCard.PaymentType.value != 'Combo'){document.frmCreditCard.PaymentType.value = 'Credit';}
				/*if(document.frmCreditCard.CVV2.value == '')
				{
					alert("Please enter your credit card CVV2 number.");
					document.frmCreditCard.CVV2.focus();
					return false;
				}*/
				ValidateCard();
				break;
		}	
		return false;
	}
}

function ValidateCard()
{
	var strCreditCard = verifyCardValidity();
	
	if (strCreditCard != false)
	{	
		if(document.frmCreditCard.txtPassword != null)
		{
			if(document.frmCreditCard.txtPassword.value != '')
			{
				document.frmCreditCard.CardNumber.value = strCreditCard;
				document.frmCreditCard.submit();
				return false;
			}
			else
			{
				alert("Please enter your password.");
			}
		}
		else
		{
			document.frmCreditCard.submit();
			return false;
		}
	}
	else
	{
		document.frmCreditCard.CardNumber.focus();
		blTransInProgress = false;
		return false;
	}
}

function chargeCard()
{
	if(!(blTransInProgress))
	{
		blTransInProgress = true;
		document.frmCreditCard.ChargeCard.disabled = true;
//	
		if (document.frmCreditCard.NameOnCard.value.length < 1)
		{
			alert("Please enter the name as it reads on the credit card!");
			document.frmCreditCard.NameOnCard.focus();
			blTransInProgress = false;
//			document.frmCreditCard.ChargeCard.disabled = false;
			return(false);
		}
	
		var strCreditCard = verifyCardValidity();
		if (strCreditCard != false)
		{	
			document.frmCreditCard.ExpDate.value = strExpDate;
			document.frmCreditCard.CardNumber.value = strCreditCard;
			document.frmCreditCard.submit();
			return false;
		}
		else
		{
			document.frmCreditCard.CardNumber.focus();
			blTransInProgress = false;
//			document.frmCreditCard.ChargeCard.disabled = false;
			return false;
		}
	}
	else
	{
		alert("Please wait for the current request to finish.");
		return false;
	}
}

function verifyCardValidity()
{
	var objSpace = / /g;
	var objDash = /-/g;
	
	var objCreditCard = document.frmCreditCard.CardNumber;
	var objCardType = document.frmCreditCard.CreditCardType;
	var strCardNumber = new String(objCreditCard.value);
	strCardNumber = strCardNumber.replace(objSpace,"");
	strCardNumber = strCardNumber.replace(objDash,"");

	if (strOrigCardString == objCreditCard.value && intOrigCardType == objCardType[objCardType.selectedIndex].value){return(document.frmCreditCard.CardNumber.value)};
	if (strOrigCardString == objCreditCard.value && intOrigCardType != objCardType[objCardType.selectedIndex].value)
	{
		alert("A change was made to the card type.\nYou must enter a valid card number and type combination!");
		return(false);
	}	
	var i, id
	
	for( i = 0; i < objCardType.length; i++)
	{
		if(objCardType[i].checked)
		{
			id = objCardType[i].value;
		}
	}

	var id2 = parseInt(id) + 10;

	var strInfo = new String();
	var vntCardInfo;
	
	for (i = 0; i < document.frmCreditCard.length; i++)
		{
			if (document.frmCreditCard[i].name == id2)				
				{
					strInfo = document.frmCreditCard[i].value;
					vntCardInfo = strInfo.split("|");
					var intFirstDigit = vntCardInfo[0];
					var intLengthA = vntCardInfo[1];
					var intLengthB = vntCardInfo[2];
					break;
				}
		}

	var intCardNumberLength = strCardNumber.length;
	
	// Validate Card Number length
	if (intCardNumberLength != intLengthA && intCardNumberLength != intLengthB)
	{
		alert("The credit card number does not contain the proper amount of digits!");
		return(false);
	} 
	
	// Validate that first digit is correct for card type 
	if (Number(intFirstDigit) != Number(strCardNumber.substr(0,1)))
	{	
		alert("The credit card number is not valid!  First Digit is not valid");
		return(false);
	}

	// validate check digits
	var blnDouble = false;
	var intCheckSum = 0;
	var intDigits = intCardNumberLength - 1;

	do
	{
		intDigitValue = strCardNumber.substr(intDigits,1);
		if (!blnDouble)
			blnDouble = true;
		else 
		{
			intDigitValue = intDigitValue * 2;
			if (intDigitValue >= 10){intDigitValue = intDigitValue - 9};
			blnDouble = false;
		}
		intCheckSum = Number(intCheckSum) + Number(intDigitValue);
		intDigits = intDigits -1
	}
	while(intDigits > -1)
	
	if (intCheckSum % 10 != 0) 
	{	
		alert("The credit card number is not valid!");
		return(false);
	}
	
	
	// Card is valid: return card number without formatting
	return(strCardNumber); 
}
