1(function(){'use strict';function csrfToken(){var m=document.cookie.match(/(?:^|;\s*)csrftoken=([^;]+)/);return m?decodeURIComponent(m[1]):'';} 2function setError(form,message){var err=form.querySelector('.js-account-email-err');if(!err){return;} 3err.textContent=message||'';err.hidden=!message;} 4function mount(root){var scope=root||document;var forms=scope.querySelectorAll('.js-account-email');for(var i=0;i<forms.length;i++){var form=forms[i];if(form.getAttribute('data-maybe-typo')!=='1'){continue;} 5var input=form.querySelector('.js-account-email-input');var value=input?input.value:'';var fixed=(window.HwEmailHint&&value)?window.HwEmailHint.suggest(value):null;if(fixed){form.hidden=false;}} 6if(window.HwEmailHint&&window.HwEmailHint.init){window.HwEmailHint.init();}} 7function submit(form){var input=form.querySelector('.js-account-email-input');var btn=form.querySelector('.js-account-email-save');var value=input?input.value.trim():'';if(!value){setError(form,form.getAttribute('data-msg-empty')||'');return;} 8if(value.indexOf('@')<1||value.indexOf('.')<0){setError(form,form.getAttribute('data-msg-bad')||'');return;} 9setError(form,'');if(btn){btn.disabled=true;} 10fetch('/api/account/email',{method:'POST',headers:{'Content-Type':'application/json','X-CSRFToken':csrfToken()},credentials:'same-origin',body:JSON.stringify({email:value})}).then(function(r){if(!r.ok){return Promise.reject();} 11return r.json();}).then(function(data){if(btn){btn.disabled=false;} 12if(!data||!data.ok){setError(form,(data&&data.message)||'');if(data&&data.login_url){var a=document.createElement('a');a.className='v3-link';a.href=data.login_url;a.textContent=' â';var err=form.querySelector('.js-account-email-err');if(err){err.appendChild(a);}} 13return;} 14window.USER_EMAIL=data.email;var lead=form.querySelector('.js-account-email-lead');if(lead){lead.textContent=form.getAttribute('data-msg-saved')||'';} 15var field=form.querySelector('.v3-field');if(field){field.hidden=true;}else if(input){input.hidden=true;} 16if(btn){btn.hidden=true;} 17var notes=document.querySelectorAll('.js-account-email-note');for(var i=0;i<notes.length;i++){notes[i].hidden=true;}}).catch(function(){if(btn){btn.disabled=false;} 18setError(form,form.getAttribute('data-msg-failed')||'');});} 19document.addEventListener('submit',function(e){var form=e.target&&e.target.closest?e.target.closest('.js-account-email'):null;if(!form){return;} 20e.preventDefault();submit(form);});window.HwAccountEmail={mount:mount};})();;
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.