;'use strict';var UIManager={domSelectors:['container','splash-screen','activation-screen','finish-screen','update-screen','nav-bar','main-title','unlock-sim-screen','unlock-sim-header','unlock-sim-action','pincode-screen','pin-label','pin-retries-left','pin-input','back-sim-button','pin-error','skip-pin-button','unlock-sim-button','pukcode-screen','puk-label','puk-retries-left','puk-input','puk-info','puk-error','newpin-input','newpin-error','confirm-newpin-input','confirm-newpin-error','xckcode-screen','xck-label','xck-retries-left','xck-input','xck-error','sim-info-screen','sim-info-back','sim-info-forward','sim-info-1','sim-info-2','sim-number-1','sim-number-2','sim-carrier-1','sim-carrier-2','sim-import','sim-import-button','no-sim','sd-import-button','no-memorycard','fxa-create-account','fxa-intro','networks','wifi-refresh-button','wifi-join-button','join-hidden-button','hidden-wifi-authentication','hidden-wifi-ssid','hidden-wifi-security','hidden-wifi-password','hidden-wifi-password-box','hidden-wifi-identity','hidden-wifi-identity-box','hidden-wifi-show-password','date-configuration','time-configuration','date-configuration-label','time-configuration-label','time-form','data-connection-switch','geolocation-switch','lets-go-button','update-lets-go-button','skip-tutorial-button','update-skip-tutorial-button','metrics-basic','metrics-enhanced','metrics-none','offline-error-dialog','newsletter-form','newsletter-input','newsletter-success-screen','offline-newsletter-error-dialog','invalid-email-error-dialog'],dataConnectionChangedByUsr:false,timeZoneNeedsConfirmation:true,DARK_THEME:'#242d33',LIGHT_THEME:'#eeeeee',init:function ui_init(){this.domSelectors.forEach(function createElementRef(name){this[toCamelCase(name)]=document.getElementById(name);}.bind(this));this._settingsObserveHandler={'geolocation.enabled':{defaultValue:this.geolocationSwitch.checked,callback:function(value){var isEnabled=!!value;if(this.geolocationSwitch.checked!==isEnabled){this.geolocationSwitch.checked=isEnabled;}}.bind(this)}};for(var name in this._settingsObserveHandler){SettingsListener.observe(name,this._settingsObserveHandler[name].defaultValue,this._settingsObserveHandler[name].callback);} var currentDate=new Date();this.timeConfigurationLabel.textContent=currentDate.toLocaleString(navigator.languages,{hour12:navigator.mozHour12,hour:'numeric',minute:'numeric',second:'numeric'});this.dateConfigurationLabel.textContent=currentDate.toLocaleString(navigator.languages,{year:'numeric',month:'numeric',day:'numeric'});this.simImportButton.addEventListener('click',this);this.sdImportButton.addEventListener('click',this);this.skipPinButton.addEventListener('click',this);this.backSimButton.addEventListener('click',this);this.unlockSimButton.addEventListener('click',this);this.unlockSimAction.addEventListener('action',this);this.simInfoBack.addEventListener('click',this);this.simInfoForward.addEventListener('click',this);this.dataConnectionSwitch.addEventListener('change',this);this.wifiRefreshButton.addEventListener('click',this);this.wifiJoinButton.addEventListener('click',this);this.networks.addEventListener('click',this);this.joinHiddenButton.addEventListener('click',this);this.hiddenWifiSecurity.addEventListener('change',this);this.wifiJoinButton.disabled=true;var checkHiddenWifiJoin=function(){this.wifiJoinButton.disabled=this.hiddenWifiSsid.value===''||!WifiHelper.isValidInput(this.hiddenWifiSecurity.value,this.hiddenWifiPassword.value,this.hiddenWifiIdentity.value);}.bind(this);this.hiddenWifiSsid.addEventListener('keyup',checkHiddenWifiJoin);this.hiddenWifiIdentity.addEventListener('keyup',checkHiddenWifiJoin);this.hiddenWifiPassword.addEventListener('keyup',checkHiddenWifiJoin);this.hiddenWifiSecurity.addEventListener('change',checkHiddenWifiJoin);this.hiddenWifiShowPassword.onchange=function togglePasswordVisibility(){UIManager.hiddenWifiPassword.type=this.checked?'text':'password';};this.timeConfiguration.addEventListener('input',this);this.dateConfiguration.addEventListener('input',this);this.geolocationSwitch.addEventListener('change',this);this.fxaCreateAccount.addEventListener('click',this);this.timeForm.addEventListener('submit',function(event){event.preventDefault();});this.newsletterInput.addEventListener('focus',function(){window.addEventListener('resize',function resize(){window.removeEventListener('resize',resize);setTimeout(function(){var page=document.getElementById('browser_privacy');UIManager.scrollToElement(page,UIManager.newsletterInput);},30);});});this.offlineNewsletterErrorDialog.querySelector('button').addEventListener('click',function offlineDialogClick(){this.offlineNewsletterErrorDialog.classList.remove('visible');}.bind(this));this.invalidEmailErrorDialog.querySelector('button').addEventListener('click',function invalidEmailDialogClick(){this.invalidEmailErrorDialog.classList.remove('visible');}.bind(this));var skipTutorialAction=function(){WifiManager.finish();if(ScreenLayout.getCurrentLayout()==='tiny'){window.close();}else{FinishScreen.init();}};var startTutorialAction=function(evt){WifiManager.finish();Tutorial.start(function onTutorialLoaded(){UIManager.activationScreen.classList.remove('show');UIManager.updateScreen.classList.remove('show');UIManager.finishScreen.classList.remove('show');});};this.skipTutorialButton.addEventListener('click',skipTutorialAction);this.updateSkipTutorialButton.addEventListener('click',skipTutorialAction);this.letsGoButton.addEventListener('click',startTutorialAction);this.updateLetsGoButton.addEventListener('click',startTutorialAction);this.metricsBasic.addEventListener('change',this);this.metricsEnhanced.addEventListener('change',this);this.metricsNone.addEventListener('change',this);var button=this.offlineErrorDialog.querySelector('button');button.addEventListener('click',this.onOfflineDialogButtonClick.bind(this));['confirmdialogshowing','loadingoverlayshowing','tutorialinitialized'].forEach(function(event){window.addEventListener(event,this.hideActivationScreenFromScreenReader.bind(this));},this);['confirmdialoghiding','loadingoverlayhiding'].forEach(function(event){window.addEventListener(event,this.showActivationScreenToScreenReader.bind(this));},this);this.checkInitialFxAStatus();},scrollToElement:function ui_scrollToElement(container,element){container.scrollTop=element.offsetTop;},sendNewsletter:function ui_sendNewsletter(callback){var self=this;var emailValue=self.newsletterInput.value;if(emailValue===''){return callback(true);}else{utils.overlay.show('email-loading','spinner');if(self.newsletterInput.checkValidity()){if(window.navigator.onLine){Basket.send(emailValue,function emailSent(err,data){if(err){if(err.code&&err.code===Basket.errors.INVALID_EMAIL){ConfirmDialog.show('invalid-email-dialog-title','invalid-email-dialog-text',{title:'cancel',callback:function ok(){ConfirmDialog.hide();}});utils.overlay.hide();return callback(false);}else{Basket.store(emailValue);}} utils.overlay.hide();return callback(true);});}else{Basket.store(emailValue,function stored(errorStoring){utils.overlay.hide();return callback(!errorStoring);});}}else{utils.overlay.hide();ConfirmDialog.show('invalid-email-dialog-title','invalid-email-dialog-text',{title:'cancel',callback:function ok(){ConfirmDialog.hide();}});return callback(false);}}},initTZ:function ui_initTZ(){var self=this;var tzRegion=document.getElementById('tz-region');var tzCity=document.getElementById('tz-city');return new Promise(function(resolve){var onchange=self.setTimeZone.bind(self);var onload=function(){self.setTimeZone.apply(self,arguments);resolve();};tzSelect(tzRegion,tzCity,onchange,onload);});},handleEvent:function ui_handleEvent(event){switch(event.target.id){case'skip-pin-button':SimManager.skip();break;case'back-sim-button':case'sim-info-back':SimManager.back();break;case'unlock-sim-button':SimManager.unlock();break;case'unlock-sim-action':SimManager.simUnlockBack();break;case'sim-info-forward':SimManager.finish();break;case'sim-import-button':window.setTimeout(SimManager.importContacts,0);break;case'sd-import-button':window.setTimeout(SdManager.importContacts,0);break;case'data-connection-switch':this.dataConnectionChangedByUsr=true;var status=event.target.checked;DataMobile.toggle(status);break;case'wifi-refresh-button':WifiManager.scan(WifiUI.renderNetworks);break;case'wifi-join-button':if(window.location.hash==='#hidden-wifi-authentication'){WifiUI.joinHiddenNetwork();}else{WifiUI.joinNetwork();} break;case'join-hidden-button':WifiUI.addHiddenNetwork();break;case'hidden-wifi-security':var securityType=event.target.selectedIndex?event.target.value:'';WifiUI.handleHiddenWifiSecurity(securityType);break;case'time-configuration':this.setTime();break;case'date-configuration':this.setDate();break;case'geolocation-switch':this.updateSetting(event.target.name,event.target.checked);break;case'metrics-enhanced':this.updateSetting('hud.hide',(event.target.value==='Enhanced'));this.updateSetting('devtools.overlay',(event.target.value==='Enhanced'));case'metrics-basic':case'metrics-none':this.updateSetting('metrics.selectedMetrics.level',event.target.value);break;case'fxa-create-account':this.createFirefoxAccount();break;default:if(event.target.parentNode.id==='networks-list'){WifiUI.chooseNetwork(event);} break;}},updateSetting:function ui_updateSetting(name,value){if(!name){return;} var cset={};cset[name]=value;return SettingsListener.getSettingsLock().set(cset);},setForwardButtonLabel:function ui_setForwardButtonLabel(label){var nextButton=document.getElementById('forward');nextButton.setAttribute('data-l10n-id',label);},checkInitialFxAStatus:function ui_checkInitialFxAStatus(){this.skipFxA=true;FxAccountsIACHelper.getAccount((account)=>{this.skipFxA=false;this.onFxALogin(account);},()=>{FxAccountsIACHelper.logout(()=>{this.skipFxA=false;});});},createFirefoxAccount:function ui_createFirefoxAccount(){FxAccountsIACHelper.openFlow(UIManager.onFxAFlowDone,UIManager.onFxAError);},onFxAFlowDone:function ui_onFxAFlowDone(){FxAccountsIACHelper.getAccount((account)=>{if(!account){return;} UIManager.onFxALogin(account);UIManager.setForwardButtonLabel('navbar-next');},UIManager.onFxAError);},onFxALogin:function ui_onFxALogin(account){if(!account){return;} UIManager.newsletterInput.value=account.email;UIManager.fxaIntro.innerHTML='';document.l10n.setAttributes(UIManager.fxaIntro,account.verified?'fxa-signed-in':'fxa-email-sent',{email:account.email});UIManager.fxaCreateAccount.disabled=true;},onFxAError:function ui_onFxAError(response){console.error('Create FxA Error: '+JSON.stringify(response));UIManager.newsletterInput.value='';document.l10n.setAttributes(UIManager.fxaIntro,'fxa-upsell');UIManager.fxaCreateAccount.disabled=false;UIManager.setForwardButtonLabel('skip');},displayOfflineDialog:function ui_displayOfflineDialog(href,title){var dialog=this.offlineErrorDialog;document.l10n.setAttributes(dialog.querySelector('small'),'offline-dialog-text',{url:href});dialog.classList.add('visible');this.hideActivationScreenFromScreenReader();},onOfflineDialogButtonClick:function ui_onOfflineDialogButtonClick(e){this.offlineErrorDialog.classList.remove('visible');this.showActivationScreenToScreenReader();},hideActivationScreenFromScreenReader:function ui_hideActivationScreenFromScreenReader(){this.activationScreen.setAttribute('aria-hidden',true);},showActivationScreenToScreenReader:function ui_showActivationScreenToScreenReader(){this.activationScreen.setAttribute('aria-hidden',false);},setDate:function ui_sd(){if(!!this.lock){return;} var now=new Date();var currentDate=this.dateConfiguration.value;var currentTime=now.toLocaleFormat('%H:%M');var timeToSet=new Date(currentDate+'T'+currentTime);TimeManager.set(timeToSet);this.dateConfigurationLabel.textContent=timeToSet.toLocaleString(navigator.languages,{year:'numeric',month:'numeric',day:'numeric'});},setTime:function ui_st(){if(!!this.lock){return;} var timeLabel=document.getElementById('time-configuration-label');var now=new Date();var currentTime=document.getElementById('time-configuration').value;if(currentTime.indexOf(':')===1){currentTime='0'+currentTime;} var currentDate=now.toLocaleFormat('%Y-%m-%d');var timeToSet=new Date(currentDate+'T'+currentTime);TimeManager.set(timeToSet);timeLabel.textContent=timeToSet.toLocaleString(navigator.languages,{hour12:navigator.mozHour12,hour:'numeric',minute:'numeric',second:'numeric'});},setTimeZone:function ui_stz(timezone,needsConfirmation){this.timeZoneNeedsConfirmation=!!needsConfirmation;var utcOffset=timezone.utcOffset;document.getElementById('time_zone_overlay').className='UTC'+utcOffset.replace(/[+:]/g,'');var timezoneTitle=document.getElementById('time-zone-title');document.l10n.setAttributes(timezoneTitle,'timezoneTitle',{utcOffset:utcOffset,region:timezone.region,city:timezone.city});document.getElementById('tz-region-label').textContent=timezone.region;document.getElementById('tz-city-label').textContent=timezone.city;var now=new Date();var timeLabel=document.getElementById('time-configuration-label');timeLabel.textContent=now.toLocaleString(navigator.languages,{hour12:navigator.mozHour12,hour:'numeric',minute:'numeric',second:'numeric'});},updateDataConnectionStatus:function ui_udcs(status){this.dataConnectionSwitch.checked=status;},changeStatusBarColor:function ui_csbc(color){var themeMeta=document.head.querySelector('meta[name="theme-color"]');themeMeta.setAttribute('content',color);}};function toCamelCase(str){return str.replace(/\-(.)/g,function replacer(str,p1){return p1.toUpperCase();});}