PageSourceSearch

https://forbes.cz/wp-content/themes/frontend/minified-js/authentication/scripts.min.js?ver=1790242626

js forbes.cz collected 2026-09-24 17:35:23 UTC 8,789 bytes, 1 lines download raw bytes

1document.addEventListener("DOMContentLoaded",()=>{var i,r,a;i=jQuery,r=window.ForbesNotifications,a=window.crm_user,window.Authentication=class{#includesHeader;#containerElement;#states;#currentState;#email;#userName;#passwordResetToken;#authForm;#redirectURL;constructor(e,t=!0,s=null){this.#includesHeader=t,this.#redirectURL=s,this.#containerElement=document.getElementById(e),this.#states={emailCheck:"email_check",login:"login",registration:"registration",emailValidation:"email_validation",passwordResetBeforeEmail:"password_reset_before_email",passwordResetAfterEmail:"password_reset_after_email",passwordReset:"password_reset"},this.#currentState=this.#states.emailCheck,this.#email=a?.user?.email??null,this.#userName=a?.user?.first_name&&a?.user?.last_name?a.user.first_name+" "+a.user.last_name:null;t=window.location.search,s=new URLSearchParams(t),e=s.get("stage");this.#passwordResetToken=s.get("token"),(e===this.#states.registration||e===this.#states.passwordResetBeforeEmail||e===this.#states.passwordReset&&this.#passwordResetToken)&&(this.#currentState=e)}init(){this.transition(this.#currentState,!0),document.addEventListener("authTransitionEnded",e=>{this.resizeUsernameFontSize(),this.addPasswordRevealFunctionality(),this.setupFormFooterButtons(),this.#currentState!==this.#states.registration&&this.#currentState!==this.#states.passwordReset||this.initLiveValidation(),this.#currentState===this.#states.emailValidation&&(this.setupEmailValidationInputs(),this.setupResendButton())})}transition(t,s=!1){document.dispatchEvent(new CustomEvent("authTransitionStart",{bubbles:!0,detail:{type:t,isFirstLoad:s}})),t===this.#states.emailCheck&&this.reset(),i.ajax({url:ajaxUrl,type:"POST",data:{action:"get_form",type:t,email:this.#email,userName:this.#userName,includesHeader:this.#includesHeader,redirectURL:this.#redirectURL},dataType:"json",success:e=>{s?(this.#containerElement.innerHTML=e.template,a()):(i(this.#containerElement).fadeOut("slow",()=>{this.#containerElement.innerHTML=e.template,a(),this.clearURLParams(),i(this.#containerElement).fadeIn("slow")}),this.#currentState=t)},error:function(e){console.error(e)}});let a=()=>{this.#authForm=document.getElementById("auth-form"),this.#authForm&&this.#authForm.addEventListener("submit",e=>this.handleFormSubmission(e)),document.dispatchEvent(new CustomEvent("authTransitionEnded",{bubbles:!0}))}}handleFormSubmission(e){e.preventDefault();e=new FormData(this.#authForm);let s=this.#authForm.querySelector(".submit-button");s&&this.setSubmitButtonLoadingState(s),["check_email","register_crm_user"].includes(this.#authForm.getAttribute("action"))?this.#email=e.get("email"):e.has("email")||e.append("email",this.#email),this.#passwordResetToken&&e.append("token",this.#passwordResetToken),this.validateForm(e,"login_crm_user"!==this.#authForm.getAttribute("action"))?(e.append("action",this.#authForm.getAttribute("action")),e.set("password",e.get("password")||e.get("new_password")||""),i.ajax({url:ajaxUrl,type:"POST",data:e,processData:!1,contentType:!1,cache:!1,dataType:"json",success:e=>this.formSuccessHandler(e),error:e=>this.formErrorHandler(e),complete:(e,t)=>{setTimeout(()=>{s&&this.setSubmitButtonLoadingState(s)},"success"===t?1500:0)}})):s&&this.setSubmitButtonLoadingState(s)}formSuccessHandler(e){var{code:t,user:s,message:a}=e;switch(t){case"user_found":s&&s.name&&(this.#userName=s.name),this.transition(this.#states.login);break;case"email_validated":a&&r.showNotifications([a]),setTimeout(()=>{this.transition(this.#states.login)},e.message?1500:0);break;case"password_reset_request_sent":this.transition(this.#states.passwordResetAfterEmail);break;case"password_changed":e.message&&r.showNotifications([e.message]),setTimeout(()=>{this.transition(this.#states.login)},e.message?1500:0);break;case"user_logged_in":a&&r.showNotifications([a]),setTimeout(()=>{window.location.href=this.#redirectURL||vars.myAccountPageLink},a?1500:0);break;case"user_registered":this.transition(this.#states.emailValidation);break;default:submitButton&&this.setSubmitButtonLoadingState(submitButton),console.error("Bad email check response!")}}formErrorHandler(e){var{code:t,message:s=null}=e?.responseJSON?.data;if(t)switch(t){case"user_not_found":this.transition(this.#states.registration);break;case"code_expired":case"code_doesnt_match":this.raiseError({name:"evdigit1",message:s}),setTimeout(()=>{this.#authForm.reset(),this.#authForm.querySelectorAll("input")[0].focus()},1e3);break;case"email_not_confirmed":this.transition(this.#states.emailValidation);break;case"email_taken":this.#authForm.reset(),this.raiseError({name:"email",message:s});break;
1case"invalid_email":this.raiseError({name:"email",message:s});break;case"invalid_password":case"invalid_credential":this.raiseError({name:"password",message:s});break;case"auth_failed":case"password_reset_request_failed":case"password_reset_confirm_failed":console.error(s),this.transition(this.#states.emailCheck);break;case"timeout":r.showNotifications([s]),setTimeout(()=>{window.location.reload()},1500);break;default:console.error(e),s&&r.showNotifications([s]),setTimeout(()=>{window.location.reload()},s?0:1500)}else console.error("Bad email check response!")}setSubmitButtonLoadingState(e){e.disabled=!e.disabled,e.classList.toggle("loading")}validateForm(e,t=!0){this.#authForm.querySelectorAll(".form-field").forEach(e=>{e.classList.remove("error")});var s,a,i=[];for([s,a]of e)"email"!==s||this.validateEmail(a)||i.push({name:"email",message:vars.translations.emailError}),t&&"password"===s&&!this.validateNewPassword(a).every(e=>e.passed)&&i.push({name:"password",message:vars.translations.passwordError});return i.forEach(e=>{this.raiseError(e)}),0===i.length}validateEmail(e){return e.match(/^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-.]+$/)}validateNewPassword(e){return[{id:"requiredLowerCase",passed:!!e.match(/(?=.*[a-z])/)},{id:"requiredUpperCase",passed:!!e.match(/(?=.*[A-Z])/)},{id:"requiredNumberOrSpecialCharacter",passed:!!e.match(/(?=.*\d)|(?=.*[\W_])/)},{id:"requiredLength",passed:!!e.match(/.{8,}/)}]}raiseError(e){var t=this.#authForm.querySelector(`input[name=${e.name}]`).closest(".form-field");t&&(t.classList.add("error"),t.querySelector(".form-field__error").textContent=e.message)}resizeUsernameFontSize(){let s=document.querySelector(".auth-form__username");s&&requestAnimationFrame(()=>{let e=parseInt(getComputedStyle(s).fontSize);for(var t=parseInt(getComputedStyle(s.parentElement).width);s.offsetWidth>t;)s.style.fontSize=e+"px",--e})}initLiveValidation(){let s=this.#authForm.querySelector(".form-field__live-validation"),t=this.#authForm.querySelector('input[type="password"]');t.addEventListener("input",e=>{this.validateNewPassword(t.value).forEach(e=>{var t=s.querySelector("#error-"+e.id);e.passed?t.classList.add("passed"):t.classList.remove("passed")})})}setupEmailValidationInputs(){let r=Array.from(this.#authForm.querySelectorAll(".form-field__input"));r.length&&(r[0].focus(),r.forEach((a,i)=>{a.addEventListener("input",e=>{var t=a.value,s=(1<t.length&&(a.value=t.slice(1,2)),r[i+1]);"deleteContentBackward"===e.inputType||""===t?(e=r[i-1])&&!e!==r[0]&&e.focus():s?s.focus():this.#authForm.checkValidity()?(t=new Event("submit",{cancelable:!0}),this.#authForm.dispatchEvent(t),t.defaultPrevented||this.#authForm.submit()):this.#authForm.querySelector(":invalid").focus()})}))}setupResendButton(){let t=document.getElementById("resend-email");t&&t.addEventListener("click",()=>{t.disabled=!0,i.ajax({url:ajaxUrl,type:"POST",dataType:"json",xhrFields:{withCredentials:!0},data:{action:"send_verification_code",resend:!0,email:this.#email},success:function(e){r.showNotifications([e.message]),setTimeout(()=>{t.disabled=!1},3e4)}})})}addPasswordRevealFunctionality(){let s=this.#containerElement.querySelector('.form-field__input[type="password"]'),e=this.#containerElement.querySelector(`button[data-for-field-id="${s?.id}"]`);if(e){s.addEventListener("focusin",()=>{e.classList.add("active")}),s.addEventListener("focusout",()=>{e.classList.remove("active")});let t=e.querySelector(".icon");e.addEventListener("mousedown",e=>{e.preventDefault(),s.focus();e="password"===s.type?"text":"password";s.type=e,t&&t.classList.toggle("icon--eye"),t&&t.classList.toggle("icon--eye-off")})}}setupFormFooterButtons(){this.#containerElement.querySelectorAll(".links__link").forEach(t=>{t.addEventListener("click",()=>{var e=t.dataset.destination;e&&this.transition(e)})})}reset(){this.#email=null,this.#userName=null,this.#currentState=this.#states.emailCheck}clearURLParams(){var e=window.location.href,e=new URL(e),t=e.protocol,s=e.hostname,a=e.pathname,e=e.searchParams;let i=new URLSearchParams;e.forEach((e,t)=>{"code"===t&&i.append(t,e)});e=t+`//${s}${a}?`+i;window.history.replaceState({},"",e)}}});

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.