Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function Encrypt(e, r, t, a) {
- var n = [];
- switch (t.toLowerCase()) {
- case"chgsqsa":
- if (null == e || null == r)
- return null;
- n = PackageSAData(e, r);
- break;
- case"chgpwd":
- if (null == e || null == a)
- return null;
- n = PackageNewAndOldPwd(e, a);
- break;
- case"pwd":
- if (null == e)
- return null;
- n = PackagePwdOnly(e);
- break;
- case"pin":
- if (null == e)
- return null;
- n = PackagePinOnly(e);
- break;
- case"proof":
- if (null == e && null == r)
- return null;
- n = PackageLoginIntData(null != e ? e : r);
- break;
- case"saproof":
- if (null == r)
- return null;
- n = PackageSADataForProof(r);
- break;
- case"newpwd":
- if (null == a)
- return null;
- n = PackageNewPwdOnly(a)
- }
- if (null == n || "undefined" == typeof n)
- return n;
- if ("undefined" != typeof Key && void 0 !== parseRSAKeyFromString)
- var o = parseRSAKeyFromString(Key);
- var i = RSAencrypt(n, o, randomNum), s = byteArrayToBase64(i);
- return s
- }
- function PackageSAData(e, r) {
- var t = [], a = 0;
- t[a++] = 1, t[a++] = 1, t[a++] = 0;
- var n, o = r.length;
- for (t[a++] = 2 * o, n = 0; o > n; n++)
- t[a++] = 255 & r.charCodeAt(n), t[a++] = (65280 & r.charCodeAt(n)) >> 8;
- var i = e.length;
- for (t[a++] = i, n = 0; i > n; n++)
- t[a++] = 127 & e.charCodeAt(n);
- return t
- }
- function PackagePwdOnly(e) {
- var r = [], t = 0;
- r[t++] = 1, r[t++] = 1, r[t++] = 0, r[t++] = 0;
- var a, n = e.length;
- for (r[t++] = n, a = 0; n > a; a++)
- r[t++] = 127 & e.charCodeAt(a);
- return r
- }
- function PackagePinOnly(e) {
- var r = [], t = 0;
- r[t++] = 1, r[t++] = 2, r[t++] = 0, r[t++] = 0, r[t++] = 0;
- var a, n = e.length;
- for (r[t++] = n, a = 0; n > a; a++)
- r[t++] = 127 & e.charCodeAt(a);
- return r
- }
- function PackageLoginIntData(e) {
- var r, t = [], a = 0;
- for (r = 0; r < e.length; r++)
- t[a++] = 255 & e.charCodeAt(r), t[a++] = (65280 & e.charCodeAt(r)) >> 8;
- return t
- }
- function PackageSADataForProof(e) {
- var r, t = [], a = 0;
- for (r = 0; r < e.length; r++)
- t[a++] = 127 & e.charCodeAt(r), t[a++] = (65280 & e.charCodeAt(r)) >> 8;
- return t
- }
- function PackageNewPwdOnly(e) {
- var r = [], t = 0;
- r[t++] = 1, r[t++] = 1;
- var a, n = e.length;
- for (r[t++] = n, a = 0; n > a; a++)
- r[t++] = 127 & e.charCodeAt(a);
- return r[t++] = 0, r[t++] = 0, r
- }
- function PackageNewAndOldPwd(e, r) {
- var t = [], a = 0;
- t[a++] = 1, t[a++] = 1;
- var n, o = r.length;
- for (t[a++] = o, n = 0; o > n; n++)
- t[a++] = 127 & r.charCodeAt(n);
- for (t[a++] = 0, o = e.length, t[a++] = o, n = 0; o > n; n++)
- t[a++] = 127 & e.charCodeAt(n);
- return t
- }
- function mapByteToBase64(e) {
- return e >= 0 && 26 > e ? String.fromCharCode(65 + e) : e >= 26 && 52 > e ? String.fromCharCode(97 + e - 26) : e >= 52 && 62 > e ? String.fromCharCode(48 + e - 52) : 62 == e ? "+" : "/"
- }
- function base64Encode(e, r) {
- var t, a = "";
- for (t = r; 4 > t; t++)
- e >>= 6;
- for (t = 0; r > t; t++)
- a = mapByteToBase64(63 & e) + a, e >>= 6;
- return a
- }
- function byteArrayToBase64(e) {
- var r, t, a = e.length, n = "";
- for (r = a - 3; r >= 0; r -= 3)
- t = e[r] | e[r + 1] << 8 | e[r + 2] << 16, n += base64Encode(t, 4);
- var o = a % 3;
- for (t = 0, r += 2; r >= 0; r--)
- t = t << 8 | e[r];
- return 0 == o ? n += base64Encode(t, 4) : 1 == o ? n = n + base64Encode(t << 16, 2) + "==" : 2 == o && (n = n + base64Encode(t << 8, 3) + "="), n
- }
- function parseRSAKeyFromString(e) {
- var r = e.indexOf(";");
- if (0 > r)
- return null;
- var t = e.substr(0, r), a = e.substr(r + 1), n = t.indexOf("=");
- if (0 > n)
- return null;
- var o = t.substr(n + 1);
- if (n = a.indexOf("="), 0 > n)
- return null;
- var i = a.substr(n + 1), s = new Object;
- return s.n = hexStringToMP(i), s.e = parseInt(o, 16), s
- }
- function RSAencrypt(e, r, t) {
- var a = r.n, n = r.e, o = e.length, i = 2 * a.size, s = 42;
- if (o + s > i)
- return null;
- applyPKCSv2Padding(e, i, t), e = e.reverse();
- var l = byteArrayToMP(e), u = modularExp(l, n, a);
- u.size = a.size;
- var c = mpToByteArray(u);
- return c = c.reverse()
- }
- function JSMPnumber() {
- this.size = 1, this.data = [], this.data[0] = 0
- }
- function duplicateMP(e) {
- var r = new JSMPnumber;
- return r.size = e.size, r.data = e.data.slice(0), r
- }
- function byteArrayToMP(e) {
- var r = new JSMPnumber, t = 0, a = e.length, n = a >> 1;
- for (t = 0; n > t; t++)
- r.data[t] = e[2 * t] + (e[1 + 2 * t] << 8);
- return a % 2 && (r.data[t++] = e[a - 1]), r.size = t, r
- }
- function mpToByteArray(e) {
- var r = [], t = 0, a = e.size;
- for (t = 0; a > t; t++) {
- r[2 * t] = 255 & e.data[t];
- var n = e.data[t] >>> 8;
- r[2 * t + 1] = n
- }
- return r
- }
- function modularExp(e, r, t) {
- for (var a = [], n = 0; r > 0; )
- a[n] = 1 & r, r >>>= 1, n++;
- for (var o = duplicateMP(e), i = n - 2; i >= 0; i--)
- o = modularMultiply(o, o, t), 1 == a[i] && (o = modularMultiply(o, e, t));
- return o
- }
- function modularMultiply(e, r, t) {
- var a = multiplyMP(e, r), n = divideMP(a, t);
- return n.r
- }
- function multiplyMP(e, r) {
- var t = new JSMPnumber;
- t.size = e.size + r.size;
- var a, n;
- for (a = 0; a < t.size; a++)
- t.data[a] = 0;
- var o = e.data, i = r.data, s = t.data;
- if (e == r) {
- for (a = 0; a < e.size; a++)
- s[2 * a] += o[a] * o[a];
- for (a = 1; a < e.size; a++)
- for (n = 0; a > n; n++)
- s[a + n] += 2 * o[a] * o[n]
- } else
- for (a = 0; a < e.size; a++)
- for (n = 0; n < r.size; n++)
- s[a + n] += o[a] * i[n];
- return normalizeJSMP(t), t
- }
- function normalizeJSMP(e) {
- var r, t, a, n, o;
- for (a = e.size, t = 0, r = 0; a > r; r++)
- n = e.data[r], n += t, o = n, t = Math.floor(n / 65536), n -= 65536 * t, e.data[r] = n
- }
- function removeLeadingZeroes(e) {
- for (var r = e.size - 1; r > 0 && 0 == e.data[r--]; )
- e.size--
- }
- function divideMP(e, r) {
- var t = e.size, a = r.size, n = r.data[a - 1], o = r.data[a - 1] + r.data[a - 2] / 65536, i = new JSMPnumber;
- i.size = t - a + 1, e.data[t] = 0;
- for (var s = t - 1; s >= a - 1; s--) {
- var l = s - a + 1, u = Math.floor((65536 * e.data[s + 1] + e.data[s]) / o);
- if (u > 0) {
- var c = multiplyAndSubtract(e, u, r, l);
- for (0 > c && (u--, multiplyAndSubtract(e, u, r, l)); c > 0 && e.data[s] >= n; )
- c = multiplyAndSubtract(e, 1, r, l), c > 0 && u++
- }
- i.data[l] = u
- }
- removeLeadingZeroes(e);
- var m = {q: i, r: e};
- return m
- }
- function multiplyAndSubtract(e, r, t, a) {
- var n, o = e.data.slice(0), i = 0, s = e.data;
- for (n = 0; n < t.size; n++) {
- var l = i + t.data[n] * r;
- i = l >>> 16, l -= 65536 * i, l > s[n + a] ? (s[n + a] += 65536 - l, i++) : s[n + a] -= l
- }
- return i > 0 && (s[n + a] -= i), s[n + a] < 0 ? (e.data = o.slice(0), -1) : 1
- }
- function applyPKCSv2Padding(e, r, t) {
- var a, n = e.length, o = [218, 57, 163, 238, 94, 107, 75, 13, 50, 85, 191, 239, 149, 96, 24, 144, 175, 216, 7, 9], i = r - n - 40 - 2, s = [];
- for (a = 0; i > a; a++)
- s[a] = 0;
- s[i] = 1;
- var l = o.concat(s, e), u = [];
- for (a = 0; 20 > a; a++)
- u[a] = Math.floor(256 * Math.random());
- u = SHA1(u.concat(t));
- var c = MGF(u, r - 21), m = XORarrays(l, c), d = MGF(m, 20), p = XORarrays(u, d), v = [];
- for (v[0] = 0, v = v.concat(p, m), a = 0; a < v.length; a++)
- e[a] = v[a]
- }
- function MGF(e, r) {
- if (r > 4096)
- return null;
- var t = e.slice(0), a = t.length;
- t[a++] = 0, t[a++] = 0, t[a++] = 0, t[a] = 0;
- for (var n = 0, o = []; o.length < r; )
- t[a] = n++, o = o.concat(SHA1(t));
- return o.slice(0, r)
- }
- function XORarrays(e, r) {
- if (e.length != r.length)
- return null;
- for (var t = [], a = e.length, n = 0; a > n; n++)
- t[n] = e[n] ^ r[n];
- return t
- }
- function SHA1(e) {
- var r, t = e.slice(0);
- PadSHA1Input(t);
- var a = {A: 1732584193, B: 4023233417, C: 2562383102, D: 271733878, E: 3285377520};
- for (r = 0; r < t.length; r += 64)
- SHA1RoundFunction(a, t, r);
- var n = [];
- return wordToBytes(a.A, n, 0), wordToBytes(a.B, n, 4), wordToBytes(a.C, n, 8), wordToBytes(a.D, n, 12), wordToBytes(a.E, n, 16), n
- }
- function wordToBytes(e, r, t) {
- var a;
- for (a = 3; a >= 0; a--)
- r[t + a] = 255 & e, e >>>= 8
- }
- function PadSHA1Input(e) {
- var r, t = e.length, a = t, n = t % 64, o = 55 > n ? 56 : 120;
- for (e[a++] = 128, r = n + 1; o > r; r++)
- e[a++] = 0;
- var i = 8 * t;
- for (r = 1; 8 > r; r++)
- e[a + 8 - r] = 255 & i, i >>>= 8
- }
- function SHA1RoundFunction(e, r, t) {
- var a, n, o, i = 1518500249, s = 1859775393, l = 2400959708, u = 3395469782, c = [], m = e.A, d = e.B, p = e.C, v = e.D, f = e.E;
- for (n = 0, o = t; 16 > n; n++, o += 4)
- c[n] = r[o] << 24 | r[o + 1] << 16 | r[o + 2] << 8 | r[o + 3] << 0;
- for (n = 16; 80 > n; n++)
- c[n] = rotateLeft(c[n - 3] ^ c[n - 8] ^ c[n - 14] ^ c[n - 16], 1);
- var b;
- for (a = 0; 20 > a; a++)
- b = rotateLeft(m, 5) + (d & p | ~d & v) + f + c[a] + i & 4294967295, f = v, v = p, p = rotateLeft(d, 30), d = m, m = b;
- for (a = 20; 40 > a; a++)
- b = rotateLeft(m, 5) + (d ^ p ^ v) + f + c[a] + s & 4294967295, f = v, v = p, p = rotateLeft(d, 30), d = m, m = b;
- for (a = 40; 60 > a; a++)
- b = rotateLeft(m, 5) + (d & p | d & v | p & v) + f + c[a] + l & 4294967295, f = v, v = p, p = rotateLeft(d, 30), d = m, m = b;
- for (a = 60; 80 > a; a++)
- b = rotateLeft(m, 5) + (d ^ p ^ v) + f + c[a] + u & 4294967295, f = v, v = p, p = rotateLeft(d, 30), d = m, m = b;
- e.A = e.A + m & 4294967295, e.B = e.B + d & 4294967295, e.C = e.C + p & 4294967295, e.D = e.D + v & 4294967295, e.E = e.E + f & 4294967295
- }
- function rotateLeft(e, r) {
- var t = e >>> 32 - r, a = (1 << 32 - r) - 1, n = e & a;
- return n << r | t
- }
- function hexStringToMP(e) {
- var r, t, a = Math.ceil(e.length / 4), n = new JSMPnumber;
- for (n.size = a, r = 0; a > r; r++)
- t = e.substr(4 * r, 4), n.data[a - 1 - r] = parseInt(t, 16);
- return n
- }
- JSMPnumber.prototype = {size: 1, data: [0]}, function () {
- var e = window, r = e.wLive, t = e.jQuery, a = r.Account, n = a.FieldHelper, o = e.ExternalHelper, i = e.$Config.WLXAccount, s = i.signup, l = s.regex, u = s.urls.dataRequest, c = s.strings, m = c.errors, d = s.errorCodes, p = s.signupObservableSets, v = "onAction", f = "cancel";
- defineNamespace("wLive.Account.SignupObservableFactory", {createObservableSetByPrefillName: function (e, t, a) {
- var n = r.Account.SignupObservableFactory;
- switch (e) {
- case p.firstName.name:
- return n.createFirstNameObservableSet(t, a);
- case p.lastName.name:
- return n.createLastNameObservableSet(t, a);
- case p.memberName.name:
- return n.createMemberNameObservableSet(t, a);
- case p.password.name:
- return n.createPasswordObservableSet(t, a);
- case p.country.name:
- return n.createCountryObservableSet(t, a);
- case p.birthdate.name:
- return n.createBirthdateObservableSet(t, a);
- case p.gender.name:
- return n.createGenderObservableSet(t, a);
- case p.phoneCountry.name:
- return n.createPhoneCountryObservableSet(t, a);
- case p.phoneNumber.name:
- return n.createPhoneNumberObservableSet(t, a);
- case p.alternateEmail.name:
- return n.createAlternateEmailObservableSet(t, a);
- case p.hip.name:
- return n.createHipObservableSet(t, a);
- case p.verification.name:
- return n.createVerificationObservableSet(t, a);
- case p.proofShown.name:
- return n.createProofShownObservableSet(t, a);
- default:
- return null
- }
- }, createFirstNameObservableSet: function (e, r) {
- var t = {}, a = ko.observable(e || "").extend({required: {params: !0, message: m.required}});
- return a.subscribe(function (e) {
- t.firstName.suppressMessages(!1), s.viewContext.data.input[p.firstName.name] = e
- }), a.suppressMessages = ko.observable(!0), a.serverError = r, a.focused = ko.observable(!1), t.firstName = a, t
- }, createLastNameObservableSet: function (e, r) {
- var t = {}, a = ko.observable(e || "").extend({required: {params: !0, message: m.required}});
- return a.subscribe(function (e) {
- t.lastName.suppressMessages(!1), s.viewContext.data.input[p.lastName.name] = e
- }), a.suppressMessages = ko.observable(!0), a.serverError = r, a.focused = ko.observable(!1), t.lastName = a, t
- }, createMemberNameObservableSet: function (e, r) {
- var a = {}, i = s.isPhoneSupported, v = a.domains = s.domains, f = s.defaultDomain, b = "", h = "", g = s.viewContext.data.prefill[p.memberName.name], y = s.viewContext.data.prefill[p.country.name], w = i ? s.memberNameType.Phone : s.memberNameType.EASI, C = g && g[s.memberNameType.Live] && g[s.memberNameType.Live].length > 0, N = g && g[s.memberNameType.EASI] && g[s.memberNameType.EASI].length > 0, S = i && g && g[s.memberNameType.Phone] && g[s.memberNameType.Phone].length > 0, A = !C && !N && !S, P = "Default_Live" === s.fl && !C, E = "Default_EASI" === s.fl && !N, T = "Default_Phone" === s.fl && !S;
- if (e)
- if (h = s.viewContext.data.input.memberNameInput, w = n.getMemberNameType(e, v), w === s.memberNameType.Live) {
- var M = e.split("@");
- M && M.length > 1 && (f = M[1])
- } else
- i && w === s.memberNameType.Phone && (b = s.viewContext.data.input.memberNamePhoneCountry);
- else if (i && ("Phone" === s.fl || "Default_Phone" === s.fl && (S || A) || S && (P || E)))
- w = s.memberNameType.Phone, S ? (h = g[s.memberNameType.Phone][0].phoneNumber, b = g[s.memberNameType.Phone][0].country) : y && (b = y);
- else if ("EASI" === s.fl || "Default_EASI" === s.fl && (N || A) || N && (P || T))
- w = s.memberNameType.EASI, N && (h = g[s.memberNameType.EASI][0]);
- else if (("Live" === s.fl || "Default_Live" === s.fl && (C || A) || C && (E || T)) && (w = s.memberNameType.Live, C)) {
- var k = g[s.memberNameType.Live][0].split("@");
- h = k[0], f = k[1]
- }
- var x = a.memberNameType = ko.observable(w);
- x.subscribe(function () {
- V("")
- });
- var _ = a.domain = ko.observable(f || v[0]), I = (a.placeholder = ko.computed(function () {
- return x() === s.memberNameType.EASI ? c.usernamePlaceholder : ""
- }), a.memberNameInput = ko.observable(h || ""));
- if ("EASI" !== s.fl && "Live" !== s.fl && "Phone" !== s.fl && I.subscribe(function (e) {
- var r = this;
- if (r.memberNameType() !== s.memberNameType.Phone) {
- var t = n.getMemberNameType(e, r.domains);
- if (t === s.memberNameType.EASI)
- r.memberNameType(s.memberNameType.EASI);
- else if (t === s.memberNameType.Live) {
- var a = e.split("@");
- r.domain(a[1]), r.memberNameInput(a[0]), r.memberNameType(s.memberNameType.Live)
- }
- }
- r.memberNameSuccessMessage("")
- }, a), i) {
- var D = t.parseJSON(s.phoneCountryDetailsJson), H = t.parseJSON(s.phoneCountryListJson), O = H.List, F = [];
- for (var L in O)
- F.push({iso: L, displayValue: O[L]});
- a.memberNamePhoneCountries = F, a.memberNamePhoneCountry = ko.observable(b || H.Default)
- }
- {
- var V = a.memberNameSuccessMessage = ko.observable(""), $ = a.memberNameSuggestions = ko.observable([]).extend({rateLimit: 300}), B = a.showSuggestions = ko.observable(!1);
- a.showOtherOptions = ko.observable(!1)
- }
- a.showOtherOptions.subscribe(function (e) {
- o && o.setWizardButtons(!e, !e, !1)
- }), a.onClickSuggestionsLink = function () {
- $().length > 0 && t("#CredentialsSuggestionsModal").length > 0 && t("#CredentialsSuggestionsModal").modal("show"), 13 === $Config.uiflvr && $().length > 0 && t("#MemberNameSuggestions").show(), B($().length > 0)
- }, a.onPickSuggestion = function (e) {
- if (e) {
- var r = e.split("@");
- r && r.length > 1 && (I(r[0]), _(r[1])), t("#CredentialsSuggestionsModal").length > 0 && t("#CredentialsSuggestionsModal").modal("hide"), B(!1)
- }
- };
- var R = s.viewContext.data.previouslyCheckedMemberName || "", q = ko.computed(function () {
- var e = this, r = e.memberNameInput();
- return e.memberNameType() === s.memberNameType.Live ? r + "@" + e.domain() : i && e.memberNameType() === s.memberNameType.Phone && D && D[e.memberNamePhoneCountry()] && D[e.memberNamePhoneCountry()].PhoneCountryCode ? "+" + D[e.memberNamePhoneCountry()].PhoneCountryCode + r : r
- }, a).extend({required: {params: !0, message: m.required}}).extend({liveMemberNameValid: {params: {domains: v, patterns: [l.LiveMembernameRegex]}, message: m.invalidEmailFormat}}).extend({memberNameValidForFl: {params: {fl: s.fl, domains: v}, message: m.domainNotAllowed}}).extend({allPatterns: {onlyIf: function () {
- return x() === s.memberNameType.EASI
- }, params: [l.MembernameRegex], message: m.invalidEmailFormat}}).extend({allPatterns: {onlyIf: function () {
- return i && x() === s.memberNameType.Phone
- }, params: [l.PhoneNumberFormat], message: m.invalidPhoneFormat}}).extend({pattern: {onlyIf: function () {
- return x() === s.memberNameType.Live
- }, params: "^[a-zA-Z]", message: m.emailMustStartWithLetter}});
- return q.extend({checkAvailable: {onlyIf: function () {
- var e = !!I() && q && R != q();
- return q && (s.viewContext.data.previouslyCheckedMemberName = R = q()), e
- }, params: {url: u.checkAvailable, observable: q, getSuggestedMemberNames: function (e) {
- $(e)
- }, setSuccessMessage: function (e, r) {
- V(e === s.memberNameType.Live ? m.memberNameAvailable.format(r) : m.memberNameAvailableEasi)
- }, getResult: function (e, r, t, a) {
- switch (e) {
- case d.domainNotAllowed:
- return{isValid: !1, message: m.domainNotAllowed};
- case d.signupBlocked:
- return{isValid: !1, message: m.signupBlocked.format(r)};
- case d.invalidEmailFormat:
- return{isValid: !1, message: m.invalidEmailFormat};
- case d.invalidPhoneFormat:
- return{isValid: !1, message: m.invalidPhoneFormat};
- case d.invalidMemberNameFormat:
- return{isValid: !1, message: i && x() === s.memberNameType.Phone ? m.invalidPhoneFormat : m.invalidEmailFormat};
- case d.membernameTaken:
- return{isValid: !1, message: m.memberNameTaken};
- case d.membernameTakenEasi:
- return{isValid: !1, message: m.memberNameTakenEasi.format(r)};
- case d.membernameTakenPhone:
- return{isValid: !1, message: i ? m.memberNameTakenPhone : m.memberNameTaken}
- }
- return 0 === e && t === !1 ? a === s.memberNameType.Live ? {isValid: !1, message: m.memberNameTaken} : {isValid: !1, message: m.memberNameTakenEasi.format(r)} : {isValid: !0, message: ""}
- }, includeSuggestions: !0, message: m.checkAvailableFail}}}), updateInput = function () {
- s.viewContext.data.input[p.memberName.name] = q(), s.viewContext.data.input.memberNameInput = I(), i && (s.viewContext.data.input.memberNamePhoneCountryCode = D[a.memberNamePhoneCountry()].PhoneCountryCode, s.viewContext.data.input.memberNamePhoneCountry = a.memberNamePhoneCountry())
- }, updateInput(), q.subscribe(function (e) {
- a.memberName.suppressMessages(!1), updateInput(), a.memberName.previousValue(e)
- }), q.previousValue = ko.observable(""), q.suppressMessages = ko.observable(!a.memberNameInput()), q.serverError = r, q.focused = ko.observable(!1), q.isValidating.subscribe(function (e) {
- o && o.setWizardButtons(!e, !e, !1)
- }), a.memberName = q, a.domainDropdownClick = function (e) {
- q.isValidating() || _(e)
- }, a.switchMemberNameType = function (e) {
- var r = s.memberNameType;
- q.isValidating() || e === x() || (e === r.Live ? (I(""), x(e), _(v[0])) : e === r.EASI ? (I(""), x(e), I(N ? g[r.EASI][0] : ""), _(v[0])) : i && e === r.Phone ? (I(""), x(e), I(S ? g[r.Phone][0].phoneNumber : ""), _(v[0])) : e || (x() === r.Phone ? a.switchMemberNameType(r.EASI) : x() === r.EASI ? a.switchMemberNameType(r.Live) : x() === r.Live && a.switchMemberNameType(i ? r.Phone : r.EASI)), q.suppressMessages(!I()), q.focused(!0))
- }, a.memberNameInputType = ko.computed(function () {
- return $B && $B.IE && $B.V && $B.V <= 8 ? "text" : i && x() === s.memberNameType.Phone ? "tel" : x() === s.memberNameType.EASI ? "email" : "text"
- }), a.liveEasiSwitchText = ko.computed(function () {
- return x() === s.memberNameType.Live ? c.easiSwitch : c.liveSwitch
- }), a.memberNamePrefill = ko.computed(function () {
- return g ? g[x()] : null
- }), a.prefillSelected = function (e) {
- i && e && e.phoneNumber ? (a.memberNameInput(e.phoneNumber), a.memberNamePhoneCountry(e.country)) : a.memberNameInput(e)
- }, a
- }, createPasswordObservableSet: function (r, t) {
- var a = {}, n = ko.observable(r || "").extend({required: {params: !0, message: m.required}, minLength: {params: 8, message: m.passwordTooSimple}, maxLength: {params: 16, message: m.passwordTooLong}, pattern: {params: s.regex.PwdValidInput, message: m.passwordInvalidChar}, pwdComplexity: {params: !0, message: m.passwordTooSimple}});
- if (s.disableBannedPwdCheck ? n.isValidating = ko.observable(!1) : n.extend({bannedPwd: {onlyIf: function () {
- var e = n() && s.viewContext.data.previouslyCheckedPassword != n();
- return e && (s.viewContext.data.previouslyCheckedPassword = n()), e
- }, params: {url: u.bannedPwd, ski: SKI || "", observable: n}, message: m.bannedPassword}}), n.subscribe(function (r) {
- if (a.password.suppressMessages(!1), s.viewContext.data.input[p.password.name] = r, 13 === $Config.uiflvr && !s.isOtsFlow) {
- var t = e.MSA && e.MSA.CXH;
- t && t.encryptUserDataAsync(r, function (e) {
- t.propertyBagSetAsync("encPwd", e)
- })
- }
- }), n.suppressMessages = ko.observable(!0), n.serverError = t, n.isValidating.subscribe(function (e) {
- o.setWizardButtons(!e, !e, !1)
- }), n.focused = ko.observable(!1), a.password = n, p.retypePassword) {
- var i = ko.observable(r || "").extend({required: {params: !0, message: m.required}, equal: {onlyIf: function () {
- return n()
- }, params: n, message: m.passwordNotMatch}});
- i.focused = ko.observable(!1), i.suppressMessages = ko.observable(!0), i.subscribe(function () {
- a.retypePassword.suppressMessages(!1)
- }), a.retypePassword = i, i.subscribe(function (e) {
- a.retypePassword.suppressMessages(!1), s.viewContext.data.input[p.retypePassword.name] = e
- })
- }
- return a
- }, createCountryObservableSet: function (e) {
- var r = {}, t = ko.observable(e || "");
- t.subscribe(function (e) {
- r.country.suppressMessages(!1), s.viewContext.data.input[p.country.name] = e
- }), t.suppressMessages = ko.observable(!0), t.focused = ko.observable(!1), r.country = t;
- r.countries = s.countryList, r.countryInEU = ko.computed(function () {
- var e = this, r = e.country(), t = ko.utils.arrayFirst(e.countries, function (e) {
- return e.iso === r
- });
- return t && t.inEU
- }, r), r.showBirthDate = ko.computed(function () {
- var e = this.country(), r = s.countryDetailMap;
- return r && 0 != r[e].childAge
- }, r);
- return r
- }, createBirthdateObservableSet: function (e) {
- e = e || "";
- var r = {}, t = "", a = "", n = "", o = e.split(":");
- 3 === o.length && (t = o[0], a = o[1], n = o[2]), r.birthYear = ko.observable(n), r.birthMonth = ko.observable(a.replace(/^0/, "")), r.birthDay = ko.observable(t.replace(/^0/, "")), r.birthdate = ko.computed(function () {
- var e = this, r = e.birthDay(), t = e.birthMonth(), a = e.birthYear();
- return r = 1 === r.length ? "0" + r : r, t = 1 === t.length ? "0" + t : t, r + ":" + t + ":" + a
- }, r), r.birthYear.suppressMessages = ko.observable(!0), r.birthMonth.suppressMessages = ko.observable(!0), r.birthDay.suppressMessages = ko.observable(!0), r.birthdate.subscribe(function (e) {
- s.viewContext.data.input[p.birthdate.name] = e
- }), r.birthYear.subscribe(function () {
- r.birthYear.suppressMessages(!1)
- }), r.birthMonth.subscribe(function () {
- r.birthMonth.suppressMessages(!1)
- }), r.birthDay.subscribe(function () {
- r.birthDay.suppressMessages(!1)
- }), r.birthdate.suppressMessages = ko.computed({read: function () {
- var e = this;
- return e.birthYear.suppressMessages() || e.birthMonth.suppressMessages() || e.birthDay.suppressMessages()
- }, write: function (e) {
- var r = this;
- r.birthYear.suppressMessages(e), r.birthMonth.suppressMessages(e), r.birthDay.suppressMessages(e)
- }, owner: r}), r.birthdate.focused = ko.observable(!1);
- var i = s.dateOrder.toUpperCase();
- return r.birthdateParts = new Array(3), r.birthdateParts[i.indexOf("D")] = r.birthDay, r.birthdateParts[i.indexOf("M")] = r.birthMonth, r.birthdateParts[i.indexOf("Y")] = r.birthYear, r
- }, createGenderObservableSet: function (e) {
- var r = {}, t = ko.observable(e || "").extend({required: {params: !0, message: m.required}});
- return t.subscribe(function (e) {
- r.gender.suppressMessages(!1), s.viewContext.data.input[p.gender.name] = e
- }), t.suppressMessages = ko.observable(!0), t.focused = ko.observable(!1), r.gender = t, r
- }, createPhoneCountryObservableSet: function (e) {
- var r = t.parseJSON(s.phoneCountryListJson), a = r.List, n = r.Default || "", o = [];
- for (var i in a)
- o.push({iso: i, displayValue: a[i]});
- 13 === $Config.uiflvr && (n = s.viewContext.data.input[p.country.name] || "");
- var l = ko.observable(e || n);
- return s.viewContext.data.input[p.phoneCountry.name] = l(), l.subscribe(function (e) {
- s.viewContext.data.input[p.phoneCountry.name] = e
- }), {phoneCountries: o, phoneCountry: l}
- }, createPhoneNumberObservableSet: function (e) {
- var r = {}, t = ko.observable(e || "").extend({onePattern: {onlyIf: function () {
- return t && t()
- }, params: [l.PhoneNumberFormat], message: m.invalidPhoneFormat}, required: {onlyIf: function () {
- var e = window.wLive.Account.viewModelHandle, r = e && e.memberName && e.memberName() ? e.memberName() : s.viewContext.data.input.memberName, t = n.getMemberNameType(r, s.domains);
- return e && t === s.memberNameType.Live && (!e.alternateEmail || !e.alternateEmail())
- }, message: m.required}});
- return t.subscribe(function (e) {
- r.phoneNumber.suppressMessages(!1), s.viewContext.data.input[p.phoneNumber.name] = e
- }), t.suppressMessages = ko.observable(!0), t.focused = ko.observable(!1), r.phoneNumber = t, r
- }, createAlternateEmailObservableSet: function (e) {
- var r = {}, t = ko.observable(e || "").extend({allPatterns: {onlyIf: function () {
- return t && t()
- }, params: [l.AltEmailRegEx], message: m.invalidEmailFormat}, required: {onlyIf: function () {
- var e = window.wLive.Account.viewModelHandle, r = e && e.memberName && e.memberName() ? e.memberName() : s.viewContext.data.input.memberName, t = n.getMemberNameType(r, s.domains);
- return e && t === s.memberNameType.Live && (!e.phoneNumber || !e.phoneNumber())
- }, message: m.required}});
- return t.subscribe(function (e) {
- r.alternateEmail.suppressMessages(!1), s.viewContext.data.input[p.alternateEmail.name] = e
- }), t.suppressMessages = ko.observable(!0), t.focused = ko.observable(!1), r.alternateEmail = t, r
- }, createHipObservableSet: function () {
- var r = {}, t = e.HIPAMFE;
- if (t && t.observable)
- return t.observable;
- var a = ko.observable("").extend({hipValidation: {}});
- return a.subscribe(function () {
- e.HIPAMFE;
- r.hip.suppressMessages(!1), r.hip.isModified(!0)
- }), a.suppressMessages = ko.observable(!0), a.focused = ko.observable(!1), r.hip = a, s.hip.required, r
- }, createVerificationObservableSet: function (e) {
- var r = {};
- if (r.verification = ko.observable(e || "").extend({required: {params: !0, message: m.required}, pattern: {params: s.regex.verificationCode, message: m.oneTimeCodeInvalidFormat}}), r.verification.focused = ko.observable(!1), r.verification.suppressMessages = ko.observable(!0), r.verifyTimeout = null, r.startTimestamp = (new Date).getTime(), r.verificationSubTitle = c.verificationSubTitle.format(s.viewContext.data.input.memberNameInput), r.showAutoVerificationUI = ko.observable(!1), s.showAutoVerificationUI) {
- var a = s.viewContext.data.input.memberNameInput;
- a && (a = a.replace(/[^0-9]/g, ""));
- var n = s.viewContext.data;
- if (n.devicePhone) {
- var i = n.devicePhone;
- t.each(i, function (e, t) {
- return t && t.phoneNumber && a && a.indexOf(t.phoneNumber) >= 0 ? (r.showAutoVerificationUI(!0), !1) : void 0
- })
- }
- }
- return r.showAutoVerificationUI.subscribe(function (e) {
- o && o.setWizardButtons && o.setWizardButtons(!e, !e, !1), s.viewContext.data.input.autoVerify = e
- }), r.verification.subscribe(function (e) {
- r.verification.suppressMessages(!1), s.viewContext.data.input[p.verification.name] = e
- }), r.doAutoVerify = function () {
- var e = this;
- if (r.showAutoVerificationUI()) {
- var a = o.getProperty("SmsCode");
- if ("string" === t.type(a))
- "-1" == a ? r.onAutoVerifyFailed() : (r.verification(a), e.handleActionButton());
- else {
- var n = (new Date).getTime() - r.startTimestamp;
- n > s.sendOttTimeout ? (r.stopAutoVerify(), r.showAutoVerificationUI(!1)) : r.verifyTimeout = setTimeout(t.proxy(r.doAutoVerify, e), 100)
- }
- }
- }, r.stopAutoVerify = function () {
- null != r.verifyTimeout && (clearTimeout(r.verifyTimeout), r.verifyTimeout = null), o.setWizardButtons(!0, !0, !1)
- }, r.onAutoVerifyFailed = function (e) {
- var t = this;
- r.stopAutoVerify(), t._viewContext.data.serverErrors || (t._viewContext.data.serverErrors = {}), t._viewContext.data.serverErrors[p.memberName.name] = e && e.error && e.error.code && e.error.code === d.maximumOTTDailyError ? m.verificationThrottled : m.autoVerificationFailed, t.$.triggerHandler(v, {actionName: f, control: t})
- }, r
- }, createProofShownObservableSet: function () {
- var e = {}, r = "phone", t = e.proofShown = ko.observable(r);
- return t.subscribe(function () {
- }), e.showPhoneProof = ko.computed(function () {
- var e = "phone" === t() ? !0 : !1;
- return e
- }), e.showEmailProof = ko.computed(function () {
- var e = "altEmail" === t() ? !0 : !1;
- return e
- }), e.phoneEmailSwitch = function () {
- var e = window.wLive.Account.viewModelHandle;
- "phone" === t() ? (t("altEmail"), e && !e.phoneNumber.isValid() && e.phoneNumber("")) : "altEmail" === t() && (t("phone"), e && !e.alternateEmail.isValid() && e.alternateEmail(""))
- }, e.phoneEmailSwitchText = ko.computed(function () {
- return"phone" === t() ? c.altEmailSwitch : "altEmail" === t() ? c.phoneSwitch : void 0
- }), e
- }})
- }(), function () {
- {
- var e = window, r = e.wLive, t = e.jQuery, a = r.Account, n = a.SignupObservableFactory, o = e.$Config.WLXAccount, i = o.signup, s = (i.regex, i.urls.dataRequest, i.strings), l = s.errors;
- i.errorCodes
- }
- defineClass("wLive.Account.ViewModels.SignupViewModel", function (e, r) {
- var t = this, a = e.data, o = a.input || {}, s = a.serverErrors || {}, u = n.createObservableSetByPrefillName, c = t._observables = r.observables;
- t._viewContext = e;
- var m = c.length;
- t.validationOrder = new Array(m);
- for (var d = 0; m > d; d++) {
- var p = c[d];
- mix(t, u(p, o[p], s[p])), t.validationOrder[d] = t[p]
- }
- if (t.initErrorGroup(), t.birthdate) {
- if (i.countryConditionalBirthdateCheck) {
- var v = i.countryDetailMap;
- t.birthdate.extend({birthdatePartRequired: {onlyIf: function () {
- return v && 0 != v[t.country()].childAge
- }, params: !0, message: l.required}, birthdateValid: {onlyIf: function () {
- return v && 0 != v[t.country()].childAge
- }, params: !0, message: l.birthdateInvalid}})
- } else
- t.birthdate.extend({birthdatePartRequired: {params: !0, message: l.required}, birthdateValid: {params: !0, message: l.birthdateInvalid}});
- t.birthdate.isValid() || (t.birthDay(""), t.birthMonth(""), t.birthYear(""))
- }
- }, {validationOrder: null, errors: null, isValid: null, _viewContext: null, _observables: null, initErrorGroup: function () {
- var e = this;
- e.errors = ko.validation.group(e.validationOrder), e.errors.showAllMessages(!1), e.isValid = ko.computed(function () {
- return e.errors().length > 0 ? !1 : e._viewContext.hasAttemptedSubmit ? !e.getFirstError() : !0
- })
- }, notifyAllSubscribers: function () {
- var e = this;
- t.each(e.validationOrder, function (e, r) {
- r && r.suppressMessages && r.suppressMessages(!1), r && !r() && r.notifySubscribers && r.notifySubscribers()
- })
- }, isValidating: function () {
- var e = this, r = !1;
- return t.each(e.validationOrder, function (e, t) {
- return!(r = r || t && t.isValidating())
- }), r
- }, showError: function (e) {
- var r = this;
- return!e.suppressMessages() || r._viewContext.hasAttemptedSubmit ? e.isValid && !e.isValid() || e.isModified && !e.isModified() && e.serverError : e.serverError
- }, getFirstError: function () {
- var e = this, r = null;
- return t.each(e.validationOrder, function (e, t) {
- return t && t.isValid && !t.isValid() || t && t.isModified && !t.isModified() && t.serverError ? (r = t, !1) : !0
- }), r
- }, placeholderVisible: function (e) {
- return!e
- }})
- }(), function () {
- var e = window, r = e.wLive, t = e.jQuery, a = r.Account, n = a.Controls, o = e.ExternalHelper, i = $Config.WLXAccount.signup.strings, s = "onAction", l = "onShow", u = "onHide", c = "onSetupEvents", m = "onRemoveEvents", d = "onDispose";
- defineClass("wLive.Account.Controls.TouPrivacyControl", function (e, r, a) {
- var o = this;
- o.$ = t(o), o._$container = e, o._viewContext = r, o._options = a;
- var i = o._pageDialogControl = new n.PageDialogControl(e, r, a);
- o._$pageDialogControl = i.$, r.data || (r.data = {})
- }, {_pageDialogControl: null, _$pageDialogControl: null, _viewContext: null, _options: null, $: null, dispose: function () {
- }, show: function () {
- var e = this;
- e._setupDialogEvents(), e._pageDialogControl && e._pageDialogControl.show()
- }, hide: function () {
- var e = this;
- e._pageDialogControl && e._pageDialogControl.hide(), e._removeDialogEvents()
- }, pageReady: function () {
- if (o) {
- var e = t(".wpBluePage");
- o.setProperty("FrameWidth", parseInt(e.innerWidth()).toString()), o.setProperty("FrameHeight", parseInt(e.innerHeight()).toString()), o.ready()
- }
- }, notifyVisible: function () {
- this.pageReady()
- }, _setupDialogEvents: function () {
- var e = this, r = e._$pageDialogControl;
- if (r) {
- var a = e._pageDialogControl.events;
- r.on(a.action, t.proxy(e._processDialogActionEvent, e)), r.on(a.setupEvents, t.proxy(e._processDialogSetupEvent, e)), r.on(a.removeEvents, t.proxy(e._processDialogRemoveEvent, e)), r.on(a.show, t.proxy(e._processDialogShowEvent, e)), r.on(a.hide, t.proxy(e._processDialogHideEvent, e))
- }
- }, _removeDialogEvents: function () {
- var e = this, r = e._$pageDialogControl;
- if (r) {
- var t = e._pageDialogControl.events;
- r.off(t.action), r.off(t.setupEvents), r.off(t.removeEvents), r.off(t.show), r.off(t.hide)
- }
- }, _processDialogActionEvent: function (e, r) {
- this.$.triggerHandler(s, {actionName: r.actionName, control: this}), e && (e.preventDefault(), e.stopPropagation())
- }, _processDialogSetupEvent: function (e, r) {
- this.$.triggerHandler(c, {content: r.content, control: this})
- }, _processDialogRemoveEvent: function (e, r) {
- this.$.triggerHandler(m, {content: r.content, control: this})
- }, _processDialogShowEvent: function (e, r) {
- var a = this, n = r.content, o = a._options, u = o.queryUrl, c = o.isPrivacy, m = c ? "privacy" : "tou", d = a._viewContext.data = a._viewContext.data || {}, p = c ? d.privacyText : d.touText, v = t("pre", n).length > 0 ? t("pre", n) : t("#TOUPrivacyDiv", n), f = t("#TOUPrivacyHeader", n), b = c ? i.touHeader : i.privacyHeader;
- p ? (v.html(p), f.text(b)) : u && t.ajax({type: "POST", url: u, data: {command: m}, context: a, success: function (e) {
- if (e) {
- var r = String(e).encodeHtml();
- v.html(r), f.text(b), d[c ? "privacyText" : "touText"] = r
- }
- }, error: function () {
- a.$.triggerHandler(s, {actionName: "cancel", control: a})
- }}), a.$.triggerHandler(l, {content: n, control: a})
- }, _processDialogHideEvent: function (e, r) {
- this.$.triggerHandler(u, {content: r.content, control: this})
- }, events: {action: s, show: l, hide: u, setupEvents: c, removeEvents: m, dispose: d}}, {})
- }(), function () {
- var e = window, r = e.wLive, t = e.jQuery, a = r.Account, n = a.Controls, o = (a.ViewModels, a.AnimationHelper, e.ExternalHelper), i = r.Core.DataRequest, s = e.$Config.WLXAccount, l = s.signup, u = l.urls.dataRequest, c = (l.signupObservableSets, l.strings, "action"), m = "onAction", d = "onShow", p = "onHide", v = "onSetupEvents", f = "onRemoveEvents", b = "onDispose";
- defineClass("wLive.Account.Controls.SignupControl", function (e, r, a) {
- var o = this;
- o.$ = t(o), o._$container = e, o._viewContext = r, o._options = a;
- var i = o._pageDialogControl = new n.PageDialogControl(e, r, a);
- o._$pageDialogControl = i.$, o._sectionId = a.sectionId, r.data || (r.data = {})
- }, {_pageDialogControl: null, _$pageDialogControl: null, _viewContext: null, _verifyTimeout: null, _options: null, $: null, dispose: function () {
- }, show: function () {
- var e = this;
- e._setupDialogEvents(), e._pageDialogControl && e._pageDialogControl.show()
- }, hide: function () {
- var e = this;
- e._pageDialogControl && e._pageDialogControl.hide(), e._removeDialogEvents()
- }, pageReady: function () {
- if (o) {
- var e = t("#maincontent");
- o.setProperty("FrameWidth", parseInt(e.innerWidth()).toString()), o.setProperty("FrameHeight", parseInt(e.innerHeight()).toString()), o.ready()
- }
- }, notifyVisible: function () {
- this.pageReady()
- }, handleActionButton: function () {
- this.$.triggerHandler(m, {actionName: c, control: this})
- }, setEnabled: function (e) {
- Debug.trace("SignupControl.setEnabled(" + e + ")"), this._pageDialogControl.setEnabled(e)
- }, _setupDialogEvents: function () {
- var e = this, r = e._$pageDialogControl;
- if (r) {
- var a = e._pageDialogControl.events;
- r.on(a.action, t.proxy(e._processDialogActionEvent, e)), r.on(a.setupEvents, t.proxy(e._processDialogSetupEvent, e)), r.on(a.removeEvents, t.proxy(e._processDialogRemoveEvent, e)), r.on(a.show, t.proxy(e._processDialogShowEvent, e)), r.on(a.hide, t.proxy(e._processDialogHideEvent, e))
- }
- }, _removeDialogEvents: function () {
- var e = this, r = e._$pageDialogControl;
- if (r) {
- var t = e._pageDialogControl.events;
- r.off(t.action), r.off(t.setupEvents), r.off(t.removeEvents), r.off(t.show), r.off(t.hide)
- }
- }, _processDialogActionEvent: function (e, r) {
- var a = this, n = r.viewModel, o = r.actionName;
- t(document.activeElement).blur(), n && o === c && n.notifyAllSubscribers(), setTimeout(function () {
- if (o === c || "alternate" === o)
- if (n) {
- if (!n.isValidating() && n.isValid())
- a.setEnabled(!1), a.handleActionButton();
- else if (!n.isValid()) {
- var r = n.getFirstError();
- r.suppressMessages(!1), r.focused(!0)
- }
- } else
- a.setEnabled(!1), a.handleActionButton();
- else
- a.$.triggerHandler(m, {actionName: o, control: a});
- e && (e.preventDefault(), e.stopPropagation())
- }, 0)
- }, _processDialogSetupEvent: function (e, r) {
- var n = this, o = r.content, i = r.viewModel, s = (n._options, i && i.onClickSuggestionsLink);
- t("#tou").length > 0 && o.on("click", "#tou", function () {
- n.$.triggerHandler(m, {actionName: "tou", control: n})
- }), t("#privacy").length > 0 && o.on("click", "#privacy", function () {
- n.$.triggerHandler(m, {actionName: "privacy", control: n})
- }), t("#atlas").length > 0 && l.urls && l.urls.atlas && l.urls.atlas.signupStart && t("<img>").attr("src", l.urls.atlas && l.urls.atlas.signupStart).appendTo(t("#atlas")), t("#LocalAccount").length > 0 && o.on("click", "#LocalAccount", function () {
- n.$.triggerHandler(m, {actionName: "localAccount", control: n})
- }), 13 === $Config.uiflvr && o.mouseup(function (e) {
- var r = t("#MemberNameSuggestions");
- r.is(":visible") && !r.is(e.target) && 0 === r.has(e.target).length && r.hide()
- }), i.verification && n._sendOTT(l.channel.sms);
- var u = t("#MemberNamePrefill");
- if (u.length > 0 && u.parent().on("show.bs.dropdown", function () {
- u.width(u.parents("div .col-md-8").first().width())
- }), l.hip.required ? t("#hipTemplateContainer", r.content).length > 0 && (a.FieldHelper.loadHip(), t("#hipSection").show()) : t("#hipSection").hide(), s && o.on("click", "#suggLink", s), n._viewContext.hasAttemptedSubmit && i && !i.isValid()) {
- var c = i.getFirstError();
- c.suppressMessages(!1), c.focused(!0)
- }
- n.$.triggerHandler(v, {content: o, control: n})
- }, _processDialogRemoveEvent: function (e, r) {
- var a = r.content;
- a.off("click"), t("#hipTemplateContainer", r.content).length > 0 && t("#hipTemplate").append(t("#hipTemplateContainer").children().detach()), this.$.triggerHandler(f, {content: r.content, control: this})
- }, _processDialogShowEvent: function (r, a) {
- this.$.triggerHandler(d, {content: a.content, control: this});
- var n = e.HIPAMFE, o = "undefined" != typeof n && n.done;
- t("#hipTemplateContainer", a.content).length > 0 && o && (n && n.updateTitle && n.updateTitle(), t("#hipTemplateContainer").append(t("#hipTemplate").children().detach()))
- }, _processDialogHideEvent: function (e, r) {
- this.$.triggerHandler(p, {content: r.content, control: this})
- }, _sendOTT: function (r) {
- var n = this, o = n._viewContext.data || {}, s = o.input || {}, c = {uaid: e.$Config.uaid};
- c.action = l.sendOttAction, c.proofId = s.memberNameInput, c.proofCountryIso = s.memberNamePhoneCountry, c.autoVerification = a.viewModelHandle.showAutoVerificationUI(), c.Channel = r;
- var m = new i(null, u.sendOtt, c, function () {
- t.proxy(a.viewModelHandle.doAutoVerify, n)()
- }, function (e) {
- t.proxy(a.viewModelHandle.onAutoVerifyFailed, n)(e)
- }, 1e4, this);
- m.start()
- }, events: {action: m, show: d, hide: p, setupEvents: v, removeEvents: f, dispose: b}}, {})
- }(), function () {
- var e = window, r = e.wLive, t = e.jQuery, a = r.Account, n = a.Controls, o = r.Core.DataRequest, i = a.UrlHelper, s = e.ExternalHelper, l = e.MSA && e.MSA.CXH, u = e.$Config.WLXAccount, c = u.signup, m = c.hip, d = c.strings, p = d.errors, v = c.errorCodes, f = c.urls.dataRequest, b = "newpwd", h = "onAction";
- defineSubClass("wLive.Account.Controls.SignupCreateControl", n.SignupControl, function () {
- this._wreply = i.GetQSValue(e.location.href, "wreply"), this._ru = i.GetQSValue(e.location.href, "ru"), this._isSubmitting = !1
- }, {dispose: function () {
- this._base.dispose()
- }, _onCreateSuccess: function (r) {
- var n = this, i = n._viewContext.data || {}, u = i.input || {}, m = i.prefill || {}, d = {};
- d.pageId = c.UserActionPageId, d.userAction = [];
- for (var p in m)
- m[p] === u[p] ? d.userAction.splice(0, 0, "Action_" + p + "_Used") : d.userAction.splice(0, 0, "Action_" + p + "_NotUsed");
- $ReportEvent.Action(d);
- var v = t("#atlas");
- v.length > 0 && c.urls && c.urls.atlas && (a.FieldHelper.getMemberNameType(r.signinName, c.domains) === c.memberNameType.Live && c.urls.atlas.createLive ? t("<img>").attr("src", c.urls.atlas && c.urls.atlas.createLive).appendTo(v) : c.urls.atlas.createEasi && t("<img>").attr("src", c.urls.atlas && c.urls.atlas.createEasi).appendTo(v)), setTimeout(function () {
- if (s.setProperty("IsSignUp", "1"), r)
- if (c.fss && c.fss.isFamilyAddMemberFlow) {
- var a = {uaid: e.$Config.uaid};
- if (a.parentPuid = c.fss.parentPuid || "", a.memberPuid = r.puid || "", a.memberRole = c.fss.memberRole || "", l && c.fss.isWinTsetFlow)
- l.createStubAccountAsync(r.signinName, !1, function () {
- var e = new o(null, f.createAndUpdateFamily, a, t.proxy(n._onAddToFamilySuccess)(r), t.proxy(n._onAddToFamilyFailure));
- e.start()
- }, function (e) {
- $ReportEvent.ReportApiCall({apiId: c.fss.errorApiId, success: !1, errorCode: e.number || ""}), $BSI.navigateTo(c.fss.ruOnError)
- });
- else {
- var i = new o(null, f.createAndUpdateFamily, a, t.proxy(n._onAddToFamilySuccess)(r), t.proxy(n._onAddToFamilyFailure));
- i.start()
- }
- } else
- $BSI.navigateTo(r.redirectUrl)
- }, 1e3)
- }, _onCreateFailure: function (e) {
- {
- var r = this;
- e && e.error || {}
- }
- s && s.setWizardButtons(!0, !0, !1), r._viewContext.hasAttemptedSubmit = !0, r._isSubmitting = !1, r._viewContext.data.serverErrors = {}, r._handleCreateError(e.error), r.setEnabled(!0)
- }, _onAddToFamilySuccess: function (e) {
- if (e.childInfo)
- $Cookie.setCookie(c.fss.childConsentCookieName, e.childInfo, c.fss.childConsentCookieDomain, 0, 0, 1), $BSI.navigateTo(c.fss.childConsentRu);
- else {
- var r = c.fss.isWinTsetFlow ? decodeURIComponent(c.fss.ruOnSuccess).format(e.signinName) : c.fss.ruOnSuccess;
- $BSI.navigateTo(r)
- }
- }, _onAddToFamilyFailure: function () {
- $BSI.navigateTo(c.fss.ruOnError)
- }, _createAccount: function (e) {
- var r = this, a = new o(null, f.createAccount, e, t.proxy(r._onCreateSuccess, r), t.proxy(r._onCreateFailure, r));
- s && s.setWizardButtons(!1, !1, !1), 13 === $Config.uiflvr && t("#Spinner").show(), a.start()
- }, _handleCreateError: function (r) {
- var n = this, o = r.code, i = r.field, s = "", l = n._viewContext.keyToStateMap, u = n._viewContext.data || {}, d = n._viewContext.data.serverErrors = n._viewContext.data.serverErrors || {}, f = e.HIPAMFE, b = !1;
- switch (13 === $Config.uiflvr && t("#Spinner").hide(), o) {
- case v.hipValidationError:
- if (f && f.done)
- if (f.observable.hip(""), f.error = 1, f.setError(), s = f.getError(), f.observable.hip.focused(!0), "sms" === f.type) {
- var g = null;
- if (r.data)
- try {
- var u = JSON.parse(r.data);
- u && u.fid && (g = u.fid)
- } catch (y) {
- }
- f.switchHIP("sms", g)
- } else
- f.reloadHIP();
- break;
- case v.hipNeeded:
- n._viewContext.hasAttemptedSubmit = !1, m.required = !0, t.inArray("hip", c.options.states) >= 0 ? n.$.triggerHandler(h, {actionName: "hip", control: n}) : (a.FieldHelper.loadHip(), t("#hipSection").show());
- break;
- case v.hipSMSNeeded:
- m.required = !0;
- var g = null, w = null;
- if (r.data)
- try {
- var u = JSON.parse(r.data);
- u && u.sid && (w = u.sid), u && u.fid && (g = u.fid)
- } catch (y) {
- }
- if (f && f.done)
- w && (f.urlId = w), g ? f.switchHIP("sms", g) : f.switchHIP("sms");
- else {
- for (var C in n._viewContext.keyToStateMap)
- if ("hip" === C) {
- m.url = $f.replaceQs(m.url, "type", "sms"), g && (m.url = $f.replaceQs(m.url, "fid", g)), w && (m.url = $f.replaceQs(m.url, "id", w)), t.inArray("hip", c.options.states) >= 0 ? n.$.triggerHandler(h, {actionName: "hip", control: n}) : (a.FieldHelper.loadHip(), t("#hipSection").show());
- break
- }
- n.$.triggerHandler(h, {actionName: "blocked", control: n})
- }
- break;
- case v.dailyLimitIDsReached:
- b = !0, n.$.triggerHandler(h, {actionName: "blocked", control: n});
- break;
- case v.oneTimeCodeInvalid:
- s = p.oneTimeCodeInvalid;
- break;
- case v.membernameTaken:
- var N = a.FieldHelper.getMemberNameType(u.input.memberName, c.domains);
- o === v.membernameTaken && (s = N === c.memberNameType.Phone ? p.membernameTakenPhone : p.memberNameTakenEasi.format(u.input.memberName));
- break;
- case v.domainNotAllowed:
- s = p.domainNotAllowed;
- break;
- case v.forbiddenWord:
- s = p.forbiddenWord;
- break;
- case v.passwordIncorrect:
- break;
- case v.invalidEmailFormat:
- s = p.invalidEmailFormat;
- break;
- case v.invalidPhoneFormat:
- s = p.invalidPhoneFormat;
- break;
- case v.invalidBirthDate:
- s = p.invalidBirthDate;
- break;
- case v.invalidGender:
- s = p.invalidGender;
- break;
- case v.invalidFirstName:
- s = p.invalidFirstName;
- break;
- case v.invalidLastName:
- s = p.invalidLastName;
- break;
- case v.maximumOTTDailyError:
- s = p.verificationThrottled;
- break;
- case v.bannedPassword:
- s = p.bannedPassword;
- break;
- default:
- n._handleFatalError(o)
- }
- if (i) {
- var S = l[i];
- d[i] = s, a.viewModelHandle[i] && (a.viewModelHandle[i].serverError = s, a.viewModelHandle[i].isModified(!1), a.viewModelHandle[i].focused(!0)), S && n.$.triggerHandler(h, {actionName: S, control: n})
- } else
- b || n._handleFatalError(o)
- }, _handleFatalError: function (e) {
- s && (s.setProperty("ErrorCode", parseInt(e)), s.setWizardButtons(!1, !1, !0), s.finalNext()), l ? l.finish(l.FinishStates.Error) : $BSI.navigateTo(c.urls.error + e)
- }, handleActionButton: function () {
- var r = this, n = r._viewContext.data || {}, o = n.prefill || {}, i = n.input || {}, s = {}, l = r._options.optInTargetedId, u = r._options.optInEmailId, d = (r._checkBoxBindings, e.HIPAMFE);
- if (!r._isSubmitting) {
- var p = i.memberName;
- if (p || (a.viewModelHandle.memberName && (a.viewModelHandle.memberName.notifySubscribers(), p = i.memberName), p)) {
- var v = a.FieldHelper.getMemberNameType(p, c.domains);
- if (v === c.memberNameType.Phone) {
- if (!i.verification)
- return void r.$.triggerHandler(h, {actionName: "verification", control: r});
- s.MemberName = p, s.VerificationCode = i.verification, i.autoVerify && (s.AutoVerify = i.autoVerify)
- } else
- s.MemberName = p;
- if (o && o.memberName)
- if (v === c.memberNameType.Phone) {
- var f = o.memberName.Phone;
- f && t.each(f, function (e, r) {
- return r && r.phoneNumber && p && p.indexOf(r.phoneNumber) >= 0 ? (s.PrefillMemberNameUsed = !0, !1) : void 0
- })
- } else {
- var g = o.memberName.EASI;
- g && t.each(g, function (e, r) {
- return r && p && p.indexOf(r) >= 0 ? (s.PrefillMemberNameUsed = !0, !1) : void 0
- })
- }
- if (s.FirstName = i.firstName, s.LastName = i.lastName, s.CipherValue = Encrypt("", "", b, i.password), s.SKI = SKI || "", c.countryConditionalBirthdateCheck ? i.birthdate && (s.BirthDate = i.birthdate, s.Country = i.country) : (s.BirthDate = i.birthdate, s.Country = i.country, s.PostalCode = i.postalCode, s.Gender = i.gender), s.PhoneCountry = i.phoneCountry, s.PhoneNumber = i.phoneNumber, s.AltEmail = v === c.memberNameType.Live ? i.alternateEmail : null, u) {
- var y = t("#" + u);
- y && y.length > 0 && (s.IsOptOutEmail = !y.prop("checked"))
- }
- if (l) {
- var w = t("#" + l);
- w && w.length > 0 && (s.IsOptOutTargeting = !w.prop("checked"))
- }
- s.LW = c.lw, s.SiteId = n.siteId, s.IsRDM = n.isRdm;
- try {
- s.GWPC = window.external.SignString("bver=1")
- } catch (C) {
- }
- s.Signature = n.signature, s.WReply = r._wreply, s.ReturnUrl = r._ru, s.uiflvr = e.$Config.uiflvr, s.uaid = e.$Config.uaid;
- var N = e.location.hash;
- N && (N = N.replace("#", ""), N && N.indexOf("errCode=") > -1 && (s.TestErrorCode = N.replace("errCode=", ""), e.location.hash = "#")), v === c.memberNameType.Phone ? r._createAccount(s) : d && d.done ? a.viewModelHandle.hip || d.fake ? (s.HType = d.type, s.HFId = d.urlFid, s.HSId = d.urlId, d.verify(function (e, t) {
- if (d.clientValidation(), "" !== d.getError()) {
- if ("sms" === d.type)
- return;
- a.viewModelHandle.hip.valueHasMutated()
- }
- s.HId = t, s.HSol = e, r._createAccount(s)
- }, null)) : r.$.triggerHandler(h, {actionName: "hip", control: r}) : m.required ? r.$.triggerHandler(h, {actionName: "hip", control: r}) : (r._isSubmitting = !0, r._createAccount(s))
- }
- }
- }}, {})
- }(), function () {
- function e(e, r) {
- var t = v.options.viewDefs[e];
- if (t) {
- var a = t.sectionId, n = t.actions, o = null;
- a && (g[a] ? o = g[a].clone() : (o = l("#" + a, r), o.detach(), g[a] = o)), t.options.sectionId || (t.options.sectionId = a), t.options.viewTemplate = o;
- var i = {action: a + "Action"};
- n.cancel && (i.cancel = a + "Cancel"), n.alternate && (i.alternate = a + "Alternate"), n.tou && (i.tou = "tou"), n.privacy && (i.privacy = "privacy"), n.localAccount && (i.localAccount = "LocalAccount"), n.hip && (i.hip = "hip"), t.options.buttons = i
- }
- }
- function r() {
- var r = l("#signupTemplates"), t = v.options.states;
- for (var a in t)
- e(t[a], r)
- }
- function t(e, r) {
- return r === y && !v.options.viewDefs[y] && d ? (d.finalBack(), null) : "cxhLocalAccount" === r ? (h.loadIdentityProvider(v.localAccountProvider), null) : r
- }
- function a(e) {
- var r = new l.Deferred;
- if (e) {
- var t = {phone: e}, a = new m(null, f.getPhoneNumberDetails, t, function (e) {
- r.resolve(e)
- }, function () {
- r.reject()
- });
- a.start()
- } else
- r.reject();
- return r.promise()
- }
- function n(e) {
- var r = e.data = e.data || {}, t = r.prefill = r.prefill || {}, n = r.input = r.input || {};
- for (var o in e.keyToStateMap) {
- var i = b[o].clientPrefillKey;
- if (!t[o] && i && d) {
- var s = d.getProperty(i);
- if (s)
- if (o === b.phoneNumber.name)
- a([s]).done(function (e) {
- e && e.phoneDetails && e.phoneDetails.length > 0 && (t[b.phoneCountry.name] = e.phoneDetails[0].country, t[b.phoneNumber.name] = e.phoneDetails[0].phoneNumber)
- });
- else if (o === b.memberName.name) {
- try {
- var c = l.parseJSON(s), m = [], p = [], f = [];
- l.isArray(c) || (c = [c]), l.each(c, function (e, r) {
- var t = u.FieldHelper.getMemberNameType(r, v.domains), a = v.memberNameType;
- t === a.Phone ? f.push(r) : t === a.EASI ? m.push(r) : t === a.Live && p.push(r)
- }), t[o] = {EASI: m, Live: p}, null != f && f.length > 0 && a(f).done(function (e) {
- e && e.phoneDetails && (t[o][v.memberNameType.Phone] = e.phoneDetails)
- })
- } catch (h) {
- s = ""
- }
- t[o] = s
- } else
- t[o] = s
- }
- }
- var g = t[b.country.name];
- g && (t[b.country.name] = g.toUpperCase());
- for (var o in e.keyToStateMap)
- o !== b.memberName.name && (n[o] = t[o])
- }
- function o(e) {
- var r = v.options, t = r.viewDefs || {};
- e.keyToStateMap = {};
- for (var a in t)
- if (t.hasOwnProperty(a)) {
- var n = t[a];
- if (n && n.options && n.options.viewModelOptions && n.options.viewModelOptions.observables) {
- var o = n.options.viewModelOptions.observables;
- l.each(o, function (r, t) {
- e.keyToStateMap[t] = a
- })
- }
- }
- }
- var i = window, s = i.wLive, l = i.jQuery, u = s.Account, c = u.Controls, m = s.Core.DataRequest, d = i.ExternalHelper, p = i.$Config.WLXAccount, v = p.signup, f = v.urls.dataRequest, b = v.signupObservableSets, h = i.MSA && i.MSA.CXH, g = (h && h.FinishStates, {}), y = "finalBack";
- defineNamespace("wLive.Account.Page", {Signup: function () {
- r();
- var e = v.viewContext = v.viewContext || {};
- e.data = e.data || {}, o(e), n(e);
- var a = new c.FlowController(l("#pageControlHost"), e, v.options);
- a.setStateChangeFunc(t), a.show(v.startState)
- }})
- }();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement