Server IP : 162.0.232.140 / Your IP : 3.135.190.163 Web Server : LiteSpeed System : Linux premium139.web-hosting.com 4.18.0-513.24.1.lve.2.el8.x86_64 #1 SMP Fri May 24 12:42:50 UTC 2024 x86_64 User : micrcvoy ( 740) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/micrcvoy/public_html/uploads/slider/py/lib/js/ |
Upload File : |
(function() { var $, Range, Trie, indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; Trie = (function() { function Trie() { this.trie = {}; } Trie.prototype.push = function(value) { var char, i, j, len, obj, ref, results; value = value.toString(); obj = this.trie; ref = value.split(''); results = []; for (i = j = 0, len = ref.length; j < len; i = ++j) { char = ref[i]; if (obj[char] == null) { if (i === (value.length - 1)) { obj[char] = null; } else { obj[char] = {}; } } results.push(obj = obj[char]); } return results; }; Trie.prototype.find = function(value) { var char, i, j, len, obj, ref; value = value.toString(); obj = this.trie; ref = value.split(''); for (i = j = 0, len = ref.length; j < len; i = ++j) { char = ref[i]; if (obj.hasOwnProperty(char)) { if (obj[char] === null) { return true; } } else { return false; } obj = obj[char]; } }; return Trie; })(); Range = (function() { function Range(trie1) { this.trie = trie1; if (this.trie.constructor !== Trie) { throw Error('Range constructor requires a Trie parameter'); } } Range.rangeWithString = function(ranges) { var j, k, len, n, r, range, ref, ref1, trie; if (typeof ranges !== 'string') { throw Error('rangeWithString requires a string parameter'); } ranges = ranges.replace(/ /g, ''); ranges = ranges.split(','); trie = new Trie; for (j = 0, len = ranges.length; j < len; j++) { range = ranges[j]; if (r = range.match(/^(\d+)-(\d+)$/)) { for (n = k = ref = r[1], ref1 = r[2]; ref <= ref1 ? k <= ref1 : k >= ref1; n = ref <= ref1 ? ++k : --k) { trie.push(n); } } else if (range.match(/^\d+$/)) { trie.push(range); } else { throw Error("Invalid range '" + r + "'"); } } return new Range(trie); }; Range.prototype.match = function(number) { return this.trie.find(number); }; return Range; })(); $ = jQuery; $.fn.validateCreditCard = function(callback, options) { var bind, card, card_type, card_types, get_card_type, is_valid_length, is_valid_luhn, j, len, normalize, ref, validate, validate_number; card_types = [ { name: 'amex', range: '34,37', valid_length: [15] }, { name: 'diners_club_carte_blanche', range: '300-305', valid_length: [14] }, { name: 'diners_club_international', range: '36', valid_length: [14] }, { name: 'jcb', range: '3528-3589', valid_length: [16] }, { name: 'laser', range: '6304, 6706, 6709, 6771', valid_length: [16, 17, 18, 19] }, { name: 'visa_electron', range: '4026, 417500, 4508, 4844, 4913, 4917', valid_length: [16] }, { name: 'visa', range: '4', valid_length: [13, 14, 15, 16, 17, 18, 19] }, { name: 'mastercard', range: '51-55,2221-2720', valid_length: [16] }, { name: 'discover', range: '6011, 622126-622925, 644-649, 65', valid_length: [16] }, { name: 'dankort', range: '5019', valid_length: [16] }, { name: 'maestro', range: '50, 56-69', valid_length: [12, 13, 14, 15, 16, 17, 18, 19] }, { name: 'uatp', range: '1', valid_length: [15] } ]; bind = false; if (callback) { if (typeof callback === 'object') { options = callback; bind = false; callback = null; } else if (typeof callback === 'function') { bind = true; } } if (options == null) { options = {}; } if (options.accept == null) { options.accept = (function() { var j, len, results; results = []; for (j = 0, len = card_types.length; j < len; j++) { card = card_types[j]; results.push(card.name); } return results; })(); } ref = options.accept; for (j = 0, len = ref.length; j < len; j++) { card_type = ref[j]; if (indexOf.call((function() { var k, len1, results; results = []; for (k = 0, len1 = card_types.length; k < len1; k++) { card = card_types[k]; results.push(card.name); } return results; })(), card_type) < 0) { throw Error("Credit card type '" + card_type + "' is not supported"); } } get_card_type = function(number) { var k, len1, r, ref1; ref1 = (function() { var l, len1, ref1, results; results = []; for (l = 0, len1 = card_types.length; l < len1; l++) { card = card_types[l]; if (ref1 = card.name, indexOf.call(options.accept, ref1) >= 0) { results.push(card); } } return results; })(); for (k = 0, len1 = ref1.length; k < len1; k++) { card_type = ref1[k]; r = Range.rangeWithString(card_type.range); if (r.match(number)) { return card_type; } } return null; }; is_valid_luhn = function(number) { var digit, k, len1, n, ref1, sum; sum = 0; ref1 = number.split('').reverse(); for (n = k = 0, len1 = ref1.length; k < len1; n = ++k) { digit = ref1[n]; digit = +digit; if (n % 2) { digit *= 2; if (digit < 10) { sum += digit; } else { sum += digit - 9; } } else { sum += digit; } } return sum % 10 === 0; }; is_valid_length = function(number, card_type) { var ref1; return ref1 = number.length, indexOf.call(card_type.valid_length, ref1) >= 0; }; validate_number = function(number) { var length_valid, luhn_valid; card_type = get_card_type(number); luhn_valid = false; length_valid = false; if (card_type != null) { luhn_valid = is_valid_luhn(number); length_valid = is_valid_length(number, card_type); } return { card_type: card_type, valid: luhn_valid && length_valid, luhn_valid: luhn_valid, length_valid: length_valid }; }; validate = (function(_this) { return function() { var number; number = normalize($(_this).val()); return validate_number(number); }; })(this); normalize = function(number) { return number.replace(/[ -]/g, ''); }; if (!bind) { return validate(); } this.on('input.jccv', (function(_this) { return function() { $(_this).off('keyup.jccv'); return callback.call(_this, validate()); }; })(this)); this.on('keyup.jccv', (function(_this) { return function() { return callback.call(_this, validate()); }; })(this)); callback.call(this, validate()); return this; }; }).call(this);