var CCType_Enum={cctMastercard:1,cctVisa:2,cctAMEX:3,cctDiscover:4};function lv(e){var a=e.length,g,h,c=e.substring(e.length-1),b=parseInt(c,10),i,d,f=0;for(i=0;i9){h=1+h%10}}f+=h}f=f*9;return f%10==b}function CCVal(){}var g_arrCCTypeInfos=[{arrPrefixes:["34","37"],minDigits:15,maxDigits:15,cardType:CCType_Enum.cctAMEX,cardTypeName:"AMEX"},{arrPrefixes:["4"],minDigits:13,maxDigits:16,cardType:CCType_Enum.cctVisa,cardTypeName:"Visa"},{arrPrefixes:["51","52","53","54","55"],minDigits:16,maxDigits:19,cardType:CCType_Enum.cctMastercard,cardTypeName:"MasterCard"},{arrPrefixes:["6011","644","645","646","647","648","649","65"],arrPrefixRanges:[{rangeFrom:"622126",rangeTo:"622925"}],minDigits:16,maxDigits:19,cardType:CCType_Enum.cctDiscover,cardTypeName:"Discover"}];CCVal.stripRawCC=function(a){var b=new RegExp("[ -]","g");return a.replace(b,"")};CCVal.validateNum=function(d){d=CCVal.stripRawCC(d);if(!d){return{}}var a={},j=d.length,m,i,f,k,b,c,g,h,l;var e=new RegExp("^\\d+$");if(!e.test(d)){a.errorMessage="Invalid CC #. (Must be all numeric!)"}else{for(f=0;f=h.rangeFrom&&d<=h.rangeTo){i=m}}}}if(i){if(ji.maxDigits){a.errorMessage="Too many digits (more than "+i.maxDigits+")"}else{if(!lv(d)){a.errorMessage="Invalid "+i.cardTypeName+" #."}}}a.cardType=i}else{if(l){a.errorMessage="Incomplete CC #";a.missingDigits=1}else{a.errorMessage="Unknown card type. (Only Visa, M/C, AMEX & Discover are accepted.)"}}}return a};function buildTextField(h,j,f,i,b,e,c,d,g){i=i?i:80;d=d?(' onkeyup="'+d+'" onchange="'+d+'"'):"";b=b?b:"20em";var a='';if(c){a+=''}return a}function buildTextFieldRow(i,k,m,g,j,c,f,d,l,e,b,h){b=b?(' id="'+b+'"'):"";var a=""+(k?k+":":"")+""+buildTextField(i,m,g,j,c,f,d,e,h)+(l?l:"")+"\n";return a}function padDollars(a,c,b){return CurrencyFormatting.padDollars({dollarValue:a,forceDecimalsWhenNone:c,includeCommas:b})}function padAndPrefixSignedDollarsP(a){return CurrencyFormatting.padAndPrefixSignedDollars({dollarValue:a.dollarValue,forceDecimalsWhenNone:a.forceDecimalsWhenNone,emptyIfZero:a.emptyIfZero,treatNullAsZero:a.treatNullAsZero})}function padAndPrefixSignedDollars(a,b,c){return CurrencyFormatting.padAndPrefixSignedDollars({dollarValue:a,forceDecimalsWhenNone:b,emptyIfZero:c})};