/* exports UI */ /* global Controller, MobileIDErrorOverlay*/ (function(exports) { 'use strict'; var initialized; var allowButton, header, verificationCodeButton, multistateButton, panelsContainer, verificationCodeInput, msisdnInput, msisdnAutomaticOptions, typeMSISDNButton, selectAutomaticOptionsButton, msisdnContainer, legend, legendParent, countryCodesSelect, verificationPanel, msisdnSelectionPanel, verificationCodeTimer, stepsExplanation, verificationExplanation, successExplanation; var isVerified = false; var isVerifying = false; var isVerificationCode = false; var isTimeoutOver = false; var isManualMSISDN = false; var buttonCurrentStatus; var appName, identity; var verificationInterval, verificationIntervalSteps = 0, currentIntervalStep = 0; var countryCodes; function _setMultibuttonStep(stepName) { buttonCurrentStatus = stepName; var shift = 0; switch(stepName) { case 'allow': shift = 0; allowButton.className = 'msb-button-step state-allow'; allowButton.disabled = false; break; case 'sending': shift = 0; allowButton.className = 'msb-button-step state-sending'; allowButton.disabled = true; break; case 'verify': shift = -50; verificationCodeButton.className = 'msb-button-step state-verify'; verificationCodeButton.disabled = false; break; case 'verifying': shift = -50; verificationCodeButton.className = 'msb-button-step state-verifying'; verificationCodeButton.disabled = true; break; case 'verified': shift = -50; verificationCodeButton.className = 'msb-button-step state-verified'; verificationCodeButton.disabled = false; break; case 'resend': shift = -50; verificationCodeButton.className = 'msb-button-step state-resend'; verificationCodeButton.disabled = false; break; } multistateButton.style.transform = 'translateX(' + shift + '%)'; } function _setPanelsStep(stepName) { var shift = 0; switch(stepName) { case 'msisdn': shift = 0; break; case 'verification': shift = -25; break; case 'done': shift = -50; break; } panelsContainer.style.transform = 'translateX(' + shift + '%)'; } function _disablePanel(stepName) { switch(stepName) { case 'msisdn': msisdnAutomaticOptions.classList.add('disabled'); typeMSISDNButton.classList.add('disabled'); selectAutomaticOptionsButton.classList.add('disabled'); countryCodesSelect.classList.add('disabled'); msisdnInput.disabled = true; break; case 'verification': verificationCodeInput.disabled = true; break; } } function _enablePanel(stepName) { switch(stepName) { case 'msisdn': msisdnAutomaticOptions.classList.remove('disabled'); typeMSISDNButton.classList.remove('disabled'); selectAutomaticOptionsButton.classList.remove('disabled'); countryCodesSelect.classList.remove('disabled'); msisdnInput.disabled = false; break; case 'verification': verificationCodeInput.disabled = false; break; } } function _msisdnContainerTranslate(step) { isManualMSISDN = step === 0 ? false : true; msisdnContainer.style.transform = 'translateX(' + -1 * 50 * step + '%)'; } function _fieldErrorDance(element) { element.addEventListener('animationend',function danceOver() { element.removeEventListener('animationend', danceOver); element.classList.remove('error'); }); element.classList.add('error'); } function _fillCountryCodesList(callback) { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function fileLoaded() { if (xhr.readyState === 4) { if (xhr.status === 0 || xhr.status === 200) { // Cache the CC countryCodes = xhr.response; var sortedObject = _sortCountriesByFullName(); // Clean the