Advertisement
Guest User

Untitled

a guest
Apr 25th, 2015
774
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. function Encrypt(e, r, t, a) {
  3.     var n = [];
  4.     switch (t.toLowerCase()) {
  5.         case"chgsqsa":
  6.             if (null == e || null == r)
  7.                 return null;
  8.             n = PackageSAData(e, r);
  9.             break;
  10.         case"chgpwd":
  11.             if (null == e || null == a)
  12.                 return null;
  13.             n = PackageNewAndOldPwd(e, a);
  14.             break;
  15.         case"pwd":
  16.             if (null == e)
  17.                 return null;
  18.             n = PackagePwdOnly(e);
  19.             break;
  20.         case"pin":
  21.             if (null == e)
  22.                 return null;
  23.             n = PackagePinOnly(e);
  24.             break;
  25.         case"proof":
  26.             if (null == e && null == r)
  27.                 return null;
  28.             n = PackageLoginIntData(null != e ? e : r);
  29.             break;
  30.         case"saproof":
  31.             if (null == r)
  32.                 return null;
  33.             n = PackageSADataForProof(r);
  34.             break;
  35.         case"newpwd":
  36.             if (null == a)
  37.                 return null;
  38.             n = PackageNewPwdOnly(a)
  39.     }
  40.     if (null == n || "undefined" == typeof n)
  41.         return n;
  42.     if ("undefined" != typeof Key && void 0 !== parseRSAKeyFromString)
  43.         var o = parseRSAKeyFromString(Key);
  44.     var i = RSAencrypt(n, o, randomNum), s = byteArrayToBase64(i);
  45.     return s
  46. }
  47. function PackageSAData(e, r) {
  48.     var t = [], a = 0;
  49.     t[a++] = 1, t[a++] = 1, t[a++] = 0;
  50.     var n, o = r.length;
  51.     for (t[a++] = 2 * o, n = 0; o > n; n++)
  52.         t[a++] = 255 & r.charCodeAt(n), t[a++] = (65280 & r.charCodeAt(n)) >> 8;
  53.     var i = e.length;
  54.     for (t[a++] = i, n = 0; i > n; n++)
  55.         t[a++] = 127 & e.charCodeAt(n);
  56.     return t
  57. }
  58. function PackagePwdOnly(e) {
  59.     var r = [], t = 0;
  60.     r[t++] = 1, r[t++] = 1, r[t++] = 0, r[t++] = 0;
  61.     var a, n = e.length;
  62.     for (r[t++] = n, a = 0; n > a; a++)
  63.         r[t++] = 127 & e.charCodeAt(a);
  64.     return r
  65. }
  66. function PackagePinOnly(e) {
  67.     var r = [], t = 0;
  68.     r[t++] = 1, r[t++] = 2, r[t++] = 0, r[t++] = 0, r[t++] = 0;
  69.     var a, n = e.length;
  70.     for (r[t++] = n, a = 0; n > a; a++)
  71.         r[t++] = 127 & e.charCodeAt(a);
  72.     return r
  73. }
  74. function PackageLoginIntData(e) {
  75.     var r, t = [], a = 0;
  76.     for (r = 0; r < e.length; r++)
  77.         t[a++] = 255 & e.charCodeAt(r), t[a++] = (65280 & e.charCodeAt(r)) >> 8;
  78.     return t
  79. }
  80. function PackageSADataForProof(e) {
  81.     var r, t = [], a = 0;
  82.     for (r = 0; r < e.length; r++)
  83.         t[a++] = 127 & e.charCodeAt(r), t[a++] = (65280 & e.charCodeAt(r)) >> 8;
  84.     return t
  85. }
  86. function PackageNewPwdOnly(e) {
  87.     var r = [], t = 0;
  88.     r[t++] = 1, r[t++] = 1;
  89.     var a, n = e.length;
  90.     for (r[t++] = n, a = 0; n > a; a++)
  91.         r[t++] = 127 & e.charCodeAt(a);
  92.     return r[t++] = 0, r[t++] = 0, r
  93. }
  94. function PackageNewAndOldPwd(e, r) {
  95.     var t = [], a = 0;
  96.     t[a++] = 1, t[a++] = 1;
  97.     var n, o = r.length;
  98.     for (t[a++] = o, n = 0; o > n; n++)
  99.         t[a++] = 127 & r.charCodeAt(n);
  100.     for (t[a++] = 0, o = e.length, t[a++] = o, n = 0; o > n; n++)
  101.         t[a++] = 127 & e.charCodeAt(n);
  102.     return t
  103. }
  104. function mapByteToBase64(e) {
  105.     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 ? "+" : "/"
  106. }
  107. function base64Encode(e, r) {
  108.     var t, a = "";
  109.     for (t = r; 4 > t; t++)
  110.         e >>= 6;
  111.     for (t = 0; r > t; t++)
  112.         a = mapByteToBase64(63 & e) + a, e >>= 6;
  113.     return a
  114. }
  115. function byteArrayToBase64(e) {
  116.     var r, t, a = e.length, n = "";
  117.     for (r = a - 3; r >= 0; r -= 3)
  118.         t = e[r] | e[r + 1] << 8 | e[r + 2] << 16, n += base64Encode(t, 4);
  119.     var o = a % 3;
  120.     for (t = 0, r += 2; r >= 0; r--)
  121.         t = t << 8 | e[r];
  122.     return 0 == o ? n += base64Encode(t, 4) : 1 == o ? n = n + base64Encode(t << 16, 2) + "==" : 2 == o && (n = n + base64Encode(t << 8, 3) + "="), n
  123. }
  124. function parseRSAKeyFromString(e) {
  125.     var r = e.indexOf(";");
  126.     if (0 > r)
  127.         return null;
  128.     var t = e.substr(0, r), a = e.substr(r + 1), n = t.indexOf("=");
  129.     if (0 > n)
  130.         return null;
  131.     var o = t.substr(n + 1);
  132.     if (n = a.indexOf("="), 0 > n)
  133.         return null;
  134.     var i = a.substr(n + 1), s = new Object;
  135.     return s.n = hexStringToMP(i), s.e = parseInt(o, 16), s
  136. }
  137. function RSAencrypt(e, r, t) {
  138.     var a = r.n, n = r.e, o = e.length, i = 2 * a.size, s = 42;
  139.     if (o + s > i)
  140.         return null;
  141.     applyPKCSv2Padding(e, i, t), e = e.reverse();
  142.     var l = byteArrayToMP(e), u = modularExp(l, n, a);
  143.     u.size = a.size;
  144.     var c = mpToByteArray(u);
  145.     return c = c.reverse()
  146. }
  147. function JSMPnumber() {
  148.     this.size = 1, this.data = [], this.data[0] = 0
  149. }
  150. function duplicateMP(e) {
  151.     var r = new JSMPnumber;
  152.     return r.size = e.size, r.data = e.data.slice(0), r
  153. }
  154. function byteArrayToMP(e) {
  155.     var r = new JSMPnumber, t = 0, a = e.length, n = a >> 1;
  156.     for (t = 0; n > t; t++)
  157.         r.data[t] = e[2 * t] + (e[1 + 2 * t] << 8);
  158.     return a % 2 && (r.data[t++] = e[a - 1]), r.size = t, r
  159. }
  160. function mpToByteArray(e) {
  161.     var r = [], t = 0, a = e.size;
  162.     for (t = 0; a > t; t++) {
  163.         r[2 * t] = 255 & e.data[t];
  164.         var n = e.data[t] >>> 8;
  165.         r[2 * t + 1] = n
  166.     }
  167.     return r
  168. }
  169. function modularExp(e, r, t) {
  170.     for (var a = [], n = 0; r > 0; )
  171.         a[n] = 1 & r, r >>>= 1, n++;
  172.     for (var o = duplicateMP(e), i = n - 2; i >= 0; i--)
  173.         o = modularMultiply(o, o, t), 1 == a[i] && (o = modularMultiply(o, e, t));
  174.     return o
  175. }
  176. function modularMultiply(e, r, t) {
  177.     var a = multiplyMP(e, r), n = divideMP(a, t);
  178.     return n.r
  179. }
  180. function multiplyMP(e, r) {
  181.     var t = new JSMPnumber;
  182.     t.size = e.size + r.size;
  183.     var a, n;
  184.     for (a = 0; a < t.size; a++)
  185.         t.data[a] = 0;
  186.     var o = e.data, i = r.data, s = t.data;
  187.     if (e == r) {
  188.         for (a = 0; a < e.size; a++)
  189.             s[2 * a] += o[a] * o[a];
  190.         for (a = 1; a < e.size; a++)
  191.             for (n = 0; a > n; n++)
  192.                 s[a + n] += 2 * o[a] * o[n]
  193.     } else
  194.         for (a = 0; a < e.size; a++)
  195.             for (n = 0; n < r.size; n++)
  196.                 s[a + n] += o[a] * i[n];
  197.     return normalizeJSMP(t), t
  198. }
  199. function normalizeJSMP(e) {
  200.     var r, t, a, n, o;
  201.     for (a = e.size, t = 0, r = 0; a > r; r++)
  202.         n = e.data[r], n += t, o = n, t = Math.floor(n / 65536), n -= 65536 * t, e.data[r] = n
  203. }
  204. function removeLeadingZeroes(e) {
  205.     for (var r = e.size - 1; r > 0 && 0 == e.data[r--]; )
  206.         e.size--
  207. }
  208. function divideMP(e, r) {
  209.     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;
  210.     i.size = t - a + 1, e.data[t] = 0;
  211.     for (var s = t - 1; s >= a - 1; s--) {
  212.         var l = s - a + 1, u = Math.floor((65536 * e.data[s + 1] + e.data[s]) / o);
  213.         if (u > 0) {
  214.             var c = multiplyAndSubtract(e, u, r, l);
  215.             for (0 > c && (u--, multiplyAndSubtract(e, u, r, l)); c > 0 && e.data[s] >= n; )
  216.                 c = multiplyAndSubtract(e, 1, r, l), c > 0 && u++
  217.         }
  218.         i.data[l] = u
  219.     }
  220.     removeLeadingZeroes(e);
  221.     var m = {q: i, r: e};
  222.     return m
  223. }
  224. function multiplyAndSubtract(e, r, t, a) {
  225.     var n, o = e.data.slice(0), i = 0, s = e.data;
  226.     for (n = 0; n < t.size; n++) {
  227.         var l = i + t.data[n] * r;
  228.         i = l >>> 16, l -= 65536 * i, l > s[n + a] ? (s[n + a] += 65536 - l, i++) : s[n + a] -= l
  229.     }
  230.     return i > 0 && (s[n + a] -= i), s[n + a] < 0 ? (e.data = o.slice(0), -1) : 1
  231. }
  232. function applyPKCSv2Padding(e, r, t) {
  233.     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 = [];
  234.     for (a = 0; i > a; a++)
  235.         s[a] = 0;
  236.     s[i] = 1;
  237.     var l = o.concat(s, e), u = [];
  238.     for (a = 0; 20 > a; a++)
  239.         u[a] = Math.floor(256 * Math.random());
  240.     u = SHA1(u.concat(t));
  241.     var c = MGF(u, r - 21), m = XORarrays(l, c), d = MGF(m, 20), p = XORarrays(u, d), v = [];
  242.     for (v[0] = 0, v = v.concat(p, m), a = 0; a < v.length; a++)
  243.         e[a] = v[a]
  244. }
  245. function MGF(e, r) {
  246.     if (r > 4096)
  247.         return null;
  248.     var t = e.slice(0), a = t.length;
  249.     t[a++] = 0, t[a++] = 0, t[a++] = 0, t[a] = 0;
  250.     for (var n = 0, o = []; o.length < r; )
  251.         t[a] = n++, o = o.concat(SHA1(t));
  252.     return o.slice(0, r)
  253. }
  254. function XORarrays(e, r) {
  255.     if (e.length != r.length)
  256.         return null;
  257.     for (var t = [], a = e.length, n = 0; a > n; n++)
  258.         t[n] = e[n] ^ r[n];
  259.     return t
  260. }
  261. function SHA1(e) {
  262.     var r, t = e.slice(0);
  263.     PadSHA1Input(t);
  264.     var a = {A: 1732584193, B: 4023233417, C: 2562383102, D: 271733878, E: 3285377520};
  265.     for (r = 0; r < t.length; r += 64)
  266.         SHA1RoundFunction(a, t, r);
  267.     var n = [];
  268.     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
  269. }
  270. function wordToBytes(e, r, t) {
  271.     var a;
  272.     for (a = 3; a >= 0; a--)
  273.         r[t + a] = 255 & e, e >>>= 8
  274. }
  275. function PadSHA1Input(e) {
  276.     var r, t = e.length, a = t, n = t % 64, o = 55 > n ? 56 : 120;
  277.     for (e[a++] = 128, r = n + 1; o > r; r++)
  278.         e[a++] = 0;
  279.     var i = 8 * t;
  280.     for (r = 1; 8 > r; r++)
  281.         e[a + 8 - r] = 255 & i, i >>>= 8
  282. }
  283. function SHA1RoundFunction(e, r, t) {
  284.     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;
  285.     for (n = 0, o = t; 16 > n; n++, o += 4)
  286.         c[n] = r[o] << 24 | r[o + 1] << 16 | r[o + 2] << 8 | r[o + 3] << 0;
  287.     for (n = 16; 80 > n; n++)
  288.         c[n] = rotateLeft(c[n - 3] ^ c[n - 8] ^ c[n - 14] ^ c[n - 16], 1);
  289.     var b;
  290.     for (a = 0; 20 > a; a++)
  291.         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;
  292.     for (a = 20; 40 > a; a++)
  293.         b = rotateLeft(m, 5) + (d ^ p ^ v) + f + c[a] + s & 4294967295, f = v, v = p, p = rotateLeft(d, 30), d = m, m = b;
  294.     for (a = 40; 60 > a; a++)
  295.         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;
  296.     for (a = 60; 80 > a; a++)
  297.         b = rotateLeft(m, 5) + (d ^ p ^ v) + f + c[a] + u & 4294967295, f = v, v = p, p = rotateLeft(d, 30), d = m, m = b;
  298.     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
  299. }
  300. function rotateLeft(e, r) {
  301.     var t = e >>> 32 - r, a = (1 << 32 - r) - 1, n = e & a;
  302.     return n << r | t
  303. }
  304. function hexStringToMP(e) {
  305.     var r, t, a = Math.ceil(e.length / 4), n = new JSMPnumber;
  306.     for (n.size = a, r = 0; a > r; r++)
  307.         t = e.substr(4 * r, 4), n.data[a - 1 - r] = parseInt(t, 16);
  308.     return n
  309. }
  310. JSMPnumber.prototype = {size: 1, data: [0]}, function () {
  311.     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";
  312.     defineNamespace("wLive.Account.SignupObservableFactory", {createObservableSetByPrefillName: function (e, t, a) {
  313.             var n = r.Account.SignupObservableFactory;
  314.             switch (e) {
  315.                 case p.firstName.name:
  316.                     return n.createFirstNameObservableSet(t, a);
  317.                 case p.lastName.name:
  318.                     return n.createLastNameObservableSet(t, a);
  319.                 case p.memberName.name:
  320.                     return n.createMemberNameObservableSet(t, a);
  321.                 case p.password.name:
  322.                     return n.createPasswordObservableSet(t, a);
  323.                 case p.country.name:
  324.                     return n.createCountryObservableSet(t, a);
  325.                 case p.birthdate.name:
  326.                     return n.createBirthdateObservableSet(t, a);
  327.                 case p.gender.name:
  328.                     return n.createGenderObservableSet(t, a);
  329.                 case p.phoneCountry.name:
  330.                     return n.createPhoneCountryObservableSet(t, a);
  331.                 case p.phoneNumber.name:
  332.                     return n.createPhoneNumberObservableSet(t, a);
  333.                 case p.alternateEmail.name:
  334.                     return n.createAlternateEmailObservableSet(t, a);
  335.                 case p.hip.name:
  336.                     return n.createHipObservableSet(t, a);
  337.                 case p.verification.name:
  338.                     return n.createVerificationObservableSet(t, a);
  339.                 case p.proofShown.name:
  340.                     return n.createProofShownObservableSet(t, a);
  341.                 default:
  342.                     return null
  343.                 }
  344.         }, createFirstNameObservableSet: function (e, r) {
  345.             var t = {}, a = ko.observable(e || "").extend({required: {params: !0, message: m.required}});
  346.             return a.subscribe(function (e) {
  347.                 t.firstName.suppressMessages(!1), s.viewContext.data.input[p.firstName.name] = e
  348.             }), a.suppressMessages = ko.observable(!0), a.serverError = r, a.focused = ko.observable(!1), t.firstName = a, t
  349.         }, createLastNameObservableSet: function (e, r) {
  350.             var t = {}, a = ko.observable(e || "").extend({required: {params: !0, message: m.required}});
  351.             return a.subscribe(function (e) {
  352.                 t.lastName.suppressMessages(!1), s.viewContext.data.input[p.lastName.name] = e
  353.             }), a.suppressMessages = ko.observable(!0), a.serverError = r, a.focused = ko.observable(!1), t.lastName = a, t
  354.         }, createMemberNameObservableSet: function (e, r) {
  355.             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;
  356.             if (e)
  357.                 if (h = s.viewContext.data.input.memberNameInput, w = n.getMemberNameType(e, v), w === s.memberNameType.Live) {
  358.                     var M = e.split("@");
  359.                     M && M.length > 1 && (f = M[1])
  360.                 } else
  361.                     i && w === s.memberNameType.Phone && (b = s.viewContext.data.input.memberNamePhoneCountry);
  362.             else if (i && ("Phone" === s.fl || "Default_Phone" === s.fl && (S || A) || S && (P || E)))
  363.                 w = s.memberNameType.Phone, S ? (h = g[s.memberNameType.Phone][0].phoneNumber, b = g[s.memberNameType.Phone][0].country) : y && (b = y);
  364.             else if ("EASI" === s.fl || "Default_EASI" === s.fl && (N || A) || N && (P || T))
  365.                 w = s.memberNameType.EASI, N && (h = g[s.memberNameType.EASI][0]);
  366.             else if (("Live" === s.fl || "Default_Live" === s.fl && (C || A) || C && (E || T)) && (w = s.memberNameType.Live, C)) {
  367.                 var k = g[s.memberNameType.Live][0].split("@");
  368.                 h = k[0], f = k[1]
  369.             }
  370.             var x = a.memberNameType = ko.observable(w);
  371.             x.subscribe(function () {
  372.                 V("")
  373.             });
  374.             var _ = a.domain = ko.observable(f || v[0]), I = (a.placeholder = ko.computed(function () {
  375.                 return x() === s.memberNameType.EASI ? c.usernamePlaceholder : ""
  376.             }), a.memberNameInput = ko.observable(h || ""));
  377.             if ("EASI" !== s.fl && "Live" !== s.fl && "Phone" !== s.fl && I.subscribe(function (e) {
  378.                 var r = this;
  379.                 if (r.memberNameType() !== s.memberNameType.Phone) {
  380.                     var t = n.getMemberNameType(e, r.domains);
  381.                     if (t === s.memberNameType.EASI)
  382.                         r.memberNameType(s.memberNameType.EASI);
  383.                     else if (t === s.memberNameType.Live) {
  384.                         var a = e.split("@");
  385.                         r.domain(a[1]), r.memberNameInput(a[0]), r.memberNameType(s.memberNameType.Live)
  386.                     }
  387.                 }
  388.                 r.memberNameSuccessMessage("")
  389.             }, a), i) {
  390.                 var D = t.parseJSON(s.phoneCountryDetailsJson), H = t.parseJSON(s.phoneCountryListJson), O = H.List, F = [];
  391.                 for (var L in O)
  392.                     F.push({iso: L, displayValue: O[L]});
  393.                 a.memberNamePhoneCountries = F, a.memberNamePhoneCountry = ko.observable(b || H.Default)
  394.             }
  395.             {
  396.                 var V = a.memberNameSuccessMessage = ko.observable(""), $ = a.memberNameSuggestions = ko.observable([]).extend({rateLimit: 300}), B = a.showSuggestions = ko.observable(!1);
  397.                 a.showOtherOptions = ko.observable(!1)
  398.             }
  399.             a.showOtherOptions.subscribe(function (e) {
  400.                 o && o.setWizardButtons(!e, !e, !1)
  401.             }), a.onClickSuggestionsLink = function () {
  402.                 $().length > 0 && t("#CredentialsSuggestionsModal").length > 0 && t("#CredentialsSuggestionsModal").modal("show"), 13 === $Config.uiflvr && $().length > 0 && t("#MemberNameSuggestions").show(), B($().length > 0)
  403.             }, a.onPickSuggestion = function (e) {
  404.                 if (e) {
  405.                     var r = e.split("@");
  406.                     r && r.length > 1 && (I(r[0]), _(r[1])), t("#CredentialsSuggestionsModal").length > 0 && t("#CredentialsSuggestionsModal").modal("hide"), B(!1)
  407.                 }
  408.             };
  409.             var R = s.viewContext.data.previouslyCheckedMemberName || "", q = ko.computed(function () {
  410.                 var e = this, r = e.memberNameInput();
  411.                 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
  412.             }, 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 () {
  413.                         return x() === s.memberNameType.EASI
  414.                     }, params: [l.MembernameRegex], message: m.invalidEmailFormat}}).extend({allPatterns: {onlyIf: function () {
  415.                         return i && x() === s.memberNameType.Phone
  416.                     }, params: [l.PhoneNumberFormat], message: m.invalidPhoneFormat}}).extend({pattern: {onlyIf: function () {
  417.                         return x() === s.memberNameType.Live
  418.                     }, params: "^[a-zA-Z]", message: m.emailMustStartWithLetter}});
  419.             return q.extend({checkAvailable: {onlyIf: function () {
  420.                         var e = !!I() && q && R != q();
  421.                         return q && (s.viewContext.data.previouslyCheckedMemberName = R = q()), e
  422.                     }, params: {url: u.checkAvailable, observable: q, getSuggestedMemberNames: function (e) {
  423.                             $(e)
  424.                         }, setSuccessMessage: function (e, r) {
  425.                             V(e === s.memberNameType.Live ? m.memberNameAvailable.format(r) : m.memberNameAvailableEasi)
  426.                         }, getResult: function (e, r, t, a) {
  427.                             switch (e) {
  428.                                 case d.domainNotAllowed:
  429.                                     return{isValid: !1, message: m.domainNotAllowed};
  430.                                 case d.signupBlocked:
  431.                                     return{isValid: !1, message: m.signupBlocked.format(r)};
  432.                                 case d.invalidEmailFormat:
  433.                                     return{isValid: !1, message: m.invalidEmailFormat};
  434.                                 case d.invalidPhoneFormat:
  435.                                     return{isValid: !1, message: m.invalidPhoneFormat};
  436.                                 case d.invalidMemberNameFormat:
  437.                                     return{isValid: !1, message: i && x() === s.memberNameType.Phone ? m.invalidPhoneFormat : m.invalidEmailFormat};
  438.                                 case d.membernameTaken:
  439.                                     return{isValid: !1, message: m.memberNameTaken};
  440.                                 case d.membernameTakenEasi:
  441.                                     return{isValid: !1, message: m.memberNameTakenEasi.format(r)};
  442.                                 case d.membernameTakenPhone:
  443.                                     return{isValid: !1, message: i ? m.memberNameTakenPhone : m.memberNameTaken}
  444.                             }
  445.                             return 0 === e && t === !1 ? a === s.memberNameType.Live ? {isValid: !1, message: m.memberNameTaken} : {isValid: !1, message: m.memberNameTakenEasi.format(r)} : {isValid: !0, message: ""}
  446.                         }, includeSuggestions: !0, message: m.checkAvailableFail}}}), updateInput = function () {
  447.                 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())
  448.             }, updateInput(), q.subscribe(function (e) {
  449.                 a.memberName.suppressMessages(!1), updateInput(), a.memberName.previousValue(e)
  450.             }), q.previousValue = ko.observable(""), q.suppressMessages = ko.observable(!a.memberNameInput()), q.serverError = r, q.focused = ko.observable(!1), q.isValidating.subscribe(function (e) {
  451.                 o && o.setWizardButtons(!e, !e, !1)
  452.             }), a.memberName = q, a.domainDropdownClick = function (e) {
  453.                 q.isValidating() || _(e)
  454.             }, a.switchMemberNameType = function (e) {
  455.                 var r = s.memberNameType;
  456.                 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))
  457.             }, a.memberNameInputType = ko.computed(function () {
  458.                 return $B && $B.IE && $B.V && $B.V <= 8 ? "text" : i && x() === s.memberNameType.Phone ? "tel" : x() === s.memberNameType.EASI ? "email" : "text"
  459.             }), a.liveEasiSwitchText = ko.computed(function () {
  460.                 return x() === s.memberNameType.Live ? c.easiSwitch : c.liveSwitch
  461.             }), a.memberNamePrefill = ko.computed(function () {
  462.                 return g ? g[x()] : null
  463.             }), a.prefillSelected = function (e) {
  464.                 i && e && e.phoneNumber ? (a.memberNameInput(e.phoneNumber), a.memberNamePhoneCountry(e.country)) : a.memberNameInput(e)
  465.             }, a
  466.         }, createPasswordObservableSet: function (r, t) {
  467.             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}});
  468.             if (s.disableBannedPwdCheck ? n.isValidating = ko.observable(!1) : n.extend({bannedPwd: {onlyIf: function () {
  469.                         var e = n() && s.viewContext.data.previouslyCheckedPassword != n();
  470.                         return e && (s.viewContext.data.previouslyCheckedPassword = n()), e
  471.                     }, params: {url: u.bannedPwd, ski: SKI || "", observable: n}, message: m.bannedPassword}}), n.subscribe(function (r) {
  472.                 if (a.password.suppressMessages(!1), s.viewContext.data.input[p.password.name] = r, 13 === $Config.uiflvr && !s.isOtsFlow) {
  473.                     var t = e.MSA && e.MSA.CXH;
  474.                     t && t.encryptUserDataAsync(r, function (e) {
  475.                         t.propertyBagSetAsync("encPwd", e)
  476.                     })
  477.                 }
  478.             }), n.suppressMessages = ko.observable(!0), n.serverError = t, n.isValidating.subscribe(function (e) {
  479.                 o.setWizardButtons(!e, !e, !1)
  480.             }), n.focused = ko.observable(!1), a.password = n, p.retypePassword) {
  481.                 var i = ko.observable(r || "").extend({required: {params: !0, message: m.required}, equal: {onlyIf: function () {
  482.                             return n()
  483.                         }, params: n, message: m.passwordNotMatch}});
  484.                 i.focused = ko.observable(!1), i.suppressMessages = ko.observable(!0), i.subscribe(function () {
  485.                     a.retypePassword.suppressMessages(!1)
  486.                 }), a.retypePassword = i, i.subscribe(function (e) {
  487.                     a.retypePassword.suppressMessages(!1), s.viewContext.data.input[p.retypePassword.name] = e
  488.                 })
  489.             }
  490.             return a
  491.         }, createCountryObservableSet: function (e) {
  492.             var r = {}, t = ko.observable(e || "");
  493.             t.subscribe(function (e) {
  494.                 r.country.suppressMessages(!1), s.viewContext.data.input[p.country.name] = e
  495.             }), t.suppressMessages = ko.observable(!0), t.focused = ko.observable(!1), r.country = t;
  496.             r.countries = s.countryList, r.countryInEU = ko.computed(function () {
  497.                 var e = this, r = e.country(), t = ko.utils.arrayFirst(e.countries, function (e) {
  498.                     return e.iso === r
  499.                 });
  500.                 return t && t.inEU
  501.             }, r), r.showBirthDate = ko.computed(function () {
  502.                 var e = this.country(), r = s.countryDetailMap;
  503.                 return r && 0 != r[e].childAge
  504.             }, r);
  505.             return r
  506.         }, createBirthdateObservableSet: function (e) {
  507.             e = e || "";
  508.             var r = {}, t = "", a = "", n = "", o = e.split(":");
  509.             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 () {
  510.                 var e = this, r = e.birthDay(), t = e.birthMonth(), a = e.birthYear();
  511.                 return r = 1 === r.length ? "0" + r : r, t = 1 === t.length ? "0" + t : t, r + ":" + t + ":" + a
  512.             }, r), r.birthYear.suppressMessages = ko.observable(!0), r.birthMonth.suppressMessages = ko.observable(!0), r.birthDay.suppressMessages = ko.observable(!0), r.birthdate.subscribe(function (e) {
  513.                 s.viewContext.data.input[p.birthdate.name] = e
  514.             }), r.birthYear.subscribe(function () {
  515.                 r.birthYear.suppressMessages(!1)
  516.             }), r.birthMonth.subscribe(function () {
  517.                 r.birthMonth.suppressMessages(!1)
  518.             }), r.birthDay.subscribe(function () {
  519.                 r.birthDay.suppressMessages(!1)
  520.             }), r.birthdate.suppressMessages = ko.computed({read: function () {
  521.                     var e = this;
  522.                     return e.birthYear.suppressMessages() || e.birthMonth.suppressMessages() || e.birthDay.suppressMessages()
  523.                 }, write: function (e) {
  524.                     var r = this;
  525.                     r.birthYear.suppressMessages(e), r.birthMonth.suppressMessages(e), r.birthDay.suppressMessages(e)
  526.                 }, owner: r}), r.birthdate.focused = ko.observable(!1);
  527.             var i = s.dateOrder.toUpperCase();
  528.             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
  529.         }, createGenderObservableSet: function (e) {
  530.             var r = {}, t = ko.observable(e || "").extend({required: {params: !0, message: m.required}});
  531.             return t.subscribe(function (e) {
  532.                 r.gender.suppressMessages(!1), s.viewContext.data.input[p.gender.name] = e
  533.             }), t.suppressMessages = ko.observable(!0), t.focused = ko.observable(!1), r.gender = t, r
  534.         }, createPhoneCountryObservableSet: function (e) {
  535.             var r = t.parseJSON(s.phoneCountryListJson), a = r.List, n = r.Default || "", o = [];
  536.             for (var i in a)
  537.                 o.push({iso: i, displayValue: a[i]});
  538.             13 === $Config.uiflvr && (n = s.viewContext.data.input[p.country.name] || "");
  539.             var l = ko.observable(e || n);
  540.             return s.viewContext.data.input[p.phoneCountry.name] = l(), l.subscribe(function (e) {
  541.                 s.viewContext.data.input[p.phoneCountry.name] = e
  542.             }), {phoneCountries: o, phoneCountry: l}
  543.         }, createPhoneNumberObservableSet: function (e) {
  544.             var r = {}, t = ko.observable(e || "").extend({onePattern: {onlyIf: function () {
  545.                         return t && t()
  546.                     }, params: [l.PhoneNumberFormat], message: m.invalidPhoneFormat}, required: {onlyIf: function () {
  547.                         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);
  548.                         return e && t === s.memberNameType.Live && (!e.alternateEmail || !e.alternateEmail())
  549.                     }, message: m.required}});
  550.             return t.subscribe(function (e) {
  551.                 r.phoneNumber.suppressMessages(!1), s.viewContext.data.input[p.phoneNumber.name] = e
  552.             }), t.suppressMessages = ko.observable(!0), t.focused = ko.observable(!1), r.phoneNumber = t, r
  553.         }, createAlternateEmailObservableSet: function (e) {
  554.             var r = {}, t = ko.observable(e || "").extend({allPatterns: {onlyIf: function () {
  555.                         return t && t()
  556.                     }, params: [l.AltEmailRegEx], message: m.invalidEmailFormat}, required: {onlyIf: function () {
  557.                         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);
  558.                         return e && t === s.memberNameType.Live && (!e.phoneNumber || !e.phoneNumber())
  559.                     }, message: m.required}});
  560.             return t.subscribe(function (e) {
  561.                 r.alternateEmail.suppressMessages(!1), s.viewContext.data.input[p.alternateEmail.name] = e
  562.             }), t.suppressMessages = ko.observable(!0), t.focused = ko.observable(!1), r.alternateEmail = t, r
  563.         }, createHipObservableSet: function () {
  564.             var r = {}, t = e.HIPAMFE;
  565.             if (t && t.observable)
  566.                 return t.observable;
  567.             var a = ko.observable("").extend({hipValidation: {}});
  568.             return a.subscribe(function () {
  569.                 e.HIPAMFE;
  570.                 r.hip.suppressMessages(!1), r.hip.isModified(!0)
  571.             }), a.suppressMessages = ko.observable(!0), a.focused = ko.observable(!1), r.hip = a, s.hip.required, r
  572.         }, createVerificationObservableSet: function (e) {
  573.             var r = {};
  574.             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) {
  575.                 var a = s.viewContext.data.input.memberNameInput;
  576.                 a && (a = a.replace(/[^0-9]/g, ""));
  577.                 var n = s.viewContext.data;
  578.                 if (n.devicePhone) {
  579.                     var i = n.devicePhone;
  580.                     t.each(i, function (e, t) {
  581.                         return t && t.phoneNumber && a && a.indexOf(t.phoneNumber) >= 0 ? (r.showAutoVerificationUI(!0), !1) : void 0
  582.                     })
  583.                 }
  584.             }
  585.             return r.showAutoVerificationUI.subscribe(function (e) {
  586.                 o && o.setWizardButtons && o.setWizardButtons(!e, !e, !1), s.viewContext.data.input.autoVerify = e
  587.             }), r.verification.subscribe(function (e) {
  588.                 r.verification.suppressMessages(!1), s.viewContext.data.input[p.verification.name] = e
  589.             }), r.doAutoVerify = function () {
  590.                 var e = this;
  591.                 if (r.showAutoVerificationUI()) {
  592.                     var a = o.getProperty("SmsCode");
  593.                     if ("string" === t.type(a))
  594.                         "-1" == a ? r.onAutoVerifyFailed() : (r.verification(a), e.handleActionButton());
  595.                     else {
  596.                         var n = (new Date).getTime() - r.startTimestamp;
  597.                         n > s.sendOttTimeout ? (r.stopAutoVerify(), r.showAutoVerificationUI(!1)) : r.verifyTimeout = setTimeout(t.proxy(r.doAutoVerify, e), 100)
  598.                     }
  599.                 }
  600.             }, r.stopAutoVerify = function () {
  601.                 null != r.verifyTimeout && (clearTimeout(r.verifyTimeout), r.verifyTimeout = null), o.setWizardButtons(!0, !0, !1)
  602.             }, r.onAutoVerifyFailed = function (e) {
  603.                 var t = this;
  604.                 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})
  605.             }, r
  606.         }, createProofShownObservableSet: function () {
  607.             var e = {}, r = "phone", t = e.proofShown = ko.observable(r);
  608.             return t.subscribe(function () {
  609.             }), e.showPhoneProof = ko.computed(function () {
  610.                 var e = "phone" === t() ? !0 : !1;
  611.                 return e
  612.             }), e.showEmailProof = ko.computed(function () {
  613.                 var e = "altEmail" === t() ? !0 : !1;
  614.                 return e
  615.             }), e.phoneEmailSwitch = function () {
  616.                 var e = window.wLive.Account.viewModelHandle;
  617.                 "phone" === t() ? (t("altEmail"), e && !e.phoneNumber.isValid() && e.phoneNumber("")) : "altEmail" === t() && (t("phone"), e && !e.alternateEmail.isValid() && e.alternateEmail(""))
  618.             }, e.phoneEmailSwitchText = ko.computed(function () {
  619.                 return"phone" === t() ? c.altEmailSwitch : "altEmail" === t() ? c.phoneSwitch : void 0
  620.             }), e
  621.         }})
  622. }(), function () {
  623.     {
  624.         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;
  625.         i.errorCodes
  626.     }
  627.     defineClass("wLive.Account.ViewModels.SignupViewModel", function (e, r) {
  628.         var t = this, a = e.data, o = a.input || {}, s = a.serverErrors || {}, u = n.createObservableSetByPrefillName, c = t._observables = r.observables;
  629.         t._viewContext = e;
  630.         var m = c.length;
  631.         t.validationOrder = new Array(m);
  632.         for (var d = 0; m > d; d++) {
  633.             var p = c[d];
  634.             mix(t, u(p, o[p], s[p])), t.validationOrder[d] = t[p]
  635.         }
  636.         if (t.initErrorGroup(), t.birthdate) {
  637.             if (i.countryConditionalBirthdateCheck) {
  638.                 var v = i.countryDetailMap;
  639.                 t.birthdate.extend({birthdatePartRequired: {onlyIf: function () {
  640.                             return v && 0 != v[t.country()].childAge
  641.                         }, params: !0, message: l.required}, birthdateValid: {onlyIf: function () {
  642.                             return v && 0 != v[t.country()].childAge
  643.                         }, params: !0, message: l.birthdateInvalid}})
  644.             } else
  645.                 t.birthdate.extend({birthdatePartRequired: {params: !0, message: l.required}, birthdateValid: {params: !0, message: l.birthdateInvalid}});
  646.             t.birthdate.isValid() || (t.birthDay(""), t.birthMonth(""), t.birthYear(""))
  647.         }
  648.     }, {validationOrder: null, errors: null, isValid: null, _viewContext: null, _observables: null, initErrorGroup: function () {
  649.             var e = this;
  650.             e.errors = ko.validation.group(e.validationOrder), e.errors.showAllMessages(!1), e.isValid = ko.computed(function () {
  651.                 return e.errors().length > 0 ? !1 : e._viewContext.hasAttemptedSubmit ? !e.getFirstError() : !0
  652.             })
  653.         }, notifyAllSubscribers: function () {
  654.             var e = this;
  655.             t.each(e.validationOrder, function (e, r) {
  656.                 r && r.suppressMessages && r.suppressMessages(!1), r && !r() && r.notifySubscribers && r.notifySubscribers()
  657.             })
  658.         }, isValidating: function () {
  659.             var e = this, r = !1;
  660.             return t.each(e.validationOrder, function (e, t) {
  661.                 return!(r = r || t && t.isValidating())
  662.             }), r
  663.         }, showError: function (e) {
  664.             var r = this;
  665.             return!e.suppressMessages() || r._viewContext.hasAttemptedSubmit ? e.isValid && !e.isValid() || e.isModified && !e.isModified() && e.serverError : e.serverError
  666.         }, getFirstError: function () {
  667.             var e = this, r = null;
  668.             return t.each(e.validationOrder, function (e, t) {
  669.                 return t && t.isValid && !t.isValid() || t && t.isModified && !t.isModified() && t.serverError ? (r = t, !1) : !0
  670.             }), r
  671.         }, placeholderVisible: function (e) {
  672.             return!e
  673.         }})
  674. }(), function () {
  675.     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";
  676.     defineClass("wLive.Account.Controls.TouPrivacyControl", function (e, r, a) {
  677.         var o = this;
  678.         o.$ = t(o), o._$container = e, o._viewContext = r, o._options = a;
  679.         var i = o._pageDialogControl = new n.PageDialogControl(e, r, a);
  680.         o._$pageDialogControl = i.$, r.data || (r.data = {})
  681.     }, {_pageDialogControl: null, _$pageDialogControl: null, _viewContext: null, _options: null, $: null, dispose: function () {
  682.         }, show: function () {
  683.             var e = this;
  684.             e._setupDialogEvents(), e._pageDialogControl && e._pageDialogControl.show()
  685.         }, hide: function () {
  686.             var e = this;
  687.             e._pageDialogControl && e._pageDialogControl.hide(), e._removeDialogEvents()
  688.         }, pageReady: function () {
  689.             if (o) {
  690.                 var e = t(".wpBluePage");
  691.                 o.setProperty("FrameWidth", parseInt(e.innerWidth()).toString()), o.setProperty("FrameHeight", parseInt(e.innerHeight()).toString()), o.ready()
  692.             }
  693.         }, notifyVisible: function () {
  694.             this.pageReady()
  695.         }, _setupDialogEvents: function () {
  696.             var e = this, r = e._$pageDialogControl;
  697.             if (r) {
  698.                 var a = e._pageDialogControl.events;
  699.                 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))
  700.             }
  701.         }, _removeDialogEvents: function () {
  702.             var e = this, r = e._$pageDialogControl;
  703.             if (r) {
  704.                 var t = e._pageDialogControl.events;
  705.                 r.off(t.action), r.off(t.setupEvents), r.off(t.removeEvents), r.off(t.show), r.off(t.hide)
  706.             }
  707.         }, _processDialogActionEvent: function (e, r) {
  708.             this.$.triggerHandler(s, {actionName: r.actionName, control: this}), e && (e.preventDefault(), e.stopPropagation())
  709.         }, _processDialogSetupEvent: function (e, r) {
  710.             this.$.triggerHandler(c, {content: r.content, control: this})
  711.         }, _processDialogRemoveEvent: function (e, r) {
  712.             this.$.triggerHandler(m, {content: r.content, control: this})
  713.         }, _processDialogShowEvent: function (e, r) {
  714.             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;
  715.             p ? (v.html(p), f.text(b)) : u && t.ajax({type: "POST", url: u, data: {command: m}, context: a, success: function (e) {
  716.                     if (e) {
  717.                         var r = String(e).encodeHtml();
  718.                         v.html(r), f.text(b), d[c ? "privacyText" : "touText"] = r
  719.                     }
  720.                 }, error: function () {
  721.                     a.$.triggerHandler(s, {actionName: "cancel", control: a})
  722.                 }}), a.$.triggerHandler(l, {content: n, control: a})
  723.         }, _processDialogHideEvent: function (e, r) {
  724.             this.$.triggerHandler(u, {content: r.content, control: this})
  725.         }, events: {action: s, show: l, hide: u, setupEvents: c, removeEvents: m, dispose: d}}, {})
  726. }(), function () {
  727.     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";
  728.     defineClass("wLive.Account.Controls.SignupControl", function (e, r, a) {
  729.         var o = this;
  730.         o.$ = t(o), o._$container = e, o._viewContext = r, o._options = a;
  731.         var i = o._pageDialogControl = new n.PageDialogControl(e, r, a);
  732.         o._$pageDialogControl = i.$, o._sectionId = a.sectionId, r.data || (r.data = {})
  733.     }, {_pageDialogControl: null, _$pageDialogControl: null, _viewContext: null, _verifyTimeout: null, _options: null, $: null, dispose: function () {
  734.         }, show: function () {
  735.             var e = this;
  736.             e._setupDialogEvents(), e._pageDialogControl && e._pageDialogControl.show()
  737.         }, hide: function () {
  738.             var e = this;
  739.             e._pageDialogControl && e._pageDialogControl.hide(), e._removeDialogEvents()
  740.         }, pageReady: function () {
  741.             if (o) {
  742.                 var e = t("#maincontent");
  743.                 o.setProperty("FrameWidth", parseInt(e.innerWidth()).toString()), o.setProperty("FrameHeight", parseInt(e.innerHeight()).toString()), o.ready()
  744.             }
  745.         }, notifyVisible: function () {
  746.             this.pageReady()
  747.         }, handleActionButton: function () {
  748.             this.$.triggerHandler(m, {actionName: c, control: this})
  749.         }, setEnabled: function (e) {
  750.             Debug.trace("SignupControl.setEnabled(" + e + ")"), this._pageDialogControl.setEnabled(e)
  751.         }, _setupDialogEvents: function () {
  752.             var e = this, r = e._$pageDialogControl;
  753.             if (r) {
  754.                 var a = e._pageDialogControl.events;
  755.                 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))
  756.             }
  757.         }, _removeDialogEvents: function () {
  758.             var e = this, r = e._$pageDialogControl;
  759.             if (r) {
  760.                 var t = e._pageDialogControl.events;
  761.                 r.off(t.action), r.off(t.setupEvents), r.off(t.removeEvents), r.off(t.show), r.off(t.hide)
  762.             }
  763.         }, _processDialogActionEvent: function (e, r) {
  764.             var a = this, n = r.viewModel, o = r.actionName;
  765.             t(document.activeElement).blur(), n && o === c && n.notifyAllSubscribers(), setTimeout(function () {
  766.                 if (o === c || "alternate" === o)
  767.                     if (n) {
  768.                         if (!n.isValidating() && n.isValid())
  769.                             a.setEnabled(!1), a.handleActionButton();
  770.                         else if (!n.isValid()) {
  771.                             var r = n.getFirstError();
  772.                             r.suppressMessages(!1), r.focused(!0)
  773.                         }
  774.                     } else
  775.                         a.setEnabled(!1), a.handleActionButton();
  776.                 else
  777.                     a.$.triggerHandler(m, {actionName: o, control: a});
  778.                 e && (e.preventDefault(), e.stopPropagation())
  779.             }, 0)
  780.         }, _processDialogSetupEvent: function (e, r) {
  781.             var n = this, o = r.content, i = r.viewModel, s = (n._options, i && i.onClickSuggestionsLink);
  782.             t("#tou").length > 0 && o.on("click", "#tou", function () {
  783.                 n.$.triggerHandler(m, {actionName: "tou", control: n})
  784.             }), t("#privacy").length > 0 && o.on("click", "#privacy", function () {
  785.                 n.$.triggerHandler(m, {actionName: "privacy", control: n})
  786.             }), 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 () {
  787.                 n.$.triggerHandler(m, {actionName: "localAccount", control: n})
  788.             }), 13 === $Config.uiflvr && o.mouseup(function (e) {
  789.                 var r = t("#MemberNameSuggestions");
  790.                 r.is(":visible") && !r.is(e.target) && 0 === r.has(e.target).length && r.hide()
  791.             }), i.verification && n._sendOTT(l.channel.sms);
  792.             var u = t("#MemberNamePrefill");
  793.             if (u.length > 0 && u.parent().on("show.bs.dropdown", function () {
  794.                 u.width(u.parents("div .col-md-8").first().width())
  795.             }), 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()) {
  796.                 var c = i.getFirstError();
  797.                 c.suppressMessages(!1), c.focused(!0)
  798.             }
  799.             n.$.triggerHandler(v, {content: o, control: n})
  800.         }, _processDialogRemoveEvent: function (e, r) {
  801.             var a = r.content;
  802.             a.off("click"), t("#hipTemplateContainer", r.content).length > 0 && t("#hipTemplate").append(t("#hipTemplateContainer").children().detach()), this.$.triggerHandler(f, {content: r.content, control: this})
  803.         }, _processDialogShowEvent: function (r, a) {
  804.             this.$.triggerHandler(d, {content: a.content, control: this});
  805.             var n = e.HIPAMFE, o = "undefined" != typeof n && n.done;
  806.             t("#hipTemplateContainer", a.content).length > 0 && o && (n && n.updateTitle && n.updateTitle(), t("#hipTemplateContainer").append(t("#hipTemplate").children().detach()))
  807.         }, _processDialogHideEvent: function (e, r) {
  808.             this.$.triggerHandler(p, {content: r.content, control: this})
  809.         }, _sendOTT: function (r) {
  810.             var n = this, o = n._viewContext.data || {}, s = o.input || {}, c = {uaid: e.$Config.uaid};
  811.             c.action = l.sendOttAction, c.proofId = s.memberNameInput, c.proofCountryIso = s.memberNamePhoneCountry, c.autoVerification = a.viewModelHandle.showAutoVerificationUI(), c.Channel = r;
  812.             var m = new i(null, u.sendOtt, c, function () {
  813.                 t.proxy(a.viewModelHandle.doAutoVerify, n)()
  814.             }, function (e) {
  815.                 t.proxy(a.viewModelHandle.onAutoVerifyFailed, n)(e)
  816.             }, 1e4, this);
  817.             m.start()
  818.         }, events: {action: m, show: d, hide: p, setupEvents: v, removeEvents: f, dispose: b}}, {})
  819. }(), function () {
  820.     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";
  821.     defineSubClass("wLive.Account.Controls.SignupCreateControl", n.SignupControl, function () {
  822.         this._wreply = i.GetQSValue(e.location.href, "wreply"), this._ru = i.GetQSValue(e.location.href, "ru"), this._isSubmitting = !1
  823.     }, {dispose: function () {
  824.             this._base.dispose()
  825.         }, _onCreateSuccess: function (r) {
  826.             var n = this, i = n._viewContext.data || {}, u = i.input || {}, m = i.prefill || {}, d = {};
  827.             d.pageId = c.UserActionPageId, d.userAction = [];
  828.             for (var p in m)
  829.                 m[p] === u[p] ? d.userAction.splice(0, 0, "Action_" + p + "_Used") : d.userAction.splice(0, 0, "Action_" + p + "_NotUsed");
  830.             $ReportEvent.Action(d);
  831.             var v = t("#atlas");
  832.             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 () {
  833.                 if (s.setProperty("IsSignUp", "1"), r)
  834.                     if (c.fss && c.fss.isFamilyAddMemberFlow) {
  835.                         var a = {uaid: e.$Config.uaid};
  836.                         if (a.parentPuid = c.fss.parentPuid || "", a.memberPuid = r.puid || "", a.memberRole = c.fss.memberRole || "", l && c.fss.isWinTsetFlow)
  837.                             l.createStubAccountAsync(r.signinName, !1, function () {
  838.                                 var e = new o(null, f.createAndUpdateFamily, a, t.proxy(n._onAddToFamilySuccess)(r), t.proxy(n._onAddToFamilyFailure));
  839.                                 e.start()
  840.                             }, function (e) {
  841.                                 $ReportEvent.ReportApiCall({apiId: c.fss.errorApiId, success: !1, errorCode: e.number || ""}), $BSI.navigateTo(c.fss.ruOnError)
  842.                             });
  843.                         else {
  844.                             var i = new o(null, f.createAndUpdateFamily, a, t.proxy(n._onAddToFamilySuccess)(r), t.proxy(n._onAddToFamilyFailure));
  845.                             i.start()
  846.                         }
  847.                     } else
  848.                         $BSI.navigateTo(r.redirectUrl)
  849.             }, 1e3)
  850.         }, _onCreateFailure: function (e) {
  851.             {
  852.                 var r = this;
  853.                 e && e.error || {}
  854.             }
  855.             s && s.setWizardButtons(!0, !0, !1), r._viewContext.hasAttemptedSubmit = !0, r._isSubmitting = !1, r._viewContext.data.serverErrors = {}, r._handleCreateError(e.error), r.setEnabled(!0)
  856.         }, _onAddToFamilySuccess: function (e) {
  857.             if (e.childInfo)
  858.                 $Cookie.setCookie(c.fss.childConsentCookieName, e.childInfo, c.fss.childConsentCookieDomain, 0, 0, 1), $BSI.navigateTo(c.fss.childConsentRu);
  859.             else {
  860.                 var r = c.fss.isWinTsetFlow ? decodeURIComponent(c.fss.ruOnSuccess).format(e.signinName) : c.fss.ruOnSuccess;
  861.                 $BSI.navigateTo(r)
  862.             }
  863.         }, _onAddToFamilyFailure: function () {
  864.             $BSI.navigateTo(c.fss.ruOnError)
  865.         }, _createAccount: function (e) {
  866.             var r = this, a = new o(null, f.createAccount, e, t.proxy(r._onCreateSuccess, r), t.proxy(r._onCreateFailure, r));
  867.             s && s.setWizardButtons(!1, !1, !1), 13 === $Config.uiflvr && t("#Spinner").show(), a.start()
  868.         }, _handleCreateError: function (r) {
  869.             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;
  870.             switch (13 === $Config.uiflvr && t("#Spinner").hide(), o) {
  871.                 case v.hipValidationError:
  872.                     if (f && f.done)
  873.                         if (f.observable.hip(""), f.error = 1, f.setError(), s = f.getError(), f.observable.hip.focused(!0), "sms" === f.type) {
  874.                             var g = null;
  875.                             if (r.data)
  876.                                 try {
  877.                                     var u = JSON.parse(r.data);
  878.                                     u && u.fid && (g = u.fid)
  879.                                 } catch (y) {
  880.                                 }
  881.                             f.switchHIP("sms", g)
  882.                         } else
  883.                             f.reloadHIP();
  884.                     break;
  885.                 case v.hipNeeded:
  886.                     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());
  887.                     break;
  888.                 case v.hipSMSNeeded:
  889.                     m.required = !0;
  890.                     var g = null, w = null;
  891.                     if (r.data)
  892.                         try {
  893.                             var u = JSON.parse(r.data);
  894.                             u && u.sid && (w = u.sid), u && u.fid && (g = u.fid)
  895.                         } catch (y) {
  896.                         }
  897.                     if (f && f.done)
  898.                         w && (f.urlId = w), g ? f.switchHIP("sms", g) : f.switchHIP("sms");
  899.                     else {
  900.                         for (var C in n._viewContext.keyToStateMap)
  901.                             if ("hip" === C) {
  902.                                 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());
  903.                                 break
  904.                             }
  905.                         n.$.triggerHandler(h, {actionName: "blocked", control: n})
  906.                     }
  907.                     break;
  908.                 case v.dailyLimitIDsReached:
  909.                     b = !0, n.$.triggerHandler(h, {actionName: "blocked", control: n});
  910.                     break;
  911.                 case v.oneTimeCodeInvalid:
  912.                     s = p.oneTimeCodeInvalid;
  913.                     break;
  914.                 case v.membernameTaken:
  915.                     var N = a.FieldHelper.getMemberNameType(u.input.memberName, c.domains);
  916.                     o === v.membernameTaken && (s = N === c.memberNameType.Phone ? p.membernameTakenPhone : p.memberNameTakenEasi.format(u.input.memberName));
  917.                     break;
  918.                 case v.domainNotAllowed:
  919.                     s = p.domainNotAllowed;
  920.                     break;
  921.                 case v.forbiddenWord:
  922.                     s = p.forbiddenWord;
  923.                     break;
  924.                 case v.passwordIncorrect:
  925.                     break;
  926.                 case v.invalidEmailFormat:
  927.                     s = p.invalidEmailFormat;
  928.                     break;
  929.                 case v.invalidPhoneFormat:
  930.                     s = p.invalidPhoneFormat;
  931.                     break;
  932.                 case v.invalidBirthDate:
  933.                     s = p.invalidBirthDate;
  934.                     break;
  935.                 case v.invalidGender:
  936.                     s = p.invalidGender;
  937.                     break;
  938.                 case v.invalidFirstName:
  939.                     s = p.invalidFirstName;
  940.                     break;
  941.                 case v.invalidLastName:
  942.                     s = p.invalidLastName;
  943.                     break;
  944.                 case v.maximumOTTDailyError:
  945.                     s = p.verificationThrottled;
  946.                     break;
  947.                 case v.bannedPassword:
  948.                     s = p.bannedPassword;
  949.                     break;
  950.                 default:
  951.                     n._handleFatalError(o)
  952.             }
  953.             if (i) {
  954.                 var S = l[i];
  955.                 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})
  956.             } else
  957.                 b || n._handleFatalError(o)
  958.         }, _handleFatalError: function (e) {
  959.             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)
  960.         }, handleActionButton: function () {
  961.             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);
  962.             if (!r._isSubmitting) {
  963.                 var p = i.memberName;
  964.                 if (p || (a.viewModelHandle.memberName && (a.viewModelHandle.memberName.notifySubscribers(), p = i.memberName), p)) {
  965.                     var v = a.FieldHelper.getMemberNameType(p, c.domains);
  966.                     if (v === c.memberNameType.Phone) {
  967.                         if (!i.verification)
  968.                             return void r.$.triggerHandler(h, {actionName: "verification", control: r});
  969.                         s.MemberName = p, s.VerificationCode = i.verification, i.autoVerify && (s.AutoVerify = i.autoVerify)
  970.                     } else
  971.                         s.MemberName = p;
  972.                     if (o && o.memberName)
  973.                         if (v === c.memberNameType.Phone) {
  974.                             var f = o.memberName.Phone;
  975.                             f && t.each(f, function (e, r) {
  976.                                 return r && r.phoneNumber && p && p.indexOf(r.phoneNumber) >= 0 ? (s.PrefillMemberNameUsed = !0, !1) : void 0
  977.                             })
  978.                         } else {
  979.                             var g = o.memberName.EASI;
  980.                             g && t.each(g, function (e, r) {
  981.                                 return r && p && p.indexOf(r) >= 0 ? (s.PrefillMemberNameUsed = !0, !1) : void 0
  982.                             })
  983.                         }
  984.                     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) {
  985.                         var y = t("#" + u);
  986.                         y && y.length > 0 && (s.IsOptOutEmail = !y.prop("checked"))
  987.                     }
  988.                     if (l) {
  989.                         var w = t("#" + l);
  990.                         w && w.length > 0 && (s.IsOptOutTargeting = !w.prop("checked"))
  991.                     }
  992.                     s.LW = c.lw, s.SiteId = n.siteId, s.IsRDM = n.isRdm;
  993.                     try {
  994.                         s.GWPC = window.external.SignString("bver=1")
  995.                     } catch (C) {
  996.                     }
  997.                     s.Signature = n.signature, s.WReply = r._wreply, s.ReturnUrl = r._ru, s.uiflvr = e.$Config.uiflvr, s.uaid = e.$Config.uaid;
  998.                     var N = e.location.hash;
  999.                     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) {
  1000.                         if (d.clientValidation(), "" !== d.getError()) {
  1001.                             if ("sms" === d.type)
  1002.                                 return;
  1003.                             a.viewModelHandle.hip.valueHasMutated()
  1004.                         }
  1005.                         s.HId = t, s.HSol = e, r._createAccount(s)
  1006.                     }, null)) : r.$.triggerHandler(h, {actionName: "hip", control: r}) : m.required ? r.$.triggerHandler(h, {actionName: "hip", control: r}) : (r._isSubmitting = !0, r._createAccount(s))
  1007.                 }
  1008.             }
  1009.         }}, {})
  1010. }(), function () {
  1011.     function e(e, r) {
  1012.         var t = v.options.viewDefs[e];
  1013.         if (t) {
  1014.             var a = t.sectionId, n = t.actions, o = null;
  1015.             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;
  1016.             var i = {action: a + "Action"};
  1017.             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
  1018.         }
  1019.     }
  1020.     function r() {
  1021.         var r = l("#signupTemplates"), t = v.options.states;
  1022.         for (var a in t)
  1023.             e(t[a], r)
  1024.     }
  1025.     function t(e, r) {
  1026.         return r === y && !v.options.viewDefs[y] && d ? (d.finalBack(), null) : "cxhLocalAccount" === r ? (h.loadIdentityProvider(v.localAccountProvider), null) : r
  1027.     }
  1028.     function a(e) {
  1029.         var r = new l.Deferred;
  1030.         if (e) {
  1031.             var t = {phone: e}, a = new m(null, f.getPhoneNumberDetails, t, function (e) {
  1032.                 r.resolve(e)
  1033.             }, function () {
  1034.                 r.reject()
  1035.             });
  1036.             a.start()
  1037.         } else
  1038.             r.reject();
  1039.         return r.promise()
  1040.     }
  1041.     function n(e) {
  1042.         var r = e.data = e.data || {}, t = r.prefill = r.prefill || {}, n = r.input = r.input || {};
  1043.         for (var o in e.keyToStateMap) {
  1044.             var i = b[o].clientPrefillKey;
  1045.             if (!t[o] && i && d) {
  1046.                 var s = d.getProperty(i);
  1047.                 if (s)
  1048.                     if (o === b.phoneNumber.name)
  1049.                         a([s]).done(function (e) {
  1050.                             e && e.phoneDetails && e.phoneDetails.length > 0 && (t[b.phoneCountry.name] = e.phoneDetails[0].country, t[b.phoneNumber.name] = e.phoneDetails[0].phoneNumber)
  1051.                         });
  1052.                     else if (o === b.memberName.name) {
  1053.                         try {
  1054.                             var c = l.parseJSON(s), m = [], p = [], f = [];
  1055.                             l.isArray(c) || (c = [c]), l.each(c, function (e, r) {
  1056.                                 var t = u.FieldHelper.getMemberNameType(r, v.domains), a = v.memberNameType;
  1057.                                 t === a.Phone ? f.push(r) : t === a.EASI ? m.push(r) : t === a.Live && p.push(r)
  1058.                             }), t[o] = {EASI: m, Live: p}, null != f && f.length > 0 && a(f).done(function (e) {
  1059.                                 e && e.phoneDetails && (t[o][v.memberNameType.Phone] = e.phoneDetails)
  1060.                             })
  1061.                         } catch (h) {
  1062.                             s = ""
  1063.                         }
  1064.                         t[o] = s
  1065.                     } else
  1066.                         t[o] = s
  1067.             }
  1068.         }
  1069.         var g = t[b.country.name];
  1070.         g && (t[b.country.name] = g.toUpperCase());
  1071.         for (var o in e.keyToStateMap)
  1072.             o !== b.memberName.name && (n[o] = t[o])
  1073.     }
  1074.     function o(e) {
  1075.         var r = v.options, t = r.viewDefs || {};
  1076.         e.keyToStateMap = {};
  1077.         for (var a in t)
  1078.             if (t.hasOwnProperty(a)) {
  1079.                 var n = t[a];
  1080.                 if (n && n.options && n.options.viewModelOptions && n.options.viewModelOptions.observables) {
  1081.                     var o = n.options.viewModelOptions.observables;
  1082.                     l.each(o, function (r, t) {
  1083.                         e.keyToStateMap[t] = a
  1084.                     })
  1085.                 }
  1086.             }
  1087.     }
  1088.     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";
  1089.     defineNamespace("wLive.Account.Page", {Signup: function () {
  1090.             r();
  1091.             var e = v.viewContext = v.viewContext || {};
  1092.             e.data = e.data || {}, o(e), n(e);
  1093.             var a = new c.FlowController(l("#pageControlHost"), e, v.options);
  1094.             a.setStateChangeFunc(t), a.show(v.startState)
  1095.         }})
  1096. }();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement