Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 10th, 2012  |  syntax: None  |  size: 169.80 KB  |  hits: 10  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. var Server = {};
  2. Server.IsEasi = false;
  3. Server.IsIWW = false;
  4. Server.SMSEnabled = true;
  5. Server.QS = 'wreply\x3dhttp\x3a\x252F\x252Fmail.live.com\x26id\x3d64855\x26mkt\x3den-US\x26lic\x3d1';
  6.  
  7. function ER(ec, sec) {
  8.     $BSI.navigateTo("https://signup.live.com/error.aspx?errcode=" + ec + "&scode=" + sec + "&" + Server.QS);
  9. }
  10. try {
  11.     var g_sCK = "CkTst=GM" + (new Date()).getTime();
  12.     document.cookie = g_sCK;
  13.     if (document.cookie.indexOf(g_sCK) == -1) {
  14.         ER("251", "")
  15.     } else {
  16.         g_sCK += ';expires=Fri, 01-Jan-1960';
  17.         document.cookie = g_sCK
  18.     }
  19. } catch (e) {}
  20. var Key = "e=10001;m=a60f1b66ef4023496137ee371eb24b307642d7351335bc9055c1cd1b6d67ad1b38119579f61276ea82e35e370208567a9667e6cec28df2a3af1a0f64f51405551fe8cd4f92fe103547dd1f75ec64650c4274c9391d394a747b9d0bdc4774ce02ef81c7492ab011734f1adb5f39155ad7d80cb80243024f356be1812f23a043bd";
  21. var randomNum = "5413a2aa82c56c89ace50ebb97819edbeb7f857da2aa52fae6616267874a511cc101e8d3245b2c7c7a943d82aa88f1c9d57a74a9cefa63c9f1fd8b20c2257d21daf3d4eaad82d3535e0081e9dfdadf46afe801e51feeaf63f5535d7dab67591094d167db";
  22. var SKI = "1BEF90811CE78A99D0820E87F3BDF1F96622EB40";
  23.  
  24.  
  25.  
  26. /* Copyright (C) 2012 Microsoft Corporation */
  27. registerNamespace("SignUp");
  28. var FIELD = {}, STATE = {}, FT = {
  29.     MN: "Membername",
  30.     PWD: "Password",
  31.     RPWD: "RetypePassword",
  32.     ALT: "AlternateEmail",
  33.     SQ: "SecurityQuestion",
  34.     SA: "SecretAnswer",
  35.     PHN: "Phone",
  36.     FNAME: "FirstName",
  37.     LNAME: "LastName",
  38.     CTY: "Country",
  39.     ZIP: "ZipCode",
  40.     GNDR: "Gender",
  41.     BD: "BirthDate",
  42.     EOI: "EmailOptIn",
  43.     HIP: "HIP",
  44.     PRF: "ProofValidation"
  45. };
  46. SignUp.AllChanged = false;
  47. SignUp.Fields = [];
  48. SignUp.FieldsOnPage = [];
  49. SignUp.MsgHandler = null;
  50. SignUp.CapsOn = null;
  51. SignUp.IsIWW = Server.IsIWW;
  52. SignUp.IsEASI = Server.IsEasi;
  53. SignUp.SMSEnabled = Server.SMSEnabled;
  54. SignUp.QS = Server.QS;
  55.  
  56. function registerNamespace() {
  57.     var g = arguments.length;
  58.     for (var c = 0; c < g; c++) {
  59.         var a = this,
  60.             e = arguments[c].split("."),
  61.             f = e.length;
  62.         for (var d = 0; d < f; d++) {
  63.             var b = e[d];
  64.             if (!a[b]) a[b] = function () {};
  65.             a = a[b]
  66.         }
  67.     }
  68.     return a
  69. }
  70. function exists(a) {
  71.     return a ? true : a == 0 || a == false || a == ""
  72. }
  73. function isString(a) {
  74.     return typeof a == "string"
  75. }
  76. function isFunction(a) {
  77.     return "function" == typeof a
  78. }
  79. function isArray(a) {
  80.     return a instanceof Array
  81. }
  82. function isDefined(a) {
  83.     return "undefined" != typeof a
  84. }
  85. function valOrEmpty(a) {
  86.     return a ? a : ""
  87. }
  88. function valOrDefault(a, b) {
  89.     return exists(a) ? a : b
  90. }
  91. function strEquals(a, b, c) {
  92.     if (!isString(a) || !isString(b)) return false;
  93.     if (c) return a.toLowerCase() == b.toLowerCase();
  94.     else return a === sString
  95. }
  96. function arrExists(c, d) {
  97.     if (!exists(c)) return false;
  98.     var b = isArray(d) ? d : arguments,
  99.         e = isArray(d) ? 0 : 1;
  100.     for (var a = e; a < b.length; a++) {
  101.         if (!exists(b[a]) || !exists(c[b[a]])) return false;
  102.         c = c[b[a]]
  103.     }
  104.     return true
  105. }
  106. function Derive(e, a) {
  107.     var b = a.prototype;
  108.  
  109.     function d() {}
  110.     d.prototype = e.prototype;
  111.     a.prototype = new d;
  112.     for (var c in b) a.prototype[c] = b[c]
  113. }
  114. function FormatString(b) {
  115.     for (var a = 1; a < arguments.length; a++) b = b.replace(new RegExp("\\{" + (a - 1) + "\\}", "g"), arguments[a]);
  116.     return b
  117. }
  118. function DoTestDelay(a) {
  119.     a();
  120.     return null
  121. }
  122. var DOM = {
  123.     create: function (e, a) {
  124.         var b = null;
  125.         if (exists(a) && (a.name || a.type)) if (strEquals(e, "input", true) && !strEquals(a.type, "password", true)) {
  126.             var f = DOM.create("div");
  127.             f.innerHTML = '<input type="' + (exists(a.type) ? a.type : "") + '" name="' + (exists(a.name) ? a.name : "") + '" />';
  128.             b = f.childNodes[0];
  129.             a.type = null;
  130.             a.name = null
  131.         } else try {
  132.             var c = "<" + e;
  133.             if (a.type) c += ' type="' + a.type + '"';
  134.             if (a.name) c += ' name="' + a.name + '"';
  135.             c += ">";
  136.             b = document.createElement(c);
  137.             a.type = null;
  138.             a.name = null
  139.         } catch (g) {
  140.             b = null
  141.         }
  142.         if (!exists(b)) b = document.createElement(e);
  143.         if (exists(a)) for (var d in a) if (exists(a[d])) b[d] = a[d];
  144.         return b
  145.     },
  146.     text: function (a) {
  147.         return document.createTextNode(a)
  148.     },
  149.     clear: function (a) {
  150.         while (exists(a) && a.hasChildNodes()) a.removeChild(a.firstChild)
  151.     },
  152.     isElement: function (a, b) {
  153.         return exists(a) && a.nodeType == NodeType.Element && (!isString(b) || a.tagName.equals(b, true))
  154.     },
  155.     visible: function (a, b) {
  156.         if (DOM.isElement(a)) {
  157.             a.style.visibility = b[1];
  158.             a.style.display = b[0]
  159.         }
  160.         return a
  161.     }
  162. }, Visibility = {
  163.     Visible: ["block", "visible"],
  164.     Hidden: ["", "hidden"],
  165.     Removed: ["none", ""],
  166.     Default: ["", ""]
  167. }, NodeType = {
  168.     Element: 1,
  169.     Attribute: 2,
  170.     Text: 3,
  171.     CDATA: 4,
  172.     EntityRef: 5,
  173.     Entity: 6,
  174.     ProcInst: 7,
  175.     Comment: 8,
  176.     Doc: 9,
  177.     DocType: 10,
  178.     DocFrag: 11,
  179.     Notation: 12
  180. };
  181. AJAX = {};
  182. AJAX.BannedPwd = {
  183.     NotBanned: 0,
  184.     Banned: 1,
  185.     Error: 2
  186. };
  187. AJAX.State = {
  188.     UNSENT: 0,
  189.     OPEN: 1,
  190.     SENT: 2,
  191.     LOADING: 3,
  192.     DONE: 4
  193. };
  194. AJAX.Status = {
  195.     OK: 200,
  196.     NOT_MODIFIED: 304
  197. };
  198. AJAX.JSONObject = function (text) {
  199.     var objJSON = {};
  200.     if (text) {
  201.         try {
  202.             if (/^[\],:{}\s]*$/.test(text.replace(/\\./g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) objJSON = eval("(" + text + ")")
  203.         } catch (a) {}
  204.         if (!objJSON) objJSON = {}
  205.     }
  206.     return objJSON
  207. };
  208. AJAX.XMLHttpRequest = function () {
  209.     if (isDefined(AJAX.XMLHttpRequest.variantIndex)) return AJAX.XMLHttpRequest.variants[AJAX.XMLHttpRequest.variantIndex]();
  210.     if (!exists(AJAX.XMLHttpRequest.variants)) AJAX.XMLHttpRequest.variants = [function () {
  211.         return new XMLHttpRequest
  212.     }, function () {
  213.         return new ActiveXObject("Msxml2.XMLHTTP")
  214.     }, function () {
  215.         return new ActiveXObject("Msxml3.XMLHTTP")
  216.     }, function () {
  217.         return new ActiveXObject("Microsoft.XMLHTTP")
  218.     }];
  219.     var b = null;
  220.     for (var a = 0; a < AJAX.XMLHttpRequest.variants.length; a++) {
  221.         try {
  222.             b = AJAX.XMLHttpRequest.variants[a]()
  223.         } catch (c) {
  224.             continue
  225.         }
  226.         AJAX.XMLHttpRequest.variantIndex = a;
  227.         break
  228.     }
  229.     return b
  230. };
  231. AJAX.AJAXHandler = function (f, g, c, i, e, b, a, h, d) {
  232.     this.m_objXMLHttp = null;
  233.     this.m_urlTarget = valOrEmpty(f);
  234.     this.m_strReqType = valOrEmpty(g);
  235.     this.m_fAsync = c != null ? c : true;
  236.     this.m_strUser = valOrEmpty(i);
  237.     this.m_strPwd = valOrEmpty(e);
  238.     this.m_strHeaderName = b != null ? b : "Content-type";
  239.     this.m_strHeaderValue = a != null ? a : "application/x-www-form-urlencoded";
  240.     this.m_iTimeout = valOrDefault(h, 1e4);
  241.     this.m_iMaxRetries = valOrDefault(d, 0);
  242.     this.m_fRetry = false;
  243.     this.m_iRetries = 0;
  244.     this.m_objTimeout = null;
  245.     this.m_objTestDelay = null;
  246.     this.initialize();
  247.     this.m_strRequest = "";
  248.     this.m_strRespose = "";
  249.     this.m_fnHandleSuccess = null;
  250.     this.m_fnHandleFailure = null;
  251.     this.m_fnTimeout = null;
  252.     this.m_arrHTTPSuccess = [];
  253.     this.m_arrHTTPSuccess[AJAX.Status.OK] = true;
  254.     this.m_arrHTTPSuccess[AJAX.Status.NOT_MODIFIED] = true
  255. };
  256. AJAX.AJAXHandler.prototype = {
  257.     initialize: function (a) {
  258.         if (this.m_objXMLHttp == null) this.m_objXMLHttp = new AJAX.XMLHttpRequest;
  259.         try {
  260.             if (this.m_strUser.length > 0) this.m_objXMLHttp.open(this.m_strReqType, this.m_urlTarget, this.m_fAsync, this.m_strUser, this.m_strPwd);
  261.             else this.m_objXMLHttp.open(this.m_strReqType, this.m_urlTarget, this.m_fAsync);
  262.             this.m_strResponse = "";
  263.             this.m_objXMLHttp.setRequestHeader(this.m_strHeaderName, this.m_strHeaderValue)
  264.         } catch (b) {
  265.             if (a) a(this)
  266.         }
  267.     },
  268.     sendRequest: function (b, d, a) {
  269.         var c = this;
  270.         if (this.m_objXMLHttp == null || this.getState() != AJAX.State.OPEN) {
  271.             this.initialize(a);
  272.             this.m_strRequest = b
  273.         }
  274.         if (this.getState() == AJAX.State.DONE) return false;
  275.         this.m_iRetries = 0;
  276.         this.m_objTimeout = null;
  277.         this.m_objTestDelay = null;
  278.         this.enableRetry();
  279.         this.m_fnHandleSuccess = d;
  280.         this.m_fnHandleFailure = a;
  281.         this.m_strRequest = b;
  282.         this.m_objXMLHttp.onreadystatechange = function () {
  283.             c.evt_onreadystatechange()
  284.         };
  285.         this.m_objTimeout = setTimeout(function () {
  286.             c.evt_ontimeout()
  287.         }, this.m_iTimeout);
  288.         this.m_objXMLHttp.send(this.m_strRequest)
  289.     },
  290.     clearTimeout: function () {
  291.         if (this.m_objTimeout) {
  292.             clearTimeout(this.m_objTimeout);
  293.             this.m_objTimeout = null
  294.         }
  295.         if (this.m_objTestDelay) {
  296.             clearTimeout(this.m_objTestDelay);
  297.             this.m_objTestDelay = null
  298.         }
  299.     },
  300.     shouldRetry: function () {
  301.         return this.m_fRetry == true && this.m_iRetries < this.m_iMaxRetries
  302.     },
  303.     evt_onreadystatechange: function () {
  304.         try {
  305.             if (!this.isComplete()) return;
  306.             var a = this;
  307.             this.m_objTestDelay = DoTestDelay(function () {
  308.                 a.handleRequestComplete(false)
  309.             })
  310.         } catch (b) {
  311.             this.handleRequestComplete(true)
  312.         }
  313.     },
  314.     handleRequestComplete: function (b) {
  315.         var a = false,
  316.             c = this;
  317.         if (b) a = false;
  318.         else {
  319.             this.clearTimeout();
  320.             this.m_strResponse = this.m_objXMLHttp.responseText;
  321.             a = this.isSuccess()
  322.         }
  323.         if (a) {
  324.             if (isFunction(this.m_fnHandleSuccess)) this.m_fnHandleSuccess(this)
  325.         } else if (this.shouldRetry()) {
  326.             this.m_iRetries++;
  327.             this.initialize(this.m_fnHandleFailure);
  328.             this.m_objTimeout = setTimeout(function () {
  329.                 c.evt_ontimeout()
  330.             }, this.m_iTimeout);
  331.             this.m_objXMLHttp.send(this.m_strRequest)
  332.         } else if (isFunction(this.m_fnHandleFailure)) this.m_fnHandleFailure(this)
  333.     },
  334.     evt_ontimeout: function () {
  335.         var a = this;
  336.         this.clearTimeout();
  337.         this.cancel();
  338.         if (this.shouldRetry()) {
  339.             this.m_iRetries++;
  340.             this.m_objXMLHttp.onreadystatechange = function () {
  341.                 a.evt_onreadystatechange()
  342.             };
  343.             this.initialize(this.m_fnHandleFailure);
  344.             this.m_objTimeout = setTimeout(function () {
  345.                 a.evt_ontimeout()
  346.             }, this.m_iTimeout);
  347.             this.m_objXMLHttp.send(this.m_strRequest)
  348.         } else if (isFunction(this.m_fnHandleFailure)) this.m_fnHandleFailure(this)
  349.     },
  350.     cancel: function () {
  351.         if (this.m_objXMLHttp) {
  352.             this.m_objXMLHttp.onreadystatechange = null;
  353.             this.m_objXMLHttp.abort()
  354.         }
  355.         this.clearTimeout()
  356.     },
  357.     getState: function () {
  358.         if (this.m_objXMLHttp) return this.m_objXMLHttp.readyState;
  359.         return AJAX.State.UNSENT
  360.     },
  361.     getStatus: function () {
  362.         if (this.m_objXMLHttp) return this.m_objXMLHttp.status;
  363.         return 0
  364.     },
  365.     getResponseText: function () {
  366.         return this.m_strResponse
  367.     },
  368.     getResponseJSON: function () {
  369.         return AJAX.JSONObject(this.getResponseText())
  370.     },
  371.     isComplete: function () {
  372.         return this.m_objXMLHttp && this.getState() == AJAX.State.DONE
  373.     },
  374.     isSuccess: function () {
  375.         return this.isComplete() && this.m_arrHTTPSuccess[this.getStatus()]
  376.     },
  377.     enableRetry: function () {
  378.         this.m_fRetry = true
  379.     },
  380.     disableRetry: function () {
  381.         this.m_fRetry = false
  382.     }
  383. };
  384. AJAX.BannedPwdHandler = function (b, d, c, a) {
  385.     AJAX.AJAXHandler.apply(this, [b, "POST", d, null, null, null, null, c, a]);
  386.     this._isSuccess = AJAX.AJAXHandler.prototype.isSuccess
  387. };
  388. AJAX.BannedPwdHandler.prototype = {
  389.     isSuccess: function () {
  390.         if (this._isSuccess()) return this.getResponseJSON().Result != AJAX.BannedPwd.Error;
  391.         return false
  392.     }
  393. };
  394. Derive(AJAX.AJAXHandler, AJAX.BannedPwdHandler);
  395. var EVENT = {
  396.     NamePrefix: "on",
  397.     Name: {
  398.         OnAbort: "abort",
  399.         OnBlur: "blur",
  400.         OnChange: "change",
  401.         OnClick: "click",
  402.         OnError: "error",
  403.         OnFocus: "focus",
  404.         OnKeyPress: "keypress",
  405.         OnLoad: "load",
  406.         OnMouseOut: "mouseout",
  407.         OnMouseOver: "mouseover",
  408.         OnMouseMove: "mousemove",
  409.         OnSubmit: "submit",
  410.         OnResize: "resize",
  411.         OnKeyDown: "keydown",
  412.         OnReadyStateChange: "readystatechange",
  413.         OnKeyDown: "keydown",
  414.         OnKeyUp: "keyup"
  415.     },
  416.     Key: {
  417.         Enter: 13,
  418.         Caps: 20,
  419.         Escape: 27,
  420.         Spacebar: 32,
  421.         ArrowUp: 38,
  422.         ArrowDown: 40,
  423.         Delete: 46,
  424.         ArrowUp_alt: 63232,
  425.         ArrowDown_alt: 63233
  426.     },
  427.     "get": function (a) {
  428.         return a || window.event
  429.     },
  430.     getTarget: function (b) {
  431.         var a = EVENT.get(b);
  432.         return a.srcElement || a.target
  433.     },
  434.     add: function add(a, d, e, c) {
  435.         var b = e;
  436.         if (exists(c)) b = function (a) {
  437.             return e.call(c, a)
  438.         };
  439.         var f = EVENT.NamePrefix + d;
  440.         if (a.addEventListener) a.addEventListener(d, b, false);
  441.         else if (a.attachEvent) a.attachEvent(f, b)
  442.     },
  443.     remove: function remove(b, a, c) {
  444.         var d = EVENT.NamePrefix + a;
  445.         if (b.removeEventListener) b.removeEventListener(a, c, false);
  446.         else b.detachEvent(d + a, c)
  447.     },
  448.     end: function end(a) {
  449.         a = EVENT.get(a);
  450.         if (isFunction(a.preventDefault)) a.preventDefault();
  451.         a.returnValue = false;
  452.         return false
  453.     },
  454.     getKey: function getKey(a) {
  455.         return a.which || a.keyCode
  456.     },
  457.     isLowerCaseKey: function isLowerCaseKey(b) {
  458.         var a = EVENT.getKey(b);
  459.         return a >= 97 && a <= 122
  460.     },
  461.     isUpperCaseKey: function isUpperCaseKey(b) {
  462.         var a = EVENT.getKey(b);
  463.         return a >= 65 && a <= 90
  464.     },
  465.     isShiftDown: function isShiftDown(a) {
  466.         return a.shiftKey
  467.     },
  468.     isNumberKey: function (a) {
  469.         if (EVENT.isMetaKey(a)) return false;
  470.         if (exists(a.char) && a.char != "" && a.char >= "0" && a.char <= "9") return true;
  471.         var b = EVENT.getKey(a);
  472.         if (!EVENT.isShiftDown(a) && b > 47 && b < 58 || b > 95 && b < 106) return true;
  473.         return false
  474.     },
  475.     isMetaKey: function (a) {
  476.         return a.altKey || a.ctrlKey || a.metaKey
  477.     },
  478.     isCharKey: function (b) {
  479.         if (EVENT.isMetaKey(b)) return false;
  480.         var a = EVENT.getKey(b);
  481.         if (a > 47 && a < 91 || a > 95 && a < 112 || a > 185) return true;
  482.         return false
  483.     }
  484. }, MSG = {};
  485. MSG.Type = {
  486.     Error: 1,
  487.     Help: 2,
  488.     Warning: 3,
  489.     Progress: 4,
  490.     Success: 5,
  491.     Failure: 6
  492. };
  493. MSG.Part = {
  494.     Holder: 1,
  495.     Message: 2,
  496.     Intro: 4,
  497.     Errors: 8,
  498.     All: 255
  499. };
  500. MSG.TypeName = function (b) {
  501.     for (var a in MSG.Type) if (MSG.Type[a] == b) return a;
  502.     return ""
  503. };
  504. MSG.Base = function (c, d, b, a) {
  505.     this.type = c;
  506.     this.id = valOrDefault(b, "");
  507.     this.messageId = valOrDefault(a, "");
  508.     this.data = d
  509. };
  510. MSG.Base.prototype = {
  511.     getElement: function () {
  512.         return GEId(this.id)
  513.     },
  514.     getMessageElement: function () {
  515.         return GEId(this.messageId)
  516.     },
  517.     show: function (b) {
  518.         b = b || MSG.Part.All;
  519.         if (b & MSG.Part.Message) {
  520.             var a = this.getMessageElement();
  521.             if (DOM.isElement(a) && this.hasData() && exists(this.data.text)) {
  522.                 DOM.clear(a);
  523.                 this.insertText(a)
  524.             }
  525.         } else {
  526.             var a = this.getMessageElement();
  527.             if (DOM.isElement(a)) DOM.clear(a)
  528.         }
  529.         if (b & MSG.Part.Holder) {
  530.             var c = this.getElement();
  531.             if (DOM.isElement(c)) this.showHolder(c)
  532.         }
  533.     },
  534.     hide: function (a) {
  535.         a = a || MSG.Part.All;
  536.         if (a & MSG.Part.Holder) {
  537.             var b = this.getElement();
  538.             if (DOM.isElement(b)) this.hideHolder(b)
  539.         } else if (a & MSG.Part.Message) {
  540.             var b = this.getMessageElement();
  541.             if (DOM.isElement(b)) DOM.clear(b)
  542.         }
  543.     },
  544.     showHolder: function (a) {
  545.         DOM.visible(a, Visibility.Default)
  546.     },
  547.     hideHolder: function (a) {
  548.         DOM.visible(a, Visibility.Removed)
  549.     },
  550.     insertText: function (a) {
  551.         if (DOM.isElement(this.data.text)) a.appendChild(this.data.text);
  552.         else if (isString(this.data.text)) a.innerHTML = this.data.text
  553.     },
  554.     clear: function () {
  555.         this.clearData();
  556.         this.hide()
  557.     },
  558.     setData: function (a) {
  559.         this.data = a
  560.     },
  561.     hasData: function () {
  562.         return exists(this.data)
  563.     },
  564.     clearData: function () {
  565.         this.data = null
  566.     }
  567. };
  568. MSG.Info = function (b, a) {
  569.     this.text = valOrDefault(b, null);
  570.     this.fields = valOrDefault(a, [])
  571. };
  572. MSG.Info.prototype = {};
  573. MSG.Info.Error = function (a, f, e, c, b, d) {
  574.     MSG.Info.call(this, f, e);
  575.     this.error = a;
  576.     this.isFatal = c;
  577.     this.errCode = b;
  578.     this.errUrl = d
  579. };
  580. Derive(MSG.Info, MSG.Info.Error);
  581. MSG.Base.Handler = function () {
  582.     this.messages = [];
  583.     this.messages[MSG.Type.Error] = [];
  584.     this.messages[MSG.Type.Help] = [];
  585.     this.messages[MSG.Type.Warning] = [];
  586.     this.messages[MSG.Type.Progress] = [];
  587.     this.messages[MSG.Type.Success] = [];
  588.     this.messages[MSG.Type.Failure] = [];
  589.     this.currMessage = []
  590. };
  591. MSG.Base.Handler.prototype = {
  592.     setMessage: function (a, f, c, b) {
  593.         var e = this.addMessage(a, f, c, b),
  594.             d = "show" + MSG.TypeName(a) + "Message";
  595.         this[d](e, true)
  596.     },
  597.     clearMessage: function (b, d) {
  598.         var a = this.removeMessage(b, d);
  599.         if (!a) return;
  600.         var c = "hide" + MSG.TypeName(b) + "Message";
  601.         this[c](a, true)
  602.     },
  603.     clearMessages: function (c) {
  604.         var b = [];
  605.         for (var a = 0; a < this.messages[c].length; a++) b.push(this.messages[c][a].id);
  606.         for (var a = 0; a < b.length; a++) this.clearMessage(c, b[a])
  607.     },
  608.     showMessage: function (b, d) {
  609.         var a = this.findMessage(b, d);
  610.         if (!a) return;
  611.         var c = "show" + MSG.TypeName(b) + "Message";
  612.         this[c](a, false)
  613.     },
  614.     hideMessage: function (b, d) {
  615.         var a = this.findMessage(b, d);
  616.         if (!a) return;
  617.         var c = "hide" + MSG.TypeName(b) + "Message";
  618.         this[c](a, false)
  619.     },
  620.     findMessage: function (b, d) {
  621.         var c = null;
  622.         for (var a = 0; a < this.messages[b].length; a++) if (this.messages[b][a].id == d) {
  623.             c = this.messages[b][a];
  624.             break
  625.         }
  626.         return c
  627.     },
  628.     addMessage: function (b, e, g, f) {
  629.         var a = {
  630.             id: e,
  631.             fShowCallback: g,
  632.             fHideCallback: f
  633.         };
  634.         a.priority = this.getMessagePriority(a);
  635.         var d = -1;
  636.         for (var c = 0; c < this.messages[b].length; c++) if (this.messages[b][c].id == e) {
  637.             d = c;
  638.             break
  639.         }
  640.         if (d != -1) this.messages[b][d] = a;
  641.         else this.messages[b].push(a);
  642.         this.sort(b);
  643.         return a
  644.     },
  645.     removeMessage: function (b, d) {
  646.         var c = null;
  647.         for (var a = 0; a < this.messages[b].length; a++) if (this.messages[b][a].id == d) {
  648.             c = this.messages[b].splice(a, 1)[0];
  649.             break
  650.         }
  651.         return c
  652.     },
  653.     getMessagePriority: function () {
  654.         return -1
  655.     },
  656.     sort: function (a) {
  657.         var b = function (a, b) {
  658.             return a.priority - b.priority
  659.         };
  660.         this.messages[a].sort(b)
  661.     },
  662.     showErrorMessage: function (a) {
  663.         a.fShowCallback(MSG.Type.Error, MSG.Part.All)
  664.     },
  665.     hideErrorMessage: function (a) {
  666.         a.fHideCallback(MSG.Type.Error, MSG.Part.All)
  667.     },
  668.     showHelpMessage: function (a) {
  669.         a.fShowCallback(MSG.Type.Help, MSG.Part.All)
  670.     },
  671.     hideHelpMessage: function (a) {
  672.         a.fHideCallback(MSG.Type.Help, MSG.Part.All)
  673.     },
  674.     showWarningMessage: function (a) {
  675.         a.fShowCallback(MSG.Type.Warning, MSG.Part.All)
  676.     },
  677.     hideWarningMessage: function (a) {
  678.         a.fHideCallback(MSG.Type.Warning, MSG.Part.All)
  679.     },
  680.     showProgressMessage: function (a) {
  681.         a.fShowCallback(MSG.Type.Progress, MSG.Part.All)
  682.     },
  683.     hideProgressMessage: function (a) {
  684.         a.fHideCallback(MSG.Type.Progress, MSG.Part.All)
  685.     },
  686.     showSuccessMessage: function (a) {
  687.         a.fShowCallback(MSG.Type.Success, MSG.Part.All)
  688.     },
  689.     hideSuccessMessage: function (a) {
  690.         a.fHideCallback(MSG.Type.Success, MSG.Part.All)
  691.     },
  692.     showFailureMessage: function (a) {
  693.         a.fShowCallback(MSG.Type.Failure, MSG.Part.All)
  694.     },
  695.     hideFailureMessage: function (a) {
  696.         a.fHideCallback(MSG.Type.Failure, MSG.Part.All)
  697.     }
  698. };
  699. PhoneControl = function (h, g, d, e, f, a, c, b) {
  700.     this.countryDropDownId = d;
  701.     this.phoneHolderId = e;
  702.     this.phoneInputId = f;
  703.     this.phoneInputCSS = a ? a : "";
  704.     this.phoneHintId = c;
  705.     this.phoneHintCSS = c && b ? b : "";
  706.     this.previousPhoneValue = "";
  707.     this.selectedCountry = "US";
  708.     this.phoneFormatMap = [];
  709.     this.countryInfo = g;
  710.     this.updateContent();
  711.     this.initializeCountryDropDown(h)
  712. };
  713. PhoneControl.prototype = {
  714.     getPhoneNumber: function () {
  715.         var a = this.getPhoneInput().value;
  716.         if (!a) return a;
  717.         if (this.selectedCountry != "JP") a = a.replace(/[^0-9]/g, "");
  718.         return a
  719.     },
  720.     getCountryISO: function () {
  721.         var a = this.getCountryDropDown();
  722.         return a.options[a.selectedIndex].value.toUpperCase()
  723.     },
  724.     isMobileEmail: function () {
  725.         return this.getCountryISO() == "JP"
  726.     },
  727.     getFullPhoneNumber: function () {
  728.         var a = this.getPhoneNumber();
  729.         if (this.selectedCountry == "JP" || !a) return a;
  730.         var b = this.countryInfo[this.selectedCountry].PhoneCountryCode;
  731.         if (!b) return a;
  732.         return b + a
  733.     },
  734.     validate: function (b, a) {
  735.         if (!a) return true;
  736.         if (exists(this.countryInfo[b])) {
  737.             var c = new RegExp(this.countryInfo[b].PhoneRegEx, "i");
  738.             return a.match(c)
  739.         }
  740.         return true
  741.     },
  742.     updateContent: function () {
  743.         DOM.clear(this.getInputHolder());
  744.         var c = this.countryInfo[this.selectedCountry].InputType,
  745.             a = DOM.create("input", {
  746.                 id: this.phoneInputId,
  747.                 name: this.phoneInputId,
  748.                 type: c,
  749.                 maxLength: "60",
  750.                 className: this.phoneInputCSS
  751.             });
  752.         this.getInputHolder().appendChild(a);
  753.         this.initializePhoneInput();
  754.         if (this.supportPlaceHolderForHint()) a.placeholder = this.getHintText();
  755.         else {
  756.             var b = DOM.create("div", {
  757.                 id: this.phoneHintId,
  758.                 className: this.phoneHintCSS
  759.             });
  760.             b.innerHTML = this.getHintText();
  761.             this.getInputHolder().appendChild(b);
  762.             this.initializePhoneHint()
  763.         }
  764.     },
  765.     getCountryDropDown: function () {
  766.         return GEId(this.countryDropDownId)
  767.     },
  768.     getInputHolder: function () {
  769.         return GEId(this.phoneHolderId)
  770.     },
  771.     getPhoneInput: function () {
  772.         return GEId(this.phoneInputId)
  773.     },
  774.     supportPlaceHolderForHint: function () {
  775.         return !this.phoneHintId
  776.     },
  777.     getPhoneHint: function () {
  778.         if (!this.phoneHintId) return null;
  779.         return GEId(this.phoneHintId)
  780.     },
  781.     initializeCountryDropDown: function (b) {
  782.         var a = this.getCountryDropDown();
  783.         for (var c in b.List) {
  784.             var d = strEquals(c, b.Default, true),
  785.                 e = DOM.create("option", {
  786.                     value: c,
  787.                     selected: d,
  788.                     defaultSelected: d
  789.                 });
  790.             e.innerHTML = b.List[c];
  791.             a.appendChild(e)
  792.         }
  793.         this.setSelectedCountry(a);
  794.         EVENT.add(a, EVENT.Name.OnChange, this.evt_country_onchange, this)
  795.     },
  796.     evt_country_onchange: function () {
  797.         this.setSelectedCountry()
  798.     },
  799.     setSelectedCountry: function () {
  800.         var a = this.getCountryDropDown();
  801.         this.selectedCountry = a.options[a.selectedIndex].value.toUpperCase();
  802.         this.getPhoneInput().value = "";
  803.         this.updateContent()
  804.     },
  805.     initializePhoneHint: function () {
  806.         if (!this.supportPlaceHolderForHint()) EVENT.add(this.getPhoneHint(), EVENT.Name.OnClick, this.evt_hint_onclick, this)
  807.     },
  808.     evt_hint_onclick: function () {
  809.         this.getPhoneInput().focus()
  810.     },
  811.     getHintText: function () {
  812.         var a = this.countryInfo[this.selectedCountry].PhoneNumberExample,
  813.             b = a ? a : "";
  814.         return b
  815.     },
  816.     initializePhoneInput: function () {
  817.         var a = this.getPhoneInput();
  818.         EVENT.add(a, EVENT.Name.OnKeyDown, this.evt_onkeydown, this);
  819.         EVENT.add(a, EVENT.Name.OnFocus, this.evt_onfocus, this);
  820.         EVENT.add(a, EVENT.Name.OnBlur, this.evt_onblur, this);
  821.         EVENT.add(a, EVENT.Name.OnKeyUp, this.evt_onkeyup, this)
  822.     },
  823.     evt_onkeydown: function (a) {
  824.         return this.validateKey(a)
  825.     },
  826.     evt_onfocus: function () {
  827.         this.updatePhoneFormatMap();
  828.         if (!this.supportPlaceHolderForHint()) DOM.visible(this.getPhoneHint(), Visibility.Removed);
  829.         EVENT.add(this.getPhoneInput(), EVENT.Name.OnMouseMove, this.evt_onmousemove, this)
  830.     },
  831.     evt_onblur: function () {
  832.         this.formatPhoneNumber();
  833.         if (!this.getPhoneNumber()) if (this.supportPlaceHolderForHint()) this.getPhoneInput().placeholder = this.getHintText();
  834.         else DOM.visible(this.getPhoneHint(), Visibility.Default);
  835.         EVENT.remove(this.getPhoneInput(), EVENT.Name.OnMouseMove, this.evt_onmousemove)
  836.     },
  837.     evt_onkeyup: function () {
  838.         this.formatPhoneNumber()
  839.     },
  840.     evt_onmousemove: function () {
  841.         this.formatPhoneNumber()
  842.     },
  843.     validateKey: function (a) {
  844.         if (this.selectedCountry != "JP") {
  845.             if (EVENT.isNumberKey(a) || !EVENT.isCharKey(a)) return true;
  846.             EVENT.end(a);
  847.             return false
  848.         }
  849.         return true
  850.     },
  851.     updatePhoneFormatMap: function () {
  852.         this.phoneFormatMap = null;
  853.         var d = this.countryInfo[this.selectedCountry].PhoneFormat;
  854.         if (!d) return;
  855.         var a = d.split(",");
  856.         if (a.length > 0) {
  857.             this.phoneFormatMap = [];
  858.             for (var c = 0; c < a.length; c++) {
  859.                 var e = a[c].split("="),
  860.                     b = e[0],
  861.                     f = parseInt(e[1]);
  862.                 if (b == "") b = " ";
  863.                 this.phoneFormatMap[f] = b
  864.             }
  865.         }
  866.     },
  867.     formatPhoneNumber: function () {
  868.         var c = this.getPhoneNumber(),
  869.             d = this.getPhoneInput().value;
  870.         if (!this.phoneFormatMap || this.previousPhoneValue == d) return;
  871.         var b = "";
  872.         for (var a = 0; a < c.length; a++) {
  873.             if (arrExists(this.phoneFormatMap, a)) b += this.phoneFormatMap[a];
  874.             b += c.charAt(a)
  875.         }
  876.         this.getPhoneInput().value = b;
  877.         this.previousPhoneValue = b
  878.     }
  879. };
  880. MSG.SignUp = {};
  881. MSG.SignUp.Info = {};
  882. MSG.SignUp.Info.Help = function (a, b) {
  883.     var c = GetString("live.accounts.strings." + a);
  884.     MSG.Info.apply(this, [c, b])
  885. };
  886. MSG.SignUp.Info.Help.prototype = {};
  887. Derive(MSG.Info, MSG.SignUp.Info.Help);
  888. MSG.SignUp.Help = function (b, a) {
  889.     MSG.Base.apply(this, [MSG.Type.Help, null, b, a])
  890. };
  891. MSG.SignUp.Help.prototype = {
  892.     showHolder: function (a) {
  893.         DOM.visible(a, Visibility.Default);
  894.         a.parentNode.style.zIndex = 10
  895.     },
  896.     hideHolder: function (a) {
  897.         DOM.visible(a, Visibility.Removed);
  898.         a.parentNode.style.zIndex = 1;
  899.         a.parentNode.style.height = "auto"
  900.     },
  901.     insertText: function (a) {
  902.         if (exists(this.data.text)) a.innerHTML = "<p>" + this.data.text + "</p>"
  903.     }
  904. };
  905. Derive(MSG.Base, MSG.SignUp.Help);
  906. MSG.SignUp.LiveMNHelp = function (b, a) {
  907.     MSG.SignUp.Help.apply(this, [b, a])
  908. };
  909. MSG.SignUp.LiveMNHelp.prototype = {
  910.     hideHolder: function (a) {
  911.         DOM.visible(a, Visibility.Removed);
  912.         a.parentNode.style.zIndex = 200;
  913.         a.parentNode.style.height = "auto"
  914.     }
  915. };
  916. Derive(MSG.SignUp.Help, MSG.SignUp.LiveMNHelp);
  917. MSG.SignUp.CapsWarning = function (a) {
  918.     MSG.Base.apply(this, [MSG.Type.Warning, null, a, null])
  919. };
  920. MSG.SignUp.CapsWarning.prototype = {
  921.     hideHolder: function (a) {
  922.         DOM.visible(a, Visibility.Hidden)
  923.     }
  924. };
  925. Derive(MSG.Base, MSG.SignUp.CapsWarning);
  926. MSG.SignUp.Progress = function (a) {
  927.     MSG.Base.apply(this, [MSG.Type.Progress, null, a, null])
  928. };
  929. MSG.SignUp.Progress.prototype = {};
  930. Derive(MSG.Base, MSG.SignUp.Progress);
  931. MSG.SignUp.Success = function (a) {
  932.     MSG.Base.apply(this, [MSG.Type.Success, null, a, a])
  933. };
  934. MSG.SignUp.Success.prototype = {};
  935. Derive(MSG.Base, MSG.SignUp.Success);
  936. MSG.SignUp.Failure = function (a) {
  937.     MSG.Base.apply(this, [MSG.Type.Failure, null, a, a])
  938. };
  939. MSG.SignUp.Failure.prototype = {};
  940. Derive(MSG.Base, MSG.SignUp.Failure);
  941. MSG.SignUp.Error = function (b, a) {
  942.     MSG.Base.apply(this, [MSG.Type.Error, null, b, a])
  943. };
  944. MSG.SignUp.Error.prototype = {
  945.     setData: function (a) {
  946.         this.data = a;
  947.         if (a.isFatal) {
  948.             ER(null, null, a.errCode, a.text, a.errUrl);
  949.             this.data.text = null
  950.         }
  951.     }
  952. };
  953. Derive(MSG.Base, MSG.SignUp.Error);
  954. FIELD.VState = {
  955.     Pending: 0,
  956.     Running: 1,
  957.     Done: 2,
  958.     Error: 3
  959. };
  960. FIELD.DState = {
  961.     None: 0,
  962.     User: 1,
  963.     Auto: 2
  964. };
  965. FIELD.Base = function (b, a, c) {
  966.     this.m_eVState = FIELD.VState.Pending;
  967.     this.m_eDState = FIELD.DState.None;
  968.     this.m_elementId = b;
  969.     this.m_helpStringId = a;
  970.     this.m_holderId = c;
  971.     this.m_arrMessages = [];
  972.     this.m_bDisplayed = true
  973. };
  974. FIELD.Base.prototype = {
  975.     getElement: function () {
  976.         return GEId(this.m_elementId)
  977.     },
  978.     getHolder: function () {
  979.         return GEId(this.m_holderId)
  980.     },
  981.     getErrHolder: function () {
  982.         if (exists(this.m_arrMessages[MSG.Type.Error])) return this.m_arrMessages[MSG.Type.Error].getElement();
  983.         return null
  984.     },
  985.     getValue: function () {
  986.         var a = this.getElement();
  987.         if (exists(a)) return a.value;
  988.         return null
  989.     },
  990.     setValue: function (b) {
  991.         var a = this.getElement();
  992.         if (exists(a)) {
  993.             a.value = b;
  994.             SignUp.SetChanged(a.id);
  995.             this.onValueChangeAuto()
  996.         }
  997.     },
  998.     clearValue: function () {
  999.         var a = this.getElement();
  1000.         if (DOM.isElement(a)) {
  1001.             a.value = "";
  1002.             if (a.placeholder) a.placeholder = a.placeholder;
  1003.             this.onValueChangeAuto()
  1004.         }
  1005.     },
  1006.     hasValue: function () {
  1007.         return this.isDisplayed() && exists(this.getValue()) && this.getValue() != ""
  1008.     },
  1009.     getVState: function () {
  1010.         return this.m_eVState
  1011.     },
  1012.     setVState: function (a) {
  1013.         this.m_eVState = a
  1014.     },
  1015.     getDState: function () {
  1016.         return this.m_eDState
  1017.     },
  1018.     onValueChangeUser: function () {
  1019.         this.m_eDState = FIELD.DState.User
  1020.     },
  1021.     onValueChangeAuto: function () {
  1022.         this.m_eDState = FIELD.DState.Auto
  1023.     },
  1024.     getErrInfo: function (a) {
  1025.         var c = new MSG.Info.Error;
  1026.         if (a instanceof SignUp.Error) {
  1027.             var b = [GetString("live.accounts.strings." + a.stringid)];
  1028.             b = b.concat(a.formatarray);
  1029.             c = new MSG.Info.Error(a.stringid, FormatString.apply(null, b), [this], a.isFatal, a.errCode, a.errUrl)
  1030.         }
  1031.         return c
  1032.     },
  1033.     disable: function () {
  1034.         this.getElement().disabled = true
  1035.     },
  1036.     enable: function () {
  1037.         this.getElement().disabled = false
  1038.     },
  1039.     remove: function () {
  1040.         this.clearMessage(MSG.Type.Error);
  1041.         DOM.visible(this.getHolder(), Visibility.Removed);
  1042.         this.clearValue();
  1043.         SignUp.RemoveChanged(this.getElement());
  1044.         this.m_bDisplayed = false
  1045.     },
  1046.     display: function (a) {
  1047.         DOM.visible(this.getHolder(), Visibility.Visible);
  1048.         if (a) this.setFocus();
  1049.         this.m_bDisplayed = true
  1050.     },
  1051.     isDisplayed: function () {
  1052.         return this.exists() && this.m_bDisplayed
  1053.     },
  1054.     isFocusAllowed: function () {
  1055.         return true
  1056.     },
  1057.     setFocus: function (b) {
  1058.         if (this.isFocusAllowed()) {
  1059.             var a = this.getElement();
  1060.             if (DOM.isElement(a)) {
  1061.                 SignUp.FocusSet = {
  1062.                     f: a,
  1063.                     s: a
  1064.                 };
  1065.                 if (!b) SignUp.SetFocus()
  1066.             }
  1067.         }
  1068.     },
  1069.     exists: function () {
  1070.         return exists(this.getElement())
  1071.     },
  1072.     update: function () {},
  1073.     updateForSubmit: function () {
  1074.         this.update()
  1075.     },
  1076.     validate: function () {},
  1077.     isValid: function () {
  1078.         try {
  1079.             this.validate.apply(this, arguments);
  1080.             return true
  1081.         } catch (a) {
  1082.             return false
  1083.         }
  1084.     },
  1085.     showHelp: function () {
  1086.         SignUp.MsgHandler.clearMessages(MSG.Type.Help);
  1087.         this.setMessage(MSG.Type.Help, new MSG.SignUp.Info.Help(this.m_helpStringId, [this]))
  1088.     },
  1089.     setMessage: function (a, c) {
  1090.         if (arrExists(this.m_arrMessages, a)) {
  1091.             this.m_arrMessages[a].setData(c);
  1092.             var b = this;
  1093.             SignUp.MsgHandler.setMessage(a, this, function (a, c) {
  1094.                 b.showMessage(a, c)
  1095.             }, function (a, c) {
  1096.                 b.hideMessage(a, c)
  1097.             })
  1098.         }
  1099.     },
  1100.     clearMessage: function (a) {
  1101.         if (arrExists(this.m_arrMessages, a)) {
  1102.             this.m_arrMessages[a].clearData();
  1103.             SignUp.MsgHandler.clearMessage(a, this)
  1104.         }
  1105.     },
  1106.     clearMessages: function () {
  1107.         for (var a = 0; a < this.m_arrMessages.length; a++) this.clearMessage(a)
  1108.     },
  1109.     hideMessage: function (a, b) {
  1110.         if (arrExists(this.m_arrMessages, a)) this.m_arrMessages[a].hide(b)
  1111.     },
  1112.     showMessage: function (a, b) {
  1113.         if (arrExists(this.m_arrMessages, a)) this.m_arrMessages[a].show(b)
  1114.     },
  1115.     hasMessage: function (a) {
  1116.         if (arrExists(this.m_arrMessages, a)) return this.m_arrMessages[a].hasData();
  1117.         return false
  1118.     }
  1119. };
  1120. SignUp.Error = function (b, a, d, c, e) {
  1121.     if (!exists(a)) a = [];
  1122.     this.stringid = b;
  1123.     this.formatarray = a;
  1124.     this.isFatal = d;
  1125.     this.errCode = c;
  1126.     this.errUrl = e
  1127. };
  1128. SignUp.ValidateField = function (a) {
  1129.     SignUp.SetChanged(a.id);
  1130.     if (a.type == "text") a.value = Trim(a.value);
  1131.     SignUp.ValidateForm(false)
  1132. };
  1133. SignUp.SetChanged = function (a) {
  1134.     if (!exists(SignUp.FieldsChanged)) SignUp.FieldsChanged = {};
  1135.     SignUp.FieldsChanged[a] = true
  1136. };
  1137. SignUp.RemoveChanged = function (a) {
  1138.     if (a == null || typeof SignUp.FieldsChanged == "undefined" || typeof SignUp.FieldsChanged[a.id] == "undefined") return;
  1139.     SignUp.FieldsChanged[a.id] = false
  1140. };
  1141. SignUp.Changed = function (a) {
  1142.     if (SignUp.AllChanged) return true;
  1143.     if (a == null || typeof SignUp.FieldsChanged == "undefined" || typeof SignUp.FieldsChanged[a.id] == "undefined" || !SignUp.FieldsChanged[a.id]) return false;
  1144.     return true
  1145. };
  1146. SignUp.ValidateForm = function (d) {
  1147.     var c = "update";
  1148.     if (d) c += "ForSubmit";
  1149.     for (var a = 0; a < SignUp.FieldsOnPage.length; a++) for (var b = 0; b < SignUp.FieldsOnPage[a].length; b++) SignUp.FieldsOnPage[a][b][c]();
  1150.     SignUp.AllChanged = false
  1151. };
  1152. SignUp.WaitForAsync = function (a, c) {
  1153.     var d = true;
  1154.     for (var b = 0; b < a.length; b++) if (a[b].getVState() == FIELD.VState.Running) {
  1155.         d = false;
  1156.         break
  1157.     }
  1158.     if (!d) setTimeout(function () {
  1159.         SignUp.WaitForAsync(a, c)
  1160.     }, 100);
  1161.     else c()
  1162. };
  1163. SignUp.PrefillCountry = function () {
  1164.     if (exists(SignUp.Prefill.Country) && SignUp.Fields[FT.CTY].isValid(SignUp.Prefill.Country)) SignUp.DefCountry = SignUp.Prefill.Country.toUpperCase()
  1165. };
  1166. SignUp.PrefillForm = function () {
  1167.     if (exists(SignUp.Prefill.Membername)) {
  1168.         if (SignUp.Prefill.Membername.indexOf("@") == -1) {
  1169.             if (SignUp.Fields[FT.MN].isValid(SignUp.Prefill.Membername, STATE.MN.Live)) SignUp.Fields[FT.MN].setMembername(SignUp.Prefill.Membername)
  1170.         } else if (SignUp.Fields[FT.MN].isValid(SignUp.Prefill.Membername, STATE.MN.EASI)) SignUp.Fields[FT.MN].setMembername(SignUp.Prefill.Membername);
  1171.         if (SignUp.Fields[FT.MN].getVState() == FIELD.VState.Running) SignUp.Fields[FT.MN].disable(true)
  1172.     }
  1173.     if (exists(SignUp.Prefill.FName) && SignUp.Fields[FT.FNAME].isValid(SignUp.Prefill.FName)) SignUp.Fields[FT.FNAME].setValue(SignUp.Prefill.FName);
  1174.     if (exists(SignUp.Prefill.LName) && SignUp.Fields[FT.LNAME].isValid(SignUp.Prefill.LName)) SignUp.Fields[FT.LNAME].setValue(SignUp.Prefill.LName);
  1175.     if (exists(SignUp.Prefill.Zip) && SignUp.Fields[FT.ZIP].isValid(SignUp.Prefill.Zip)) SignUp.Fields[FT.ZIP].setValue(SignUp.Prefill.Zip);
  1176.     if (exists(SignUp.Prefill.Gender) && SignUp.Fields[FT.GNDR].isValid(SignUp.Prefill.Gender)) SignUp.Fields[FT.GNDR].setValue(SignUp.Prefill.Gender);
  1177.     if (exists(SignUp.Prefill.BDate) && SignUp.Prefill.BDate.length == 8) {
  1178.         var c = parseInt(SignUp.Prefill.BDate.substring(0, 2)),
  1179.             a = parseInt(SignUp.Prefill.BDate.substring(2, 4)),
  1180.             b = parseInt(SignUp.Prefill.BDate.substring(4, 8));
  1181.         if (SignUp.Fields[FT.BD].isValid(a, null, null)) SignUp.Fields[FT.BD].setValue(a.toString(), null, null);
  1182.         if (SignUp.Fields[FT.BD].isValid(null, c, null)) SignUp.Fields[FT.BD].setValue(null, c.toString(), null);
  1183.         if (SignUp.Fields[FT.BD].isValid(null, null, b)) SignUp.Fields[FT.BD].setValue(null, null, b.toString())
  1184.     }
  1185. };
  1186. SignUp.AddError = function (d, f, e) {
  1187.     var a = null;
  1188.     for (var b = 0; b < SignUp.FieldsOnPage.length; b++) {
  1189.         for (var c = 0; c < SignUp.FieldsOnPage[b].length; c++) if (SignUp.FieldsOnPage[b][c].getErrHolder() == d) {
  1190.             a = SignUp.FieldsOnPage[b][c];
  1191.             break
  1192.         }
  1193.         if (a) break
  1194.     }
  1195.     if (a) a.setMessage(MSG.Type.Error, a.getErrInfo(new SignUp.Error(f, e)))
  1196. };
  1197. SignUp.HandleServerError = function (g) {
  1198.     if (Trim(g).length == 0) return;
  1199.     var c = Trim(g);
  1200.     if (c.indexOf("$") != -1) {
  1201.         var d = c.split("$"),
  1202.             h = d[0];
  1203.         switch (h.toLowerCase()) {
  1204.         case "easilive":
  1205.             if (SignUp.Fields[FT.MN].getState() == STATE.MN.EASI) c = d[2];
  1206.             else c = d[1]
  1207.         }
  1208.     }
  1209.     var e = c.split(","),
  1210.         i = e[0],
  1211.         a = "Error_" + e[1],
  1212.         j = e[2];
  1213.     if (SignUp.IsIWW) {
  1214.         if (a == "Error_1058" || a == "Error_1242") a = SignUp.ErrorMap.Error1245
  1215.     } else if (SignUp.CheckOOBE()) if (a == "Error_1242") a = "Error_1159";
  1216.     if (a == "Error_1220") a = "Error_1058";
  1217.     var b = null;
  1218.     switch (a) {
  1219.     case "Error_Hip":
  1220.         live.accounts.strings.error_hip = "";
  1221.         if (HIP) {
  1222.             HIP.error = 1;
  1223.             live.accounts.strings.error_hip = HIP.getError();
  1224.             HIP.error = 0
  1225.         }
  1226.         if (!SignUp.IsInline) SignUp.HIPControl.setError(SignUp.HIPControl.ErrorEnum().ServerValidationError);
  1227.         break;
  1228.     case "Error_1159":
  1229.     case "Error_1058":
  1230.         b = [SignUp.Fields[FT.MN].getValue()];
  1231.         break;
  1232.     case "Error_1242":
  1233.         b = [SignUp.Fields[FT.MN].getValue(), 'href="' + SignUp.SignInLink + '" id="iSignInLink"'];
  1234.         break;
  1235.     case "Error_1245":
  1236.         b = ['href="" id="iSignInLink" onclick="SignUp.GoToSignIn();return false"'];
  1237.         break;
  1238.     case "Error_1254":
  1239.         b = ['href="" id="iNewEmailLink_1254" onclick="SignUp.Fields[FT.MN].updateState(STATE.MN.Live);return false"'];
  1240.         break;
  1241.     case "Error_1041":
  1242.     case "Error_1233":
  1243.     case "Error_1044":
  1244.         if (SignUp.Fields[FT.CTY].ipDataUsed) {
  1245.             var f = GEId("PostalContainer");
  1246.             if (f.innerHTML.length > 10) {
  1247.                 SignUp.Fields[FT.ZIP].getElement().clearValue();
  1248.                 f.style.display = "block";
  1249.                 SignUp.Fields[FT.ZIP].setMessage(MSG.Type.Error, SignUp.Fields[FT.ZIP].getErrInfo(new SignUp.Error("Error_1228")))
  1250.             }
  1251.             return false
  1252.         }
  1253.     }
  1254.     SignUp.AddError(GEId(i), a, b, true);
  1255.     return true
  1256. };
  1257. SignUp.HaveErrors = function () {
  1258.     for (var a = 0; a < SignUp.FieldsOnPage.length; a++) for (var b = 0; b < SignUp.FieldsOnPage[a].length; b++) if (SignUp.FieldsOnPage[a][b].hasMessage(MSG.Type.Error)) return true;
  1259.     return false
  1260. };
  1261. SignUp.SetFocus = function () {
  1262.     if (typeof SignUp.FocusSet == "undefined" || SignUp.FocusSet == null) return;
  1263.     try {
  1264.         SignUp.FocusSet.f.focus()
  1265.     } catch (a) {}
  1266.     try {
  1267.         if (typeof SignUp.FocusSet.s.scrollIntoView == "undefined") window.scrollBy(0, - 75);
  1268.         else {
  1269.             SignUp.FocusSet.s.scrollIntoView(true);
  1270.             window.scrollBy(0, - 10)
  1271.         }
  1272.     } catch (a) {}
  1273.     SignUp.FocusSet = null
  1274. };
  1275. SignUp.HandleHintFocusOn = function (a, h, g, c) {
  1276.     if (SignUp.IsIWW) return;
  1277.     var b = GetString("live.accounts.strings." + h),
  1278.         d = b.match(/\{\d\}/g),
  1279.         f = false;
  1280.     if (d && d.length > 0) if (c && c.length == d.length) {
  1281.         var e = [b];
  1282.         e = e.concat(c);
  1283.         b = FormatString.apply(null, e)
  1284.     } else f = true;
  1285.     if (!f && a.value == b) {
  1286.         a.value = "";
  1287.         a.maxLength = g;
  1288.         a.className = "";
  1289.         try {
  1290.             a.focus();
  1291.             a.select()
  1292.         } catch (i) {}
  1293.     }
  1294. };
  1295. SignUp.HandleHintFocusOff = function (a, h, g, c) {
  1296.     if (SignUp.IsIWW) return;
  1297.     if (a.value.length < 1) {
  1298.         var b = GetString("live.accounts.strings." + h),
  1299.             d = b.match(/\{\d\}/g),
  1300.             f = false;
  1301.         if (d && d.length > 0) if (c && c.length == d.length) {
  1302.             var e = [b];
  1303.             e = e.concat(c);
  1304.             b = FormatString.apply(null, e)
  1305.         } else f = true;
  1306.         if (f) {
  1307.             a.value = "";
  1308.             a.maxLength = g;
  1309.             a.className = ""
  1310.         } else {
  1311.             a.className = "inputhint";
  1312.             a.maxLength = 100;
  1313.             a.value = b
  1314.         }
  1315.     }
  1316. };
  1317. SignUp.RegExValMatch = function (a, b) {
  1318.     return a.match(b) ? true : false
  1319. };
  1320. SignUp.Contains = function (a, b, c) {
  1321.     if (a.length == 0 || b.length == 0) return false;
  1322.     if (c) {
  1323.         a = a.toLowerCase();
  1324.         b = b.toLowerCase()
  1325.     }
  1326.     if (a.indexOf(b) == -1) return false;
  1327.     return true
  1328. };
  1329. SignUp.Membername = function () {
  1330.     return SignUp.Fields[FT.MN].getValue().split("@")[0]
  1331. };
  1332. SignUp.Domain = function () {
  1333.     var a = SignUp.Fields[FT.MN].getValue(),
  1334.         b = a.indexOf("@");
  1335.     if (b != -1 && a.length > b + 1) return a.substring(b + 1);
  1336.     return ""
  1337. };
  1338. SignUp.IsLiveDomain = function (b) {
  1339.     if (isString(b) && exists(SignUp.LiveDomains)) for (var a = 0; a < SignUp.LiveDomains.length; a++) if (strEquals(b, SignUp.LiveDomains[a], true)) return true;
  1340.     return false
  1341. };
  1342. SignUp.OnlyNumbers = function (a) {
  1343.     try {
  1344.         if (a.keyCode && a.keyCode != 0 && typeof a.charCode == "undefined") return b(a.keyCode);
  1345.         else if (a.charCode && a.charCode != 0) return b(a.charCode)
  1346.     } catch (c) {}
  1347.     return true;
  1348.  
  1349.     function b(a) {
  1350.         return a >= 48 && a <= 57
  1351.     }
  1352. };
  1353. SignUp.CookieString = "";
  1354. SignUp.Cookies = {};
  1355. SignUp.CookieValue = function (f) {
  1356.     var c = document.cookie;
  1357.     if (c !== SignUp.CookieString) {
  1358.         SignUp.Cookies = {};
  1359.         var e = c.split(";");
  1360.         for (var d = 0; d < e.length; d++) {
  1361.             var b = e[d],
  1362.                 a = b.indexOf("=");
  1363.             if (a !== -1) SignUp.Cookies[Trim(b.substring(0, a))] = Trim(decodeURIComponent(b.substring(a + 1)))
  1364.         }
  1365.         SignUp.CookieString = c
  1366.     }
  1367.     return SignUp.Cookies[f]
  1368. };
  1369. SignUp.RemoveCookie = function (b) {
  1370.     var a;
  1371.     a = b + "= ";
  1372.     a += "; path=/; domain=" + SignUp.SiteDomain + "; expires=Fri, 11-Feb-2000 01:30:00 GMT";
  1373.     document.cookie = a
  1374. };
  1375. SignUp.AddCookie = function (c, b) {
  1376.     var a = c + "=" + escape(b);
  1377.     a += "; path=/; domain=" + SignUp.SiteDomain;
  1378.     a += "; secure";
  1379.     document.cookie = a
  1380. };
  1381. SignUp.Show = function (c) {
  1382.     for (var b = 0; b < c.length; b++) {
  1383.         var a = GEId(c[b]);
  1384.         if (typeof a != "undefined" && a != null) a.style.display = "block"
  1385.     }
  1386. };
  1387. SignUp.Hide = function (c) {
  1388.     for (var b = 0; b < c.length; b++) {
  1389.         var a = GEId(c[b]);
  1390.         if (typeof a != "undefined" && a != null) a.style.display = "none"
  1391.     }
  1392. };
  1393. SignUp.SetQSValue = function (a, d, f) {
  1394.     var c = "&" + d.toLowerCase() + "=",
  1395.         b = a.toLowerCase().indexOf(c);
  1396.     if (b == -1) {
  1397.         c = "?" + d.toLowerCase() + "=";
  1398.         b = a.toLowerCase().indexOf(c);
  1399.         if (b == -1) {
  1400.             var g = "&";
  1401.             if (a.indexOf("?") == -1) g = "?";
  1402.             return a + g + d + "=" + f
  1403.         }
  1404.     }
  1405.     var e = a.indexOf("&", b + 1);
  1406.     if (e == -1) e = a.length;
  1407.     return a.substring(0, b) + c + f + a.substring(e)
  1408. };
  1409. SignUp.CheckOOBE = function () {
  1410.     return SignUp.IsInline && !SignUp.IsIWW
  1411. };
  1412. SignUp.isIE = function () {
  1413.     return window.ActiveXObject ? true : false
  1414. };
  1415.  
  1416. function GEId(a) {
  1417.     return document.getElementById(a)
  1418. }
  1419. function Trim(a) {
  1420.     return a.replace(/^\s+|\s+$/g, "")
  1421. }
  1422. SignUp.WizardResult = {
  1423.     GenericError: 1,
  1424.     Interrupt: 2,
  1425.     NoActiveX: 3
  1426. };
  1427. SignUp.DownloadPrivacyText = function () {
  1428.     var c = new AJAX.AJAXHandler(SignUp.SitePath + "/query.aspx?" + SignUp.QS, "POST", true),
  1429.         b = "command=privacy";
  1430.     c.sendRequest(b, a);
  1431.  
  1432.     function a(b) {
  1433.         var a = b.getResponseText();
  1434.         if (a) GEId("iPriv").innerHTML = a
  1435.     }
  1436. };
  1437. SignUp.DownloadEUPrivacyText = function () {
  1438.     var c = new AJAX.AJAXHandler(SignUp.SitePath + "/query.aspx?" + SignUp.QS, "POST", true),
  1439.         b = "command=euprivacy";
  1440.     c.sendRequest(b, a);
  1441.  
  1442.     function a(b) {
  1443.         var a = b.getResponseText();
  1444.         if (a) GEId("iEUPrivacy").innerHTML = a
  1445.     }
  1446. };
  1447. SignUp.DownloadTOUText = function () {
  1448.     var c = new AJAX.AJAXHandler(SignUp.SitePath + "/query.aspx?" + SignUp.QS, "POST", true),
  1449.         b = "command=tou";
  1450.     c.sendRequest(b, a);
  1451.  
  1452.     function a(b) {
  1453.         var a = b.getResponseText();
  1454.         if (a) GEId("iTOU").innerHTML = a
  1455.     }
  1456. };
  1457. SignUp.SwitchPanes = function (d) {
  1458.     var c = d - 1,
  1459.         a = [];
  1460.     a[0] = GEId("page1");
  1461.     a[1] = GEId("page2");
  1462.     if (SignUp.IsIWW) {
  1463.         a[2] = GEId("page3");
  1464.         a[3] = GEId("page4");
  1465.         a[4] = GEId("page5");
  1466.         a[5] = GEId("page6")
  1467.     }
  1468.     for (var b = 0, e = a.length; b < e; b++) a[b].style.display = b == c ? "block" : "none";
  1469.     if (SignUp.PaneShown != d && SignUp.FieldsOnPage[c]) for (var b = 0; b < SignUp.FieldsOnPage[c].length; b++) if (SignUp.FieldsOnPage[c][b].isFocusAllowed()) {
  1470.         SignUp.FieldsOnPage[c][b].setFocus(true);
  1471.         break
  1472.     }
  1473.     SignUp.PaneShown = d;
  1474.     if (SignUp.IsIWW) SignUp.SetButtonStatesAndHeader()
  1475. };
  1476. SignUp.DetectHeader = function () {
  1477.     var a = "";
  1478.     switch (SignUp.PaneShown) {
  1479.     case 5:
  1480.     case 4:
  1481.     case 3:
  1482.         a = "IWW_Signup_Heading3";
  1483.         break;
  1484.     case 2:
  1485.         a = "IWW_Signup_Heading2";
  1486.         break;
  1487.     case 6:
  1488.     case 1:
  1489.     default:
  1490.         if (SignUp.Fields[FT.MN].getState() == STATE.MN.Live) a = "IWW_Signup_Heading1_Live";
  1491.         else a = "IWW_Signup_Heading1_Easi"
  1492.     }
  1493.     return GetString("live.accounts.strings." + a)
  1494. };
  1495. SignUp.SetButtonStatesAndHeader = function () {
  1496.     var e = SignUp.DetectHeader(),
  1497.         a = true,
  1498.         b = false,
  1499.         d = false,
  1500.         c = SignUp.PaneShown;
  1501.     if (c == 1) a = false;
  1502.     b = true;
  1503.     if (c == 3) d = true;
  1504.     try {
  1505.         window.external.SetWizardButtons(a, b, d);
  1506.         window.external.SetHeaderText(e, "")
  1507.     } catch (f) {}
  1508. };
  1509. SignUp.ShowFirstErrorPane = function () {
  1510.     for (var a = 0; a < SignUp.FieldsOnPage.length; a++) for (var b = 0; b < SignUp.FieldsOnPage[a].length; b++) if (SignUp.FieldsOnPage[a][b].hasMessage(MSG.Type.Error)) {
  1511.         SignUp.SwitchPanes(a + 1);
  1512.         return
  1513.     }
  1514. };
  1515. SignUp.ValidatePane = function (a, g) {
  1516.     var d = [];
  1517.     DOM.visible(GEId("page" + SignUp.PaneShown), Visibility.Removed);
  1518.     DOM.visible(GEId("page" + SignUp.PaneShown), Visibility.Visible);
  1519.     SignUp.AllChanged = true;
  1520.     for (var c = 0; c < SignUp.FieldsOnPage[a - 1].length; c++) {
  1521.         var b = SignUp.FieldsOnPage[a - 1][c];
  1522.         b.updateForSubmit();
  1523.         if (SignUp.IsIWW && b.getVState() == FIELD.VState.Running) d.push(b)
  1524.     }
  1525.     SignUp.AllChanged = false;
  1526.     var f = e();
  1527.     if (f > 0) {
  1528.         g(f);
  1529.         return
  1530.     }
  1531.     if (SignUp.IsIWW) SignUp.ShowPageProgress();
  1532.     SignUp.WaitForAsync(d, h);
  1533.  
  1534.     function h() {
  1535.         if (SignUp.IsIWW) SignUp.HidePageProgress();
  1536.         var a = e();
  1537.         if (a == 1 || SignUp.IsIWW && a != 0) SignUp.SetFocus();
  1538.         g(a > 0)
  1539.     }
  1540.     function e() {
  1541.         var c = 0;
  1542.         for (var b = 0; b < SignUp.FieldsOnPage[a - 1].length; b++) if (SignUp.FieldsOnPage[a - 1][b].hasMessage(MSG.Type.Error)) c++;
  1543.         return c
  1544.     }
  1545. };
  1546. SignUp.NextButtonClick = function () {
  1547.     if (SignUp.PaneShown == 1) SignUp.ValidatePane(1, a);
  1548.     else SignUp.DoPost();
  1549.  
  1550.     function a(a) {
  1551.         if (!a) SignUp.SwitchPanes(2)
  1552.     }
  1553. };
  1554. SignUp.BackButtonClick = function () {
  1555.     if (SignUp.PaneShown == 2) SignUp.SwitchPanes(1)
  1556. };
  1557. SignUp.OnIWWNext = function () {
  1558.     switch (SignUp.PaneShown) {
  1559.     case 3:
  1560.         SignUp.DoPost(false, SignUp.PopulateIWWPropertyBag);
  1561.         break;
  1562.     case 4:
  1563.     case 5:
  1564.         SignUp.SwitchPanes(3);
  1565.         SignUp.SetFocus();
  1566.         window.scrollTo(0, 0);
  1567.         break;
  1568.     case 6:
  1569.         SignUp.SwitchPanes(1);
  1570.         SignUp.SetFocus();
  1571.         window.scrollTo(0, 0);
  1572.         break;
  1573.     default:
  1574.         SignUp.ValidatePane(SignUp.PaneShown, a)
  1575.     }
  1576.     function a(a) {
  1577.         if (!a) {
  1578.             SignUp.SwitchPanes(SignUp.PaneShown + 1);
  1579.             SignUp.SetFocus();
  1580.             window.scrollTo(0, 0)
  1581.         }
  1582.     }
  1583. };
  1584. SignUp.OnIWWBack = function () {
  1585.     switch (SignUp.PaneShown) {
  1586.     case 1:
  1587.         try {
  1588.             window.external.FinalBack()
  1589.         } catch (a) {}
  1590.         break;
  1591.     case 5:
  1592.         SignUp.SwitchPanes(3);
  1593.         SignUp.SetFocus();
  1594.         window.scrollTo(0, 0);
  1595.         break;
  1596.     case 6:
  1597.         SignUp.SwitchPanes(1);
  1598.         SignUp.SetFocus();
  1599.         window.scrollTo(0, 0);
  1600.         break;
  1601.     default:
  1602.         SignUp.SwitchPanes(SignUp.PaneShown - 1);
  1603.         SignUp.SetFocus();
  1604.         window.scrollTo(0, 0)
  1605.     }
  1606. };
  1607. SignUp.PopulateIWWPropertyBag = function (b, d, c) {
  1608.     try {
  1609.         if (b) {
  1610.             window.external.Property("ErrorCode") = parseInt(b);
  1611.             window.external.Property("ErrorString") = d;
  1612.             if (c) window.external.Property("ErrorURL") = c
  1613.         } else {
  1614.             var a = SignUp.GetAuthBuffer(SignUp.Fields[FT.MN].getValue(), SignUp.Fields[FT.PWD].getValue());
  1615.             if (!a) {
  1616.                 window.external.Property("ErrorCode") = parseInt(SignUp.WizardResult.GenericError);
  1617.                 window.external.Property("ErrorString") = GetString("live.accounts.strings.Inline_GenericError")
  1618.             } else {
  1619.                 window.external.Property("FirstName") = SignUp.Fields[FT.FNAME].getValue();
  1620.                 window.external.Property("LastName") = SignUp.Fields[FT.LNAME].getValue();
  1621.                 window.external.Property("Username") = SignUp.Fields[FT.MN].getValue();
  1622.                 window.external.Property("AuthenticationBuffer") = a
  1623.             }
  1624.         }
  1625.         window.external.SetWizardButtons(false, false, true);
  1626.         window.external.FinalNext()
  1627.     } catch (e) {}
  1628. };
  1629. SignUp.GoToSignIn = function () {
  1630.     var c = SignUp.Fields[FT.MN].getValue(),
  1631.         a = b();
  1632.     if (!a) {
  1633.         SignUp.PopulateIWWPropertyBag(SignUp.WizardResult.GenericError, GetString("live.accounts.strings.Inline_GenericError"));
  1634.         return
  1635.     }
  1636.     $BSI.navigateTo(SignUp.SetQSValue(a, "username", encodeURIComponent(c)));
  1637.  
  1638.     function b() {
  1639.         var a = "";
  1640.         try {
  1641.             a = window.external.Property("SignInURL")
  1642.         } catch (b) {}
  1643.         if (!a) try {
  1644.             a = window.external.Property("AlternativeURL");
  1645.             window.external.Property("AlternativeURL") = document.location.href
  1646.         } catch (b) {}
  1647.         return a
  1648.     }
  1649. };
  1650. SignUp.GetSignInUrl = function () {};
  1651. SignUp.ShowPageProgress = function () {
  1652.     DOM.visible(GEId("page" + SignUp.PaneShown), Visibility.Removed);
  1653.     DOM.visible(GEId("pageProgress"), Visibility.Visible);
  1654.     setTimeout(a, 2e3);
  1655.  
  1656.     function a() {
  1657.         if (GEId("pageProgress").style.display == "block") DOM.visible(GEId("iPageProgress"), Visibility.Visible)
  1658.     }
  1659. };
  1660. SignUp.HidePageProgress = function () {
  1661.     DOM.visible(GEId("iPageProgress"), Visibility.Removed);
  1662.     DOM.visible(GEId("pageProgress"), Visibility.Removed);
  1663.     DOM.visible(GEId("page" + SignUp.PaneShown), Visibility.Visible)
  1664. };
  1665.  
  1666. function OnNext() {
  1667.     if (SignUp.IsIWW) SignUp.OnIWWNext()
  1668. }
  1669. function OnBack() {
  1670.     if (SignUp.IsIWW) SignUp.OnIWWBack()
  1671. }
  1672. SignUp.PaneHelpLink = function (b, a) {
  1673.     return "<p><a href=\"javascript:SignUp.LaunchHelp('" + SignUp.HelpUrl + "')\">" + a + "</a></p>"
  1674. };
  1675. SignUp.Encrypt = function () {
  1676.     this.EncryptData = function (b, c, j) {
  1677.         var a = [];
  1678.         switch (j.toLowerCase()) {
  1679.         case "pwdsa":
  1680.             if (b == null || c == null) return null;
  1681.             a = e(b, c);
  1682.             break;
  1683.         case "pwd":
  1684.             if (b == null) return null;
  1685.             a = d(b)
  1686.         }
  1687.         if (a == null || typeof a == "undefined") return a;
  1688.         if (typeof Key != "undefined" && typeof f != "undefined") var i = f(Key);
  1689.         var h = x(a, i, randomNum),
  1690.             g = m(h);
  1691.         return g;
  1692.  
  1693.         function e(d, e) {
  1694.             var a = [],
  1695.                 c = 0;
  1696.             a[c++] = 1;
  1697.             a[c++] = 1;
  1698.             var g = d.length;
  1699.             a[c++] = d.length;
  1700.             var b;
  1701.             for (b = 0; b < g; b++) a[c++] = d.charCodeAt(b) & 127;
  1702.             var f = e.length;
  1703.             a[c++] = f * 2;
  1704.             for (b = 0; b < f; b++) {
  1705.                 a[c++] = e.charCodeAt(b) & 255;
  1706.                 a[c++] = (e.charCodeAt(b) & 65280) >> 8
  1707.             }
  1708.             a[c] = 0;
  1709.             return a
  1710.         }
  1711.         function d(d) {
  1712.             var a = [],
  1713.                 b = 0;
  1714.             a[b++] = 1;
  1715.             a[b++] = 1;
  1716.             var c, e = d.length;
  1717.             a[b++] = e;
  1718.             for (c = 0; c < e; c++) a[b++] = d.charCodeAt(c) & 127;
  1719.             a[b++] = 0;
  1720.             a[b++] = 0;
  1721.             return a
  1722.         }
  1723.     };
  1724.  
  1725.     function o(a) {
  1726.         if (a >= 0 && a < 26) return String.fromCharCode(65 + a);
  1727.         else if (a >= 26 && a < 52) return String.fromCharCode(97 + a - 26);
  1728.         else if (a >= 52 && a < 62) return String.fromCharCode(48 + a - 52);
  1729.         else if (a == 62) return "+";
  1730.         else if (a == 63) return "/"
  1731.     }
  1732.     function d(b, d) {
  1733.         var a, c = "";
  1734.         for (a = d; a < 4; a++) b = b >> 6;
  1735.         for (a = 0; a < d; a++) {
  1736.             c = o(b & 63) + c;
  1737.             b = b >> 6
  1738.         }
  1739.         return c
  1740.     }
  1741.     function m(e) {
  1742.         var g = e.length,
  1743.             b = "",
  1744.             a, c;
  1745.         for (a = g - 3; a >= 0; a -= 3) {
  1746.             c = e[a] | e[a + 1] << 8 | e[a + 2] << 16;
  1747.             b = b + d(c, 4)
  1748.         }
  1749.         var f = g % 3;
  1750.         c = 0;
  1751.         for (a += 2; a >= 0; a--) c = c << 8 | e[a];
  1752.         if (f == 0) b = b + d(c, 4);
  1753.         else if (f == 1) b = b + d(c << 16, 2) + "==";
  1754.         else if (f == 2) b = b + d(c << 8, 3) + "=";
  1755.         return b
  1756.     }
  1757.     function f(b) {
  1758.         var c = b.indexOf(";");
  1759.         if (c < 0) return null;
  1760.         var f = b.substr(0, c),
  1761.             e = b.substr(c + 1),
  1762.             a = f.indexOf("=");
  1763.         if (a < 0) return null;
  1764.         var g = f.substr(a + 1);
  1765.         a = e.indexOf("=");
  1766.         if (a < 0) return null;
  1767.         var h = e.substr(a + 1),
  1768.             d = {};
  1769.         d["n"] = q(h);
  1770.         d["e"] = parseInt(g, 16);
  1771.         return d
  1772.     }
  1773.     function x(a, e, h) {
  1774.         var c = e.n,
  1775.             i = e.e,
  1776.             j = a.length,
  1777.             f = c.size * 2,
  1778.             g = 42;
  1779.         if (j + g > f) return null;
  1780.         l(a, f, h);
  1781.         a = a.reverse();
  1782.         var k = p(a),
  1783.             d = v(k, i, c);
  1784.         d.size = c.size;
  1785.         var b = r(d);
  1786.         b = b.reverse();
  1787.         return b
  1788.     }
  1789.     function c() {
  1790.         this.size = 1;
  1791.         this.data = [];
  1792.         this.data[0] = 0
  1793.     }
  1794.     function u(b) {
  1795.         var a = new c;
  1796.         a.size = b.size;
  1797.         a.data = b.data.slice(0);
  1798.         return a
  1799.     }
  1800.     function p(d) {
  1801.         var b = new c,
  1802.             a = 0,
  1803.             e = d.length,
  1804.             f = e >> 1;
  1805.         for (a = 0; a < f; a++) b.data[a] = d[2 * a] + (d[1 + 2 * a] << 8);
  1806.         if (e % 2) b.data[a++] = d[e - 1];
  1807.         b.size = a;
  1808.         return b
  1809.     }
  1810.     function r(c) {
  1811.         var b = [],
  1812.             a = 0,
  1813.             d = c.size;
  1814.         for (a = 0; a < d; a++) {
  1815.             b[a * 2] = c.data[a] & 255;
  1816.             var e = c.data[a] >>> 8;
  1817.             b[a * 2 + 1] = e
  1818.         }
  1819.         return b
  1820.     }
  1821.     function v(f, b, e) {
  1822.         var h = [],
  1823.             c = 0;
  1824.         while (b > 0) {
  1825.             h[c] = b & 1;
  1826.             b = b >>> 1;
  1827.             c++
  1828.         }
  1829.         var a = u(f);
  1830.         for (var d = c - 2; d >= 0; d--) {
  1831.             a = g(a, a, e);
  1832.             if (h[d] == 1) a = g(a, f, e)
  1833.         }
  1834.         return a
  1835.     }
  1836.     function g(e, d, b) {
  1837.         var c = w(e, d),
  1838.             a = y(c, b);
  1839.         return a.r
  1840.     }
  1841.     function w(e, g) {
  1842.         var d = new c;
  1843.         d.size = e.size + g.size;
  1844.         var a, b;
  1845.         for (a = 0; a < d.size; a++) d.data[a] = 0;
  1846.         var f = e.data,
  1847.             i = g.data,
  1848.             h = d.data;
  1849.         if (e == g) {
  1850.             for (a = 0; a < e.size; a++) h[2 * a] += f[a] * f[a];
  1851.             for (a = 1; a < e.size; a++) for (b = 0; b < a; b++) h[a + b] += 2 * f[a] * f[b]
  1852.         } else for (a = 0; a < e.size; a++) for (b = 0; b < g.size; b++) h[a + b] += f[a] * i[b];
  1853.         s(d);
  1854.         return d
  1855.     }
  1856.     function s(d) {
  1857.         var b, c, e, a, g, f;
  1858.         e = d.size;
  1859.         c = 0;
  1860.         for (b = 0; b < e; b++) {
  1861.             a = d.data[b];
  1862.             a += c;
  1863.             f = a;
  1864.             c = Math.floor(a / 65536);
  1865.             a -= c * 65536;
  1866.             d.data[b] = a
  1867.         }
  1868.     }
  1869.     function k(a) {
  1870.         var b = a.size - 1;
  1871.         while (b > 0 && a.data[b--] == 0) a.size--
  1872.     }
  1873.     function y(a, b) {
  1874.         var m = a.size,
  1875.             f = b.size,
  1876.             o = b.data[f - 1],
  1877.             n = b.data[f - 1] + b.data[f - 2] / 65536,
  1878.             j = new c;
  1879.         j.size = m - f + 1;
  1880.         a.data[m] = 0;
  1881.         for (var g = m - 1; g >= f - 1; g--) {
  1882.             var h = g - f + 1,
  1883.                 d = Math.floor((a.data[g + 1] * 65536 + a.data[g]) / n);
  1884.             if (d > 0) {
  1885.                 var i = e(a, d, b, h);
  1886.                 if (i < 0) {
  1887.                     d--;
  1888.                     e(a, d, b, h)
  1889.                 }
  1890.                 while (i > 0 && a.data[g] >= o) {
  1891.                     i = e(a, 1, b, h);
  1892.                     if (i > 0) d++
  1893.                 }
  1894.             }
  1895.             j.data[h] = d
  1896.         }
  1897.         var l = {};
  1898.         l["q"] = j;
  1899.         k(a);
  1900.         l["r"] = a;
  1901.         return l
  1902.     }
  1903.     function e(f, i, g, d) {
  1904.         var a, h = f.data.slice(0),
  1905.             b = 0,
  1906.             e = f.data;
  1907.         for (a = 0; a < g.size; a++) {
  1908.             var c = b + g.data[a] * i;
  1909.             b = c >>> 16;
  1910.             c = c - b * 65536;
  1911.             if (c > e[a + d]) {
  1912.                 e[a + d] += 65536 - c;
  1913.                 b++
  1914.             } else e[a + d] -= c
  1915.         }
  1916.         if (b > 0) e[a + d] -= b;
  1917.         if (e[a + d] < 0) {
  1918.             f.data = h.slice(0);
  1919.             return -1
  1920.         }
  1921.         return +1
  1922.     }
  1923.     function l(d, f, o) {
  1924.         var q = d.length,
  1925.             a, p = [218, 57, 163, 238, 94, 107, 75, 13, 50, 85, 191, 239, 149, 96, 24, 144, 175, 216, 7, 9],
  1926.             k = f - q - 40 - 2,
  1927.             e = [];
  1928.         for (a = 0; a < k; a++) e[a] = 0;
  1929.         e[k] = 1;
  1930.         var r = p.concat(e, d),
  1931.             c = [];
  1932.         for (a = 0; a < 20; a++) c[a] = Math.floor(Math.random() * 256);
  1933.         c = i(c.concat(o));
  1934.         var n = j(c, f - 21),
  1935.             g = h(r, n),
  1936.             m = j(g, 20),
  1937.             l = h(c, m),
  1938.             b = [];
  1939.         b[0] = 0;
  1940.         b = b.concat(l, g);
  1941.         for (a = 0; a < b.length; a++) d[a] = b[a]
  1942.     }
  1943.     function j(f, d) {
  1944.         if (d > 4096) return null;
  1945.         var a = f.slice(0),
  1946.             b = a.length;
  1947.         a[b++] = 0;
  1948.         a[b++] = 0;
  1949.         a[b++] = 0;
  1950.         a[b] = 0;
  1951.         var e = 0,
  1952.             c = [];
  1953.         while (c.length < d) {
  1954.             a[b] = e++;
  1955.             c = c.concat(i(a))
  1956.         }
  1957.         return c.slice(0, d)
  1958.     }
  1959.     function h(b, d) {
  1960.         if (b.length != d.length) return null;
  1961.         var c = [],
  1962.             e = b.length;
  1963.         for (var a = 0; a < e; a++) c[a] = b[a] ^ d[a];
  1964.         return c
  1965.     }
  1966.     function i(f) {
  1967.         var d, e = f.slice(0);
  1968.         t(e);
  1969.         var a = {};
  1970.         a["A"] = 1732584193;
  1971.         a["B"] = 4023233417;
  1972.         a["C"] = 2562383102;
  1973.         a["D"] = 271733878;
  1974.         a["E"] = 3285377520;
  1975.         for (d = 0; d < e.length; d += 64) n(a, e, d);
  1976.         var c = [];
  1977.         b(a.A, c, 0);
  1978.         b(a.B, c, 4);
  1979.         b(a.C, c, 8);
  1980.         b(a.D, c, 12);
  1981.         b(a.E, c, 16);
  1982.         return c
  1983.     }
  1984.     function b(b, d, c) {
  1985.         var a;
  1986.         for (a = 3; a >= 0; a--) {
  1987.             d[c + a] = b & 255;
  1988.             b = b >>> 8
  1989.         }
  1990.     }
  1991.     function t(b) {
  1992.         var d = b.length,
  1993.             e = d,
  1994.             f = d % 64,
  1995.             g = f < 55 ? 56 : 120,
  1996.             a;
  1997.         b[e++] = 128;
  1998.         for (a = f + 1; a < g; a++) b[e++] = 0;
  1999.         var c = d * 8;
  2000.         for (a = 1; a < 8; a++) {
  2001.             b[e + 8 - a] = c & 255;
  2002.             c = c >>> 8
  2003.         }
  2004.     }
  2005.     function n(c, m, n) {
  2006.         var o = 1518500249,
  2007.             p = 1859775393,
  2008.             q = 2400959708,
  2009.             r = 3395469782,
  2010.             b, h, l, i = [],
  2011.             g = c.A,
  2012.             d = c.B,
  2013.             e = c.C,
  2014.             f = c.D,
  2015.             j = c.E;
  2016.         for (h = 0, l = n; h < 16; h++, l += 4) i[h] = m[l] << 24 | m[l + 1] << 16 | m[l + 2] << 8 | m[l + 3] << 0;
  2017.         for (h = 16; h < 80; h++) i[h] = a(i[h - 3] ^ i[h - 8] ^ i[h - 14] ^ i[h - 16], 1);
  2018.         var k;
  2019.         for (b = 0; b < 20; b++) {
  2020.             k = a(g, 5) + (d & e | ~d & f) + j + i[b] + o & 4294967295;
  2021.             j = f;
  2022.             f = e;
  2023.             e = a(d, 30);
  2024.             d = g;
  2025.             g = k
  2026.         }
  2027.         for (b = 20; b < 40; b++) {
  2028.             k = a(g, 5) + (d ^ e ^ f) + j + i[b] + p & 4294967295;
  2029.             j = f;
  2030.             f = e;
  2031.             e = a(d, 30);
  2032.             d = g;
  2033.             g = k
  2034.         }
  2035.         for (b = 40; b < 60; b++) {
  2036.             k = a(g, 5) + (d & e | d & f | e & f) + j + i[b] + q & 4294967295;
  2037.             j = f;
  2038.             f = e;
  2039.             e = a(d, 30);
  2040.             d = g;
  2041.             g = k
  2042.         }
  2043.         for (b = 60; b < 80; b++) {
  2044.             k = a(g, 5) + (d ^ e ^ f) + j + i[b] + r & 4294967295;
  2045.             j = f;
  2046.             f = e;
  2047.             e = a(d, 30);
  2048.             d = g;
  2049.             g = k
  2050.         }
  2051.         c.A = c.A + g & 4294967295;
  2052.         c.B = c.B + d & 4294967295;
  2053.         c.C = c.C + e & 4294967295;
  2054.         c.D = c.D + f & 4294967295;
  2055.         c.E = c.E + j & 4294967295
  2056.     }
  2057.     function a(b, a) {
  2058.         var c = b >>> 32 - a,
  2059.             e = (1 << 32 - a) - 1,
  2060.             d = b & e;
  2061.         return d << a | c
  2062.     }
  2063.     function q(f) {
  2064.         var a, e, b = Math.ceil(f.length / 4),
  2065.             d = new c;
  2066.         d.size = b;
  2067.         for (a = 0; a < b; a++) {
  2068.             e = f.substr(a * 4, 4);
  2069.             d.data[b - 1 - a] = parseInt(e, 16)
  2070.         }
  2071.         return d
  2072.     }
  2073. };
  2074. STATE.MN = {
  2075.     EASI: "easi",
  2076.     Live: "live"
  2077. };
  2078. FIELD.Membername = function () {
  2079.     FIELD.Base.apply(this, arguments);
  2080.     this.m_sLastMembername = "unchecked";
  2081.     this.m_sCheckMembername = "";
  2082.     this.m_iMaxLength = 112;
  2083.     this.m_oCheckAvailHandler = null;
  2084.     this.m_eState = SignUp.IsEASI ? STATE.MN.EASI : STATE.MN.Live;
  2085.     this.m_arrStateIDs = [];
  2086.     this.m_arrStateMessages = []
  2087. };
  2088. FIELD.Membername.prototype = {
  2089.     getElement: function () {
  2090.         return GEId(this.m_arrStateIDs[this.m_eState].element)
  2091.     },
  2092.     getLiveElement: function () {
  2093.         return GEId(this.m_arrStateIDs[STATE.MN.Live].element)
  2094.     },
  2095.     getEasiElement: function () {
  2096.         return GEId(this.m_arrStateIDs[STATE.MN.EASI].element)
  2097.     },
  2098.     getMaxLength: function () {
  2099.         var a = this.getEasiElement();
  2100.         if (a) return a.maxLength;
  2101.         else return this.m_iMaxLength
  2102.     },
  2103.     getCheckAvailButton: function () {
  2104.         return GEId(this.m_arrStateIDs[STATE.MN.EASI].checkavail)
  2105.     },
  2106.     getValue: function () {
  2107.         var a = this.getElement();
  2108.         if (a.value == "") return "";
  2109.         var b = this.getDomainDDSelected(),
  2110.             c = exists(b) ? b.value : "";
  2111.         if (this.m_eState == STATE.MN.Live && c != "") return a.value + "@" + c;
  2112.         else return a.value
  2113.     },
  2114.     getDomainDD: function () {
  2115.         return GEId(this.m_arrStateIDs[STATE.MN.EASI].domain)
  2116.     },
  2117.     getDomainDDSelected: function () {
  2118.         var a = this.getDomainDD();
  2119.         if (exists(a)) return a.options[a.selectedIndex];
  2120.         return null
  2121.     },
  2122.     getIndexOfDomain: function (c) {
  2123.         var b = this.getDomainDD();
  2124.         for (var a = 0; a < b.options.length; a++) if (strEquals(b.options[a].value, c, true)) return a;
  2125.         return -1
  2126.     },
  2127.     getState: function () {
  2128.         return this.m_eState
  2129.     },
  2130.     updateState: function (a) {
  2131.         if (this.m_eState == a) return;
  2132.         if (SignUp.IsIWW && SignUp.Fields[FT.ALT].getDState() == FIELD.DState.Auto) SignUp.Fields[FT.ALT].clearValue();
  2133.         this.clearValue();
  2134.         this.clearMessages();
  2135.         this.m_sLastMembername = "unchecked";
  2136.         SignUp.HideMNS();
  2137.         switch (a) {
  2138.         case STATE.MN.Live:
  2139.             SignUp.Hide(["cmembernameeasi", "livelinkctr"]);
  2140.             SignUp.Show(["cmembernamelive", "easilinkctr"]);
  2141.             PWDR.Update(PWDR.LiveState, true);
  2142.             break;
  2143.         case STATE.MN.EASI:
  2144.         default:
  2145.             SignUp.Hide(["cmembernamelive", "easilinkctr"]);
  2146.             SignUp.Show(["cmembernameeasi", "livelinkctr"]);
  2147.             PWDR.Update(PWDR.EasiState, true);
  2148.             SignUp.HandleHintFocusOff(this.getEasiElement(), "PWRHIP_EmailExample", 112)
  2149.         }
  2150.         this.m_arrMessages = this.m_arrStateMessages[a];
  2151.         this.clearMessage(MSG.Type.Error);
  2152.         this.showHelp(a, true);
  2153.         this.setVState(FIELD.VState.Pending);
  2154.         this.enable();
  2155.         this.disableSpinner();
  2156.         SignUp.RemoveChanged(this.getEasiElement());
  2157.         SignUp.RemoveChanged(this.getLiveElement());
  2158.         this.m_eState = a;
  2159.         if (SignUp.IsIWW) SignUp.SetButtonStatesAndHeader();
  2160.         return true
  2161.     },
  2162.     update: function () {
  2163.         this.runValidation()
  2164.     },
  2165.     updateForSubmit: function () {
  2166.         if (this.getVState() == FIELD.VState.Error) this.setVState(FIELD.VState.Pending);
  2167.         this.runValidation();
  2168.         if (this.getVState() == FIELD.VState.Running && exists(this.m_oCheckAvailHandler)) this.m_oCheckAvailHandler.disableRetry()
  2169.     },
  2170.     runValidation: function () {
  2171.         var a = this.getElement();
  2172.         if (!SignUp.Changed(a)) return;
  2173.         SignUp.HideMNS();
  2174.         try {
  2175.             this.validate(a.value, this.getValue(), this.getState(), this.getMaxLength());
  2176.             this.checkAvailable();
  2177.             if (this.getVState() == FIELD.VState.Pending) this.setVState(FIELD.VState.Done)
  2178.         } catch (b) {
  2179.             this.setMessage(MSG.Type.Error, this.getErrInfo(b));
  2180.             this.clearMessage(MSG.Type.Failure);
  2181.             this.clearMessage(MSG.Type.Success);
  2182.             this.m_sLastMembername = "";
  2183.             if (b.description == "Error_1058") SignUp.DisplayMNS()
  2184.         }
  2185.     },
  2186.     validate: function (a, c, b, d) {
  2187.         if (!b) b = this.getState();
  2188.         switch (b) {
  2189.         case STATE.MN.EASI:
  2190.             if (a == "" || a == GetString("live.accounts.strings.PWRHIP_EmailExample")) throw new SignUp.Error("Error_1240");
  2191.             else if (!SignUp.RegExValMatch(a, "^[\\w\\.\\-\\@]+$")) throw new SignUp.Error("Error_1062");
  2192.             else if (!SignUp.RegExValMatch(a, "^$|^(?:(?:(?![\\.]{2,})[\\w\\.\\-])*)@(?:(?:(?![\\.]{2,})[\\w\\.\\-])*)([\\.][a-zA-Z]{2,4})$") || !SignUp.RegExValMatch(a, "^$|^[\\w\\-\\.]*[\\w]@[\\w][\\w\\-\\.]*$") || !SignUp.RegExValMatch(a, "^$|^[\\w\\-].+[\\w]$")) throw new SignUp.Error("Error_1240");
  2193.             else if (!SignUp.RegExValMatch(a, "^$|^[\\w\\.\\-]+@[\\w\\.\\-]+$")) throw new SignUp.Error("Error_1062");
  2194.             else if (!SignUp.RegExValMatch(a, "^.{1,64}@.{1,48}$") || a.length > d) throw new SignUp.Error("Error_1145");
  2195.             break;
  2196.         case STATE.MN.Live:
  2197.             if (a == "") if (SignUp.IsIWW) throw new SignUp.Error("Error_1018");
  2198.             else throw new SignUp.Error("Error_1219");
  2199.             else if (typeof SignUp.OpenDomain == "undefined" && (SignUp.RegExValMatch(a, "^[0-9]{8,12}$") || SignUp.RegExValMatch(a, "^[0-9]{1}$"))) throw new SignUp.Error("Error_1058", [c]);
  2200.             else if (!SignUp.RegExValMatch(a, "^(?:(?:[a-zA-Z])|(?:[\\w\\-](?:(?![\\.]{2,})[\\w\\.\\-]){0,62}[\\w\\-]))$")) throw new SignUp.Error("Error_1062");
  2201.         }
  2202.     },
  2203.     isValid: function (a, b) {
  2204.         try {
  2205.             this.validate(a, a, b, this.getMaxLength());
  2206.             return true
  2207.         } catch (c) {
  2208.             return false
  2209.         }
  2210.     },
  2211.     disable: function (a) {
  2212.         this.setUIState(false);
  2213.         if (a) this.setDomainDDState(false)
  2214.     },
  2215.     enable: function () {
  2216.         this.setUIState(true);
  2217.         this.setDomainDDState(true)
  2218.     },
  2219.     setUIState: function (a) {
  2220.         if (this.getCheckAvailButton()) this.getCheckAvailButton().disabled = !a;
  2221.         this.getElement().disabled = !a
  2222.     },
  2223.     setDomainDDState: function (a) {
  2224.         if (this.getDomainDD()) this.getDomainDD().disabled = !a
  2225.     },
  2226.     enableSpinner: function () {
  2227.         this.setMessage(MSG.Type.Progress, new MSG.Info(null, [this]))
  2228.     },
  2229.     disableSpinner: function () {
  2230.         this.clearMessage(MSG.Type.Progress)
  2231.     },
  2232.     setMembername: function (a) {
  2233.         if (!exists(a) || a == "") return;
  2234.         sUsername = a.split("@")[0];
  2235.         if (a.length <= sUsername.length + 1) {
  2236.             this.updateState(STATE.MN.Live);
  2237.             this.getElement().value = sUsername
  2238.         } else {
  2239.             sDomain = a.split("@")[1];
  2240.             if (SignUp.IsLiveDomain(sDomain)) {
  2241.                 this.updateState(STATE.MN.Live);
  2242.                 this.getElement().value = sUsername;
  2243.                 var b = this.getIndexOfDomain(sDomain);
  2244.                 if (b != -1) this.getDomainDD().selectedIndex = b
  2245.             } else {
  2246.                 this.updateState(STATE.MN.EASI);
  2247.                 this.getElement().value = a;
  2248.                 this.getElement().className = ""
  2249.             }
  2250.         }
  2251.         this.checkAvailable()
  2252.     },
  2253.     showHelp: function (b, c) {
  2254.         SignUp.MsgHandler.clearMessages(MSG.Type.Help);
  2255.         var a = this.m_arrStateIDs[b].helpString;
  2256.         if (c) a = this.m_arrStateIDs[b].altHelpString;
  2257.         this.setMessage(MSG.Type.Help, new MSG.SignUp.Info.Help(a, [this]))
  2258.     },
  2259.     resetValidation: function () {
  2260.         if (this.getVState() == FIELD.VState.Running && exists(this.m_oCheckAvailHandler)) this.m_oCheckAvailHandler.cancel();
  2261.         this.setVState(FIELD.VState.Pending);
  2262.         this.clearMessage(MSG.Type.Failure);
  2263.         this.clearMessage(MSG.Type.Success)
  2264.     },
  2265.     evt_EASI_onfocus: function (b) {
  2266.         var a = EVENT.getTarget(b);
  2267.         if (SignUp.CheckOOBE()) SignUp.MsgHandler.showMessage(MSG.Type.Error, this);
  2268.         SignUp.HandleHintFocusOn(a, "PWRHIP_EmailExample", 112);
  2269.         this.showHelp(this.m_eState, false)
  2270.     },
  2271.     evt_EASI_onblur: function (b) {
  2272.         var a = EVENT.getTarget(b);
  2273.         if (this.getVState() == FIELD.VState.Running) this.disable();
  2274.         if (SignUp.CheckOOBE()) SignUp.MsgHandler.hideMessage(MSG.Type.Error, this);
  2275.         SignUp.HandleHintFocusOff(a, "PWRHIP_EmailExample", 112)
  2276.     },
  2277.     evt_EASI_onchange: function (a) {
  2278.         this.resetValidation();
  2279.         this.onValueChangeUser();
  2280.         SignUp.ValidateField(EVENT.getTarget(a))
  2281.     },
  2282.     evt_Live_onfocus: function () {
  2283.         if (SignUp.CheckOOBE()) SignUp.MsgHandler.showMessage(MSG.Type.Error, this);
  2284.         this.showHelp(this.m_eState, false)
  2285.     },
  2286.     evt_Live_onblur: function () {
  2287.         if (this.getVState() == FIELD.VState.Running) this.disable();
  2288.         if (SignUp.CheckOOBE()) SignUp.MsgHandler.hideMessage(MSG.Type.Error, this)
  2289.     },
  2290.     evt_Live_onchange: function (a) {
  2291.         this.resetValidation();
  2292.         this.onValueChangeUser();
  2293.         SignUp.ValidateField(EVENT.getTarget(a))
  2294.     },
  2295.     evt_Domain_onchange: function (a) {
  2296.         this.resetValidation();
  2297.         this.onValueChangeUser();
  2298.         SignUp.ValidateField(EVENT.getTarget(a));
  2299.         if (this.getVState == FIELD.VState.Running) this.disable(true)
  2300.     },
  2301.     evt_Domain_onfocus: function () {
  2302.         if (this.getElement().disabled) {
  2303.             this.setDomainDDState(false);
  2304.             SignUp.FocusSet = {
  2305.                 f: SignUp.Fields[FT.PWD].getElement()
  2306.             };
  2307.             SignUp.SetFocus()
  2308.         }
  2309.         if (SignUp.CheckOOBE()) SignUp.MsgHandler.showMessage(MSG.Type.Error, this);
  2310.         this.showHelp(this.m_eState, false)
  2311.     },
  2312.     evt_Domain_onblur: function () {
  2313.         if (SignUp.CheckOOBE()) SignUp.MsgHandler.hideMessage(MSG.Type.Error, this)
  2314.     },
  2315.     checkAvailable: function () {
  2316.         this.m_sCheckMembername = this.getValue();
  2317.         if (this.getVState() != FIELD.VState.Pending || this.m_sLastMembername == this.m_sCheckMembername) return;
  2318.         this.clearMessage(MSG.Type.Error);
  2319.         this.clearMessage(MSG.Type.Failure);
  2320.         this.clearMessage(MSG.Type.Success);
  2321.         if (SignUp.DisableCheckavail) {
  2322.             this.setVState(FIELD.VState.Done);
  2323.             this.m_sLastMembername = this.m_sCheckMembername
  2324.         } else {
  2325.             this.m_sLastMembername = "unchecked";
  2326.             this.setVState(FIELD.VState.Running);
  2327.             this.enableSpinner();
  2328.             var a = this,
  2329.                 b = SignUp.SitePath + "/checkavail.aspx?chkavail=" + this.m_sCheckMembername + (this.m_eState == STATE.MN.EASI ? "&chkeasi=1" : "") + "&tk=" + (new Date).getTime() + "&" + SignUp.QS;
  2330.             this.m_oCheckAvailHandler = new AJAX.CheckAvailHandler(b, true, 1e4, SignUp.IsIWW ? 2 : 0);
  2331.             this.m_oCheckAvailHandler.sendRequest("", function () {
  2332.                 a.evt_Image_onload.call(a)
  2333.             }, function () {
  2334.                 a.evt_Image_onabort.call(a)
  2335.             })
  2336.         }
  2337.     },
  2338.     evt_Image_onload: function () {
  2339.         var e = this.getElement(),
  2340.             b = FIELD.VState.Pending,
  2341.             a = SignUp.CookieValue("CheckAvail");
  2342.         SignUp.RemoveCookie("CheckAvail");
  2343.         if (this.getVState() == FIELD.VState.Running) {
  2344.             if (a == "Error_1242") if (SignUp.IsIWW) this.setMessage(MSG.Type.Error, this.getErrInfo(new SignUp.Error("Error_1245", ['href="" id="iSignInLink" onclick="SignUp.GoToSignIn();return false"'])));
  2345.             else if (SignUp.IsInline) this.setMessage(MSG.Type.Error, this.getErrInfo(new SignUp.Error("Error_1159", [this.m_sCheckMembername])));
  2346.             else this.setMessage(MSG.Type.Error, this.getErrInfo(new SignUp.Error(a, [this.m_sCheckMembername, 'href="' + SignUp.SignInLink + '" id="iSignInLink"'])));
  2347.             else if (a == "Error_1058") {
  2348.                 if (SignUp.IsIWW) this.setMessage(MSG.Type.Error, this.getErrInfo(new SignUp.Error("Error_1245", ['href="" id="iSignInLink" onclick="SignUp.GoToSignIn();return false"'])));
  2349.                 else this.setMessage(MSG.Type.Error, this.getErrInfo(new SignUp.Error(a, [this.m_sCheckMembername])));
  2350.                 if (typeof SignUp.OpenDomain == "undefined") SignUp.DisplayMNS()
  2351.             } else if (a == "Error_1220" || a == "Error_1062" || a == "Error_1181") if (a == "Error_1220") this.setMessage(MSG.Type.Error, this.getErrInfo(new SignUp.Error("Error_1058", [this.m_sCheckMembername])));
  2352.             else this.setMessage(MSG.Type.Error, this.getErrInfo(new SignUp.Error(a)));
  2353.             else {
  2354.                 this.clearMessage(MSG.Type.Error);
  2355.                 var c = MSG.Type.Success;
  2356.                 b = FIELD.VState.Done;
  2357.                 if (!(a == "Error_1081" || a == "Error_1239")) {
  2358.                     a = "Error_6";
  2359.                     c = MSG.Type.Failure;
  2360.                     b = FIELD.VState.Error
  2361.                 }
  2362.                 var d = new MSG.Info(FormatString(GetString("live.accounts.strings." + a), this.m_sCheckMembername), [this]);
  2363.                 this.setMessage(c, d)
  2364.             }
  2365.             this.m_sLastMembername = this.m_sCheckMembername
  2366.         }
  2367.         this.setVState(b);
  2368.         this.resetCheckAvail()
  2369.     },
  2370.     evt_Image_onabort: function () {
  2371.         var a = new MSG.Info(GetString("live.accounts.strings.Error_6"), [self]);
  2372.         this.setMessage(MSG.Type.Failure, a);
  2373.         this.setVState(FIELD.VState.Error);
  2374.         this.resetCheckAvail()
  2375.     },
  2376.     resetCheckAvail: function () {
  2377.         this.enable();
  2378.         this.disableSpinner()
  2379.     }
  2380. };
  2381. Derive(FIELD.Base, FIELD.Membername);
  2382. SignUp.MNSDownloading = false;
  2383. SignUp.DisplayMNS = function () {
  2384.     if (!SignUp.IsWeb || SignUp.IsInline) return;
  2385.     if (SignUp.MNSDownloading || SignUp.Fields[FT.MN].getVState() == FIELD.VState.Done && SignUp.Membername() != "") return;
  2386.     if (SignUp.Fields[FT.MN].hasMessage(MSG.Type.Failure)) return;
  2387.     SignUp.Hide(["sugadv", "sugavail", "sugdont"]);
  2388.     SignUp.Show(["sugcont", "sugwait"]);
  2389.     if (SignUp.Membername() == "") {
  2390.         e();
  2391.         return
  2392.     }
  2393.     SignUp.MNSDownloading = true;
  2394.     var a = new Image(1, 1);
  2395.     GEId("tempimgcontainer").appendChild(a);
  2396.     a.onerror = b;
  2397.     a.onload = f;
  2398.     a.onabort = b;
  2399.     var g = SignUp.Membername().replace(/[^0-9A-Za-z]/g, "-"),
  2400.         i = SignUp.SitePath + "/mns.aspx?mnsname=" + g + "&mnsdomain=" + SignUp.Domain() + "&tk=" + (new Date).getTime() + "&" + SignUp.QS;
  2401.     a.src = i;
  2402.     var c = setTimeout(h, 3e4);
  2403.  
  2404.     function f() {
  2405.         d();
  2406.         var c = SignUp.CookieValue("MNS");
  2407.         SignUp.RemoveCookie("MNS");
  2408.         if (SignUp.MNSDownloading) if (!c) e();
  2409.         else {
  2410.             var f = "",
  2411.                 g = c.split("~");
  2412.             for (var a = 0; a < g.length; a++) f += '<p><a href="#" onclick="SignUp.LoadMNS(this);return false;">' + g[a] + "</a></p>";
  2413.             SignUp.Hide(["sugwait", "sugadv"]);
  2414.             var h = GEId("mysugs");
  2415.             h.innerHTML = f;
  2416.             SignUp.Show(["mysugs", "sugavail", "sugdont"]);
  2417.             SignUp.AddIFrame(true);
  2418.             SignUp.FocusSet = {
  2419.                 f: SignUp.Fields[FT.MN].getDomainDD()
  2420.             };
  2421.             SignUp.SetFocus()
  2422.         }
  2423.         b()
  2424.     }
  2425.     function e() {
  2426.         SignUp.Hide(["sugwait", "sugavail", "sugdont"]);
  2427.         SignUp.Show(["sugadv"]);
  2428.         SignUp.FocusSet = {
  2429.             f: SignUp.Fields[FT.MN].getDomainDD()
  2430.         };
  2431.         SignUp.SetFocus()
  2432.     }
  2433.     function h() {
  2434.         d();
  2435.         SignUp.HideMNS();
  2436.         b()
  2437.     }
  2438.     function b() {
  2439.         d();
  2440.         SignUp.MNSDownloading = false
  2441.     }
  2442.     function d() {
  2443.         a.onerror = a.onload = a.onabort = null;
  2444.         if (typeof c == "number") {
  2445.             clearTimeout(c);
  2446.             c = null
  2447.         }
  2448.     }
  2449. };
  2450. SignUp.HideMNS = function () {
  2451.     if (GEId("sugcont") != null) {
  2452.         SignUp.Hide(["sugcont", "sugerror"]);
  2453.         GEId("mysugs").innerHTML = "";
  2454.         SignUp.AddIFrame(false)
  2455.     }
  2456. };
  2457. SignUp.LoadMNS = function (e) {
  2458.     var a = e.innerHTML,
  2459.         b = a.split("@")[0],
  2460.         d = a.split("@")[1];
  2461.     SignUp.Fields[FT.MN].getLiveElement().value = b;
  2462.     SignUp.Fields[FT.MN].getDomainDD().value = d;
  2463.     SignUp.Fields[FT.MN].clearMessage(MSG.Type.Error);
  2464.     SignUp.Fields[FT.MN].setVState(FIELD.VState.Done);
  2465.     SignUp.Fields[FT.MN].clearMessage(MSG.Type.Failure);
  2466.     var c = new MSG.Info(FormatString(GetString("live.accounts.strings.error_1081"), a), [SignUp.Fields[FT.MN]]);
  2467.     SignUp.Fields[FT.MN].setMessage(MSG.Type.Success, c);
  2468.     GEId("isug1").value = GEId("isug2").value = GEId("isug3").value = "";
  2469.     SignUp.Fields[FT.MN].m_sLastMembername = a;
  2470.     SignUp.PickedMNSName = a;
  2471.     SignUp.HideMNS()
  2472. };
  2473. SignUp.MNSAdvDownloading = false;
  2474. SignUp.MNSAdv = function () {
  2475.     if (SignUp.MNSAdvDownloading) return;
  2476.     SignUp.ValidateMNS();
  2477.     if (!SignUp.ValidMNS) return;
  2478.     SignUp.MNSAdvDownloading = true;
  2479.     SignUp.Hide(["sugerror"]);
  2480.     SignUp.Show(["sugwait"]);
  2481.     var a = new Image(1, 1);
  2482.     GEId("tempimgcontainer").appendChild(a);
  2483.     a.onerror = c;
  2484.     a.onload = i;
  2485.     a.onabort = c;
  2486.     var b = "";
  2487.     for (var f = 1; f <= 3; f++) {
  2488.         var h = GEId("isug" + f);
  2489.         if (SignUp.MNSTouched[h.id]) {
  2490.             if (b != "") b += "~";
  2491.             b += h.value
  2492.         }
  2493.     }
  2494.     if (b == "") {
  2495.         g();
  2496.         return
  2497.     }
  2498.     var j = SignUp.SitePath + "/mns.aspx?mnstokens=" + b + "&mnsdomain=" + SignUp.Domain() + "&tk=" + (new Date).getTime() + "&" + SignUp.QS;
  2499.     a.src = j;
  2500.     var d = setTimeout(g, 3e4);
  2501.  
  2502.     function i() {
  2503.         e();
  2504.         var b = SignUp.CookieValue("MNS");
  2505.         SignUp.RemoveCookie("MNS");
  2506.         if (SignUp.MNSAdvDownloading) {
  2507.             if (!b) SignUp.MNSTimeout();
  2508.             else {
  2509.                 var d = "",
  2510.                     f = b.split("~");
  2511.                 for (var a = 0; a < f.length; a++) d += '<p><a href="#" onclick="SignUp.LoadMNS(this);return false;">' + f[a] + "</a></p>";
  2512.                 SignUp.Hide(["sugwait"]);
  2513.                 var g = GEId("mysugs");
  2514.                 g.innerHTML = d;
  2515.                 SignUp.Show(["mysugs", "sugavail"])
  2516.             }
  2517.             SignUp.AddIFrame(true)
  2518.         }
  2519.         c()
  2520.     }
  2521.     function g() {
  2522.         e();
  2523.         SignUp.MNSTimeout();
  2524.         SignUp.AddIFrame(true);
  2525.         c()
  2526.     }
  2527.     function c() {
  2528.         e();
  2529.         SignUp.MNSAdvDownloading = false;
  2530.         SignUp.ValidMNS = false
  2531.     }
  2532.     function e() {
  2533.         a.onerror = a.onload = a.onabort = null;
  2534.         if (typeof d == "number") {
  2535.             clearTimeout(d);
  2536.             d = null
  2537.         }
  2538.     }
  2539. };
  2540. SignUp.MNSTimeout = function () {
  2541.     SignUp.Hide(["sugwait"]);
  2542.     var a = GEId("sugerror");
  2543.     a.innerHTML = GetString("live.accounts.strings.error_1237");
  2544.     SignUp.Hide(["sugavail"]);
  2545.     SignUp.Show(["sugerror"])
  2546. };
  2547. SignUp.DisplayAdvMNS = function () {
  2548.     SignUp.Hide(["sugwait", "sugdont"]);
  2549.     SignUp.Show(["sugadv", "sugavail"]);
  2550.     SignUp.AddIFrame(true)
  2551. };
  2552. SignUp.MNSTouch = function (a) {
  2553.     if (typeof SignUp.MNSTouched == "undefined") SignUp.MNSTouched = {};
  2554.     if (!SignUp.MNSTouched[a.id]) {
  2555.         SignUp.MNSTouched[a.id] = true;
  2556.         a.value = "";
  2557.         a.className = "";
  2558.         a.maxLength = 20;
  2559.         a.focus();
  2560.         a.select()
  2561.     }
  2562. };
  2563. SignUp.ValidMNS = false;
  2564. SignUp.ValidateMNS = function () {
  2565.     for (var b in SignUp.MNSTouched) {
  2566.         var a = GEId(b);
  2567.         a.value = Trim(a.value)
  2568.     }
  2569.     for (var b in SignUp.MNSTouched) if (!c(GEId(b))) break;
  2570.     SignUp.AddIFrame(true);
  2571.  
  2572.     function c(a) {
  2573.         if (a.value.length > 0 && !SignUp.RegExValMatch(a.value, "^[\\w\\.\\-]+$")) {
  2574.             var b = GEId("sugerror");
  2575.             b.innerHTML = GetString("live.accounts.strings.Error_1241");
  2576.             SignUp.Hide(["sugavail"]);
  2577.             SignUp.Show(["sugerror"]);
  2578.             SignUp.ValidMNS = false;
  2579.             return false
  2580.         } else {
  2581.             SignUp.Hide(["sugerror"]);
  2582.             GEId("sugerror").innerHTML = "";
  2583.             SignUp.ValidMNS = true;
  2584.             return true
  2585.         }
  2586.     }
  2587. };
  2588. SignUp.IFrame = null;
  2589. SignUp.AddIFrame = function (b) {
  2590.     if (!SignUp.isIE()) return;
  2591.     if (b) if (SignUp.IFrame == null) {
  2592.         SignUp.IFrame = document.createElement("IFRAME");
  2593.         SignUp.IFrame.src = SignUp.RemoteSitePath + "/images/hig_progcircle_animated.gif";
  2594.         a();
  2595.         GEId("sugcont").appendChild(SignUp.IFrame)
  2596.     } else a();
  2597.     else if (SignUp.IFrame != null) {
  2598.         GEId("sugcont").removeChild(SignUp.IFrame);
  2599.         SignUp.IFrame = null
  2600.     }
  2601.     function a() {
  2602.         var a = GEId("sug");
  2603.         SignUp.IFrame.className = "sugiframe";
  2604.         SignUp.IFrame.style.height = a.clientHeight + 2 + "px";
  2605.         SignUp.IFrame.style.width = a.clientWidth + 3 + "px"
  2606.     }
  2607. };
  2608. AJAX.CheckAvailHandler = function (b, d, c, a) {
  2609.     AJAX.AJAXHandler.apply(this, [b, "POST", d, null, null, null, null, c, a]);
  2610.     this._isSuccess = AJAX.AJAXHandler.prototype.isSuccess
  2611. };
  2612. AJAX.CheckAvailHandler.prototype = {
  2613.     isSuccess: function () {
  2614.         if (this._isSuccess()) {
  2615.             var a = SignUp.CookieValue("CheckAvail");
  2616.             return a != "Error_6"
  2617.         }
  2618.         return false
  2619.     }
  2620. };
  2621. Derive(AJAX.AJAXHandler, AJAX.CheckAvailHandler);
  2622. FIELD.Password = function () {
  2623.     FIELD.Base.apply(this, arguments);
  2624.     this.m_bannedCache = [];
  2625.     this.m_oBannedPwdHandler = null
  2626. };
  2627. FIELD.Password.prototype = {
  2628.     update: function () {
  2629.         this.runValidation()
  2630.     },
  2631.     updateForSubmit: function () {
  2632.         if (this.getVState() == FIELD.VState.Error) this.setVState(FIELD.VState.Pending);
  2633.         this.runValidation();
  2634.         if (this.getVState() == FIELD.VState.Running && exists(this.m_oBannedPwdHandler)) this.m_oBannedPwdHandler.disableRetry()
  2635.     },
  2636.     runValidation: function () {
  2637.         var d = this.getElement(),
  2638.             c = SignUp.Fields[FT.RPWD].getElement(),
  2639.             a = SignUp.Fields[FT.SQ].getElement(),
  2640.             b = SignUp.Fields[FT.SA].getElement(),
  2641.             f = SignUp.Fields[FT.FNAME].getElement(),
  2642.             g = SignUp.Fields[FT.LNAME].getElement();
  2643.         if (!SignUp.Changed(d)) return;
  2644.         var e = null;
  2645.         if (SignUp.Changed(c)) e = c.value;
  2646.         var h = a ? a[a.selectedIndex].value : null,
  2647.             i = b ? b.value : null;
  2648.         try {
  2649.             this.validate(d.value, e, h, i, f.value, g.value, SignUp.Membername());
  2650.             this.clearMessage(MSG.Type.Error);
  2651.             this.checkBanned();
  2652.             if (this.getVState() == FIELD.VState.Pending) this.setVState(FIELD.VState.Done)
  2653.         } catch (j) {
  2654.             this.setMessage(MSG.Type.Error, this.getErrInfo(j))
  2655.         }
  2656.     },
  2657.     validate: function (a, b, f, c, d, e, g) {
  2658.         if (a != "" && a.length < 6) throw new SignUp.Error("Error_1007");
  2659.         if (a.length > 16) throw new SignUp.Error("Error_1010");
  2660.         if (a != "" && !SignUp.RegExValMatch(a, "^[\\x21-\\x7e]+$")) throw new SignUp.Error("Error_1008");
  2661.         if (f != null && SignUp.Contains(f, a, true)) throw new SignUp.Error("Error_1025");
  2662.         if (c != null && (SignUp.Contains(c, a, true) || SignUp.Contains(a, c, true))) throw new SignUp.Error("Error_1012");
  2663.         if (d.length > 2 && SignUp.Contains(a, d, true)) throw new SignUp.Error("Error_1243");
  2664.         if (e.length > 2 && SignUp.Contains(a, e, true)) throw new SignUp.Error("Error_1222");
  2665.         if (SignUp.Contains(a, g, true)) throw new SignUp.Error("Error_1088");
  2666.         if (exists(b)) if (a == "" || b == "") throw new SignUp.Error("Error_1005");
  2667.         else if (a != b) throw new SignUp.Error("Error_1006");
  2668.         if (exists(this.m_bannedCache[a])) if (this.m_bannedCache[a]) throw new SignUp.Error("Error_1217");
  2669.     },
  2670.     checkBanned: function () {
  2671.         if (SignUp.DisableBannedPwd) return;
  2672.         var b = this.getValue();
  2673.         if (this.getVState() != FIELD.VState.Pending) return;
  2674.         this.setVState(FIELD.VState.Running);
  2675.         this.setMessage(MSG.Type.Progress, new MSG.Info(null, [this]));
  2676.         var a = this,
  2677.             f = "command=bannedPwd&pwd=" + this.getValue();
  2678.         if (!exists(this.m_oBannedPwdHandler)) this.m_oBannedPwdHandler = new AJAX.BannedPwdHandler(SignUp.SitePath + "/query.aspx?" + SignUp.QS, true, SignUp.BannedPwdAJAXTimeout, SignUp.IsIWW ? 2 : 0);
  2679.         this.m_oBannedPwdHandler.sendRequest(f, e, d);
  2680.  
  2681.         function e(f) {
  2682.             var e = FIELD.VState.Pending,
  2683.                 d = f.getResponseJSON();
  2684.             if (exists(d.Result)) if (d.Result == AJAX.BannedPwd.Banned) {
  2685.                 a.m_bannedCache[b] = true;
  2686.                 a.setMessage(MSG.Type.Error, a.getErrInfo(new SignUp.Error("Error_1217")))
  2687.             } else if (d.Result == AJAX.BannedPwd.NotBanned) {
  2688.                 a.m_bannedCache[b] = false;
  2689.                 e = FIELD.VState.Done
  2690.             }
  2691.             c(e)
  2692.         }
  2693.         function d() {
  2694.             c(FIELD.VState.Error)
  2695.         }
  2696.         function c(b) {
  2697.             a.setVState(b);
  2698.             a.enable();
  2699.             a.clearMessage(MSG.Type.Progress)
  2700.         }
  2701.     },
  2702.     evt_onkeyup: function (a) {
  2703.         SignUp.SetPasswordStrength();
  2704.         if (SignUp.CapsOn != null) {
  2705.             a = EVENT.get(a);
  2706.             if (EVENT.getKey(a) == EVENT.Key.Caps) if (!SignUp.CapsOn) this.setMessage(MSG.Type.Warning, new MSG.Info(null, [this]));
  2707.             else this.clearMessage(MSG.Type.Warning)
  2708.         }
  2709.     },
  2710.     evt_onkeypress: function (a) {
  2711.         a = EVENT.get(a);
  2712.         if (EVENT.isLowerCaseKey(a) && EVENT.isShiftDown(a) || EVENT.isUpperCaseKey(a) && !EVENT.isShiftDown(a)) {
  2713.             SignUp.CapsOn = true;
  2714.             this.setMessage(MSG.Type.Warning, new MSG.Info(null, [this]))
  2715.         } else if (EVENT.isLowerCaseKey(a) && !EVENT.isShiftDown(a) || EVENT.isUpperCaseKey(a) && EVENT.isShiftDown(a)) {
  2716.             SignUp.CapsOn = false;
  2717.             this.clearMessage(MSG.Type.Warning)
  2718.         }
  2719.     },
  2720.     evt_onblur: function () {
  2721.         if (this.getVState() == FIELD.VState.Running) this.disable();
  2722.         if (SignUp.CheckOOBE()) SignUp.MsgHandler.hideMessage(MSG.Type.Error, this);
  2723.         this.clearMessage(MSG.Type.Warning)
  2724.     },
  2725.     evt_onfocus: function () {
  2726.         if (SignUp.CapsOn) this.setMessage(MSG.Type.Warning, new MSG.Info(null, [this]));
  2727.         this.showHelp();
  2728.         if (SignUp.CheckOOBE()) SignUp.MsgHandler.showMessage(MSG.Type.Error, this);
  2729.         else if (SignUp.IsWeb) SignUp.SetPasswordStrength()
  2730.     },
  2731.     evt_onchange: function (a) {
  2732.         if (this.getVState() == FIELD.VState.Running && exists(this.m_oBannedPwdHandler)) this.m_oBannedPwdHandler.cancel();
  2733.         this.setVState(FIELD.VState.Pending);
  2734.         this.onValueChangeUser();
  2735.         SignUp.ValidateField(EVENT.getTarget(a))
  2736.     }
  2737. };
  2738. Derive(FIELD.Base, FIELD.Password);
  2739. FIELD.RetypePassword = function () {
  2740.     FIELD.Base.apply(this, arguments)
  2741. };
  2742. FIELD.RetypePassword.prototype = {
  2743.     evt_onkeyup: function (a) {
  2744.         if (SignUp.CapsOn != null) {
  2745.             a = EVENT.get(a);
  2746.             if (EVENT.getKey(a) == EVENT.Key.Caps) if (!SignUp.CapsOn) this.setMessage(MSG.Type.Warning, new MSG.Info(null, [this]));
  2747.             else this.clearMessage(MSG.Type.Warning)
  2748.         }
  2749.     },
  2750.     evt_onkeypress: function (a) {
  2751.         a = EVENT.get(a);
  2752.         if (EVENT.isLowerCaseKey(a) && EVENT.isShiftDown(a) || EVENT.isUpperCaseKey(a) && !EVENT.isShiftDown(a)) {
  2753.             SignUp.CapsOn = true;
  2754.             this.setMessage(MSG.Type.Warning, new MSG.Info(null, [this]))
  2755.         } else if (EVENT.isLowerCaseKey(a) && !EVENT.isShiftDown(a) || EVENT.isUpperCaseKey(a) && EVENT.isShiftDown(a)) {
  2756.             SignUp.CapsOn = false;
  2757.             this.clearMessage(MSG.Type.Warning)
  2758.         }
  2759.     },
  2760.     evt_onblur: function () {
  2761.         if (SignUp.CheckOOBE()) SignUp.MsgHandler.hideMessage(MSG.Type.Error, this);
  2762.         this.clearMessage(MSG.Type.Warning)
  2763.     },
  2764.     evt_onfocus: function () {
  2765.         if (SignUp.CapsOn) this.setMessage(MSG.Type.Warning, new MSG.Info(null, [this]));
  2766.         this.showHelp();
  2767.         if (SignUp.CheckOOBE()) SignUp.MsgHandler.showMessage(MSG.Type.Error, this);
  2768.         else if (SignUp.IsWeb) SignUp.SetPasswordStrength()
  2769.     },
  2770.     evt_onchange: function (a) {
  2771.         this.onValueChangeUser();
  2772.         SignUp.ValidateField(EVENT.getTarget(a))
  2773.     }
  2774. };
  2775. Derive(FIELD.Base, FIELD.RetypePassword);
  2776. SignUp.evt_document_onkeyup = function (a) {
  2777.     if (SignUp.CapsOn != null) {
  2778.         a = EVENT.get(a);
  2779.         if (EVENT.getKey(a) == EVENT.Key.Caps) SignUp.CapsOn = !SignUp.CapsOn
  2780.     }
  2781. };
  2782. EVENT.add(document, EVENT.Name.OnKeyUp, SignUp.evt_document_onkeyup);
  2783. SignUp.strgmtrLoading = false;
  2784. SignUp.SetPasswordStrength = function () {
  2785.     var a = 0,
  2786.         c = GEId("iPwdMeter");
  2787.     if (!c) return;
  2788.     a = o(SignUp.Fields[FT.PWD].getValue());
  2789.     var i = "&nbsp;",
  2790.         h = "";
  2791.     if (a >= 1 && a <= 3) {
  2792.         if (typeof SignUp.StrengthText == "undefined") {
  2793.             SignUp.StrengthText = [];
  2794.             SignUp.StrengthText.push(GetString("live.accounts.strings.PWDStrengthMeter_PasswordWeak"));
  2795.             SignUp.StrengthText.push(GetString("live.accounts.strings.PWDStrengthMeter_PasswordMedium"));
  2796.             SignUp.StrengthText.push(GetString("live.accounts.strings.PWDStrengthMeter_PasswordStrong"))
  2797.         }
  2798.         i = "&nbsp;" + SignUp.StrengthText[a - 1];
  2799.         h = "url(" + SignUp.RemoteSitePath + "/images/password_meter.png)"
  2800.     }
  2801.     c.style.width = 68 * a + "px";
  2802.     c.innerHTML = i;
  2803.     c.style.backgroundImage = h;
  2804.     if (typeof SignUp.Strength == "undefined") SignUp.Strength = {
  2805.         kNoCanonicalCounterpart: 0,
  2806.         kCapitalLetter: 0,
  2807.         kSmallLetter: 1,
  2808.         kDigit: 2,
  2809.         kPunctuation: 3,
  2810.         kAlpha: 4,
  2811.         kCanonicalizeLettersOnly: true,
  2812.         kCananicalizeEverything: false
  2813.     };
  2814.  
  2815.     function b(b, a) {
  2816.         this.type = b;
  2817.         this.fResult = a
  2818.     }
  2819.     function e(a, c) {
  2820.         var b = false;
  2821.         switch (c) {
  2822.         case SignUp.Strength.kCapitalLetter:
  2823.             if (a >= "A" && a <= "Z") b = true;
  2824.             break;
  2825.         case SignUp.Strength.kSmallLetter:
  2826.             if (a >= "a" && a <= "z") b = true;
  2827.             break;
  2828.         case SignUp.Strength.kDigit:
  2829.             if (a >= "0" && a <= "9") b = true;
  2830.             break;
  2831.         case SignUp.Strength.kPunctuation:
  2832.             if ("!@#$%^&*()_+-='\";:[{]}|.>,</?`~".indexOf(a) >= 0) b = true;
  2833.             break;
  2834.         case SignUp.Strength.kAlpha:
  2835.             if (e(a, SignUp.Strength.kCapitalLetter) || e(a, SignUp.Strength.kSmallLetter)) b = true
  2836.         }
  2837.         return b
  2838.     }
  2839.     function g(f, g, h) {
  2840.         var c = SignUp.Strength.kNoCanonicalCounterpart,
  2841.             a = "",
  2842.             d = 0;
  2843.         if (f != null && f.length > 0) {
  2844.             a = f;
  2845.             a = a.toLowerCase();
  2846.             if (g.GetCount() > 0) {
  2847.                 d = a.length;
  2848.                 for (var b = 0; b < d; b++) {
  2849.                     if (h && !e(a.charAt(b), SignUp.Strength.kSmallLetter)) continue;
  2850.                     c = g.Lookup(a.charAt(b));
  2851.                     if (c != SignUp.Strength.kNoCanonicalCounterpart) a = a.substring(0, b) + c + a.substring(b + 1, d)
  2852.                 }
  2853.             }
  2854.         }
  2855.         return a
  2856.     }
  2857.     function d(b, a) {
  2858.         if (b == null || isNaN(a)) return false;
  2859.         else if (b.length < a) return false;
  2860.         return true
  2861.     }
  2862.     function f(d, g) {
  2863.         var h = 0,
  2864.             a, c = [new b(SignUp.Strength.kCapitalLetter, false), new b(SignUp.Strength.kSmallLetter, false), new b(SignUp.Strength.kDigit, false), new b(SignUp.Strength.kPunctuation, false)];
  2865.         if (d == null || isNaN(g)) return false;
  2866.         for (var f = 0; f < d.length; f++) for (a = 0; a < c.length; a++) if (!c[a].fResult && e(d.charAt(f), c[a].type)) {
  2867.             c[a].fResult = true;
  2868.             break
  2869.         }
  2870.         for (a = 0; a < c.length; a++) if (c[a].fResult) h++;
  2871.         if (h < g) return false;
  2872.         return true
  2873.     }
  2874.     function p(d, b, c) {
  2875.         var a = "";
  2876.         if (d == null || b == null || c == null) return true;
  2877.         a = g(d, b, SignUp.Strength.kCanonicalizeLettersOnly);
  2878.         if (c.Lookup(a)) return true;
  2879.         return false
  2880.     }
  2881.     function k(i, h, e, f) {
  2882.         var a = "",
  2883.             b = 0;
  2884.         if (i == null || isNaN(h) || e == null || f == null) return true;
  2885.         a = g(i, e, SignUp.Strength.kCananicalizeEverything);
  2886.         b = Math.floor(h * a.length);
  2887.         for (var c = a.length; c >= b; c--) for (var d = 0; d + b < a.length; d++) {
  2888.             var j = a.substr(d, c);
  2889.             if (f.Lookup(j)) return true
  2890.         }
  2891.         return false
  2892.     }
  2893.     function j() {
  2894.         if (typeof SignUp.SM == "undefined") SignUp.SM = new SignUp.SimilarityMap;
  2895.         if (typeof SignUp.DT == "undefined") SignUp.DT = new SignUp.Dictionary;
  2896.         if (SignUp.SM.GetCount() == 0) {
  2897.             SignUp.SM.Add("3", "e");
  2898.             SignUp.SM.Add("x", "k");
  2899.             SignUp.SM.Add("5", "s");
  2900.             SignUp.SM.Add("$", "s");
  2901.             SignUp.SM.Add("6", "g");
  2902.             SignUp.SM.Add("7", "t");
  2903.             SignUp.SM.Add("8", "b");
  2904.             SignUp.SM.Add("|", "l");
  2905.             SignUp.SM.Add("9", "g");
  2906.             SignUp.SM.Add("+", "t");
  2907.             SignUp.SM.Add("@", "a");
  2908.             SignUp.SM.Add("0", "o");
  2909.             SignUp.SM.Add("1", "l");
  2910.             SignUp.SM.Add("2", "z");
  2911.             SignUp.SM.Add("!", "i")
  2912.         }
  2913.         try {
  2914.             if (!SignUp.strgmtrLoading) {
  2915.                 SignUp.strgmtrLoading = true;
  2916.                 var a = document.createElement("script");
  2917.                 a.setAttribute("type", "text/javascript");
  2918.                 a.setAttribute("src", SignUp.RemoteSitePath + "/js/strgmtr.js?sunx=" + SignUp.SUNX);
  2919.                 document.getElementsByTagName("head")[0].appendChild(a)
  2920.             }
  2921.         } catch (b) {}
  2922.     }
  2923.     function m(a) {
  2924.         j();
  2925.         return d(a, "7") && f(a, "3") && !k(a, "0.6", SignUp.SM, SignUp.DT)
  2926.     }
  2927.     function l(a) {
  2928.         j();
  2929.         return d(a, "7") && f(a, "2") && !p(a, SignUp.SM, SignUp.DT)
  2930.     }
  2931.     function n(a) {
  2932.         return d(a, "6") || !d(a, "0")
  2933.     }
  2934.     function o(a) {
  2935.         try {
  2936.             if (m(a)) return 3;
  2937.             else if (l(a)) return 2;
  2938.             else if (n(a)) return 1
  2939.         } catch (b) {}
  2940.         return 0
  2941.     }
  2942. };
  2943. SignUp.SimilarityMap = function () {
  2944.     this.m_elements = "";
  2945.     this.m_canonicalCounterparts = ""
  2946. };
  2947. SignUp.SimilarityMap.prototype.Add = function (b, a) {
  2948.     this.m_elements += b;
  2949.     this.m_canonicalCounterparts += a
  2950. };
  2951. SignUp.SimilarityMap.prototype.Lookup = function (c) {
  2952.     var a = SignUp.Strength.kNoCanonicalCounterpart,
  2953.         b = this.m_elements.indexOf(c);
  2954.     if (b >= 0) a = this.m_canonicalCounterparts.charAt(b);
  2955.     return a
  2956. };
  2957. SignUp.SimilarityMap.prototype.GetCount = function () {
  2958.     return this.m_elements.length
  2959. };
  2960. SignUp.Dictionary = function () {
  2961.     this.m_entries = []
  2962. };
  2963. SignUp.Dictionary.prototype.Lookup = function (b) {
  2964.     for (var a = 0; a < this.m_entries.length; a++) if (this.m_entries[a].Lookup(b)) return true
  2965. };
  2966. SignUp.Dictionary.prototype.Add = function (b, a) {
  2967.     var d = this.m_entries.length,
  2968.         c = new SignUp.DictionaryEntry(b, a);
  2969.     this.m_entries[d] = c
  2970. };
  2971. SignUp.DictionaryEntry = function (b, a) {
  2972.     this.m_length = b;
  2973.     this.m_wordList = a
  2974. };
  2975. SignUp.DictionaryEntry.prototype.Lookup = function (b) {
  2976.     var e = false;
  2977.     if (b.length == this.m_length) {
  2978.         var c = 0,
  2979.             d = this.m_wordList.length - 1;
  2980.         while (c <= d) {
  2981.             var a = Math.floor((c + d) / 2);
  2982.             if (b == this.m_wordList[a]) {
  2983.                 e = true;
  2984.                 break
  2985.             } else if (b > this.m_wordList[a]) d = a - 1;
  2986.             else c = a + 1
  2987.         }
  2988.     }
  2989.     return e
  2990. };
  2991. var PWDR = {
  2992.     FT: {
  2993.         None: 0,
  2994.         Alt: 1,
  2995.         Phone: 2,
  2996.         SQSA: 4,
  2997.         All: 7
  2998.     },
  2999.     Update: function (b, c) {
  3000.         if (PWDR.State == b) return;
  3001.         var a = !c;
  3002.         if (exists(SignUp.Fields[FT.PHN]) && SignUp.Fields[FT.PHN].exists()) if (b & PWDR.FT.Phone) {
  3003.             if (!SignUp.Fields[FT.PHN].isDisplayed()) {
  3004.                 SignUp.Fields[FT.PHN].display(a);
  3005.                 a = false
  3006.             }
  3007.         } else if (SignUp.Fields[FT.PHN].isDisplayed()) SignUp.Fields[FT.PHN].remove();
  3008.         if (b & PWDR.FT.Alt) {
  3009.             if (!SignUp.Fields[FT.ALT].isDisplayed()) {
  3010.                 SignUp.Fields[FT.ALT].display(a);
  3011.                 a = false
  3012.             }
  3013.         } else if (SignUp.Fields[FT.ALT].isDisplayed()) SignUp.Fields[FT.ALT].remove();
  3014.         if (b & PWDR.FT.SQSA) {
  3015.             if (!SignUp.Fields[FT.SQ].isDisplayed()) {
  3016.                 SignUp.Fields[FT.SQ].display(a);
  3017.                 SignUp.Fields[FT.SA].display()
  3018.             }
  3019.         } else if (SignUp.Fields[FT.SQ].isDisplayed()) {
  3020.             SignUp.Fields[FT.SQ].remove();
  3021.             SignUp.Fields[FT.SA].remove()
  3022.         }
  3023.         PWDR.State = b
  3024.     }
  3025. };
  3026. if (SignUp.IsIWW) {
  3027.     PWDR.LiveState = SignUp.SMSEnabled ? PWDR.FT.All : PWDR.FT.Alt | PWDR.FT.SQSA;
  3028.     PWDR.EasiState = PWDR.LiveState
  3029. } else {
  3030.     PWDR.LiveState = SignUp.SMSEnabled ? PWDR.FT.Alt | PWDR.FT.Phone : PWDR.FT.Alt;
  3031.     PWDR.EasiState = SignUp.SMSEnabled ? PWDR.FT.Phone : PWDR.FT.None
  3032. }
  3033. PWDR.State = SignUp.IsEASI ? PWDR.EasiState : PWDR.LiveState;
  3034. FIELD.AltEmail = function () {
  3035.     FIELD.Base.apply(this, arguments);
  3036.     if (!(PWDR.State & PWDR.FT.Alt)) this.m_bDisplayed = false
  3037. };
  3038. FIELD.AltEmail.prototype = {
  3039.     isValidationNeeded: function () {
  3040.         var a = this.getElement();
  3041.         if (a == null || !this.isDisplayed() || !SignUp.Changed(a)) return false;
  3042.         return true
  3043.     },
  3044.     update: function () {
  3045.         if (this.isValidationNeeded()) try {
  3046.             this.validate(this.getElement().value, SignUp.Fields[FT.MN].getValue());
  3047.             this.clearMessage(MSG.Type.Error)
  3048.         } catch (a) {
  3049.             this.setMessage(MSG.Type.Error, this.getErrInfo(a))
  3050.         }
  3051.     },
  3052.     validate: function (a, b) {
  3053.         if (a == "") throw new SignUp.Error("Error_1232");
  3054.         if (a.length > 113) throw new SignUp.Error("Error_1224");
  3055.         if (b != GetString("live.accounts.strings.PWRHIP_EmailExample") && strEquals(a, b, true)) throw new SignUp.Error("Error_1020");
  3056.         if (!SignUp.RegExValMatch(a, "^$|^(?:(?:(?![\\.]{2,}).)*)@(?:(?:(?![\\.]{2,}).)*)([\\.][a-zA-Z]{2,4})$") || !SignUp.RegExValMatch(a, "^$|^[^@]*[\\w][@][\\w][^@]*$")) throw new SignUp.Error("Error_1161");
  3057.         if (!SignUp.RegExValMatch(a, "^$|^[\\w\\-\\.\\@]{1,64}@[\\w\\-\\.]{1,48}$")) throw new SignUp.Error("Error_1224");
  3058.         if (!SignUp.RegExValMatch(a, "^$|^[\\w].+[\\w]$")) throw new SignUp.Error("Error_1161");
  3059.     },
  3060.     evt_onchange: function (a) {
  3061.         this.onValueChangeUser();
  3062.         SignUp.ValidateField(EVENT.getTarget(a))
  3063.     },
  3064.     evt_onfocus: function () {
  3065.         this.showHelp();
  3066.         if (SignUp.CheckOOBE()) SignUp.MsgHandler.showMessage(MSG.Type.Error, this)
  3067.     },
  3068.     evt_onblur: function () {
  3069.         SignUp.MsgHandler.hideMessage(MSG.Type.Error, this)
  3070.     },
  3071.     evt_switch_onclick: function () {
  3072.         if (SignUp.SMSEnabled) PWDR.Update(PWDR.FT.SQSA | PWDR.FT.Phone);
  3073.         else PWDR.Update(PWDR.FT.SQSA);
  3074.         return false
  3075.     }
  3076. };
  3077. Derive(FIELD.Base, FIELD.AltEmail);
  3078. FIELD.SecurityQuestion = function (c, b, a, d) {
  3079.     FIELD.Base.apply(this, [c, a, d]);
  3080.     this.m_errHolderId = b;
  3081.     if (!(PWDR.State & PWDR.FT.SQSA)) this.m_bDisplayed = false
  3082. };
  3083. FIELD.SecurityQuestion.prototype = {
  3084.     getValue: function () {
  3085.         var a = this.getElement(),
  3086.             b = a.options[a.selectedIndex].value;
  3087.         if (b != "0") return b;
  3088.         return null
  3089.     },
  3090.     clearValue: function () {
  3091.         var a = this.getElement();
  3092.         a.value = "0"
  3093.     },
  3094.     isValidationNeeded: function () {
  3095.         var a = this.getElement();
  3096.         if (a == null || !this.isDisplayed() || !SignUp.Changed(a)) return false;
  3097.         return true
  3098.     },
  3099.     update: function () {
  3100.         if (this.isValidationNeeded()) try {
  3101.             var a = this.getElement();
  3102.             this.validate(a.options[a.selectedIndex].value, SignUp.Fields[FT.PWD].getValue());
  3103.             this.clearMessage(MSG.Type.Error)
  3104.         } catch (b) {
  3105.             this.setMessage(MSG.Type.Error, this.getErrInfo(b))
  3106.         }
  3107.     },
  3108.     validate: function (a, b) {
  3109.         if (a == "0") throw new SignUp.Error("Error_1026");
  3110.         else if (SignUp.Contains(a, b, true)) throw new SignUp.Error("Error_1025");
  3111.     },
  3112.     evt_onchange: function (a) {
  3113.         this.onValueChangeUser();
  3114.         SignUp.ValidateField(EVENT.getTarget(a));
  3115.         this.showHelp()
  3116.     },
  3117.     evt_onfocus: function () {
  3118.         if (SignUp.CheckOOBE()) SignUp.MsgHandler.showMessage(MSG.Type.Error, this);
  3119.         this.showHelp()
  3120.     },
  3121.     evt_onblur: function () {
  3122.         SignUp.MsgHandler.hideMessage(MSG.Type.Error, this)
  3123.     },
  3124.     populate: function (d) {
  3125.         var a = GEId("SecretQuestionContainer");
  3126.         if (!exists(a)) return;
  3127.         DOM.clear(a);
  3128.         if (d.questions.length > 0) {
  3129.             if (!SignUp.IsInline) {
  3130.                 var i = DOM.create("p", {
  3131.                     id: this.m_errHolderId,
  3132.                     className: "error"
  3133.                 });
  3134.                 i.style.display = "none";
  3135.                 a.appendChild(i)
  3136.             }
  3137.             var h = DOM.create("label", {
  3138.                 htmlFor: this.m_elementId
  3139.             });
  3140.             h.appendChild(DOM.text(GetString(SignUp.IsIWW ? "live.accounts.strings.IWW_Signup_FieldLabel_SQ" : "live.accounts.strings.FieldLabel_Question")));
  3141.             a.appendChild(h);
  3142.             if (!SignUp.IsWeb && !SignUp.IsInline) a.appendChild(DOM.create("br"));
  3143.             var e = DOM.create("div", {
  3144.                 className: "value"
  3145.             });
  3146.             a.appendChild(e);
  3147.             var b = DOM.create("select", {
  3148.                 id: this.m_elementId,
  3149.                 name: this.m_elementId
  3150.             });
  3151.             EVENT.add(b, EVENT.Name.OnChange, this.evt_onchange, this);
  3152.             if (SignUp.IsWeb || SignUp.IsInline) EVENT.add(b, EVENT.Name.OnFocus, this.evt_onfocus, this);
  3153.             if (SignUp.CheckOOBE()) EVENT.add(b, EVENT.Name.OnBlur, this.evt_onblur, this);
  3154.             var c = DOM.create("option", {
  3155.                 value: 0,
  3156.                 selected: true,
  3157.                 defaultSelected: true
  3158.             });
  3159.             c.innerHTML = GetString("live.accounts.strings.Label_Proofs_SelectPhoneNumber");
  3160.             b.appendChild(c);
  3161.             for (var f = 0; f < d.questions.length; f++) {
  3162.                 c = DOM.create("option", {
  3163.                     value: d.questions[f]
  3164.                 });
  3165.                 c.innerHTML = d.questions[f];
  3166.                 b.appendChild(c)
  3167.             }
  3168.             e.appendChild(b);
  3169.             if (SignUp.CheckOOBE()) {
  3170.                 var g = DOM.create("img", {
  3171.                     className: "erroricon",
  3172.                     id: this.m_errHolderId,
  3173.                     alt: "",
  3174.                     src: SignUp.InlineErrorIcon
  3175.                 });
  3176.                 g.style.display = "none";
  3177.                 e.appendChild(g)
  3178.             }
  3179.             if (!SignUp.IsIWW) e.appendChild(DOM.create("br"))
  3180.         }
  3181.         SignUp.RemoveChanged(this.getElement())
  3182.     }
  3183. };
  3184. Derive(FIELD.Base, FIELD.SecurityQuestion);
  3185. FIELD.SecretAnswer = function () {
  3186.     FIELD.Base.apply(this, arguments);
  3187.     if (!(PWDR.State & PWDR.FT.SQSA)) this.m_bDisplayed = false
  3188. };
  3189. FIELD.SecretAnswer.prototype = {
  3190.     isValidationNeeded: function () {
  3191.         var a = this.getElement();
  3192.         if (a == null || !this.isDisplayed() || !SignUp.Changed(a)) return false;
  3193.         return true
  3194.     },
  3195.     update: function () {
  3196.         if (this.isValidationNeeded()) try {
  3197.             this.validate(this.getValue(), SignUp.Fields[FT.SQ].getValue(), SignUp.Fields[FT.PWD].getValue(), SignUp.Membername());
  3198.             this.clearMessage(MSG.Type.Error)
  3199.         } catch (a) {
  3200.             this.setMessage(MSG.Type.Error, this.getErrInfo(a))
  3201.         }
  3202.     },
  3203.     validate: function (a, c, b, d) {
  3204.         if (a == GetString("live.accounts.strings.General_SecretAnswerHelp")) a = "";
  3205.         if (a == "") throw new SignUp.Error("Error_1223");
  3206.         else if (a.length < SignUp.SecretAnswerMinLength) throw new SignUp.Error("Error_1029");
  3207.         else if (a.length > 32) throw new SignUp.Error("Error_1031");
  3208.         else if (SignUp.RegExValMatch(a, "[\\x24\\x22\\x3C\\x3E\\x28\\x29\\x3B\\x26\\x25\\x23\\x3A\\x5C\\x7B\\x7D]+")) throw new SignUp.Error("Error_1030");
  3209.         else if (SignUp.Fields[FT.SQ].getElement().value != "0" && (SignUp.Contains(c, a, true) || SignUp.Contains(a, c, true))) throw new SignUp.Error("Error_1023");
  3210.         else if (SignUp.Contains(b, a, true) || SignUp.Contains(a, b, true)) throw new SignUp.Error("Error_1012");
  3211.         else if (SignUp.Contains(a, d, true)) throw new SignUp.Error("Error_1027");
  3212.     },
  3213.     evt_onchange: function (a) {
  3214.         this.onValueChangeUser();
  3215.         SignUp.ValidateField(EVENT.getTarget(a))
  3216.     },
  3217.     evt_onfocus: function (a) {
  3218.         this.showHelp();
  3219.         if (SignUp.CheckOOBE()) {
  3220.             SignUp.MsgHandler.showMessage(MSG.Type.Error, this);
  3221.             SignUp.HandleHintFocusOn(EVENT.getTarget(a), "General_SecretAnswerHelp", 32)
  3222.         }
  3223.     },
  3224.     evt_onblur: function (a) {
  3225.         SignUp.MsgHandler.hideMessage(MSG.Type.Error, this);
  3226.         SignUp.HandleHintFocusOff(EVENT.getTarget(a), "General_SecretAnswerHelp", 32)
  3227.     },
  3228.     evt_switch_onclick: function () {
  3229.         if (SignUp.SMSEnabled) PWDR.Update(PWDR.FT.Alt | PWDR.FT.Phone);
  3230.         else PWDR.Update(PWDR.FT.Alt);
  3231.         return false
  3232.     }
  3233. };
  3234. Derive(FIELD.Base, FIELD.SecretAnswer);
  3235. FIELD.Phone = function (f, e, b, a, g, d, c) {
  3236.     FIELD.Base.apply(this, [f, null, g]);
  3237.     this.m_countryDDId = e;
  3238.     this.m_mobilePhoneHelpStringId = b;
  3239.     this.m_mobileEmailHelpStringId = a;
  3240.     this.m_mobilePhoneLabelId = d;
  3241.     this.m_mobileEmailLabelId = c;
  3242.     if (!(PWDR.State & PWDR.FT.Phone)) this.m_bDisplayed = false
  3243. };
  3244. FIELD.Phone.prototype = {
  3245.     initialize: function (c) {
  3246.         this.m_phoneControl = c;
  3247.         var b = this.getCountryDD();
  3248.         EVENT.add(b, EVENT.Name.OnFocus, this.evt_Phone_SMSCountry_onfocus, this);
  3249.         EVENT.add(b, EVENT.Name.OnChange, this.evt_Phone_SMSCountry_onchange, this);
  3250.         var a = this.getElement();
  3251.         EVENT.add(a, EVENT.Name.OnChange, this.evt_onchange, this);
  3252.         EVENT.add(a, EVENT.Name.OnFocus, this.evt_onfocus, this);
  3253.         EVENT.add(a, EVENT.Name.OnBlur, this.evt_onblur, this)
  3254.     },
  3255.     getValue: function () {
  3256.         return this.m_phoneControl.getPhoneNumber()
  3257.     },
  3258.     getCountryDD: function () {
  3259.         return GEId(this.m_countryDDId)
  3260.     },
  3261.     getCountryDDSelected: function () {
  3262.         return this.m_phoneControl.getCountryISO()
  3263.     },
  3264.     getMobilePhoneLabel: function () {
  3265.         return GEId(this.m_mobilePhoneLabelId)
  3266.     },
  3267.     getMobileEmailLabel: function () {
  3268.         return GEId(this.m_mobileEmailLabelId)
  3269.     },
  3270.     isValidationNeeded: function () {
  3271.         var a = this.getElement();
  3272.         if (a == null || !this.isDisplayed() || !SignUp.Changed(a)) return false;
  3273.         return true
  3274.     },
  3275.     update: function () {
  3276.         if (this.isValidationNeeded()) try {
  3277.             this.validate(this.getCountryDDSelected(), this.getValue());
  3278.             this.clearMessage(MSG.Type.Error)
  3279.         } catch (a) {
  3280.             this.setMessage(MSG.Type.Error, this.getErrInfo(a))
  3281.         }
  3282.     },
  3283.     validate: function (b, a) {
  3284.         if (!this.m_phoneControl.validate(b, a)) throw new SignUp.Error(this.m_phoneControl.isMobileEmail() ? "Error_1252" : "Error_1208");
  3285.     },
  3286.     showHelp: function () {
  3287.         var a = this.m_phoneControl.isMobileEmail() ? this.m_mobileEmailHelpStringId : this.m_mobilePhoneHelpStringId;
  3288.         SignUp.MsgHandler.clearMessages(MSG.Type.Help);
  3289.         this.setMessage(MSG.Type.Help, new MSG.SignUp.Info.Help(a, [this]))
  3290.     },
  3291.     setFocus: function (b) {
  3292.         var a = this.getCountryDD();
  3293.         if (DOM.isElement(a)) {
  3294.             SignUp.FocusSet = {
  3295.                 f: a,
  3296.                 s: a
  3297.             };
  3298.             if (!b) SignUp.SetFocus()
  3299.         }
  3300.     },
  3301.     evt_Phone_SMSCountry_onfocus: function () {
  3302.         this.showHelp()
  3303.     },
  3304.     evt_Phone_SMSCountry_onchange: function () {
  3305.         this.clearMessage(MSG.Type.Error);
  3306.         SignUp.RemoveChanged(this.getElement().id);
  3307.         if (this.m_phoneControl.isMobileEmail()) {
  3308.             DOM.visible(this.getMobilePhoneLabel(), Visibility.Removed);
  3309.             DOM.visible(this.getMobileEmailLabel(), Visibility.Visible)
  3310.         } else {
  3311.             DOM.visible(this.getMobileEmailLabel(), Visibility.Removed);
  3312.             DOM.visible(this.getMobilePhoneLabel(), Visibility.Visible)
  3313.         }
  3314.         this.showHelp()
  3315.     },
  3316.     evt_onfocus: function () {
  3317.         if (SignUp.CheckOOBE()) SignUp.MsgHandler.showMessage(MSG.Type.Error, this);
  3318.         this.showHelp()
  3319.     },
  3320.     evt_onchange: function (a) {
  3321.         this.onValueChangeUser();
  3322.         SignUp.ValidateField(EVENT.getTarget(a))
  3323.     },
  3324.     evt_onblur: function (a) {
  3325.         if (SignUp.CheckOOBE()) SignUp.MsgHandler.hideMessage(MSG.Type.Error, this);
  3326.         this.onValueChangeUser();
  3327.         SignUp.ValidateField(EVENT.getTarget(a))
  3328.     }
  3329. };
  3330. Derive(FIELD.Base, FIELD.Phone);
  3331. FIELD.FirstName = function () {
  3332.     FIELD.Base.apply(this, arguments)
  3333. };
  3334. FIELD.FirstName.prototype = {
  3335.     setValue: function (a) {
  3336.         if (isString(a)) {
  3337.             if (a.length > 40) a = a.substring(0, 39);
  3338.             this.getElement().value = a;
  3339.             SignUp.SetChanged(this.getElement().id)
  3340.         }
  3341.     },
  3342.     update: function () {
  3343.         var a = this.getElement();
  3344.         if (!SignUp.Changed(a)) return;
  3345.         try {
  3346.             this.validate(a.value);
  3347.             this.clearMessage(MSG.Type.Error)
  3348.         } catch (b) {
  3349.             this.setMessage(MSG.Type.Error, this.getErrInfo(b))
  3350.         }
  3351.     },
  3352.     validate: function (a) {
  3353.         if (a == "") throw new SignUp.Error("Error_1229");
  3354.         else if (SignUp.RegExValMatch(a, "[\\x00-\\x1f]|[\\x21-\\x26]|[\\x28-\\x2c]|[\\x2f]|[\\x3a-\\x40]|[\\x5b-\\x5e]|[\\x7b-\\x7f]|[\\x81]|[\\xa0]|[\\xad]+")) throw new SignUp.Error("Error_1234");
  3355.         else if (SignUp.Contains(a, "www.", true) || SignUp.Contains(a, "http", true)) throw new SignUp.Error("Error_1236");
  3356.         else if (a.length > 2 && SignUp.Contains(SignUp.Fields[FT.PWD].getValue(), a, true)) throw new SignUp.Error("Error_1243");
  3357.     },
  3358.     evt_onchange: function (a) {
  3359.         this.onValueChangeUser();
  3360.         SignUp.ValidateField(EVENT.getTarget(a))
  3361.     },
  3362.     evt_onfocus: function () {
  3363.         this.showHelp();
  3364.         if (SignUp.CheckOOBE()) SignUp.MsgHandler.showMessage(MSG.Type.Error, this)
  3365.     },
  3366.     evt_onblur: function () {
  3367.         SignUp.MsgHandler.hideMessage(MSG.Type.Error, this)
  3368.     }
  3369. };
  3370. Derive(FIELD.Base, FIELD.FirstName);
  3371. FIELD.LastName = function () {
  3372.     FIELD.Base.apply(this, arguments)
  3373. };
  3374. FIELD.LastName.prototype = {
  3375.     setValue: function (a) {
  3376.         if (isString(a)) {
  3377.             if (a.length > 40) a = a.substring(0, 39);
  3378.             this.getElement().value = a;
  3379.             SignUp.SetChanged(this.getElement().id)
  3380.         }
  3381.     },
  3382.     update: function () {
  3383.         var a = this.getElement();
  3384.         if (!SignUp.Changed(a)) return;
  3385.         try {
  3386.             this.validate(a.value);
  3387.             this.clearMessage(MSG.Type.Error)
  3388.         } catch (b) {
  3389.             this.setMessage(MSG.Type.Error, this.getErrInfo(b))
  3390.         }
  3391.     },
  3392.     validate: function (a) {
  3393.         if (a == "") throw new SignUp.Error("Error_1230");
  3394.         else if (SignUp.RegExValMatch(a, "[\\x00-\\x1f]|[\\x21-\\x26]|[\\x28-\\x2c]|[\\x2f]|[\\x3a-\\x40]|[\\x5b-\\x5e]|[\\x7b-\\x7f]|[\\x81]|[\\xa0]|[\\xad]+")) throw new SignUp.Error("Error_1235");
  3395.         else if (SignUp.Contains(a, "www.", true) || SignUp.Contains(a, "http", true)) throw new SignUp.Error("Error_1236");
  3396.         else if (a.length > 2 && SignUp.Contains(SignUp.Fields[FT.PWD].getValue(), a, true)) throw new SignUp.Error("Error_1222");
  3397.     },
  3398.     evt_onchange: function (a) {
  3399.         this.onValueChangeUser();
  3400.         SignUp.ValidateField(EVENT.getTarget(a))
  3401.     },
  3402.     evt_onfocus: function () {
  3403.         this.showHelp();
  3404.         if (SignUp.CheckOOBE()) SignUp.MsgHandler.showMessage(MSG.Type.Error, this)
  3405.     },
  3406.     evt_onblur: function () {
  3407.         SignUp.MsgHandler.hideMessage(MSG.Type.Error, this)
  3408.     }
  3409. };
  3410. Derive(FIELD.Base, FIELD.LastName);
  3411. FIELD.Gender = function (b, a) {
  3412.     FIELD.Base.apply(this, [b]);
  3413.     this.m_elementFemaleId = a
  3414. };
  3415. FIELD.Gender.prototype = {
  3416.     getElementMale: function () {
  3417.         return this.getElement()
  3418.     },
  3419.     getElementFemale: function () {
  3420.         return GEId(this.m_elementFemaleId)
  3421.     },
  3422.     getValue: function () {
  3423.         var b = this.getElementMale(),
  3424.             a = this.getElementFemale();
  3425.         if (b.checked) return b.value;
  3426.         else if (a.checked) return a.value;
  3427.         return null
  3428.     },
  3429.     setValue: function (a) {
  3430.         if (isString(a)) if (strEquals(a, "m", true)) {
  3431.             this.getElementMale().checked = true;
  3432.             SignUp.SetChanged(this.getElementMale().id)
  3433.         } else if (strEquals(a, "f", true)) {
  3434.             this.getElementFemale().checked = true;
  3435.             SignUp.SetChanged(this.getElementFemale().id)
  3436.         }
  3437.     },
  3438.     update: function () {
  3439.         var b = this.getElementMale(),
  3440.             a = this.getElementFemale();
  3441.         if (!(SignUp.Changed(b) || SignUp.Changed(a))) return;
  3442.         var c = this.getValue();
  3443.         try {
  3444.             this.validate(c);
  3445.             this.clearMessage(MSG.Type.Error)
  3446.         } catch (d) {
  3447.             this.setMessage(MSG.Type.Error, this.getErrInfo(d))
  3448.         }
  3449.     },
  3450.     validate: function (a) {
  3451.         if (!exists(a) || a.toLowerCase() != "m" && a.toLowerCase() != "f") throw new SignUp.Error("Error_1226");
  3452.     },
  3453.     evt_onclick: function (a) {
  3454.         this.onValueChangeUser();
  3455.         SignUp.MsgHandler.clearMessages(MSG.Type.Help);
  3456.         SignUp.ValidateField(EVENT.getTarget(a))
  3457.     },
  3458.     evt_onfocus: function () {
  3459.         SignUp.MsgHandler.clearMessages(MSG.Type.Help)
  3460.     }
  3461. };
  3462. Derive(FIELD.Base, FIELD.Gender);
  3463. FIELD.BirthDate = function (a, c, b) {
  3464.     FIELD.Base.apply(this, [a]);
  3465.     this.m_elementDayId = c;
  3466.     this.m_elementYearId = b
  3467. };
  3468. FIELD.BirthDate.prototype = {
  3469.     getMonthElement: function () {
  3470.         return this.getElement()
  3471.     },
  3472.     getDayElement: function () {
  3473.         return GEId(this.m_elementDayId)
  3474.     },
  3475.     getYearElement: function () {
  3476.         return GEId(this.m_elementYearId)
  3477.     },
  3478.     getValue: function () {
  3479.         var a = this.getMonthElement(),
  3480.             c = this.getDayElement(),
  3481.             b = this.getYearElement(),
  3482.             d = a[a.selectedIndex].value,
  3483.             f = c[c.selectedIndex].value,
  3484.             e = b[b.selectedIndex].value;
  3485.         return f + ":" + d + ":" + e
  3486.     },
  3487.     hasValue: function () {
  3488.         var a = this.getMonthElement(),
  3489.             c = this.getDayElement(),
  3490.             b = this.getYearElement();
  3491.         return exists(a) && a.value != "" && exists(c) && c.value != "" && exists(b) && b.value != ""
  3492.     },
  3493.     setValue: function (e, g, f) {
  3494.         var b = this.getMonthElement(),
  3495.             d = this.getDayElement(),
  3496.             c = this.getYearElement(),
  3497.             a = this.getIndexOf("month", e);
  3498.         if (a > -1) b.selectedIndex = a;
  3499.         a = this.getIndexOf("day", g);
  3500.         if (a > -1) d.selectedIndex = a;
  3501.         a = this.getIndexOf("year", f);
  3502.         if (a > -1) c.selectedIndex = a;
  3503.         SignUp.SetChanged(b.id);
  3504.         SignUp.SetChanged(d.id);
  3505.         SignUp.SetChanged(c.id)
  3506.     },
  3507.     getIndexOf: function (b, e) {
  3508.         var c = -1,
  3509.             d = b == "month" ? this.getMonthElement() : b == "day" ? this.getDayElement() : this.getYearElement();
  3510.         for (var a = 0; a < d.options.length; a++) if (strEquals(e, d.options[a].value, true)) {
  3511.             c = a;
  3512.             break
  3513.         }
  3514.         return c
  3515.     },
  3516.     populate: function (a, c, b) {
  3517.         this.populateDD("month", a);
  3518.         this.populateDD("day", c);
  3519.         this.populateDD("year", b)
  3520.     },
  3521.     populateDD: function (c, b) {
  3522.         var e = c == "month" ? this.getMonthElement() : c == "day" ? this.getDayElement() : this.getYearElement();
  3523.         for (var a = 0; a < b.Values.length; a++) {
  3524.             var d = new Option(b.Text[a], b.Values[a]);
  3525.             e.options[a] = d
  3526.         }
  3527.     },
  3528.     setFocus: function (d) {
  3529.         var e = this.getMonthElement(),
  3530.             c = this.getDayElement(),
  3531.             b = this.getYearElement(),
  3532.             a = e;
  3533.         if (c.className == "datepart0") a = c;
  3534.         else if (b.className == "datepart0") a = b;
  3535.         if (DOM.isElement(a)) {
  3536.             SignUp.FocusSet = {
  3537.                 f: a,
  3538.                 s: a
  3539.             };
  3540.             if (!d) SignUp.SetFocus()
  3541.         }
  3542.     },
  3543.     update: function (h) {
  3544.         var a = this.getMonthElement(),
  3545.             c = this.getDayElement(),
  3546.             b = this.getYearElement(),
  3547.             g = SignUp.Changed(a) ? a.value : null,
  3548.             f = SignUp.Changed(c) ? c.value : null,
  3549.             e = SignUp.Changed(b) ? b.value : null,
  3550.             d = h ? parseInt(SignUp.Countries[SignUp.Fields[FT.CTY].getValue()].childAge) : null;
  3551.         try {
  3552.             this.validate(g, f, e, d);
  3553.             if (this.hasMessage(MSG.Type.Error) && (!exists(g) || !exists(f) || !exists(e))) this.validate(a.value, c.value, b.value, d);
  3554.             this.clearMessage(MSG.Type.Error)
  3555.         } catch (i) {
  3556.             this.setMessage(MSG.Type.Error, this.getErrInfo(i))
  3557.         }
  3558.     },
  3559.     validate: function (c, d, b, f) {
  3560.         if (c != null) this.validateInput("month", c);
  3561.         if (d != null) this.validateInput("day", d);
  3562.         if (b != null) this.validateInput("year", b);
  3563.         if (c != null && d != null && b != null) {
  3564.             var g = parseInt(c),
  3565.                 i = parseInt(d),
  3566.                 h = SignUp.Market.toLowerCase() == "th-th" ? parseInt(b) - 543 : parseInt(b),
  3567.                 a = new Date(h, g - 1, i);
  3568.             if (!(i == a.getDate() && g - 1 == a.getMonth() && h == a.getFullYear())) throw new SignUp.Error("Error_1244");
  3569.         }
  3570.         if (f) {
  3571.             var e = new Date,
  3572.                 a = new Date(parseInt(b), parseInt(c) - 1, parseInt(d)),
  3573.                 j = e.getFullYear() - a.getFullYear() + parseFloat((e.getMonth() - a.getMonth()) / 12) + parseFloat((e.getDate() - a.getDate()) / 365);
  3574.             if (j < f) throw new SignUp.Error(SignUp.ErrorMap.KidsError, null, true, SignUp.WizardResult.Interrupt, SignUp.KidsErrorUrl);
  3575.         }
  3576.     },
  3577.     validateInput: function (b, a) {
  3578.         if (!a || a == 0) throw new SignUp.Error("Error_1249");
  3579.         var c = this.getIndexOf(b, a.toString());
  3580.         if (c == -1) throw new SignUp.Error("Error_1249");
  3581.     },
  3582.     evt_onchange: function (a) {
  3583.         this.onValueChangeUser();
  3584.         SignUp.ValidateField(EVENT.getTarget(a))
  3585.     },
  3586.     evt_onfocus: function () {
  3587.         SignUp.MsgHandler.clearMessages(MSG.Type.Help);
  3588.         if (SignUp.CheckOOBE()) SignUp.MsgHandler.showMessage(MSG.Type.Error, this)
  3589.     },
  3590.     evt_onblur: function () {
  3591.         SignUp.MsgHandler.hideMessage(MSG.Type.Error, this)
  3592.     }
  3593. };
  3594. Derive(FIELD.Base, FIELD.BirthDate);
  3595. FIELD.Hip = function () {
  3596.     FIELD.Base.apply(this, arguments)
  3597. };
  3598. FIELD.Hip.prototype = {
  3599.     getValue: function () {
  3600.         return "dummy"
  3601.     },
  3602.     update: function () {
  3603.         var a = this.getElement();
  3604.         if (!this.isDisplayed() || !SignUp.Changed(a)) return;
  3605.         try {
  3606.             this.validate();
  3607.             this.clearMessage(MSG.Type.Error)
  3608.         } catch (b) {
  3609.             this.setMessage(MSG.Type.Error, this.getErrInfo(b))
  3610.         }
  3611.     },
  3612.     validate: function () {
  3613.         if (!SignUp.HIPControl.clientValidate(!SignUp.IsInline)) {
  3614.             live.accounts.strings.error_hip = SignUp.HIPControl.getErrorString();
  3615.             throw new SignUp.Error("Error_Hip");
  3616.         }
  3617.     },
  3618.     evt_onfocus: function () {
  3619.         SignUp.MsgHandler.clearMessages(MSG.Type.Help);
  3620.         if (SignUp.CheckOOBE()) SignUp.MsgHandler.showMessage(MSG.Type.Error, this)
  3621.     },
  3622.     evt_onchange: function (a) {
  3623.         SignUp.ValidateField(EVENT.getTarget(a))
  3624.     },
  3625.     evt_RefreshHip_onclick: function () {
  3626.         SignUp.HIPControl.RefreshHIP();
  3627.         return false
  3628.     },
  3629.     evt_HipControl_onload: function () {
  3630.         if (SignUp.IsIWW) {
  3631.             var d = GEId(HIP.holder),
  3632.                 c = d.getElementsByTagName("input"),
  3633.                 a = null;
  3634.             for (var b = 0; b < c.length; b++) if (c[b].className == HIP.cssSet.cssCdHIPInput) {
  3635.                 a = c[b];
  3636.                 break
  3637.             }
  3638.             if (a) {
  3639.                 this.m_elementId = a.id;
  3640.                 GEId("hipimagelabel").htmlFor = a.id;
  3641.                 GEId("hipaudiolabel").htmlFor = a.id;
  3642.                 EVENT.add(a, EVENT.Name.OnFocus, this.evt_onfocus, this);
  3643.                 EVENT.add(a, EVENT.Name.OnChange, this.evt_onchange, this)
  3644.             }
  3645.         }
  3646.     }
  3647. };
  3648. Derive(FIELD.Base, FIELD.Hip);
  3649. FIELD.Country = function () {
  3650.     FIELD.Base.apply(this, arguments);
  3651.     this.m_oDownloadTimeout = null;
  3652.     this.m_iWaitTime = 0
  3653. };
  3654. FIELD.Country.prototype = {
  3655.     getValue: function () {
  3656.         if (this.hasValue()) return this.getSelectedOption().value;
  3657.         return SignUp.DefCountry
  3658.     },
  3659.     setValue: function (b) {
  3660.         var a = this.getIndexOf(b);
  3661.         if (a > -1) this.getElement().selectedIndex = a
  3662.     },
  3663.     hasValue: function () {
  3664.         try {
  3665.             if (exists(this.getSelectedOption().value)) return true
  3666.         } catch (a) {}
  3667.         return false
  3668.     },
  3669.     getSelectedOption: function () {
  3670.         return this.getElement()[this.getElement().selectedIndex]
  3671.     },
  3672.     getIndexOf: function (d) {
  3673.         var c = -1,
  3674.             b = this.getElement();
  3675.         for (var a = 0; a < b.options.length; a++) if (strEquals(d, b.options[a].value, true)) {
  3676.             c = a;
  3677.             break
  3678.         }
  3679.         return c
  3680.     },
  3681.     update: function () {
  3682.         if (this.getVState() == FIELD.VState.Error && typeof SignUp.RegionData != "undefined") this.loadExtendedData()
  3683.     },
  3684.     validate: function (a) {
  3685.         if (!exists(SignUp.Countries[a.toUpperCase()])) throw new SignUp.Error("Invalid_ISO");
  3686.     },
  3687.     showHelp: function () {
  3688.         SignUp.MsgHandler.clearMessages(MSG.Type.Help);
  3689.         if (SignUp.Countries[this.getValue()].showPrivacy) this.setMessage(MSG.Type.Help, new MSG.SignUp.Info.Help(this.m_helpStringId, [this]))
  3690.     },
  3691.     evt_Country_onfocus: function () {
  3692.         this.showHelp()
  3693.     },
  3694.     evt_Country_onchange: function () {
  3695.         this.onValueChangeUser();
  3696.         this.showHelp();
  3697.         this.updatePostal()
  3698.     },
  3699.     evt_Country_onkeyup: function () {
  3700.         this.showHelp();
  3701.         this.updatePostal()
  3702.     },
  3703.     populate: function () {
  3704.         var b = GEId("CountryRegionContainer"),
  3705.             f = DOM.create("label", {
  3706.                 htmlFor: this.m_elementId
  3707.             });
  3708.         if (SignUp.IsIWW) f.appendChild(DOM.text(GetString("live.accounts.strings.IWW_Signup_FieldLabel_Country")));
  3709.         else f.appendChild(DOM.text(GetString("live.accounts.strings.FieldLabel_CountryRegion")));
  3710.         b.appendChild(f);
  3711.         if (!SignUp.IsWeb && !SignUp.IsInline) b.appendChild(DOM.create("br"));
  3712.         var d = DOM.create("div", {
  3713.             className: "value"
  3714.         });
  3715.         b.appendChild(d);
  3716.         var a = DOM.create("select", {
  3717.             id: this.m_elementId,
  3718.             name: this.m_elementId
  3719.         });
  3720.         EVENT.add(a, EVENT.Name.OnFocus, this.evt_Country_onfocus, this);
  3721.         EVENT.add(a, EVENT.Name.OnChange, this.evt_Country_onchange, this);
  3722.         EVENT.add(a, EVENT.Name.OnKeyUp, this.evt_Country_onkeyup, this);
  3723.         for (var e in SignUp.Countries) {
  3724.             var h = SignUp.DefCountry == e,
  3725.                 g = DOM.create("option", {
  3726.                     value: e,
  3727.                     selected: h,
  3728.                     defaultSelected: h
  3729.                 });
  3730.             g.innerHTML = SignUp.Countries[e].name;
  3731.             a.appendChild(g)
  3732.         }
  3733.         d.appendChild(a);
  3734.         d.appendChild(DOM.create("br"));
  3735.         var c = DOM.create("div", {
  3736.             className: "helppop",
  3737.             id: "ctryhelp_pop"
  3738.         });
  3739.         c.style.display = "none";
  3740.         var i = DOM.create("div", {
  3741.             id: "ctryhelp",
  3742.             className: "helpctr"
  3743.         });
  3744.         c.appendChild(i);
  3745.         b.appendChild(c);
  3746.         this.updatePostal();
  3747.         this.updateQuestions()
  3748.     },
  3749.     updateQuestions: function () {
  3750.         SignUp.Fields[FT.SQ].populate(SignUp.Countries[this.getValue()])
  3751.     },
  3752.     updatePostal: function () {
  3753.         var a = this.getValue();
  3754.         if (a != SignUp.Fields[FT.ZIP].countryISO) if (a.toUpperCase() != SignUp.DefCountry.toUpperCase() && this.getVState() == FIELD.VState.Pending) {
  3755.             this.setVState(FIELD.VState.Running);
  3756.             this.disable();
  3757.             this.setMessage(MSG.Type.Progress, new MSG.Info(null, [this]));
  3758.             var b = DOM.create("script", {
  3759.                 type: "text/javascript",
  3760.                 src: SignUp.SitePath + "/regiondata.aspx?sunx=" + SignUp.SUNX + "&mktcache=" + SignUp.Market + "&" + SignUp.QS
  3761.             });
  3762.             document.getElementsByTagName("head")[0].appendChild(b);
  3763.             this.waitForExtendedData()
  3764.         } else {
  3765.             SignUp.Fields[FT.ZIP].populate(SignUp.Countries[a]);
  3766.             this.processIPData();
  3767.             SignUp.Fields[FT.EOI].refresh()
  3768.         }
  3769.     },
  3770.     waitForExtendedData: function () {
  3771.         var a = this;
  3772.         if (typeof this.m_oDownloadTimeout != "undefined") clearTimeout(a.m_oDownloadTimeout);
  3773.         if (typeof SignUp.RegionData != "undefined") DoTestDelay(function () {
  3774.             a.loadExtendedData()
  3775.         });
  3776.         else {
  3777.             a.m_iWaitTime += 100;
  3778.             if (a.m_iWaitTime < 3e4) a.m_oDownloadTimeout = setTimeout(function () {
  3779.                 a.waitForExtendedData.call(a)
  3780.             }, 100);
  3781.             else {
  3782.                 a.setVState(FIELD.VState.Error);
  3783.                 a.clearMessage(MSG.Type.Progress);
  3784.                 a.setValue(SignUp.DefCountry.toUpperCase());
  3785.                 if (this.hasMessage(MSG.Type.Help)) this.showHelp()
  3786.             }
  3787.         }
  3788.     },
  3789.     loadExtendedData: function () {
  3790.         this.setVState(FIELD.VState.Done);
  3791.         this.enable();
  3792.         this.clearMessage(MSG.Type.Progress);
  3793.         SignUp.ParseExtendedData(SignUp.Countries, SignUp.RegionData);
  3794.         SignUp.Fields[FT.ZIP].populate(SignUp.Countries[this.getValue()]);
  3795.         this.processIPData();
  3796.         SignUp.Fields[FT.EOI].refresh()
  3797.     },
  3798.     processIPData: function () {
  3799.         if (this.getValue().toUpperCase() == SignUp.Location.country.toUpperCase() && (SignUp.Location.postal.toLowerCase() != "nodata" && SignUp.Fields[FT.ZIP].isValid(SignUp.Location.postal.toLowerCase()))) {
  3800.             this.ipDataUsed = true;
  3801.             if (SignUp.Fields[FT.ZIP].displayed && SignUp.Location.postal.toLowerCase() != "nodata" && SignUp.Fields[FT.ZIP].isValid(SignUp.Location.postal.toLowerCase())) SignUp.Fields[FT.ZIP].getElement().value = SignUp.Location.postal;
  3802.             SignUp.Fields[FT.ZIP].hide()
  3803.         } else this.ipDataUsed = false
  3804.     }
  3805. };
  3806. Derive(FIELD.Base, FIELD.Country);
  3807. FIELD.ZipCode = function (c, b, a) {
  3808.     FIELD.Base.apply(this, [c, a]);
  3809.     this.displayed = false;
  3810.     this.countryISO = "";
  3811.     this.m_errHolderId = b
  3812. };
  3813. FIELD.ZipCode.prototype = {
  3814.     getValue: function () {
  3815.         var a = this.getElement();
  3816.         if (exists(a) && SignUp.Fields[FT.CTY].getVState() != FIELD.VState.Running) return a.value;
  3817.         return null
  3818.     },
  3819.     update: function () {
  3820.         var a = this.getElement();
  3821.         if (!a || SignUp.Fields[FT.CTY].getVState() == FIELD.VState.Running) {
  3822.             this.clearMessage(MSG.Type.Error);
  3823.             return
  3824.         }
  3825.         if (!SignUp.Changed(a)) return;
  3826.         try {
  3827.             this.validate(a.value, SignUp.Fields[FT.CTY].getValue());
  3828.             this.clearMessage(MSG.Type.Error)
  3829.         } catch (b) {
  3830.             this.setMessage(MSG.Type.Error, this.getErrInfo(b))
  3831.         }
  3832.     },
  3833.     validate: function (a, b) {
  3834.         if (a == "") throw new SignUp.Error("Error_1227");
  3835.         else if (SignUp.RegExValMatch(a, "[\\x26\\x3C]+")) throw new SignUp.Error("Error_1233");
  3836.         else if (exists(SignUp.Countries[b]) && !SignUp.RegExValMatch(a, SignUp.Countries[b].postalRegex)) throw new SignUp.Error("Error_1233");
  3837.     },
  3838.     isValid: function (a) {
  3839.         try {
  3840.             this.validate(a, SignUp.Fields[FT.CTY].getValue());
  3841.             return true
  3842.         } catch (b) {
  3843.             return false
  3844.         }
  3845.     },
  3846.     showHelp: function () {
  3847.         SignUp.MsgHandler.clearMessages(MSG.Type.Help);
  3848.         if (SignUp.Countries[SignUp.Fields[FT.CTY].getValue()].showPrivacy) this.setMessage(MSG.Type.Help, new MSG.SignUp.Info.Help(this.m_helpStringId, [this]))
  3849.     },
  3850.     evt_Postal_onfocus: function () {
  3851.         this.showHelp();
  3852.         if (SignUp.CheckOOBE()) SignUp.MsgHandler.showMessage(MSG.Type.Error, this)
  3853.     },
  3854.     evt_Postal_onblur: function () {
  3855.         if (SignUp.CheckOOBE()) SignUp.MsgHandler.hideMessage(MSG.Type.Error, this)
  3856.     },
  3857.     evt_Postal_onchange: function (a) {
  3858.         this.onValueChangeUser();
  3859.         SignUp.ValidateField(EVENT.getTarget(a))
  3860.     },
  3861.     populate: function (d) {
  3862.         this.countryISO = d.iso;
  3863.         var f = GEId("PostalContainer");
  3864.         DOM.clear(f);
  3865.         var b = f;
  3866.         if (d.postalLabel) {
  3867.             if (SignUp.IsIWW) {
  3868.                 var g = DOM.create("div", {
  3869.                     className: "helppop"
  3870.                 }),
  3871.                     c = DOM.create("p", {
  3872.                         id: this.m_errHolderId,
  3873.                         className: "error"
  3874.                     });
  3875.                 c.style.display = "none";
  3876.                 g.appendChild(c);
  3877.                 b.appendChild(g)
  3878.             } else if (!SignUp.IsInline) {
  3879.                 var c = DOM.create("p", {
  3880.                     id: this.m_errHolderId,
  3881.                     className: "error"
  3882.                 });
  3883.                 c.style.display = "none";
  3884.                 b.appendChild(c)
  3885.             }
  3886.             var i = DOM.create("label", {
  3887.                 htmlFor: this.m_elementId
  3888.             });
  3889.             i.appendChild(DOM.text(d.postalLabel + (SignUp.IsIWW ? "" : GetString("live.accounts.strings.Profile_Separator"))));
  3890.             b.appendChild(i);
  3891.             var e = DOM.create("div", {
  3892.                 className: "value"
  3893.             });
  3894.             b.appendChild(e);
  3895.             var a = DOM.create("input", {
  3896.                 type: "text",
  3897.                 id: this.m_elementId,
  3898.                 name: this.m_elementId,
  3899.                 maxlength: 15,
  3900.                 value: ""
  3901.             });
  3902.             EVENT.add(a, EVENT.Name.OnFocus, this.evt_Postal_onfocus, this);
  3903.             EVENT.add(a, EVENT.Name.OnChange, this.evt_Postal_onchange, this);
  3904.             if (SignUp.IsInline) EVENT.add(a, EVENT.Name.OnBlur, this.evt_Postal_onblur, this);
  3905.             e.appendChild(a);
  3906.             if (SignUp.CheckOOBE()) {
  3907.                 var h = DOM.create("img", {
  3908.                     id: this.m_errHolderId,
  3909.                     className: "erroricon",
  3910.                     alt: "",
  3911.                     src: SignUp.InlineErrorIcon
  3912.                 });
  3913.                 h.style.display = "none";
  3914.                 e.appendChild(h)
  3915.             }
  3916.             this.show()
  3917.         } else this.hide();
  3918.         this.clearMessage(MSG.Type.Error);
  3919.         SignUp.RemoveChanged(this.getElement())
  3920.     },
  3921.     hide: function () {
  3922.         GEId("PostalContainer").style.display = "none";
  3923.         this.displayed = false
  3924.     },
  3925.     show: function () {
  3926.         GEId("PostalContainer").style.display = "block";
  3927.         this.displayed = true
  3928.     }
  3929. };
  3930. Derive(FIELD.Base, FIELD.ZipCode);
  3931. STATE.EOI = {
  3932.     ClassA: "A",
  3933.     ClassB: "B",
  3934.     ClassC: "C"
  3935. };
  3936. FIELD.EmailOptIn = function (c, b, a) {
  3937.     FIELD.Base.apply(this, [c]);
  3938.     this.m_eState = STATE.EOI.ClassC;
  3939.     this.m_elementContainerId = b;
  3940.     this.m_elementAgreementId = a
  3941. };
  3942. FIELD.EmailOptIn.prototype = {
  3943.     getValue: function () {
  3944.         return this.getElement().checked ? "1" : "0"
  3945.     },
  3946.     setValue: function (a) {
  3947.         this.getElement().checked = a.toLowerCase() == "true"
  3948.     },
  3949.     refresh: function () {
  3950.         this.updateState();
  3951.         this.updateUI()
  3952.     },
  3953.     updateState: function () {
  3954.         var a = SignUp.Fields[FT.CTY].getValue();
  3955.         this.m_eState = SignUp.Countries[a].optInClass || ""
  3956.     },
  3957.     updateUI: function () {
  3958.         switch (this.m_eState) {
  3959.         case STATE.EOI.ClassA:
  3960.         case STATE.EOI.ClassB:
  3961.             GEId(this.m_elementContainerId).style.display = "block";
  3962.             GEId(this.m_elementAgreementId).style.display = "none";
  3963.             this.getElement().checked = this.m_eState == STATE.EOI.ClassB;
  3964.             break;
  3965.         default:
  3966.             GEId(this.m_elementContainerId).style.display = "none";
  3967.             this.getElement().checked = true;
  3968.             GEId(this.m_elementAgreementId).style.display = "inline"
  3969.         }
  3970.     }
  3971. };
  3972. Derive(FIELD.Base, FIELD.EmailOptIn);
  3973. SignUp.ParseCountryData = function (c) {
  3974.     var b = {};
  3975.     for (var a in c) b[a] = new SignUp.CountryInfo(a, c[a]);
  3976.     return b
  3977. };
  3978. SignUp.ParseExtendedData = function (c, b) {
  3979.     for (var a in b) c[a].loadExtendedData(b[a])
  3980. };
  3981. SignUp.CountryInfo = function (b, a) {
  3982.     this.iso = b;
  3983.     this.name = exists(a.nm) ? a.nm : "";
  3984.     this.showPrivacy = exists(a.eu) ? a.eu == "1" : false;
  3985.     this.optInClass = exists(a.eoi) ? a.eoi : STATE.EOI.ClassC;
  3986.     this.postalRegex = exists(a.pcr) ? a.pcr : "";
  3987.     this.postalLabel = "";
  3988.     this.questions = [];
  3989.     this.childAge = exists(a.chld) ? a.chld : "0";
  3990.     if (exists(a.data)) this.loadExtendedData(a.data);
  3991.     this.regionDataLoaded = false
  3992. };
  3993. SignUp.CountryInfo.prototype = {
  3994.     loadExtendedData: function (a) {
  3995.         this.postalLabel = exists(a.pl) ? a.pl : this.postalLabel;
  3996.         this.questions = exists(a.ql) ? a.ql : this.questions;
  3997.         this.regionDataLoaded = true
  3998.     }
  3999. };
  4000. SignUp.LaunchHelp = function (c) {
  4001.     var b = screen.availWidth > 1050 ? 1050 : screen.availWidth,
  4002.         f = screen.availHeight,
  4003.         g = screen.availWidth > 1050 ? screen.availWidth - b : 0,
  4004.         e = "resizable=1,top=" + 0 + ", width=" + b + ", height=" + f + ", left=" + g + ", scrollbars=1, menubar=1",
  4005.         d = navigator.userAgent.toLowerCase();
  4006.     if (d.indexOf("msn ") > -1 || d.indexOf("msmoney") > -1) window.external.showHelpPane(c, b);
  4007.     else {
  4008.         var a;
  4009.         a = window.open(c, "_new", e);
  4010.         if (a != null && typeof a == "object") a.focus()
  4011.     }
  4012. };
  4013. SignUp.CreateDownloading = false;
  4014. SignUp.DoPost = function (h, a) {
  4015.     SignUp.AllChanged = true;
  4016.     SignUp.ValidateForm(true);
  4017.     if (!c()) return;
  4018.     var b = [SignUp.Fields[FT.MN]];
  4019.     if (SignUp.IsIWW) b.push(SignUp.Fields[FT.PWD], SignUp.Fields[FT.CTY]);
  4020.     if (SignUp.IsIWW) SignUp.ShowPageProgress();
  4021.     SignUp.WaitForAsync(b, f);
  4022.  
  4023.     function c() {
  4024.         if (SignUp.HaveErrors()) {
  4025.             if (SignUp.IsInline) SignUp.ShowFirstErrorPane();
  4026.             if (!SignUp.IsInline || SignUp.IsIWW) SignUp.SetFocus();
  4027.             return false
  4028.         }
  4029.         return true
  4030.     }
  4031.     function f() {
  4032.         if (!c()) {
  4033.             if (SignUp.IsIWW) SignUp.HidePageProgress();
  4034.             return
  4035.         }
  4036.         if (SignUp.Fields[FT.HIP].isDisplayed()) SignUp.HIPControl.validate(d);
  4037.         else d()
  4038.     }
  4039.     function d() {
  4040.         if (SignUp.Fields[FT.MN].getVState() == FIELD.VState.Running) {
  4041.             if (SignUp.IsIWW) SignUp.HidePageProgress();
  4042.             return
  4043.         }
  4044.         SignUp.FieldsChanged = {};
  4045.         SignUp.CreateDownloading = true;
  4046.         SignUp.Hide(["createbuttons"]);
  4047.         SignUp.Show(["creatingacct"]);
  4048.         var b = new Image(1, 1);
  4049.         GEId("tempimgcontainer").appendChild(b);
  4050.         b.onerror = i;
  4051.         b.onload = k;
  4052.         b.onabort = i;
  4053.         var f = SignUp.SitePath + "/create.aspx?" + SignUp.QS + "&sutk=" + (new Date).getTime();
  4054.         if (SignUp.IsInline) {
  4055.             f += "&inline=1";
  4056.             var h = GEId("iAddDevice");
  4057.             if (h) f += "&associateDevice=" + (h.checked ? "true" : "false")
  4058.         }
  4059.         e();
  4060.         b.src = f;
  4061.         var c = setTimeout(l, 6e4);
  4062.  
  4063.         function k() {
  4064.             DoTestDelay(j)
  4065.         }
  4066.         function j() {
  4067.             d();
  4068.             var f = SignUp.CookieValue("signupdata");
  4069.             SignUp.RemoveCookie("signupdata");
  4070.             if (f) {
  4071.                 var b = f.split("~"),
  4072.                     c = b[0].toLowerCase();
  4073.                 if (c == "loginurl") try {
  4074.                     var j = b[2].toLowerCase();
  4075.                     if (typeof SignUp.AtlasCreate != "undefined" && typeof SignUp.AtlasCreateEasi != "undefined") {
  4076.                         var h = new Image(1, 1);
  4077.                         GEId("tempimgcontainer").appendChild(h);
  4078.                         if (j == "noteasi") h.src = b[3] == "1" ? SignUp.AtlasCreate : SignUp.AtlasCreateEasi
  4079.                     }
  4080.                     if (a) window.setTimeout(a, 1e3);
  4081.                     else window.setTimeout(function () {
  4082.                         $BSI.navigateTo(unescape(b[1]))
  4083.                     }, 1e3)
  4084.                 } catch (k) {
  4085.                     if (a) a();
  4086.                     else $BSI.navigateTo(unescape(b[1]))
  4087.                 } else if (c == "error") {
  4088.                     var i = unescape(b[1]).split("::");
  4089.                     for (var e = 0; e < i.length; e++) if (!SignUp.HandleServerError(i[e])) continue;
  4090.                     SignUp.Fields[FT.MN].clearMessage(MSG.Type.Failure);
  4091.                     SignUp.Fields[FT.MN].clearMessage(MSG.Type.Success);
  4092.                     SignUp.Fields[FT.HIP].display();
  4093.                     if (HIP && HIP.done) HIP.reloadHIP(HIP.error);
  4094.                     if (SignUp.IsInline) SignUp.ShowFirstErrorPane();
  4095.                     g()
  4096.                 } else if (c == "errorredirect") if (b[5]) ER(unescape(b[1]), unescape(b[2]), unescape(b[3]), unescape(b[4]), unescape(b[5]));
  4097.                 else ER(unescape(b[1]), unescape(b[2]), unescape(b[3]), unescape(b[4]))
  4098.             } else {
  4099.                 g();
  4100.                 ER("100", "460INVC", SignUp.WizardResult.GenericError, GetString("live.accounts.strings.Inline_GenericError"))
  4101.             }
  4102.         }
  4103.         function l() {
  4104.             d();
  4105.             ER("100", "325TO", SignUp.WizardResult.GenericError, GetString("live.accounts.strings.Inline_GenericError"))
  4106.         }
  4107.         function i() {
  4108.             g();
  4109.             if (SignUp.IsIWW) ER("100", "325ERR", SignUp.WizardResult.GenericError, GetString("live.accounts.strings.Inline_GenericError"))
  4110.         }
  4111.         function g() {
  4112.             d();
  4113.             if (SignUp.IsIWW) SignUp.HidePageProgress();
  4114.             SignUp.CreateDownloading = false;
  4115.             SignUp.Hide(["creatingacct"]);
  4116.             SignUp.Show(["createbuttons"]);
  4117.             SignUp.SetFocus()
  4118.         }
  4119.         function d() {
  4120.             b.onerror = b.onload = b.onabort = null;
  4121.             if (typeof c == "number") {
  4122.                 clearTimeout(c);
  4123.                 c = null
  4124.             }
  4125.         }
  4126.     }
  4127.     function e() {
  4128.         var a = "{~~$$}",
  4129.             b = SignUp.Fields[FT.MN].getValue() + a;
  4130.         if (SignUp.Fields[FT.ALT].isDisplayed() && !strEquals(SignUp.Fields[FT.MN].getValue(), SignUp.Fields[FT.ALT].getValue(), true)) b += SignUp.Fields[FT.ALT].getValue() + a;
  4131.         else b += a;
  4132.         if (SignUp.Fields[FT.SA].isDisplayed() && SignUp.Fields[FT.SQ].isDisplayed() && SignUp.Fields[FT.SA].hasValue() && SignUp.Fields[FT.SQ].hasValue()) b += SignUp.Fields[FT.SQ].getValue() + a + (new SignUp.Encrypt).EncryptData(SignUp.Fields[FT.PWD].getValue(), SignUp.Fields[FT.SA].getValue(), "pwdsa") + a;
  4133.         else b += a + (new SignUp.Encrypt).EncryptData(SignUp.Fields[FT.PWD].getValue(), null, "pwd") + a;
  4134.         b += SKI + a;
  4135.         if (SignUp.Fields[FT.HIP].isDisplayed()) {
  4136.             var c = SignUp.HIPControl.getSolutionDetails();
  4137.             b += c.userSol + a;
  4138.             b += c.challenge + a;
  4139.             b += c.flowId + a
  4140.         } else b += a + a + a;
  4141.         b += SignUp.Fields[FT.CTY].getValue() + a;
  4142.         b += valOrEmpty(SignUp.Fields[FT.ZIP].getValue()) + a;
  4143.         b += SignUp.Fields[FT.BD].getValue() + a;
  4144.         b += SignUp.Fields[FT.GNDR].getValue() + a;
  4145.         b += SignUp.Fields[FT.FNAME].getValue() + a;
  4146.         b += SignUp.Fields[FT.LNAME].getValue() + a;
  4147.         var d = "d";
  4148.         try {
  4149.             d = g()
  4150.         } catch (e) {}
  4151.         b += d + a;
  4152.         b += (SignUp.Fields[FT.MN].getState() == STATE.MN.EASI ? "1" : "0") + a;
  4153.         b += SignUp.Fields[FT.EOI].getValue() + a;
  4154.         b += (SignUp.Fields[FT.MN].getValue() == SignUp.PickedMNSName ? "1" : "0") + a;
  4155.         if (exists(SignUp.Fields[FT.PHN]) && SignUp.Fields[FT.PHN].isDisplayed() && SignUp.Fields[FT.PHN].hasValue()) {
  4156.             b += SignUp.Fields[FT.PHN].getCountryDDSelected() + a;
  4157.             b += SignUp.Fields[FT.PHN].getValue() + a
  4158.         } else b += a + a;
  4159.         SignUp.AddCookie("signupdata", b)
  4160.     }
  4161.     function g() {
  4162.         var a = new Date("1/1/" + (new Date).getUTCFullYear()),
  4163.             b = 1e4;
  4164.         for (var d = 1; d <= 12; d++) {
  4165.             var c = -1 * a.getTimezoneOffset();
  4166.             if (b > c) b = c;
  4167.             a.setUTCMonth(a.getUTCMonth() + 1)
  4168.         }
  4169.         return b
  4170.     }
  4171. };
  4172. SignUp.GoBack = function () {
  4173.     window.location = SignUp.RX
  4174. };
  4175. MSG.Web = {};
  4176. MSG.Web.Error = function (a) {
  4177.     MSG.SignUp.Error.apply(this, [a, a])
  4178. };
  4179. MSG.Web.Error.prototype = {};
  4180. Derive(MSG.SignUp.Error, MSG.Web.Error);
  4181. MSG.Web.HipError = function () {
  4182.     MSG.Web.Error.apply(this, [MSG.Type.Error])
  4183. };
  4184. MSG.Web.HipError.prototype = {
  4185.     show: function () {},
  4186.     hide: function () {
  4187.         if (SignUp.HIPControl.hipLoaded) SignUp.HIPControl.setError(SignUp.HIPControl.ErrorEnum().None)
  4188.     }
  4189. };
  4190. Derive(MSG.Web.Error, MSG.Web.HipError);
  4191. MSG.Web.PwdStrengthHelp = function (b, a) {
  4192.     MSG.SignUp.Help.apply(this, [b, a])
  4193. };
  4194. MSG.Web.PwdStrengthHelp.prototype = {
  4195.     insertText: function (a) {
  4196.         if (exists(this.data.text)) a.innerHTML = '<div id="StrengthMeter"><div id="iPwdMeter"></div></div><p>' + this.data.text + "</p>"
  4197.     }
  4198. };
  4199. Derive(MSG.SignUp.Help, MSG.Web.PwdStrengthHelp);
  4200. MSG.Web.EUCountryHelp = function (b, a) {
  4201.     MSG.SignUp.Help.apply(this, [b, a])
  4202. };
  4203. MSG.Web.EUCountryHelp.prototype = {
  4204.     insertText: function (a) {
  4205.         if (exists(this.data.text)) a.innerHTML = SignUp.PaneHelpLink("ycavirpue", this.data.text)
  4206.     }
  4207. };
  4208. Derive(MSG.SignUp.Help, MSG.Web.EUCountryHelp);
  4209. MSG.Web.Handler = function () {
  4210.     MSG.Base.Handler.apply(this)
  4211. };
  4212. MSG.Web.Handler.prototype = {
  4213.     getMessagePriority: function (c) {
  4214.         for (var a = 0; a < SignUp.FieldsOnPage.length; a++) for (var b = 0; b < SignUp.FieldsOnPage[a].length; b++) if (c.id == SignUp.FieldsOnPage[a][b]) return a * 1e3 + b;
  4215.         return -1
  4216.     },
  4217.     showHelpMessage: function (c) {
  4218.         var a = MSG.Type.Help,
  4219.             b = this.currMessage[a];
  4220.         if (exists(b)) b.fHideCallback(a, MSG.Part.All);
  4221.         c.fShowCallback(a, MSG.Part.All);
  4222.         this.currMessage[a] = c
  4223.     },
  4224.     hideHelpMessage: function (c) {
  4225.         var a = MSG.Type.Help,
  4226.             b = this.currMessage[a];
  4227.         c.fHideCallback(a, MSG.Part.All);
  4228.         if (exists(b) && b == c) delete this.currMessage[a]
  4229.     },
  4230.     showWarningMessage: function () {
  4231.         var a = MSG.Type.Warning,
  4232.             c = this.currMessage[a],
  4233.             b = this.messages[a][0];
  4234.         if (exists(c)) {
  4235.             if (c != b) {
  4236.                 c.fHideCallback(a, MSG.Part.All);
  4237.                 b.fShowCallback(a, MSG.Part.All);
  4238.                 this.currMessage[a] = b
  4239.             }
  4240.         } else {
  4241.             b.fShowCallback(a, MSG.Part.All);
  4242.             this.currMessage[a] = b
  4243.         }
  4244.     },
  4245.     hideWarningMessage: function (d) {
  4246.         var a = MSG.Type.Warning,
  4247.             c = this.currMessage[a],
  4248.             b = this.messages[a][0];
  4249.         d.fHideCallback(a, MSG.Part.All);
  4250.         if (exists(c)) if (c == d) {
  4251.             if (exists(b)) b.fShowCallback(a, MSG.Part.All);
  4252.             this.currMessage[a] = b
  4253.         }
  4254.     }
  4255. };
  4256. Derive(MSG.Base.Handler, MSG.Web.Handler);
  4257. SignUp.MsgHandler = new MSG.Web.Handler;
  4258. FIELD.Web = {};
  4259. FIELD.Web.Country = function () {
  4260.     FIELD.Country.apply(this, ["iCountry", "EditProfile_MapLinkText_EUPrivacyLink"]);
  4261.     this.m_arrMessages[MSG.Type.Help] = new MSG.Web.EUCountryHelp("ctryhelp_pop", "ctryhelp")
  4262. };
  4263. Derive(FIELD.Country, FIELD.Web.Country);
  4264. SignUp.Fields[FT.CTY] = new FIELD.Web.Country;
  4265. FIELD.Web.ZipCode = function () {
  4266.     FIELD.ZipCode.apply(this, ["iZipCode", "iZipCodeError", "EditProfile_MapLinkText_EUPrivacyLink"]);
  4267.     this.m_arrMessages[MSG.Type.Error] = new MSG.Web.Error("iZipCodeError");
  4268.     this.m_arrMessages[MSG.Type.Help] = new MSG.Web.EUCountryHelp("ctryhelp_pop", "ctryhelp")
  4269. };
  4270. Derive(FIELD.ZipCode, FIELD.Web.ZipCode);
  4271. SignUp.Fields[FT.ZIP] = new FIELD.Web.ZipCode;
  4272. FIELD.Web.EmailOptIn = function () {
  4273.     FIELD.EmailOptIn.apply(this, ["iOptinEmail", "iOptinEmailContainer", "iOptinEmailAgreement"])
  4274. };
  4275. Derive(FIELD.EmailOptIn, FIELD.Web.EmailOptIn);
  4276. SignUp.Fields[FT.EOI] = new FIELD.Web.EmailOptIn;
  4277. FIELD.Web.Hip = function () {
  4278.     FIELD.Hip.apply(this, ["iHipHolder"]);
  4279.     this.m_arrMessages[MSG.Type.Error] = new MSG.Web.HipError
  4280. };
  4281. Derive(FIELD.Hip, FIELD.Web.Hip);
  4282. SignUp.Fields[FT.HIP] = new FIELD.Web.Hip;
  4283. FIELD.Web.Membername = function () {
  4284.     FIELD.Membername.apply(this);
  4285.     var a = {
  4286.         element: "imembernameeasi",
  4287.         checkavail: "ichkavailbutton",
  4288.         domain: "idomain",
  4289.         helpString: "Help_EasiName",
  4290.         altHelpString: "Help_EasiOption"
  4291.     }, b = {
  4292.         element: "imembernamelive",
  4293.         checkavail: "ichkavailbutton",
  4294.         domain: "idomain",
  4295.         helpString: "Help_Membername",
  4296.         altHelpString: "Help_WLIDOption"
  4297.     };
  4298.     this.m_arrStateIDs[STATE.MN.EASI] = a;
  4299.     this.m_arrStateIDs[STATE.MN.Live] = b;
  4300.     this.m_arrStateMessages[STATE.MN.EASI] = [];
  4301.     this.m_arrStateMessages[STATE.MN.EASI][MSG.Type.Error] = new MSG.Web.Error("iMembernameEasiError");
  4302.     this.m_arrStateMessages[STATE.MN.EASI][MSG.Type.Success] = new MSG.SignUp.Success("iEasiMessage");
  4303.     this.m_arrStateMessages[STATE.MN.EASI][MSG.Type.Failure] = new MSG.SignUp.Failure("iEasiMessageError");
  4304.     this.m_arrStateMessages[STATE.MN.EASI][MSG.Type.Help] = new MSG.SignUp.Help("membernameeasihelp_pop", "membernameeasihelp");
  4305.     this.m_arrStateMessages[STATE.MN.EASI][MSG.Type.Progress] = new MSG.SignUp.Progress("chkavailwkeasi");
  4306.     this.m_arrStateMessages[STATE.MN.Live] = [];
  4307.     this.m_arrStateMessages[STATE.MN.Live][MSG.Type.Error] = new MSG.Web.Error("iMembernameLiveError");
  4308.     this.m_arrStateMessages[STATE.MN.Live][MSG.Type.Success] = new MSG.SignUp.Success("iLiveMessage");
  4309.     this.m_arrStateMessages[STATE.MN.Live][MSG.Type.Failure] = new MSG.SignUp.Failure("iLiveMessageError");
  4310.     this.m_arrStateMessages[STATE.MN.Live][MSG.Type.Help] = new MSG.SignUp.LiveMNHelp("membernamelivehelp_pop", "membernamelivehelp");
  4311.     this.m_arrStateMessages[STATE.MN.Live][MSG.Type.Progress] = new MSG.SignUp.Progress("chkavailwkwld");
  4312.     this.m_arrMessages = SignUp.IsEASI ? this.m_arrStateMessages[STATE.MN.EASI] : this.m_arrStateMessages[STATE.MN.Live]
  4313. };
  4314. Derive(FIELD.Membername, FIELD.Web.Membername);
  4315. SignUp.Fields[FT.MN] = new FIELD.Web.Membername;
  4316. FIELD.Web.Password = function () {
  4317.     FIELD.Password.apply(this, ["iPwd", "Help_pwdm"]);
  4318.     this.m_arrMessages[MSG.Type.Error] = new MSG.Web.Error("iPwdError");
  4319.     this.m_arrMessages[MSG.Type.Help] = new MSG.Web.PwdStrengthHelp("passwordhelp_pop", "passwordhelp");
  4320.     this.m_arrMessages[MSG.Type.Warning] = new MSG.SignUp.CapsWarning("dCapsLock")
  4321. };
  4322. Derive(FIELD.Password, FIELD.Web.Password);
  4323. SignUp.Fields[FT.PWD] = new FIELD.Web.Password;
  4324. FIELD.Web.RetypePassword = function () {
  4325.     FIELD.RetypePassword.apply(this, ["iRetypePwd", "Help_pwdm"]);
  4326.     this.m_arrMessages[MSG.Type.Error] = new MSG.Web.Error("iPwdError");
  4327.     this.m_arrMessages[MSG.Type.Help] = new MSG.Web.PwdStrengthHelp("passwordhelp_pop", "passwordhelp");
  4328.     this.m_arrMessages[MSG.Type.Warning] = new MSG.SignUp.CapsWarning("dCapsLock")
  4329. };
  4330. Derive(FIELD.RetypePassword, FIELD.Web.RetypePassword);
  4331. SignUp.Fields[FT.RPWD] = new FIELD.Web.RetypePassword;
  4332. FIELD.Web.Phone = function () {
  4333.     FIELD.Phone.apply(this, ["iPhone", "iSMSCountry", "IWW_Signup_Help_Phone", "IWW_Signup_Help_MobileEmail", "phoneinput", "iSMSCountryLabelPhone", "iSMSCountryLabelEmail"]);
  4334.     this.m_arrMessages[MSG.Type.Error] = new MSG.Web.Error("iPhoneError");
  4335.     this.m_arrMessages[MSG.Type.Help] = new MSG.SignUp.Help("phonehelp_pop", "phonehelp")
  4336. };
  4337. Derive(FIELD.Phone, FIELD.Web.Phone);
  4338. SignUp.Fields[FT.PHN] = new FIELD.Web.Phone;
  4339. FIELD.Web.AltEmail = function () {
  4340.     FIELD.AltEmail.apply(this, ["iAltEmail", "Help_AltEmail", "altinput"]);
  4341.     this.m_arrMessages[MSG.Type.Error] = new MSG.Web.Error("iAltEmailError");
  4342.     this.m_arrMessages[MSG.Type.Help] = new MSG.SignUp.Help("resethelp_pop", "resethelp")
  4343. };
  4344. Derive(FIELD.AltEmail, FIELD.Web.AltEmail);
  4345. SignUp.Fields[FT.ALT] = new FIELD.Web.AltEmail;
  4346. FIELD.Web.SecurityQuestion = function () {
  4347.     FIELD.SecurityQuestion.apply(this, ["iSQ", "iSQError", "ChangeSQSA_SQSAExplanation", "qsainput"]);
  4348.     this.m_arrMessages[MSG.Type.Error] = new MSG.Web.Error("iSQError");
  4349.     this.m_arrMessages[MSG.Type.Help] = new MSG.SignUp.Help("qsahelp_pop", "qsahelp")
  4350. };
  4351. Derive(FIELD.SecurityQuestion, FIELD.Web.SecurityQuestion);
  4352. SignUp.Fields[FT.SQ] = new FIELD.Web.SecurityQuestion;
  4353. FIELD.Web.SecretAnswer = function () {
  4354.     FIELD.SecretAnswer.apply(this, ["iSA", "ChangeSQSA_SQSAExplanation", "qsainput"]);
  4355.     this.m_arrMessages[MSG.Type.Error] = new MSG.Web.Error("iSAError");
  4356.     this.m_arrMessages[MSG.Type.Help] = new MSG.SignUp.Help("qsahelp_pop", "qsahelp")
  4357. };
  4358. Derive(FIELD.SecretAnswer, FIELD.Web.SecretAnswer);
  4359. SignUp.Fields[FT.SA] = new FIELD.Web.SecretAnswer;
  4360. FIELD.Web.FirstName = function () {
  4361.     FIELD.FirstName.apply(this, ["iFirstName", "Help_Name"]);
  4362.     this.m_arrMessages[MSG.Type.Error] = new MSG.Web.Error("iFirstNameError");
  4363.     this.m_arrMessages[MSG.Type.Help] = new MSG.SignUp.Help("namehelp_pop", "namehelp")
  4364. };
  4365. Derive(FIELD.FirstName, FIELD.Web.FirstName);
  4366. SignUp.Fields[FT.FNAME] = new FIELD.Web.FirstName;
  4367. FIELD.Web.LastName = function () {
  4368.     FIELD.LastName.apply(this, ["iLastName", "Help_Name"]);
  4369.     this.m_arrMessages[MSG.Type.Error] = new MSG.Web.Error("iLastNameError");
  4370.     this.m_arrMessages[MSG.Type.Help] = new MSG.SignUp.Help("namehelp_pop", "namehelp")
  4371. };
  4372. Derive(FIELD.LastName, FIELD.Web.LastName);
  4373. SignUp.Fields[FT.LNAME] = new FIELD.Web.LastName;
  4374. FIELD.Web.Gender = function () {
  4375.     FIELD.Gender.apply(this, ["iGenderMale", "iGenderFemale"]);
  4376.     this.m_arrMessages[MSG.Type.Error] = new MSG.Web.Error("profile_genderError")
  4377. };
  4378. Derive(FIELD.Gender, FIELD.Web.Gender);
  4379. SignUp.Fields[FT.GNDR] = new FIELD.Web.Gender;
  4380. FIELD.Web.BirthDate = function () {
  4381.     FIELD.BirthDate.apply(this, ["iBirthMonth", "iBirthDay", "iBirthYear"]);
  4382.     this.m_arrMessages[MSG.Type.Error] = new MSG.Web.Error("iBirthDateError")
  4383. };
  4384. Derive(FIELD.BirthDate, FIELD.Web.BirthDate);
  4385. SignUp.Fields[FT.BD] = new FIELD.Web.BirthDate;
  4386. var SignUpJsComplete = true
  4387.  
  4388.     function GetString(s) {
  4389.         var rootObject = this,
  4390.             parts = s.toLowerCase().split('.'),
  4391.             iCount = parts.length;
  4392.         for (var i = 0; i < iCount; i++) {
  4393.             var currentPart = parts[i];
  4394.             rootObject = rootObject[currentPart];
  4395.             if (rootObject == null) {
  4396.                 return '';
  4397.             }
  4398.         }
  4399.         return rootObject.toString();
  4400.     }
  4401. registerNamespace("live.accounts.strings");
  4402. live.accounts.strings.autocsr_questionnaire_birthdate_helptext = "דוגמה: 1990";
  4403. live.accounts.strings.iww_signup_fieldlabel_country = "Country/region";
  4404. live.accounts.strings.iww_signup_fieldlabel_sq = "Secret question";
  4405. live.accounts.strings.iww_signup_heading1_easi = "Set up your Windows Live ID";
  4406. live.accounts.strings.iww_signup_heading1_live = "Sign up for a new email address";
  4407. live.accounts.strings.iww_signup_help_altemail = "You can get a message sent to this email address to help you reset your password in case you can't log in.";
  4408. live.accounts.strings.iww_signup_help_mobileemail = "באפשרותך לקבל קוד הנשלח לכתובת הדואר האלקטרוני של הטלפון הנייד כדי לעזור לאפס את הסיסמה במקרה שאינך מצליח להיכנס. חיובי הודעות טקסט עשויים לחול.";
  4409. live.accounts.strings.iww_signup_help_password = "To make your password more secure use 7-16 characters and combine uppercase letters, lowercase letters, numbers, and symbols.";
  4410. live.accounts.strings.iww_signup_help_phone = "באפשרותך לקבוע שיישלח קוד למספר הטלפון הנייד שלך כדי שיעזור לך באיפוס הסיסמה שלך במקרה שלא תוכל להיכנס. ייתכן שתחויב בתשלום עבור העברת הודעות טקסט.";
  4411. live.accounts.strings.iww_signup_help_sqsa = "You can use the answer to your secret question if you have trouble logging in.";
  4412. live.accounts.strings.editprofile_maplinktext_euprivacylink = "פרטיות עבור תושבי האיחוד האירופי";
  4413. live.accounts.strings.error_1245_moset = "This email address is already a Microsoft account.";
  4414. live.accounts.strings.iww_navigation_fullpage = "Please wait";
  4415. live.accounts.strings.iww_navigation_working = "Checking...";
  4416. live.accounts.strings.iww_signup_heading2 = "Keep your account safer";
  4417. live.accounts.strings.iww_signup_heading3 = "Finish up";
  4418. live.accounts.strings.iww_signup_kidserror = "You cannot create a child's Microsoft account here.";
  4419. live.accounts.strings.iww_signup_kidserror2 = "You cannot create a child's Microsoft account here. To create a child account visit the sign up flow on the web.";
  4420. live.accounts.strings.label_proofs_selectphonenumber = "בחר אחד";
  4421. live.accounts.strings.page_title_inlinepage2 = "עוד קצת מידע אודותיך";
  4422. live.accounts.strings.sqsa_secretanswer_details = "חמישה תווים לפחות; לא תלויית רישיות";
  4423. live.accounts.strings.changesqsa_sqsaexplanation = "אם תשכח את הסיסמה שלך, נבקש את התשובה הסודית כדי לאמת את זהותך.";
  4424. live.accounts.strings.error_1005 = "נא הקלד סיסמה ולאחר מכן הקלד אותה שוב לצורך אישור.";
  4425. live.accounts.strings.error_1006 = "סיסמה זו אינה תואמת לסיסמת האישור.";
  4426. live.accounts.strings.error_1007 = "הסיסמה שלך חייבת להיות ארוכה מ- 5 תווים.";
  4427. live.accounts.strings.error_1008 = "הסיסמה מכילה תווים שאינם מותרים.";
  4428. live.accounts.strings.error_1010 = "הסיסמה שלך אינה יכולה להיות ארוכה מ- 16 תווים.";
  4429. live.accounts.strings.error_1012 = "הסיסמה שלך אינה יכולה להכיל את התשובה הסודית שלך או חלק ממנה. הזן סיסמה שונה או בחר תשובה סודית אחרת.";
  4430. live.accounts.strings.error_1018 = "מידע זה נדרש.";
  4431. live.accounts.strings.error_1020 = "מזהה Windows Live שלך אינו יכול להיות כתובת הדואר האלקטרוני החלופית שלך.";
  4432. live.accounts.strings.error_1023 = "התשובה הסודית שלך אינה יכולה להכיל את השאלה שלך או חלק ממנה.";
  4433. live.accounts.strings.error_1025 = "הסיסמה שלך אינה יכולה להכיל את השאלה שלך או חלק ממנה. הזן סיסמה שונה או בחר שאלה אחרת.";
  4434. live.accounts.strings.error_1026 = "נא בחר שאלה.";
  4435. live.accounts.strings.error_1027 = "התשובה הסודית שלך אינה יכולה להכיל את מזהה Windows Live שלך או חלק ממנו.";
  4436. live.accounts.strings.error_1029 = "התשובה הסודית שלך חייבת להיות באורך של 5 תווים לפחות.";
  4437. live.accounts.strings.error_1030 = "התשובה הסודית שלך אינה יכולה להכיל אף אחד מהתווים הבאים: $ \" < > ( ) ; & % # : \\ { }";
  4438. live.accounts.strings.error_1031 = "התשובה הסודית שלך אינה יכולה להכיל יותר מ- 32 תווים.";
  4439. live.accounts.strings.error_1037 = "{0} אינו חוקי. נא ודא שהזנת את המידע הנכון.";
  4440. live.accounts.strings.error_1058 = "{0} אינו זמין.";
  4441. live.accounts.strings.error_1062 = "מזהה Windows Live שלך יכול להכיל רק אותיות, מספרים, נקודות (.), מקפים (-) ומקפים תחתונים (_). המזהה אינו יכול להכיל תווים מיוחדים או אותיות עם סימוני הטעמה.";
  4442. live.accounts.strings.error_1081 = "{0} זמין.";
  4443. live.accounts.strings.error_1088 = "הסיסמה שלך אינה יכולה להכיל את החלק של מזהה Windows Live שלך המופיע לפני הסימן @.";
  4444. live.accounts.strings.error_1145 = "כתובת הדואר האלקטרוני שהזנת ארוכה מדי. נא נסה שוב.";
  4445. live.accounts.strings.error_1159 = "{0} מהווה כבר מזהה Windows Live. נסה מזהה אחר.";
  4446. live.accounts.strings.error_1161 = "הזן את כתובת הדואר האלקטרוני שלך בתבנית yourname@example.com.";
  4447. live.accounts.strings.error_1181 = "כתובת דואר אלקטרוני זו מהווה חלק מתחום שמור, כגון live.com‏, hotmail.com או msn.com. הזן כתובת דואר אלקטרוני שונה.";
  4448. live.accounts.strings.error_1208 = "מספר טלפון נייד זה אינו חוקי עבור המדינה/האזור שלך. נסה שוב או השתמש בשם אחר.";
  4449. live.accounts.strings.error_1217 = "בחר סיסמה קשה יותר לניחוש.";
  4450. live.accounts.strings.error_1219 = "הזן את מזהה Windows Live שלך.";
  4451. live.accounts.strings.error_1220 = "מזהה Windows Live מכיל מילה או צירוף מילים שאינם מותרים.";
  4452. live.accounts.strings.error_1221 = "שלחנו את מספר הקודים המרבי לכתובת הדואר האלקטרוני שלך ליום זה. נסה שוב מחר.";
  4453. live.accounts.strings.error_1222 = "הסיסמה שלך אינה יכולה להכיל את שם המשפחה שלך.";
  4454. live.accounts.strings.error_1223 = "הזן תשובה סודית עבור השאלה שלך.";
  4455. live.accounts.strings.error_1224 = "כתובת הדואר האלקטרוני החלופית אינה חוקית. ייתכן שהיא ארוכה מדי או קצרה מדי, או שהיא מכילה תווים שאינם מותרים.";
  4456. live.accounts.strings.error_1225 = "מידע זה נדרש.";
  4457. live.accounts.strings.error_1226 = "מידע זה נדרש.";
  4458. live.accounts.strings.error_1227 = "מידע זה נדרש.";
  4459. live.accounts.strings.error_1228 = "מידע זה נדרש.";
  4460. live.accounts.strings.error_1229 = "מידע זה נדרש.";
  4461. live.accounts.strings.error_1230 = "מידע זה נדרש.";
  4462. live.accounts.strings.error_1232 = "מידע זה נדרש.";
  4463. live.accounts.strings.error_1233 = "ודא שהזנת את המידע הנכון.";
  4464. live.accounts.strings.error_1234 = "השם שלך מכיל תווים שאינם מותרים.";
  4465. live.accounts.strings.error_1235 = "השם שלך מכיל תווים שאינם מותרים.";
  4466. live.accounts.strings.error_1236 = "שם זה מכיל מילה שאינה מותרת. הזן שם אחר.";
  4467. live.accounts.strings.error_1237 = "לא מצאנו אפשרויות זמינות. נסה להשתמש במילים אחרות.";
  4468. live.accounts.strings.error_1239 = "לאחר שתירשם, נשלח לך הודעה עם קישור כדי לאמת מזהה זה.";
  4469. live.accounts.strings.error_1240 = "הזן את כתובת הדואר האלקטרוני שלך בתבנית yourname@example.com.";
  4470. live.accounts.strings.error_1241 = "מזהה Windows Live שלך יכול להכיל רק אותיות, מספרים, נקודות (.), מקפים (-) ומקפים תחתונים (_). המזהה אינו יכול להכיל תווים מיוחדים או אותיות עם סימוני הטעמה.";
  4471. live.accounts.strings.error_1242 = "{0} מהווה כבר מזהה Windows Live. אם זהו המזהה שלך, באפשרותך להשתמש בו כדי <a {1}>להיכנס</a>.";
  4472. live.accounts.strings.error_1243 = "הסיסמה שלך אינה יכולה להכיל את שמך הפרטי.";
  4473. live.accounts.strings.error_1244 = "תאריך הלידה שהוזן אינו חוקי.";
  4474. live.accounts.strings.error_1245 = "This email address is already a Windows Live ID. You can <a {0}>use it if it's  yours.</a>";
  4475. live.accounts.strings.error_1249 = "מידע זה נדרש.";
  4476. live.accounts.strings.error_1250 = "You must provide at least two ways for us to confirm it's you.";
  4477. live.accounts.strings.error_1251 = "You must provide this info so we have two ways to confirm it's you.";
  4478. live.accounts.strings.error_1252 = "כתובת דואר אלקטרוני זו של טלפון נייד אינה חוקית עבור המדינה/אזור שלך. נסה שוב או השתמש בכתובת דואר אלקטרוני אחרת.";
  4479. live.accounts.strings.error_1254 = "The domain of your email is owned by an organization and cannot be used for this purpose. Please try a different email or <a {0}>create a new email address</a>.";
  4480. live.accounts.strings.error_6 = "אין באפשרותנו לבדוק אם מזהה זה זמין כעת. נסה שוב מאוחר יותר.";
  4481. live.accounts.strings.error_multiple = "שגיאות ביותר משדה אחד. לחץ על כל שדה מסומן כדי לוודא שהמידע נכון.";
  4482. live.accounts.strings.fieldlabel_birthyear = "שנת לידה:";
  4483. live.accounts.strings.fieldlabel_countryregion = "מדינה/אזור:";
  4484. live.accounts.strings.fieldlabel_question = "שאלה:";
  4485. live.accounts.strings.general_secretanswerhelp = "חמישה תווים לפחות; לא תלויית רישיות";
  4486. live.accounts.strings.help_altemail = "השתמש בכתובת שונה ממזהה Windows Live שלך. אם תשכח את הסיסמה, נשלח מידע לאיפוס הסיסמה לכתובת זו.";
  4487. live.accounts.strings.help_easiname = "כתובת הדואר האלקטרוני שלך תהיה מזהה Windows Live שלך. השתמש בה כדי להיכנס לכל שירותי Windows Live. אם תשכח את הסיסמה, נשלח מידע לאיפוס הסיסמה לכתובת זו.";
  4488. live.accounts.strings.help_easioption = "אם תשתמש בכתובת דואר אלקטרוני משלך, לא תהיה לך גישה לשירותי הדואר שלנו. יצירת כתובת דואר אלקטרוני של Windows Live מעניקה לך גישה לכל שירותי מזהה Windows Live.";
  4489. live.accounts.strings.help_membername = "השתמש במזהה Windows Live זה כדי להיכנס לאתרים ולשירותים של Windows Live.";
  4490. live.accounts.strings.help_name = "שמך מאפשר לחברים, עמיתים לעבודה, בני משפחה ואחרים לזהות אותך ב- Windows Live.";
  4491. live.accounts.strings.help_pwdm = "סיסמאות חזקות מכילות 7-16 תווים, אינן כוללות מילים או שמות נפוצים, ומשלבות אותיות רישיות, אותיות קטנות, מספרים וסימנים.";
  4492. live.accounts.strings.help_wlidoption = "יצירת כתובת דואר אלקטרוני של Windows Live מעניקה לך גישה לכל שירותי מזהה Windows Live.";
  4493. live.accounts.strings.inline_activexdisabled = "The Windows Live ID Sign-in Control is disabled. Please go to Internet Explorer to enable this ActiveX control.";
  4494. live.accounts.strings.inline_genericerror = "This service isn't available right now—please try again later.";
  4495. live.accounts.strings.navigation_working = "פועל...";
  4496. live.accounts.strings.page_title = "יצירת מזהה Windows Live שלך";
  4497. live.accounts.strings.profile_separator = ":";
  4498. live.accounts.strings.pwdstrengthmeter_passwordmedium = "בינונית";
  4499. live.accounts.strings.pwdstrengthmeter_passwordstrong = "חזקה";
  4500. live.accounts.strings.pwdstrengthmeter_passwordweak = "חלשה";
  4501. live.accounts.strings.pwrhip_emailexample = "someone@example.com";
  4502.  
  4503. < /script>
  4504.  
  4505.  
  4506. <!-- Hotmail customized strings if needed -->