
var groupResponses=true;
var groupResponseStr="";
var userErrors=false;
var firstErrorField="";
var digits="0123456789";
var lowercaseLetters="abcdefghijklmnopqrstuvwxyz"
var uppercaseLetters="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
var whitespace=" \t\n\r";
var decimalPointDelimiter="."
var phoneNumberDelimiters="()- ";
var validUSPhoneChars=digits+phoneNumberDelimiters;
var validWorldPhoneChars=digits+phoneNumberDelimiters+"+";
var SSNDelimiters="- ";
var validSSNChars=digits+SSNDelimiters;
var digitsInSocialSecurityNumber=9;
var digitsInUSPhoneNumber=10;
var ZIPCodeDelimiters="-";
var ZIPCodeDelimeter="-"
var validZIPCodeChars=digits+ZIPCodeDelimiters
var digitsInZIPCode1=5
var digitsInZIPCode2=9
var creditCardDelimiters=" "
var mPrefix="You did not enter a value into the "
var mSuffix=" field. This is a required field. Please enter it now."
var sUSLastName="Last Name"
var sUSFirstName="First Name"
var sWorldLastName="Family Name"
var sWorldFirstName="Given Name"
var sFullName="Name"
var sTitle="Title"
var sCompanyName="Company Name"
var sUSAddress="Street Address"
var sWorldAddress="Address"
var sCity="City"
var sStateCode="State Code"
var sWorldState="State, Province, or Prefecture"
var sCountry="Country"
var sZIPCode="ZIP Code"
var sWorldPostalCode="Postal Code"
var sPhone="Phone Number"
var sFax="Fax Number"
var sDateOfBirth="Date of Birth"
var sExpirationDate="Expiration Date"
var sEmail="Email"
var sSSN="Social Security Number"
var sCreditCardNumber="Credit Card Number"
var sOtherInfo="Other Information"
var sSerialNumber="Serial Number"
var sModelNumber="Model Number Radio Buttons"
var sUserName="User Name"
var sPassword="Password"
var sPasswordVerify="Password Verification"
var sCheckPointItem="Checkpoint Item"
var iEmpty="Please enter a value."
var iStateCode="Please enter a valid two character U.S. state abbreviation (like CA for California)."
var iZIPCode="Please enter a 5 or 9 digit U.S. ZIP Code (like 94043)."
var iUSPhone="Please enter a 10 digit U.S. phone number (like 415 555 1212)."
var iPhone="Please enter a valid phone number."
var iWorldPhone="Please enter a valid international phone number."
var iSSN="Please enter a 9 digit U.S. social security number (like 123 45 6789)."
var iEmail="Please enter a valid email address (like name@domain.com)."
var iCreditCardPrefix="This is not a valid "
var iCreditCardSuffix=" credit card number. (Click the link on this form to see a list of sample numbers.)"
var iDay="Please enter a day number between 1 and 31."
var iMonth="Please enter a month number between 1 and 12."
var iYear="Please enter a 2 or 4 digit year number."
var iDatePrefix="The Day, Month, and Year for "
var iDateSuffix=" do not form a valid date."
var iRadio="Please make a selection.";
var pEntryPrompt="Please enter a "
var pStateCode="2 character code (like CA)."
var pZIPCode="5 or 9 digit U.S. ZIP Code (like 94043)."
var pUSPhone="10 digit U.S. phone number (like 415 555 1212)."
var pWorldPhone="international phone number."
var pSSN="9 digit U.S. social security number (like 123 45 6789)."
var pEmail="valid email address (like foo@bar.com)."
var pCreditCard="valid credit card number."
var pDay="day number between 1 and 31."
var pMonth="month number between 1 and 12."
var pYear="2 or 4 digit year number."
var defaultEmptyOK=false;
function makeArray(n){
for(var i=1;i<=n;i++){
this[i]=0
}
return this
}
var daysInMonth=makeArray(12);
daysInMonth[1]=31;
daysInMonth[2]=29;
daysInMonth[3]=31;
daysInMonth[4]=30;
daysInMonth[5]=31;
daysInMonth[6]=30;
daysInMonth[7]=31;
daysInMonth[8]=31;
daysInMonth[9]=30;
daysInMonth[10]=31;
daysInMonth[11]=30;
daysInMonth[12]=31;
var USStateCodeDelimiter="|";
var USStateCodes="AL|AK|AS|AZ|AR|CA|CO|CT|DE|DC|FM|FL|GA|GU|HI|ID|IL|IN|IA|KS|KY|LA|ME|MH|MD|MA|MI|MN|MS|MO|MT|NE|NV|NH|NJ|NM|NY|NC|ND|MP|OH|OK|OR|PW|PA|PR|RI|SC|SD|TN|TX|UT|VT|VI|VA|WA|WV|WI|WY|AE|AA|AE|AE|AP"
function isEmpty(s)
{return((s==null)||(s.length==0))
}
function isWhitespace(s){
var i;
if(isEmpty(s))return true;
for(i=0;i<s.length;i++)
{
var c=s.charAt(i);
if(whitespace.indexOf(c)==-1)return false;
}
return true;
}
function stripCharsInBag(s,bag){
var i;
var returnString="";
for(i=0;i<s.length;i++)
{
var c=s.charAt(i);
if(bag.indexOf(c)==-1)returnString+=c;
}
return returnString;
}
function stripCharsNotInBag(s,bag){
var i;
var returnString="";
for(i=0;i<s.length;i++)
{
var c=s.charAt(i);
if(bag.indexOf(c)!=-1)returnString+=c;
}
return returnString;
}
function stripWhitespace(s){
return stripCharsInBag(s,whitespace)
}
function getRadioButtonValue(radio){
for(var i=0;i<radio.length;i++)
{if(radio[i].checked){
return radio[i].value
}
}
return "";
}
function charInString(c,s){
for(i=0;i<s.length;i++)
{if(s.charAt(i)==c)return true;
}
return false
}
function stripInitialWhitespace(s){
var i=0;
while((i<s.length)&&charInString(s.charAt(i),whitespace))
i++;
return s.substring(i,s.length);
}
function isLetter(c){
return(((c>="a")&&(c<="z"))||((c>="A")&&(c<="Z")))
}
function isDigit(c){
return((c>="0")&&(c<="9"))
}
function isLetterOrDigit(c){
return(isLetter(c)||isDigit(c))
}
function isInteger(s){
var i;
if(isEmpty(s))
if(isInteger.arguments.length==1)return defaultEmptyOK;
else return(isInteger.arguments[1]==true);
for(i=0;i<s.length;i++)
{
var c=s.charAt(i);
if(!isDigit(c))return false;
}
return true;
}
function isSignedInteger(s){
if(isEmpty(s))
if(isSignedInteger.arguments.length==1)return defaultEmptyOK;
else return(isSignedInteger.arguments[1]==true);
else{
var startPos=0;
var secondArg=defaultEmptyOK;
if(isSignedInteger.arguments.length>1)
secondArg=isSignedInteger.arguments[1];
if((s.charAt(0)=="-")||(s.charAt(0)=="+"))
startPos=1;
return(isInteger(s.substring(startPos,s.length),secondArg))
}
}
function isPositiveInteger(s){
var secondArg=defaultEmptyOK;
if(isPositiveInteger.arguments.length>1)
secondArg=isPositiveInteger.arguments[1];
return(isSignedInteger(s,secondArg)
&&((isEmpty(s)&&secondArg)||(parseInt(s)>0)));
}
function isNonnegativeInteger(s){
var secondArg=defaultEmptyOK;
if(isNonnegativeInteger.arguments.length>1)
secondArg=isNonnegativeInteger.arguments[1];
return(isSignedInteger(s,secondArg)
&&((isEmpty(s)&&secondArg)||(parseInt(s)>=0)));
}
function isNegativeInteger(s){
var secondArg=defaultEmptyOK;
if(isNegativeInteger.arguments.length>1)
secondArg=isNegativeInteger.arguments[1];
return(isSignedInteger(s,secondArg)
&&((isEmpty(s)&&secondArg)||(parseInt(s)<0)));
}
function isNonpositiveInteger(s){
var secondArg=defaultEmptyOK;
if(isNonpositiveInteger.arguments.length>1)
secondArg=isNonpositiveInteger.arguments[1];
return(isSignedInteger(s,secondArg)
&&((isEmpty(s)&&secondArg)||(parseInt(s)<=0)));
}
function isFloat(s){
var i;
var seenDecimalPoint=false;
if(isEmpty(s))
if(isFloat.arguments.length==1)return defaultEmptyOK;
else return(isFloat.arguments[1]==true);
if(s==decimalPointDelimiter)return false;
for(i=0;i<s.length;i++)
{
var c=s.charAt(i);
if((c==decimalPointDelimiter)&&!seenDecimalPoint)seenDecimalPoint=true;
else if(!isDigit(c))return false;
}
return true;
}
function isSignedFloat(s){
if(isEmpty(s))
if(isSignedFloat.arguments.length==1)return defaultEmptyOK;
else return(isSignedFloat.arguments[1]==true);
else{
var startPos=0;
var secondArg=defaultEmptyOK;
if(isSignedFloat.arguments.length>1)
secondArg=isSignedFloat.arguments[1];
if((s.charAt(0)=="-")||(s.charAt(0)=="+"))
startPos=1;
return(isFloat(s.substring(startPos,s.length),secondArg))
}
}
function isAlphabetic(s){
var i;
if(isEmpty(s))
if(isAlphabetic.arguments.length==1)return defaultEmptyOK;
else return(isAlphabetic.arguments[1]==true);
for(i=0;i<s.length;i++)
{
var c=s.charAt(i);
if(!isLetter(c))
return false;
}
return true;
}
function isAlphanumeric(s){
var i;
if(isEmpty(s))
if(isAlphanumeric.arguments.length==1)return defaultEmptyOK;
else return(isAlphanumeric.arguments[1]==true);
for(i=0;i<s.length;i++)
{
var c=s.charAt(i);
if(!(isLetter(c)||isDigit(c)))
return false;
}
return true;
}
function isFourDigits(str){
var re=/^([0-9])([0-9][0-9][0-9])$/;
return re.test(str)
}
function reformat(s){
var arg;
var sPos=0;
var resultString="";
for(var i=1;i<reformat.arguments.length;i++){
arg=reformat.arguments[i];
if(i%2==1)resultString+=arg;
else{
resultString+=s.substring(sPos,sPos+arg);
sPos+=arg;
}
}
return resultString;
}
function isSSN(s){
if(isEmpty(s))
if(isSSN.arguments.length==1)return defaultEmptyOK;
else return(isSSN.arguments[1]==true);
return(isInteger(s)&&s.length==digitsInSocialSecurityNumber)
}
function isUsername(s,countMin,countMax){
var s2=stripWhitespace(stripCharsNotInBag(s,digits+lowercaseLetters+uppercaseLetters));
if((s.length<countMin)
||(s.length>countMax)
||(s.length!=s2.length))
{
return false;
}else{
return true;}
}
function isUSPhoneNumber(s){
if(isEmpty(s))
if(isUSPhoneNumber.arguments.length==1)return defaultEmptyOK;
else return(isUSPhoneNumber.arguments[1]==true);
return(isInteger(s)&&s.length==digitsInUSPhoneNumber)
}
function isInternationalPhoneNumber(s){
if(isEmpty(s))
if(isInternationalPhoneNumber.arguments.length==1)return defaultEmptyOK;
else return(isInternationalPhoneNumber.arguments[1]==true);
return(isPositiveInteger(s))
}
function isZIPCode(s){
if(isEmpty(s))
if(isZIPCode.arguments.length==1)return defaultEmptyOK;
else return(isZIPCode.arguments[1]==true);
return(isInteger(s)&&
((s.length==digitsInZIPCode1)||
(s.length==digitsInZIPCode2)))
}
function isStateCode(s){
if(isEmpty(s))
if(isStateCode.arguments.length==1)return defaultEmptyOK;
else return(isStateCode.arguments[1]==true);
if(s.length==2){
return((USStateCodes.indexOf(s)!=-1)&&(s.indexOf(USStateCodeDelimiter)==-1))
}
return false;
}
function isEmail(s){
if(isEmpty(s))
if(isEmail.arguments.length==1)return defaultEmptyOK;
else return(isEmail.arguments[1]==true);
if(isWhitespace(s))return false;
var i=1;
var sLength=s.length;
while((i<sLength)&&(s.charAt(i)!="@"))
{i++
}
if((i>=sLength)||(s.charAt(i)!="@"))return false;
else i+=2;
while((i<sLength)&&(s.charAt(i)!="."))
{i++
}
if((i>=sLength-1)||(s.charAt(i)!="."))return false;
else return true;
}
function isYear(s){
if(isEmpty(s))
if(isYear.arguments.length==1)return defaultEmptyOK;
else return(isYear.arguments[1]==true);
if(!isNonnegativeInteger(s))return false;
var retVal=true;
if(s.length!=4||parseInt(s)>2100||parseInt(s)<1800){retVal=false;}
return retVal;
}
function isIntegerInRange(s,a,b){
if(isEmpty(s))
if(isIntegerInRange.arguments.length==1)return defaultEmptyOK;
else return(isIntegerInRange.arguments[1]==true);
if(!isInteger(s,false))return false;
var num=parseInt(s,10);
return((num>=a)&&(num<=b));
}
function isMonth(s){
if(isEmpty(s))
if(isMonth.arguments.length==1)return defaultEmptyOK;
else return(isMonth.arguments[1]==true);
return isIntegerInRange(s,1,12);
}
function isDay(s){
if(isEmpty(s))
if(isDay.arguments.length==1)return defaultEmptyOK;
else return(isDay.arguments[1]==true);
return isIntegerInRange(s,1,31);
}
function daysInFebruary(year){
return(((year%4==0)&&((!(year%100==0))||(year%400==0)))?29:28);
}
function isDate(year,month,day){
if(!(isYear(year,false)&&isMonth(month,false)&&isDay(day,false)))return false;
var intYear=parseInt(year);
var intMonth=parseInt(month);
var intDay=parseInt(day);
if(intDay>daysInMonth[intMonth])return false;
if((intMonth==2)&&(intDay>daysInFebruary(intYear)))return false;
return true;
}
function prompt(s){
window.status=s
}
function promptEntry(s){
window.status=pEntryPrompt+s
}
function warnEmpty(theField,label,s){
if(!groupResponse(theField,label,s)){
if(!userErrors){
theField.focus()
alert(mPrefix+label+mSuffix)
userErrors=true;
}
}
}
function warnInvalid(theField,label,s){
if(!groupResponse(theField,label,s)){
if(!userErrors){
if(!theField[0].name){
theField.focus()
theField.select()
}
alert(s)
userErrors=true;
}
}
}
function checkString(theField,label,emptyOK){
if(checkString.arguments.length==2)emptyOK=defaultEmptyOK;
if((emptyOK==true)&&(isEmpty(theField.value)))return true;
if(isWhitespace(theField.value)){
warnEmpty(theField,label,'Please enter a '+label.toLowerCase()+'.');
}
}
function checkStateCode(theField,label,emptyOK){
if(checkStateCode.arguments.length==2)emptyOK=defaultEmptyOK;
if((emptyOK==true)&&(isEmpty(theField.value)))return true;
else
{theField.value=theField.value.toUpperCase();
if(!isStateCode(theField.value,false))
return warnInvalid(theField,label,iStateCode);
else return true;
}
}
function reformatZIPCode(ZIPString){
if(ZIPString.length==5)return ZIPString;
else return(reformat(ZIPString,"",5,"-",4));
}
function checkZIPCode(theField,label,emptyOK){
if(checkZIPCode.arguments.length==2)emptyOK=defaultEmptyOK;
if((emptyOK==true)&&(isEmpty(theField.value)))return true;
else
{var normalizedZIP=stripCharsInBag(theField.value,ZIPCodeDelimiters)
if(!isZIPCode(normalizedZIP,false))
return warnInvalid(theField,label,iZIPCode);
else
{
theField.value=reformatZIPCode(normalizedZIP)
return true;
}
}
}
function reformatUSPhone(USPhone){
return(reformat(USPhone,"(",3,") ",3,"-",4))
}
function checkUSPhone(theField,label,emptyOK){
if(checkUSPhone.arguments.length==2)emptyOK=defaultEmptyOK;
if((emptyOK==true)&&(isEmpty(theField.value)))return true;
else
{var normalizedPhone=stripCharsInBag(theField.value,phoneNumberDelimiters)
if(!isUSPhoneNumber(normalizedPhone,false))
return warnInvalid(theField,label,iUSPhone);
else
{
theField.value=reformatUSPhone(normalizedPhone)
return true;
}
}
}
function checkPhone(theField,label,emptyOK){
if(checkPhone.arguments.length==2)emptyOK=defaultEmptyOK;
if((emptyOK==true)&&(isEmpty(theField.value)))return true;
if(isWhitespace(theField.value)){
warnEmpty(theField,label,iPhone);
}
}
function checkInternationalPhone(theField,label,emptyOK){
if(checkInternationalPhone.arguments.length==2)emptyOK=defaultEmptyOK;
if((emptyOK==true)&&(isEmpty(theField.value)))return true;
else
{if(!isInternationalPhoneNumber(theField.value,false))
return warnInvalid(theField,label,iWorldPhone);
else return true;
}
}
function checkEmail(theField,label,emptyOK){
if(checkEmail.arguments.length==2)emptyOK=defaultEmptyOK;
if((emptyOK==true)&&(isEmpty(theField.value)))return true;
else if(!isEmail(theField.value,false))
return warnInvalid(theField,label,iEmail);
else return true;
}
function reformatSSN(SSN){
return(reformat(SSN,"",3,"-",2,"-",4))
}
function checkSSN(theField,label,emptyOK){
if(checkSSN.arguments.length==2)emptyOK=defaultEmptyOK;
if((emptyOK==true)&&(isEmpty(theField.value)))return true;
else
{var normalizedSSN=stripCharsInBag(theField.value,SSNDelimiters)
if(!isSSN(normalizedSSN,false))
return warnInvalid(theField,label,iSSN);
else
{
theField.value=reformatSSN(normalizedSSN)
return true;
}
}
}
function checkFourDigits(theField,label,emptyOK){
if(checkFourDigits.arguments.length==2)emptyOK=defaultEmptyOK;
if((emptyOK==true)&&(isEmpty(theField.value)))return true;
else
if(!isFourDigits(theField.value)){return warnInvalid(theField,label,"Four digits are required (like 0233).");}
}
function checkUsername(theField,label,countMin,countMax,emptyOK){
if(checkUsername.arguments.length==4)emptyOK=defaultEmptyOK;
if((emptyOK==true)&&(isEmpty(theField.value)))return true;
else{
if(!isUsername(theField.value,countMin,countMax)){
s="Please enter a valid user name."
+"\n\t*  Use a mixture of letters and numbers."
+"\n\t*  Use at least "+countMin+" letters or numbers."
+"\n\t*  Do not use more than "+countMax+" letters or numbers."
+"\n\t*  Do not use spaces or special characters."
+"\n\t*  Your user name is case sensitive.";
warnInvalid(theField,label,s);
}else{
return true;
}
}
}
function checkYear(theField,label,emptyOK){
if(checkYear.arguments.length==2)emptyOK=defaultEmptyOK;
if((emptyOK==true)&&(isEmpty(theField.value)))return true;
if(!isYear(theField.value,false))
return warnInvalid(theField,label,iYear);
else return true;
}
function checkMonth(theField,label,emptyOK){
if(checkMonth.arguments.length==2)emptyOK=defaultEmptyOK;
if((emptyOK==true)&&(isEmpty(theField.value)))return true;
if(!isMonth(theField.value,false))
return warnInvalid(theField,label,iMonth);
else return true;
}
function checkDay(theField,label,emptyOK){
if(checkDay.arguments.length==2)emptyOK=defaultEmptyOK;
if((emptyOK==true)&&(isEmpty(theField.value)))return true;
if(!isDay(theField.value,false))
return warnInvalid(theField,label,iDay);
else return true;
}
function checkDate(param1,param2,param3,param4,param5){
if(checkDate.arguments.length>=4){
OKtoOmitDay=false;
if(!isYear(param1.value))return warnInvalid(param1,iYear);
if(!isMonth(param2.value))return warnInvalid(param2,iMonth);
if((param5==true)&&isEmpty(param3.value))return true;
else if(!isDay(dayField.value))
return warnInvalid(param3,label,iDay);
if(isDate(param1.value,param2.value,param3.value)){return true;}
alert(iDatePrefix+label+iDateSuffix)
return false
}
if(checkDate.arguments.length<3){
var msg=" Please enter a valid date (like mm/dd/yyyy)."
if(isEmpty(param1.value))return warnInvalid(param1,param2,msg);
var s=param1.value;
var delim="/";
if(s.indexOf("-")>-1){delim="-";}
if(s.indexOf(".")>-1){delim=".";}
date=s.split(delim);
var m=date[0];
var d=date[1];
var y=date[2];
if(m==undefined||d==undefined||y==undefined){return warnInvalid(param1,param2,msg);}
if(y.length==2){y="20"+y;}
if(!isDate(y,m,d)){
return warnInvalid(param1,param2,msg);
}else{
param1.value=formatAsDate(param1.value);
}
}
}
function checkCreditCard(radio,label,theField){
var cardType=getRadioButtonValue(radio)
var normalizedCCN=stripCharsInBag(theField.value,creditCardDelimiters)
if(!isCardMatch(cardType,normalizedCCN))
return warnInvalid(theField,label,iCreditCardPrefix+cardType+iCreditCardSuffix);
else
{theField.value=normalizedCCN
return true
}
}
function checkUsername(theField,label,countMin,countMax,emptyOK){
if(checkUsername.arguments.length==4)emptyOK=defaultEmptyOK;
if((emptyOK==true)&&(isEmpty(theField.value)))return true;
else{
if(!isUsername(theField.value,countMin,countMax)){
s="Please enter a valid user name."
+"\n\t*  Use a mixture of letters and numbers."
+"\n\t*  Use at least "+countMin+" letters or numbers."
+"\n\t*  Do not use more than "+countMax+" letters or numbers."
+"\n\t*  Do not use spaces or special characters."
+"\n\t*  Your user name is case sensitive.";
warnInvalid(theField,label,s);
}else{
return true;
}
}
}
function isCreditCard(st){
if(st.length>19)
return(false);
sum=0;mul=1;l=st.length;
for(i=0;i<l;i++){
digit=st.substring(l-i-1,l-i);
tproduct=parseInt(digit,10)*mul;
if(tproduct>=10)
sum+=(tproduct%10)+1;
else
sum+=tproduct;
if(mul==1)
mul++;
else
mul--;
}
if((sum%10)==0)
return(true);
else
return(false);
}
function isVisa(cc){
if(((cc.length==16)||(cc.length==13))&&
(cc.substring(0,1)==4))
return isCreditCard(cc);
return false;
}
function isMasterCard(cc){
firstdig=cc.substring(0,1);
seconddig=cc.substring(1,2);
if((cc.length==16)&&(firstdig==5)&&
((seconddig>=1)&&(seconddig<=5)))
return isCreditCard(cc);
return false;
}
function isAmericanExpress(cc){
firstdig=cc.substring(0,1);
seconddig=cc.substring(1,2);
if((cc.length==15)&&(firstdig==3)&&
((seconddig==4)||(seconddig==7)))
return isCreditCard(cc);
return false;
}
function isDinersClub(cc){
firstdig=cc.substring(0,1);
seconddig=cc.substring(1,2);
if((cc.length==14)&&(firstdig==3)&&
((seconddig==0)||(seconddig==6)||(seconddig==8)))
return isCreditCard(cc);
return false;
}
function isCarteBlanche(cc){
return isDinersClub(cc);
}
function isDiscover(cc){
first4digs=cc.substring(0,4);
if((cc.length==16)&&(first4digs=="6011"))
return isCreditCard(cc);
return false;
}
function isEnRoute(cc){
first4digs=cc.substring(0,4);
if((cc.length==15)&&
((first4digs=="2014")||
(first4digs=="2149")))
return isCreditCard(cc);
return false;
}
function isJCB(cc){
first4digs=cc.substring(0,4);
if((cc.length==16)&&
((first4digs=="3088")||
(first4digs=="3096")||
(first4digs=="3112")||
(first4digs=="3158")||
(first4digs=="3337")||
(first4digs=="3528")))
return isCreditCard(cc);
return false;
}
function isAnyCard(cc){
if(!isCreditCard(cc))
return false;
if(!isMasterCard(cc)&&!isVisa(cc)&&!isAmericanExpress(cc)&&!isDinersClub(cc)&&
!isDiscover(cc)&&!isEnRoute(cc)&&!isJCB(cc)){
return false;
}
return true;
}
function isCardMatch(cardType,cardNumber){
cardType=cardType.toUpperCase();
var doesMatch=true;
if((cardType=="VISA")&&(!isVisa(cardNumber)))
doesMatch=false;
if((cardType=="MASTERCARD")&&(!isMasterCard(cardNumber)))
doesMatch=false;
if(((cardType=="AMERICANEXPRESS")||(cardType=="AMEX"))
&&(!isAmericanExpress(cardNumber)))doesMatch=false;
if((cardType=="DISCOVER")&&(!isDiscover(cardNumber)))
doesMatch=false;
if((cardType=="JCB")&&(!isJCB(cardNumber)))
doesMatch=false;
if((cardType=="DINERS")&&(!isDinersClub(cardNumber)))
doesMatch=false;
if((cardType=="CARTEBLANCHE")&&(!isCarteBlanche(cardNumber)))
doesMatch=false;
if((cardType=="ENROUTE")&&(!isEnRoute(cardNumber)))
doesMatch=false;
return doesMatch;
}
function fillEmptyText(form,str){
for(i=0;i<form.elements.length;i++){
if(form.elements[i].type=="text"&&form.elements[i].value==""){
form.elements[i].value=str;
}
}
}
function fieldExists(form,fname,ftype){
for(i=0;i<form.elements.length;i++){
if(form.elements[i].type==ftype&&form.elements[i].name==fname){
return true;
}
}
return false;
}
function readOnlyField(form,fname,msg){
if(readOnlyField.arguments.length==3){
alert(msg);
}
form.elements[fname].blur();
}
function setColor(obj,bgcolor){
if(obj.style)obj.style.backgroundColor=bgcolor;
}
function checkBadChar(theField,label,bag){
var found=0;
var bag2="";
for(i=0;i<bag.length;i++){
var c=bag.charAt(i);
bag2+=c+"  ";
if(theField.value.indexOf(c)!=-1)found++
}
if(found==0){return true;
}else{
var plural=(bag.length>1)?"s are":" is"
warnInvalid(theField,label,"The following character"+plural+" not allowed in this field:\n      "+bag2);
}
}
function groupResponse(theField,label,str){
if(groupResponses){
if(firstErrorField==""){firstErrorField=theField;}
groupResponseStr+=label+"\n---- "+str+"\n\n";
return true;
}
return false;
}
function showErrors(){
if(userErrors==true){return true;}
if(groupResponseStr!=""&&groupResponses){
var header="PLEASE FILL IN OR CORRECT THE FOLLOWING REQUIRED FIELDS\n"
header+="\t      Press Esc or click OK to close this window.\n"
header+="\t\t--------------------------------------------------\n\n"
groupResponseStr=header+groupResponseStr
alert(groupResponseStr);
groupResponseStr="";
switch(firstErrorField.type){
case "undefined":
case "radio":break;
case "select-one":
case "select-multiple":{
firstErrorField.focus();
break;
}
default:{
firstErrorField.select();
firstErrorField.focus();
}
}
firstErrorField="";
userErrors=false;
return true;
}
return false;
}
function initCheck(groupResponsesParam){
groupResponses=(groupResponsesParam=="group")?true:false;
userErrors=false;
firstErrorField="";
}
function checkRadio(field,label){
var val=getRadioButtonValue(field);
if(val=="notselected"||val=="not selected"||val=="not_selected"||val=="not-selected"){
warnInvalid(field[0],label,iRadio);
}
}
function checkSelect(selectField,label){
if(selectField.selectedIndex==0){
warnEmpty(selectField,label,'Please select an option.');
}
}
function clearSelect(selectField,label){
if(selectField.selectedIndex==0){selectField.options[0].text="";}
}
function formatAsCurrency(val){
var val=''+val;
val=val.replace(/,/g, "");  						//remove commas in case they are there or in wrong place.
val=val.replace(/\$/g, "");  						//remove any $ if found
if(isNaN(val)||val==""){
alert("This currency value does not appear to be a valid number.");
}else{
val=Math.round(parseFloat(val)*100)/ 100;  	//change to integer and round
val=''+val;
dotPos=val.indexOf(".");
if(dotPos==-1){val+=".00";}
if(dotPos==val.length-2){val+="0";}
return "$"+addCommas(val);
}
}
function formatAsDate(str){
var delim="/";
if(str.indexOf("-")>-1){delim="-";}
if(str.indexOf(".")>-1){delim=".";}
var date=str.split(delim);
var m=pad(date[0],1,"0");
var d=pad(date[1],1,"0");
var y=date[2];
if(y.length==2){y="20"+y;}
delim="/";
return m+delim+d+delim+y;
}
function pad(str,times,chr){
var padstr="";
for(var i=0;i<times;i++){
padstr+=chr;
}
var reg=eval("/^"+chr+"*/g");
str=str.replace(reg,"");
var strAsNum=parseInt(str);
if(isNaN(strAsNum)){
return padstr+str;
}else{
return str=(strAsNum<10)?padstr+str:str;
}
}
function addCommas(val){
var val=''+val;
val=val.replace(/,/g, "");  			//remove commas in case they are there or in wrong place.
if(isNaN(val)||val==""){
alert("This does not appear to be a valid number.  Please enter a number and try again.");
return false;
}else{
var regx=new RegExp('([0-9])([0-9][0-9][0-9][,.])');
var arr=val.split('.');
arr[0]+='.';
do{
arr[0]=arr[0].replace(regx,'$1,$2');
}while(regx.test(arr[0]));
if(arr.length>1){
return arr.join('');
}else{
return arr[0].split('.')[0];
}
}
}
function setSelect(selectField,value){
for(var i=0;i<selectField.options.length;i++){
if(selectField.options[i].text==value)
selectField.selectedIndex=i;
}
}

