var verifyEmailApp=angular.module("verifyEmailApp",["medcast.services"]),app;verifyEmailApp.controller("verifyEmailController",["$scope","$uibModalInstance","data","medcastAPI",function(n,t,i,r){n.email=i.email;n.code=null;n.codeVerified=!1;n.codeSent=!1;n.verifying=!1;n.sendingCode=!1;n.errors=[];n.successMessage=null;n.init=function(){n.sendingCode=!0;setTimeout(function(){n.sendVerificationCode()},2e3)};n.verifyEmail=function(i){i.$valid&&(n.verifying=!0,n.errors=[],r.completeEmailVerification(n.email,n.code).then(function(i){n.verifying=!1;i.data.success===!0?(n.codeVerified=!0,n.successMessage="Your email has been verified.",setTimeout(function(){t.close({codeVerified:n.codeVerified,codeVerifiedEmail:n.email})},2e3)):n.errors=i.data.errors},function(t){n.verifying=!1;n.errors=t.data.errors}))};n.close=function(){t.close({codeVerified:!1,codeVerifiedEmail:null})};n.sendVerificationCode=function(){n.sendingCode=!0;n.codeSent=!1;n.errors=[];r.sendVerificationEmail(n.email).then(function(){n.sendingCode=!1;n.codeSent=!0},function(t){n.sendingCode=!1;n.errors=t.data.errors})};n.init()}]);app=angular.module("signupApp",["ngRoute","ui.bootstrap","medcast.services","verifyEmailApp","medcast.directives"]);app.controller("signupController",["$scope","$http","$uibModal","$location","medcastAPI","Analytics",function(n,t,i,r,u,f){n.loading=!0;n.verifyingEmail=!1;n.submitting=!1;n.skipAhpra={value:!1};n.apiUrl="/api/signup/";n.passwordRegex="^(?=.*[0-9])(?=.*[a-zA-Z]).{6,}$";n.ahpraRegex="[a-zA-Z]{3}\\d{10}";n.errors=[];n.userID=userID;n.redirect=signupRedirect;n.currentPath=r.path();n.emailVerificationResult={};n.medcastAPI=u;n.professions=[];n.specialties=[];n.states=[];n.countries=[];n.sources=[];n.companyTitles=[];n.companyTypes=[];n.nursingAreasOfPractice=[];n.details={firstname:firstName,lastname:lastName,email:email,password:null,mobile:null,hearAboutUs:null};n.ahpraDetails={ahpra:null,ahpraSelection:"I have an AHPRA number"};n.additionalDetails={userID:null,profession:null,specialty:null,postcode:null,country:"Australia",nursingAreasOfPractice:null,enterpriseProspect:!1,title:null,companyType:null,company:null};n.codeVerification={code:null,verified:!1,email:null};n.signupAppStart=function(){n.userID!=null?(n.additionalDetails.userID=n.userID,r.path("/ahpra")):r.path("/details");n.currentPath=r.path();u.getSignupVariables().then(function(t){n.professions=t.data.professions;n.specialties=t.data.specialties;n.states=t.data.states;n.countries=t.data.countries;n.sources=t.data.sources;n.companyTitles=t.data.companyTitles;n.companyTypes=t.data.companyTypes;n.nursingAreasOfPractice=t.data.nursingAreasOfPractice;n.loading=!1},function(t){n.errors=t.data.errors;n.loading=!1})};n.changedProfession=function(){n.additionalDetails.profession!="Medical Practitioner"&&(n.additionalDetails.specialty=null);n.additionalDetails.profession!="Nurse"&&n.additionalDetails.profession!="Nurse Practitioner"&&(n.additionalDetails.nursingAreasOfPractice=null)};n.skipAhpra=function(t){t&&(n.ahpraDetails.ahpra=null);n.skipAhpra.value=t;n.errors=[]};n.submitDetails=function(t){t.$valid&&(n.codeVerification.verified===!1?n.openVerificationModal(t):(n.submitting=!0,n.errors=[],u.submitSignupDetails(n.details).then(function(t){n.submitting=!1;n.additionalDetails.userID=t.data.userID;f.facebookCompleteRegistration();t.data.redirect&&(window.location.href=t.data.redirect);r.path("/ahpra");n.currentPath=r.path()},function(t){n.submitting=!1;n.errors=t.data.errors})))};n.openVerificationModal=function(t){var r=i.open({animation:!0,templateUrl:"VerifyEmail.html",controller:"verifyEmailController",size:"md",keyboard:!1,backdrop:"static",resolve:{data:{email:n.details.email}}});r.result.then(function(i){n.codeVerification.verified=i.codeVerified;n.codeVerification.email=i.codeVerifiedEmail;n.codeVerification.verified===!0&&n.submitDetails(t)})};n.submitAhpra=function(t){t.$valid&&(n.skipAhpra.value===!0?(n.submitting=!0,n.errors=[],u.submitAhpraReason({userId:n.additionalDetails.userID,ahpraSelection:n.ahpraDetails.ahpraSelection}).then(function(){n.submitting=!1;r.path("/additional");n.currentPath=r.path();return},function(t){n.submitting=!1;n.errors=t.data.errors})):(n.submitting=!0,n.errors=[],u.submitAhpraDetails({userId:n.additionalDetails.userID,MedNum:n.ahpraDetails.ahpra,ahpraSelection:n.ahpraDetails.ahpraSelection}).then(function(t){n.submitting=!1;t.data.success===!0&&t.data.status==="Verified"?window.location.href="/courses":t.data.success===!0?(r.path("/additional"),n.currentPath=r.path()):n.errors=["Please check the AHPRA number and re-enter or Tick the box 'I don't have my AHPRA number handy or I don't have one' and click Next/Skip."]},function(t){n.submitting=!1;n.errors=t.data.errors})))};n.submitAdditionalDetails=function(t){t.$valid&&(n.submitting=!0,n.errors=[],u.submitSignupAdditionalDetails(n.additionalDetails).then(function(t){t.data.success?window.location.href=n.redirect.length>0?n.redirect:"/courses":n.submitting=!1},function(t){n.submitting=!1;n.errors=t.data.errors}))};n.changeRoute=function(n){r.path(n)};n.countryChange=function(t){t!="Australia"&&(n.additionalDetails.postcode=null)};n.rejectedEmailReason=function(n){return n?n.replace("_"," "):null};n.test=function(){n.details.email="josh.wood@medcast.com.au";n.openVerificationModal()};n.enterpriseProspectChange=function(){n.additionalDetails.enterpriseProspect==!1&&(n.additionalDetails.title=null,n.additionalDetails.company=null,n.additionalDetails.companyType=null)};n.signupAppStart()}]);app.directive("emailVerified",function(){return{restrict:"A",require:"ngModel",scope:{emailverificationresult:"=",medcastapi:"=",verifyingemail:"=",details:"=",codeVerification:"="},link:function(n,t,i,r){t.bind("blur",function(){var t=n.medcastapi;n.verifyingemail=!0;t.verifySignupEmail(r.$viewValue).then(function(t){n.emailverificationresult=t.data;n.emailverificationresult.verified=t.data.result=="deliverable"||t.data.result=="risky"&&!t.data.disposable;r.$setValidity("isVerifiedEmail",n.emailverificationresult.verified);n.verifyingemail=!1;n.codeVerification.verified&&n.codeVerification.email!==r.$viewValue&&(n.codeVerification.verified=!1,n.codeVerification.email=null)},function(){r.$setValidity("isVerifiedEmail",!1);n.verifyingemail=!1})})}}});app.config(["$routeProvider",function(n){n.when("/details",{templateUrl:"/Signup/Details"}).when("/ahpra",{templateUrl:"/Signup/Ahpra"}).when("/additional",{templateUrl:"/Signup/Additional"})}])