function registrationController(n,t,i,r,u,f,e){function v(n){e.getUserByPhone(n).then(function(n){if(n&&n.data&&n.data.accountNumber!=null&&(n.data.accountNumber!==o.accountNumber||n.data.accessLevel!=5)){s();o.errorMessage="This cell phone number is already in use on another Midco account. To proceed, please use a different cell phone number or leave blank.";return}y()},function(){s()})}function s(){o.hasError=!0;o.errorMessage="Please enter a valid U.S. cell phone number.";o.invalidMobileNumber=!0;o.textPreference=!1;document.getElementById("text_preferences").disabled=!0}function y(){o.hasError=!1;o.invalidMobileNumber=!1;o.textPreference=!0;document.getElementById("text_preferences").disabled=!1}function p(n){return n.length<8?!1:c(n)?a(n)?l(n)?!0:!1:!1:!1}function c(n){return/\d/.test(n)}function l(n){return/[a-z]/.test(n)}function a(n){return/[A-Z]/.test(n)}function h(n){var t=new RegExp(/^(("[\w-+\s]+")|([\w-+]+(?:\.[\w-+]+)*)|("[\w-+\s]+")([\w-+]+(?:\.[\w-+]+)*))(@((?:[\w-+]+\.)*\w[\w-+]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][\d]\.|1[\d]{2}\.|[\d]{1,2}\.))((25[0-5]|2[0-4][\d]|1[\d]{2}|[\d]{1,2})\.){2}(25[0-5]|2[0-4][\d]|1[\d]{2}|[\d]{1,2})\]?$)/i);return t.test(n)}var o=this;o.data={};o.userName="";o.accountNumber="";o.accountId=$("#MainContent_MainContent_EnterUsername_AccountNumberHiddenField").val();o.isAvailable=!0;o.isEmailAddress=!1;o.isNumber=!0;o.emailAddress=$("#tbAccountEmailAddress").val();o.invalidEmailAddressError=!1;o.emailExist=!1;o.accountNumberRequired=!1;o.pinCodeRequired=!1;o.emailRequired=!1;o.passwordRequired=!1;o.passwordNotMatch=!1;o.hasError=!1;o.errorMessage="";o.isAccountRegistered=!1;o.acceptedtermsandconditions=!1;o.emailPreference=!1;o.textPreference=!1;o.invalidMobileNumber=!1;o.invalidEmail=!1;o.phoneNumberInUse=!1;o.init=function(){i.accountInfo&&(o.accountNumber=i.accountInfo.accountNumber,o.pinCode=i.accountInfo.pin,o.firstName=i.accountInfo.firstName,o.lastName=i.accountInfo.lastName,o.accountValidation={},o.hasError=!1,o.errorMessage="")};o.validateUserName=function(){o.userName&&(u.validateUsername(o.userName,o.accountId).then(function(n){o.isAvailable=n.data==="NotAvailable"?!1:!0}),o.isEmailAddress=h(o.userName)?!0:!1)};o.validateAccountNumber=function(){o.isNumber=!isNaN(o.accountNumber)};o.resetUsername=function(){o.isAvailable=!0};o.resetEmailAddress=function(){o.invalidEmailAddressError=!1};o.validateEmailAddress=function(n){n&&f.validateEmailAddress(n).then(function(n){if(n.data==="Valid"||n.data==="Invalid; UnhandledException"){o.invalidEmailAddressError=!1;return}o.invalidEmailAddressError=!0;return})};o.validatePhoneNumber=function(){if(o.phoneId){var n=o.phoneId.replace(/\D/g,"");if(n.length!==10){s();o.errorMessage="Phone number must be 10 digits";return}e.isUSMobileNumber(o.phoneId.replace(/\D/g,"")).then(function(n){n.data.isValidNumber===!0?v(o.phoneId.replace(/\D/g,"")):s()},function(){s()})}};o.termschanged=function(){acceptedtermsandconditions=!acceptedtermsandconditions};o.valueChanged=function(){o.emailRequired=!1;o.passwordRequired=!1;o.passwordNotMatch=!1;o.confirmEmailError=!1;o.hasError=!1};o.userRegister=function(){var n,t,i;if(o.hasError=!1,!o.emailAddress){o.hasError=!0;o.errorMessage="Email address is required.";return}if(!o.confirmEmailAddress){o.hasError=!0;o.errorMessage="Confirm email address is required.";return}if(o.emailAddress!==o.confirmEmailAddress){o.hasError=!0;o.errorMessage="Emails does not match.";return}if(!o.password){o.hasError=!0;o.errorMessage="Password is required.";return}if(!o.confirmPassword){o.hasError=!0;o.errorMessage="Confirm password is required.";return}if(o.password&&o.confirmPassword&&o.password!==o.confirmPassword){o.hasError=!0;o.errorMessage="Passwords do not match.";return}if(n=p(o.password),!n){o.hasError=!0;o.errorMessage="Password does not meet requirments";return}if(!h(o.emailAddress)||!h(o.confirmEmailAddress)){o.hasError=!0;o.errorMessage="Email entered is not valid.";return}if(o.invalidMobileNumber){o.hasError=!0;o.errorMessage="Please enter a valid U.S. cell phone number.";return}if(o.invalidEmail){o.hasError=!0;o.errorMessage="Email entered is not valid.";return}if(!o.acceptedtermsandconditions){o.hasError=!0;o.errorMessage="Terms and conditions must be accepted.";return}if(!o.hasError){if(o.phoneId&&(t=o.phoneId.replace(/[^\w\s]/gi,""),o.phoneId=t),!o.accountNumber){o.hasError=!0;o.errorMessage="Account number is required.";return}i={email:o.emailAddress,password:o.password,firstName:o.firstName,lastName:o.lastName,phoneId:o.phoneId,accountNumber:o.accountNumber,accessLevel:1,userInfo:{icomsAccounts:null,authorizedUserIds:[],parentalControls:{movieRating:"NR",tvRating:"NR",canViewUnratedContent:"Y"},preferences:{billingPreferenceEmail:o.emailPreference,serviceRelatedPreferenceEmail:o.emailPreference,promotionalPreferenceEmail:o.emailPreference,billingPreferenceText:o.textPreference,serviceRelatedPreferenceText:o.textPreference,promotionalPreferenceText:o.textPreference}}};e.userRegisterByEmail(i).then(function(n){n.data===null?(o.hasError=!0,o.errorMessage="Error completing the request."):n.data.isPosted?(window.sessionStorage.accountInfo=n.data,window.sessionStorage.clear(),window.location.href="/registrationComplete"):(o.hasError=!0,o.errorMessage=n.data.error.message)})}};o.checkAvailability=function(){if(o.confirmEmailAddress&&o.emailAddress!==o.confirmEmailAddress){o.invalidEmail=!0;o.emailPreference=!1;o.hasError=!0;o.errorMessage="Email addresses do not match.";return}o.emailAddress&&(o.loading=!0,e.getUserByEmail(o.emailAddress).then(function(n){if(n&&n.data&&n.data.accountNumber!=null&&(n.data.accountNumber!==o.accountNumber||n.data.accessLevel!=4)){o.invalidEmail=!0;o.hasError=!0;o.errorMessage="Another Midco account is already using this email address. Please use a different email address or contact us for help.";o.emailPreference=!1;return}o.hasError=!1;h(o.emailAddress)?(o.emailPreference=!0,o.invalidEmail=!1):(o.emailPreference=!1,o.hasError=!0,o.errorMessage="Email entered is not valid.")},function(){o.hasError=!1;h(o.emailAddress)?(o.emailPreference=!0,o.invalidEmail=!1):(o.emailPreference=!1,o.hasError=!0,o.errorMessage="Email entered is not valid.")}))};o.fieldChange=function(){o.accountNumberRequired=!1;o.pinCodeRequired=!1;o.hasError=!1};o.nextStep=function(){if(!o.accountNumber){o.accountNumberRequired=!0;o.hasError=!0;o.errorMessage="Please enter your account number";return}if(!o.pinCode){o.pinCodeRequired=!0;o.hasError=!0;o.errorMessage="Please enter Midco-issued PIN or Last 4 of your SSN";return}if(o.isAccountRegistered){o.hasError=!0;o.errorMessage="This account is already registered.";return}o.loading=!0;o.pinCodeRequired=!1;o.accountNumberRequired=!1;e.searchProfiles(o.accountNumber).then(function(n){if(o.isAccountRegistered=_.some(n.data,function(n){return n.accessLevel!=4&&n.accessLevel!=5}),o.isAccountRegistered){o.hasError=!0;o.errorMessage="Account is already registered to another user.";o.loading=!1;r(function(){window.location.reload()},2e3);return}e.validateAccount(o.accountNumber,o.pinCode).then(function(n){o.accountValidation=n.data;o.loading=!1;o.accountValidation.isAccountValid&&o.accountValidation.isPinValid?(i.accountInfo=n.data,i.accountVerified=!0,window.location.href="/RegistrationStep2",o.validateAccount={}):(o.hasError=!0,o.errorMessage=o.accountValidation.message)})})};o.formatPhoneId=function(){o.phoneId=o.phoneId.replace(/\D/g,"").replace(/(\d{1,3})(\d{1,3})?(\d{1,4})?/g,function(n,t,i,r){return r?`(${t}) ${i}-${r}`:i?`(${t}) ${i}`:t?`(${t})`:void 0})};o.validatePassword=function(){o.password.length<8?(o.hasError=!0,o.errorMessage="Password should be have a minimum of 8 characters."):c(o.password)?l(o.password)?a(o.password)||(o.hasError=!0,o.errorMessage="Password should should contain at least 1 uppercase alpha."):(o.hasError=!0,o.errorMessage="Password should should contain at least 1 lowercase alpha."):(o.hasError=!0,o.errorMessage="Password should should contain at least 1 number.")};o.checkRegistration=function(){e.searchProfiles(o.accountNumber).then(function(n){o.isAccountRegistered=n.data.length>0})}}function emailVerifyService(n){function t(t){if(t)return n.get("/api/emailverify/get?emailAddress="+t)}function i(t){if(t)return n.get("/api/emailverify/isEmailAddresinUse?emailAddress="+t)}return{validateEmailAddress:t,isEmailAddressinUse:i}}function identityService(n,t,i){function r(t){return n.post(i+"identity/registeruserbyemail",t)}function u(t){return n.get(i+"identity/IsEmailRegistered?emailAddress="+t)}function f(t){return n.get("/api/email/encryptionstatus?acct="+t)}function e(t){return n.get(i+"identity/IsPhoneInUse?phoneNumber="+t)}function o(t,r){return n.get(i+"identity/GetCustomerAccountInfo?accountNumber="+t+"&pinCode="+r)}function s(t){return n.put(i+"identity/UpdateEmail/",t)}function h(t){return n.put(i+"identity/UpdatePhone/",t)}function c(t){return n.put(i+"identity/UpdatePreferences/",t)}function l(t){return n.post(i+"identity/ResetPassword/",t)}function a(t){return n.post(i+"identity/AddAuthorizedUser",t)}function v(t){return n.put(i+"identity/UpdateUser",t)}function y(t){return n.put(i+"identity/AddIcomsAccount",t)}function p(t){return n.get(i+"identity/getUserByUid?uid="+t)}function w(t){return n.get(i+"identity/SearchProfiles?accountNumber="+t)}function b(t){return n.get(i+"identity/IsValidMobileNumber?phoneNumber="+t)}function k(r){if(r){var u=t.defer(),f=angular.element.param({phoneNumber:r});return n.get(i+"users/getUserByPhone?"+f).then(function(n){u.resolve(n)},function(n){u.reject(n)}),u.promise}}function d(r){if(r){var u=t.defer(),f=angular.element.param({email:r});return n.get(i+"users/getUserByEmail?"+f).then(function(n){u.resolve(n)},function(n){u.reject(n)}),u.promise}}function g(r){if(r){var u=t.defer(),f=angular.element.param({phoneNumber:r});return n.get(i+"users/isValidUSMobileNumber?"+f).then(function(n){u.resolve(n)},function(n){u.reject(n)}),u.promise}}function nt(t){return n.delete(i+"identity/deleteUser/"+t)}function tt(t){return n.delete(i+"identity/deletePhone?uid="+t)}function it(){return n.get("/data/parental_controls.json")}function rt(t){return n.get(i+"identity/searchProfiles?accountNumber="+t)}return{userRegisterByEmail:r,isEmailRegistered:u,validateAccount:o,isPhoneInUse:e,updateEmailAddress:s,updatePhoneNumber:h,updatePreferences:c,resetPassword:l,addAuthorizedUser:a,updateUser:v,addIcomsAccount:y,getUserByUid:p,deleteUser:nt,getParentalControls:it,searchProfiles:rt,isUSMobileNumber:g,getUserByPhone:k,getUserByEmail:d,getUsersByAccount:w,isValidMobileNumber:b,deletePhone:tt,checkEmailEncryptionStatus:f}}angular.module("midcoComm").factory("emailService",["$http","api",function(n,t){"use strict";function i(i,r,u,f,e){var o={From:i,To:r,Subject:u,Body:f};return n.post(t.email.sendRawEmail(e),o)}function r(t,i,r,u){return n.post("/api/email/postnewemail?acct="+t+"&email="+i+"&display="+r+"&password="+u)}function u(t,i){var r={To:t,Subject:"Chat Transcript",Body:i};return n.post("/api/email/sendchatemailtranscript",r)}function f(t,i){var r=angular.element.param({username:t,accountNumber:i});return n.get("/api/users/getusernameavailability?"+r)}return{sendRawEmail:i,addMidcoNetEmail:r,validateUsername:f,sendChatEmailTranscript:u}}]);angular.module("midcoComm").controller("registrationController",registrationController);registrationController.$inject=["$scope","$rootScope","$sessionStorage","$timeout","emailService","emailVerifyService","identityService"];angular.module("midcoComm").factory("emailVerifyService",emailVerifyService);emailVerifyService.$inject=["$http","$q"];angular.module("midcoComm").factory("identityService",identityService);identityService.$inject=["$http","$q","webapi"];window.onload=function(){for(var t,i,r,u,f,e=document.querySelectorAll("#mc-email input"),n=0;n<e.length;n++)e[n].addEventListener("keyup",function(n){var i=n.target,t=n.target.parentNode,r=t.querySelectorAll(".error-message")[0];/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(i.value)?(t.parentNode.classList.remove("error"),t.parentNode.classList.add("valid")):(t.parentNode.classList.add("error"),t.parentNode.classList.remove("valid"))});for(t=document.querySelectorAll("#mc-password input"),n=0;n<t.length;n++)t[n].addEventListener("keyup",function(n){var i=n.target,t=n.target.parentNode,u=!1,h=t.querySelectorAll(".length")[0],f,e,o,s;i.value.length<8||i.value.length>32?(h.style.color="red",u=!0):h.style.color="green";f=t.querySelectorAll(".capital")[0];/(.*[A-Z].*)/g.test(i.value)?f.style.color="green":(f.style.color="red",u=!0);e=t.querySelectorAll(".lower")[0];/(.*[a-z].*)/g.test(i.value)?e.style.color="green":(e.style.color="red",u=!0);o=t.querySelectorAll(".number")[0];/(.*[\d].*)/g.test(i.value)?o.style.color="green":(o.style.color="red",u=!0);u?(t.parentNode.classList.add("error"),t.parentNode.classList.remove("valid")):(t.parentNode.classList.remove("error"),t.parentNode.classList.add("valid"));s=document.querySelectorAll("#mc-password-confirm input")[0];s&&r(s)});for(i=document.querySelectorAll("#mc-password-confirm input"),n=0;n<i.length;n++)i[n].addEventListener("keyup",function(n){var t=n.target;r(t)});for(r=function(n){var i=n.parentNode,r=document.querySelectorAll("#mc-password > div > input")[0].value,t=i.querySelectorAll(".error-message")[0];n.value!==r?(t.style.color="red",t.style.display="block"):t.style.display="none"},u=document.querySelectorAll("#network-name input"),n=0;n<u.length;n++)u[n].addEventListener("keyup",function(n){var t=n.target,r=n.target.parentNode,u=!1,i=r.querySelectorAll(".length")[0];t.value.length<1||t.value.length>32?(i.style.color="red",u=!0):i.style.color="green"});for(f=document.querySelectorAll("#network-password input"),n=0;n<f.length;n++)f[n].addEventListener("keyup",function(n){var t=n.target,r=n.target.parentNode,u=!1,i=r.querySelectorAll(".length")[0];t.value.length<8||t.value.length>63?(i.style.color="red",u=!0):i.style.color="green"})}