window.Registration=window.Registration||{};window.dataLayer=window.dataLayer||[];Registration.ViewModels=Registration.ViewModels||{};Registration.ViewModels.Register01=function(n,t){function o(n){Loop.Core.publish(Registration.Events.People.RegistrationCompleted);e("sign_up",i.thirdPartyProvider()===""?"email":i.thirdPartyProvider(),n.ReturnUrl);n.HasBeenActivated?Registration.Helpers.locationHelper.redirect(n.ReturnUrl):(Loop.Core.publish(Registration.Events.People.NavigateTo,{sender:Registration.Constants.PageRoutes.Register01,target:Registration.Constants.PageRoutes.RegisterSuccess,data:{email:n.EmailAddress}}),setTimeout(function(){u(!1)},1e3))}function s(n,t,r){if(u(!1),n===412)switch(r.Code){case Registration.Constants.PrecoditionErrorCodes.ALREADY_EXISTING_ACCOUNT:case Registration.Constants.PrecoditionErrorCodes.INACTIVE_ACCOUNT:Loop.Core.publish(Registration.Events.People.NavigateTo,{sender:Registration.Constants.PageRoutes.Register01,target:Registration.Constants.PageRoutes.Login,data:r});break;case Registration.Constants.PrecoditionErrorCodes.CAPTCHA_ERROR:i.captcha.refresh();i.captcha.errorMessage(Registration.Constants.UIMessages.invalidCaptcha);i.captcha.hasFailed(!0);break;case Registration.Constants.PrecoditionErrorCodes.SUSPENDED_ACCOUNT:i.captcha.refresh();i.apiErrorMessageAsHtml(Registration.Constants.UIMessages.suspendedAccount2(i.email(),r.Data.ContactUrl));break;case Registration.Constants.PrecoditionErrorCodes.IMPERSONATION_OPERATION_FORBIDDEN:i.apiErrorMessageAsHtml(Registration.Constants.UIMessages.impersonationOperationForbidden("register"));break;default:i.captcha.refresh();i.apiErrorMessageAsHtml(Registration.Constants.UIMessages.genericErrorSaving);console.warn(Registration.Constants.UIMessages.preconditionFailedNotHandledError(r))}else i.apiErrorMessageAsHtml(Registration.Constants.UIMessages.genericErrorSaving)}function h(){i.checkBoxStyle(i.notifications()?"checked":"")}function c(){Loop.Core.Ajax.loadData({loginRequired:!1,withCredentials:!0,endpoint:Loop.Core.EndpointRepository.getEndpoint("RegisterStep1Load"),successCallback:a,errorCallback:l,preventmodalonerror:!1})}function l(n,t){i.apiErrorMessageAsHtml(t)}function a(n){i.position.refreshOptions(n.Positions)}function v(){i.position=new Registration.Controls.Dropdown({availableOptions:[],optionCaption:"Position *",optionText:"Name",optionValue:"PositionId",validationFlag:r,half:!1,isRequired:!0});i.captcha=new Registration.Controls.CaptchaControl({numberOfImages:5});y(t!==null&&t.IsThirdPartyRegister);i.notifications.subscribe(h);i.notifications(!1);i.validationArray=ko.validation.group(i,{deep:!0});i.isFormValid=ko.computed(function(){return i.validationArray().length===0&&i.captcha.isResponded()&&i.agreeTerms()});Loop.Core.subscribe(Registration.Events.People.NavigateTo,b);t!==null&&t.IsThirdPartyRegister?(i.thirdPartyProvider(t.ThirdPartyType),i.firstName(t.FirstName),i.lastName(t.LastName),t.Email!==null?(i.email(t.Email),i.emailReadOnly(!0)):t.RequestAuthEmail!==null?(i.email(t.RequestAuthEmail),i.emailReadOnly(!1)):i.emailReadOnly(!1),i.registrationToken=t.RegisterToken,e("start_sign_up",i.thirdPartyProvider()===""?Registration.Constants.EmailProvider:i.thirdPartyProvider())):i.emailReadOnly(n)}function y(n){i.password=new Registration.Controls.PasswordInput({validationFlag:r,onEnterKeyPress:i.completeRegistration,applyExtraValidations:!n,showTip:!0,isDisabled:n,applyRequiredFieldValidation:!n});i.password2=new Registration.Controls.PasswordInput({placeholder:"Confirm password *",validationFlag:r,applyExtraValidations:!n,onEnterKeyPress:i.completeRegistration,showTip:!0,isDisabled:n,applyRequiredFieldValidation:!n,applySameTextValidations:!0,sameTextReference:i.password.value})}function p(){i.firstName("");i.lastName("");i.password.value("");i.password2.value("");i.agreeTerms(!1);i.affiliationText("");f(null);i.position.optionSelected(null);i.notifications(!1);i.missmatchErrorMessage(null)}function w(){i.registrationToken===null?(i.visible(!1),Loop.Core.publish(Registration.Events.People.NavigateTo,Registration.Constants.PageRoutes.Register00)):(i.captcha.visible(i.visible()),i.visible()&&((t===null||t.IsThirdPartyRegister===!1)&&p(),c(),r(!1),i.apiErrorMessageAsHtml(null)))}function b(n,t){typeof t=="object"&&t.target===Registration.Constants.PageRoutes.Register01&&t.sender===Registration.Constants.PageRoutes.Register00&&(u(!1),i.registrationToken=t.data.RegistrationToken,i.email(t.data.Email),i.firstName(""),i.lastName(""),i.emailReadOnly(!1),i.password.isDisabled(!1),i.password2.isDisabled(!1),r(!1),i.password.updateApplyExtraValidations(!0),i.password2.updateApplyExtraValidations(!0),e("start_sign_up",i.thirdPartyProvider()===""?Registration.Constants.EmailProvider:i.thirdPartyProvider()))}function e(n,t,i){var r={event:n,method:t};i!==undefined&&(r.redirect=i);window.dataLayer.push(r)}var i=this,f=ko.observable(null),r=ko.observable(!1),u=ko.observable(!1);i.registrationToken=null;i.visible=ko.observable(!1);i.visible.subscribe(w);i.thirdPartyProvider=ko.observable("");i.emailReadOnly=ko.observable(!1);i.firstName=ko.observable().extend({required:{message:Registration.Constants.UIMessages.requiredField,onlyIf:r},maxLength:{params:Registration.Constants.Fields.FIRST_MAX_LENGTH,message:Registration.Constants.UIMessages.limitExceded(Registration.Constants.Fields.FIRST_MAX_LENGTH),onlyIf:r},javascriptInjection:{message:Registration.Constants.UIMessages.javascriptInjection,onlyIf:r}});i.lastName=ko.observable().extend({required:{message:Registration.Constants.UIMessages.requiredField,onlyIf:r},maxLength:{params:Registration.Constants.Fields.FIRST_MAX_LENGTH,message:Registration.Constants.UIMessages.limitExceded(Registration.Constants.Fields.FIRST_MAX_LENGTH),onlyIf:r},javascriptInjection:{message:Registration.Constants.UIMessages.javascriptInjection,onlyIf:r}});i.email=ko.observable("").extend({required:{message:Registration.Constants.UIMessages.requiredField,onlyIf:r},maxLength:{params:Registration.Constants.Fields.EMAIL_MAX_LENGTH,message:Registration.Constants.UIMessages.limitExceded(Registration.Constants.Fields.EMAIL_MAX_LENGTH),onlyIf:r},email:{message:Registration.Constants.UIMessages.invalidEmail,onlyIf:r}});i.agreeTerms=ko.observable(!1);i.agreeTermsClicked=function(){i.agreeTerms(!i.agreeTerms())};i.showAgreeTermsError=ko.computed(function(){return r()&&i.agreeTerms()===!1});i.displayTenantTermsAndConditionsBlock=function(){return Registration.Configuration.tenantTermsAndConditionsInfo()!==undefined&&Registration.Configuration.tenantTermsAndConditionsInfo()!==null};i.affiliationText=ko.observable("").extend({validation:{validator:function(){return f()!==null},message:Registration.Constants.UIMessages.requiredField,onlyIf:r}});i.onAffiliationChanged=function(n){if(n!==null){typeof n.countryIsoCode=="function"&&(n.countryIsoCode=n.countryIsoCode().isoCode);var t=n.countryIsoCode?n.countryIsoCode:$.grep(Frontiers.Ugarit.Common.Configuration.GetCountries(),function(t){return t.id===n.countryId})[0].isoCode;f({OrganizationId:n.id,Name:n.name,City:n.city,CountryId:n.countryId,CountryIsoCode:t});i.affiliationText(n.name)}else f(null),i.affiliationText("")};i.checkBoxStyle=ko.observable("");i.notifications=ko.observable();i.notificationsClicked=function(){i.notifications(!i.notifications())};i.captcha=null;i.password=null;i.password2=null;i.apiErrorMessageAsHtml=ko.observable(null);i.missmatchErrorMessage=ko.observable(null);i.completeRegistration=function(){if(r(!0),i.captcha.validate(),i.apiErrorMessageAsHtml(null),i.missmatchErrorMessage(null),i.isFormValid()&&!u()){var n=Loop.Core.EndpointRepository.getEndpoint("RegisterStep1"),t={Captcha:{Answer:i.captcha.response.value(),SessionId:i.captcha.response.sessionId()},Email:i.email(),Password:i.password.value(),FirstName:i.firstName(),LastName:i.lastName(),Affiliation:f(),PositionId:i.position.optionSelected().value,ReceiveNotifications:i.notifications(),RegistrationToken:i.registrationToken};u(!0);Loop.Core.Ajax.createData({loginRequired:!1,withCredentials:!0,endpoint:n,inputData:JSON.stringify(t),successCallback:o,errorCallback:s})}};i.goToLogin=function(){Loop.Core.publish(Registration.Events.People.NavigateTo,Registration.Constants.PageRoutes.Login)};i.isWorking=ko.computed(function(){return u()===!0});i.refreshCaptcha=function(){i.captcha.refresh()};v()};window.Registration=window.Registration||{};Registration.ViewModels=Registration.ViewModels||{};Registration.ViewModels.TwitterNewPassword=function(){function f(){n.password=new Registration.Controls.PasswordInput({validationFlag:u,applyExtraValidations:!0,onEnterKeyPress:n.resetPassword,showTip:!0});var t=ko.validation.group(n,{deep:!0});r=ko.computed(function(){return t().length===0})}function e(){n.visible()&&(n.apiErrorMessage(null),n.email(Registration.Helpers.UrlHelper.getQueryString("email")),i=Registration.Helpers.UrlHelper.getQueryString("resetCode"),(n.email()===undefined||i===undefined)&&(n.visible(!1),Loop.Core.publish(Registration.Events.People.NavigateTo,Registration.Constants.PageRoutes.Login)))}function o(i,r,u){if(t(!1),i===412)switch(u.Code){case Registration.Constants.PrecoditionErrorCodes.USER_NOT_FOUND:n.apiErrorMessage(Registration.Constants.UIMessages.userEmailNotFound);break;case Registration.Constants.PrecoditionErrorCodes.INVALID_RESET_CODE:n.apiErrorMessage(Registration.Constants.UIMessages.invalidResetCode);break;default:n.apiErrorMessage(Registration.Constants.UIMessages.genericError);console.warn(Registration.Constants.UIMessages.preconditionFailedNotHandledError(u))}else n.apiErrorMessage(Registration.Constants.UIMessages.genericError)}var n=this,r=null,i="",u=ko.observable(!1),t=ko.observable(!1);n.visible=ko.observable(!1);n.visible.subscribe(e);n.email=ko.observable("");n.password=null;n.apiErrorMessage=ko.observable(null);n.resetPassword=function(){if(u(!0),n.apiErrorMessage(null),r()&&!t()){var f=Loop.Core.EndpointRepository.getEndpoint("ResetPassword"),e={Email:n.email(),ResetCode:i,Password:n.password.value(),ConfirmPassword:n.password.value()};t(!0);Loop.Core.Ajax.createData({loginRequired:!1,endpoint:f,inputData:JSON.stringify(e),successCallback:function(){t(!1);Loop.Core.publish(Registration.Events.People.NavigateTo,{sender:Registration.Constants.PageRoutes.ResetPassword,target:Registration.Constants.PageRoutes.Login,data:{success:!0,email:n.email()}});Loop.Core.publish(Registration.Events.People.NotificationSent,{type:Registration.Constants.AlertTypes.SUCCESS,message:Registration.Constants.UIMessages.twitterNewPasswordSuccess})},errorCallback:o})}};n.isWorking=ko.computed(function(){return t()===!0});f()};window.Registration=window.Registration||{};Registration.ViewModels=Registration.ViewModels||{};Registration.ViewModels.SecondaryEmailAdded=function(){function t(t,i){typeof i=="object"&&i.target===Registration.Constants.PageRoutes.SecondaryEmailAdded&&i.data!==undefined&&(n.secondaryEmail(i.data.secondaryEmail),n.returnUrl(i.data.returnUrl))}function i(){n.secondaryEmail(Registration.Helpers.UrlHelper.getQueryString("secondaryEmail"));n.returnUrl(Registration.Helpers.UrlHelper.getQueryString("returnUrl"));Loop.Core.subscribe(Registration.Events.People.NavigateTo,t)}var n=this;n.secondaryEmail=ko.observable();n.returnUrl=ko.observable();n.visible=ko.observable(!1);i()};window.Registration=window.Registration||{};Registration.ViewModels=Registration.ViewModels||{};Registration.ViewModels.Register00=function(n,t,i,r){function s(){if(f(!0),u.apiErrorMessageAsHtml(null),o()&&!e()){var n=Loop.Core.EndpointRepository.getEndpoint("RegisterStep0"),t={ReturnUrl:Registration.Helpers.UrlHelper.getQueryString("returnUrl"),Email:u.email(),ActionReferral:Registration.Helpers.UrlHelper.getQueryString("actionReferral"),RequestAuthToken:i,ThirdPartyProvider:u.thirdPartyProvider()};e(!0);Loop.Core.Ajax.createData({loginRequired:!1,withCredentials:!0,endpoint:n,inputData:ko.toJSON(t),successCallback:h,errorCallback:c})}}function h(n){u.thirdPartyProvider()===Registration.Constants.ThirdPartyProvider.None&&(Loop.Core.publish(Registration.Events.People.NavigateTo,{sender:Registration.Constants.PageRoutes.Register00,target:Registration.Constants.PageRoutes.Register01,data:n}),setTimeout(function(){e(!1);f(!1)},1e3))}function c(n,t,i){if(e(!1),n===412)switch(i.Code){case Registration.Constants.PrecoditionErrorCodes.NOT_LINKED_TO_TENANT:case Registration.Constants.PrecoditionErrorCodes.ALREADY_EXISTING_ACCOUNT:case Registration.Constants.PrecoditionErrorCodes.INACTIVE_ACCOUNT:Loop.Core.publish(Registration.Events.People.NavigateTo,{sender:Registration.Constants.PageRoutes.Register00,target:Registration.Constants.PageRoutes.Login,data:i});break;case Registration.Constants.PrecoditionErrorCodes.SUSPENDED_ACCOUNT:u.apiErrorMessageAsHtml(Registration.Constants.UIMessages.suspendedAccount2(u.email(),i.Data.ContactUrl));break;case Registration.Constants.PrecoditionErrorCodes.IMPERSONATION_OPERATION_FORBIDDEN:u.apiErrorMessageAsHtml(Registration.Constants.UIMessages.impersonationOperationForbidden("register"));break;default:u.apiErrorMessageAsHtml(Registration.Constants.UIMessages.genericErrorSaving);console.warn(Registration.Constants.UIMessages.preconditionFailedNotHandledError(i))}else u.apiErrorMessageAsHtml(Registration.Constants.UIMessages.genericErrorSaving)}function l(n,t){typeof t=="object"&&t.target===Registration.Constants.PageRoutes.Register00&&(Registration.Configuration.enableThirdPartyLoginAndRegister===!0?u.visible(!0):(u.visible(!1),Loop.Core.publish(Registration.Events.People.NavigateTo,t.data.sender)))}function a(){u.visible()&&(f(!1),Registration.Configuration.enableThirdPartyLoginAndRegister!==!0&&($(".account-btns-container").hide(),$(".subsection").hide()))}function v(){e(!1);u.enableYourMembership=Registration.Configuration.enableYourMembership;u.enableOrcidLogin=Registration.Configuration.enableOrcidLogin;Loop.Core.subscribe(Registration.Events.People.NavigateTo,l);u.visible.subscribe(a);var n=ko.validation.group(u,{deep:!0});o=ko.computed(function(){return n().length===0||u.thirdPartyProvider()!==Registration.Constants.ThirdPartyProvider.None});t&&r?(u.isAuthRequest(!1),u.email("")):u.isAuthRequest(t)}var u=this,o=null,e=ko.observable(!1),f=ko.observable(!1);u.thirdPartyControl=new Registration.Controls.ThirdPartyControl;u.isAuthRequest=ko.observable(!1);u.visible=ko.observable(!1);u.apiErrorMessageAsHtml=ko.observable(null);u.isWorking=ko.computed(function(){return e()===!0});u.thirdPartyProvider=ko.observable(Registration.Constants.ThirdPartyProvider.None);u.email=ko.observable(n).extend({required:{message:Registration.Constants.UIMessages.requiredField,onlyIf:f},maxLength:{params:Registration.Constants.Fields.EMAIL_MAX_LENGTH,message:Registration.Constants.UIMessages.limitExceded(Registration.Constants.Fields.EMAIL_MAX_LENGTH),onlyIf:f},email:{message:Registration.Constants.UIMessages.invalidEmail,onlyIf:f}});u.goToLogin=function(){f(!1);Loop.Core.publish(Registration.Events.People.NavigateTo,Registration.Constants.PageRoutes.Login)};u.thirdPartyControl=new Registration.Controls.ThirdPartyControl;u.goToRegisterWithEmail=function(){u.thirdPartyProvider(Registration.Constants.ThirdPartyProvider.None);s()};u.goToRegisterWithFacebook=function(){u.thirdPartyControl.register(Registration.Constants.ThirdPartyProvider.Facebook)};u.goToRegisterWithLinkedin=function(){u.thirdPartyControl.register(Registration.Constants.ThirdPartyProvider.LinkedIn)};u.goToRegisterWithYourMembership=function(){u.thirdPartyControl.register(Registration.Constants.ThirdPartyProvider.ESOT)};u.goToRegisterWithOrcid=function(){u.thirdPartyControl.register(Registration.Constants.ThirdPartyProvider.Orcid)};v()};window.Registration=window.Registration||{};Registration.ViewModels=Registration.ViewModels||{};Registration.ViewModels.ResetPassword=function(){function f(){n.password=new Registration.Controls.PasswordInput({validationFlag:u,applyExtraValidations:!0,onEnterKeyPress:n.resetPassword,showTip:!0});var t=ko.validation.group(n,{deep:!0});r=ko.computed(function(){return t().length===0})}function e(){n.visible()&&(n.apiErrorMessage(null),n.email(Registration.Helpers.UrlHelper.getQueryString("email")),i=Registration.Helpers.UrlHelper.getQueryString("resetCode"),(n.email()===undefined||i===undefined)&&(n.visible(!1),Loop.Core.publish(Registration.Events.People.NavigateTo,Registration.Constants.PageRoutes.Login)))}function o(i,r,u){if(t(!1),i===412)switch(u.Code){case Registration.Constants.PrecoditionErrorCodes.USER_NOT_FOUND:n.apiErrorMessage(Registration.Constants.UIMessages.userEmailNotFound);break;case Registration.Constants.PrecoditionErrorCodes.INVALID_RESET_CODE:n.apiErrorMessage(Registration.Constants.UIMessages.invalidResetCode);break;default:n.apiErrorMessage(Registration.Constants.UIMessages.genericError);console.warn(Registration.Constants.UIMessages.preconditionFailedNotHandledError(u))}else n.apiErrorMessage(Registration.Constants.UIMessages.genericError)}var n=this,r=null,i="",u=ko.observable(!1),t=ko.observable(!1);n.visible=ko.observable(!1);n.visible.subscribe(e);n.email=ko.observable("");n.password=null;n.apiErrorMessage=ko.observable(null);n.resetPassword=function(){if(u(!0),n.apiErrorMessage(null),r()&&!t()){var f=Loop.Core.EndpointRepository.getEndpoint("ResetPassword"),e={Email:n.email(),ResetCode:i,Password:n.password.value(),ConfirmPassword:n.password.value()};t(!0);Loop.Core.Ajax.createData({loginRequired:!1,endpoint:f,inputData:JSON.stringify(e),successCallback:function(){t(!1);Loop.Core.publish(Registration.Events.People.NavigateTo,{sender:Registration.Constants.PageRoutes.ResetPassword,target:Registration.Constants.PageRoutes.Login,data:{success:!0,email:n.email()}});Loop.Core.publish(Registration.Events.People.NotificationSent,{type:Registration.Constants.AlertTypes.SUCCESS,message:Registration.Constants.UIMessages.passwordResetSuccess})},errorCallback:o})}};n.isWorking=ko.computed(function(){return t()===!0});f()};window.Registration=window.Registration||{};Registration.ViewModels=Registration.ViewModels||{};Registration.ViewModels.LinkAccount=function(n){function u(n,r,u){i(!1);n===412&&u!==undefined?u.Code===Registration.Constants.PrecoditionErrorCodes.INACTIVE_ACCOUNT?Loop.Core.publish(Registration.Events.People.NavigateTo,{sender:Registration.Constants.PageRoutes.LinkAccount,target:Registration.Constants.PageRoutes.ResendEmailValidation,data:{Code:u.Code,Data:{ee:u.Data.Email}}}):Loop.Core.publish(Registration.Events.People.NavigateTo,{sender:Registration.Constants.PageRoutes.LinkAccount,target:Registration.Constants.PageRoutes.Login,data:u}):t.apiErrorMessageAsHtml(Registration.Constants.UIMessages.genericError)}function f(n){i(!1);switch(n.loginResultAction){case Registration.Constants.RequestAuthResult.FollowCallbackUrl:Registration.Helpers.locationHelper.redirect(n.returnUrl);break;case Registration.Constants.RequestAuthResult.SecondaryEmailAdded:Loop.Core.publish(Registration.Events.People.NavigateTo,{sender:Registration.Constants.PageRoutes.Login,target:Registration.Constants.PageRoutes.SecondaryEmailAdded,data:{secondaryEmail:n.secondaryEmail,returnUrl:n.returnUrl}})}}function e(n,i){typeof i=="object"&&i.target===Registration.Constants.PageRoutes.LinkAccount&&i.sender===Registration.Constants.PageRoutes.Login&&(i.data.Code===Registration.Constants.PrecoditionErrorCodes.NOT_LINKED_TO_TENANT?t.loginAuthenticationToken=i.data.Data.loginAuthenticationToken:(t.visible(!1),Loop.Core.publish(Registration.Events.People.NavigateTo,i.data.sender)))}function o(){t.visible()&&(t.loginAuthenticationToken===null||t.loginAuthenticationToken==="")&&(t.visible(!1),Loop.Core.publish(Registration.Events.People.NavigateTo,Registration.Constants.PageRoutes.Login))}function s(n){t.loginAuthenticationToken=n.loginAuthenticationToken;Loop.Core.subscribe(Registration.Events.People.NavigateTo,e)}var t=this,i=ko.observable(!1),r=ko.observable(!1);t.loginAuthenticationToken="";t.visible=ko.observable(!1);t.visible.subscribe(o);t.apiErrorMessageAsHtml=ko.observable(null);t.agreeTerms=ko.observable(!1);t.showAgreeTermsError=ko.computed(function(){return r()&&t.agreeTerms()===!1});t.displayTenantTermsAndConditionsBlock=function(){return Registration.Configuration.tenantTermsAndConditionsInfo()!==undefined&&Registration.Configuration.tenantTermsAndConditionsInfo()!==null};t.isWorking=ko.computed(function(){return i()===!0});t.continueTo=function(){if(r(!0),t.apiErrorMessageAsHtml(null),(t.agreeTerms()===!0||t.displayTenantTermsAndConditionsBlock()===!1)&&!i()){var n=Loop.Core.EndpointRepository.getEndpoint("AcceptTermsAndConditions"),e={LoginAuthenticationToken:t.loginAuthenticationToken};i(!0);Loop.Core.Ajax.createData({loginRequired:!1,withCredentials:!0,endpoint:n,inputData:JSON.stringify(e),successCallback:f,errorCallback:u})}};s(n)};window.Registration=window.Registration||{};Registration.ViewModels=Registration.ViewModels||{};Registration.ViewModels.TwitterLogin=function(){function u(){return{Email:n.email(),Captcha:{Answer:n.captcha.response.value(),SessionId:n.captcha.response.sessionId()}}}function f(){i(!1);t(!1);n.email("");n.captcha.refresh();n.goToLogin();Loop.Core.publish(Registration.Events.People.NotificationSent,{type:Registration.Constants.AlertTypes.SUCCESS,message:Registration.Constants.UIMessages.twitterResetPasswordSuccess})}function e(t,r,u){if(i(!1),t===412)switch(u.Code){case Registration.Constants.PrecoditionErrorCodes.USER_NOT_FOUND:n.captcha.refresh();n.apiErrorMessage(Registration.Constants.UIMessages.userEmailNotFound);break;case Registration.Constants.PrecoditionErrorCodes.REGISTRATION_NOT_COMPLETED:Loop.Core.publish(Registration.Events.People.NavigateTo,{sender:Registration.Constants.PageRoutes.ForgotPassword,target:Registration.Constants.PageRoutes.Register01,data:{registrationNotCompleted:!0,email:n.email()}});setTimeout(function(){n.captcha.refresh();n.email("")},Registration.Constants.Transition.Speed());break;case Registration.Constants.PrecoditionErrorCodes.CAPTCHA_ERROR:n.captcha.refresh();n.captcha.errorMessage(Registration.Constants.UIMessages.invalidCaptcha);n.captcha.hasFailed(!0);break;case Registration.Constants.PrecoditionErrorCodes.ERROR_SENDING_EMAIL:n.captcha.refresh();n.apiErrorMessage(Registration.Constants.UIMessages.errorSendingEmail);break;default:n.captcha.refresh();console.warn(Registration.Constants.UIMessages.preconditionFailedNotHandledError(u))}else n.captcha.refresh(),n.apiErrorMessage(Registration.Constants.UIMessages.genericError)}function o(){n.captcha.visible(n.visible());n.visible()&&(t(!1),n.apiErrorMessage(null))}function s(){n.captcha=new Registration.Controls.CaptchaControl({numberOfImages:5});var t=ko.validation.group(n,{deep:!0});r=ko.computed(function(){return t().length===0&&n.captcha.isResponded()})}var n=this,r=null,t=ko.observable(!1),i=ko.observable(!1);n.visible=ko.observable(!1);n.visible.subscribe(o);n.goToLogin=function(){Loop.Core.publish(Registration.Events.People.NavigateTo,Registration.Constants.PageRoutes.Login)};n.captcha=null;n.apiErrorMessage=ko.observable(null);n.email=ko.observable().extend({required:{message:Registration.Constants.UIMessages.requiredField,onlyIf:t},email:{message:Registration.Constants.UIMessages.invalidEmail,onlyIf:t}});n.resetPassword=function(){t(!0);n.captcha.validate();r()&&!i()&&(i(!0),n.apiErrorMessage(null),Loop.Core.Ajax.createData({loginRequired:!1,withCredentials:!0,endpoint:Loop.Core.EndpointRepository.getEndpoint("TwitterPasswordReset"),inputData:ko.toJSON(u()),successCallback:f,errorCallback:e,preventmodalonerror:!1}))};n.isWorking=ko.computed(function(){return i()===!0});n.refreshCaptcha=function(){n.captcha.refresh()};s()};window.Registration=window.Registration||{};Registration.ViewModels=Registration.ViewModels||{};Registration.ViewModels.DuplicatedAccount=function(n){function i(){Loop.Core.subscribe(Registration.Events.People.NavigateTo,r)}function r(n,i){typeof i=="object"&&i.target===Registration.Constants.PageRoutes.DuplicatedAccount&&i.sender===Registration.Constants.PageRoutes.Login&&i.data.Code===Registration.Constants.PrecoditionErrorCodes.ERROR_ADDING_INVITED_EMAIL&&(t.invitedEmailAddress(i.data.Data.InvitedEmailAddress),t.supportEmail(i.data.Data.ContactLink),t.continueLink(i.data.Data.ContinueLink))}function u(){t.visible()&&t.invitedEmailAddress()===null&&(t.visible(!1),Loop.Core.publish(Registration.Events.People.NavigateTo,Registration.Constants.PageRoutes.Login))}var t=this;t.visible=ko.observable(!1);t.visible.subscribe(u);t.invitedEmailAddress=ko.observable(n!==null&&n!==undefined?n.InvitedEmailAddress:null);t.supportEmail=ko.observable(n!==null&&n!==undefined?n.ContactLink:null);t.continueLink=ko.observable(n!==null&&n!==undefined?n.ContinueLink:null);i()};window.Registration=window.Registration||{};Registration.ViewModels=Registration.ViewModels||{};Registration.ViewModels.ForgotPassword=function(){function u(){return{Email:n.email(),Captcha:{Answer:n.captcha.response.value(),SessionId:n.captcha.response.sessionId()}}}function f(){i(!1);t(!1);n.email("");n.captcha.refresh();n.goToLogin();Loop.Core.publish(Registration.Events.People.NotificationSent,{type:Registration.Constants.AlertTypes.SUCCESS,message:Registration.Constants.UIMessages.forgotPasswordSuccess})}function e(t,r,u){if(i(!1),t===412)switch(u.Code){case Registration.Constants.PrecoditionErrorCodes.USER_NOT_FOUND:n.captcha.refresh();n.apiErrorMessage(Registration.Constants.UIMessages.userEmailNotFound);break;case Registration.Constants.PrecoditionErrorCodes.REGISTRATION_NOT_COMPLETED:Loop.Core.publish(Registration.Events.People.NavigateTo,{sender:Registration.Constants.PageRoutes.ForgotPassword,target:Registration.Constants.PageRoutes.Register01,data:{registrationNotCompleted:!0,email:n.email()}});setTimeout(function(){n.captcha.refresh();n.email("")},Registration.Constants.Transition.Speed());break;case Registration.Constants.PrecoditionErrorCodes.CAPTCHA_ERROR:n.captcha.refresh();n.captcha.errorMessage(Registration.Constants.UIMessages.invalidCaptcha);n.captcha.hasFailed(!0);break;case Registration.Constants.PrecoditionErrorCodes.ERROR_SENDING_EMAIL:n.captcha.refresh();n.apiErrorMessage(Registration.Constants.UIMessages.errorSendingEmail);break;default:n.captcha.refresh();console.warn(Registration.Constants.UIMessages.preconditionFailedNotHandledError(u))}else n.captcha.refresh(),n.apiErrorMessage(Registration.Constants.UIMessages.genericError)}function o(){n.captcha.visible(n.visible());n.visible()&&(t(!1),n.apiErrorMessage(null))}function s(){n.captcha=new Registration.Controls.CaptchaControl({numberOfImages:5});var t=ko.validation.group(n,{deep:!0});r=ko.computed(function(){return t().length===0&&n.captcha.isResponded()})}var n=this,r=null,t=ko.observable(!1),i=ko.observable(!1);n.visible=ko.observable(!1);n.visible.subscribe(o);n.goToLogin=function(){Loop.Core.publish(Registration.Events.People.NavigateTo,Registration.Constants.PageRoutes.Login)};n.captcha=null;n.apiErrorMessage=ko.observable(null);n.email=ko.observable().extend({required:{message:Registration.Constants.UIMessages.requiredField,onlyIf:t},email:{message:Registration.Constants.UIMessages.invalidEmail,onlyIf:t}});n.resetPassword=function(){t(!0);n.captcha.validate();r()&&!i()&&(i(!0),n.apiErrorMessage(null),Loop.Core.Ajax.createData({loginRequired:!1,withCredentials:!0,endpoint:Loop.Core.EndpointRepository.getEndpoint("ForgotPassword"),inputData:ko.toJSON(u()),successCallback:f,errorCallback:e,preventmodalonerror:!1}))};n.isWorking=ko.computed(function(){return i()===!0});n.refreshCaptcha=function(){n.captcha.refresh()};s()};window.Registration=window.Registration||{};Registration.ViewModels=Registration.ViewModels||{};Registration.ViewModels.ResendEmailValidation=function(){function r(){Loop.Core.subscribe(Registration.Events.People.NavigateTo,u)}function u(n,i){t=null;i.target===Registration.Constants.PageRoutes.ResendEmailValidation&&i.data.Code===Registration.Constants.PrecoditionErrorCodes.INACTIVE_ACCOUNT&&(t=i.data.Data.ee)}function f(t,r,u){if(i(!1),t===412)switch(u.Code){case Registration.Constants.PrecoditionErrorCodes.ENCRYPTED_EMAIL_NOT_VALID:Loop.Core.publish(Registration.Events.People.NavigateTo,Registration.Constants.PageRoutes.Login);break;default:n.apiErrorMessage(Registration.Constants.UIMessages.genericError);console.warn(Registration.Constants.UIMessages.preconditionFailedNotHandledError(u))}else n.apiErrorMessage(Registration.Constants.UIMessages.genericError)}function e(){n.visible()&&(n.apiErrorMessage(null),t===null&&(n.visible(!1),Loop.Core.publish(Registration.Events.People.NavigateTo,Registration.Constants.PageRoutes.Login)))}var n=this,t=null,i=ko.observable(!1);n.visible=ko.observable(!1);n.visible.subscribe(e);n.apiErrorMessage=ko.observable(null);n.resendEmailValidation=function(){if(n.apiErrorMessage(null),t===null||i())Loop.Core.publish(Registration.Events.People.NavigateTo,Registration.Constants.PageRoutes.Login);else{var r=Loop.Core.EndpointRepository.getEndpoint("ResendEmailValidation"),u={Email:t,ReturnUrl:Registration.Helpers.UrlHelper.getQueryString("returnUrl"),ActionReferral:Registration.Helpers.UrlHelper.getQueryString("actionReferral"),RequestAuthToken:Registration.Helpers.UrlHelper.getQueryString("requestAuthToken")};i(!0);Loop.Core.Ajax.createData({loginRequired:!1,endpoint:r,withCredentials:!0,inputData:JSON.stringify(u),successCallback:function(){i(!1);Loop.Core.publish(Registration.Events.People.NavigateTo,{sender:Registration.Constants.PageRoutes.ResendEmailValidation,target:Registration.Constants.PageRoutes.RegisterSuccess,data:{email:t}})},errorCallback:f})}};n.isWorking=ko.computed(function(){return i()===!0});r()};window.Registration=window.Registration||{};window.dataLayer=window.dataLayer||[];Registration.ViewModels=Registration.ViewModels||{};Registration.ViewModels.Login=function(n){function v(n){t.enableThirdPartiesLoginAndRegister=Registration.Configuration.enableThirdPartyLoginAndRegister;t.enableYourMembership=Registration.Configuration.enableYourMembership;t.enableOrcidLogin=Registration.Configuration.enableOrcidLogin;t.enableOnlyTwitter=!Registration.Configuration.enableYourMembership&&!Registration.Configuration.enableOrcidLogin;t.password=new Registration.Controls.PasswordInput({validationFlag:i,onEnterKeyPress:t.login});n.errorCode!==null&&n.errorCode!==undefined&&(t.email(n.email),h({Code:n.errorCode,Data:{ee:n.email,ContactUrl:n.contactUrl,Provider:n.provider}}));var r=ko.validation.group(t,{deep:!0});e=ko.computed(function(){return r().length===0});Loop.Core.subscribe(Registration.Events.People.NavigateTo,k)}function y(n,i,u){r(!1);n===412?h(u):t.apiErrorMessageAsHtml(Registration.Constants.UIMessages.genericError)}function p(n){switch(n.loginResultAction){case Registration.Constants.RequestAuthResult.FollowCallbackUrl:var t=n.Provider&&n.Provider.Login;window.dataLayer.push({event:"login",method:t||"email",redirect:n.returnUrl});Registration.Helpers.locationHelper.redirect(n.returnUrl);break;case Registration.Constants.RequestAuthResult.SecondaryEmailAdded:Loop.Core.publish(Registration.Events.People.NavigateTo,{sender:Registration.Constants.PageRoutes.Login,target:Registration.Constants.PageRoutes.SecondaryEmailAdded,data:{secondaryEmail:n.secondaryEmail,returnUrl:n.returnUrl}})}}function h(n){switch(n.Code){case Registration.Constants.PrecoditionErrorCodes.AUTHENTICATION_FAILED:c(Registration.Constants.UIMessages.authenticationFailed);break;case Registration.Constants.PrecoditionErrorCodes.THIRD_PARTY_AUTHENTICATION_FAILED:var i=Registration.Constants.UIMessages.thirdPartyAuthenticationFailed(n.Data.Provider);c(i);break;case Registration.Constants.PrecoditionErrorCodes.INACTIVE_ACCOUNT:w(n);break;case Registration.Constants.PrecoditionErrorCodes.SUSPENDED_ACCOUNT:l(n.Data.ContactUrl);break;case Registration.Constants.PrecoditionErrorCodes.ERROR_ADDING_INVITED_EMAIL:Loop.Core.publish(Registration.Events.People.NavigateTo,{sender:Registration.Constants.PageRoutes.Login,target:Registration.Constants.PageRoutes.DuplicatedAccount,data:n});break;case Registration.Constants.PrecoditionErrorCodes.ALREADY_EXISTING_ACCOUNT:u(t.email());break;case Registration.Constants.PrecoditionErrorCodes.IP_BLOCKED_LOGIN:t.apiErrorMessageAsHtml(Registration.Constants.UIMessages.ipBlockedLogin);break;case Registration.Constants.PrecoditionErrorCodes.NOT_LINKED_TO_TENANT:a(n);break;case Registration.Constants.PrecoditionErrorCodes.IMPERSONATION_OPERATION_FORBIDDEN:t.apiErrorMessageAsHtml(Registration.Constants.UIMessages.impersonationOperationForbidden("login"));break;default:t.apiErrorMessageAsHtml(Registration.Constants.UIMessages.genericError);console.warn(Registration.Constants.UIMessages.preconditionFailedNotHandledError(n))}}function c(n){t.apiErrorMessageAsHtml(n);o=!0}function w(n){Loop.Core.publish(Registration.Events.People.NavigateTo,{sender:Registration.Constants.PageRoutes.Login,target:Registration.Constants.PageRoutes.ResendEmailValidation,data:n});f=!0;window.history.pushState("","","/"+Registration.Constants.PageRoutes.ResendEmailValidation)}function l(n){t.apiErrorMessageAsHtml(Registration.Constants.UIMessages.suspendedAccount(t.email(),n));s=!0}function u(n){b(n)}function b(n){f=!0;t.apiErrorMessageAsHtml(Registration.Constants.UIMessages.alreadyExistingOrInactiveAccount(n))}function a(n){t.goToLinkAccount(n)}function k(n,i){typeof i=="object"&&i.target===Registration.Constants.PageRoutes.Login&&(i.sender===Registration.Constants.PageRoutes.ResetPassword&&i.data.success===!0||i.sender===Registration.Constants.PageRoutes.RegisterSuccess?t.email(i.data.email):i.data.Code!==undefined&&(i.data.Code===Registration.Constants.PrecoditionErrorCodes.ALREADY_EXISTING_ACCOUNT||i.data.Code===Registration.Constants.PrecoditionErrorCodes.INACTIVE_ACCOUNT?(t.email(i.data.Data.Email),u(i.data.Data.Email)):i.data.Code===Registration.Constants.PrecoditionErrorCodes.SUSPENDED_ACCOUNT?(t.email(i.data.Data.Email),l(i.data.Data.ContactUrl)):i.sender===Registration.Constants.PageRoutes.Register00&&i.data.Code===Registration.Constants.PrecoditionErrorCodes.NOT_LINKED_TO_TENANT?(t.email(i.data.Data.Email),u(i.data.Data.Email)):i.sender===Registration.Constants.PageRoutes.Register01&&i.data.Code===Registration.Constants.PrecoditionErrorCodes.NOT_LINKED_TO_TENANT?(t.email(i.data.Data.Email),u(i.data.Data.Email)):i.data.Code===Registration.Constants.PrecoditionErrorCodes.NOT_LINKED_TO_TENANT&&a(preconditionFailed)))}function d(){t.visible()?(i(!1),f||s||o||t.apiErrorMessageAsHtml(null)):t.apiErrorMessageAsHtml(null)}var t=this,e=null,i=ko.observable(!1),r=ko.observable(!1),o,f,s;t.enableThirdPartiesLoginAndRegister=!1;t.enableOrcidLogin=!0;t.visible=ko.observable(!1);t.visible.subscribe(d);t.thirdPartyControl=new Registration.Controls.ThirdPartyControl;t.email=ko.observable(n.email).extend({required:{message:Registration.Constants.UIMessages.requiredField,onlyIf:i},email:{message:Registration.Constants.UIMessages.invalidEmail,onlyIf:i}});t.password=null;t.rememberMe=ko.observable(!1);t.apiErrorMessageAsHtml=ko.observable(null);t.login=function(){if(i(!0),t.apiErrorMessageAsHtml(null),e()&&!r()){var n=Loop.Core.EndpointRepository.getEndpoint("Login"),u={Email:t.email(),Password:t.password.value(),RememberMe:t.rememberMe(),ReturnUrl:Registration.Helpers.UrlHelper.getQueryString("returnUrl"),InvitationToken:Registration.Helpers.UrlHelper.getQueryString("invitationToken"),RequestAuthToken:Registration.Helpers.UrlHelper.getQueryString("requestAuthToken"),ActionReferral:Registration.Helpers.UrlHelper.getQueryString("actionReferral")};r(!0);Loop.Core.Ajax.createData({loginRequired:!1,withCredentials:!0,endpoint:n,inputData:JSON.stringify(u),successCallback:p,errorCallback:y})}};t.goToRegister=function(){Loop.Core.publish(Registration.Events.People.NavigateTo,Registration.Constants.PageRoutes.Register00)};t.goToForgotPassword=function(){Loop.Core.publish(Registration.Events.People.NavigateTo,Registration.Constants.PageRoutes.ForgotPassword)};t.goToTwitterLogin=function(){Loop.Core.publish(Registration.Events.People.NavigateTo,Registration.Constants.PageRoutes.TwitterLogin)};t.isWorking=ko.computed(function(){return r()===!0});t.goToLinkAccount=function(n){notLinkedWithTenantError=!0;notLinkedWithTenantBodyError=n;Loop.Core.publish(Registration.Events.People.NavigateTo,{sender:Registration.Constants.PageRoutes.Login,target:Registration.Constants.PageRoutes.LinkAccount,data:n})};t.goToLoginWithFacebook=function(){t.thirdPartyControl.login(Registration.Constants.ThirdPartyProvider.Facebook,t.rememberMe())};t.goToLoginWithLinkedIn=function(){t.thirdPartyControl.login(Registration.Constants.ThirdPartyProvider.LinkedIn,t.rememberMe())};t.goToLoginWithYourMembership=function(){t.thirdPartyControl.login(Registration.Constants.ThirdPartyProvider.ESOT,t.rememberMe())};t.goToLoginWithOrcid=function(){t.thirdPartyControl.login(Registration.Constants.ThirdPartyProvider.Orcid,t.rememberMe())};v(n)};window.Registration=window.Registration||{};Registration.ViewModels=Registration.ViewModels||{};Registration.ViewModels.Success=function(){function i(n,i){typeof i=="object"&&i.target===Registration.Constants.PageRoutes.RegisterSuccess&&(i.data.email!==undefined&&(t=i.data.email),i.data.invitationEmailDuplicated===Registration.Constants.InvitationProcessingResult.EmailAddressOwnedByAnotherUser&&Loop.Core.publish(Registration.Events.People.NotificationSent,{type:Registration.Constants.AlertTypes.INFO,message:Registration.Constants.UIMessages.invitationEmailCouldNotBeAdded(i.data.contactSupportAddress)}))}function r(){Loop.Core.subscribe(Registration.Events.People.NavigateTo,i)}var n=this,t=null;n.visible=ko.observable(!1);n.goToLogin=function(){Registration.Helpers.UrlHelper.deleteQueryStringParameter("requestAuthToken");Loop.Core.publish(Registration.Events.People.NavigateTo,{sender:Registration.Constants.PageRoutes.RegisterSuccess,target:Registration.Constants.PageRoutes.Login,data:{email:t}})};n.goToLoginHref=function(){return};r()};window.Registration=window.Registration||{};Registration.ViewModels=Registration.ViewModels||{};Registration.ViewModels.OAuth=Registration.ViewModels.OAuth||{};Registration.ViewModels.OAuth.Consent=function(n){function e(n){n.errorCode!==null&&n.errorCode!==undefined&&(t.requestedScopes(n.requestedScopes),o({Code:n.errorCode,Data:{ee:n.requestedScopes}}));var r=ko.validation.group(t,{deep:!0});i=ko.computed(function(){return r().length===0})}function o(n){switch(n.Code){case Registration.Constants.PrecoditionErrorCodes.AUTHENTICATION_FAILED:s(Registration.Constants.UIMessages.authenticationFailed);break;default:t.apiErrorMessageAsHtml(Registration.Constants.UIMessages.genericError);console.warn(Registration.Constants.UIMessages.preconditionFailedNotHandledError(n))}}function s(n){t.apiErrorMessageAsHtml(n);u=!0}function h(){t.visible()?(f(!1),u||t.apiErrorMessageAsHtml(null)):t.apiErrorMessageAsHtml(null)}var t=this,i=null,f=ko.observable(!1),r=ko.observable(!1),u;t.visible=ko.observable(!1);t.requestedScopes=ko.observableArray(n.requestedScopes);t.visible.subscribe(h);t.apiErrorMessageAsHtml=ko.observable(null);t.rememberMe=n.rememberMe;t.userId=n.userId;t.consentChallenge=n.consentChallenge;t.DenyCode="user_denied";t.errorDebug="The user has denied consent form";t.denyDescription="You have denied the consent permission";t.denyHint="Contact the site administrator.";t.denyStatusCode="403";t.userId=n.userId;t.Submit=function(){if(i()&&!r()){var n=$("form");n[0].action=Loop.Core.EndpointRepository.getEndpoint("ConsentAccept").url();n.submit()}};t.Deny=function(){var n=$("form");n[0].action=Loop.Core.EndpointRepository.getEndpoint("ConsentReject").url();n.submit()};t.isWorking=ko.computed(function(){return r()===!0});e(n)};window.Registration=window.Registration||{};Registration.ViewModels=Registration.ViewModels||{};Registration.ViewModels.OAuth=Registration.ViewModels.OAuth||{};Registration.ViewModels.OAuth.Login=function(n){function s(n){t.password=new Registration.Controls.PasswordInput({validationFlag:i,onEnterKeyPress:t.login});n.errorCode!==null&&n.errorCode!==undefined&&(t.email(n.email),o({Code:n.errorCode,Data:{ee:n.email,ContactUrl:n.contactUrl,Provider:n.provider}}));var r=ko.validation.group(t,{deep:!0});u=ko.computed(function(){return r().length===0})}function e(n,i,u){r(!1);n===412?o(u):t.apiErrorMessageAsHtml(Registration.Constants.UIMessages.genericError)}function h(n){n===null&&e(302,"No user id has been retrieved");t.userId(n.userId);var i=$("form");i[0].action=Loop.Core.EndpointRepository.getEndpoint("LoginAccept").url();i.submit()}function o(n){switch(n.Code){case Registration.Constants.PrecoditionErrorCodes.AUTHENTICATION_FAILED:c(Registration.Constants.UIMessages.authenticationFailed);break;default:t.apiErrorMessageAsHtml(Registration.Constants.UIMessages.genericError);console.warn(Registration.Constants.UIMessages.preconditionFailedNotHandledError(n))}}function c(n){t.apiErrorMessageAsHtml(n);f=!0}function l(){t.visible()?(i(!1),f||t.apiErrorMessageAsHtml(null)):t.apiErrorMessageAsHtml(null)}var t=this,u=null,i=ko.observable(!1),r=ko.observable(!1),f;t.visible=ko.observable(!1);t.visible.subscribe(l);t.email=ko.observable(n.email).extend({required:{message:Registration.Constants.UIMessages.requiredField,onlyIf:i},email:{message:Registration.Constants.UIMessages.invalidEmail,onlyIf:i}});t.password=null;t.rememberMe=ko.observable(!1);t.apiErrorMessageAsHtml=ko.observable(null);t.loginChallenge=n.loginChallenge;t.cancelCode="user_cancelled";t.errorDebug="The user has cancelled login request";t.cancelDescription="You have cancelled the signin";t.cancelHint="Contact the site administrator.";t.cancelStatusCode="403";t.userId=ko.observable(-1);t.login=function(){if(i(!0),t.apiErrorMessageAsHtml(null),u()&&!r()){var n=Loop.Core.EndpointRepository.getEndpoint("Validate"),f={Email:t.email(),Password:t.password.value(),RememberMe:t.rememberMe()};r(!0);Loop.Core.Ajax.createData({loginRequired:!1,withCredentials:!0,endpoint:n,inputData:JSON.stringify(f),successCallback:h,errorCallback:e})}};t.cancel=function(){var n=$("form");n[0].action=Loop.Core.EndpointRepository.getEndpoint("LoginReject").url();n.submit()};t.isWorking=ko.computed(function(){return r()===!0});s(n)}