UserBet Tokenization Process
UserBet Tokenization Process
function getTokenSchemeProperties(n) {
var r = [Link]().toLowerCase(), t = {
baseRegEx: "^.{1,1000}$",
limitInput: [Link]
}, u, i;
try {
if (isNaN(r))
typeof tokenSchemes[r] != "undefined" && ([Link] =
tokenSchemes[r].baseRegEx,
[Link] = tokenSchemes[r].limitInput);
else
for (u = [Link](tokenSchemes),
i = 0; i < [Link]; i++)
tokenSchemes[u[i]].value == r && ([Link] =
tokenSchemes[u[i]].baseRegEx,
[Link] = tokenSchemes[u[i]].limitInput)
} catch (f) {
return t
}
return t
}
function TokenScheme(n, t, i) {
[Link] = n;
[Link] = t;
[Link] = i
}
function setKountSessionId(n) {
[Link] = [Link]
}
function setFraudServicesRiskRequestModel(n) {
[Link] = n
}
function setUserDefinedStyles(n) {
if ("base"in n &&
[Link]([Link]("input {" + [Link] +
"}")),
"focus"in n &&
[Link]([Link]("input:focus {" +
[Link] + "}")),
"error"in n &&
[Link]([Link]("[Link] {" +
[Link] + "}")),
"placeholder"in n &&
([Link]([Link]("input::placeholder
{" + [Link] + "}")),
[Link]([Link]("input::-webkit-
input-placeholder {" + [Link] + "}")),
[Link]([Link]("input::-moz-
placeholder {" + [Link] + "}")),
[Link]([Link]("input:-ms-input-
placeholder {" + [Link] + "}")),
[Link]([Link]("input:-moz-
placeholder {" + [Link] + "}"))),
isDetokenizeIframe)
var t = setInterval(function() {
try {
getCvvWindow() && (setUserDefinedCvvStyles(n),
clearInterval(t))
} catch (i) {
log(i)
}
}, 5);
else
[Link] && "cvv"in n && ("base"in [Link] &&
[Link]([Link]("input {" +
[Link] + "}")),
"focus"in [Link] &&
[Link]([Link]("input:focu
s {" + [Link] + "}")),
"error"in [Link] &&
[Link]([Link]("[Link]
r {" + [Link] + "}")),
"placeholder"in [Link] &&
([Link]([Link]("input::pl
aceholder {" + [Link] + "}")),
[Link]([Link]("input::-
webkit-input-placeholder {" + [Link] + "}")),
[Link]([Link]("input::-
moz-placeholder {" + [Link] + "}")),
[Link]([Link]("input:-ms-
input-placeholder {" + [Link] + "}")),
[Link]([Link]("input:-
moz-placeholder {" + [Link] + "}"))))
}
function setUserDefinedCvvStyles(n) {
var t = getCvvWindow();
"cvv"in n && ("base"in [Link] &&
[Link]([Link]("input {" +
[Link] + "}")),
"focus"in [Link] &&
[Link]([Link]("input:focus {" +
[Link] + "}")),
"error"in [Link] &&
[Link]([Link]("[Link] {" +
[Link] + "}")),
"placeholder"in [Link] &&
([Link]([Link]("input::placeholde
r {" + [Link] + "}")),
[Link]([Link]("input::-
webkit-input-placeholder {" + [Link] + "}")),
[Link]([Link]("input::-moz-
placeholder {" + [Link] + "}")),
[Link]([Link]("input:-ms-
input-placeholder {" + [Link] + "}")),
[Link]([Link]("input:-moz-
placeholder {" + [Link] + "}"))))
}
function checkValidity(n, t) {
var i = {
event: "validate",
data: {
isValid: !0
}
}, r, u;
return (n === undefined && (n = !1),
t === undefined && (t = !1),
[Link]) ? ([Link] = !1,
[Link]() ? [Link]() ? ([Link] = !0,
[Link]()) : ([Link](),
[Link] = "format") : ([Link](),
[Link] = "required"),
ariaRequired && setAriaInvalid(![Link]),
postToParent(i),
[Link]) : [Link] || [Link] ? ([Link] = !1,
[Link]() ? [Link]() ? [Link] = !0 : (t
&& [Link](),
[Link] = "format") : (t && [Link](),
[Link] = "required"),
[Link] && ([Link] = !1,
r = currentDataType !== undefined && currentDataType !== null ?
[Link] : !0,
u = [Link](/[^0-9]/g, ""),
r && ![Link]() ? (n && [Link](),
[Link] = "required") : (r || u !== "") && !
[Link]() ? (n && [Link](),
[Link] = "format") : ([Link] = !0,
n && [Link]())),
[Link] && ([Link](),
[Link] = currentDataType !== undefined && currentDataType !== null ?
[Link] : "unknown",
[Link] = [Link]([Link]),
[Link] = [Link]([Link])),
ariaRequired && (setAriaInvalid(![Link]),
setAriaInvalidCvv(![Link])),
postToParent(i),
[Link] ? [Link] && [Link] : [Link]) :
([Link] = !1,
[Link]() ? [Link]() ?
[Link]() ? ([Link](),
[Link] = !0,
[Link] = [Link]) : ([Link](),
[Link] = "customRegEx") : ([Link](),
[Link] = "format") : ([Link](),
[Link] = "required"),
ariaRequired && setAriaInvalid(![Link]),
postToParent(i),
[Link])
}
function tokenize() {
if (!posting && ![Link]) {
if ([Link]) {
if ([Link] === previousData &&
[Link] === previousCvv && previousResponse && !newAttempt) {
postToParent({
event: "tokenize",
data: previousResponse
});
return
}
} else if ([Link] === previousData && previousResponse && !
newAttempt) {
postToParent({
event: "tokenize",
data: previousResponse
});
return
}
newAttempt = !1;
var t = new XMLHttpRequest
, n = {};
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] && ([Link] = [Link]);
[Link] && ([Link] = [Link]);
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
n.use3DS = [Link];
[Link] =
[Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] =
[Link];
[Link] = [Link];
[Link] = typeof currentDataType != "undefined" &&
currentDataType !== null ? [Link] : !0;
[Link]("POST", [Link], !0);
[Link]("Content-Type", "application/json");
[Link] = function() {
if ([Link] === 4 && [Link] === 200) {
posting = !1;
var n = parseJSON([Link]);
[Link] ? postToParent({
event: "error",
data: n
}) : (([Link] || [Link]) && ([Link] = typeof
currentDataType != "undefined" && currentDataType !== null ? [Link] :
"unknown"),
postToParent({
event: "tokenize",
data: n
}),
previousData = [Link],
previousResponse = n,
[Link] && (previousCvv = [Link]))
}
}
;
posting = !0;
[Link]([Link](n))
}
}
function callForterInit(n) {
var t, i, r;
n === forterPreviousCC && postToParent({
event: "forterInit",
data: forterPreviousResponse
});
t = new XMLHttpRequest;
i = {};
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = n;
[Link] = [Link];
[Link] = [Link];
[Link] = forterSiteId;
[Link] = forterUsername;
r = [Link] + [Link] + "/Forter" +
[Link];
[Link]("POST", r, !0);
[Link]("Content-Type", "application/json");
[Link] = function() {
var i, r;
[Link] === 4 && [Link] === 200 ? (posting = !1,
i = parseJSON([Link]),
[Link] ? postToParent({
event: "error",
data: i
}) : (r = [Link],
postToParent({
event: "forterInit",
data: parseJSON(r)
}),
forterPreviousResponse = r,
forterPreviousCC = n)) : [Link] === 4 && [Link] !== 200 &&
postToParent({
event: "error",
data: "Forter Init3DS error: " + [Link]
})
}
;
posting = !0;
[Link]([Link](i))
}
function enableValidateOnBlur() {
validateOnBlur = !0
}
function setAriaInvalid(n) {
[Link]("aria-invalid", n)
}
function setAriaInvalidCvv(n) {
[Link]("aria-invalid", n)
}
function messageListener(n) {
var i, t;
n && [Link] && (i = parseJSON([Link]),
i) && [Link] === [Link](",")[0] && (t = [Link],
t) && [Link](t) && commands[t].enabled && typeof
commands[t].func == "function" && commands[t].func(i)
}
function setAllowUnknownTypes() {
allowUnknownTypes = !0;
[Link] && ([Link] = !0)
}
function setCustomDataTypes(n) {
for (var r, i = n, u = !1, t = 0; t < [Link]; t++) {
for (i[t].luhnCheck === undefined ? i[t].luhnCheck = !0 : i[t].luhnCheck !
== undefined && (i[t].luhnCheck = typeof i[t].luhnCheck == "boolean" ?
Boolean(i[t].luhnCheck) : typeof i[t].luhnCheck == "string" && i[t].luhnCheck !==
"false"),
(i[t].cvvRequired === undefined || i[t].cvvRequired !== undefined &&
i[t].[Link]().toLowerCase() !== "true" &&
i[t].[Link]().toLowerCase() !== "false") && (i[t].cvvRequired = !0),
u = !1,
r = 1; r <= [Link] - 1; r++)
if ([Link][r].[Link]() ===
i[t].[Link]()) {
[Link](r, 1, i[t]);
u = !0;
break
}
u || [Link](i[t])
}
[Link]()
}
function setCustomRegEx(n) {
[Link] = n
}
function reset() {
[Link] && ([Link] = "",
[Link]());
previousData = null;
previousCvv = null;
previousResponse = null;
[Link] = "";
[Link]();
postToParent({
event: "reset",
data: {
value: !0
}
})
}
function setExpirationTimeout(n) {
clearTimeout(expirationTimeout);
expirationTimeout = setTimeout(function() {
postToParent({
event: "expired"
})
}, n * 1e3)
}
function setNewAttemptTimeout(n) {
clearTimeout(newAttemptTimeout);
newAttemptTimeout = setTimeout(function() {
newAttempt = !0;
setNewAttemptTimeout(n)
}, n * 1e3)
}
function setCvvBlur() {
[Link]()
}
function setBlur() {
if ([Link]()) {
var n = [Link]("iosFix");
n || (n = [Link]("input"),
[Link] = "button",
[Link] = "0px",
[Link] = "0px",
[Link] = "0",
[Link] = "0",
[Link] = "absolute",
[Link] = "-200%",
[Link] = "0px",
[Link]("id", "iosFix"),
[Link](n, [Link]));
[Link]();
[Link]()
} else
[Link]()
}
function setFocus() {
[Link]() ? [Link]() : [Link]()
}
function setCvvFocus() {
[Link]()
}
function enablePrettyFormat() {
if (isDetokenizeIframe) {
[Link]();
return
}
([Link] || [Link]) && [Link] === "text" &&
([Link]([Link], "keyup",
[Link]),
[Link]([Link], "change", [Link]),
[Link]([Link], "keydown", [Link]),
[Link]([Link], "keydown", [Link]),
[Link]([Link], "keyup",
[Link]),
[Link] = dataTypeMaxLength > 19 ? dataTypeMaxLength + 4 : 23)
}
function enableValidateOnKeyUp() {
validateOnKeyUp = !0
}
function enableValidateOnCvvKeyUp() {
validateOnCvvKeyUp = !0
}
function setType(n) {
[Link](n)
}
function setCvvType(n) {
[Link] && [Link](n)
}
function log(n) {
[Link] && debug && [Link]("TokenEx Iframe debug: " +
[Link](n))
}
function postToParent(n) {
log(n);
[Link] = [Link];
[Link]([Link](n), [Link](",")[0])
}
function loadValidation() {
if (!isDetokenizeIframe) {
var n = getTokenSchemeProperties([Link]());
[Link] = [Link];
[Link] = [Link]
}
}
function setCvvWindow() {
cvvWindow = getCvvWindow();
[Link]([Link], "blur",
[Link]);
[Link]([Link], "focus",
[Link]);
[Link]([Link], "change",
[Link]);
[Link]([Link], "keyup",
[Link]);
[Link] = 4;
cvvLoaded = !0
}
function getCvvWindow() {
return [Link]["tx_iframe_cvv_" + [Link]]
}
function setNameToCardNumber() {
[Link]("name", "cardNumber")
}
function cvv_init() {
try {
getCvvWindow() && (setCvvWindow(),
postToParent({
event: "load",
data: {
value: !0
}
}),
clearInterval(messageInterval))
} catch (n) {
log(n)
}
}
function setMode() {
var n = [Link] !== null && [Link]() ===
"true"
, r = [Link]() === "true"
, t = [Link] !== null && [Link]() === "cvv"
, u = [Link] !== null && [Link]() === "data"
, i = [Link] !== null && [Link]() === "true";
r ? [Link] = !0 : n && t && i ? [Link] = !0 : n && u && i ? [Link]
= !0 : n ? [Link] = !0 : isDetokenizeIframe && t ? [Link] = !0 : [Link] = !0
}
function page_init() {
if ([Link]) {
postToParent({
event: "error",
data: parseJSON([Link])
});
return
}
setMode();
[Link](window, "focus", [Link]);
[Link] || ([Link] ? addEventListener("message",
messageListener, !1) : attachEvent("onmessage", messageListener),
isDetokenizeIframe || [Link] === "False" ||
[Link]([Link], "change",
[Link]));
[Link] ? ([Link]([Link], "keyup",
[Link]),
[Link]([Link], "keydown", [Link]),
[Link]([Link], "focus", [Link]),
[Link]([Link], "change", [Link]),
[Link]([Link], "blur", [Link]),
[Link] = 4,
postToParent({
event: "load",
data: {
value: !0
}
})) : [Link] ? ([Link]([Link], "keyup",
[Link]),
[Link]([Link], "keydown", [Link]),
[Link]([Link], "keyup", [Link]),
[Link]([Link], "focus", [Link]),
[Link]([Link], "change", [Link]),
[Link]([Link], "blur", [Link]),
setNameToCardNumber(),
messageInterval = setInterval(cvv_init, 5)) : [Link] ?
([Link]([Link], "keyup", [Link]),
[Link]([Link], "keydown", [Link]),
[Link] = 4) : [Link] ? ([Link]([Link],
"keyup", [Link]),
[Link]([Link], "keydown", [Link]),
[Link]([Link], "keyup", [Link]),
[Link]([Link], "focus", [Link]),
[Link]([Link], "change", [Link]),
[Link]([Link], "blur", [Link]),
setNameToCardNumber(),
postToParent({
event: "load",
data: {
value: !0
}
})) : (loadValidation(),
[Link]([Link], "keyup", [Link]),
[Link]([Link], "focus", [Link]),
[Link]([Link], "change", [Link]),
[Link]([Link], "blur", [Link]),
postToParent({
event: "load",
data: {
value: !0
}
}));
setExpirationTimeout(timeoutInSeconds);
setNewAttemptTimeout(newAttemptTimeout)
}
function getQueryObject() {
if (!queryObject && (queryObject = {},
[Link])) {
var n = [Link](1).split("&");
[Link](function(n) {
var t = [Link]("=")
, i = decodeURIComponent(t[0])
, r = decodeURIComponent(t[1]);
queryObject[i] = r
})
}
return queryObject
}
function parseJSON(n) {
try {
return [Link](n)
} catch (t) {
return null
}
}
function ready(n) {
[Link] ? [Link]("DOMContentLoaded", n) :
[Link]("onreadystatechange", function() {
[Link] === "complete" && n()
})
}
var elements = {}, mode = {
pii: !1,
pci: !1,
cvvonly: !1,
pcicvv: !1,
cvv: !1
}, currentDataType, previousCardType, debug = !1, posting = !1, validateOnBlur = !
1, previousData, previousCvv, previousResponse, allowUnknownTypes = !1, cvvLoaded =
!1, cvv = !1, cvvMode = !1, cvvOnlyMode = !1, cvvWindow, messageInterval,
dataTypeMaxLength = 19, ariaRequired = !1, forterSiteId, forterUsername,
forterPreviousResponse, forterPreviousCC, queryObject, validateOnKeyUp = !1,
validateOnCvvKeyUp = !1, initialInputType = "text", expirationTimeout,
tokenizeTimeoutDefault = getQueryObject().ExpiresInSeconds || 1200,
tokenizeTimeoutMax = getQueryObject().ExpiresInSeconds || 1200,
detokenizeTimeoutDefault = getQueryObject().ExpiresInSeconds || 20,
detokenizeTimeoutMax = 60, isDetokenizeIframe =
[Link]("detokenize") > -1, timeoutDefault =
isDetokenizeIframe ? detokenizeTimeoutDefault : tokenizeTimeoutDefault, timeoutMax
= isDetokenizeIframe ? detokenizeTimeoutMax : tokenizeTimeoutMax, timeoutInSeconds
= getQueryObject().ExpiresInSeconds || timeoutDefault, handlers;
timeoutInSeconds = [Link](timeoutInSeconds, timeoutMax);
var newAttemptTimeout = 300
, newAttempt = !1
, commands = {
reset: {
enabled: !0,
func: function() {
reset()
}
},
kountDataCollectionEnd: {
enabled: !0,
func: function(n) {
setKountSessionId([Link])
}
},
setFraudServicesRiskRequestModel: {
enabled: !0,
func: function(n) {
setFraudServicesRiskRequestModel([Link])
}
},
setStyle: {
enabled: !0,
func: function(n) {
setUserDefinedStyles([Link])
}
},
setPlaceholder: {
enabled: !0,
func: function(n) {
[Link] = [Link]
}
},
setCvvPlaceholder: {
enabled: !0,
func: function(n) {
[Link] = [Link]
}
},
setCardType: {
enabled: !0,
func: function(n) {
[Link] ?
([Link]([Link]([Link])),
[Link] = [Link]) :
([Link]([Link]("unknown")),
[Link] = [Link])
}
},
validate: {
enabled: !0,
func: function() {
checkValidity([Link], !0)
}
},
tokenize: {
enabled: !0,
func: function() {
!posting && checkValidity([Link], !0) && tokenize()
}
},
enablePrettyFormat: {
enabled: !0,
func: function() {
enablePrettyFormat()
}
},
enableDebug: {
enabled: !1,
func: function() {
debug = !0
}
},
setType: {
enabled: !0,
func: function(n) {
setType([Link])
}
},
setCvvType: {
enabled: !0,
func: function(n) {
setCvvType([Link])
}
},
focus: {
enabled: !0,
func: function() {
setFocus()
}
},
toggleMask: {
enabled: !0,
func: function() {
var n = [Link] === "password";
[Link] = n ? initialInputType : "password";
postToParent({
event: "toggleMask",
data: {
inputMasked: !n
}
})
}
},
toggleCvvMask: {
enabled: !0,
func: function() {
var n = [Link] === "password";
[Link] = n ? initialInputType : "password";
postToParent({
event: "toggleCvvMask",
data: {
cvvInputMasked: !n
}
})
}
},
cvvFocus: {
enabled: !0,
func: function() {
setCvvFocus()
}
},
blur: {
enabled: !0,
func: function() {
setBlur()
}
},
cvvBlur: {
enabled: !0,
func: function() {
setCvvBlur()
}
},
setCustomRegEx: {
enabled: !0,
func: function(n) {
setCustomRegEx([Link])
}
},
enableValidateOnBlur: {
enabled: !0,
func: function() {
enableValidateOnBlur()
}
},
enableAriaRequired: {
enabled: !0,
func: function() {
ariaRequired = !0;
[Link]("aria-required", !0);
[Link] && [Link]("aria-required", !
0)
}
},
enableForterIntegration: {
enabled: !0,
func: function(n) {
forterSiteId = [Link];
forterUsername = [Link]
}
},
enableUnknownCardTypes: {
enabled: !0,
func: function() {
setAllowUnknownTypes()
}
},
setCustomDataTypes: {
enabled: !0,
func: function(n) {
setCustomDataTypes([Link])
}
},
enableAutoComplete: {
enabled: !0,
func: function() {
[Link] = [Link] ? "cc-csc" : "cc-number";
[Link] && ([Link] = "cc-csc")
}
},
enableValidateOnKeyUp: {
enabled: !0,
func: function() {
enableValidateOnKeyUp()
}
},
enableValidateOnCvvKeyUp: {
enabled: !0,
func: function() {
enableValidateOnCvvKeyUp()
}
},
setFont: {
enabled: !0,
func: function(n) {
var e = "[Link] +
[Link], t = [Link](":"), s = decodeURI(t[0]).replace("+", " "), o = "normal",
r = 0, u, i, f;
if ([Link] > 1) {
t = t[1].split(",");
for (u in t)
if (t[u] == "ital")
o = "italic";
else {
if (i = parseInt(t[u]),
isNaN(i))
continue;
i > r && (r = i)
}
}
f = "input { font-family: '" + s + "'; font-weight: " + (r || "normal")
+ "; font-style: " + o + "; }";
[Link] || ([Link] =
[Link]("link"),
[Link] = "stylesheet",
[Link]([Link]));
[Link] || ([Link] =
[Link]("style"),
[Link]([Link]));
[Link] && ![Link] &&
([Link] = [Link]("link"),
[Link] = "stylesheet",
[Link]([Link]));
[Link] && ![Link] &&
([Link] = [Link]("style"),
[Link]([Link]));
[Link] && ([Link] = e,
[Link] = f);
[Link] = e;
[Link] = f
}
},
setInputMode: {
enabled: !0,
func: function(n) {
var t;
if ([Link] && [Link] !== "undefined") {
switch ([Link]()) {
case "text":
t = "text";
break;
case "decimal":
t = "decimal";
break;
case "numeric":
t = "numeric";
break;
case "tel":
t = "tel";
break;
case "search":
t = "search";
break;
case "email":
t = "email";
break;
case "url":
t = "url";
break;
case "none":
t = "none";
break;
default:
t = "text"
}
[Link]("inputmode", t);
[Link] && [Link]("inputmode", t)
}
}
}
}
, dataTypeCollection = {
getDataTypes: function(n) {
for (var i = [Link][0], t = 1; t <= [Link] - 1; t++)
if ([Link][t].[Link]() === [Link]()) {
i = [Link][t];
break
}
return i
},
setDataTypeMaxLength: function() {
for (var t = 19, n = 1; n <= [Link] - 1; n++)
[Link][n].maxLength > t && (t = [Link][n].maxLength);
dataTypeMaxLength = parseInt(t);
[Link] = dataTypeMaxLength
},
dataTypes: [{
type: "unknown",
validRegex: "^\\d{13,19}$",
possibleRegEx: "^\\d{13,19}$",
luhnCheck: !0,
maxLength: 19,
cvvValidRegex: "^[0-9]{3,4}$",
cvvMaxLength: 4,
cvvRequired: !0
}, {
type: "diners",
validRegex: "^3(0[0-5]|[68]\\d)\\d{11,16}$",
possibleRegEx: "^3(0[0-5]|[68]\\d)\\d{0,16}$",
luhnCheck: !0,
maxLength: 19,
cvvValidRegex: "^[0-9]{3}$",
cvvMaxLength: 3,
cvvRequired: !0
}, {
type: "jcb",
validRegex: "^35(28|29|[3-8]\\d)\\d{12,15}$",
possibleRegEx: "^35(28|29|[3-8]\\d)\\d{0,15}$",
luhnCheck: !0,
maxLength: 19,
cvvValidRegex: "^[0-9]{3}$",
cvvMaxLength: 3,
cvvRequired: !0
}, {
type: "americanExpress",
validRegex: "^3[47]\\d{13,17}$",
possibleRegEx: "^3[47]\\d{0,17}$",
luhnCheck: !0,
maxLength: 19,
cvvValidRegex: "^[0-9]{4}$",
cvvMaxLength: 4,
cvvRequired: !0
}, {
type: "discover",
validRegex: "^(6011|65\\d{2}|64[4-9]\\d)\\d{12,15}|^(62\\d{14,17})$",
possibleRegEx: "^(6011|65\\d{2}|64[4-9]\\d)\\d{0,15}|^(62\\d{0,17})$",
luhnCheck: !0,
maxLength: 19,
cvvValidRegex: "^[0-9]{3}$",
cvvMaxLength: 3,
cvvRequired: !0
}, {
type: "masterCard",
validRegex: "^(5[1-5]\\d{4}|677189|222[1-9]\\d{2}|22[3-9]\\d{3}|2[3-6]\\
d{4}|27[01]\\d{3}|2720\\d{2})\\d{10,13}$",
possibleRegEx: "^(5[1-5]\\d{4}|677189|222[1-9]\\d{2}|22[3-9]\\d{3}|2[3-6]\\
d{4}|27[01]\\d{3}|2720\\d{2})\\d{0,13}$",
luhnCheck: !0,
maxLength: 19,
cvvValidRegex: "^[0-9]{3}$",
cvvMaxLength: 3,
cvvRequired: !0
}, {
type: "visa",
validRegex: "^4\\d{12}(\\d{3})?(\\d{3})?$",
possibleRegEx: "^4\\d{0,12}(\\d{3})?(\\d{3})?$",
luhnCheck: !0,
maxLength: 19,
cvvValidRegex: "^[0-9]{3}$",
cvvMaxLength: 3,
cvvRequired: !0
}]
}
, util = {
addEventListener: function(n, t, i) {
[Link] ? [Link](t, i, !1) : [Link]("on" + t,
function() {
[Link](n)
})
},
removeEventListener: function(n, t, i) {
[Link] && [Link](t, i, !1);
[Link] && [Link]("on" + t, i)
},
hasClass: function(n, t) {
return (" " + [Link] + " ").indexOf(" " + t + " ") > -1
},
removeError: function() {
[Link]([Link], "error") && [Link]([Link],
"error")
},
addError: function() {
[Link]([Link], "error") || [Link]([Link],
"error")
},
preventDefault: function(n) {
var t = n !== undefined ? n : [Link];
return [Link] ? [Link]() : [Link] = !1,
t
},
addClass: function(n, t) {
n && ([Link] ? [Link](t) : [Link] += " " + t)
},
removeClass: function(n, t) {
n && ([Link] ? [Link](t) : [Link] =
[Link](new RegExp("(^|\\b)" + [Link](" ").join("|") + "(\\b|
$)","gi"), " "))
},
getLastFour: function(n) {
var t = [Link](/[^0-9]/g, "");
return [Link] > 4 ? [Link]([Link] - 4) : ""
},
getFirstSix: function(n) {
var t = [Link](/[^0-9]/g, "");
return [Link] > 6 ? [Link](0, 6) : ""
},
getFirstEight: function(n) {
var t = [Link](/[^0-9]/g, "");
return [Link] >= 16 ? [Link](0, 8) : ""
},
isIos: function() {
return /iPhone|iPod|iPad/.test([Link])
},
isFirefox: function() {
return /firefox/.test([Link]())
},
arrayContains: function(n, t) {
return [Link](n) > -1
},
between: function(n, t, i) {
return n >= t && n <= i
},
which: function(n) {
return [Link] || [Link]
},
setValue: function(n, t) {
var f, i, r, e, u;
try {
i = [Link]
} catch (o) {
i = null
}
if (u = [Link],
[Link] = n,
i !== null && t === [Link]) {
i === [Link] && (i = [Link]);
u !== n && (e = [Link](i - 1, +i + 1 || 9e9),
f = [Link](i - 1, +i + 1 || 9e9),
r = n[i],
/\d/.test(r) && e === "" + r + " " && f === " " + r && (i = i + 1));
[Link](t, i);
return
}
},
setCaretPosition: function(n, t) {
if (typeof n != "undefined" && n !== null)
if ([Link]) {
var i = [Link]();
[Link]("character", t);
[Link]()
} else
[Link] ? ([Link](),
[Link](t, t)) : [Link]()
},
hasTextSelected: function(n) {
var t;
return [Link] !== null && [Link] !== [Link] ? !
0 : (typeof document != "undefined" && document !== null ? (t = [Link])
!= null ? [Link] : void 0 : void 0) != null &&
[Link]().text ? !0 : !1
},
setType: function(n) {
if (n === "number") {
[Link] = "number";
[Link] = "numeric";
[Link]("min", "0");
initialInputType = n;
return
}
if (n === "tel") {
[Link] = "tel";
[Link] = "tel";
initialInputType = n;
return
}
if (n === "password") {
[Link] = "password";
return
}
}
}
, interactions = {
doNotLimitInput: function() {
return !0
},
limitInputToNumeric: function(n) {
var t = [Link]
, i = [Link];
return [Link] = [Link](/[^0-9]/g, ""),
!0
},
limitInputToAlphaNumeric: function() {
var n = [Link]
, t = [Link];
return [Link] = [Link](/[^a-zA-Z0-9]/g, ""),
!0
},
handleBackSpace: function(n) {
if ([Link](n) === 8 && [Link](n) === 46) {
var i = [Link]
, t = [Link]
, r = [Link];
(r === null || r === [Link]) && (/\d\s$/.test(t) ?
([Link](),
[Link] = [Link](/\d\s$/, "")) : /\s\d?$/.test(t) &&
([Link](),
[Link] = [Link](/\d$/, "")))
}
},
limitLength: function(n) {
var i, r, t, u;
[Link] || [Link](n) !== 8 && [Link](n) !== 46 && [Link](n) !
== 9 && ([Link](n) >= 35 && [Link](n) <= 40 || (i = [Link],
r = [Link](/[^0-9]/g, ""),
[Link](i)) || (t = dataTypeMaxLength,
allowUnknownTypes ? t = dataTypeMaxLength > 19 ? dataTypeMaxLength : 19 :
typeof currentDataType != "undefined" && currentDataType !== null && (t =
dataTypeMaxLength > parseInt([Link]) ? dataTypeMaxLength :
parseInt([Link])),
([Link] || [Link]) && (t = typeof currentDataType != "undefined" &&
currentDataType !== null ? parseInt([Link]) : 4,
allowUnknownTypes && (t = 4)),
[Link] && [Link] && (u =
[Link]([Link]),
[Link](n=>{
var i = parseInt([Link][n].value);
t = i !== 0 ? setCardMaxLengths() : dataTypeMaxLength
}
)),
[Link] === t && [Link](n)))
},
prettyprintkeyUpHandler: function(n) {
if ((![Link] || [Link](n) !== 65) && (![Link] || [Link](n) !
== 67))
if ([Link]([Link](n), 48, 111) || [Link]([Link](n),
186, 222) || [Link](n) === 229)
[Link]();
else
return
},
formatCreditCard: function() {
var n = [Link](/[^0-9]/g, ""), r =
[Link](n), u = !1, i = dataTypeMaxLength > 19 ?
dataTypeMaxLength : 19, f, t;
return r !== null && (u = [Link] === "americanExpress",
[Link](r),
i = [Link],
allowUnknownTypes && !u && (i = dataTypeMaxLength > 19 ? dataTypeMaxLength
+ 4 : 19)),
f = [Link]([Link], i),
n = [Link](0, f),
t = [],
[Link]([Link](0, 4)),
u ? ([Link] >= 5 && [Link]([Link](4, 10)),
[Link] >= 11 && [Link]([Link](10, i))) : ([Link] >= 5 &&
[Link]([Link](4, 8)),
[Link] >= 9 && [Link]([Link](8, 12)),
[Link] >= 13 && [Link]([Link](12, 16)),
[Link] >= 17 && [Link]([Link](16, 19)),
[Link] >= 20 && [Link]([Link](19, i))),
[Link]([Link](" "), [Link]),
!0
}
}
, setCardMaxLengths = function() {
var t = [Link], i, n;
if (t = [Link](/[^0-9]/g, ""),
i = [Link](t),
n = dataTypeMaxLength,
[Link] && [Link])
switch ([Link]) {
case "visa":
n = [Link];
break;
case "masterCard":
n = [Link];
break;
case "americanExpress":
n = [Link];
break;
case "discover":
n = [Link];
break;
case "jcb":
n = [Link];
break;
case "diners":
n = [Link]
}
return parseInt(n)
}
, validations = {
required: function() {
return !![Link]
},
cvvValidate: function() {
var n = [Link](/[^0-9]/g, "");
return allowUnknownTypes || currentDataType !== undefined &&
currentDataType !== null && [Link] !== "unknown" ?
[Link]([Link]) : [Link] === 3
},
validate: function() {
return [Link]([Link])
},
customValidate: function() {
return [Link] > 0 ?
[Link]([Link]) : !0
},
baseRegEx: "",
customRegEx: "",
limitInput: [Link],
panValidate: function() {
var i = [Link](/[^0-9]/g, "")
, n = !0
, t = [Link](i);
return [Link](t),
t === null && (n = !1),
t !== null && [Link] === "unknown" && (n = allowUnknownTypes),
n && [Link]([Link]()) &&
[Link] && (n = [Link](i)),
n
},
luhnCheck: function(n) {
for (var f, u = 0, t = 0, i = !1, r = [Link] - 1; r >= 0; r--)
f = [Link](r),
t = parseInt(f, 10),
i && (t *= 2) > 9 && (t -= 9),
u += t,
i = !i;
return u % 10 == 0
},
getPossibleCardType: function(n) {
for (var i = [Link]("unknown"), t =
[Link] - 1; t >= 0; t--)
if ([Link]([Link][t].possibleRegEx)) {
i = [Link][t];
break
}
return i
},
getCardType: function(n) {
for (var i = [Link]("unknown"), t =
[Link] - 1; t >= 0; t--)
if ([Link]([Link][t].validRegex)) {
i = [Link][t];
break
}
return i
},
setCurrentCardType: function(n) {
n == null && (n = [Link]("unknown"));
currentDataType = n;
[Link] && ([Link] = n)
}
}
, tokenSchemes = {
sixtokenfour: new TokenScheme(1,"^[0-9]
{13,19}$",[Link]),
fourtokenfour: new TokenScheme(2,"^[0-9]
{13,19}$",[Link]),
tokenfour: new TokenScheme(3,"^[0-9]
{13,19}$",[Link]),
guid: new TokenScheme(4,"^.{1,1000}$",[Link]),
ssn: new TokenScheme(5,"^[0-9]{9}$",[Link]),
nguid: new TokenScheme(6,"^[0-9]{1,1000}$",[Link]),
ntokenfour: new TokenScheme(7,"^[0-9]
{8,38}$",[Link]),
ntoken: new TokenScheme(8,"^[0-9]{4,38}$",[Link]),
sixantokenfour: new TokenScheme(9,"^[a-zA-Z0-9]
{14,38}$",[Link]),
fourantokenfour: new TokenScheme(10,"^[a-zA-Z0-9]
{12,38}$",[Link]),
antokenfour: new TokenScheme(11,"^[a-zA-Z0-9]
{8,38}$",[Link]),
antoken: new TokenScheme(12,"^[a-zA-Z0-9]
{4,38}$",[Link]),
antokenauto: new TokenScheme(13,"^[a-zA-Z0-9]
{4,38}$",[Link]),
asciitokenfour: new TokenScheme(14,"^.{8,38}$",[Link]),
asciitoken: new TokenScheme(15,"^.{4,38}$",[Link]),
sixasciitokenfour: new TokenScheme(16,"^.
{14,38}$",[Link]),
fourasciitokenfour: new TokenScheme(17,"^.
{12,38}$",[Link]),
asciitokenauto: new TokenScheme(18,"^.{4,38}$",[Link]),
sixntokenfour: new TokenScheme(19,"^[0-9]
{14,38}$",[Link]),
fourntokenfour: new TokenScheme(20,"^[0-9]
{12,38}$",[Link]),
ntokenauto: new TokenScheme(21,"^[0-9]
{8,38}$",[Link]),
token: new TokenScheme(22,"^.{4,1000}$",[Link]),
sixtokenfournonluhn: new TokenScheme(23,"^[0-9]
{13,19}$",[Link]),
fourtokenfournonluhn: new TokenScheme(24,"^[0-9]
{13,19}$",[Link]),
tokenfournonluhn: new TokenScheme(25,"^[0-9]
{13,19}$",[Link]),
pci: new TokenScheme(26,"^[0-9]{13,19}$",[Link]),
ascii: new TokenScheme(27,"^.{5,128}$",[Link]),
ntokenfour1to1: new TokenScheme(28,"^[0-9]
{8,38}$",[Link]),
antoken4: new TokenScheme(29,"^[0-9]
{9,512}$",[Link]),
antoken512: new TokenScheme(30,"^[0-9]
{5,512}$",[Link]),
threetwo: new TokenScheme(32,"^[0-9]{9}$",[Link]),
eiantoken: new TokenScheme(9e3,"^[a-zA-Z0-9]
{6,38}$",[Link]),
ninenineeighteight: new TokenScheme(9988,"^[0-9]
{3,17}$",[Link])
};
handlers = {
windowFocus: function() {
[Link]()
},
focusHandler: function() {
postToParent({
event: "focus",
data: {
value: !0
}
})
},
changeHandler: function() {
postToParent({
event: "change",
data: {
value: !0
}
})
},
cvvChangeHandler: function() {
postToParent({
event: "cvvChange",
data: {
value: !0
}
})
},
cvvFocusHandler: function() {
postToParent({
event: "cvvFocus",
data: {
value: !0
}
})
},
cvvBlurHandler: function() {
validateOnBlur && checkValidity(!0, !1);
postToParent({
event: "cvvBlur",
data: {
value: !1
}
})
},
cvvKeyUpHandler: function() {
validateOnCvvKeyUp && checkValidity(!0, !1)
},
blurHandler: function() {
validateOnBlur && checkValidity(!1, !0);
postToParent({
event: "blur",
data: {
value: !1
}
})
},
keyupHandler: function() {
var n, t;
validateOnKeyUp && checkValidity(!1, !0);
n = [Link];
n = [Link](/[^0-9]/g, "");
t = [Link](n);
previousCardType !== [Link] && (previousCardType = [Link],
postToParent({
event: "cardTypeChange",
data: {
possibleCardType: previousCardType
}
}),
[Link] && (currentDataType = [Link]("unknown")),
[Link] && (currentDataType =
[Link]("unknown"),
[Link] = t));
[Link] >= 13 && forterSiteId && [Link] > 0 && forterUsername
&& [Link] > 0 && callForterInit(n)
},
submitHandler: function(n) {
return [Link](n),
!1
},
returnAutoCompleteValuesHandler: function() {
postToParent({
event: "autoCompleteValues",
data: {
nameOnCard: [Link],
cardExp: [Link]
}
});
setTimeout(()=>{
[Link] =
[Link],
[Link] =
[Link]
}
, 500)
}
};
ready(function() {
elements = {
data: [Link]("data"),
origin: [Link]("origin"),
containerID: [Link]("containerID"),
userDefinedStyle: [Link]("userDefinedStyle"),
error: [Link]("error"),
pciMode: [Link]("pciMode"),
enforceLuhnCompliance: [Link]("enforceLuhnCompliance"),
tokenScheme: [Link]("tokenScheme"),
token: [Link]("token"),
timestamp: [Link]("timestamp"),
authenticationKey: [Link]("authenticationKey"),
tokenExID: [Link]("tokenExID"),
cvvContainerID: [Link]("cvvContainerID"),
cvvOnly: [Link]("cvvOnly"),
cvv: [Link]("cvv"),
mode: [Link]("mode"),
returnKhash: [Link]("returnKhash"),
use3DS: [Link]("use3DS"),
threeDSMethodNotificationUrl:
[Link]("threeDSMethodNotificationUrl"),
useKount: [Link]("useKount"),
kountMerchantId: [Link]("kountMerchantId"),
kountSessionId: [Link]("kountSessionId"),
fraudServicesRiskRequestModel:
[Link]("fraudServicesRiskRequestModel"),
returnAutoCompleteValues:
[Link]("returnAutoCompleteValues"),
autoCompleteCardName: [Link]("cc-name"),
autoCompleteCardExp: [Link]("cc-exp"),
head: [Link]("head")[0],
cardMaxLengths: {
visa: [Link]("visa"),
mastercard: [Link]("mastercard"),
americanExpress: [Link]("americanExpress"),
discover: [Link]("discover"),
jcb: [Link]("jcb"),
diners: [Link]("diners")
}
};
page_init()
});