function AccountDetailValidation(n,t,i,r,u,f,e,o,s,h,c,l,a){this._firstNameId=n;this._lastNameId=t;this._emailId=i;this._newPasswordId=r;this._confirmNewPasswordId=u;this._currentPasswordId=f;this._streetId=e;this._cityId=o;this._countryId=s;this._stateProvinceId=h;this._postalCodeId=c;this._organizationId=l;this._roleWithinTheOrganizationId=a;this.CheckNewPasswordStrength=function(){var n=new PasswordStrengthMeter(this._newPasswordId,!1);n.CheckPasswordStrength()};this.DisplayFormFieldValidation=function(n,t,i,r){var u=document.getElementById("Error"+t),f=n.classList;i?(u.innerHTML="",f.remove("formFieldInvalid")):(u.innerHTML=r,f.add("formFieldInvalid"))};this.EmailExistsResponse=function(n){var i=$.parseJSON(n),r=i.UserExists!=!0,t=document.getElementById(this._emailId);return i.UserExists==!0?this.DisplayFormFieldValidation(t,t.id,r,' An account already exists with this email.<br>Please create an account with a different email. <sup><a class="control-label" href="#"onclick = "return ShowForgotPasswordDialog()" style = "font-family: utopia-std, Georgia, serif; font-size: 12px; color: rgb(64, 64, 64);text - decoration: underline; border: none; " tabindex = "0" > Forgot your password?<\/a ><\/sup>'):this.DisplayFormFieldValidation(t,t.id,r,""),i};this.CreateAccountEmailExistsResponse=function(n){var i=$.parseJSON(n),r=i.UserExists==!1,t=document.getElementById(this._emailId);return i.UserExists==!0?this.DisplayFormFieldValidation(t,t.id,r,' An account already exists with this email.<br>Please create an account with a different email. <sup><a class="control-label" href="#"onclick = "return ShowForgotPasswordDialog()" style = "font-family: utopia-std, Georgia, serif; font-size: 12px; color: rgb(64, 64, 64);text - decoration: underline; border: none; " tabindex = "0" > Forgot your password?<\/a ><\/sup>'):this.DisplayFormFieldValidation(t,t.id,r,""),i};this.ValidateEmail=function(n){var r=$("#"+this._emailId).attr("data-current-email"),t=document.getElementById(this._emailId),i=t.checkValidity();return i?t.value!=r&&$.ajax({url:"/account/checkavailability",type:"get",async:!1,data:{emailOrUsername:t.value}}).success(n==AccountAction.Create?this.CreateAccountEmailExistsResponse.bind(this):this.EmailExistsResponse.bind(this)):this.DisplayFormFieldValidation(t,t.id,i,n==AccountAction.Create?t.value==""?" is required":" is invalid":t.value==""?"Email is required":"Email is invalid"),i};this.ValidateFirstname=function(n){var t=document.getElementById(this._firstNameId),i=t.checkValidity();return this.DisplayFormFieldValidation(t,t.id,i,n==AccountAction.Create?" is required":"Firstname is required"),i};this.ValidateLastname=function(n){var t=document.getElementById(this._lastNameId),i=t.checkValidity();return this.DisplayFormFieldValidation(t,t.id,i,n==AccountAction.Create?" is required":"Lastname is required"),i};this.ValidatePrimaryAddressStreet=function(){var n=document.getElementById(this._lastNameId),t=n.checkValidity();return this.DisplayFormFieldValidation(n,n.id,t,"Street Address is required"),t};this.ValidatePrimaryAddressCity=function(){var t=!0,n;return this._cityId!=null&&(n=document.getElementById(this._cityId),t=n.checkValidity(),this.DisplayFormFieldValidation(n,n.id,t,"City is required")),t};this.ValidatePrimaryAddressCountry=function(){var t=!0,n;return this._countryId!=null&&(n=document.getElementById(this._countryId),t=n.selectedIndex!==0&&n.checkValidity(),this.DisplayFormFieldValidation(n,n.id,t,"Country is required")),t};this.ValidatePrimaryAddressPostalCode=function(){var t=!0,i,n;return this._postalCodeId!=null&&(i=document.getElementById(this._countryId),n=document.getElementById(this._postalCodeId),t=n.checkValidity(),this.DisplayFormFieldValidation(n,n.id,t,"Street Address is required")),t};this.ValidateCurrentPassword=function(){var n=document.getElementById(this._currentPasswordId),t=n.checkValidity();return this.DisplayFormFieldValidation(n,n.id,t,"Password entered is invalid"),t};this.ValidateNewPassword=function(n){var t=document.getElementById(this._newPasswordId),i=t.checkValidity();return i&&t.value.length>0&&(i=t.value.length>7&&t.value.match(/[A-Z]/g)!=null&&t.value.match(/[a-z]/g)!=null&&t.value.match(/[0-9~!@$^()_.]/g)!=null),this.DisplayFormFieldValidation(t,t.id,i,n==AccountAction.Create?t.value==""?" is required":" is invalid":t.value==""?"Password is required":"Password is invalid"),i};this.ValidateConfirmPassword=function(n){var t=document.getElementById(this._confirmNewPasswordId),r=document.getElementById(this._newPasswordId),i=t.value==r.value&&t.checkValidity();return i?this.DisplayFormFieldValidation(t,t.id,i,""):t.value!=r.value?this.DisplayFormFieldValidation(t,t.id,i,n==AccountAction.Create?" does not match Password":"Confirm password and Password do not match"):r.value!=""&&this.DisplayFormFieldValidation(t,t.id,i,n==AccountAction.Create?t.value==""?" is required":" is invalid":t.value==""?"Confirm password is required":"Confirm password is invalid"),i};this.ValidateJobTitle=function(){var n=document.getElementById("JobTitle"),t=n.checkValidity();return this.DisplayFormFieldValidation(n,n.id,t,"Job Title is required"),t};this.ValidateOrganization=function(n){var t=document.getElementById(this._organizationId),i=t.checkValidity();return this.DisplayFormFieldValidation(t,t.id,i,n==AccountAction.Create?" is required":"Organization is required"),i};this.ValidateRoleWithinTheOrganization=function(n){var i=document.getElementById(this._roleWithinTheOrganizationId),r=i.selectedIndex!==0&&i.checkValidity(),f=document.getElementById("OtherJobFunctionContainer"),t=document.getElementById("OtherJobFunction"),u;if(f&&f.style.display==="block"){if(u=t.value.trim()!=="",r=r&&u,this.DisplayFormFieldValidation(t,t.id,u,"Other job function is required"),!u)return!1}else this.DisplayFormFieldValidation(t,t.id,!0,"Other job function is required");return this.DisplayFormFieldValidation(i,i.id,r,n==AccountAction.Create?" is required":"Principal job function is required"),r};this.ValidateReadAndAgreeCheckbox=function(){var n=document.getElementById("ReadAndAgreeCheckbox"),t=n.checked;return this.DisplayFormFieldValidation(n,n.id,t,"Must read and agree to BioOne's Privacy Policy."),t};this.ValidateSendResearchEmailsRadioButton=function(){var n=document.getElementsByName("SendResearchHighlightsEmails"),t=Array.from(n).some(function(n){return n.checked});return this.DisplayFormFieldValidation(n[0],"SendResearchHighlightsEmails",t,"Please select an option for receiving research highlights."),t};this.ValidateSendNewsEmailsRadioButton=function(){var n=document.getElementsByName("SendNewsEmails"),t=Array.from(n).some(function(n){return n.checked});return this.DisplayFormFieldValidation(n[0],"SendNewsEmails",t,"Please select an option for receiving news emails."),t};this.Validate=function(n){var t=!1;switch(n){case AccountAction.Create:t=this.ValidateFirstname(n)&&this.ValidateLastname(n)&&this.ValidateEmail(n)&&this.ValidateNewPassword(n)&&this.ValidatePrimaryAddressCountry(n)&&this.ValidateJobTitle(n)&&this.ValidateOrganization(n)&&this.ValidateRoleWithinTheOrganization(n)&&this.ValidateSendResearchEmailsRadioButton(n)&&this.ValidateSendNewsEmailsRadioButton(n)&&this.ValidateReadAndAgreeCheckbox(n)&&(this._currentPasswordId!=null?this.ValidateCurrentPassword():!0);break;case AccountAction.EditPerson:t=this.ValidateFirstname(n)&&this.ValidateLastname(n)&&this.ValidateEmail(n)&&this.ValidatePrimaryAddressCountry(n)&&this.ValidateOrganization(n)&&this.ValidateRoleWithinTheOrganization(n)&&this.ValidateSendResearchEmailsRadioButton(n)&&this.ValidateSendNewsEmailsRadioButton(n);break;case AccountAction.ChangePassword:t=this.ValidateNewPassword(n)&&this._currentPasswordId!=null?this.ValidateCurrentPassword():!0;break;case AccountAction.ResetPassword:t=this.ValidateNewPassword(n)&&this.ValidateConfirmPassword(n);break;case AccountAction.ShoppingCart:t=this.ValidateFirstname(n)&&this.ValidateLastname(n)&&this.ValidateEmail(n)&&this.ValidateNewPassword(n)&&this.ValidateConfirmPassword(n)&&(this._currentPasswordId!=null?this.ValidateCurrentPassword():!0)}return t};this.Countries=[];this.SetInitialCountryState=function(n=""){var t=document.getElementById(this._countryId),r,i,u;for(t.options.length&&t.options[0].text==="Select"||(r=new Option("Select","",!1,!1),r.disabled=!0,t.options.add(r,0));t.options.length>1;)t.remove(1);for(i=0;i<this.Countries.length;i++)u=this.Countries[i].Name===n,t.options[t.options.length]=new Option(this.Countries[i].Name,this.Countries[i].Name,u),u&&(t.selectedIndex=i+1);$("#"+this._countryId).change()}}AccountAction={Create:0,EditPerson:1,ChangePassword:2,ResetPassword:3,ShoppingCart:4,Properties:{0:{Name:"Create",value:0},1:{Name:"EditPerson",value:1},2:{Name:"ChangePassword",value:2},3:{Name:"ResetPassword",value:3},3:{Name:"ShoppingCart",value:4}},Keys:[0,1,2,3,4],MatchByName:function(n){for(var i=this.Properties[0],r=n.toLowerCase(),t=0;t<this.Keys.length;t++)if(r==this.Properties[this.Keys[t]].Name){i=this.Properties[this.Keys[t]];break}return i}}