var CCType_Enum={cctMastercard:1,cctVisa:2,cctAMEX:3,cctDiscover:4};function lv(e){var r=e.length,a,i,n=e.substring(e.length-1),t=parseInt(n,10),s,l,o=0;for(s=0;s9){i=1+i%10}}o+=i}o=o*9;return o%10==t}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(e){var r=new RegExp("[ -]","g");return e.replace(r,"")};CCVal.validateNum=function(e){e=CCVal.stripRawCC(e);if(!e){return{}}var r={},a=e.length,i,n,t,s,l,o,d,c,g;var f=new RegExp("^\\d+$");if(!f.test(e)){r.errorMessage="Invalid CC #. (Must be all numeric!)"}else{for(t=0;t=c.rangeFrom&&e<=c.rangeTo){n=i}}}}if(n){if(an.maxDigits){r.errorMessage="Too many digits (more than "+n.maxDigits+")"}else{if(!lv(e)){r.errorMessage="Invalid "+n.cardTypeName+" #."}}r.cardType=n}else{if(g){r.errorMessage="Incomplete CC #";r.missingDigits=1}else{r.errorMessage="Unknown card type. (Only Visa, M/C, AMEX & Discover are accepted.)"}}}return r};function buildTextField(e,r,a,i,n,t,s,l,o){i=i?i:80;l=l?' onkeyup="'+l+'" onchange="'+l+'"':"";n=n?n:"20em";var d='';if(s){d+=''}return d}function buildTextFieldRow(e,r,a,i,n,t,s,l,o,d,c,g){c=c?' id="'+c+'"':"";var f=""+(r?r+":":"")+""+""+buildTextField(e,a,i,n,t,s,l,d,g)+(o?o:"")+"\n";return f}function padDollars(e,r,a){return CurrencyFormatting.padDollars({dollarValue:e,forceDecimalsWhenNone:r,includeCommas:a})}function padAndPrefixSignedDollarsP(e){return CurrencyFormatting.padAndPrefixSignedDollars({dollarValue:e.dollarValue,forceDecimalsWhenNone:e.forceDecimalsWhenNone,emptyIfZero:e.emptyIfZero,treatNullAsZero:e.treatNullAsZero})}function padAndPrefixSignedDollars(e,r,a){return CurrencyFormatting.padAndPrefixSignedDollars({dollarValue:e,forceDecimalsWhenNone:r,emptyIfZero:a})}