"),$(e).addClass("error")}function isValidUnlockData(e,t){var n=!0;return e.length<8&&(showErrorUnderField("#unlock_code",{ru:"Минимальная длина кода разблокировки 8 символов",uk:"Мінімальна довжина коду розблокування 8 символів",en:"The minimum length of unlock code is 8 characters"}[localStorage.getItem("locale")||"uk"]),n=!1),localStorage.getItem("web.password.security_recommendation")?checkPasswordSecurity(t,function(){},function(e){showErrorUnderField("#new_device_password",e),n=!1}):t.length<6&&(showErrorUnderField("#new_device_password",{ru:"Минимальная длина пароля 6 символов",uk:"Мінімальна довжина паролю 6 символів",en:"The minimum password length is 6 characters"}[localStorage.getItem("locale")||"uk"]),n=!1),n}function changeStorageType(e){clearErrorMessage(),e&&e!==authorizationFormState.storageType&&(authorizationFormState.storageType=e,clearPassword($("#device-password-ru, #device-password-uk, #device-password-en")),clearPassword($("#password-ru, #password-uk, #password-en"))),"DEVICE"===e?(visibility(["#keystore-input-ru","#keystore-input-uk","#keystore-input-en","#select-file-btn","#passwords",".keys"],!(authorizationFormState.needStoragePassword=!0)),visibility([".device-list","#device-passwords","#device-password-btn"],!0),$(".enter").prop("disabled",!0),getDeviceList()):(visibility(["#keystore-input-ru","#keystore-input-uk","#keystore-input-en","#select-file-btn","#passwords",".keys","button.enter"],!(authorizationFormState.needStoragePassword=!1)),visibility([".device-list","#device-passwords","#device-password-btn","button.unlock"],!1),$(".enter").prop("disabled",!1),$("#keys").trigger("refresh",{array:[]}),(e=localStorage.getItem("key_path"))&&prepareLoginForm(e))}function changeDeviceList(e){clearErrorMessage(),clearPassword($("#device-password-ru, #device-password-uk, #device-password-en")),visibility([".keys",".unlock"],!1),visibility([".enter","#device-password-btn","#device-passwords"],!0),$(".enter").prop("disabled",!0),$("#device-password-ru, #device-password-uk, #device-password-en, #device-password-btn").prop("disabled",!1),(authorizationFormState.device=e)&&"initialized"!==e.deviceState&&(visibility(["#device-password-btn","#device-passwords"],!1),showErrorMessage(("pukBlocked"===e.deviceState?{ru:"Устройство заблокировано или возникла непредвиденная ошибка. Обратитесь в банк.",uk:"Пристрій заблоковано або виникла непередбачена помилка. Зверніться до банку.",en:"Device is locked or unexpected error occurred. Contact your bank."}:"pinBlocked"===e.deviceState&&"iToken"===e.deviceModel?{ru:"Устройство заблокировано в результате неверного ввода пароля. Выберите другое хранилище.",uk:"Пристрій заблоковано внаслідок невірного вводу пароля. Оберіть інше сховище.",en:"Device is locked as a result of an incorrect password input. Select another storage."}:"notInitialized"===e.deviceState?{ru:'Выбранный токен перед использованием необходимо проинициализировать. Вы можете сделать это при регистрации нового клиента или создании ключа ЭЦП без отметки "мой ключ активен, но срок его действия заканчивается".',uk:'Обраний токен перед використанням необхідно проініціалізувати. Ви можете зробити це під час реєстрації нового клієнта або створення ключа ЕЦП без позначки "мій ключ активний, але термін його дії завершується".',en:'Selected token should be initialized before using. You can do this at new client registration or EDS key creation without option "my key is active, but it will expire soon".'}:(visibility([".unlock"],!0),visibility([".enter"],!1),{ru:"Устройство заблокировано в результате неверного ввода пароля. Вы можете разблокировать устройство или выбрать другое хранилище.",uk:"Пристрій заблоковано внаслідок невірного вводу пароля. Ви можете розблокувати пристрій або обрати інше сховище.",en:"Device is locked as a result of incorrect password input. You can unlock the device or select another storage."}))[localStorage.getItem("locale")||"uk"]))}function getDeviceList(){SignPluginServices.getDeviceList().then(function(e){var r=[],i={ru:{unnamed:"Безымянный",usb:"USB-токен"},uk:{unnamed:"Без назви",usb:"USB-токен"},en:{unnamed:"Untitled",usb:"USB-token"}}[localStorage.getItem("locale")||"uk"];$.each(e,function(e,t){var n="notInitialized"===t.deviceState?i.unnamed+"("+t.deviceSerialNumber+")":"";r.push({name:i.usb+' "'+(t.deviceName||n)+'"',id:t.deviceId,deviceState:t.deviceState,deviceModel:t.deviceModel,deviceVendor:t.deviceVendor})}),$("#device-list").trigger("refresh",{array:r}),$("#device-list").trigger("chooseById",r[0].id)},function(e){showErrorMessage(e)})}function getKeyListFromDevice(){$("#device-password-btn").prop("disabled",!0),clearErrorMessage();var n,r=localStorage.getItem("locale")||"uk",e=authorizationFormState.device||{},i=e.id,t=document.getElementById("device-password-"+r).input_pw;i&&t?(n="AUTHOR"===e.deviceVendor,e="true"===localStorage.getItem("is_multi_client")?1:0,SignPluginServices.getKeyListFromDevice(i,t,e).then(function(e){var t;0===e.length?($("#device-password-btn").prop("disabled",!1),showErrorMessage({ru:"В выбранном хранилище ключи отсутствуют !",uk:"В обраному сховищі ключі відсутні !",en:"There is no keys in selected storage !"}[r])):($("#device-password-ru, #device-password-uk, #device-password-en").prop("disabled",!0),$(".enter").prop("disabled",!1),e=_.chain(e).map(function(e){return e.id=n?!0===e.active?"ACTIVE":"NOT_ACTIVE":e.keyId,e.name=e.alias,e}).sort(function(e,t){return e.name.localeCompare(t.name)}).value(),(t=$("#keys")).trigger("refresh",{array:e}),1===_.size(e)?t.trigger("chooseById",_.first(e).id):n?(e=_.findWhere(e,{id:"ACTIVE"}),t.trigger("chooseById",e.id)):(e=localStorage.getItem("lastUsedKeyIdFromDevice")||"",t.trigger("chooseById",e)),n||visibility([".keys"],!0))},function(e){$("#device-password-btn").prop("disabled",!1),20===(e||{}).errorCode?SignPluginServices.getDeviceList().then(function(e){$.each(e,function(e,t){i===t.deviceId&&"initialized"!==t.deviceState&&getDeviceList()})}):(showErrorMessage(e),(e=$(".device-password")).addClass("error"),clearPassword(e))})):(t||$(".device-password").addClass("error"),i||$("#device-list").addClass("error"),showErrorMessage({ru:"Поле обязательно для заполнения. Проверьте информацию в полях, отмеченных красным.",uk:"Поле обов'язкове до заповнення. Перевірте інформацію в полях, відмічених червоним.",en:"Required field. Check the information in the fields marked in red."}[r]),$("#device-password-btn").prop("disabled",!1))}function selectFileStorage(){clearErrorMessage(),SignPluginServices.selectFile().then(function(e){prepareLoginForm(e),localStorage.setItem("key_path",e),authorizationFormState.needStoragePassword=!1},function(e){SignPluginServices.forgetStorage(),showErrorMessage(e)})}function prepareLoginForm(t){SignPluginServices.getKeyListFromFile(t).then(function(e){$("#keystore-input-ru, #keystore-input-uk, #keystore-input-en").val(t);var e=_.chain(e).map(function(e){return e.name=e.alias,e.id=e.keyId,e}).sort(function(e,t){return e.name.localeCompare(t.name)}).value();$("#keys").trigger("refresh",{array:e}),1===_.size(e)?$("#keys").trigger("chooseById",_.first(e).id):(e=localStorage.getItem("lastUsedKeyIdFromFile")||"",$("#keys").trigger("chooseById",e))},function(e){showErrorMessage(e)})}function loadImages(e){for(var t=$("#"+e+" img.lazy"),n=0;n