var Authorization = function () { return this; } Authorization.Obj = Authorization.prototype = { _checkAuthHist: [], user: null, isAuthPage: false, _tmpPwd: null, closeConfirmed: false, _onLogon: null, init: function () { if (_auth.user && _auth.user.id) _auth.showAccount(); else _auth.hideAccount(); window.setInterval(function () { var cookies = jm.Cookies.Get("ruvds_u"); if (cookies && cookies.length && cookies.length > 0 && !_auth.user) { if (!_auth._checkAuthHist[cookies] || (new Date() - _auth._checkAuthHist[cookies]) > 60000) { _auth._checkAuthHist[cookies] = new Date(); jm.AJAX({ URL: "/user_CheckAuth.h?fName=_auth._checkAuthResult&r=" + jm.Random.Int(), Type: "post", Async: true, IsAnswerScript: true }); } } else if (_auth.user && (!cookies || !cookies.length || cookies.length == 0)) _auth._logoutSuccess(); }, 500); }, _checkAuthResult: function (user) { if (user && !_auth.user) { _auth.user = user; _auth.showAccount(); _controls.windows.close("reg"); _controls.windows.close("logon"); } }, partnerOn: function () { return _auth.user && _auth.user.partner && _auth.user.partner.enabled && !_auth.user.partner.prohibited; }, updateDisplayBalance: function () { var span = jm.el('main_HeaderBalance_span'), bSpan = jm.el("balance_Header_span"); var pageCurrency = _state.locale.getCurrency(); var userBalance = pageCurrency.ConvertFromRub(_auth.user.balance); if (span && _auth.user) span.innerHTML = pageCurrency.PrintValue(jm.Text.FormatMoney(Math.floor(userBalance))); if (bSpan) bSpan.innerHTML = pageCurrency.PrintValue(jm.Math.Round(userBalance, 2).toString().Replace(".", ",")); }, showAccount: function () { var logonA = jm.el("main_HeaderLogon_a"), logoutA = jm.el("main_HeaderLogout_a"), div = jm.el('main_HeaderMenu_div'), sctollTop = jm.Window.Document.ScrollTop(); if (!logonA || !logoutA || !div) return; // Insert account menu to DOM div.innerHTML = '
 
Мои сервера
Домены
Баланс:
Заказать
Настройки
Партнеру
 
' logonA.style.display = "none"; logoutA.style.display = ""; _auth.updateDisplayBalance(); jm.el("main_HeaderMenu1_div").style.display = jm.el("main_HeaderMenu2_div").style.display = jm.el("main_HeaderMenu4_div").style.display = _auth.user.hasMaster ? "none" : ""; //jm.el("main_HeaderHello_span").style.marginLeft = _auth.user.hasMaster ? "427px" : "100px"; if (div.style.visibility == "") return; div.style.visibility = ""; div.className = "headerMenu" + (_auth.partnerOn() ? " partnerHeaderMenu" : "") + " anim500l"; div.style.marginTop = (90 - (sctollTop < 40 ? sctollTop : 40)) + "px"; setTimeout(function () { div.className = "headerMenu" + (_auth.partnerOn() ? " partnerHeaderMenu" : ""); }, 500); _updateCenterMargin(); _checkTwoFactorAuthMsg(); if (jm.Data["MainPage"] && jm.Data["main_OrderConf"]) _nav.go("/my/orders"); // Check url and mark corresponding account menu item as selected var pureUrl = jm.URL.Manager._removeLocale(_nav.lastLoadedUrl); jm.el("main_HeaderMenu0_div").className = pureUrl && pureUrl.toLowerCase().indexOf("my/servers") >= 0 ? "l sel" : "l"; jm.el("main_HeaderMenu1_div").className = pureUrl && (pureUrl.toLowerCase().indexOf("my/balance") >= 0 || pureUrl.toLowerCase().indexOf("my/acts") >= 0) ? "l sel" : "l"; jm.el("main_HeaderMenu2_div").className = pureUrl && pureUrl.toLowerCase().indexOf("my/orders") >= 0 ? "l sel" : "l"; jm.el("main_HeaderMenu3_div").className = pureUrl && pureUrl.toLowerCase().indexOf("my/settings") >= 0 ? "l sel settings" : "l settings"; jm.el("main_HeaderMenu4_div").className = pureUrl && pureUrl.toLowerCase().indexOf("my/partner") >= 0 ? "l sel partner" : "l partner"; jm.el("main_HeaderMenu5_div").className = pureUrl && pureUrl.toLowerCase().indexOf("my/domains") >= 0 ? "l sel" : "l"; }, hideAccount: function () { var logonA = jm.el("main_HeaderLogon_a"), logoutA = jm.el("main_HeaderLogout_a"), div = jm.el('main_HeaderMenu_div'), sctollTop = jm.Window.Document.ScrollTop(); if (!logonA || !logoutA || !div) return; logonA.style.display = ""; logoutA.style.display = "none"; if (div.style.visibility == "hidden") return; var withPartner = div.className.toLowerCase().indexOf("partnerheadermenu") >= 0; div.className = "headerMenu" + (withPartner ? " partnerHeaderMenu" : "") + " anim500l"; div.style.marginTop = (55 - (sctollTop < 40 ? sctollTop : 40)) + "px"; setTimeout(function(){ div.className = "headerMenu" + (withPartner ? " partnerHeaderMenu" : ""); div.style.visibility = "hidden"; div.innerHTML = ""; }, 500); _updateCenterMargin(); _checkTwoFactorAuthMsg(); }, logout: function () { jm.AJAX({ URL: "/user_Logoff.h?fName=_auth._logoutSuccess&r=" + jm.Random.Int(), Type: "post", Async: true, IsAnswerScript: true }); }, _logoutSuccess: function () { _auth._checkAuthHist = []; _auth.user = null; _auth.hideAccount(); if (_auth.isAuthPage) { _controls.windows.closeAll(); _nav.go("/"); } }, updateBalance: function () { jm.AJAX({ URL: "/user_Balance.h?fName=_auth._updateBalanceResult&r=" + jm.Random.Int(), Type: "post", Async: true, IsAnswerScript: true }); }, _updateBalanceResult: function (rejectReason, userPrefCurrency, userBalanceRub, partnerBalanceRub) { if (rejectReason != 0 || !_auth.user) return; _auth.user.currency = userPrefCurrency; if (userBalanceRub != null) _auth.user.balance = userBalanceRub; if (_auth.user.partner && partnerBalanceRub != null) _auth.user.partner.balance = partnerBalanceRub; _auth.updateDisplayBalance(); }, logon:{ _captchaId: null, _captchaPageId: null, _changePasswordCaptchaId: null, _changePasswordCaptchaPageId: null, show: function (fromReg, passwordChange, email) { _auth.logon._captchaId = _auth.logon._changePasswordCaptchaId = null; if (fromReg) { _auth.closeConfirmed = true; _controls.windows.close("reg", "logon"); } function act() { _controls.windows.create("logon", { changedBgTo: fromReg ? "logon" : null, width: 500, title: 'Вход в личный кабинетВосстановление доступа', withoutBG: fromReg, body: '
' + '
' + '
' + '
' + '
' + '' + '
' + '
Нажимая кнопку "Зарегистрироваться", Вы соглашаетесь с обработкой Ваших персональных данных и с получением информационных уведомлений от нашей компании.
' + '
' + '
' + '
' + '
‹ Вернуться
' + '
', onCreate: function () { _controls.tb.help.create("auth_LogonEmail_div", { width: 360, value: email ? email : "", helpValue: "Адрес email (example@email.com)" }); _controls.tb.help.create("auth_LogonPassword_div", { width: 360, helpValue: "Пароль", password: true }); _controls.tb.help.create("auth_LogonCodeTB_div", { width: 92, helpValue: "XXXXXX", maxLength: 10, autocomplete: "off" }); _controls.tb.help.create("auth_ChangePasswordEmail_div", { width: 360, value: email ? email : "", helpValue: "Адрес email (example@email.com)" }); _controls.tb.help.create("auth_ChangePasswordCodeTB_div", { width: 92, helpValue: "XXXXXX", maxLength: 10, autocomplete: "off" }); } }); if (passwordChange) _auth.logon._updateChangePasswordCode(jm.Random.Guid()); setTimeout(function () { _controls.windows.show("logon"); jm.el(email ? "auth_LogonPassword_div_tb" : "auth_LogonEmail_div_tb").focus(); }, 20); } if (!fromReg) act(); else window.setTimeout(act, 250); }, _pageChange: function (page) { var prefix = page ? "authorization_" : "auth_", table = jm.el(prefix + "TypeChange_table"), logonForm = jm.el(prefix + "Logon_form"), passwordChangeForm = jm.el(prefix + "PasswordChange_form"), title1 = jm.el(prefix + "LogonTitle1_span"), title2 = jm.el(prefix + "LogonTitle2_span"); if (!table) return; if (table.style.marginLeft == "-390px") { table.style.marginLeft = "0px"; logonForm.style.opacity = 1; passwordChangeForm.style.opacity = 0; if (title1 && title2) setTimeout(function () { title1.style.display = ""; title2.style.display = "none"; }, 250); } else { if (!page && !_auth.logon._changePasswordCaptchaId || page && !_auth.logon._changePasswordCaptchaPageId) _auth.logon._updateChangePasswordCode(jm.Random.Guid(), page); table.style.marginLeft = "-390px"; logonForm.style.opacity = 0; passwordChangeForm.style.opacity = 1; if (title1 && title2) setTimeout(function () { title1.style.display = "none"; title2.style.display = ""; }, 250); } }, _updateCode: function (captchaId, page) { if (page) _auth.logon._captchaPageId = captchaId; else _auth.logon._captchaId = captchaId; var prefix = page ? "authorization_" : "auth_", td = jm.el(prefix + "LogonCodeImg_td"), tb = jm.el(prefix + "LogonCodeTB_div_tb"); if (td) td.innerHTML = '
Показать другой код
'; if (tb) { tb.value = ""; _controls.tb.help.update(prefix + "LogonCodeTB_div"); } _ttText.Update(); }, _updateChangePasswordCode: function (captchaId, page) { if (page) _auth.logon._changePasswordCaptchaPageId = captchaId; else _auth.logon._changePasswordCaptchaId = captchaId; var prefix = page ? "authorization_" : "auth_", td = jm.el(prefix + "ChangePasswordCodeImg_td"), tb = jm.el(prefix + "ChangePasswordCodeTB_div_tb"); if (td) td.innerHTML = '
Показать другой код
'; if (tb) { tb.value = ""; _controls.tb.help.update(prefix + "ChangePasswordCodeTB_div"); } _ttText.Update(); }, click: function (page) { var prefix = page ? "authorization_" : "auth_", email = jm.el(prefix + "LogonEmail_div_tb").value.Trim(), pwd = jm.el(prefix + "LogonPassword_div_tb").value.Trim(), code = jm.el(prefix + "LogonCodeTB_div_tb").value.Trim(), btn = jm.el(prefix + "Logon_btn"); if (!email.ValidateEMail()) { _controls.tb.err(prefix + "LogonEmail_div_tb"); return false; } if (pwd.length == 0) { _controls.tb.err(prefix + "LogonPassword_div_tb"); return false; } if ((page && _auth.logon._captchaPageId || !page && _auth.logon._captchaId) && (!code || code.length < 6)) { _controls.tb.err(prefix + "LogonCodeTB_div_tb"); return false; } btn.disabled = "disabled"; btn.value = "Подождите..."; jm.AJAX({ URL: "/user_Logon.h?fName=_auth.logon._result&r=" + jm.Random.Int(), Type: "post", Data: { email: email, pwd: pwd, captcha: code, captchaId: page ? _auth.logon._captchaPageId : _auth.logon._captchaId, page: page ? 1 : 0 }, Async: true, IsAnswerScript: true }); }, _result: function (rejectReason, userId, authIPWait, user, page, emailVerified) { var prefix = page ? "authorization_" : "auth_", btn = jm.el(prefix + "Logon_btn"), err = null; if (rejectReason > 0 && ((page && _auth.logon._captchaPageId || !page && _auth.logon._captchaId) || rejectReason == 8)) _auth.logon._updateCode(jm.Random.Guid(), page); if (rejectReason == 1) err = 'Укажите Ваш адрес email'; else if (rejectReason == 2) err = 'Укажите Ваш пароль'; else if (rejectReason == 3) err = 'Неверный пароль, либо аккаунт с данным адресом email не существует'; else if (rejectReason == 4) err = '
Ошибка при авторизации.
Попробуйте обновить страницу, использовать другой браузер или обратитесь к службе поддержки.
'; else if (rejectReason == 5) err = '
Данные переданы некорректно.
Попробуйте обновить страницу, использовать другой браузер или обратитесь к службе поддержки.
'; else if (rejectReason == 8) { var cDiv = jm.el(prefix + "LogonCaptcha_div"); cDiv.style.height = "75px"; cDiv.style.opacity = 1; jm.el(prefix + "LogonCodeTB_div_tb").focus(); btn.disabled = ""; btn.value = "ВОЙТИ"; } else if (rejectReason == 9) { _controls.tb.err(prefix + "LogonCodeTB_div_tb"); btn.disabled = ""; btn.value = "ВОЙТИ"; } else if (rejectReason == 10) { var prefix = page ? "authorization_" : "auth_", email = jm.el(prefix + "LogonEmail_div_tb").value.Trim(), pwd = jm.el(prefix + "LogonPassword_div_tb").value.Trim(); _controls.windows.close("logon"); setTimeout(_auth.changePassword.show, 200, userId, email, pwd); } else if (rejectReason == 11 && authIPWait) { _controls.windows.close("logon"); if (page && btn) { btn.disabled = ""; btn.value = "ВОЙТИ"; } setTimeout(function () { _auth.verification.show(authIPWait); }, 200); } else if (rejectReason == 12) err = '
Авторизация отклонена.
Зафиксирована попытка входа с нового места или устройства.
К сожалению, в вашем личном кабинете нет контактных данных, подходящих для верификации перед входом.
'; else if (rejectReason == 0) { if (!user) err = '
Возникла неизвестная ошибка при авторизации.
Попробуйте обновить страницу страницу через пару минут, использовать другой браузер или обратитесь к службе поддержки.
'; else { _auth.user = user; _auth.showAccount(); if (_auth._onLogon) _auth._onLogon(); _controls.windows.close("logon"); // Redirect if authorized user has locale differs from current one. var userLang = jm.Data.DbCache.Language.GetById(_auth.user.language); var userCurr = jm.Data.DbCache.Currency.GetById(_auth.user.currency); if (_state.locale.isDefined()) if (_state.locale._languageId != userLang._id || _state.locale._currencyId != userCurr._id) { _state.locale._languageId = userLang._id; _state.locale._currencyId = userCurr._id; window.location.href = jm.URL.Manager._addLocale(jm.URL.Manager._removeLocale(_nav.lastLoadedUrl)); return; } } } if (err) { _controls.messageBox.show('Авторизация', err, _controls.messageBox.button.ok, _controls.messageBox.icon.warning, rejectReason == 1 || rejectReason == 2 ? 340 : 650); btn.disabled = ""; btn.value = "ВОЙТИ"; } }, passwordChange_click: function (page) { var prefix = page ? "authorization_" : "auth_", email = jm.el(prefix + "ChangePasswordEmail_div_tb").value.Trim(), code = jm.el(prefix + "ChangePasswordCodeTB_div_tb").value.Trim(), btn = jm.el(prefix + "ChangePassword_btn"); if (!email.ValidateEMail()) _controls.tb.err(prefix + "ChangePasswordEmail_div_tb"); else if (code.length < 6) { _controls.tb.err(prefix + "ChangePasswordCodeTB_div_tb"); return false; } else { btn.disabled = "disabled"; btn.value = "Подождите..."; jm.AJAX({ URL: "/user_PasswordChangeRequest_Create.h?fName=_auth.logon._passwordChange_result&r=" + jm.Random.Int(), Type: "post", Data: { email: email, captcha: code, captchaId: page ? _auth.logon._changePasswordCaptchaPageId : _auth.logon._changePasswordCaptchaId, page: page ? 1 : 0 }, Async: true, IsAnswerScript: true }); } }, _passwordChange_result: function (rejectReason, sentEmail, page) { var prefix = page ? "authorization_" : "auth_", btn = jm.el(prefix + "ChangePassword_btn"), codeTB = jm.el(prefix + "ChangePasswordCodeTB_div_tb"); if (!btn) return; btn.disabled = ""; btn.value = "ВОССТАНОВИТЬ ДОСТУП"; if (rejectReason == 0 && sentEmail && sentEmail.length > 0) { _auth.logon._pageChange(page); if (codeTB) codeTB.value = ""; _controls.messageBox.show('Изменение пароля', 'Ссылка для смены пароля успешно отправлена на {0}'.Format(sentEmail), _controls.messageBox.button.ok, _controls.messageBox.icon.info, 600); if (page) _auth.logon._changePasswordCaptchaPageId = null; else _auth.logon._changePasswordCaptchaId = null; } else if (rejectReason > 0){ var err = null; if (rejectReason == 1) err = 'Укажите Ваш адрес email'; else if (rejectReason == 2 || rejectReason == 3) _controls.tb.err(prefix + "ChangePasswordCodeTB_div_tb"); else if (rejectReason == 4) err = 'Аккаунт не найден'; else if (rejectReason == 7) err = '
Не удалось сформировать запрос на изменение пароля.
Пожалуйста, обратитесь к службе поддержки.
'; else if (rejectReason == 8) err = '
Не удалось отправить сообщение на email.
Пожалуйста, обратитесь к службе поддержки.
'; if (err) _controls.messageBox.show('Изменение пароля', err, _controls.messageBox.button.ok, _controls.messageBox.icon.error, 600); _auth.logon._updateChangePasswordCode(jm.Random.Guid(), page); } } }, verification: { wait: null, sending: false, show: function (authWait) { _auth.verification.wait = authWait; _auth.verification.sending = false; _controls.windows.create("verification", { width: 550, title: 'Подтверждение', body: '' + '' + '

Требуется подтверждение

' + '
' + '
Зафиксирована попытка входа с нового места или устройства.
В целях защиты вашего аккаунта вам будет отправлен код подтверждения на указанные ранее контактные данные.
' + (authWait.contactType == 2 ? ('
Номер телефона: +' + (authWait.contact.length > 10 ? authWait.contact.substring(0, authWait.contact.length - 10) + ' ' + authWait.contact.substring(authWait.contact.length - 10, authWait.contact.length).FormatPhone('*') : authWait.contact.FormatPhone('*')) + '' + '
Отправить SMS или Голосовой вызов
') : ('
Адрес email: ' + authWait.contact.ToHTML() + 'Отправить код
')) + '
Код подтверждения
' + '
' + '
' + '
', onCreate: function () { _controls.tb.help.create("verif_Code_div", { width: 160, value: "", helpValue: "XXXXXX", autocomplete: "off", maxLength: 20 }); }, onClose: function (actionSource) { _auth.verification.wait = null; _auth.verification.sending = false; return true; } }); setTimeout(function () { _controls.windows.show("verification"); }, 20); }, send: function (type) { var authWait = _auth.verification.wait; if (!authWait || _auth.verification.sending) return; _auth.verification.sending = true; jm.AJAX({ URL: "/user_AuthVerification.h?fName=_auth.verification._sendResult&r=" + jm.Random.Int(), Type: "post", Data: { "type": "send", "waitId": authWait.waitId, "method": type }, Async: true, IsAnswerScript: true }); }, _sendResult: function (rr) { _auth.verification.sending = false; var authWait = _auth.verification.wait; if (!authWait) return; if (rr == 0) _controls.messageBox.show("Отправка кода подтверждения", "Код подтверждения был успешно отправлен на привязанный к аккаунту " + (authWait.contactType == 2 ? "Номер телефона" : "Адрес email").toLowerCase(), _controls.messageBox.button.ok, _controls.messageBox.icon.info, 700); else { var err = null; if (rr == 3) err = '
Вы отправляете слишком много запросов.
Попробуйте повторить попытку через несколько часов.
'; else if (rr == 7) err = '
В процессе отправки кода произошла неизвестная ошибка.
Попробуйте обновить страницу и повторить попытку.
'; else if (rr == 8) err = '
Не удалось определить аккаунт.
Попробуйте обновить страницу и повторить попытку.
'; else if (rr == 9) err = '
Ваш IP-адрес был изменён в процессе подтверждения.
Попробуйте обновить страницу и повторить попытку.
'; else if (rr == 10) err = '
Время, отведённое для подтверждение истекло.
Попробуйте обновить страницу и повторить попытку.
'; else if (rr == 100) err = '
Данные переданы некорректно.
Попробуйте обновить страницу и повторить попытку.
'; if (err) _controls.messageBox.show("Отправка кода подтверждения", err, _controls.messageBox.button.ok, _controls.messageBox.icon.error, err.length <= 50 ? 500 : 750); } }, done: function () { var btn = jm.el("verif_Code_btn"), authWait = _auth.verification.wait, code = jm.el("verif_Code_div_tb").value.ExtractDigits(), save = jm.el("verif_Save_input").checked; if (!btn || !authWait || btn.disabled != "") return; if (code.length < 6) { _controls.tb.err("verif_Code_div_tb"); return; } btn.value = "Подождите..."; btn.disabled = "disabled"; jm.AJAX({ URL: "/user_AuthVerification.h?fName=_auth.verification._doneResult&r=" + jm.Random.Int(), Type: "post", Data: { "type": "check", "waitId": authWait.waitId, "code": code, "save": save }, Async: true, IsAnswerScript: true }); }, _doneResult: function (rr, user) { if (rr > 0) { var err = null; if (rr == 8) err = 'Вы ещё ни разу не запрашивали отправку кода подтверждения'; else if (rr == 9) err = '
Ваш IP-адрес был изменён в процессе подтверждения.
Попробуйте обновить страницу и повторить попытку.
'; else if (rr == 10) err = '
Время, отведённое для подтверждение истекло.
Попробуйте обновить страницу и повторить попытку.
'; else if (rr == 11) err = 'Введён неверный код подтверждения'; else if (rr == 12) err = '
Не удалось сохранить данные авторизации в Cookies вашего браузера.
Попробуйте обновить страницу или использовать другой браузер.
'; else if (rr == 100) err = '
Данные переданы некорректно.
Попробуйте обновить страницу и повторить попытку.
'; if (err) _controls.messageBox.show("Подтверждение авторизации", err, _controls.messageBox.button.ok, _controls.messageBox.icon.error, err.length <= 50 ? 500 : 750); var btn = jm.el("verif_Code_btn"); if (btn) { btn.value = "Готово"; btn.disabled = ""; } } else { _auth.logon._result(0, null, false, user, false); _controls.windows.close("verification"); } } }, reg:{ _captchaId: null, _closeEmailConfirmed: false, show: function (fromLogon) { if (_auth.user) { _controls.messageBox.show("Регистрация на сайте", "У Вас уже есть аккаунт на сайте и Вы авторизованы", _controls.messageBox.button.ok, _controls.messageBox.icon.warning, 600); return; } _actCounter('reg'); _auth.closeConfirmed = false; _auth.virtualServerId = 0; _auth.orderOSId = -1; if (fromLogon) _controls.windows.close("logon", "reg"); function act() { _controls.windows.create("reg", { changedBgTo: fromLogon ? "reg" : null, width: 400, title: "Регистрация на сайте", withoutBG: fromLogon, body: '
' + '
' + '
' + '
' + '
', onCreate: function () { _controls.tb.help.create("auth_RegEmail_div", { width: 260, helpValue: "Адрес email (example@email.com)" }); _controls.tb.help.create("auth_RegCodeTB_div", { width: 92, helpValue: "XXXXXX", maxLength: 10, autocomplete: "off" }); _auth.reg._updateCode(jm.Random.Guid()); }, onClose: function (actionSource) { if (_auth.closeConfirmed || actionSource != _controls.windows.actionSource.bgClick && actionSource != _controls.windows.actionSource.esc || _auth.user) return true; _controls.messageBox.show("Подтверждение", "Вы действительно хотите закрыть окно регистрации?", _controls.messageBox.button.yes_no, _controls.messageBox.icon.question, 600, null, function (r) { _auth.closeConfirmed = r == _controls.messageBox.dialogResult.yes; if (_auth.closeConfirmed) _controls.windows.close("reg"); }); } }); setTimeout(function () { _controls.windows.show("reg"); jm.el("auth_RegEmail_div_tb").focus(); }, 20); } if (!fromLogon) act(); else window.setTimeout(act, 250); }, _updateCode: function (captchaId) { _auth.reg._captchaId = captchaId; var td = jm.el("auth_RegCodeImg_td"), tb = jm.el("auth_RegCodeTB_div_tb"); if (td) td.innerHTML = '
Показать другой код
'; if (tb) { tb.value = ""; _controls.tb.help.update("auth_RegCodeTB_div"); } _ttText.Update(); }, click: function () { var email = jm.el("auth_RegEmail_div_tb").value.Trim(), code = jm.el("auth_RegCodeTB_div_tb").value.Trim(), btn = jm.el("auth_Reg_btn"); if (!email.ValidateEMail()) _controls.tb.err("auth_RegEmail_div_tb"); else if (code.length < 6) _controls.tb.err("auth_RegCodeTB_div_tb"); else{ btn.disabled = "disabled"; btn.value = "Подождите..."; jm.AJAX({ URL: "/user_AddOrUpdate.h?fName=_auth.reg._result&r=" + jm.Random.Int(), Type: "post", Data: { id: _auth.user ? _auth.user.id : null, email: email, captcha: code, captchaId: _auth.reg._captchaId }, Async: true, IsAnswerScript: true }); } }, _result: function (rejectReason, user, phoneVerificationSent, emailVerificationSent) { var btn = jm.el('auth_Reg_btn'); if (!btn) return; if (rejectReason > 0) { if (rejectReason == 21 || rejectReason == 22) _controls.tb.err("auth_RegEmail_div_tb"); else if (rejectReason == 23) _controls.messageBox.show("Некорректный адрес email", '
Аккаунт с данным адресом email уже был зарегистрирован ранее.
' + '
Если Вы не помните свой пароль, пожалуйста, воспользуйтесь {0}системой восстановления пароля{1} или обратитесь к службе поддержки.
'.Format('', ''), _controls.messageBox.button.ok, _controls.messageBox.icon.warning, 700); else if (rejectReason == 1) _controls.messageBox.show("Ошибка", '
Произошла ошибка во время сохранения данных.
Попробуйте повторить регистрацию через пару минут, обновить страницу или используйте другой браузер.
', _controls.messageBox.button.ok, _controls.messageBox.icon.error, 700); else if (rejectReason == 2) _controls.tb.err("auth_RegCodeTB_div_tb"); else _controls.messageBox.show("Ошибка", '
Возникла неизвестная ошибка.
Пожалуйста, попробуйте повторить операцию через пару минут или обратитесь к службе поддержки.
', _controls.messageBox.button.ok, _controls.messageBox.icon.error, 700); btn.value = "ЗАРЕГИСТРИРОВАТЬСЯ"; btn.disabled = ""; _auth.reg._updateCode(jm.Random.Guid()); } else if (user && user.id) { _auth.closeConfirmed = true; _controls.windows.close("reg"); _controls.windows.create("regSuccess", { width: 600, title: "Регистрация на сайте", body: '

УСПЕШНАЯ РЕГИСТРАЦИЯ

Временный пароль от аккаунта был отправлен на
указанный адрес email
Пожалуйста, проверьте Вашу почту!
', onClose: function () { setTimeout(function () { _auth.logon.show(false, false, user.email); }, 200); return true; } }); setTimeout(function () { _controls.windows.show("regSuccess"); }, 20); } } }, changePassword: { _userId: null, _email: null, _currentPassword: null, show: function (userId, email, currentPassword) { _auth.changePassword._userId = userId; _auth.changePassword._email = email; _auth.changePassword._currentPassword = currentPassword; _controls.windows.create("changePassword", { width: 500, title: 'Изменение пароля', body: '
' + '
Перед началом работы необходимо изменить пароль.
Пожалуйста, задайте удобный Вам, но всё же сложный, отвечающий высоким требованиям безопасности.
' + '
' + '
' + '
' + '
', onCreate: function () { _controls.tb.help.create("auth_Password1_div", { width: 360, helpValue: "Новый пароль", password: true }); _controls.tb.help.create("auth_Password2_div", { width: 360, helpValue: "Повторите пароль", password: true }); } }); setTimeout(function () { _controls.windows.show("changePassword"); jm.el("auth_Password1_div_tb").focus(); }, 20); }, click: function () { var pwd1 = jm.el("auth_Password1_div_tb").value.Trim(), pwd2 = jm.el("auth_Password2_div_tb").value.Trim(); if (pwd1 == "") _controls.tb.err("auth_Password1_div_tb"); else if (pwd2 == "") _controls.tb.err("auth_Password2_div_tb"); else if (pwd1.length < 6 || pwd1.IsSimplePassword()) _controls.messageBox.show("Слишком простой пароль", "
Пожалуйста, придумайте более сложный пароль.
Минимально допустимая длина пароля - 6 символов, он не должен состоять из одних цифр или быть простым словом как, например, qwerty.
", _controls.messageBox.button.ok, _controls.messageBox.icon.warning, 700); else if (pwd1 != pwd2) _controls.messageBox.show("Пароли не совпадают", "
Пароли не совпадают.
Пожалуйста, перепроверьте введённые данные.
", _controls.messageBox.button.ok, _controls.messageBox.icon.warning, 600); else if (pwd1 == _auth.changePassword._currentPassword) _controls.messageBox.show("Указан действующий пароль", "
Js.Auth.ErrCurrPw_1.
Пожалуйста, придумайте и введите собственный уникальный пароль.
", _controls.messageBox.button.ok, _controls.messageBox.icon.warning, 600); else if (pwd1.indexOf(_auth.changePassword._currentPassword) >= 0 || _auth.changePassword._currentPassword.indexOf(pwd1) >= 0) _controls.messageBox.show("Указан действующий пароль", "
Вы указали пароль, похожий на текущий.
Пожалуйста, придумайте и введите собственный уникальный пароль.
", _controls.messageBox.button.ok, _controls.messageBox.icon.warning, 600); else if (_auth.changePassword._email && _auth.changePassword._email.toLowerCase().indexOf(pwd1.toLowerCase()) >= 0) _controls.messageBox.show("Слишком простой пароль", "
Слишком простой пароль.
Пароль не должен содержать часть адреса email.
", _controls.messageBox.button.ok, _controls.messageBox.icon.warning, 600); else { var btn = jm.el("auth_ChangePassword_btn"); btn.disabled = "disabled"; btn.value = "Подождите..."; jm.AJAX({ URL: "/user_ChangePassword.h?fName=_auth.changePassword._result&r=" + jm.Random.Int(), Data: { userId: _auth.changePassword._userId, email: _auth.changePassword._email, p: _auth.changePassword._currentPassword, newPassword: pwd1 }, Type: "post", Async: true, IsAnswerScript: true }); } }, _result: function (rejectReason, user) { var btn = jm.el('auth_ChangePassword_btn'), err = null; if (!btn) return; btn.disabled = ""; btn.value = "ИЗМЕНИТЬ ПАРОЛЬ"; //if (_settings._lastPassword && rejectReason != 4 && rejectReason != 7) _controls.authConfirmation.setPasswordHash(_settings._lastPassword); //_settings._lastPassword = null; if (rejectReason == 1 || rejectReason == 2) err = '
Произошла ошибка во время сохранения.
Попробуйте повторить попытку через пару минут, обновить страницу или использовать другой браузер.
'; else if (rejectReason == 3) err = '
Вы не авторизованы.
Попробуйте обновить страницу или используйте другой браузер.
'; else if (rejectReason == 4) err = 'Передан пустой текущий пароль от аккаунта'; else if (rejectReason == 5) err = 'Передан пустой новый пароль'; else if (rejectReason == 6) err = '
Пожалуйста, придумайте более сложный пароль.
Минимально допустимая длина пароля - 6 символов, он не должен состоять из одних цифр или быть простым словом как, например, qwerty.
'; else if (rejectReason == 7) err = 'Неверный текущий пароль от аккаунта'; else if (rejectReason == 8) err = '
Указан действующий пароль.
Пожалуйста, придумайте и введите собственный уникальный пароль.
'; else if (rejectReason == 0 && user) { _auth.user = user; _auth.showAccount(); _controls.authConfirmation._pwdHash = jm.el("auth_Password1_div_tb").value.Trim(); _controls.windows.close("changePassword"); _nav.go(jm.Data["main_OrderConf"] ? "/my/orders" : "/my/servers"); } if (err) _controls.messageBox.show("Изменение пароля", err, _controls.messageBox.button.ok, _controls.messageBox.icon.warning, 700); } }, contactConfirm: { show: function (contactType) { var country = _getCountryById(_auth.user.countryId); _controls.windows.create("contactConfirmation", { width: 380, title: "Подтверждение {0}".Format(contactType == 2 ? "номера телефона" : "адреса email"), body: '
' + "Код подтверждения {0}".Format(contactType == 2 ? "номера телефона" : "адреса email") + '
' + (contactType == 2 ? '+' + country[2] + ' ' + _auth.user.phone.FormatPhone() : _auth.user.email) + ':
' + '
' + '
' + 'Если Вам не пришёл код подтверждения, Вы можете {0}запросить {1}'.Format('', (contactType == 2 ? 'повторный звонок{0} на телефон' : 'повторную отправку{0} email').Format('')) + '
' + '
', onClose: function () { return true; }, }); _controls.tb.help.create("confirm_Code_div", { width: 150, helpValue: "XXXXXX", maxLength: 10, autocomplete: "off" }); setTimeout(function () { _controls.windows.show("contactConfirmation"); jm.el('confirm_Code_div_tb').focus(); }, 20); }, apply: function (contactType) { var value = jm.el("confirm_Code_div_tb").value.Trim(), btn = jm.el('confirm_Code_btn'); if (value.length == 0) _controls.tb.err("confirm_Code_div_tb"); else { btn.value = "..."; btn.disabled = "disabled"; jm.AJAX({ URL: "/user_ContactVerify.h?fName=_auth.contactConfirm._applyResult&r=" + jm.Random.Int(), Type: "post", Data: { type: contactType, value: value, checkCreate: true }, Async: true, IsAnswerScript: true }); } }, _applyResult: function (rejectReason, contactType, hs) { if (!_auth.user) return; if (rejectReason == 0) { if (hs != null && hs != undefined) _auth.user.hs = hs; if (contactType == 2) _auth.user.phoneVerified = true; else if (contactType == 3) _auth.user.emailVerified = true; if (jm.Data["PersonalPage"]) jm.Data["PersonalPage"].updateConfirmation(); if (jm.Data["OrderPage"]) jm.Data["OrderPage"]._confirmContactSuccess(contactType); _controls.windows.close("contactConfirmation"); } else { var err = "", btn = jm.el('confirm_Code_btn'); if (rejectReason == 1) err = '
Вы не авторизованы.
Попробуйте обновить страницу и ввести код подтверждения повторно.
'; else if (rejectReason == 2) err = '
Не удалось найти контакт для подтверждения.
Попробуйте обновить страницу и ввести код подтверждения повторно.
'; else if (rejectReason == 3) err = 'Введите код подтверждения'; else if (rejectReason == 4) err = '
Неверный код подтверждения
Пожалуйста, перепроверьте введённые данные.
'; else if (rejectReason == 5) err = 'Данный тип контактных данных не требует подтверждения'; else err = '
Возникла неизвестная ошибка.
Попробуйте обновить страницу и ввести код подтверждения повторно.
Если проблема не исчезнет, обратитесь, пожалуйста, к службе поддержки.
'; _controls.messageBox.show("Подтверждение {0}".Format(contactType == 2 ? "номера телефона" : "адреса email"), err, _controls.messageBox.button.ok, _controls.messageBox.icon.error, 700, null, function () { setTimeout(function () { var tb = jm.el("confirm_Code_div_tb"); if (tb) tb.focus(); }, 100); }); if (btn) { btn.value = "Готово"; btn.disabled = ""; } } }, resend: function (contactType) { if (!contactType || contactType <= 0) return; jm.AJAX({ URL: "/user_ContactVerify_Send.h?fName=_auth.contactConfirm._resendResult&r=" + jm.Random.Int(), Type: "post", Data: { "type": contactType }, Async: true, IsAnswerScript: true }); }, _resendResult: function (rejectReason, contactType) { if (rejectReason == 0) _controls.messageBox.show("Повторная отправка кода", "Код подтверждения {0}".Format(contactType == 2 ? "номера телефона" : "адреса email") + " успешно отправлен повторно", _controls.messageBox.button.ok, _controls.messageBox.icon.info, 700); else { var err = null; if (rejectReason == 1) err = '
Вы не авторизованы.
Попробуйте обновить страницу и запросите повторную отправку кода из раздела "Настройки" в личном кабинете.
'; else if (rejectReason == 2 || rejectReason == 5 || rejectReason == 7) err = '
Не удалось отправить код подтверждения.
Пожалуйста, обратитесь к службе поддержки.
'; else if (rejectReason == 3) err = '
' + (contactType == 2 ? 'Предыдущий звонок с кодом подтверждения был отправлен {0}' : 'Предыдущее сообщение с кодом подтверждения было отправлено {0}').Format('менее 3 минут назад.') + '
Пожалуйста, подождите некоторое время.
'; else if (rejectReason == 4) err = '
Достигнуто максимальное количество повторных отправок кода подтверждения.
Пожалуйста, обратитесь к службе поддержки.
'; else if (rejectReason == 6) { err = 'Ваш {0} уже был подтверждён ранее'.Format(contactType == 2 ? "номер телефона" : "адрес email"); if (contactType == 2) _auth.user.phoneVerified = true; else _auth.user.emailVerified = true; if (jm.Data["PersonalPage"]) jm.Data["PersonalPage"].updateConfirmation(); if (jm.Data["OrderPage"]) jm.Data["OrderPage"]._confirmContactSuccess(contactType); } if (err) _controls.messageBox.show("Повторная отправка кода", err, _controls.messageBox.button.ok, _controls.messageBox.icon.error, err.length <= 50 ? 500 : 750); } } }, org:{ showed: false, closeConfirmed: false, createRegDateDayList: function () { var daySelect = jm.el("org_RegDate_Day_select"); var year = parseInt(jm.el("org_RegDate_Year_select").value), month = parseInt(jm.el("org_RegDate_Month_select").value), day = parseInt(daySelect.value), daysCount = 31; if (year > 0 && month == 2) daysCount = (new Date(year, month) - new Date(year, month - 1)) / 24 / 3600000; else if (month > 0 && (month != 1 && month != 3 && month != 5 && month != 7 && month != 8 && month != 10 && month != 12)) daysCount = month == 2 ? 29 : 30; daySelect.options.length = 1; for (var n = 1; n <= daysCount; n++) daySelect.options[n] = new Option(n, n); daySelect.value = day <= daysCount ? day : daysCount; _controls.cb.CreateOrUpdate("org_RegDate_Day_select", { DefaultText: "День", Width: 80, ItemsHeight: 24, ItemsPadding: { Top: 6, Right: 6, Bottom: 6, Left: 9 }, IsFirstHeader: true }); }, show: function () { _auth.org.closeConfirmed = false; _auth.org.showed = true; var org = _auth.user ? _auth.user.org : null; _controls.windows.create("org", { width: 680, title: "Карточка организации", body: '
' + '
Название организации или ИП
' + '' + '
Дата регистрации
Серия свидетельства о регистрации
' + '' + '' + '' + '' + '' + '' + '
ОГРН или ОГРНИП
ОКПО
ИНН
КПП
Телефон
' + 'Факс {0}(если есть){1}'.Format('', '') + '
' + '

' + 'РУКОВОДИТЕЛЬ {0}ИЛИ ОТВЕТСТВЕННОЕ ЛИЦО{1}'.Format('', '') + '

' + '
Должность
' + '
Действует на основании
' + '' + '' + '
Фамилия
Имя
Отчество
' + '

В РОДИТЕЛЬНОМ ПАДЕЖЕ (В ЛИЦЕ...)

' + '' + '' + '
Фамилия
Имя
Отчество
' + '

' + 'ЮРИДИЧЕСКИЙ {0}АРДЕС{1}'.Format('', '') + '

' + '' + '' + '
Страна
Город / Населённый пункт
Индекс
' + '
Улица, дом, офис
' + '

' + 'ПОЧТОВЫЙ {0}АДРЕС{1}'.Format('', '') + '

' + '' + '' + '
Страна
Город / Населённый пункт
Индекс
' + '
Улица, дом, офис
' + '

' + 'БАНКОВСКИЕ {0}РЕКВИЗИТЫ{1}'.Format('', '') + '

' + '' + '
Страна
Название банка
' + '' + '' + '
БИК
Расчётный счёт
Корреспондентский счёт
' + '
' + '
', onCreate: function () { _auth.org.createRegDateDayList(); var monthCbDiv = _controls.cb.Create("org_RegDate_Month_select", { DefaultText: "Месяц", Width: 117, ItemsHeight: 24, ItemsPadding: { Top: 6, Right: 6, Bottom: 6, Left: 9 }, IsFirstHeader: true }, function () { _auth.org.createRegDateDayList(); }); var yearSelect = jm.el("org_RegDate_Year_select"), nowYear = new Date().getFullYear(); for (var n = nowYear; n >= 1930; n--) yearSelect.options[nowYear + 1 - n] = new Option(n, n); var yearCbDiv = _controls.cb.Create("org_RegDate_Year_select", { DefaultText: "Год", Width: 80, ItemsHeight: 24, ItemsPadding: { Top: 6, Right: 6, Bottom: 6, Left: 9 }, IsFirstHeader: true }, function () { if (parseInt(jm.el("org_RegDate_Month_select").value) == 2) _auth.org.createRegDateDayList(); }); if (_countries && _countries.length > 0){ var legalCountryCB = jm.el("org_LegalCountry_select"), postCountryCB = jm.el("org_PostCountry_select"), bankCountryCB = jm.el("org_BankCountry_select"); var legalCountryId = org && org.legalAddress && org.legalAddress.city && org.legalAddress.city.country ? org.legalAddress.city.country.id : 0, postCountryId = org && org.postAddress && org.postAddress.city && org.postAddress.city.country ? org.postAddress.city.country.id : 0, bankCountryId = org && org.bank && org.bank.country ? org.bank.country.id : 0; legalCountryCB.options.length = postCountryCB.options.length = bankCountryCB.options.length = 0; for (var n = 0; n < _countries.length; n++) { legalCountryCB.options[n] = new Option(_countries[n][1], _countries[n][0]); postCountryCB.options[n] = new Option(_countries[n][1], _countries[n][0]); bankCountryCB.options[n] = new Option(_countries[n][1], _countries[n][0]); if ((legalCountryId == 0 ? _detectedCountryId : legalCountryId) == _countries[n][0]) legalCountryCB.options[n].selected = true; if ((postCountryId == 0 ? _detectedCountryId : postCountryId) == _countries[n][0]) postCountryCB.options[n].selected = true; if ((bankCountryId == 0 ? _detectedCountryId : bankCountryId) == _countries[n][0]) bankCountryCB.options[n].selected = true; } } if (org && org.regDate) { _controls.cb.SetValue("org_RegDate_Year_select", org.regDate.getFullYear()); _controls.cb.SetValue("org_RegDate_Month_select", org.regDate.getMonth() + 1); _controls.cb.SetValue("org_RegDate_Day_select", org.regDate.getDate()); } _controls.tb.help.create("org_Name_div", { width: 596, helpValue: 'ООО "Название организации"', value: org ? org.name : null, maxLength: 200, onBlur: function(){ var val = jm.el("org_Name_div_tb").value.Trim(); if (val.length >= 3 && val.substring(0, 3).toLowerCase() == "ип " || val.length >= 31 && val.substring(0, 31).toLowerCase() == "Индивидуальный предприниматель ".toLowerCase()) { jm.el("org_CEO_Title_div_tb").value = "Индивидуальный предприниматель"; var serNumber = jm.el("org_CertSeriesNumber_div_tb").value.Trim(); jm.el("org_CEO_OperatesBased_div_tb").value = "Свидетельства о государственной регистрации физического лица в качестве индивидуального предпринимателя" + (serNumber.length > 0 ? ' серии ' + serNumber : ''); _controls.tb.help.update("org_CEO_Title_div"); _controls.tb.help.update("org_CEO_OperatesBased_div"); } }}); _controls.tb.help.create("org_CertSeriesNumber_div", { width: 273, helpValue: "77 №012345678", value: org ? org.certSeriesNumber : null, maxLength: 50, onBlur: function () { var val = jm.el("org_Name_div_tb").value.Trim(), serNumber = jm.el("org_CertSeriesNumber_div_tb").value.Trim(); if (val.length >= 3 && val.substring(0, 3).toLowerCase() == "ип " || val.length >= 31 && val.substring(0, 31).toLowerCase() == "Индивидуальный предприниматель ".toLowerCase()) { jm.el("org_CEO_OperatesBased_div_tb").value = "Свидетельства о государственной регистрации физического лица в качестве индивидуального предпринимателя" + (serNumber.length > 0 ? ' серии ' + serNumber : ''); _controls.tb.help.update("org_CEO_OperatesBased_div"); } }}); _controls.cb.Create("org_LegalCountry_select", { Width: 259, ItemsHeight: 24, ItemsPadding: { Top: 6, Right: 6, Bottom: 6, Left: 9 } }, function () { var country = _getSelectedCountry("org_LegalCountry_select"); _controls.tb.help.create("org_Phone_div", { width: 273, value: org ? org.phone.FormatPhone() : null, helpValue: "(123) 456-7890", prefix: country == null ? '' : ('+' + country[2]), maxLength: 20 }); _controls.tb.help.create("org_Fax_div", { width: 273, value: org ? org.fax.FormatPhone() : null, helpValue: "(123) 456-7890", prefix: country == null ? '' : ('+' + country[2]), maxLength: 20 }); }); _controls.tb.help.create("org_LegalCity_div", { width: 190, helpValue: "Москва", value: org && org.legalAddress && org.legalAddress.city && org.legalAddress.city.name ? org.legalAddress.city.name : _detectedCity, maxLength: 200 }); _controls.tb.help.create("org_LegalPostcode_div", { width: 91, helpValue: "123456", value: org && org.legalAddress ? org.legalAddress.postcode : null, maxLength: 10 }); _controls.tb.help.create("org_LegalAddress_div", { width: 596, helpValue: "Название улицы, номер дома и квартиры/офиса", value: org && org.legalAddress ? org.legalAddress.value : null, maxLength: 200 }); _controls.cb.Create("org_PostCountry_select", { Width: 259, ItemsHeight: 24, ItemsPadding: { Top: 6, Right: 6, Bottom: 6, Left: 9 } }); _controls.tb.help.create("org_PostCity_div", { width: 190, helpValue: "Москва", value: org && org.postAddress && org.postAddress.city && org.postAddress.city.name ? org.postAddress.city.name : _detectedCity, maxLength: 200 }); _controls.tb.help.create("org_PostPostcode_div", { width: 91, helpValue: "123456", value: org && org.postAddress ? org.postAddress.postcode : null, maxLength: 10 }); _controls.tb.help.create("org_PostAddress_div", { width: 596, helpValue: "Название улицы, номер дома и квартиры/офиса", value: org && org.postAddress ? org.postAddress.value : null, maxLength: 200 }); _controls.tb.help.create("org_INN_div", { width: 273, helpValue: "7701234567", value: org ? org.inn : null, maxLength: 20 }); _controls.tb.help.create("org_KPP_div", { width: 273, helpValue: "770123456", value: org ? org.kpp : null, maxLength: 20 }); _controls.tb.help.create("org_OGRN_div", { width: 273, helpValue: "1234567890123", value: org ? org.ogrn : null, maxLength: 20 }); _controls.tb.help.create("org_OKPO_div", { width: 273, helpValue: "01234567", value: org ? org.okpo : null, maxLength: 20 }); _controls.tb.help.create("org_Phone_div", { width: 273, value: org ? org.phone.FormatPhone() : null, helpValue: "(123) 456-7890", prefix: "+7", maxLength: 20 }); _controls.tb.help.create("org_Fax_div", { width: 273, value: org ? org.fax.FormatPhone() : null, helpValue: "(123) 456-7890", prefix: "+7", maxLength: 20 }); _controls.tb.help.create("org_CEO_Title_div", { width: 596, helpValue: "Генеральный директор", value: org ? org.ceoTitle : "Генеральный директор", maxLength: 100 }); _controls.tb.help.create("org_CEO_OperatesBased_div", { width: 596, helpValue: "Устава", value: org ? org.ceoOperatesBased : "Устава", maxLength: 300 }); _controls.tb.help.create("org_CEO_LastName_div", { width: 172, helpValue: "Иванов", value: org ? org.ceoLastName : null, maxLength: 30 }); _controls.tb.help.create("org_CEO_FirstName_div", { width: 172, helpValue: "Иван", value: org ? org.ceoFirstName : null, maxLength: 30 }); _controls.tb.help.create("org_CEO_Patronymic_div", { width: 172, helpValue: "Иванович", value: org ? org.ceoPatronymic : null, maxLength: 30 }); _controls.tb.help.create("org_CEO_Genitive_LastName_div", { width: 172, helpValue: "Иванова", value: org ? org.ceoLastNameG : null, maxLength: 30 }); _controls.tb.help.create("org_CEO_Genitive_FirstName_div", { width: 172, helpValue: "Ивана", value: org ? org.ceoFirstNameG : null, maxLength: 30 }); _controls.tb.help.create("org_CEO_Genitive_Patronymic_div", { width: 172, helpValue: "Ивановича", value: org ? org.ceoPatronymicG : null, maxLength: 30 }); _controls.tb.help.create("org_BankName_div", { width: 321, helpValue: 'ОАО "Сбербанк России"', value: org && org.bank ? org.bank.name : null, maxLength: 200 }); _controls.tb.help.create("org_BankIdCode_div", { width: 106, helpValue: "012345678", value: org && org.bank ? org.bank.idCode : null, maxLength: 20 }); _controls.tb.help.create("org_BankAccount_div", { width: 205, helpValue: "4070123450000001", value: org && org.bank ? org.bank.account : null, maxLength: 30 }); _controls.tb.help.create("org_BankCorrespondentAccount_div", { width: 205, helpValue: "301012345000000001", value: org && org.bank ? org.bank.correspondentAccount : null, maxLength: 30 }); _controls.cb.Create("org_BankCountry_select", { Width: 259, ItemsHeight: 24, ItemsPadding: { Top: 6, Right: 6, Bottom: 6, Left: 9 } }); }, onClose: function (actionSource) { if (_auth.org.closeConfirmed || actionSource != _controls.windows.actionSource.bgClick && actionSource != _controls.windows.actionSource.esc || !_auth.user) return true; _controls.messageBox.show("Подтверждение", "
Вы действительно хотите закрыть это окно?
Все несохранённые данные организации будут потеряны!
", _controls.messageBox.button.yes_no, _controls.messageBox.icon.question, 550, null, function (r) { _auth.org.closeConfirmed = r == _controls.messageBox.dialogResult.yes; if (_auth.org.closeConfirmed) _controls.windows.close('org'); }); } }); setTimeout(function () { _controls.windows.show("org"); }, 20); }, save: function () { var orgName = jm.el("org_Name_div_tb").value.Trim(), regDay = parseInt(jm.el("org_RegDate_Day_select").value), regMonth = parseInt(jm.el("org_RegDate_Month_select").value), regYear = parseInt(jm.el("org_RegDate_Year_select").value), certSeriesNumber = jm.el("org_CertSeriesNumber_div_tb").value.Trim(), inn = jm.el("org_INN_div_tb").value.ExtractDigits(), ogrn = jm.el("org_OGRN_div_tb").value.ExtractDigits(), phone = jm.el("org_Phone_div_tb").value.ExtractDigits(), lCountry = _getSelectedCountry("org_LegalCountry_select"), lCity = jm.el("org_LegalCity_div_tb").value.Trim(), lAddress = jm.el("org_LegalAddress_div_tb").value.Trim(), pCountry = _getSelectedCountry("org_PostCountry_select"), pCity = jm.el("org_PostCity_div_tb").value.Trim(), pAddress = jm.el("org_PostAddress_div_tb").value.Trim(), ceoTitle = jm.el("org_CEO_Title_div_tb").value.Trim(), ceoOperatesBased = jm.el("org_CEO_OperatesBased_div_tb").value.Trim(), ceoLastName = jm.el("org_CEO_LastName_div_tb").value.Trim(), ceoFirstName = jm.el("org_CEO_FirstName_div_tb").value.Trim(), ceoPatronymic = jm.el("org_CEO_Patronymic_div_tb").value.Trim(), ceoLastNameG = jm.el("org_CEO_Genitive_LastName_div_tb").value.Trim(), ceoFirstNameG = jm.el("org_CEO_Genitive_FirstName_div_tb").value.Trim(), ceoPatronymicG = jm.el("org_CEO_Genitive_Patronymic_div_tb").value.Trim(), bankCountry = _getSelectedCountry("org_BankCountry_select"), bankName = jm.el("org_BankName_div_tb").value.Trim(), bankIdCode = jm.el("org_BankIdCode_div_tb").value.ExtractDigits(), bankAccount = jm.el("org_BankAccount_div_tb").value.ExtractDigits(), bankCorrespondentAccount = jm.el("org_BankCorrespondentAccount_div_tb").value.ExtractDigits(), err = ''; var orgTypes = ["ооо", "пкоо", "ип", "зао", "оао", "гуп", "муп", "фонд", "нпф", "ано", "ноу", "нп", "нпо", "нтц", "тсж", "адвокат", "фгаоу", "нтц", "жск", "ао"], containsOrgType = false; for (var n in orgTypes) if (orgName.toLowerCase().indexOf(orgTypes[n]) >= 0) { containsOrgType = true; break; } if (orgName == '' || !containsOrgType) err += '• Название организации или ИП
'; if (regDay <= 0 || regMonth <= 0 || regYear <= 0) err += '• Дата регистрации
'; if (certSeriesNumber.length < 10) err += '• Серия свидетельства о регистрации
'; if (ogrn.length < 10) err += '• ОГРН или ОГРНИП
'; if (inn.length < 9) err += '• ИНН
'; if (phone.length < 10 || phone.length > 14 || phone.substring(0, 1) == "0") err += '• Телефон
'; if (ceoTitle == '') err += '• Должность руководителя или ответственного лица
'; if (ceoOperatesBased == '') err += '• На основании чего действует руководитель или ответственное лицо
'; if (ceoLastName == '' || ceoFirstName == '') err += '• ФИО руководителя или ответственного лица
'; if (ceoLastNameG == '' || ceoFirstNameG == '') err += '• ФИО руководителя или ответственного лица в родительном падеже
'; if (!lCountry || lCity == '' || lAddress == '') err += '• Юридический адрес (все поля)
'; if (!pCountry || pCity == '' || pAddress == '') err += '• Почтовый адрес (все поля)
'; if (!bankCountry || bankName == '' || bankIdCode.length < 8 || bankAccount.length < 10 || bankCorrespondentAccount.length < 10) err += '• Банковские реквизиты (все поля)
'; if (err.length > 0) { _controls.messageBox.show("Ошибка", "
Не все обязательные поля формы заполнены или заполнены некорректно.
Пожалуйста, исправьте:
" + err.substring(0, err.length - '
'.length) + "
", _controls.messageBox.button.ok, _controls.messageBox.icon.warning, 700); return; } var btn = jm.el("auth_UpdateOrg_btn"); if (!btn) return; btn.disabled = "disabled"; btn.value = "Подождите..."; jm.AJAX({ URL: "/user_Org.h?fName=_auth.org._result&r=" + jm.Random.Int(), Type: "post", Data: { userId: _auth.user.hash, orgName: orgName, regDate: regDay + "." + regMonth + "." + regYear, certSeriesNumber: certSeriesNumber, inn: inn, kpp: jm.el("org_KPP_div_tb").value.Trim(), ogrn: ogrn, okpo: jm.el("org_OKPO_div_tb").value.Trim(), phone: phone, fax: jm.el("org_Fax_div_tb").value.ExtractDigits(), ceoTitle: ceoTitle, ceoOperatesBased: ceoOperatesBased, ceoLastName: ceoLastName, ceoFirstName: ceoFirstName, ceoPatronymic: ceoPatronymic, ceoLastNameG: ceoLastNameG, ceoFirstNameG: ceoFirstNameG, ceoPatronymicG: ceoPatronymicG, lCountry: lCountry[0], lCity: lCity, lPostcode: jm.el("org_LegalPostcode_div_tb").value.Trim(), lAddress: lAddress, pCountry: pCountry[0], pCity: pCity, pPostcode: jm.el("org_PostPostcode_div_tb").value.Trim(), pAddress: pAddress, bankCountry: bankCountry[0], bankName: bankName, bankIdCode: bankIdCode, bankAccount: bankAccount, bankCorrespondentAccount: bankCorrespondentAccount }, Async: true, IsAnswerScript: true }); }, _result: function (rejectReason, user) { if (rejectReason == 0) { _auth.org.closeConfirmed = true; _controls.windows.close('org'); if (user) { _auth.user = user; var contractDiv = jm.el("personal_Contract_div"); if (contractDiv) contractDiv.style.display = _auth.user.hasOrg ? "" : "none"; } } else { var err = ""; if (rejectReason == 1) err = '
Вы не авторизованы.
Попробуйте обновить страницу и повторить операцию ещё раз или обратитесь к службе поддержки.
'; else if (rejectReason == 2) err = '
Возникла неизвестная ошибка при сохранении данных.
Пожалуйста, попробуйте повторить операцию через пару минут или обратитесь к службе поддержки.
'; else if (rejectReason == 3) err = 'Не все обязательные данные формы заполнены или заполнены некорректно'; else err = '
Возникла неизвестная ошибка при сохранении данных.
Пожалуйста, попробуйте повторить операцию через пару минут или обратитесь к службе поддержки.
'; _controls.messageBox.show("Ошибка", err, _controls.messageBox.button.ok, _controls.messageBox.icon.error, 700); } } } }; var _auth = new Authorization();