<!--
var bSubmitted = false;
var userDatePrev;

function parseMoney(sMoney) {
	var dotPos; 
	var sDollars;
	var sCents;
	if(sMoney=="") {
		return "";
	}
	//Remove the dollar sign, if there is one
	sMoney = stripChar(sMoney,"$");
	sMoney = stripChar(sMoney,",");
	//Make sure it's a number
	if (isNaN(sMoney)) {
		return ("ERROR");
	}
	//Find the decimal point
	dotPos = sMoney.indexOf(".");
		//No decimal, ok
	if (dotPos == -1) {
		return ("$" + AddCommas(sMoney) + ".00");
	}

	sDollars = sMoney.substring(0,dotPos);
	sCents = sMoney.substring(dotPos + 1, sMoney.length);

	//Check the cents for proper length
	if (sCents.length != 2) {
		sCents = parseCents(sCents);
	}
	return ("$" + AddCommas(sDollars) + "." + sCents);
}

function parseCents(cents) {
	if (cents.length == 1) {
		return (cents + "0");
	}
	else if (cents.length == 0) {
		return ("00");
	} else {
		var newCents = cents.substring(0,2);
		var ThirdDigit = cents.substring(2,3);
		//I'm ignoring everything after the third digit
		if (ThirdDigit < 5) {
			return (newCents);
		} else {
			if (newCents == "00") {
				return ("01");
			}
			return (parseInt(newCents) + 1);
		}
	}
}

function AddCommas(Dollars) {
	var retVal='';
	var loop;
	var x = Dollars.length % 3;
	for (loop=0;loop<x;loop++) {
		retVal = retVal + Dollars.substring(loop, loop + 1);
	}
	for (loop=x;loop<=Dollars.length - 3;loop+=3) {
		retVal = retVal + "," + Dollars.substring(loop,loop+3)
	}
	if (retVal.substring(0,1) == ",") {
		//Lose the leading comma we get when number
		//of digits is divisible by 3...
		retVal = retVal.substring(1,retVal.length);
	}
	return (retVal);
}

function FormatBoxMoney(sControlID) {
	var Control;
	Control = eval('document.forms[0].' + sControlID);
	Control.value = parseMoney(Control.value);
}

function FormatBoxSocial(sControlID) {
	var Control;
	Control = eval('document.forms[0].' + sControlID);
	Control.value = parseSocial(Control.value);
}

function parseSocial(sSocialNum) {
	sSocialNum = stripChar(sSocialNum,"-");
	sSocialNum = stripChar(sSocialNum," ");
	if(sSocialNum == "") {
		return "";
	}
	if (isNaN(sSocialNum)) {
		return ("ERROR");
	}
	if (sSocialNum.length != 9) {
		return ("ERROR");
	}
	return (sSocialNum.substring(0,3) + "-" + sSocialNum.substring(3,5) + "-" + sSocialNum.substring(5,9));
}

function FormatBoxEmail(sControlID){
	var Control;
	var Search;
	var Index1;
	var Index2;

	Control = eval('document.forms[0].' + sControlID);
	Search = /@/;
	Index1 = Control.value.search(Search);
	Search = /\./;
	Index2 = Control.value.search(Search);

	if(Control.value != "") {
		if(Index1 == -1 || Index2 == -1)
			Control.value = "ERROR";
	}
}

function FormatBoxPhone(sControlID){
	var Control;
	Control = eval('document.forms[0].' + sControlID);
	Control.value = parsePhone(Control.value);
}

function FormatBoxPhoneObj(objControl){
	objControl.value = parsePhone(objControl.value);
}
	
function parsePhone(sPhone) {
	sPhone = stripChar(sPhone,"(");
	sPhone = stripChar(sPhone,")");
	sPhone = stripChar(sPhone," ");
	sPhone = stripChar(sPhone,"-");
	if(sPhone.length == 0) {
		return('');
	}
	if (sPhone.length != 10) {
		return ("ERROR");
	}
	if (isNaN(sPhone)) {
		return ("ERROR");
	}
	return ("(" + sPhone.substring(0,3) + ") " + sPhone.substring(3,6) + "-" + sPhone.substring(6,10));
}

var curDate = new Date;
var curYear;
curDate.getDate();
curYear = curDate.getFullYear();

function FormatBoxYear(sControlID) { //just to be sure we have a four digit year.
	var Control, CtrlVal;
	Control = eval('document.forms[0].' + sControlID);
	CtrlVal = Control.value;
	if(CtrlVal.length < 4)
		Control.value = "ERROR";
}
	
function FormatBoxDate(sControlID) {
	var Control;
	Control = eval('document.forms[0].' + sControlID);
	Control.value = parseDate(Control.value);
}

function parseDate(sDate) {
	var month;
	var day;
	var year;
	var delimiter;
	if(sDate == "") {
		return "";
	}
	if (sDate.indexOf("/") == 0 || sDate.indexOf("-") == 0) {
		//Error if date starts with a delimiter
		return ("ERROR");
	}
	if (sDate.indexOf("/") != -1 && sDate.indexOf("-") != -1) {
		//I'm too arrogant to accept multiple delimiters
		return ("ERROR");
	}

	if (sDate.indexOf("/") == -1 && sDate.indexOf("-") == -1) {
		if ((sDate.length == 6 || sDate.length == 8) && isNaN(sDate) == false) {
			month = sDate.substring(0,2);
			day = sDate.substring(2,4);
			year = sDate.substring(4,sDate.length);
			if (year.length == 2) {
				if (year >= "00" && year < "36") {
					year = "20" + year;
				}
				else if (year > "35" && year <= "99") {
					year = "19" + year;
				}
			}
			if (verifyDates(month, day, year)) {
				return (month + "/" + day + "/" + year);
			}
			return ("ERROR");
		}
		return ("ERROR");
	}
	else { //delims are used
		if (sDate.indexOf("/") != -1) {
			delimiter = "/";
		}
		if (sDate.indexOf("-") != -1) {
			delimiter = "-";
		}
	}

	month = sDate.substring(0, sDate.indexOf(delimiter));
	if (month.length < 2) {
		month = "0" + month;
	}
	day = sDate.substring(sDate.indexOf(delimiter) + 1,sDate.lastIndexOf(delimiter));
	if (day.length < 2) {
		day = "0" + day;
	}
	year = sDate.substring(sDate.lastIndexOf(delimiter) + 1, sDate.length);
	if (year.length == 2) {
		if (year >= "00" && year < "36") {
			year = "20" + year;
		}
		else if (year > "35" && year <= "99") {
			year = "19" + year;
		}
		//year = "20" + year;
	}
	if (verifyDates(month, day, year)) {
		return (month + "/" + day + "/" + year);
	}
	else {
		return ("ERROR");
	}
	return ("Drop-through");
}

function verifyDates(sMonth, sDay, sYear) {
	//Waste some system resources, how many days in the month?
	var monthDays = new Array(12);
	monthDays[1] = 31;
	monthDays[2] = 28;
	monthDays[3] = 31;
	monthDays[4] = 30;
	monthDays[5] = 31;
	monthDays[6] = 30;
	monthDays[7] = 31;
	monthDays[8] = 31;
	monthDays[9] = 30;
	monthDays[10] = 31;
	monthDays[11] = 30;
	monthDays[12] = 31;

	if (parseInt(sYear) % 4 == 0) {
		//Account for the leap year
		monthDays[2]++;
	}
	if (parseInt(sMonth, 10) < 13 && parseInt(sYear, 10) > 1898 && parseInt(sDay, 10) <= monthDays[parseInt(sMonth, 10)]) {
		return (true);	
	}
	return (false);
}

function stripChar(sTemp, sStrip) {
	var x;
	var output='';

	for(x=0;x<=sTemp.length;x++) {
		if (sTemp.substring(x,x+1) != sStrip) {
			output = output + sTemp.substring(x,x+1)
		}
	}
	return (output);
}

function FormatBoxZip(sControlID) {
	var control;
	control = eval('document.forms[0].' + sControlID);
	control.value = parseZip(control.value);
}

function FormatBoxZipObj(objControl) {
	objControl.value = parseZip(objControl.value);
}

function parseZip(sZip) {
	sZip = stripChar(sZip,"-");
	if(sZip=="")
	{return "";}
	if(isNaN(sZip)) {
		return 'ERROR';
	}
	if(sZip.length != 5) {
		return 'ERROR';
	}
	if(sZip.length == 5) {
		return sZip;
	}
}

function FormatBoxZip4(sControlID) {
	var control;
	control = eval('document.forms[0].' + sControlID);
	control.value = parseZip4(control.value);
}

function parseZip4(sZip) {
	sZip = stripChar(sZip,"-");
	if(sZip=="")
	{return "";}
	if(isNaN(sZip)) {
		return 'ERROR';
	}
	if(sZip.length != 4) {
		return 'ERROR';
	}
	if(sZip.length == 4) {
		return sZip;
	}
}

function CAPIT(scontrol) {
	var control;
	control = eval('document.forms[0].' + scontrol);		
	control.value = control.value.toUpperCase();
}

function checkInt(sControl) {
	var control;
	control = eval('document.forms[0].' + sControl);
	if(isNaN(control.value)) {
		control.value = 'ERROR';
	}
	else {
		if(control.value=='') {
			control.value=0;
		}
		else {
			control.value = parseInt(control.value);
		}
	}
}

function validTax(objTaxID) {
	//alert(objTaxID);
	var control;
	control = eval('document.forms[0].' + objTaxID);

	//alert(control.value);
	if(isNaN(control.value)) {
		control.value = 'ERROR';
	}
	else if(control.value.length != 9 && control.value != '') {
		control.value = 'ERROR';
	}
}

function AmpersandCheck(sControl) {
	var control;
	control = eval('document.forms[0].' + sControl);
	if(control.value.indexOf('&') != -1) {
		var srch = /&/g;
		control.value = control.value.replace(srch,'AND');
	}
}

function ValidateABA(sABANumber) {
	var sWeights = "37137137";
	var iResults = 0;
	var iCheckDigit = sABANumber.substring(8,9);
	var bValidABA = true;
	var sErr;

	for(var i = 0; i < 8; i++) {
		iResults += parseInt(sWeights.substring(i,i+1)) * parseInt(sABANumber.substring(i,i+1));
	}
	var iGT = parseInt(iResults) + parseInt(iCheckDigit);
	var sGT = iGT.toString();
	if(sGT.substring((sGT.length - 1),sGT.length) != "0") {
		sErr = "The Routing Number you have enterd is invalid.\nPlease check the number and try again.";
		bValidABA = false;
	}

	if(sABANumber.length != 9) {
		if(sABANumber.length > 9)
			sErr = "The Routing number you have entered is too long.\nPlease check the number and try again.";
		if(sABANumber.length < 9)
			sErr = "The Routing number you have entered is too short.\nPlease check the number and try again.";
		bValidABA = false;
	}
	if(isNaN(sABANumber)) {
		sErr = "The Routing number you have entered is not a number.\nPlease check the number and try again.";
		bValidABA = false;
	}

	if(!bValidABA)
		alert(sErr);
	return bValidABA;
}

function ValidateCC(sCCNumber) {
	var sWeights = "2121212121212121";
	var iResults = 0;
	var iResultsTemp = 0;
	var iCCNumLength = parseInt(sCCNumber.length);
	var iCheckDigit = parseInt(sCCNumber.substring((iCCNumLength - 1),iCCNumLength));
	var sCCNumLessCheckDigit = sCCNumber.substring(0,iCCNumLength - 1);
	var iCCNumLengthLessCheckDigit = sCCNumLessCheckDigit.length;
	var bValidCC = true;
	var sErr;

	var sCCNumBackwards = ReverseIt(sCCNumLessCheckDigit);

	for(var i = 0; i < iCCNumLengthLessCheckDigit; i++) {
		iResultsTemp = parseInt(sWeights.substring(i,i+1)) * parseInt(sCCNumBackwards.substring(i,i+1));
		if(iResultsTemp > 9)
			iResults += (parseInt(iResultsTemp) - 9);
		else
			iResults += parseInt(iResultsTemp);
	}

	var iGT = parseInt(iResults) + parseInt(iCheckDigit);

	if(iGT%10 != "0") {
		sErr = "The Credit Card Number you have entered is invalid.\nPlease check the number and try again.";
		bValidCC = false;
	}

	if(sCCNumber.length > 16) {
		sErr = "The Credit Card Number you have entered is too long.\nPlease check the number and try again.";
		bValidCC = false;
	}
	if(isNaN(sCCNumber)) {
		sErr = "The Credit Card Number you have entered is not a number.\nPlease check the number and try again.";
		bValidCC = false;
	}

	if(!bValidCC)
		alert(sErr);
	return bValidCC;
}

/*	function takes in the account number given in the account opening process and the
	credit card number entered in the form element being tested.  validates the type 
	of card against criteria and returns a boolean value. */
function ValidateCCType(sAccNumber,sCCNumber) {
	var theForm = document.forms[0];	// re-instantiate the form for this function
	var sFormElemAccNumber;		// holder for the account number as loop through form
	var sFormElemType;		// holds the identifier of what the form element is
	var sFormCardType;		// holds the credit card type value from the form
	var bValid = false;		// boolean returned from function
	for(var y = 0; y < theForm.length; y++) {		// loop it
		with(theForm.elements[y]) {
			iIndex = name.indexOf('-');		// grab the index of the delimiter between acc number and form type
			sFormElemAccNumber = name.substring(0,iIndex);	// grab the bancorp account number
			if(sFormElemAccNumber == sAccNumber) {	// if the acc number from the form is the same as the one being tested....
				sFormElemType = name.substring(iIndex + 1,name.length);	// grab the form type
				if(sFormElemType == 'FromCardType') {
					sFormCardType = value;		// MasterCard or Visa
					switch(sFormCardType) {
						case 'MasterCard':
							if(		// criteria for a valid MasterCard number
								(sCCNumber.substring(0,2) == '51') ||
								(sCCNumber.substring(0,2) == '52') ||
								(sCCNumber.substring(0,2) == '53') ||
								(sCCNumber.substring(0,2) == '54') ||
								(sCCNumber.substring(0,2) == '55') &&
								(sCCNumber.length == 16) ) {
								bValid = true;
							}
							break;
						case 'Visa':
							if(sCCNumber.substring(0,1) == '4' &&	// valid Visa criteria
								(sCCNumber.length != 13 || sCCNumber.length != 16)) {
								bValid = true;
							}
							break;
						default:
							// if another card, bValid is already false and will be returned.  nothing to be done here.
							break;
					}	// end switch.  apoc, and dozer ended already.  Damn You Cypher!
				}	// end if form element holds card type
			}	// end if the acc numbers match
		}	// end with
	}	// end for
	return bValid;  // that's it.
}

function ReverseIt(reverseThisString) {
	var sBackwards = "";
	var iReverseThisStringLength = reverseThisString.length;

	for(var i = 0; i < iReverseThisStringLength; i++) {
		sBackwards += reverseThisString.substring((iReverseThisStringLength-1)-i, iReverseThisStringLength-i);
	}
	return sBackwards;
}
//-->

