summaryrefslogtreecommitdiff
path: root/js/dojo-1.6/dojox/validate/creditCard.xd.js
diff options
context:
space:
mode:
authorTristan Zur <tzur@web.web.ccwn.org>2014-03-27 22:27:47 +0100
committerTristan Zur <tzur@web.web.ccwn.org>2014-03-27 22:27:47 +0100
commitb62676ca5d3d6f6ba3f019ea3f99722e165a98d8 (patch)
tree86722cb80f07d4569f90088eeaea2fc2f6e2ef94 /js/dojo-1.6/dojox/validate/creditCard.xd.js
Initial commit of intern.ccwn.org contentsHEADmaster
Diffstat (limited to 'js/dojo-1.6/dojox/validate/creditCard.xd.js')
-rw-r--r--js/dojo-1.6/dojox/validate/creditCard.xd.js140
1 files changed, 140 insertions, 0 deletions
diff --git a/js/dojo-1.6/dojox/validate/creditCard.xd.js b/js/dojo-1.6/dojox/validate/creditCard.xd.js
new file mode 100644
index 0000000..85abb18
--- /dev/null
+++ b/js/dojo-1.6/dojox/validate/creditCard.xd.js
@@ -0,0 +1,140 @@
+/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+dojo._xdResourceLoaded(function(dojo, dijit, dojox){
+return {depends: [["provide", "dojox.validate.creditCard"],
+["require", "dojox.validate._base"]],
+defineResource: function(dojo, dijit, dojox){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");
+/*=====
+
+ dojox.validate.creditCard = {
+ // summary:
+ // Module provides validation functions for Credit Cards, using account number
+ // rules in conjunction with the Luhn algorigthm, with a plugable card info database.
+ };
+
+=====*/
+dojo.require("dojox.validate._base");
+
+dojox.validate._cardInfo = {
+ // summary: A dictionary list of credit card abbreviations
+ //
+ // description:
+ //
+ // A hash of valid CC abbreviations and regular expressions
+ //
+ // mc: Mastercard
+ // ec: Eurocard
+ // vi: Visa
+ // ax: American Express
+ // dc: Diners Club
+ // bl: Carte Blanch
+ // di: Discover
+ // jcb: JCB
+ // er: Enroute
+ //
+ // example:
+ // Define your own card, gift-card, whatever. Starts with 7,
+ // is 15 total length.
+ // | dojo.mixin(dojox.validate._cardInfo, {
+ // | "my":"7[0-9]{14}"
+ // | });
+
+ '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}'
+}
+
+dojox.validate.isValidCreditCard = function(value, ccType){
+ // summary: Validate a credit card number by type with Luhn checking.
+ //
+ // description:
+ // Checks if a credit card type matches the # scheme in a passed value, and if
+ // the Luhn checksum is accurate (unless its an Enroute card, in which case
+ // the checkSum is skipped), returning a Boolean to check against.
+ //
+ // value: String|Int
+ // A Value (credit card number) to validate
+ //
+ // ccType: String
+ // A credit-card abbreviation.
+ //
+ // example:
+ // | if(dojox.validate.isValidCreditCard("12345", "mc")){
+ // | console.log('inconceivable');
+ // | }
+
+ return ((ccType.toLowerCase() == 'er' || dojox.validate.isValidLuhn(value)) &&
+ dojox.validate.isValidCreditCardNumber(value, ccType.toLowerCase())); // Boolean
+}
+
+dojox.validate.isValidCreditCardNumber = function(value, ccType){
+ // summary:
+ // Checks if value matches the pattern for that card or any card types if none is specified
+ //
+ // value: String|Int
+ // CC #, white spaces and dashes are ignored
+ //
+ // ccType: String?
+ // One of the abbreviation values in `dojox.validate._cardInfo` --
+ // if Omitted, function returns a `|` delimited string of matching card types,
+ // or false if no matches found.
+
+ value = String(value).replace(/[- ]/g,''); //ignore dashes and whitespaces
+
+ var cardinfo = dojox.validate._cardInfo, results = [];
+ if(ccType){
+ var expr = '^' + cardinfo[ccType.toLowerCase()] + '$';
+ return expr ? !!value.match(expr) : false; // boolean
+ }
+
+ 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:
+ // Validate the security code (CCV) for a passed credit-card type.
+ //
+ // description:
+ //
+ // value:
+
+ if(!dojo.isString(value)){
+ value = String(value);
+ }
+ var format;
+ switch (ccType.toLowerCase()){
+ case 'mc':
+ case 'ec':
+ case 'vi':
+ case 'di':
+ format = '###';
+ break;
+ case 'ax':
+ format = '####';
+ break;
+ }
+
+ return !!format && value.length && dojox.validate.isNumberFormat(value, { format: format }); // Boolean
+}
+
+}
+
+}};});