diff options
Diffstat (limited to 'includes/js/dojox/validate/creditCard.js')
-rw-r--r-- | includes/js/dojox/validate/creditCard.js | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/includes/js/dojox/validate/creditCard.js b/includes/js/dojox/validate/creditCard.js deleted file mode 100644 index 903aab1..0000000 --- a/includes/js/dojox/validate/creditCard.js +++ /dev/null @@ -1,92 +0,0 @@ -if(!dojo._hasResource["dojox.validate.creditCard"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojox.validate.creditCard"] = true; -dojo.provide("dojox.validate.creditCard"); - -dojo.require("dojox.validate._base"); - -/* - Validates Credit Cards using account number rules in conjunction with the Luhn algorigthm - - */ - -dojox.validate.isValidCreditCard = function(/*String|Int*/value, /*String*/ccType){ - //Summary: - // checks if ccType matches the # scheme in value, and if Luhn checksum is accurate (unless its an Enroute card, the checkSum is skipped) - - //Value: Boolean - return ((ccType.toLowerCase() == 'er' || dojox.validate.isValidLuhn(value)) && - dojox.validate.isValidCreditCardNumber(value,ccType.toLowerCase())); //Boolean -} - -dojox.validate.isValidCreditCardNumber = function(/*String|Int*/value,/*String?*/ccType){ - // summary: - // checks if value matches the pattern for that card or any card types if none is specified - // - // value: Boolean - // CC #, white spaces and dashes are ignored - // - // ccType: String? - // one of the values in cardinfo -- if Omitted it it returns a | delimited string of matching card types, or false if no matches found - - value = String(value).replace(/[- ]/g,''); //ignore dashes and whitespaces - - /* FIXME: not sure on all the abbreviations for credit cards,below is what each stands for atleast to my knowledge - mc: Mastercard - ec: Eurocard - vi: Visa - ax: American Express - dc: Diners Club - bl: Carte Blanch - di: Discover - jcb: JCB - er: Enroute - */ - var cardinfo = { - 'mc':'5[1-5][0-9]{14}','ec':'5[1-5][0-9]{14}','vi':'4(?:[0-9]{12}|[0-9]{15})', - 'ax':'3[47][0-9]{13}', 'dc':'3(?:0[0-5][0-9]{11}|[68][0-9]{12})', - 'bl':'3(?:0[0-5][0-9]{11}|[68][0-9]{12})','di':'6011[0-9]{12}', - 'jcb':'(?:3[0-9]{15}|(2131|1800)[0-9]{11})','er':'2(?:014|149)[0-9]{11}' - }; - if(ccType){ - var expr = cardinfo[ccType.toLowerCase()]; - return expr ? !!(value.match(cardinfo[ccType.toLowerCase()])) : false; // boolean - } - var results=[]; - for(var p in cardinfo){ - if(value.match('^'+cardinfo[p]+'$')){ - results.push(p); - } - } - return results.length ? results.join('|') : false; // string | boolean -} - -dojox.validate.isValidCvv = function(/*String|Int*/value, /*String*/ccType) { - //Summary: - // returns true if the security code (CCV) matches the correct format for supplied ccType - - //Value: Boolean - - if(typeof value!='string'){ - value=String(value); - } - var format; - switch (ccType.toLowerCase()){ - case 'mc': - case 'ec': - case 'vi': - case 'di': - format = '###'; - break; - case 'ax': - format = '####'; - break; - default: - return false; //Boolean - } - var flags = {format:format}; - //FIXME? Why does isNumberFormat take an object for flags when its only parameter is either a string or an array inside the object? - //FIXME: um... just check value.length? - return (value.length == format.length && dojox.validate.isNumberFormat(value, flags)); //Boolean -} - -} |