File: /home/accemeff/vendor/craftcms/cms/lib/jquery.payment/jquery.payment.js.map
{"version":3,"sources":["jquery.payment.js"],"names":["$","cardFromNumber","cardFromType","cards","defaultFormat","formatBackCardNumber","formatBackExpiry","formatCardNumber","formatExpiry","formatForwardExpiry","formatForwardSlashAndSpace","hasTextSelected","luhnCheck","reFormatCVC","reFormatCardNumber","reFormatExpiry","reFormatNumeric","replaceFullWidthChars","restrictCVC","restrictCardNumber","restrictExpiry","restrictNumeric","safeVal","setCardType","__slice","slice","__indexOf","indexOf","item","i","l","this","length","window","jQuery","Zepto","payment","fn","args","method","arguments","call","apply","type","patterns","format","cvcLength","luhn","num","card","p","_i","_j","_len","_len1","_ref","replace","substr","digit","digits","odd","sum","split","reverse","parseInt","$target","prop","document","selection","createRange","text","value","currPair","cursor","last","prevPair","_error","val","is","test","str","chars","chr","idx","e","currentTarget","setTimeout","re","upperLength","String","fromCharCode","which","preventDefault","m1","m2","input","metaKey","ctrlKey","allTypes","cardType","hasClass","_results","push","removeClass","join","addClass","toggleClass","trigger","formatCardCVC","on","formatCardExpiry","cardExpiryVal","month","year","Date","getFullYear","toString","validateCardNumber","validateCardExpiry","currentTime","expiry","trim","setMonth","getMonth","validateCardCVC","cvc","groups","global","match","exec","shift","grep","n","mon","parts","sep","substring"],"mappings":"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","file":"jquery.payment.js","sourcesContent":["// Generated by CoffeeScript 1.7.1\n(function() {\n var $, cardFromNumber, cardFromType, cards, defaultFormat, formatBackCardNumber, formatBackExpiry, formatCardNumber, formatExpiry, formatForwardExpiry, formatForwardSlashAndSpace, hasTextSelected, luhnCheck, reFormatCVC, reFormatCardNumber, reFormatExpiry, reFormatNumeric, replaceFullWidthChars, restrictCVC, restrictCardNumber, restrictExpiry, restrictNumeric, safeVal, setCardType,\n __slice = [].slice,\n __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; };\n\n $ = window.jQuery || window.Zepto || window.$;\n\n $.payment = {};\n\n $.payment.fn = {};\n\n $.fn.payment = function() {\n var args, method;\n method = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n return $.payment.fn[method].apply(this, args);\n };\n\n defaultFormat = /(\\d{1,4})/g;\n\n $.payment.cards = cards = [\n {\n type: 'maestro',\n patterns: [5018, 502, 503, 506, 56, 58, 639, 6220, 67],\n format: defaultFormat,\n length: [12, 13, 14, 15, 16, 17, 18, 19],\n cvcLength: [3],\n luhn: true\n }, {\n type: 'forbrugsforeningen',\n patterns: [600],\n format: defaultFormat,\n length: [16],\n cvcLength: [3],\n luhn: true\n }, {\n type: 'dankort',\n patterns: [5019],\n format: defaultFormat,\n length: [16],\n cvcLength: [3],\n luhn: true\n }, {\n type: 'visa',\n patterns: [4],\n format: defaultFormat,\n length: [13, 16],\n cvcLength: [3],\n luhn: true\n }, {\n type: 'mastercard',\n patterns: [51, 52, 53, 54, 55, 22, 23, 24, 25, 26, 27],\n format: defaultFormat,\n length: [16],\n cvcLength: [3],\n luhn: true\n }, {\n type: 'amex',\n patterns: [34, 37],\n format: /(\\d{1,4})(\\d{1,6})?(\\d{1,5})?/,\n length: [15],\n cvcLength: [3, 4],\n luhn: true\n }, {\n type: 'dinersclub',\n patterns: [30, 36, 38, 39],\n format: /(\\d{1,4})(\\d{1,6})?(\\d{1,4})?/,\n length: [14],\n cvcLength: [3],\n luhn: true\n }, {\n type: 'discover',\n patterns: [60, 64, 65, 622],\n format: defaultFormat,\n length: [16],\n cvcLength: [3],\n luhn: true\n }, {\n type: 'unionpay',\n patterns: [62, 88],\n format: defaultFormat,\n length: [16, 17, 18, 19],\n cvcLength: [3],\n luhn: false\n }, {\n type: 'jcb',\n patterns: [35],\n format: defaultFormat,\n length: [16],\n cvcLength: [3],\n luhn: true\n }\n ];\n\n cardFromNumber = function(num) {\n var card, p, pattern, _i, _j, _len, _len1, _ref;\n num = (num + '').replace(/\\D/g, '');\n for (_i = 0, _len = cards.length; _i < _len; _i++) {\n card = cards[_i];\n _ref = card.patterns;\n for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {\n pattern = _ref[_j];\n p = pattern + '';\n if (num.substr(0, p.length) === p) {\n return card;\n }\n }\n }\n };\n\n cardFromType = function(type) {\n var card, _i, _len;\n for (_i = 0, _len = cards.length; _i < _len; _i++) {\n card = cards[_i];\n if (card.type === type) {\n return card;\n }\n }\n };\n\n luhnCheck = function(num) {\n var digit, digits, odd, sum, _i, _len;\n odd = true;\n sum = 0;\n digits = (num + '').split('').reverse();\n for (_i = 0, _len = digits.length; _i < _len; _i++) {\n digit = digits[_i];\n digit = parseInt(digit, 10);\n if ((odd = !odd)) {\n digit *= 2;\n }\n if (digit > 9) {\n digit -= 9;\n }\n sum += digit;\n }\n return sum % 10 === 0;\n };\n\n hasTextSelected = function($target) {\n var _ref;\n if (($target.prop('selectionStart') != null) && $target.prop('selectionStart') !== $target.prop('selectionEnd')) {\n return true;\n }\n if ((typeof document !== \"undefined\" && document !== null ? (_ref = document.selection) != null ? _ref.createRange : void 0 : void 0) != null) {\n if (document.selection.createRange().text) {\n return true;\n }\n }\n return false;\n };\n\n safeVal = function(value, $target) {\n var currPair, cursor, digit, error, last, prevPair;\n try {\n cursor = $target.prop('selectionStart');\n } catch (_error) {\n error = _error;\n cursor = null;\n }\n last = $target.val();\n $target.val(value);\n if (cursor !== null && $target.is(\":focus\")) {\n if (cursor === last.length) {\n cursor = value.length;\n }\n if (last !== value) {\n prevPair = last.slice(cursor - 1, +cursor + 1 || 9e9);\n currPair = value.slice(cursor - 1, +cursor + 1 || 9e9);\n digit = value[cursor];\n if (/\\d/.test(digit) && prevPair === (\"\" + digit + \" \") && currPair === (\" \" + digit)) {\n cursor = cursor + 1;\n }\n }\n $target.prop('selectionStart', cursor);\n return $target.prop('selectionEnd', cursor);\n }\n };\n\n replaceFullWidthChars = function(str) {\n var chars, chr, fullWidth, halfWidth, idx, value, _i, _len;\n if (str == null) {\n str = '';\n }\n fullWidth = '\\uff10\\uff11\\uff12\\uff13\\uff14\\uff15\\uff16\\uff17\\uff18\\uff19';\n halfWidth = '0123456789';\n value = '';\n chars = str.split('');\n for (_i = 0, _len = chars.length; _i < _len; _i++) {\n chr = chars[_i];\n idx = fullWidth.indexOf(chr);\n if (idx > -1) {\n chr = halfWidth[idx];\n }\n value += chr;\n }\n return value;\n };\n\n reFormatNumeric = function(e) {\n var $target;\n $target = $(e.currentTarget);\n return setTimeout(function() {\n var value;\n value = $target.val();\n value = replaceFullWidthChars(value);\n value = value.replace(/\\D/g, '');\n return safeVal(value, $target);\n });\n };\n\n reFormatCardNumber = function(e) {\n var $target;\n $target = $(e.currentTarget);\n return setTimeout(function() {\n var value;\n value = $target.val();\n value = replaceFullWidthChars(value);\n value = $.payment.formatCardNumber(value);\n return safeVal(value, $target);\n });\n };\n\n formatCardNumber = function(e) {\n var $target, card, digit, length, re, upperLength, value;\n digit = String.fromCharCode(e.which);\n if (!/^\\d+$/.test(digit)) {\n return;\n }\n $target = $(e.currentTarget);\n value = $target.val();\n card = cardFromNumber(value + digit);\n length = (value.replace(/\\D/g, '') + digit).length;\n upperLength = 16;\n if (card) {\n upperLength = card.length[card.length.length - 1];\n }\n if (length >= upperLength) {\n return;\n }\n if (($target.prop('selectionStart') != null) && $target.prop('selectionStart') !== value.length) {\n return;\n }\n if (card && card.type === 'amex') {\n re = /^(\\d{4}|\\d{4}\\s\\d{6})$/;\n } else {\n re = /(?:^|\\s)(\\d{4})$/;\n }\n if (re.test(value)) {\n e.preventDefault();\n return setTimeout(function() {\n return $target.val(value + ' ' + digit);\n });\n } else if (re.test(value + digit)) {\n e.preventDefault();\n return setTimeout(function() {\n return $target.val(value + digit + ' ');\n });\n }\n };\n\n formatBackCardNumber = function(e) {\n var $target, value;\n $target = $(e.currentTarget);\n value = $target.val();\n if (e.which !== 8) {\n return;\n }\n if (($target.prop('selectionStart') != null) && $target.prop('selectionStart') !== value.length) {\n return;\n }\n if (/\\d\\s$/.test(value)) {\n e.preventDefault();\n return setTimeout(function() {\n return $target.val(value.replace(/\\d\\s$/, ''));\n });\n } else if (/\\s\\d?$/.test(value)) {\n e.preventDefault();\n return setTimeout(function() {\n return $target.val(value.replace(/\\d$/, ''));\n });\n }\n };\n\n reFormatExpiry = function(e) {\n var $target;\n $target = $(e.currentTarget);\n return setTimeout(function() {\n var value;\n value = $target.val();\n value = replaceFullWidthChars(value);\n value = $.payment.formatExpiry(value);\n return safeVal(value, $target);\n });\n };\n\n formatExpiry = function(e) {\n var $target, digit, val;\n digit = String.fromCharCode(e.which);\n if (!/^\\d+$/.test(digit)) {\n return;\n }\n $target = $(e.currentTarget);\n val = $target.val() + digit;\n if (/^\\d$/.test(val) && (val !== '0' && val !== '1')) {\n e.preventDefault();\n return setTimeout(function() {\n return $target.val(\"0\" + val + \" / \");\n });\n } else if (/^\\d\\d$/.test(val)) {\n e.preventDefault();\n return setTimeout(function() {\n var m1, m2;\n m1 = parseInt(val[0], 10);\n m2 = parseInt(val[1], 10);\n if (m2 > 2 && m1 !== 0) {\n return $target.val(\"0\" + m1 + \" / \" + m2);\n } else {\n return $target.val(\"\" + val + \" / \");\n }\n });\n }\n };\n\n formatForwardExpiry = function(e) {\n var $target, digit, val;\n digit = String.fromCharCode(e.which);\n if (!/^\\d+$/.test(digit)) {\n return;\n }\n $target = $(e.currentTarget);\n val = $target.val();\n if (/^\\d\\d$/.test(val)) {\n return $target.val(\"\" + val + \" / \");\n }\n };\n\n formatForwardSlashAndSpace = function(e) {\n var $target, val, which;\n which = String.fromCharCode(e.which);\n if (!(which === '/' || which === ' ')) {\n return;\n }\n $target = $(e.currentTarget);\n val = $target.val();\n if (/^\\d$/.test(val) && val !== '0') {\n return $target.val(\"0\" + val + \" / \");\n }\n };\n\n formatBackExpiry = function(e) {\n var $target, value;\n $target = $(e.currentTarget);\n value = $target.val();\n if (e.which !== 8) {\n return;\n }\n if (($target.prop('selectionStart') != null) && $target.prop('selectionStart') !== value.length) {\n return;\n }\n if (/\\d\\s\\/\\s$/.test(value)) {\n e.preventDefault();\n return setTimeout(function() {\n return $target.val(value.replace(/\\d\\s\\/\\s$/, ''));\n });\n }\n };\n\n reFormatCVC = function(e) {\n var $target;\n $target = $(e.currentTarget);\n return setTimeout(function() {\n var value;\n value = $target.val();\n value = replaceFullWidthChars(value);\n value = value.replace(/\\D/g, '').slice(0, 4);\n return safeVal(value, $target);\n });\n };\n\n restrictNumeric = function(e) {\n var input;\n if (e.metaKey || e.ctrlKey) {\n return true;\n }\n if (e.which === 32) {\n return false;\n }\n if (e.which === 0) {\n return true;\n }\n if (e.which < 33) {\n return true;\n }\n input = String.fromCharCode(e.which);\n return !!/[\\d\\s]/.test(input);\n };\n\n restrictCardNumber = function(e) {\n var $target, card, digit, value;\n $target = $(e.currentTarget);\n digit = String.fromCharCode(e.which);\n if (!/^\\d+$/.test(digit)) {\n return;\n }\n if (hasTextSelected($target)) {\n return;\n }\n value = ($target.val() + digit).replace(/\\D/g, '');\n card = cardFromNumber(value);\n if (card) {\n return value.length <= card.length[card.length.length - 1];\n } else {\n return value.length <= 16;\n }\n };\n\n restrictExpiry = function(e) {\n var $target, digit, value;\n $target = $(e.currentTarget);\n digit = String.fromCharCode(e.which);\n if (!/^\\d+$/.test(digit)) {\n return;\n }\n if (hasTextSelected($target)) {\n return;\n }\n value = $target.val() + digit;\n value = value.replace(/\\D/g, '');\n if (value.length > 6) {\n return false;\n }\n };\n\n restrictCVC = function(e) {\n var $target, digit, val;\n $target = $(e.currentTarget);\n digit = String.fromCharCode(e.which);\n if (!/^\\d+$/.test(digit)) {\n return;\n }\n if (hasTextSelected($target)) {\n return;\n }\n val = $target.val() + digit;\n return val.length <= 4;\n };\n\n setCardType = function(e) {\n var $target, allTypes, card, cardType, val;\n $target = $(e.currentTarget);\n val = $target.val();\n cardType = $.payment.cardType(val) || 'unknown';\n if (!$target.hasClass(cardType)) {\n allTypes = (function() {\n var _i, _len, _results;\n _results = [];\n for (_i = 0, _len = cards.length; _i < _len; _i++) {\n card = cards[_i];\n _results.push(card.type);\n }\n return _results;\n })();\n $target.removeClass('unknown');\n $target.removeClass(allTypes.join(' '));\n $target.addClass(cardType);\n $target.toggleClass('identified', cardType !== 'unknown');\n return $target.trigger('payment.cardType', cardType);\n }\n };\n\n $.payment.fn.formatCardCVC = function() {\n this.on('keypress', restrictNumeric);\n this.on('keypress', restrictCVC);\n this.on('paste', reFormatCVC);\n this.on('change', reFormatCVC);\n this.on('input', reFormatCVC);\n return this;\n };\n\n $.payment.fn.formatCardExpiry = function() {\n this.on('keypress', restrictNumeric);\n this.on('keypress', restrictExpiry);\n this.on('keypress', formatExpiry);\n this.on('keypress', formatForwardSlashAndSpace);\n this.on('keypress', formatForwardExpiry);\n this.on('keydown', formatBackExpiry);\n this.on('change', reFormatExpiry);\n this.on('input', reFormatExpiry);\n return this;\n };\n\n $.payment.fn.formatCardNumber = function() {\n this.on('keypress', restrictNumeric);\n this.on('keypress', restrictCardNumber);\n this.on('keypress', formatCardNumber);\n this.on('keydown', formatBackCardNumber);\n this.on('keyup', setCardType);\n this.on('paste', reFormatCardNumber);\n this.on('change', reFormatCardNumber);\n this.on('input', reFormatCardNumber);\n this.on('input', setCardType);\n return this;\n };\n\n $.payment.fn.restrictNumeric = function() {\n this.on('keypress', restrictNumeric);\n this.on('paste', reFormatNumeric);\n this.on('change', reFormatNumeric);\n this.on('input', reFormatNumeric);\n return this;\n };\n\n $.payment.fn.cardExpiryVal = function() {\n return $.payment.cardExpiryVal($(this).val());\n };\n\n $.payment.cardExpiryVal = function(value) {\n var month, prefix, year, _ref;\n _ref = value.split(/[\\s\\/]+/, 2), month = _ref[0], year = _ref[1];\n if ((year != null ? year.length : void 0) === 2 && /^\\d+$/.test(year)) {\n prefix = (new Date).getFullYear();\n prefix = prefix.toString().slice(0, 2);\n year = prefix + year;\n }\n month = parseInt(month, 10);\n year = parseInt(year, 10);\n return {\n month: month,\n year: year\n };\n };\n\n $.payment.validateCardNumber = function(num) {\n var card, _ref;\n num = (num + '').replace(/\\s+|-/g, '');\n if (!/^\\d+$/.test(num)) {\n return false;\n }\n card = cardFromNumber(num);\n if (!card) {\n return false;\n }\n return (_ref = num.length, __indexOf.call(card.length, _ref) >= 0) && (card.luhn === false || luhnCheck(num));\n };\n\n $.payment.validateCardExpiry = function(month, year) {\n var currentTime, expiry, _ref;\n if (typeof month === 'object' && 'month' in month) {\n _ref = month, month = _ref.month, year = _ref.year;\n }\n if (!(month && year)) {\n return false;\n }\n month = $.trim(month);\n year = $.trim(year);\n if (!/^\\d+$/.test(month)) {\n return false;\n }\n if (!/^\\d+$/.test(year)) {\n return false;\n }\n if (!((1 <= month && month <= 12))) {\n return false;\n }\n if (year.length === 2) {\n if (year < 70) {\n year = \"20\" + year;\n } else {\n year = \"19\" + year;\n }\n }\n if (year.length !== 4) {\n return false;\n }\n expiry = new Date(year, month);\n currentTime = new Date;\n expiry.setMonth(expiry.getMonth() - 1);\n expiry.setMonth(expiry.getMonth() + 1, 1);\n return expiry > currentTime;\n };\n\n $.payment.validateCardCVC = function(cvc, type) {\n var card, _ref;\n cvc = $.trim(cvc);\n if (!/^\\d+$/.test(cvc)) {\n return false;\n }\n card = cardFromType(type);\n if (card != null) {\n return _ref = cvc.length, __indexOf.call(card.cvcLength, _ref) >= 0;\n } else {\n return cvc.length >= 3 && cvc.length <= 4;\n }\n };\n\n $.payment.cardType = function(num) {\n var _ref;\n if (!num) {\n return null;\n }\n return ((_ref = cardFromNumber(num)) != null ? _ref.type : void 0) || null;\n };\n\n $.payment.formatCardNumber = function(num) {\n var card, groups, upperLength, _ref;\n num = num.replace(/\\D/g, '');\n card = cardFromNumber(num);\n if (!card) {\n return num;\n }\n upperLength = card.length[card.length.length - 1];\n num = num.slice(0, upperLength);\n if (card.format.global) {\n return (_ref = num.match(card.format)) != null ? _ref.join(' ') : void 0;\n } else {\n groups = card.format.exec(num);\n if (groups == null) {\n return;\n }\n groups.shift();\n groups = $.grep(groups, function(n) {\n return n;\n });\n return groups.join(' ');\n }\n };\n\n $.payment.formatExpiry = function(expiry) {\n var mon, parts, sep, year;\n parts = expiry.match(/^\\D*(\\d{1,2})(\\D+)?(\\d{1,4})?/);\n if (!parts) {\n return '';\n }\n mon = parts[1] || '';\n sep = parts[2] || '';\n year = parts[3] || '';\n if (year.length > 0) {\n sep = ' / ';\n } else if (sep === ' /') {\n mon = mon.substring(0, 1);\n sep = '';\n } else if (mon.length === 2 || sep.length > 0) {\n sep = ' / ';\n } else if (mon.length === 1 && (mon !== '0' && mon !== '1')) {\n mon = \"0\" + mon;\n sep = ' / ';\n }\n return mon + sep + year;\n };\n\n}).call(this);\n"]}