The information provided matches an existing ' +\n\t\t\t\t\t\t\t\t\t\t'account. Please follow this link to log in. ' +\n\t\t\t\t\t\t\t\t\t\t'You will be redirected to a new screen.
',\n\t\t\t\t\t\t\t\t\t\tmodalTitle: 'Account Found'\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages()\n\t\t\t\t\t\t\t\t\t\t.COB_SUBJECT_CHANGE_WELCOME_VIEW,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tsetActiveSlide: 'confirmCompanySection',\n\t\t\t\t\t\t\t\t\t\tcarrierList: response.data.carrierList,\n\t\t\t\t\t\t\t\t\t\tnumberText: 'Number entered:',\n\t\t\t\t\t\t\t\t\t\tsearchNumber: scope.m.province.key + '/' + scope.m.datNumber,\n\t\t\t\t\t\t\t\t\t\tmodalMessage: '',\n\t\t\t\t\t\t\t\t\t\tmodalTitle: ''\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tscope.m.datNumber = '';\n\t\t\t\t\t\t\t\tscope.m.province = '';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'IntrastateCodeNotFound':\n\t\t\t\t\t\t\tscope.m\n\t\t\t\t\t\t\t\t.showNotFound =\n 'No match found in the DAT Registry. To discuss how to include your business in the DAT Registry, see the chat link below the submit button, or call 800-551-8836.';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t})\n\t\t\t\t\t.catch(function(e) {\n\t\t\t\t\t\tconsole.log(e);\n\t\t\t\t\t})\n\t\t\t\t\t.finally(function() {\n\t\t\t\t\t\tobserverService\n\t\t\t\t\t\t\t.sendMessageToSubject(scope,\n\t\t\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_DONE);\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction openNiceinContactAgentChat() {\n\t\t\tvar niceInContactBaseUrl = 'https://home-c37.nice-incontact.com/inContact/ChatClient/ChatClient.aspx?poc={0}&bu={1}&P1={2}&P2={3}; {4}&P3={5}&P4={6}';\n\t\t\tvar pointOfContact = '0893c22c-11b6-4b47-943f-649d809655d7';\n\t\t\tvar businessUnit = '4599687';\n\t\t\tvar niceInContactChatClient = niceInContactBaseUrl\n\t\t\t\t.replace('{0}', pointOfContact)\n\t\t\t\t.replace('{1}', businessUnit)\n\t\t\t\t.replace('{2}', 'DAT OnBoard Guest')\n\t\t\t\t.replace('{3}', 'guest-user')\n\t\t\t\t.replace('{4}', 'DOBGuest@dat.com')\n\t\t\t\t.replace('{5}', '')\n\t\t\t\t.replace('{6}', $window.location.href);\n\n\t\t\tconsole.log(niceInContactChatClient);\n\n\t\t\tvar baseWindowOptions = 'location=no, menubar=no, status=no, resizable=no, height={0}, width={1}, top={2}, left={3}';\n\t\t\tvar width = 410;\n\t\t\tvar height = 700;\n\n\t\t\tvar top = $window.outerHeight / 2 + $window.screenY - (height / 2);\n\t\t\tvar left = $window.outerWidth / 2 + $window.screenX - (width / 2);\n\n\t\t\tvar windowOptions = baseWindowOptions\n\t\t\t\t.replace('{0}', height)\n\t\t\t\t.replace('{1}', width)\n\t\t\t\t.replace('{2}', top)\n\t\t\t\t.replace('{3}', left);\n\n\t\t\tconsole.log(windowOptions);\n\t\t\t$window.open(niceInContactChatClient, 'niceInContactChat', windowOptions);\n\t\t}\n\n\t\treturn;\n\t}\n})();\n","'use strict';\n\n(function() {\n\tangular.module('onboarding.common')\n\t\t.directive('cobUrlNotFound', cobUrlNotFound);\n\n\tfunction cobUrlNotFound() {\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {},\n\t\t\ttemplateUrl: '/app/common/welcome/cobUrlNotFound.html',\n\t\t\treplace: true,\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction() {}\n\n})();\n","'use strict';\n\n(function () {\n\tangular.module('onboarding.common')\n\t\t.directive('cobConfirmCompany', cobConfirmCompany);\n\n\tcobConfirmCompany.$inject = [\n\t\t'$log', '$timeout', '$state', 'subjectObserverMessagesService', 'observerService', 'sessionService',\n\t\t'carrierRegistrationService'\n\t];\n\n\tvar $log,\n\t\t$timeout,\n\t\t$state,\n\t\tsubjectObserverMessagesService,\n\t\tobserverService,\n\t\tsessionService,\n\t\tsubjectMessages,\n\t\tobserverMessages,\n\t\tcarrierRegistrationService;\n\n\tfunction cobConfirmCompany(_$log_,\n\t\t_$timeout_,\n\t\t_$state_,\n\t\t_subjectObserverMessagesService_,\n\t\t_observerService_,\n\t\t_sessionService_,\n\t\t_carrierRegistrationService_) {\n\t\t$log = _$log_;\n\t\t$timeout = _$timeout_;\n\t\t$state = _$state_;\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tsessionService = _sessionService_;\n\t\tcarrierRegistrationService = _carrierRegistrationService_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {\n\t\t\t\tvisible: '=',\n\t\t\t\tcarrierList: '=',\n\t\t\t\tnumberText: '=',\n\t\t\t\tsearchNumber: '='\n\t\t\t},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/common/welcome/confirmCompany.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\n\t\t\tscope.m = {\n\t\t\t\tcarrier: {},\n\t\t\t\terrorMessage: ''\n\t\t\t};\n\n\t\t\tscope.carriers = {};\n\t\t\tscope.displayCarriers = [];\n\n\t\t\tscope.setActiveSlide = setActiveSlide;\n\t\t\tscope.submitClick = submitClick;\n\n\t\t\tregisterObserverHandlers();\n\n\t\t\tscope.$watch('carrierList', parseCarrierList);\n\t\t}\n\n\t\tfunction parseCarrierList(newList, oldList) {\n\t\t\tscope.displayCarriers = [];\n\t\t\tscope.carriers = {};\n\n\t\t\tif (!newList)\n\t\t\t\treturn;\n\n\t\t\tvar dot = '';\n\t\t\tfor (var i = 0; i < newList.length; i++) {\n\t\t\t\tdot = newList[i].dotNumber.toString();\n\t\t\t\tif (scope.carriers[dot]) {\n\t\t\t\t\tscope.carriers[dot].push(newList[i]);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tscope.carriers[dot] = [(newList[i])];\n\t\t\t\t\tscope.displayCarriers.push(newList[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction registerObserverHandlers() {\n\t\t}\n\n\t\tfunction setActiveSlide(slide) {\n\t\t\tscope.m.errorMessage = '';\n\t\t\tscope.m.carrier = {},\n\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_CHANGE_WELCOME_VIEW,\n\t\t\t\t{\n\t\t\t\t\tsetActiveSlide: slide\n\t\t\t\t});\n\t\t}\n\n\t\tfunction submitClick() {\n\t\t\tif (scope.displayCarriers.length === 1) {\n\t\t\t\tscope.m.carrier = scope.displayCarriers[0];\n\t\t\t}\n\t\t\tif (!scope.m.carrier) {\n\t\t\t\tscope.m.errorMessage = 'You must choose from the list to continue.';\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (scope.carriers[scope.m.carrier.dotNumber].length > 1) {\n\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages()\n\t\t\t\t\t\t.COB_SUBJECT_CHANGE_WELCOME_VIEW,\n\t\t\t\t\t{\n\t\t\t\t\t\tsetActiveSlide: 'multipleCarriersSection',\n\t\t\t\t\t\tcarrierList: scope.carriers[scope.m.carrier.dotNumber],\n\t\t\t\t\t\tmodalMessage: '',\n\t\t\t\t\t\tmodalTitle: ''\n\t\t\t\t\t});\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tscope.m.errorMessage = '';\n\n\t\t\t\tcarrierRegistrationService.setCarrier(scope.carriers[scope.m.carrier.dotNumber][0]);\n\t\t\t\t$state.transitionTo('registration');\n\t\t\t}\n\n\t\t}\n\t}\n\n})();\n","'use strict';\n\n(function() {\n\tangular.module('onboarding.common')\n\t\t.directive('cobDotValidation', cobDotValidation);\n\n\tcobDotValidation.$inject = [\n\t\t'$log', '$timeout', '$state', 'subjectObserverMessagesService', 'observerService', 'sessionService',\n\t\t'carrierRegistrationService', 'authenticationService'\n\t];\n\n\tvar $log,\n\t\t$timeout,\n\t\t$state,\n\t\tsubjectObserverMessagesService,\n\t\tobserverService,\n\t\tsessionService,\n\t\tsubjectMessages,\n\t\tobserverMessages,\n\t\tcarrierRegistrationService,\n\t\tauthenticationService;\n\n\tfunction cobDotValidation(_$log_,\n\t\t_$timeout_,\n\t\t_$state_,\n\t\t_subjectObserverMessagesService_,\n\t\t_observerService_,\n\t\t_sessionService_,\n\t\t_carrierRegistrationService_,\n\t\t_authenticationService_) {\n\t\t$log = _$log_;\n\t\t$timeout = _$timeout_;\n\t\t$state = _$state_;\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tsessionService = _sessionService_;\n\t\tcarrierRegistrationService = _carrierRegistrationService_;\n\t\tauthenticationService = _authenticationService_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {\n\t\t\t\tvisible: '='\n\t\t\t},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/common/welcome/dotValidation.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\n\t\t\tscope.sessionService = sessionService;\n\t\t\tscope.m = {\n\t\t\t\tdotNumber: '',\n\t\t\t\tvalidationMessage: ''\n\t\t\t};\n\n\t\t\tscope.validateDot = validateDot;\n\t\t\tscope.setActiveSlide = setActiveSlide;\n\t\t\tscope.dotKeyPress = dotKeyPress;\n\t\t\tscope.authenticationService = authenticationService;\n\n\t\t\tregisterObserverHandlers();\n\n\t\t}\n\n\t\tfunction registerObserverHandlers() {\n\t\t}\n\n\t\tfunction setActiveSlide(slide) {\n\t\t\tscope.m.validationMessage = '';\n\t\t\tscope.m.dotNumber = '';\n\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_CHANGE_WELCOME_VIEW,\n\t\t\t\t{\n\t\t\t\t\tsetActiveSlide: slide,\n\t\t\t\t\tmodalMessage: '',\n\t\t\t\t\tmodalTitle: ''\n\t\t\t\t});\n\t\t}\n\n\t\tfunction validateDot() {\n\t\t\tscope.m.validationMessage = '';\n\n\t\t\tif (scope.m.dotNumber.length === 0) {\n\t\t\t\tscope.m.validationMessage = 'Valid input is required.';\n\t\t\t} else if (/^[0-9]{1,10}$/.test(scope.m.dotNumber) === false) {\n\t\t\t\tscope.m.validationMessage = 'The number provided does not match a valid DOT number. Please try again.';\n\t\t\t} else {\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tobserverService\n\t\t\t\t\t\t.sendMessageToSubject(scope,\n\t\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_WAITING);\n\t\t\t\t},\n\t\t\t\t1);\n\n\t\t\t\tcarrierRegistrationService.validateDotNumber(scope.m.dotNumber)\n\t\t\t\t\t.then(function(response) {\n\t\t\t\t\t\tswitch (response.data.validationInfo) {\n\t\t\t\t\t\tcase 'Authorized':\n\t\t\t\t\t\t\tif (response.data.isMexico) {\n\t\t\t\t\t\t\t\tscope.m\n\t\t\t\t\t\t\t\t\t.validationMessage =\n 'We are sorry, Mexico-based carriers are not supported by DAT OnBoard.';\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (response.data.carrierId === -1) {\n\n\t\t\t\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages()\n\t\t\t\t\t\t\t\t\t\t.COB_SUBJECT_CHANGE_WELCOME_VIEW,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tsetActiveSlide: 'confirmCompanySection',\n\t\t\t\t\t\t\t\t\t\tcarrierList: response.data.carrierList,\n\t\t\t\t\t\t\t\t\t\tnumberText: 'Number entered: ',\n\t\t\t\t\t\t\t\t\t\tsearchNumber: scope.m.dotNumber,\n\t\t\t\t\t\t\t\t\t\tmodalMessage: '',\n\t\t\t\t\t\t\t\t\t\tmodalTitle: ''\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tscope.m.validationMessage = '';\n\t\t\t\t\t\t\t\tscope.m.dotNumber = '';\n\t\t\t\t\t\t\t} else //existing\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_CHANGE_WELCOME_VIEW,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tmodalMessage:\n\t\t\t\t\t\t\t\t\t\t'The information provided matches an existing ' +\n\t\t\t\t\t\t\t\t\t\t'account. Please follow this link to log in. ' +\n\t\t\t\t\t\t\t\t\t\t'You will be redirected to a new screen.
',\n\t\t\t\t\t\t\t\t\t\tmodalTitle: 'Account Found'\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'DOTNotFound':\n\t\t\t\t\t\t\tscope.m\n\t\t\t\t\t\t\t\t.validationMessage =\n 'The number provided does not match a valid DOT number. Please try again.';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'DOTInactive':\n\t\t\t\t\t\t\tif (response.data.isMexico) {\n\t\t\t\t\t\t\t\tscope.m\n\t\t\t\t\t\t\t\t\t.validationMessage =\n 'We are sorry, Mexico-based carriers are not supported by DAT OnBoard.';\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tscope.m\n\t\t\t\t\t\t\t\t.validationMessage =\n 'The DOT number provided is not active. Only active carriers can register with DAT OnBoard.';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'NoAuthority':\n\t\t\t\t\t\t\tif (response.data.isMexico) {\n\t\t\t\t\t\t\t\tscope.m\n\t\t\t\t\t\t\t\t\t.validationMessage =\n 'We are sorry, Mexico-based carriers are not supported by DAT OnBoard.';\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tscope.m\n\t\t\t\t\t\t\t\t.validationMessage =\n 'The DOT number provided belongs to a carrier with no active authority. Only carriers with active authority can register with DAT OnBoard.';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch(function(e) {\n\t\t\t\t\t\t$log.error(e);\n\t\t\t\t\t})\n\t\t\t\t\t.finally(function() {\n\t\t\t\t\t\tobserverService\n\t\t\t\t\t\t\t.sendMessageToSubject(scope,\n\t\t\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_DONE);\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tfunction dotKeyPress(event) {\n\t\t\tvar charCode = (event.which) ? event.which : event.keyCode;\n\t\t\tif (charCode === 13) { // on Enter\n\t\t\t\tvalidateDot();\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tswitch (charCode) {\n\t\t\tcase 8: //backspace\n\t\t\tcase 35: //end\n\t\t\tcase 36: //home\n\t\t\tcase 37: //left arrow\n\t\t\tcase 39: //right arrow\n\t\t\tcase 46: //delete\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar key = String.fromCharCode(charCode);\n\n\t\t\tif (!/^[0-9]$/.test(key)) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\t}\n\n})();\n","'use strict';\n\n(function() {\n\tangular.module('onboarding.common')\n\t\t.directive('cobIntrastateValidation', cobIntrastateValidation);\n\n\tcobIntrastateValidation.$inject = [\n\t\t'subjectObserverMessagesService', 'observerService', 'carrierRegistrationService', '$state', 'authenticationService'\n\t];\n\n\tvar subjectObserverMessagesService,\n\t\tobserverService,\n\t\tcarrierRegistrationService,\n\t\tsubjectMessages,\n\t\tobserverMessages,\n\t\t$state,\n\t\tauthenticationService;\n\n\tfunction cobIntrastateValidation(_subjectObserverMessagesService_,\n\t\t_observerService_,\n\t\t_carrierRegistrationService_,\n\t\t_$state_,\n\t\t_authenticationService) {\n\t\tcarrierRegistrationService = _carrierRegistrationService_;\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\t$state = _$state_;\n\t\tauthenticationService = _authenticationService;\n\n\t\treturn {\n\t\t\tscope: {\n\t\t\t\tvisible: '='\n\t\t\t},\n\t\t\ttemplateUrl: '/app/common/welcome/intrastateValidation.html',\n\t\t\treplace: true,\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\n\t\t\tscope\n\t\t\t\t.m = {\n\t\t\t\t\terrors: [],\n\t\t\t\t\tintrastateCodeError: '',\n\t\t\t\t\tshowErrorModal: false,\n\t\t\t\t\tintrastateStateError: '',\n\t\t\t\t\tintrastateNumber: '',\n\t\t\t\t\tselectedState: '',\n\t\t\t\t\tstateList: [\n\t\t\t\t\t\t{ key: 'AL', value: 'Alabama' },\n\t\t\t\t\t\t{ key: 'AK', value: 'Alaska' },\n\t\t\t\t\t\t{ key: 'AS', value: 'American Samoa' },\n\t\t\t\t\t\t{ key: 'AZ', value: 'Arizona' },\n\t\t\t\t\t\t{ key: 'AR', value: 'Arkansas' },\n\t\t\t\t\t\t{ key: 'CA', value: 'California' },\n\t\t\t\t\t\t{ key: 'CO', value: 'Colorado' },\n\t\t\t\t\t\t{ key: 'CT', value: 'Connecticut' },\n\t\t\t\t\t\t{ key: 'DE', value: 'Delaware' },\n\t\t\t\t\t\t{ key: 'DC', value: 'District of Columbia' },\n\t\t\t\t\t\t{ key: 'FL', value: 'Florida' },\n\t\t\t\t\t\t{ key: 'GA', value: 'Georgia' },\n\t\t\t\t\t\t{ key: 'GU', value: 'Guam' },\n\t\t\t\t\t\t{ key: 'HI', value: 'Hawaii' },\n\t\t\t\t\t\t{ key: 'ID', value: 'Idaho' },\n\t\t\t\t\t\t{ key: 'IL', value: 'Illinois' },\n\t\t\t\t\t\t{ key: 'IN', value: 'Indiana' },\n\t\t\t\t\t\t{ key: 'IA', value: 'Iowa' },\n\t\t\t\t\t\t{ key: 'KS', value: 'Kansas' },\n\t\t\t\t\t\t{ key: 'KY', value: 'Kentucky' },\n\t\t\t\t\t\t{ key: 'LA', value: 'Louisiana' },\n\t\t\t\t\t\t{ key: 'ME', value: 'Maine' },\n\t\t\t\t\t\t{ key: 'MD', value: 'Maryland' },\n\t\t\t\t\t\t{ key: 'MA', value: 'Massachusetts' },\n\t\t\t\t\t\t{ key: 'MI', value: 'Michigan' },\n\t\t\t\t\t\t{ key: 'MN', value: 'Minnesota' },\n\t\t\t\t\t\t{ key: 'MS', value: 'Mississippi' },\n\t\t\t\t\t\t{ key: 'MO', value: 'Missouri' },\n\t\t\t\t\t\t{ key: 'MT', value: 'Montana' },\n\t\t\t\t\t\t{ key: 'NE', value: 'Nebraska' },\n\t\t\t\t\t\t{ key: 'NV', value: 'Nevada' },\n\t\t\t\t\t\t{ key: 'NH', value: 'New Hampshire' },\n\t\t\t\t\t\t{ key: 'NJ', value: 'New Jersey' },\n\t\t\t\t\t\t{ key: 'NM', value: 'New Mexico' },\n\t\t\t\t\t\t{ key: 'NY', value: 'New York' },\n\t\t\t\t\t\t{ key: 'NC', value: 'North Carolina' },\n\t\t\t\t\t\t{ key: 'ND', value: 'North Dakota' },\n\t\t\t\t\t\t{ key: 'OH', value: 'Ohio' },\n\t\t\t\t\t\t{ key: 'OK', value: 'Oklahoma' },\n\t\t\t\t\t\t{ key: 'OR', value: 'Oregon' },\n\t\t\t\t\t\t{ key: 'PA', value: 'Pennsylvania' },\n\t\t\t\t\t\t{ key: 'PR', value: 'Puerto Rico' },\n\t\t\t\t\t\t{ key: 'RI', value: 'Rhode Island' },\n\t\t\t\t\t\t{ key: 'SC', value: 'South Carolina' },\n\t\t\t\t\t\t{ key: 'SD', value: 'South Dakota' },\n\t\t\t\t\t\t{ key: 'TN', value: 'Tennessee' },\n\t\t\t\t\t\t{ key: 'TX', value: 'Texas' },\n\t\t\t\t\t\t{ key: 'UT', value: 'Utah' },\n\t\t\t\t\t\t{ key: 'VT', value: 'Vermont' },\n\t\t\t\t\t\t{ key: 'VA', value: 'Virginia' },\n\t\t\t\t\t\t{ key: 'VI', value: 'Virgin Islands' },\n\t\t\t\t\t\t{ key: 'WA', value: 'Washington' },\n\t\t\t\t\t\t{ key: 'WV', value: 'West Virginia' },\n\t\t\t\t\t\t{ key: 'WI', value: 'Wisconsin' },\n\t\t\t\t\t\t{ key: 'WY', value: 'Wyoming' },\n\t\t\t\t\t]\n\t\t\t\t};\n\n\t\t\tscope.validateIntrastateCode = validateIntrastateCode;\n\t\t\tscope.navigateToSection = navigateToSection;\n\t\t}\n\n\t\tfunction validateIntrastateCode() {\n\t\t\tif (validateInput()) {\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tobserverService\n\t\t\t\t\t\t.sendMessageToSubject(scope,\n\t\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_WAITING);\n\t\t\t\t},\n\t\t\t\t1);\n\n\t\t\t\tcarrierRegistrationService.validateIntrastateCode(scope.m.selectedState.key, scope.m.intrastateNumber)\n\t\t\t\t\t.then(function(response) {\n\t\t\t\t\t\tif (response.data.validationInfo === 'Authorized' &&\n response.data.carrierList !== null) {\n\t\t\t\t\t\t\tnavigateToSection(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tsetActiveSlide: 'confirmCompanySection',\n\t\t\t\t\t\t\t\t\tcarrierList: response.data.carrierList,\n\t\t\t\t\t\t\t\t\tnumberText: 'Number entered:',\n\t\t\t\t\t\t\t\t\tsearchNumber: scope.m.selectedState.key + '/' + scope.m.intrastateNumber,\n\t\t\t\t\t\t\t\t\tmodalMessage: '',\n\t\t\t\t\t\t\t\t\tmodalTitle: ''\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (response.data.validationInfo === 'IntrastateCodeNotFound') {\n\t\t\t\t\t\t\tscope.m.showNotFound = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tscope.m.showNotFound = false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (response.data.validationInfo === 'Authorized' && response.data.carrierId !== -1) {\n\t\t\t\t\t\t\tnavigateToSection(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmodalMessage:\n\t\t\t\t\t\t\t\t\t'The information provided matches an existing ' +\n\t\t\t\t\t\t\t\t\t'account. Please follow this link to log in. ' +\n\t\t\t\t\t\t\t\t\t'You will be redirected to a new screen.
',\n\t\t\t\t\t\t\t\t\tmodalTitle: 'Account Found'\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t})\n\t\t\t\t\t.catch(function(e) {\n\t\t\t\t\t\tconsole.log(e);\n\t\t\t\t\t})\n\t\t\t\t\t.finally(function() {\n\t\t\t\t\t\tobserverService\n\t\t\t\t\t\t\t.sendMessageToSubject(scope,\n\t\t\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_DONE);\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction validateInput() {\n\t\t\tscope.m.intrastateCodeError = '';\n\t\t\tscope.m.intrastateStateError = '';\n\n\t\t\tif (scope.m.selectedState === '') {\n\t\t\t\tscope.m.intrastateStateError = 'Valid input is required.';\n\t\t\t} else {\n\t\t\t\tscope.m.intrastateStateError = '';\n\t\t\t}\n\n\t\t\tif (scope.m.intrastateNumber.length === 0) {\n\t\t\t\tscope.m.intrastateCodeError = 'Valid input is required.';\n\t\t\t} else {\n\t\t\t\tscope.m.intrastateCodeError = '';\n\t\t\t}\n\n\t\t\treturn (scope.m.intrastateStateError === '' && scope.m.intrastateCodeError === '');\n\t\t}\n\n\t\tfunction navigateToSection(sectionObject) {\n\n\t\t\tscope.m.errors = [];\n\t\t\tscope.m.showNotFound = '';\n\t\t\tscope.m.intrastateCodeError = '';\n\t\t\tscope.m.showErrorModal = false;\n\t\t\tscope.m.intrastateStateError = '';\n\n\t\t\tscope.m.intrastateNumber = '';\n\t\t\tscope.m.selectedState = '';\n\n\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_CHANGE_WELCOME_VIEW,\n\t\t\t\tsectionObject);\n\t\t}\n\t}\n\n})();\n","'use strict';\n\n(function() {\n\tangular.module('onboarding.common')\n\t\t.directive('cobMultipleCarriers', cobMultipleCarriers);\n\n\tcobMultipleCarriers.$inject = [\n\t\t'$log', '$timeout', '$state', 'subjectObserverMessagesService', 'observerService', 'sessionService',\n\t\t'carrierRegistrationService'\n\t];\n\n\tvar $log,\n\t\t$timeout,\n\t\t$state,\n\t\tsubjectObserverMessagesService,\n\t\tobserverService,\n\t\tsessionService,\n\t\tsubjectMessages,\n\t\tobserverMessages,\n\t\tcarrierRegistrationService;\n\n\tfunction cobMultipleCarriers(_$log_,\n\t\t_$timeout_,\n\t\t_$state_,\n\t\t_subjectObserverMessagesService_,\n\t\t_observerService_,\n\t\t_sessionService_,\n\t\t_carrierRegistrationService_) {\n\t\t$log = _$log_;\n\t\t$timeout = _$timeout_;\n\t\t$state = _$state_;\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tsessionService = _sessionService_;\n\t\tcarrierRegistrationService = _carrierRegistrationService_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {\n\t\t\t\tvisible: '=',\n\t\t\t\tcarrierList: '='\n\t\t\t},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/common/welcome/multipleCarriers.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\n\t\t\tscope.m = {\n\t\t\t\tcarrier: {},\n\t\t\t\terrorMessage: ''\n\t\t\t};\n\n\t\t\tscope.setActiveSlide = setActiveSlide;\n\t\t\tscope.submitClick = submitClick;\n\t\t\tscope.backToDot = backToDot;\n\t\t}\n\n\t\tfunction setActiveSlide(slide) {\n\t\t\tscope.m.errorMessage = '';\n\t\t\tscope.m.carrier = {},\n\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_CHANGE_WELCOME_VIEW,\n\t\t\t\t{\n\t\t\t\t\tsetActiveSlide: slide\n\t\t\t\t});\n\t\t}\n\n\t\tfunction submitClick() {\n\t\t\tif (!scope.m.carrier.tCoreId) {\n\t\t\t\tscope.m.errorMessage = 'You must choose from the list to continue.';\n\t\t\t} else {\n\t\t\t\tscope.m.errorMessage = '';\n\n\t\t\t\tcarrierRegistrationService.setCarrier(scope.m.carrier);\n\t\t\t\t$state.transitionTo('registration');\n\t\t\t}\n\t\t}\n\n\t\tfunction backToDot() {\n\t\t\tscope.m.errorMessage = '';\n\t\t\tsetActiveSlide('dotNumberSection');\n\t\t}\n\t}\n\n})();\n","'use strict';\n\n(function() {\n\tangular.module('onboarding.common')\n\t\t.directive('cobSiteCore', cobSiteCore);\n\n\tcobSiteCore.$inject = [\n\t\t'subjectObserverMessagesService',\n\t\t'$window'\n\t];\n\n\tvar subjectObserverMessagesService,\n\t\tsubjectMessages,\n\t\tobserverMessages,\n\t\t$window;\n\n\tfunction cobSiteCore(_subjectObserverMessagesService_, _$window_) {\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\t$window = _$window_;\n\n\t\treturn {\n\t\t\tscope: {},\n\t\t\ttemplateUrl: '/app/common/welcome/siteCore.html',\n\t\t\treplace: true,\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\n\t\t\tscope.openLiveChat = openLiveChat;\n\t\t}\n\n\n\t\tfunction openLiveChat() {\n\t\t\tvar niceInContactBaseUrl = 'https://home-c37.nice-incontact.com/inContact/ChatClient/ChatClient.aspx?poc={0}&bu={1}&P1={2}&P2={3}; {4}&P3={5}&P4={6}';\n\t\t\tvar pointOfContact = '0893c22c-11b6-4b47-943f-649d809655d7';\n\t\t\tvar businessUnit = '4599687';\n\t\t\tvar niceInContactChatClient = niceInContactBaseUrl\n\t\t\t\t.replace('{0}', pointOfContact)\n\t\t\t\t.replace('{1}', businessUnit)\n\t\t\t\t.replace('{2}', 'DAT OnBoard Guest')\n\t\t\t\t.replace('{3}', 'guest-user')\n\t\t\t\t.replace('{4}', 'DOBGuest@dat.com')\n\t\t\t\t.replace('{5}', '')\n\t\t\t\t.replace('{6}', $window.location.href);\n\n\t\t\tvar baseWindowOptions = 'location=no, menubar=no, status=no, resizable=no, height={0}, width={1}, top={2}, left={3}';\n\t\t\tvar width = 410;\n\t\t\tvar height = 700;\n\n\t\t\tvar top = $window.outerHeight / 2 + $window.screenY - (height / 2);\n\t\t\tvar left = $window.outerWidth / 2 + $window.screenX - (width / 2);\n\n\t\t\tvar windowOptions = baseWindowOptions\n\t\t\t\t.replace('{0}', height)\n\t\t\t\t.replace('{1}', width)\n\t\t\t\t.replace('{2}', top)\n\t\t\t\t.replace('{3}', left);\n\n\t\t\t$window.open(niceInContactChatClient, 'niceInContactChat', windowOptions);\n\t\t}\n\t}\n})();\n","'use strict';\n\n(function() {\n\tangular.module('onboarding.common')\n\t\t.directive('cobWelcomePage', cobWelcomePage);\n\n\tcobWelcomePage.$inject = [\n\t\t'$rootScope', '$state', '$stateParams', '$log', '$timeout', '$location', 'subjectObserverMessagesService', 'observerService',\n\t\t'sessionService'\n\t];\n\n\tvar $rootScope,\n\t\t$state,\n\t\t$stateParams,\n\t\t$log,\n\t\t$timeout,\n\t\t$location,\n\t\tsubjectObserverMessagesService,\n\t\tobserverService,\n\t\tsessionService,\n\t\tsubjectMessages,\n\t\tobserverMessages,\n\t\tdata;\n\n\tfunction cobWelcomePage(_$rootScope_,\n\t\t_$state_,\n\t\t_$stateParams_,\n\t\t_$log_,\n\t\t_$timeout_,\n\t\t_$location_,\n\t\t_subjectObserverMessagesService_,\n\t\t_observerService_,\n\t\t_sessionService_) {\n\t\t$log = _$log_;\n\t\t$timeout = _$timeout_;\n\t\t$location = _$location_;\n\t\t$state = _$state_;\n\t\t$stateParams = _$stateParams_;\n\t\t$rootScope = _$rootScope_;\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tsessionService = _sessionService_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/common/welcome/welcomePage.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tscope.$state = $state;\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\n\t\t\tscope.forgotUsername = forgotUsername;\n\t\t\tscope.forgotPassword = forgotPassword;\n\t\t\tscope.clearModalMessage = clearModalMessage;\n\t\t\tscope.$on('$locationChangeStart', onLocationChange);\n\n\t\t\tscope.m = {\n\t\t\t\terrors: [],\n\t\t\t\tdate: new Date(),\n\t\t\t\tmodalMessage: $stateParams.modalMessage,\n\t\t\t\tmodalTitle: $stateParams.modalTitle,\n\t\t\t\tmodalIsError: $stateParams.modalIsError,\n\t\t\t\tdomain: '',\n\t\t\t\twelcomeMessageDisabled: false\n\t\t\t};\n\n\t\t\t$location.url($location.path());\n\n\t\t\tswitch ($state.current.name) {\n\t\t\tcase 'dot':\n\t\t\t\tdocument.title = 'Carrier Registration';\n\t\t\t\tscope.prevState = 'dotNumberSection';\n\t\t\t\tbreak;\n\t\t\tcase 'username':\n\t\t\t\tdocument.title = 'Forgot Username';\n\t\t\t\tbreak;\n\t\t\tcase 'password':\n\t\t\t\tdocument.title = 'Forgot Password';\n\t\t\t\tbreak;\n\t\t\tcase 'resetpassword':\n\t\t\t\tdocument.title = 'Reset Password';\n\t\t\t\tbreak;\n\t\t\tcase 'intrastate':\n\t\t\t\tdocument.title = 'Intrastate';\n\t\t\t\tscope.prevState = 'intrastateSection';\n\t\t\t\tbreak;\n\t\t\tcase 'canadian':\n\t\t\t\tdocument.title = 'Canadian Carrier';\n\t\t\t\tscope.prevState = 'canadianSection';\n\t\t\t\tbreak;\n\t\t\tcase 'selectcarrier':\n\t\t\t\tdocument.title = 'Select Carrier';\n\t\t\t\tbreak;\n\t\t\tcase 'confirmCompany':\n\t\t\t\tdocument.title = 'Confirm Company';\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tdocument.title = 'Login';\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tscope.setActiveSlide = setActiveSlide;\n\n\t\t\tdata = {\n\t\t\t\tdotNumber: '',\n\t\t\t\tstate: '',\n\t\t\t\tintrastateNumber: '',\n\t\t\t\tprovince: '',\n\t\t\t\tnationalSafetyNumber: '',\n\t\t\t\tdocketNumber: '',\n\t\t\t\tcarrierList: [],\n\t\t\t\tnumberText: '',\n\t\t\t\tsearchNumber: ''\n\t\t\t};\n\n\t\t\tregisterObserverHandlers();\n\t\t}\n\n\t\tfunction onLocationChange() {\n\t\t\t$rootScope.lastLocation = $rootScope.actualLocation;\n\t\t\t$rootScope.actualLocation = $location.path();\n\t\t}\n\n\t\tfunction registerObserverHandlers() {\n\t\t\tif (sessionService.getDomain()) {\n\t\t\t\t$timeout(function() {\n\t\t\t\t\tonDoaminDataLoad();\n\t\t\t\t},\n\t\t\t\t1);\n\t\t\t}\n\n\t\t\tobserverService.registerHandlers(scope,\n\t\t\t\t[\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_DOMAIN_DATA_LOADED, handler: onDoaminDataLoad },\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_CHANGE_WELCOME_VIEW, handler: changeView }\n\t\t\t\t]);\n\t\t}\n\n\t\tfunction changeView(obj) {\n\t\t\tif (typeof obj.setActiveSlide == 'string') {\n\t\t\t\tscope.m.activeSlide = obj.setActiveSlide;\n\t\t\t\t$rootScope.lastLocation = $location.path();\n\t\t\t\tif (obj.setActiveSlide == 'back') {\n\t\t\t\t\tobj.setActiveSlide = scope.prevState;\n\t\t\t\t}\n\n\t\t\t\tswitch (obj.setActiveSlide) {\n\t\t\t\tcase 'dotNumberSection':\n\t\t\t\t\t$state.go('dot', null, { notify: false });\n\t\t\t\t\tdocument.title = 'Carrier Registration';\n\t\t\t\t\tscope.prevState = obj.setActiveSlide;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'forgotUsernameSection':\n\t\t\t\t\t$state.go('username', null, { notify: false });\n\t\t\t\t\tdocument.title = 'Forgot Username';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'forgotPasswordSection':\n\t\t\t\t\t$state.go('password', null, { notify: false });\n\t\t\t\t\tdocument.title = 'Forgot Password';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'resetPasswordSection':\n\t\t\t\t\t$state.go('resetpassword', null, { notify: false });\n\t\t\t\t\tdocument.title = 'Reset Password';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'intrastateSection':\n\t\t\t\t\t$state.go('intrastate', null, { notify: false });\n\t\t\t\t\tdocument.title = 'Intrastate';\n\t\t\t\t\tscope.prevState = obj.setActiveSlide;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'canadianSection':\n\t\t\t\t\t$state.go('canadian', null, { notify: false });\n\t\t\t\t\tdocument.title = 'Canadian Carrier';\n\t\t\t\t\tscope.prevState = obj.setActiveSlide;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'multipleCarriersSection':\n\t\t\t\t\t$state.go('selectcarrier', null, { notify: false });\n\t\t\t\t\tdocument.title = 'Select Carrier';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'confirmCompanySection':\n\t\t\t\t\t$state.go('confirmCompany', null, { notify: false });\n\t\t\t\t\tdocument.title = 'Confirm Company';\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\t$state.go('login', null, { notify: false });\n\t\t\t\t\tdocument.title = 'Login';\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (obj.modalMessage) {\n\t\t\t\tscope.m.modalMessage = obj.modalMessage;\n\t\t\t} else {\n\t\t\t\tscope.m.modalMessage = '';\n\t\t\t}\n\t\t\tif (obj.modalTitle) {\n\t\t\t\tscope.m.modalTitle = obj.modalTitle;\n\t\t\t} else {\n\t\t\t\tscope.m.modalTitle = '';\n\t\t\t}\n\t\t\tif (obj.dotNumber) {\n\t\t\t\tdata.dotNumber = obj.dotNumber;\n\t\t\t}\n\t\t\tif (obj.state) {\n\t\t\t\tdata.state = obj.state;\n\t\t\t}\n\t\t\tif (obj.intrastateNumber) {\n\t\t\t\tdata.intrastateNumber = obj.intrastateNumber;\n\t\t\t}\n\t\t\tif (obj.province) {\n\t\t\t\tdata.province = obj.province;\n\t\t\t}\n\t\t\tif (obj.nationalSafetyNumber) {\n\t\t\t\tdata.nationalSafetyNumber = obj.nationalSafetyNumber;\n\t\t\t}\n\t\t\tif (obj.docketNumber) {\n\t\t\t\tdata.docketNumber = obj.docketNumber;\n\t\t\t}\n\t\t\tif (obj.carrierList) {\n\t\t\t\tdata.carrierList = obj.carrierList;\n\t\t\t\tscope.carrierList = data.carrierList;\n\t\t\t}\n\t\t\tif (obj.numberText) {\n\t\t\t\tdata.numberText = obj.numberText;\n\t\t\t\tscope.numberText = data.numberText;\n\t\t\t}\n\t\t\tif (obj.searchNumber) {\n\t\t\t\tdata.searchNumber = obj.searchNumber;\n\t\t\t\tscope.searchNumber = data.searchNumber;\n\t\t\t}\n\t\t}\n\n\t\tfunction setActiveSlide(slide) {\n\n\t\t\tscope.m.activeSlide = slide;\n\n\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_CHANGE_WELCOME_VIEW,\n\t\t\t\t{\n\t\t\t\t\tsetActiveSlide: slide,\n\t\t\t\t\tmodalMessage: '',\n\t\t\t\t\tmodalTitle: ''\n\t\t\t\t});\n\n\t\t}\n\n\t\tfunction onDoaminDataLoad() {\n\t\t\tscope.m.domain = sessionService.getDomain();\n\t\t\tscope.m.logoURL = sessionService.getBrokerLogoURL();\n\t\t\tvar brokerInfo = sessionService.getBrokerBranding();\n\t\t\tscope.m.name = brokerInfo.brokerName;\n\t\t\tscope.m.welcomeMessageDisabled = brokerInfo.welcomeMessageDisabled;\n\t\t}\n\n\t\tfunction forgotUsername() {\n\t\t\tsetActiveSlide('forgotUsernameSection');\n\t\t}\n\n\t\tfunction forgotPassword() {\n\t\t\tsetActiveSlide('forgotPasswordSection');\n\t\t}\n\n\t\tfunction clearModalMessage() {\n\t\t\tscope.m.modalMessage = '';\n\t\t\tscope.m.modalTitle = '';\n\t\t\tscope.m.modalIsError = false;\n\t\t}\n\t}\n\n})();\n","angular.module('onboarding.services',\n\t[\n\t]);\n","'use strict';\n\n(function() {\n\tangular.module('onboarding.services')\n\t\t.factory('authenticationService', authenticationService);\n\n\n\tvar subjectObserverMessagesService, observerService, subjectMessages;\n\n\tauthenticationService\n\t\t.$inject = ['$rootScope', '$http', '$log', 'subjectObserverMessagesService', 'observerService', '$window'];\n\n\tfunction authenticationService($rootScope, $http, $log, _subjectObserverMessagesService_, _observerService_, $window) {\n\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\n\t\treturn {\n\t\t\tisAuthorized: isAuthorized,\n\t\t\tisAuthorizedBrokerRead: isAuthorizedBrokerRead,\n\t\t\tlogout: logout,\n\t\t\tgetUserInfo: getUserInfo,\n\t\t\tgetApplicationLinks: getApplicationLinks,\n\t\t\tchangePassword: changePassword,\n\t\t\tgetUserId: getUserId,\n\t\t\tvalidateCarrierEmail: validateCarrierEmail,\n\t\t\tresetPasswordByEmail: resetPasswordByEmail,\n\t\t\tresetPassword: resetPassword,\n\t\t\tisAuthenticated: isAuthenticated,\n\t\t\tgetLogoutUrl: getLogoutUrl\n\t\t};\n\n\n\t\tfunction logout() {\n\t\t\tvar baseUrl = $window.location.origin + '/',\n\t\t\t\tlogoutUrl = 'logout';\n\t\t\t$rootScope.sessionService.destroy();\n\t\t\t$window.location.replace(baseUrl + logoutUrl);\n\t\t}\n\n\t\tfunction getLogoutUrl() {\n\t\t\treturn $window.location.origin + '/' + 'logout';\n\t\t}\n\n\t\tfunction getUserInfo(scope) {\n\t\t\treturn $http\n\t\t\t\t.get('/api/authentication/getuserinfo')\n\t\t\t\t.then(function(res) {\n\t\t\t\t\t$rootScope.sessionService.create(res.data);\n\n\t\t\t\t\treturn res;\n\t\t\t\t})\n\t\t\t\t.catch(function(e) {\n\t\t\t\t\tobserverService\n\t\t\t\t\t\t.sendMessageToSubject(scope, subjectMessages.COB_OBSERVER_LOGIN_FINISHED_FAIL, e.data);\n\t\t\t\t\tif (e.status === 403) {\n\t\t\t\t\t\tlogout();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}\n\n\t\tfunction getApplicationLinks() {\n\t\t\treturn $http.get('/api/authentication/applicationlinks');\n\t\t}\n\n\t\tfunction changePassword(password) {\n\t\t\tvar request = {\n\t\t\t\tPassword: password\n\t\t\t};\n\n\t\t\treturn $http.put('/api/brokersettings/password', request);\n\t\t}\n\n\t\tfunction validateCarrierEmail(emailAddress) {\n\t\t\treturn $http.get('/api/authentication/validateCarrierEmail', { params: { emailAddress: emailAddress } });\n\t\t}\n\n\t\tfunction getUserId(emailAddress, countryCode, postalCode) {\n\t\t\treturn $http.get('/api/authentication/getUserId',\n\t\t\t\t{ params: { emailAddress: emailAddress, countryCode: countryCode, postalCode: postalCode } });\n\t\t}\n\n\t\tfunction resetPasswordByEmail(userName) {\n\t\t\treturn $http.get('/api/authentication/resetPasswordByEmail',\n\t\t\t\t{ params: { userName: userName } });\n\t\t}\n\n\t\tfunction resetPassword(password, encodedKey) {\n\t\t\treturn $http.put('/api/authentication/resetPassword',\n\t\t\t\t{ password: password, encodedKey: encodedKey });\n\t\t}\n\n\t\tfunction isAuthorized(capability) {\n\t\t\treturn (authenticationService.isAuthenticated() &&\n $rootScope.sessionService.getCapabilities().indexOf(capability) !== -1);\n\t\t}\n\n\t\tfunction isAuthenticated() {\n\t\t\treturn $rootScope.sessionService.getUserName() !== null;\n\t\t}\n\n\t\tfunction isAuthorizedBrokerRead() {\n\t\t\treturn $rootScope.sessionService.isAuthorizedBrokerRead();\n\t\t}\n\n\t}\n})();\n","'use strict';\n(function() {\n\tangular.module('onboarding.services')\n\t\t.factory('brokerSettingsService', brokerSettingsService);\n\n\tbrokerSettingsService.$inject = ['$http', '$stateParams', 'sessionService'];\n\n\tfunction brokerSettingsService($http, $stateParams, sessionService) {\n\n\t\tvar SEGMENT_TYPES = {\n\t\t\t'image': 'Image',\n\t\t\t'insuranceMessage': 'InsuranceMessage',\n\t\t\t'welcomeMessage': 'WelcomeMessage',\n\t\t\t'contractMessage': 'ContractMessage',\n\t\t\t'documentsMessage': 'DocumentsMessage',\n\t\t\t'signedMessage': 'SignedMessage', \n\t\t};\n\n\t\treturn {\n\t\t\tgetBrokerSettings: getBrokerSettings,\n\t\t\tsetBrokerNotificationSettings: setBrokerNotificationSettings,\n\t\t\tupdateBrokerPassword: updateBrokerPassword,\n\t\t\tupdateLogo: updateLogo,\n\t\t\tupdateMessage: updateMessage\n\t\t};\n\n\n\t\tfunction getBrokerSettings() {\n\t\t\tvar broker = sessionService.getBrokerImpersonated();\n\t\t\tvar brokderDomain = broker.domain === undefined ? '' : broker.domain;\n\n\n\t\t\treturn $http.get('/api/brokersettings/brokersettings', { params: { domain: brokderDomain } });\n\t\t}\n\n\t\tfunction setBrokerNotificationSettings(request) {\n\t\t\trequest = brokerImpersonationHelper(request);\n\n\t\t\treturn $http.post('/api/brokersettings/notificationsettings', request);\n\t\t}\n\n\t\tfunction updateBrokerPassword(request) {\n\t\t\trequest = brokerImpersonationHelper(request);\n\n\t\t\treturn $http.put('/api/brokerlookup/updateBrokerPassword', request);\n\t\t}\n\n\t\tfunction updateLogo(imageFile, imageMimeType, fileName, fileExtension) {\n\t\t\tvar request = {\n\t\t\t\tsegmentType: SEGMENT_TYPES.image,\n\t\t\t\tsegmentData: imageFile,\n\t\t\t\tmimeType: imageMimeType,\n\t\t\t\tfileName: fileName,\n\t\t\t\tfileExtension: fileExtension\n\t\t\t};\n\t\t\trequest = brokerImpersonationHelper(request);\n\n\t\t\treturn $http.put('/api/brokersettings/brokerhomepagesegment', request);\n\t\t}\n\n\t\tfunction updateMessage(segmentType, message, disabled) {\n\t\t\tvar request = {\n\t\t\t\tsegmentType: SEGMENT_TYPES[segmentType],\n\t\t\t\tsegmentData: message,\n\t\t\t\tmimeType: 'text/html',\n\t\t\t\tdisabled: disabled\n\t\t\t};\n\t\t\trequest = brokerImpersonationHelper(request);\n\n\t\t\treturn $http.put('/api/brokersettings/brokerhomepagesegment', request);\n\t\t}\n\n\t\tfunction brokerImpersonationHelper(request) {\n\t\t\tif ($stateParams.brokerId) {\n\t\t\t\tif (!request) {\n\t\t\t\t\trequest = {};\n\t\t\t\t}\n\t\t\t\trequest.brokerId = $stateParams.brokerId;\n\t\t\t}\n\n\t\t\treturn request;\n\t\t}\n\t}\n})();\n","'use strict';\n(function() {\n\tangular.module('onboarding.services')\n\t\t.factory('carrierService', carrierService);\n\n\tcarrierService.$inject = [\n\t\t'$http', '$log', '$stateParams'\n\t];\n\n\tfunction\n\tcarrierService($http, $log, $stateParams) {\n\n\t\treturn {\n\t\t\tgetCarriers: getCarriers,\n\t\t\tupdateCarrierNote: updateCarrierNote,\n\t\t\tdeleteCarrierNote: deleteCarrierNote,\n\t\t\tupdateCarrierStatus: updateCarrierStatus,\n\t\t\tgetCarrierPrimaryContact: getCarrierPrimaryContact,\n\t\t\tsearchCarriers: searchCarriers,\n\t\t\texportCarriers: exportCarriers,\n\t\t\texportAllCarriers: exportAllCarriers,\n\t\t\tgetCarrierDetails: getCarrierDetails\n\t\t};\n\n\t\tfunction exportCarriers(carriers) {\n\t\t\tvar request = {\n\t\t\t\tcarriers: carriers\n\t\t\t};\n\t\t\trequest = brokerImpersonationHelper(request);\n\n\t\t\treturn $http.post('/api/carrierlookup/exportcarriers', request);\n\t\t}\n\n\t\tfunction exportAllCarriers(filter) {\n\n\t\t\treturn $http.get('/api/carrierlookup/exportallcarriers',\n\t\t\t\t{ params: { filter: filter, brokerId: $stateParams.brokerId } });\n\n\t\t}\n\n\t\tfunction updateCarrierStatus(carriers) {\n\t\t\tvar request = {\n\t\t\t\tcarriers: carriers\n\t\t\t};\n\t\t\trequest = brokerImpersonationHelper(request);\n\n\t\t\treturn $http.put('/api/carrierlookup/associatedcarrierstatus', request);\n\n\t\t}\n\n\t\tfunction getCarriers(filter, startRow, carrierCount, sortColumn, isSortDescending, showRowCount) {\n\t\t\tvar request = {\n\t\t\t\tfilter: filter,\n\t\t\t\tstartRow: startRow,\n\t\t\t\tcarrierCount: carrierCount,\n\t\t\t\tsortColumn: sortColumn,\n\t\t\t\tisSortDescending: isSortDescending,\n\t\t\t\tshowRowCount: showRowCount\n\t\t\t};\n\n\t\t\trequest = brokerImpersonationHelper(request);\n\n\t\t\treturn $http.post('/api/carrierlookup/associatedcarriers', request);\n\t\t}\n\n\t\tfunction updateCarrierNote(carrierId, note) {\n\t\t\tvar request = {\n\t\t\t\tCarrierId: carrierId,\n\t\t\t\tIsDelete: false,\n\t\t\t\tNotes: note\n\t\t\t};\n\n\t\t\trequest = brokerImpersonationHelper(request);\n\n\t\t\treturn $http.put('/api/carrierlookup/carriernotes', request);\n\t\t}\n\n\t\tfunction deleteCarrierNote(carrierId) {\n\t\t\tvar request = {\n\t\t\t\tcarrierId: carrierId\n\t\t\t};\n\t\t\trequest = brokerImpersonationHelper(request);\n\n\t\t\treturn $http.put('/api/carrierlookup/deletecarriernotes', request);\n\t\t}\n\n\t\tfunction getCarrierPrimaryContact(carrierId) {\n\t\t\treturn $http.get('/api/carrierlookup/carrierprimarycontact',\n\t\t\t\t{ params: { carrierId: carrierId, brokerId: $stateParams.brokerId } });\n\t\t}\n\n\t\tfunction searchCarriers(searchValue,\n\t\t\tsearchValue2,\n\t\t\tsearchType,\n\t\t\tstartRow,\n\t\t\tcarrierCount,\n\t\t\tsortColumn,\n\t\t\tisSortDescending,\n\t\t\tshowRowCount) {\n\n\t\t\tif (searchType === 'timeFrame') {\n\n\t\t\t\tvar request = {\n\t\t\t\t\tfilter: '',\n\t\t\t\t\tfromDate: searchValue,\n\t\t\t\t\ttoDate: searchValue2,\n\t\t\t\t\tstartRow: startRow,\n\t\t\t\t\tcarrierCount: carrierCount,\n\t\t\t\t\tsortColumn: sortColumn,\n\t\t\t\t\tisSortDescending: isSortDescending,\n\t\t\t\t\tshowRowCount: showRowCount\n\t\t\t\t};\n\n\t\t\t\trequest = brokerImpersonationHelper(request);\n\n\t\t\t\treturn $http.post('/api/carrierlookup/associatedcarriers', request);\n\t\t\t} else {\n\t\t\t\trequest = {\n\t\t\t\t\tsearchValue: searchValue,\n\t\t\t\t\tsearchType: searchType,\n\t\t\t\t\tstartRow: startRow,\n\t\t\t\t\tcarrierCount: carrierCount,\n\t\t\t\t\tsortColumn: sortColumn,\n\t\t\t\t\tisSortDescending: isSortDescending,\n\t\t\t\t\tshowRowCount: showRowCount\n\t\t\t\t};\n\n\t\t\t\trequest = brokerImpersonationHelper(request);\n\n\t\t\t\treturn $http.post('/api/carrierlookup/searchassociatedcarriers', request);\n\t\t\t}\n\t\t}\n\n\t\tfunction brokerImpersonationHelper(request) {\n\t\t\tif ($stateParams.brokerId) {\n\t\t\t\trequest.brokerId = $stateParams.brokerId;\n\t\t\t}\n\n\t\t\treturn request;\n\t\t}\n\n\t\tfunction getCarrierDetails(carrierId, brokerId) {\n\t\t\treturn $http.get('/api/carrierlookup/carrierAssociation', { params: { carrierId: carrierId, brokerId: brokerId } });\n\t\t}\n\t}\n})();\n","'use strict';\n\n(function () {\n\tangular.module('onboarding.services')\n\t\t.factory('carrierDocumentsService', carrierDocumentsService);\n\n\tvar extensionErrorMessage = 'Document format is invalid. Please make sure to upload file in the following format: .doc, .docx, .gif, .jpeg, .jpg, .pdf, .png, .tif, .tiff, .xls, or .xlsx.';\n\tvar maxFileSizeErrorMessage = 'Document is too large for upload. Only files under 10mb allowed. Please make sure to select file under 10mb.';\n\tvar documentIsEmpty = 'Your document is empty. Please make sure to select valid document.';\n\tvar sameNameErrorMessage = 'Document with same name already uploaded. Please give this document a unique name, and then upload again.';\n\n\tvar carrierRegistrationService,\n\t\tngFileUpload;\n\n\tcarrierDocumentsService.$inject = ['carrierRegistrationService', 'Upload'];\n\n\tfunction carrierDocumentsService(_carrierRegistrationService_, _ngFileUpload_) {\n\n\t\tcarrierRegistrationService = _carrierRegistrationService_;\n\t\tngFileUpload = _ngFileUpload_;\n\t\t\n\t\treturn {\n\t\t\tvalidateFile: validateFile,\n\t\t\tvalidateFleetDocument: validateFleetDocument,\n\t\t\tgetBase64DataUrl: getBase64DataUrl,\n\t\t\tgetResult: getResult,\n\t\t\tgetDocumentsByType: getDocumentsByType,\n\t\t\tuploadDocument: uploadDocument,\n\t\t\teditDocument: editDocument\n\t\t};\n\n\t\tfunction validateFile(file) {\n\t\t\tif (!file) {\n\t\t\t\treturn getResult(false, 'File is invalid.');\n\t\t\t}\n\n\t\t\tvar validMimeTypes = [\n\t\t\t\t'application/pdf', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n\t\t\t\t'application/msword', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n\t\t\t\t'application/vnd.ms-excel', 'application/vnd.ms-word', 'image/tiff', 'image/png', 'image/jpeg',\n\t\t\t\t'image/gif'\n\t\t\t];\n\n\t\t\tif (validMimeTypes.indexOf(file.type) === -1) {\n\t\t\t\treturn getResult(false, extensionErrorMessage);\n\t\t\t}\n\n\t\t\tif (file.size >= 10485760) {\n\t\t\t\treturn getResult(false, maxFileSizeErrorMessage);\n\t\t\t}\n\n\t\t\tif (file.size === 0) {\n\t\t\t\treturn getResult(false, documentIsEmpty);\n\t\t\t}\n\n\t\t\treturn getResult(true);\n\t\t}\n\n\t\tfunction validateFleetDocument(loadedFiles, file) {\n\t\t\tvar validationResult = validateFile(file);\n\t\t\tif (!validationResult.succeeded) {\n\t\t\t\treturn validationResult;\n\t\t\t}\n\n\t\t\tif (loadedFiles && loadedFiles.some(function(doc) { return doc.documentName == file.name; } )) {\n\t\t\t\treturn getResult(false, sameNameErrorMessage);\n\t\t\t}\n\n\t\t\treturn getResult(true);\n\t\t}\n\n\t\tfunction uploadDocument(file, carrierId) {\n\t\t\tif (file.base64 && file.documentName) {\n\t\t\t\tvar fileName = file.documentName;\n\t\t\t\tvar fileExtension = fileName.split('.').pop();\n\t\t\t\tfileName = fileName.substring(0, fileName.length - (fileExtension.length + 1)); //trim off extension\n\n\t\t\t\treturn carrierRegistrationService.insertCarrierDocument(fileName,\n\t\t\t\t\tfileExtension,\n\t\t\t\t\tfile.mimeType,\n\t\t\t\t\tfile.base64,\n\t\t\t\t\tfile.description,\n\t\t\t\t\tfile.documentType,\n\t\t\t\t\tfile.documentName,\n\t\t\t\t\tcarrierId);\n\t\t\t}\n\t\t}\n\n\t\tfunction editDocument(document, carrierId) {\n\t\t\tif (document.documentName) {\n\t\t\t\tif (!document.documentStatus) {\n\t\t\t\t\tdocument.documentStatus = 'ACTIVE';\n\t\t\t\t}\n\n\t\t\t\treturn carrierRegistrationService.updateCarrierDocument(document.documentId,\n\t\t\t\t\tdocument.description,\n\t\t\t\t\tdocument.documentType,\n\t\t\t\t\tdocument.documentName,\n\t\t\t\t\tdocument.documentStatus,\n\t\t\t\t\tcarrierId);\n\t\t\t}\n\t\t}\n\n\t\tfunction getBase64DataUrl(file) {\n\t\t\treturn ngFileUpload.base64DataUrl(file, false);\n\t\t}\n\n\t\tfunction getResult(succeeded, errorMessage) {\n\t\t\treturn {\n\t\t\t\tsucceeded: succeeded,\n\t\t\t\terrorMessage: errorMessage || ''\n\t\t\t};\n\t\t}\n\n\t\tfunction getDocumentsByType(documents, type) {\n\t\t\tvar docs = [];\n\t\t\tfor (var i = 0; i < documents.length; i++) {\n\t\t\t\tif (documents[i].documentType === type) {\n\t\t\t\t\tdocs.push(documents[i]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn docs;\n\t\t}\n\t}\n})();\n","'use strict';\n(function () {\n\tangular.module('onboarding.services')\n\t\t.factory('carrierRegistrationService', carrierRegistrationService);\n\n\tcarrierRegistrationService.$inject = ['$http'];\n\n\tfunction carrierRegistrationService($http) {\n\n\t\tvar _carrier = {};\n\n\t\treturn {\n\t\t\tvalidateDotNumber: validateDotNumber,\n\t\t\tvalidateIntrastateCode: validateIntrastateCode,\n\t\t\tgetCarrier: getCarrier,\n\t\t\tsetCarrier: setCarrier,\n\t\t\tregisterCarrier: registerCarrier,\n\t\t\tlookupCarrierCompanyInfo: lookupCarrierCompanyInfo,\n\t\t\tupdateCarrierCompanyInfo: updateCarrierCompanyInfo,\n\t\t\tlookupCarrierFleetServices: lookupCarrierFleetServices,\n\t\t\tupdateEquipmentInfo: updateEquipmentInfo,\n\t\t\tlookupPreferredAreasLanes: lookupPreferredAreasLanes,\n\t\t\tupdatePreferredLanes: updatePreferredLanes,\n\t\t\tupdatePreferredAreas: updatePreferredAreas,\n\t\t\tlookupCarrierDocuments: lookupCarrierDocuments,\n\t\t\tlookupCarrierDocumentFile: lookupCarrierDocumentFile,\n\t\t\tinsertCarrierDocument: insertCarrierDocument,\n\t\t\tupdateCarrierDocument: updateCarrierDocument,\n\t\t\tlookupContactsReferences: lookupContactsReferences,\n\t\t\tupdateCarrierContact: updateCarrierContact,\n\t\t\tupdateCarrierReferences: updateCarrierReferences,\n\t\t\tgetCarrierTaxInfo: getCarrierTaxInfo,\n\t\t\tupdateW8TaxInformation: updateW8TaxInformation,\n\t\t\tupdateW9TaxInformation: updateW9TaxInformation,\n\t\t\tlookupInsuranceInformation: lookupInsuranceInformation,\n\t\t\tsubmitRegistryInsuranceInfo: submitRegistryInsuranceInfo,\n\t\t\tupdateDobInsurance: updateDobInsurance,\n\t\t\tlookupCarrierStatus: lookupCarrierStatus,\n\t\t\tvisitedSection: visitedSection,\n\t\t\tlookupContractsAndSignatures: lookupContractsAndSignatures,\n\t\t\tsignStandardContract: signStandardContract,\n\t\t\tsignAssuresignContract: signAssuresignContract,\n\t\t\tsendProfileCompleteNotification: sendProfileCompleteNotification,\n\t\t\tlookupUrlsByCategory: lookupUrlsByCategory,\n\t\t\tlookupBrokers: lookupBrokers,\n\t\t\tlookupSignatures: lookupSignatures,\n\t\t\tupdateCarrierPassword: updateCarrierPassword,\n\t\t\tupdateCarrierEmail: updateCarrierEmail,\n\t\t\tlookupCarrierProfileModal: lookupCarrierProfileModal,\n\t\t\tshareDocuments: shareDocuments,\n\t\t\tfacsimileSignatures: facsimileSignatures\n\t\t};\n\t\tfunction lookupCarrierProfileModal(carrierId){\n\t\t\treturn $http.get('/api/carriersettings/profile', { params: { carrierId: carrierId } });\n\t\t}\n\t\tfunction updateCarrierPassword(password, carrierId){\n\t\t\tvar request = {\n\t\t\t\tnewValue : password\n\t\t\t};\n\t\t\tif (carrierId) {\n\t\t\t\trequest.carrierId = carrierId;\n\t\t\t} else {\n\t\t\t\trequest.carrierId = -1;\n\t\t\t}\n\n\t\t\treturn $http.post('/api/carriersettings/changepassword', request);\n\t\t}\n\n\t\tfunction updateCarrierEmail(email, carrierId){\n\t\t\tvar request = {\n\t\t\t\tnewValue : email\n\t\t\t};\n\t\t\tif (carrierId) {\n\t\t\t\trequest.carrierId = carrierId;\n\t\t\t} else {\n\t\t\t\trequest.carrierId = -1;\n\t\t\t}\n\n\t\t\treturn $http.post('/api/carriersettings/changeemail', request);\n\t\t}\n\t\n\t\tfunction validateDotNumber(dotNumber) {\n\t\t\treturn $http.get('/api/carrierregistration/validateDotNumber', { params: { dotNumber: dotNumber } });\n\t\t}\n\n\t\tfunction validateIntrastateCode(intrastateState, intrastateCode) {\n\t\t\treturn $http.get('/api/carrierregistration/validateIntrastateCode',\n\t\t\t\t{ params: { intrastateState: intrastateState, intrastateCode: intrastateCode } });\n\t\t}\n\n\t\tfunction getCarrier() {\n\t\t\treturn _carrier;\n\t\t}\n\n\t\tfunction setCarrier(carrier) {\n\t\t\t_carrier = carrier;\n\t\t}\n\n\t\tfunction registerCarrier(tcoreId, firstName, lastName, title, phoneNumber, phoneExt, email, password) {\n\t\t\tvar request = {\n\t\t\t\ttcoreId: tcoreId,\n\t\t\t\tfirstName: firstName,\n\t\t\t\tlastName: lastName,\n\t\t\t\ttitle: title,\n\t\t\t\tphoneNumber: phoneNumber,\n\t\t\t\tphoneExt: phoneExt,\n\t\t\t\temail: email,\n\t\t\t\tpassword: password\n\t\t\t};\n\n\t\t\treturn $http.post('/api/carrierregistration/registerCarrier', request);\n\t\t}\n\n\t\tfunction lookupCarrierCompanyInfo(carrierId) {\n\t\t\tif (carrierId) {\n\t\t\t\treturn $http.get('/api/carrierregistration/lookupCarrierCompanyInfo',\n\t\t\t\t\t{ params: { carrierId: carrierId } });\n\t\t\t} else {\n\t\t\t\treturn $http.get('/api/carrierregistration/lookupCarrierCompanyInfo');\n\t\t\t}\n\t\t}\n\n\t\tfunction lookupCarrierFleetServices(carrierId) {\n\t\t\tif (carrierId > -1) {\n\t\t\t\treturn $http.get('/api/carrierregistration/lookupCarrierEquipment',\n\t\t\t\t\t{ params: { carrierId: carrierId } });\n\t\t\t} else {\n\t\t\t\treturn $http.get('/api/carrierregistration/lookupCarrierEquipment');\n\t\t\t}\n\t\t}\n\n\t\tfunction updateCarrierCompanyInfo(carrierId,\n\t\t\tcompanyType,\n\t\t\tyearFounded,\n\t\t\tSCAC,\n\t\t\tisWomanOwned,\n\t\t\tisVeteranOwned,\n\t\t\tisDisabledVeteranOwned,\n\t\t\tisMinorityOwned,\n\t\t\tminorityType,\n\t\t\tisNmsdcCertified,\n\t\t\tregionalCouncil,\n\t\t\tcertificationNumber,\n\t\t\tphysicalAddress,\n\t\t\tmailingAddressSameAsPhysicalAddress,\n\t\t\tmailingAddress,\n\t\t\tremitToAddressSameAsPhysicalAddress,\n\t\t\tremitToAddressSameAsMailingAddress,\n\t\t\tremitToName,\n\t\t\tremitToAddress,\n\t\t\tinterestInQuickPay,\n\t\t\tisFactoring) {\n\n\n\t\t\tif (typeof SCAC === 'string') {\n\t\t\t\tSCAC = SCAC.split(/, ?/);\n\t\t\t}\n\n\t\t\tvar requestPhysicalAddress =\n\t\t\t{\n\t\t\t\tstreet: physicalAddress.street,\n\t\t\t\tcity: physicalAddress.city,\n\t\t\t\tstateProvince: physicalAddress.stateProvince,\n\t\t\t\tpostalCode: physicalAddress.postalCode,\n\t\t\t\tphoneNumber: physicalAddress.phoneNumber,\n\t\t\t\tphoneExtension: physicalAddress.phoneExt,\n\t\t\t\tcountryCode: physicalAddress.countryCode\n\t\t\t};\n\t\t\tif (typeof requestPhysicalAddress.postalCode === 'string')\n\t\t\t\tvar requestMailingAddress =\n\t\t\t\t{\n\t\t\t\t\tstreet: mailingAddress.street,\n\t\t\t\t\tcity: mailingAddress.city,\n\t\t\t\t\tstateProvince: mailingAddress.stateProvince,\n\t\t\t\t\tpostalCode: mailingAddress.postalCode,\n\t\t\t\t\tphoneNumber: mailingAddress.phoneNumber,\n\t\t\t\t\tphoneExtension: mailingAddress.phoneExt,\n\t\t\t\t\tcountryCode: mailingAddress.countryCode\n\t\t\t\t};\n\t\t\tif (typeof requestMailingAddress.postalCode === 'string') {\n\t\t\t\t//requestMailingAddress.postalCode = requestMailingAddress.postalCode = requestMailingAddress.postalCode.replace(/-/g, '');\n\t\t\t} else requestMailingAddress = null;\n\n\t\t\tvar requesRemitToAddress =\n\t\t\t{\n\t\t\t\tstreet: remitToAddress.street,\n\t\t\t\tcity: remitToAddress.city,\n\t\t\t\tstateProvince: remitToAddress.stateProvince,\n\t\t\t\tpostalCode: remitToAddress.postalCode,\n\t\t\t\tphoneNumber: remitToAddress.phoneNumber,\n\t\t\t\tphoneExtension: remitToAddress.phoneExt,\n\t\t\t\tcountryCode: remitToAddress.countryCode\n\t\t\t};\n\t\t\tif (typeof requesRemitToAddress.postalCode === 'string') {\n\t\t\t\t//requesRemitToAddress.postalCode = requesRemitToAddress.postalCode.replace(/-/g, '');\n\t\t\t} else\n\t\t\t\trequesRemitToAddress = null;\n\n\t\t\tvar request = {\n\t\t\t\tcompanyType: companyType,\n\t\t\t\tyearFounded: yearFounded,\n\t\t\t\tSCAC: SCAC,\n\t\t\t\tisWomanOwned: isWomanOwned,\n\t\t\t\tisVeteranOwned: isVeteranOwned,\n\t\t\t\tisDisabledVeteranOwned: isDisabledVeteranOwned,\n\t\t\t\tisMinorityOwned: isMinorityOwned,\n\t\t\t\tminorityType: minorityType,\n\t\t\t\tisNmsdcCertified: isNmsdcCertified,\n\t\t\t\tregionalCouncil: regionalCouncil,\n\t\t\t\tcertificationNumber: certificationNumber,\n\t\t\t\tphysicalAddress: requestPhysicalAddress,\n\t\t\t\tmailingAddressSameAsPhysicalAddress: mailingAddressSameAsPhysicalAddress,\n\t\t\t\tmailingAddress: requestMailingAddress,\n\t\t\t\tremitToAddressSameAsPhysicalAddress: remitToAddressSameAsPhysicalAddress,\n\t\t\t\tremitToAddressSameAsMailingAddress: remitToAddressSameAsMailingAddress,\n\t\t\t\tremitToName: remitToName,\n\t\t\t\tremitToAddress: requesRemitToAddress,\n\n\t\t\t\tinterestInQuickPay: interestInQuickPay,\n\t\t\t\tisFactoring: isFactoring\n\t\t\t};\n\n\t\t\tif (carrierId > -1)\n\t\t\t\trequest.carrierId = carrierId;\n\n\t\t\treturn $http.post('/api/carrierregistration/carrierCompanyInfo', request);\n\t\t}\n\n\t\tfunction updateEquipmentInfo(carrierId,\n\t\t\thasNoTrailers,\n\t\t\tisInternational,\n\t\t\thasDangerousGoods,\n\t\t\thasSecurityCerts,\n\t\t\thasEnvironmentalCerts,\n\t\t\thasLtlCapabilities,\n\t\t\tnumberOfPowerUnits,\n\t\t\tnumberOfTeams,\n\t\t\tnumberOfOwnerOperators,\n\t\t\tnumberOfCompanyDrivers,\n\t\t\tcommunicationType,\n\t\t\ttrailers,\n\t\t\thasAirRide,\n\t\t\thasVented,\n\t\t\thasHotshot,\n\t\t\thasCurtains,\n\t\t\thasInsulated,\n\t\t\thasConestoga,\n\t\t\thasCoilRacks,\n\t\t\thasContainerLocks,\n\t\t\thasTarps,\n\t\t\thasEtrac,\n\t\t\thasGarmentRacks,\n\t\t\thasPadWrap,\n\t\t\thasStraps,\n\t\t\thasChains,\n\t\t\tisHazmatCertified,\n\t\t\tisRadioactiveCertified,\n\t\t\tisResponsibileCare,\n\t\t\tisAceCertified,\n\t\t\tisCtpatMember,\n\t\t\tisTwicCardholder,\n\t\t\tisTsaRegistered,\n\t\t\tisSmartwayCarrier,\n\t\t\thasCarbCompliantTrucks,\n\t\t\tisCarbCompliantTru,\n\t\t\tdoesParcels,\n\t\t\tisUpsCarrier,\n\t\t\thasLtlCapabilties,\n\t\t\thasExpeditedGround,\n\t\t\tdoesMultipleStops,\n\t\t\thandlesRailDryage,\n\t\t\thandlesPortDryage,\n\t\t\thandlesAirFreightCartage,\n\t\t\thandlesEdi,\n\t\t\thasSpottedTrailers,\n\t\t\thandlesOversizeLoads,\n\t\t\tdoesTrailerInterchange,\n\t\t\tdoesPalletExchange,\n\t\t\tdoesBrokerage,\n\t\t\totherServices,\n\t\t\tairports,\n\t\t\tports,\n\t\t\thasDropOffPort) {\n\n\n\t\t\tvar request = {\n\t\t\t\tcarrierId: carrierId,\n\t\t\t\thasNoTrailers: hasNoTrailers,\n\t\t\t\tisInternational: isInternational,\n\t\t\t\thasDangerousGoods: hasDangerousGoods,\n\t\t\t\thasSecurityCerts: hasSecurityCerts,\n\t\t\t\thasEnvironmentalCerts: hasEnvironmentalCerts,\n\t\t\t\thasLtlCapabilities: hasLtlCapabilities,\n\t\t\t\thasDropOffPort: hasDropOffPort,\n\t\t\t\tequipment: {\n\t\t\t\t\tnumberOfPowerUnits: numberOfPowerUnits,\n\t\t\t\t\tnumberOfTeams: numberOfTeams,\n\t\t\t\t\tnumberOfOwnerOperators: numberOfOwnerOperators,\n\t\t\t\t\tnumberOfCompanyDrivers: numberOfCompanyDrivers,\n\t\t\t\t\tcommunicationType: communicationType,\n\t\t\t\t\ttrailers: trailers,\n\t\t\t\t\thasAirRide: hasAirRide,\n\t\t\t\t\thasVented: hasVented,\n\t\t\t\t\thasHotshot: hasHotshot,\n\t\t\t\t\thasCurtains: hasCurtains,\n\t\t\t\t\thasInsulated: hasInsulated,\n\t\t\t\t\thasConestoga: hasConestoga,\n\t\t\t\t\thasCoilRacks: hasCoilRacks,\n\t\t\t\t\thasContainerLocks: hasContainerLocks,\n\t\t\t\t\thasTarps: hasTarps,\n\t\t\t\t\thasEtrac: hasEtrac,\n\t\t\t\t\thasGarmentRacks: hasGarmentRacks,\n\t\t\t\t\thasPadWrap: hasPadWrap,\n\t\t\t\t\thasStraps: hasStraps,\n\t\t\t\t\thasChains: hasChains\n\t\t\t\t},\n\t\t\t\tservices: {\n\t\t\t\t\tisHazmatCertified: isHazmatCertified,\n\t\t\t\t\tisRadioactiveCertified: isRadioactiveCertified,\n\t\t\t\t\tisResponsibileCare: isResponsibileCare,\n\t\t\t\t\tisAceCertified: isAceCertified,\n\t\t\t\t\tisCtpatMember: isCtpatMember,\n\t\t\t\t\tisTwicCardholder: isTwicCardholder,\n\t\t\t\t\tisTsaRegistered: isTsaRegistered,\n\t\t\t\t\tisSmartwayCarrier: isSmartwayCarrier,\n\t\t\t\t\thasCarbCompliantTrucks: hasCarbCompliantTrucks,\n\t\t\t\t\tisCarbCompliantTru: isCarbCompliantTru,\n\t\t\t\t\tdoesParcels: doesParcels,\n\t\t\t\t\tisUpsCarrier: isUpsCarrier,\n\t\t\t\t\thasLtlCapabilties: hasLtlCapabilties,\n\t\t\t\t\thasExpeditedGround: hasExpeditedGround,\n\t\t\t\t\tdoesMultipleStops: doesMultipleStops,\n\t\t\t\t\thandlesRailDryage: handlesRailDryage,\n\t\t\t\t\thandlesPortDryage: handlesPortDryage,\n\t\t\t\t\thandlesAirFreightCartage: handlesAirFreightCartage,\n\t\t\t\t\thandlesEdi: handlesEdi,\n\t\t\t\t\thasSpottedTrailers: hasSpottedTrailers,\n\t\t\t\t\thandlesOversizeLoads: handlesOversizeLoads,\n\t\t\t\t\tdoesTrailerInterchange: doesTrailerInterchange,\n\t\t\t\t\tdoesPalletExchange: doesPalletExchange,\n\t\t\t\t\tdoesBrokerage: doesBrokerage,\n\t\t\t\t\totherServices: otherServices,\n\t\t\t\t\tairports: airports,\n\t\t\t\t\tports: ports\n\t\t\t\t}\n\t\t\t};\n\n\t\t\treturn $http.post('/api/carrierregistration/updateCarrierEquipment', request);\n\t\t}\n\n\t\tfunction lookupPreferredAreasLanes(carrierId) {\n\t\t\treturn $http.get('/api/carrierregistration/preferredAreasLanes', { params: { carrierId: carrierId } });\n\t\t}\n\n\t\tfunction updatePreferredLanes(originState,\n\t\t\toriginMetroCode,\n\t\t\toriginMetroName,\n\t\t\tdestinationState,\n\t\t\tdestinationMetroCode,\n\t\t\tdestinationMetroName,\n\t\t\tisRemove,\n\t\t\tcarrierId) {\n\t\t\tvar request = {\n\t\t\t\toriginState: originState,\n\t\t\t\toriginMetroCode: originMetroCode,\n\t\t\t\toriginMetroName: originMetroName,\n\t\t\t\tdestinationState: destinationState,\n\t\t\t\tdestinationMetroCode: destinationMetroCode,\n\t\t\t\tdestinationMetroName: destinationMetroName,\n\t\t\t\tisRemove: isRemove\n\t\t\t};\n\n\t\t\tif (carrierId) {\n\t\t\t\trequest.carrierId = carrierId;\n\t\t\t} else {\n\t\t\t\trequest.carrierId = -1;\n\t\t\t}\n\n\t\t\treturn $http.put('/api/carrierregistration/preferredLanes', request);\n\t\t}\n\n\t\tfunction updatePreferredAreas(states, hasMexicoService, carrierId) {\n\t\t\tvar request = {\n\t\t\t\tstates: states,\n\t\t\t\thasMexicoService: hasMexicoService\n\t\t\t};\n\n\t\t\tif (carrierId) {\n\t\t\t\trequest.carrierId = carrierId;\n\t\t\t} else {\n\t\t\t\trequest.carrierId = -1;\n\t\t\t}\n\n\t\t\treturn $http.put('/api/carrierregistration/preferredAreas', request);\n\t\t}\n\n\t\tfunction lookupCarrierDocuments(carrierId) {\n\t\t\treturn $http.get('/api/carrierregistration/carrierDocuments', { params: { carrierId: carrierId } });\n\t\t}\n\n\t\tfunction lookupCarrierDocumentFile(documentId) {\n\t\t\treturn $http.get('/api/carrierregistration/carrierDocument', { params: { documentId: documentId } });\n\t\t}\n\n\t\tfunction insertCarrierDocument(fileName,\n\t\t\tfileExtension,\n\t\t\tmimeType,\n\t\t\tfileContent,\n\t\t\tdescription,\n\t\t\tdocumentType,\n\t\t\tdocumentName,\n\t\t\tcarrierId) {\n\t\t\tvar request = {\n\t\t\t\tfileName: fileName,\n\t\t\t\tfileExtension: fileExtension,\n\t\t\t\tmimeType: mimeType,\n\t\t\t\tfileContent: fileContent,\n\t\t\t\tdescription: description,\n\t\t\t\tdocumentType: documentType,\n\t\t\t\tdocumentName: documentName\n\t\t\t};\n\n\t\t\tif (carrierId) {\n\t\t\t\trequest.carrierId = carrierId;\n\t\t\t}\n\n\t\t\treturn $http.post('/api/carrierregistration/carrierDocument', request);\n\t\t}\n\n\t\tfunction updateCarrierDocument(documentId, description, documentType, documentName, documentStatus, carrierId) {\n\n\t\t\tvar request = {\n\t\t\t\tdocumentId: documentId,\n\t\t\t\tdescription: description,\n\t\t\t\tdocumentType: documentType,\n\t\t\t\tdocumentName: documentName,\n\t\t\t\tdocumentStatus: documentStatus\n\t\t\t};\n\n\t\t\tif (carrierId) {\n\t\t\t\trequest.carrierId = carrierId;\n\t\t\t}\n\n\t\t\treturn $http.put('/api/carrierregistration/carrierDocument', request);\n\t\t}\n\n\t\tfunction lookupContactsReferences(carrierId) {\n\t\t\treturn $http.get('/api/carrierregistration/contactsReferences', { params: { carrierId: carrierId } });\n\t\t}\n\n\t\tfunction updateCarrierReferences(referenceIndex,\n\t\t\taction,\n\t\t\tcompanyName,\n\t\t\tname,\n\t\t\tphoneNumber,\n\t\t\tphoneExtension,\n\t\t\tcarrierId) {\n\n\t\t\tvar request = {\n\t\t\t\treferenceIndex: referenceIndex,\n\t\t\t\taction: action,\n\t\t\t\tcompanyName: companyName,\n\t\t\t\tcontactName: name,\n\t\t\t\tphone: phoneNumber,\n\t\t\t\tphoneExtension: phoneExtension\n\t\t\t};\n\n\t\t\tif (carrierId) {\n\t\t\t\trequest.carrierId = carrierId;\n\t\t\t} else {\n\t\t\t\trequest.carrierId = -1;\n\t\t\t}\n\n\t\t\treturn $http.put('/api/carrierregistration/references', request);\n\t\t}\n\n\t\tfunction updateCarrierContact(action,\n\t\t\tname,\n\t\t\trole,\n\t\t\ttitle,\n\t\t\tphone,\n\t\t\tphoneExtension,\n\t\t\tfax,\n\t\t\temail,\n\t\t\tisPrimary,\n\t\t\tcarrierId) {\n\n\t\t\tvar request = {\n\t\t\t\taction: action,\n\t\t\t\tname: name,\n\t\t\t\trole: role,\n\t\t\t\ttitle: title,\n\t\t\t\tphone: phone,\n\t\t\t\tphoneExtension: phoneExtension,\n\t\t\t\tfax: fax,\n\t\t\t\temail: email,\n\t\t\t\tisPrimary: isPrimary\n\t\t\t};\n\n\t\t\tif (carrierId) {\n\t\t\t\trequest.carrierId = carrierId;\n\t\t\t} else {\n\t\t\t\trequest.carrierId = -1;\n\t\t\t}\n\n\t\t\treturn $http.put('/api/carrierregistration/contacts', request);\n\t\t}\n\n\t\tfunction getCarrierTaxInfo(carrierId) {\n\t\t\tif (!carrierId) {\n\t\t\t\tcarrierId = -1;\n\t\t\t}\n\n\t\t\treturn $http.get('/api/carrierregistration/taxInformation',{ params: { carrierId: carrierId } });\n\t\t}\n\n\t\tfunction updateW8TaxInformation(name,\n\t\t\ttypeOfBeneficialOwner,\n\t\t\taddress,\n\t\t\tcity,\n\t\t\tstate,\n\t\t\tpostalCode,\n\t\t\tcountry,\n\t\t\tmailingAddress,\n\t\t\tmailingCity,\n\t\t\tmailingState,\n\t\t\tmailingPostalCode,\n\t\t\tmailingCountry,\n\t\t\ttin,\n\t\t\tfederalTaxType,\n\t\t\tforeignTaxId,\n\t\t\tforeignTaxIdType,\n\t\t\tcarrierId) {\n\t\t\tvar request = {\n\t\t\t\tname: name,\n\t\t\t\ttypeOfBeneficialOwner: typeOfBeneficialOwner,\n\n\t\t\t\taddress: address,\n\t\t\t\tcity: city,\n\t\t\t\tstate: state,\n\t\t\t\tcountry: country,\n\t\t\t\tpostalCode: postalCode,\n\n\t\t\t\tmailingAddress: mailingAddress,\n\t\t\t\tmailingCity: mailingCity,\n\t\t\t\tmailingState: mailingState,\n\t\t\t\tmailingCountry: mailingCountry,\n\t\t\t\tmailingPostalCode: mailingPostalCode,\n\n\t\t\t\ttin: tin,\n\t\t\t\tfederalTaxIdType: federalTaxType,\n\n\t\t\t\tforeignTaxId: foreignTaxId,\n\t\t\t\tforeignTaxIdType: foreignTaxIdType\n\t\t\t};\n\n\t\t\tif (carrierId) {\n\t\t\t\trequest.carrierId = carrierId;\n\t\t\t} else {\n\t\t\t\trequest.carrierId = -1;\n\t\t\t}\n\n\t\t\treturn $http.put('/api/carrierregistration/w8TaxInformation', request);\n\t\t}\n\n\t\tfunction updateW9TaxInformation(name,\n\t\t\tbusinessName,\n\t\t\tfederalTaxClassification,\n\t\t\totherText,\n\t\t\texemptPayeeCode,\n\t\t\tfactaReportingCode,\n\t\t\taddress,\n\t\t\tcity,\n\t\t\tstate,\n\t\t\tpostalCode,\n\t\t\ttin,\n\t\t\tfederalTaxType,\n\t\t\tcarrierId) {\n\t\t\tvar request = {\n\t\t\t\tname: name,\n\t\t\t\tbusinessName: businessName,\n\t\t\t\tfederalTaxClassification: federalTaxClassification,\n\t\t\t\totherText: otherText,\n\t\t\t\texemptPayeeCode: exemptPayeeCode,\n\t\t\t\tfactaReportingCode: factaReportingCode,\n\t\t\t\taddress: address,\n\t\t\t\tcity: city,\n\t\t\t\tstate: state,\n\t\t\t\tpostalCode: postalCode,\n\t\t\t\ttin: tin,\n\t\t\t\tfederalTaxType: federalTaxType\n\t\t\t};\n\t\t\tif (carrierId) {\n\t\t\t\trequest.carrierId = carrierId;\n\t\t\t} else {\n\t\t\t\trequest.carrierId = -1;\n\t\t\t}\n\n\t\t\treturn $http.put('/api/carrierregistration/w9TaxInformation', request);\n\t\t}\n\n\t\tfunction lookupInsuranceInformation(carrierId) {\n\t\t\tif (!carrierId) {\n\t\t\t\tcarrierId = -1;\n\t\t\t}\n\n\t\t\treturn $http.get('/api/carrierregistration/insuranceInformation', { params: { carrierId: carrierId } });\n\t\t}\n\n\t\tfunction submitRegistryInsuranceInfo(carrierId, agents, otherFeedback) {\n\t\t\tvar request = {\n\t\t\t\tcarrierId: carrierId,\n\t\t\t\tagents: agents,\n\t\t\t\totherFeedback: otherFeedback\n\t\t\t};\n\n\t\t\treturn $http.post('/api/carrierregistration/agentFeedback', request);\n\t\t}\n\n\t\tfunction updateDobInsurance(carrierId,\n\t\t\tagentId,\n\t\t\tagentName,\n\t\t\tphone,\n\t\t\textension,\n\t\t\tfax,\n\t\t\thasAuto,\n\t\t\thasCargo,\n\t\t\thasGeneral,\n\t\t\thasWorkersComp,\n\t\t\temail,\n\t\t\tfileName,\n\t\t\tfileExtension,\n\t\t\tfileContent,\n\t\t\tmimeType,\n\t\t\thadCert) {\n\n\t\t\tvar request = {\n\t\t\t\tagentName: agentName,\n\t\t\t\tphone: phone,\n\t\t\t\textension: extension,\n\t\t\t\tfax: fax,\n\t\t\t\thasAuto: hasAuto,\n\t\t\t\thasCargo: hasCargo,\n\t\t\t\thasGeneral: hasGeneral,\n\t\t\t\thasWorkersComp: hasWorkersComp,\n\t\t\t\temail: email,\n\t\t\t\tfileName: null,\n\t\t\t\tfileExtension: null,\n\t\t\t\tfileContent: null,\n\t\t\t\tmimeType: null\n\t\t\t};\n\t\t\tif (fileContent) {\n\t\t\t\trequest.fileName = fileName;\n\t\t\t\trequest.fileExtension = fileExtension,\n\t\t\t\trequest.fileContent = fileContent;\n\t\t\t\trequest.mimeType = mimeType;\n\t\t\t} else if (hadCert && !fileName) {\n\t\t\t\trequest.deleteCertificate = true;\n\t\t\t}\n\n\t\t\tif (carrierId) {\n\t\t\t\trequest.carrierId = carrierId;\n\t\t\t} else {\n\t\t\t\trequest.carrierId = -1;\n\t\t\t}\n\n\t\t\tif (agentId) {\n\t\t\t\trequest.agentId = agentId;\n\t\t\t} else {\n\t\t\t\trequest.agentId = -1;\n\t\t\t}\n\n\t\t\treturn $http.put('/api/carrierregistration/insuranceInformation', request);\n\t\t}\n\n\t\tfunction lookupCarrierStatus(carrierId) {\n\t\t\treturn $http.get('/api/carrierregistration/lookupCarrierStatus', { params: { carrierId: carrierId } });\n\t\t}\n\n\t\tfunction visitedSection(section, carrierId, brokerId) {\n\t\t\tvar request = {\n\t\t\t\tsection: section,\n\t\t\t\tcarrierId: carrierId,\n\t\t\t\tbrokerId: brokerId\n\t\t\t};\n\n\t\t\tif (!carrierId) {\n\t\t\t\trequest.carrierId = -1;\n\t\t\t}\n\n\t\t\tif (!brokerId) {\n\t\t\t\trequest.brokerId = -1;\n\t\t\t}\n\n\t\t\treturn $http.put('/api/carrierregistration/visitedSection', request);\n\t\t}\n\n\t\tfunction lookupContractsAndSignatures(carrierId, brokerId) {\n\t\t\tif (!carrierId) {\n\t\t\t\tcarrierId = -1;\n\t\t\t}\n\n\t\t\tif (!brokerId) {\n\t\t\t\tbrokerId = -1;\n\t\t\t}\n\n\t\t\treturn $http.get('/api/carrierregistration/lookupContractsAndSignatures',\n\t\t\t\t{ params: { carrierId: carrierId, brokerId: brokerId } });\n\t\t}\n\n\t\tfunction signStandardContract(signee, signeeTitle, contractId) {\n\t\t\tvar request = {\n\t\t\t\tsignee: signee,\n\t\t\t\tsigneeTitle: signeeTitle,\n\t\t\t\tcontractId: contractId\n\t\t\t};\n\n\t\t\treturn $http.put('/api/carrierregistration/signStandardContract', request);\n\t\t}\n\n\t\tfunction signAssuresignContract(signee, signeeTitle, brokerId, callbackUrl) {\n\t\t\tvar request = {\n\t\t\t\tsignee: signee,\n\t\t\t\tsigneeTitle: signeeTitle,\n\t\t\t\tbrokerId: brokerId,\n\t\t\t\tcallbackUrl: callbackUrl\n\t\t\t};\n\n\t\t\treturn $http.put('/api/carrierregistration/signAssuresignContract', request);\n\t\t}\n\n\t\tfunction sendProfileCompleteNotification(carrierId) {\n\t\t\treturn $http.get('/api/carrierregistration/SendProfileCompletedNotice', { params: { carrierId: carrierId } });\n\t\t}\n\n\t\tfunction lookupUrlsByCategory(businessUnitId) {\n\t\t\treturn $http.get('/api/carrierregistration/lookupUrlsByCategory', { params: { businessUnitId: businessUnitId } });\n\t\t}\n\n\t\tfunction lookupBrokers(carrierId) {\n\t\t\treturn $http.get('/api/carrierregistration/lookupBrokers', { params: { carrierId: carrierId } });\n\t\t}\n\n\t\tfunction lookupSignatures(carrierId, brokerId) {\n\t\t\treturn $http.get('/api/carrierregistration/lookupSignatures', { params: { carrierId: carrierId, brokerId: brokerId } });\n\t\t}\n\n\t\tfunction shareDocuments(documents, carrierId) {\n\t\t\tvar request = {\n\t\t\t\tdocumentGuids: documents\n\t\t\t};\n\n\t\t\tif (carrierId) {\n\t\t\t\trequest.carrierId = carrierId;\n\t\t\t} else {\n\t\t\t\trequest.carrierId = -1;\n\t\t\t}\n\n\t\t\treturn $http.post('/api/carrierregistration/shareDocuments', request);\n\t\t}\n\t\n\t\tfunction facsimileSignatures(documentId) {\n\t\t\treturn $http.get('/api/carrierregistration/facsimileSignatures', { params: { documentId: documentId } });\n\t\t}\n\t}\n})();\n","'use strict';\n(function() {\n\tangular.module('onboarding.services')\n\t\t.factory('carrierSettingsService', carrierSettingsService);\n\n\tcarrierSettingsService.$inject = ['$http'];\n\n\tfunction carrierSettingsService($http) {\n\n\t\treturn {\n\t\t\tlookupCarrierProfileModal: lookupCarrierProfileModal,\n\t\t\tupdateCarrierPassword: updateCarrierPassword,\n\t\t\tupdateCarrierEmail: updateCarrierEmail\n\t\t};\n\n\t\tfunction lookupCarrierProfileModal(carrierId) {\n\t\t\treturn $http.get('/api/carriersettings/profile', { params: { carrierId: carrierId } });\n\t\t}\n\n\t\tfunction updateCarrierPassword(password, carrierId) {\n\t\t\tvar request = {\n\t\t\t\tnewValue: password\n\t\t\t};\n\t\t\tif (carrierId) {\n\t\t\t\trequest.carrierId = carrierId;\n\t\t\t} else {\n\t\t\t\trequest.carrierId = -1;\n\t\t\t}\n\n\t\t\treturn $http.post('/api/carriersettings/changepassword', request);\n\t\t}\n\n\t\tfunction updateCarrierEmail(email, carrierId) {\n\t\t\tvar request = {\n\t\t\t\tnewValue: email\n\t\t\t};\n\t\t\tif (carrierId) {\n\t\t\t\trequest.carrierId = carrierId;\n\t\t\t} else {\n\t\t\t\trequest.carrierId = -1;\n\t\t\t}\n\n\t\t\treturn $http.post('/api/carriersettings/changeemail', request);\n\t\t}\n\t}\n})();\n","'use strict';\n(function() {\n\tangular.module('onboarding.services')\n\t\t.factory('contractService', contractService);\n\n\tcontractService.$inject = [\n\t\t'$http', '$log', '$stateParams'\n\t];\n\n\tfunction\n\tcontractService($http, $log, $stateParams) {\n\n\t\treturn {\n\t\t\taddContract: addContract,\n\t\t\tdeleteContract: deleteContract,\n\t\t\texportAllContractSignatures: exportAllContractSignatures,\n\t\t\tgetContractDetail: getContractDetail,\n\t\t\tgetContracts: getContracts,\n\t\t\tgetContractSignatures: getContractSignatures,\n\t\t\tgetContractVersions: getContractVersions,\n\t\t\trejectSignatures: rejectSignatures,\n\t\t\tupdateContractDescription: updateContractDescription,\n\t\t\tupdateContractStatus: updateContractStatus,\n\t\t\texportContractSignatures: exportContractSignatures\n\t\t};\n\n\t\tfunction addContract(contract) {\n\t\t\tcontract = brokerImpersonationHelper(contract);\n\n\t\t\treturn $http.post('/api/contractlookup/brokercontract', contract);\n\t\t}\n\n\t\tfunction deleteContract(contractId) {\n\t\t\treturn $http.get('/api/contractlookup/brokercontract',\n\t\t\t\t{ params: { contractId: contractId, brokerId: $stateParams.brokerId } });\n\t\t}\n\n\t\tfunction exportContractSignatures(contractId, signatureIds) {\n\t\t\tvar request = {\n\t\t\t\tcontractId: contractId,\n\t\t\t\tsignatureIds: signatureIds\n\t\t\t};\n\t\t\trequest = brokerImpersonationHelper(request);\n\n\t\t\treturn $http.post('/api/contractlookup/exportsignatures', request);\n\t\t}\n\n\t\tfunction exportAllContractSignatures(contractid) {\n\t\t\treturn $http.get('/api/contractlookup/exportallsignatures',\n\t\t\t\t{ params: { contractId: contractid, brokerId: $stateParams.brokerId } });\n\t\t}\n\n\t\tfunction getContractDetail(contractId) {\n\t\t\treturn $http.get('/api/contractlookup/brokercontractdetail',\n\t\t\t\t{ params: { contractId: contractId, brokerId: $stateParams.brokerId } });\n\t\t}\n\n\t\tfunction getContracts(filter) {\n\t\t\treturn $http.get('/api/contractlookup/brokercontract',\n\t\t\t\t{ params: { filter: filter, brokerId: $stateParams.brokerId } });\n\t\t}\n\n\t\tfunction getContractSignatures(contractId, startRow, rowCount, sortOrder, isSortDescending, filter, filterType) {\n\t\t\tvar request = {\n\t\t\t\tcontractId: contractId,\n\t\t\t\tstartRow: startRow,\n\t\t\t\trowCount: rowCount,\n\t\t\t\tisSortDescending: isSortDescending,\n\t\t\t\tsortOrder: sortOrder,\n\t\t\t\tfilter: filter,\n\t\t\t\tfilterType: filterType\n\t\t\t};\n\n\t\t\trequest = brokerImpersonationHelper(request);\n\n\t\t\treturn $http.post('api/contractlookup/signedcontracts', request);\n\t\t}\n\n\t\tfunction getContractVersions(contractName) {\n\t\t\treturn $http.get('/api/contractlookup/contractversions',\n\t\t\t\t{ params: { name: contractName, brokerId: $stateParams.brokerId } });\n\t\t}\n\n\t\tfunction rejectSignatures(signatureIds) {\n\t\t\tvar request = {\n\t\t\t\tsignatureIds: signatureIds\n\t\t\t};\n\t\t\trequest = brokerImpersonationHelper(request);\n\n\t\t\treturn $http.put('/api/contractlookup/rejectsignatures', request);\n\t\t}\n\n\t\tfunction updateContractDescription(contractId, name, description) {\n\t\t\tvar request = {\n\t\t\t\tcontractId: contractId,\n\t\t\t\tcontractName: name,\n\t\t\t\tdescription: description\n\t\t\t};\n\n\t\t\trequest = brokerImpersonationHelper(request);\n\n\t\t\treturn $http.put('/api/contractlookup/brokercontractdescription', request);\n\n\t\t}\n\n\t\tfunction updateContractStatus(contractId, status, contractName) {\n\t\t\tvar request = {\n\t\t\t\tcontractId: contractId,\n\t\t\t\tstatus: status,\n\t\t\t\tname: contractName\n\t\t\t};\n\n\t\t\trequest = brokerImpersonationHelper(request);\n\n\t\t\treturn $http.put('/api/contractlookup/contractstatus', request);\n\t\t}\n\n\t\tfunction brokerImpersonationHelper(request) {\n\t\t\tif ($stateParams.brokerId) {\n\t\t\t\trequest.brokerId = $stateParams.brokerId;\n\t\t\t}\n\n\t\t\treturn request;\n\t\t}\n\t}\n\n})();\n","'use strict';\n(function() {\n\tangular.module('onboarding.services')\n\t\t.factory('internalAdminService', internalAdminService);\n\n\tinternalAdminService.$inject = ['$http'];\n\n\tfunction internalAdminService($http) {\n\n\t\treturn {\n\t\t\tdefineOnboardingBroker: defineOnboardingBroker,\n\t\t\tidentifyBroker: identifyBroker,\n\t\t\tgetBrokers: getBrokers,\n\t\t\tgetBrokerUsageReport: getBrokerUsageReport,\n\t\t\tgetCarriers: getCarriers,\n\t\t\tsearchCarriers: searchCarriers,\n\t\t\tprocessTinFile: processTinFile,\n\t\t\tgetAssureSignContracts: getAssureSignContracts,\n\t\t\tupdateContractTemplateId: updateContractTemplateId,\n\t\t\tupdateTinStatus: updateTinStatus\n\t\t};\n\n\t\tfunction identifyBroker(domain) {\n\t\t\treturn $http.get('/api/internaladmin/identifyBroker', { params: { domain: domain } });\n\t\t}\n\n\t\tfunction getBrokers(request) {\n\t\t\treturn $http.get('/api/internaladmin/brokers', request);\n\t\t}\n\n\t\tfunction getCarriers(request) {\n\t\t\treturn $http.get('/api/internaladmin/carriers', request);\n\t\t}\n\n\t\tfunction searchCarriers(searchType, searchTerm, startRow, rowCount, includeRowCount) {\n\t\t\treturn $http.get('/api/internaladmin/searchcarriers',\n\t\t\t\t{\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tsearchType: searchType,\n\t\t\t\t\t\tsearchValue: searchTerm,\n\t\t\t\t\t\tcurrentRow: startRow,\n\t\t\t\t\t\trowCount: rowCount,\n\t\t\t\t\t\tincludeRowCount: includeRowCount\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}\n\n\t\tfunction defineOnboardingBroker(request) {\n\t\t\treturn $http.put('/api/internaladmin/defineBroker', request);\n\t\t}\n\n\t\tfunction processTinFile(request) {\n\t\t\treturn $http.post('/api/internaladmin/processTinFile', request);\n\t\t}\n\n\t\tfunction getAssureSignContracts() {\n\t\t\treturn $http.get('/api/internaladmin/assuresigncontracts');\n\t\t}\n\n\t\tfunction updateContractTemplateId(brokerId, contractId, templateId, contractName) {\n\t\t\tvar request = {\n\t\t\t\tbrokerId: brokerId,\n\t\t\t\tcontractId: contractId,\n\t\t\t\ttemplateId: templateId,\n\t\t\t\tcontractName: contractName\n\t\t\t};\n\n\t\t\treturn $http.put('/api/internaladmin/updateContractTemplate', request);\n\t\t}\n\n\t\tfunction getBrokerUsageReport() {\n\t\t\treturn $http.get('/api/internaladmin/brokerUsageReport', { params: {} });\n\t\t}\n\n\t\tfunction updateTinStatus(request) {\n\t\t\treturn $http.put('/api/internaladmin/updateTinStatus', request);\n\t\t}\n\t}\n})();\n","'use strict';\n(function() {\n\tangular.module('onboarding.services')\n\t\t.factory('observerService', observerService);\n\n\tobserverService.$inject = ['$log'];\n\n\tfunction observerService($log) {\n\t\treturn {\n\t\t\tsendMessageToSubject: sendMessageToSubject,\n\t\t\tcreateHandlerObject: createHandlerObject,\n\t\t\tregisterHandlers: registerHandlers\n\t\t};\n\n\t\tfunction sendMessageToSubject(scope, subjectMessage, data) {\n\t\t\tscope.$emit(subjectMessage, subjectMessage, data);\n\t\t}\n\n\t\tfunction createHandlerObject(subjectMessage, handler) {\n\t\t\treturn { message: subjectMessage, handler: handler };\n\t\t}\n\n\t\tfunction registerHandlers(scope, handlerObjectArray) {\n\t\t\tif (!handlerObjectArray || !angular.isArray(handlerObjectArray)) {\n\t\t\t\t$log.warn('Null or empty handlerObjectArray');\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t_.each(handlerObjectArray,\n\t\t\t\tfunction(ho) {\n\t\t\t\t\tscope.$on(ho.message,\n\t\t\t\t\t\tfunction(event, observerMessage, data) {\n\t\t\t\t\t\t\t//$log.debug(\"Observer received message \" + observerMessage);\n\t\t\t\t\t\t\tho.handler.call(this, data);\n\t\t\t\t\t\t});\n\t\t\t\t});\n\t\t}\n\t}\n})();\n","'use strict';\n\n(function () {\n\tangular.module('onboarding.services')\n\t\t.factory('onboardHttpInterceptor', onboardHttpInterceptor);\n\n\tvar subjectObserverMessagesService, observerService, subjectMessages, $window, appConfig;\n\n\tonboardHttpInterceptor.$inject = ['$q', '$rootScope', 'subjectObserverMessagesService', 'observerService', '$window', 'appConfig'];\n\n\tfunction onboardHttpInterceptor($q, $rootScope, _subjectObserverMessagesService_, _observerService_, _$window_, _appConfig_) {\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t$window = _$window_;\n\t\tappConfig = _appConfig_;\n\n\t\treturn {\n\t\t\tresponse: response,\n\t\t\tresponseError: responseError,\n\t\t\trequest: request\n\t\t};\n\n\t\tfunction response(httpResponse) {\n\t\t\tvar headers = httpResponse.headers();\n\t\t\tvar config = httpResponse.config;\n\t\t\tvar byPassEnabled = config && config.bypassErrorsInterceptor;\n\n\t\t\tif (headers.isexception) {\n\t\t\t\tif (!byPassEnabled)\n\t\t\t\t\tobserverService.sendMessageToSubject($rootScope, subjectMessages.COB_SUBJECT_HTTP_ERROR_500, httpResponse.data);\n\t\t\t\t\n\t\t\t\treturn $q.reject(httpResponse.data);\n\t\t\t}\n\n\t\t\treturn httpResponse || $q.when(httpResponse);\n\t\t}\n\n\t\tfunction responseError(rejection) {\n\t\t\tif (rejection.status === 401) {\n\t\t\t\tobserverService.sendMessageToSubject($rootScope,\n\t\t\t\t\tsubjectMessages.COB_SUBJECT_HTTP_ERROR_401,\n\t\t\t\t\trejection.data);\n\t\t\t}\n\t\t\tif (rejection.status === 403) {\n\t\t\t\t$rootScope.authenticationService.logout();\n\t\t\t}\n\t\t\tif (rejection.status === 404) {\n\t\t\t\tobserverService.sendMessageToSubject($rootScope, subjectMessages.COB_SUBJECT_HTTP_ERROR_404, rejection.data);\n\t\t\t}\n\t\t\tif (rejection.status === 500 || rejection.status === 501 || rejection.status === 502 || rejection.status === 504) {\n\t\t\t\tif (rejection.config.url.indexOf('usurp') !== -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar config = rejection.config;\n\t\t\t\tvar byPassEnabled = config && config.bypassErrorsInterceptor;\n\n\t\t\t\tif (!byPassEnabled) {\n\t\t\t\t\tvar errorData = (rejection.data) ? rejection.data\n\t\t\t\t\t\t: { message: 'We\\'re sorry, an unexpected error has occurred. Please retry your request in a few minutes.', category: 'Unexpected' };\n\t\t\t\t\tobserverService.sendMessageToSubject($rootScope, subjectMessages.COB_SUBJECT_HTTP_ERROR_500, errorData);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn $q.reject(rejection);\n\t\t}\n\n \n\t\tfunction request(config) {\n\t\t\tif (config.url.indexOf('.html') !== -1) {\n\t\t\t\tconfig.url = config.url + '?v=' + appConfig.appVersion;\n\t\t\t}\n\n\t\t\treturn config;\n\t\t}\n\t}\n})();\n","'use strict';\n\n(function () {\n\tangular.module('onboarding.services')\n\t\t.factory('sessionService', sessionService);\n\n\n\tsessionService.$inject = [\n\t\t'subjectObserverMessagesService', 'observerService', '$http', '$log', '$state',\n\t\t'$stateParams', '$window', '$rootScope', 'usurpService'\n\t];\n\n\tfunction sessionService(subjectObserverMessagesService,\n\t\tobserverService,\n\t\t$http,\n\t\t$log,\n\t\t$state,\n\t\t$stateParams,\n\t\t$window,\n\t\t$rootScope,\n\t\tusurpService) {\n\t\tvar _userName = null;\n\t\tvar _capabilities = null;\n\t\tvar _allowedLogins = null;\n\t\tvar _carrierNavState = null;\n\t\tvar _domain = null;\n\t\tvar _broker = null;\n\t\tvar _carrierReadyToSign = false;\n\t\tvar _usurpEnabled = false;\n\n\t\treturn {\n\t\t\tcreate: create,\n\t\t\tdestroy: destroy,\n\t\t\tgetUserName: getUserName,\n\t\t\tgetCapabilities: getCapabilities,\n\t\t\tsetBrokerImpersonated: setBrokerImpersonated,\n\t\t\tgetBrokerImpersonated: getBrokerImpersonated,\n\t\t\tsetCarrierImpersonated: setCarrierImpersonated,\n\t\t\tgetCarrierImpersonated: getCarrierImpersonated,\n\t\t\tgetDomain: getDomain,\n\t\t\tsetDomain: setDomain,\n\t\t\tgetAllowedLogins: getAllowedLogins,\n\t\t\tsetAllowedLogins: setAllowedLogins,\n\t\t\tclearDomain: clearDomain,\n\t\t\tsaveCarrierVisit: saveCarrierVisit,\n\t\t\tgetBrokerLogoURL: getBrokerLogoURL,\n\t\t\tgetBrokerBranding: getBrokerBranding,\n\t\t\tsetBrokerBranding: setBrokerBranding,\n\t\t\tclearBrokerBranding: clearBrokerBranding,\n\t\t\tsetCarrierReadyToSign: setCarrierReadyToSign,\n\t\t\tgetCarrierReadyToSign: getCarrierReadyToSign,\n\t\t\tgetCarrierNavState: getCarrierNavState,\n\t\t\tsetCarrierNavState: setCarrierNavState,\n\t\t\trestoreState: restoreState,\n\t\t\tisAuthorized: isAuthorized,\n\t\t\tisAuthorizedBrokerAdmin: isAuthorizedBrokerAdmin,\n\t\t\tisAuthorizedBrokerRead: isAuthorizedBrokerRead,\n\t\t\tisAuthorizedBrokerWrite: isAuthorizedBrokerWrite,\n\t\t\tisAuthorizedInternalAdmin: isAuthorizedInternalAdmin,\n\t\t\tisAuthorizedCarrierRead: isAuthorizedCarrierRead,\n\t\t\tisAuthorizedCarrierWrite: isAuthorizedCarrierWrite,\n\t\t\tisAuthorizedCarrierSign: isAuthorizedCarrierSign,\n\t\t\tisAuthorizedCarrierAdmin: isAuthorizedCarrierAdmin,\n\t\t\tgetCarouselViewed: getCarouselViewed,\n\t\t\tsetCarouselViewed: setCarouselViewed,\n\t\t\tgetApplicationSettings: getApplicationSettings,\n\t\t\tgetLastVisitedPage: getLastVisitedPage,\n\t\t\tsetLastVisitedPage: setLastVisitedPage,\n\t\t\tremoveLastVisitedPage: removeLastVisitedPage,\n\t\t\tredirectToLogin: redirectToLogin,\n\t\t\t//is admin impersonating or in role\n\t\t\tisBroker: isBroker,\n\t\t\tisCarrier: isCarrier,\n\t\t\tgetBrokerByDomainName: getBrokerByDomainName,\n\t\t\tsetUsurpEnabled: setUsurpEnabled,\n\t\t\tisUsurpEnabled: isUsurpEnabled\n\t\t};\n\n\t\tfunction create(data) {\n\t\t\tif (data) {\n\t\t\t\tsetUserName(data.userName);\n\t\t\t\tsetCapabilities(data.capabilities);\n\t\t\t\tsetAllowedLogins(data.allowedLoginTypes);\n\t\t\t\tsetUsurpEnabled();\n\t\t\t}\n\t\t\t\n\t\t\tsaveState();\n\t\t}\n\n\t\tfunction destroy() {\n\t\t\tsetUserName(null);\n\t\t\tsetCapabilities(null);\n\n\t\t\tusurpService.removeUsurpLSKey();\n\t\t\tlocalStorage.removeItem('session.userName');\n\t\t\tlocalStorage.removeItem('session.capabilities');\n\t\t}\n\n\t\tfunction setBrokerImpersonated(brokerId, name, domain) {\n\t\t\tif (isAuthorizedInternalAdmin()) {\n\t\t\t\tvar brokerImpersonated = {\n\t\t\t\t\tbrokerId: brokerId,\n\t\t\t\t\tname: name,\n\t\t\t\t\tdomain: domain\n\t\t\t\t};\n\n\t\t\t\tlocalStorage.setItem('brokerImpersonated' + brokerId, angular.toJson(brokerImpersonated));\n\t\t\t}\n\t\t}\n\n\t\tfunction getBrokerImpersonated() {\n\t\t\tif ($stateParams.brokerId) {\n\t\t\t\treturn angular.fromJson(localStorage.getItem('brokerImpersonated' + $stateParams.brokerId));\n\t\t\t} else\n\t\t\t\treturn {};\n\t\t}\n\n\t\tfunction setCarrierImpersonated(carrierId,\n\t\t\tcarrierName,\n\t\t\tdotNumber,\n\t\t\tintrastateCode,\n\t\t\tintrastateState) {\n\n\t\t\tvar carrierImpersonated = {\n\t\t\t\tcarrierId: carrierId,\n\t\t\t\tcarrierName: carrierName,\n\t\t\t\tdotNumber: dotNumber,\n\t\t\t\tintrastateState: intrastateState,\n\t\t\t\tintrastateCode: intrastateCode,\n\t\t\t\tintrastateNumber: intrastateCode\n\t\t\t};\n\n\t\t\tlocalStorage.setItem('carrierImpersonated' + carrierId, angular.toJson(carrierImpersonated));\n\t\t}\n\n\t\tfunction getCarrierImpersonated() {\n\t\t\tif ($stateParams.carrierId) {\n\t\t\t\tvar carrierImpersonated = angular.fromJson(localStorage\n\t\t\t\t\t.getItem('carrierImpersonated' + $stateParams.carrierId));\n\t\t\t\tif (!carrierImpersonated)\n\t\t\t\t\treturn {};\n\n\t\t\t\treturn carrierImpersonated;\n\t\t\t}\n\n\t\t\treturn {};\n\t\t}\n\n\t\tfunction setUserName(name) {\n\t\t\t_userName = name;\n\t\t}\n\n\t\tfunction getUserName() {\n\t\t\treturn _userName;\n\t\t}\n\n\t\tfunction setCapabilities(capabilities) {\n\t\t\t_capabilities = capabilities;\n\t\t}\n\n\t\tfunction getCapabilities() {\n\t\t\treturn _capabilities;\n\t\t}\n\n\t\tfunction setAllowedLogins(allowedLogins) {\n\t\t\t_allowedLogins = allowedLogins;\n\t\t}\n\n\t\tfunction getAllowedLogins() {\n\t\t\treturn _allowedLogins;\n\t\t}\n\n\t\tfunction getDomain() {\n\t\t\treturn _domain;\n\t\t}\n\n\t\tfunction setDomain(domain, scope) {\n\t\t\t$http\n\t\t\t\t.get('/api/brokerLookup/brokerLandingPage', { params: { domain: domain } })\n\t\t\t\t.then(function (response) {\n\t\t\t\t\tsetBrokerBranding(response.data);\n\t\t\t\t\t_domain = domain;\n\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_DOMAIN_DATA_LOADED);\n\t\t\t\t\tsaveCarrierVisit();\n\t\t\t\t})\n\t\t\t\t.catch(function (e) {\n\t\t\t\t\t$log.error(e);\n\t\t\t\t});\n\t\t}\n\n\t\tfunction clearDomain() {\n\t\t\t_domain = null;\n\t\t\tclearBrokerBranding();\n\t\t}\n\n\t\tfunction saveCarrierVisit() {\n\t\t\tif (_broker && isAuthorizedCarrierRead()) {\n\t\t\t\tvar request = {\n\t\t\t\t\tbrokerId: _broker.brokerId\n\t\t\t\t};\n\n\t\t\t\t$http.post('/api/carrierregistration/registerCarrierVisit', request);\n\t\t\t}\n\t\t}\n\n\t\tfunction getBrokerBranding() {\n\t\t\treturn _broker;\n\t\t}\n\n\t\tfunction getBrokerLogoURL() {\n\t\t\tif (_broker.imageMimeType) {\n\t\t\t\treturn 'data:' + _broker.imageMimeType + ';base64,' + _broker.imageFile;\n\t\t\t}\n\t\t}\n\n\t\tfunction setBrokerBranding(broker) {\n\t\t\t_broker = broker;\n\t\t}\n\n\t\tfunction clearBrokerBranding() {\n\t\t\t_broker = null;\n\t\t}\n\n\t\tfunction setCarrierReadyToSign(isReady) {\n\t\t\t_carrierReadyToSign = isReady;\n\t\t}\n\n\t\tfunction getCarrierReadyToSign() {\n\t\t\treturn _carrierReadyToSign;\n\t\t}\n\n\t\tfunction saveState() {\n\t\t\tlocalStorage.setItem('session.userName', angular.toJson(_userName));\n\t\t\tlocalStorage.setItem('session.capabilities', angular.toJson(_capabilities));\n\t\t}\n\n\t\tfunction restoreState() {\n\t\t\t_userName = angular.fromJson(localStorage.getItem('session.userName'));\n\t\t\t_capabilities = angular.fromJson(localStorage.getItem('session.capabilities'));\n\t\t}\n\n\t\tfunction isAuthorized(capability) {\n\t\t\tif (_capabilities === null)\n\t\t\t\treturn false;\n\n\t\t\treturn (_userName !== '') && (_capabilities.indexOf(capability) !== -1);\n\t\t}\n\n\t\tfunction isAuthorizedInternalAdmin() {\n\t\t\tif (isAuthorized('InternalAdmin') || isAuthorized('InternalAccount'))\n\t\t\t\treturn true;\n\t\t\telse\n\t\t\t\treturn false;\n\t\t}\n\n\t\tfunction isAuthorizedBrokerAdmin() {\n\t\t\tif (isAuthorized('BrokerAdmin') || ($stateParams.brokerId && isAuthorizedInternalAdmin()))\n\t\t\t\treturn true;\n\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction isAuthorizedBrokerRead() {\n\t\t\tif (isAuthorized('BrokerRead') || ($stateParams.brokerId && isAuthorizedInternalAdmin()))\n\t\t\t\treturn true;\n\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction isAuthorizedBrokerWrite() {\n\t\t\tif (isAuthorized('BrokerWrite') || ($stateParams.brokerId && isAuthorizedInternalAdmin()))\n\t\t\t\treturn true;\n\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction isAuthorizedCarrierRead() {\n\t\t\tif (isAuthorized('CarrierRead'))\n\t\t\t\treturn true;\n\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction isAuthorizedCarrierWrite() {\n\t\t\tif (isAuthorized('CarrierWrite'))\n\t\t\t\treturn true;\n\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction isAuthorizedCarrierSign() {\n\t\t\tif (isAuthorized('CarrierSign'))\n\t\t\t\treturn true;\n\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction isAuthorizedCarrierAdmin() {\n\t\t\tif (isAuthorized('CarrierAdmin'))\n\t\t\t\treturn true;\n\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction isBroker() {\n\t\t\treturn isAuthorizedBrokerRead() ||\n\t\t\t(isAuthorizedInternalAdmin() && $stateParams.brokerId);\n\t\t}\n\n\t\tfunction isCarrier() {\n\t\t\treturn isAuthorizedCarrierRead() ||\n\t\t\t(isAuthorizedInternalAdmin() && $stateParams.carrierId && !$stateParams.brokerId\n\t\t\t);\n\t\t}\n\n\t\tfunction isUsurpEnabled(){\n\t\t\treturn _usurpEnabled;\n\t\t}\n\n\t\tfunction getCarrierNavState() {\n\t\t\treturn _carrierNavState;\n\t\t}\n\n\t\tfunction setCarrierNavState(carrierNavState) {\n\t\t\treturn _carrierNavState = carrierNavState;\n\t\t}\n\n\t\tfunction getCarouselViewed() {\n\t\t\treturn localStorage.getItem('carouselViewed');\n\t\t}\n\n\t\tfunction setCarouselViewed() {\n\t\t\tlocalStorage.setItem('carouselViewed', true);\n\t\t}\n\n\t\tfunction getApplicationSettings() {\n\t\t\treturn $http.get('/api/application/settings').then(\n\t\t\t\tfunction (response) {\n\t\t\t\t\treturn response.data;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction setUsurpEnabled() {\n\t\t\tgetApplicationSettings()\n\t\t\t\t.then(function (response) {\n\t\t\t\t\t_usurpEnabled = response.usurpEnabled;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction setLastVisitedPage(options) {\n\t\t\tlocalStorage.setItem('lastVisitedPageKey', angular.toJson({\n\t\t\t\tname: options ? options.name : $state.current.name,\n\t\t\t\tparams: options ? options.params : $state.params,\n\t\t\t\tcapabilities: getCapabilities()\n\t\t\t}));\n\t\t}\n\n\t\tfunction getLastVisitedPage() {\n\t\t\treturn angular.fromJson(localStorage.getItem('lastVisitedPageKey'));\n\t\t}\n\n\t\tfunction removeLastVisitedPage() {\n\t\t\tlocalStorage.removeItem('lastVisitedPageKey');\n\t\t}\n\n\t\tfunction redirectToLogin() {\n\t\t\t$window.location.href = $window.location.origin + '/logout'; \n\t\t}\n\n\t\tfunction getBrokerByDomainName(broker) {\n\t\t\treturn $http.get('/api/brokerLookup/brokerLandingPage?domain=' + broker);\n\t\t}\n\t}\n})();\n","'use strict';\n\n(function () {\n\tangular.module('onboarding.services')\n\t\t.factory('spinnerService', spinnerService);\n\n\tvar subjectObserverMessagesService,\n\t\tobserverService;\n\n\tspinnerService.$inject = ['subjectObserverMessagesService', 'observerService'];\n\n\tfunction spinnerService(_subjectObserverMessagesService_, _observerService_) {\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\n\t\treturn {\n\t\t\tstartSpinner: startSpinner,\n\t\t\tstopSpinner: stopSpinner\n\t\t};\n\n\t\tfunction startSpinner(targetScope) {\n\t\t\tsetTimeout(function () {\n\t\t\t\tobserverService.sendMessageToSubject(targetScope,\n\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_WAITING);\n\t\t\t}, 1);\n\t\t}\n\n\t\tfunction stopSpinner(targetScope) {\n\t\t\tobserverService.sendMessageToSubject(targetScope,\n\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_DONE);\n\t\t}\n\t}\n})();\n","'use strict';\n(function() {\n\tangular.module('onboarding.services')\n\t\t.factory('subjectObserverMessagesService', subjectObserverMessagesService);\n\n\tfunction subjectObserverMessagesService() {\n\t\tvar OBSERVER_NAME_PRE = 'COB_OBSERVER_';\n\t\tvar SUBJECT_NAME_PRE = 'COB_SUBJECT_';\n\t\tvar OBSERVER_MESSAGE_PRE = 'cob:observer:';\n\t\tvar SUBJECT_MESSAGE_PRE = 'cob:subject:';\n\n\t\tvar MESSAGES = {\n\t\t\tCARRIER_LIST_EXPAND: 'carrierListExpand',\n\t\t\tLOGIN_STARTING: 'loginStarting',\n\t\t\tLOGIN_FINISHED_SUCCESS: 'loginFinishedSuccess',\n\t\t\tLOGIN_FINISHED_FAIL: 'loginFinishedFail',\n\t\t\tSESSION_RESUME: 'sessionResume',\n\t\t\tFILE_UPLOAD_SAVED: 'fileUploadSaved',\n\t\t\tFILE_UPLOAD_SUCCESS: 'fileUploadSuccess',\n\t\t\tFILE_UPLOAD_ERROR: 'fileUploadError',\n\t\t\tFORM_VALIDATION_ERROR: 'formValidationError',\n\t\t\tCONTRACT_GROUP_SELECTED: 'contractGroupSelected',\n\t\t\tSETTINGS_BROKER_OPEN: 'settingsBrokerOpen',\n\t\t\tSETTINGS_BROKER_CLOSE: 'settingsBrokerClose',\n\t\t\tPROFILE_CARRIER_OPEN: 'profileCarrierOpen',\n\t\t\tPROFILE_CARRIER_CLOSE: 'profileCarrierClose',\n\t\t\tPROFILE_SETTINGS_DIRTY: 'profileSettingsDirty',\n\t\t\tPROFILE_SETTINGS_CLEAN: 'profileSettingsClean',\n\t\t\tPROFILE_SETTINGS_CHANGE_VIEW: 'profileSettingsChangeView',\n\t\t\tPROFILE_SETTINGS_SAVE_VIEW: 'profileSettingsSaveView',\n\t\t\tSCROLL_MESSAGE: 'scrollMessage',\n\t\t\tVIEW_CHANGE: 'viewChange',\n\t\t\tAJAX_WAITING: 'ajaxWaiting',\n\t\t\tAJAX_DONE: 'ajaxDone',\n\t\t\tDOMAIN_DATA_LOADED: 'domainDataLoaded',\n\t\t\tCHANGE_WELCOME_VIEW: 'changeWelcomeView',\n\t\t\tSTART_CHANGE_CARRIER_PROFILE_VIEW: 'startChangeCarrierProfileView',\n\t\t\tFINISH_CHANGE_CARRIER_PROFILE_VIEW: 'finishChangeCarrierProfileView',\n\t\t\tCARRIER_PROFILE_VIEW_IS_DIRTY: 'carrierProfileViewIsDirty',\n\t\t\tCARRIER_PROFILE_VIEW_LOAD: 'carrierProfileViewLoad',\n\t\t\tCARRIER_PROFILE_W8_LOADED: 'carrierProfileW8Loaded',\n\t\t\tCARRIER_PROFILE_W9_LOADED: 'carrierProfileW9Loaded',\n\t\t\tCARRIER_PROFILE_TAX_RELOAD: 'carrierProfileTaxReload',\n\t\t\tCARRIER_PROFILE_INSUREANCE_DOB_LOADED: 'carrierProfileInsuranceDobLoaded',\n\t\t\tCARRIER_PROFILE_INSUREANCE_REG_LOADED: 'carrierProfileInsuranceRegLoaded',\n\t\t\tCARRIER_PROFILE_INSUREANCE_RELOAD: 'carrierProfileInsuranceReload',\n\t\t\tCARRIER_PROFILE_VIEW_STATUS: 'carrierProfileViewStatus',\n\t\t\tCARRIER_PROFILE_READY_TO_SIGN: 'carrierProfileReadyToSign',\n\t\t\tSET_PENDING_TAB: 'setPendingCarrierProfileViewChange',\n\t\t\tCARRIER_PROFILE_STATUS_FINISH: 'profileStatusLookupFinish',\n\t\t\tLOAD_CHATSUPPORT: 'loadLiveChatSupport',\n\t\t\tCARRIER_SCROLL : 'carrierScroll',\n\t\t\tHTTP_ERROR_401: 'browserError401',\n\t\t\tHTTP_ERROR_404: 'browserError404',\n\t\t\tHTTP_ERROR_500: 'browserError500',\n\t\t\tCAROUSEL_REQUEST_OPEN: 'carouselRequestOpen'\n\t\t};\n\t\tvar observerMessages = {};\n\t\tvar subjectMessages = {};\n\t\tvar observerMessageLookup = {};\n\n\t\tbuildMessages();\n\n\t\treturn {\n\t\t\tgetObserverMessages: getObserverMessages,\n\t\t\tgetSubjectMessages: getSubjectMessages,\n\t\t\tgetObserverMessageLookup: getObserverMessageLookup\n\t\t};\n\n\t\tfunction getObserverMessageLookup() {\n\t\t\treturn observerMessageLookup;\n\t\t}\n\n\t\tfunction getObserverMessages() {\n\t\t\treturn observerMessages;\n\t\t}\n\n\t\tfunction getSubjectMessages() {\n\t\t\treturn subjectMessages;\n\t\t}\n\n\t\tfunction buildMessages() {\n\t\t\tfor (var message in MESSAGES) {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(MESSAGES, message)) {\n\t\t\t\t\tvar observerMessage = OBSERVER_NAME_PRE + message;\n\t\t\t\t\tvar subjectMessage = SUBJECT_NAME_PRE + message;\n\t\t\t\t\tobserverMessages[observerMessage] = OBSERVER_MESSAGE_PRE + MESSAGES[message];\n\t\t\t\t\tsubjectMessages[subjectMessage] = SUBJECT_MESSAGE_PRE + MESSAGES[message];\n\n\t\t\t\t\tobserverMessageLookup[subjectMessages[subjectMessage]] = observerMessages[observerMessage];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n})();\n","'use strict';\n(function () {\n\tangular.module('onboarding.services')\n\t\t.factory('validationService', validationService);\n\n\tfunction validationService() {\n\n\t\treturn {\n\t\t\tisValidCanadianPostalCode: isValidCanadianPostalCode,\n\t\t\tisValidEmail: isValidEmail,\n\t\t\tisValidUsPostalCode: isValidUsPostalCode,\n\t\t\tisValidPassword: isValidPassword\n\t\t};\n\n\t\tfunction isValidCanadianPostalCode(postalCode) {\n\t\t\t//Canadian postal codes can't contain the letters D, F, I, O, Q, or U, and cannot start with W or Z\n\t\t\treturn /^[ABCEGHJKLMNPRSTVXY][0-9][ABCEGHJKLMNPRSTVWXYZ] ?[0-9][ABCEGHJKLMNPRSTVWXYZ][0-9]$/i.test(postalCode);\n\t\t}\n\n\t\tfunction isValidEmail(email) {\n\t\t\t// eslint-disable-next-line no-useless-escape\n\t\t\treturn /^([a-zA-Z0-9])([a-zA-Z0-9_\\.\\-])*([a-zA-Z0-9_])\\@(([a-zA-Z0-9\\-])+\\.)+([a-zA-Z]{2,4})+$/.test(email);\n\t\t}\n\n\t\tfunction isValidUsPostalCode(postalCode) {\n\t\t\tif (/^[0-9]{5}$/.test(postalCode)) { //97008\n\t\t\t\treturn true;\n\t\t\t} else if (/^[0-9]{5}(-[0-9]{4})$/.test(postalCode)) { //97008-4928\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction isValidPassword(password) {\n\t\t\tif (password.length > 0) {\n\t\t\t\tvar hasLowerCase = Boolean(/^(?=.*[a-z])/.test(password));\n\t\t\t\tvar hasUpperCase = Boolean(/^(?=.*[A-Z])/.test(password));\n\t\t\t\tvar hasNumber = Boolean(/^(?=.*\\d)/.test(password));\n\t\t\t\tvar hasSpecialCharacter = Boolean(/(?=.*[\\W|_])/.test(password));\n\t\t\t\tvar hasThreePasswordStrengths = Number(hasLowerCase) + Number(hasUpperCase) + Number(hasNumber) + Number(hasSpecialCharacter) >= 3;\n\n\t\t\t\treturn !(!hasThreePasswordStrengths || password.length < 15);\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n})();\n","angular.module('onboarding.constants', [])\r\n\r\n.constant('appConfig', {appVersion:'0202584432'})\r\n\r\n;","'use strict';\n\nangular.module('onboarding.carrier',\n\t[\n\t]);\n","'use strict';\n\n(function() {\n\tangular.module('onboarding.carrier')\n\t\t.directive('cobCarrierRegistration', cobCarrierRegistration);\n\n\tcobCarrierRegistration.$inject = [\n\t\t'$state', 'subjectObserverMessagesService', 'observerService', 'carrierRegistrationService',\n\t\t'authenticationService', 'sessionService', 'validationService', 'spinnerService'\n\t];\n\n\tvar $state,\n\t\tsubjectMessages,\n\t\tobserverMessages,\n\t\tsubjectObserverMessagesService,\n\t\tobserverService,\n\t\tcarrierRegistrationService,\n\t\tauthenticationService,\n\t\tsessionService,\n\t\tspinnerService,\n\t\tvalidationService;\n\n\tfunction cobCarrierRegistration(_$state_,\n\t\t_subjectObserverMessagesService_,\n\t\t_observerService_,\n\t\t_carrierRegistrationService_,\n\t\t_authenticationService_,\n\t\t_sessionService_,\n\t\t_validationService_,\n\t\t_spinnerService_) {\n\t\t$state = _$state_;\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tcarrierRegistrationService = _carrierRegistrationService_;\n\t\tauthenticationService = _authenticationService_;\n\t\tsessionService = _sessionService_;\n\t\tvalidationService = _validationService_;\n\t\tspinnerService = _spinnerService_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/carrier/carrierRegistration.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\t\t\tvar carrier = carrierRegistrationService.getCarrier();\n\n\t\t\tif (Object.keys(carrier).length === 0) {\n\t\t\t\t$state.go('dot');\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tscope.m = {\n\t\t\t\tcarrier: carrier,\n\t\t\t\tfirstName: '',\n\t\t\t\tlastName: '',\n\t\t\t\tjobTitle: '',\n\t\t\t\tphoneNumber: '',\n\t\t\t\tphoneExtension: '',\n\t\t\t\temailAddress: '',\n\t\t\t\tpassword1: '',\n\t\t\t\tpassword2: '',\n\t\t\t\tfirstNameError: '',\n\t\t\t\tlastNameError: '',\n\t\t\t\tphoneNumberError: '',\n\t\t\t\tjobTitleError: '',\n\t\t\t\temailAddressError: '',\n\t\t\t\tpassword1Error: '',\n\t\t\t\tpassword2Error: '',\n\t\t\t\tisAccountCreatedSuccess: false,\n\n\t\t\t\terrors: []\n\t\t\t};\n\n\t\t\tscope.submitForm = submitForm;\n\t\t\tscope.validateFirstNameField = validateFirstNameField;\n\t\t\tscope.validateLastNameField = validateLastNameField;\n\t\t\tscope.validateJobTitleField = validateJobTitleField;\n\t\t\tscope.validatePhoneNumberField = validatePhoneNumberField;\n\t\t\tscope.validateEmailAddressField = validateEmailAddressField;\n\t\t\tscope.validatePassword1 = validatePassword1;\n\t\t\tscope.validatePasswords = validatePasswords;\n\t\t\tscope.getIntrastateLabel = getIntrastateLabel;\n\n\t\t\tregisterObserverHandlers();\n\t\t\tdocument.title = 'Carrier Registration';\n\n\t\t}\n\n\t\tfunction registerObserverHandlers() {\n\t\t\tobserverService.registerHandlers(scope,\n\t\t\t\t[\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_LOGIN_FINISHED_SUCCESS, handler: onLoginSuccess },\n\t\t\t\t]);\n\t\t}\n\n\t\tfunction submitForm() {\n\t\t\tvalidateForm();\n\t\t}\n\n\t\tfunction validateForm() {\n\t\t\tvalidateFirstNameField();\n\t\t\tvalidateLastNameField();\n\t\t\tvalidateJobTitleField();\n\t\t\tvalidatePhoneNumberField();\n\t\t\tvalidateEmailAddressField();\n\t\t\tvalidatePasswords();\n\n\t\t\tif (scope.m.firstNameError.length === 0 &&\n scope.m.lastNameError.length === 0 &&\n scope.m.phoneNumberError.length === 0 &&\n scope.m.emailAddressError.length === 0 &&\n scope.m.jobTitleError.length === 0 &&\n scope.m.password1Error.length === 0 &&\n scope.m.password2Error.length === 0) {\n\n\t\t\t\tspinnerService.startSpinner(scope);\n\n\t\t\t\tcarrierRegistrationService.registerCarrier(scope.m.carrier.tCoreId,\n\t\t\t\t\tscope.m.firstName,\n\t\t\t\t\tscope.m.lastName,\n\t\t\t\t\tscope.m.jobTitle,\n\t\t\t\t\tscope.m.phoneNumber,\n\t\t\t\t\tscope.m.phoneExtension,\n\t\t\t\t\tscope.m.emailAddress,\n\t\t\t\t\tscope.m.password1)\n\t\t\t\t\t.then(function(response) {\n\t\t\t\t\t\tif (!response.data.accountAlreadyExists) {\n\t\t\t\t\t\t\tscope.m.isAccountCreatedSuccess = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tscope.m.emailAddressError = 'The email address entered is already associated ' +\n 'with an existing DAT OnBoard account. Please enter a different email address to proceed.';\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.finally(function() {\n\t\t\t\t\t\tspinnerService.stopSpinner(scope);\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t}\n\n\t\tfunction validateFirstNameField() {\n\t\t\tif (scope.m.firstName.length === 0) {\n\t\t\t\tscope.m.firstNameError = 'Input is required';\n\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tscope.m.firstNameError = '';\n\n\t\t\treturn scope.m.firstNameError.length === 0;\n\t\t}\n\n\t\tfunction validateLastNameField() {\n\t\t\tif (scope.m.lastName.length === 0) {\n\t\t\t\tscope.m.lastNameError = 'Input is required';\n\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tscope.m.lastNameError = '';\n\n\t\t\treturn scope.m.lastNameError.length === 0;\n\t\t}\n\n\t\tfunction validateJobTitleField() {\n\t\t\tif (scope.m.jobTitle.length === 0) {\n\t\t\t\tscope.m.jobTitleError = 'Input is required';\n\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tscope.m.jobTitleError = '';\n\n\t\t\treturn scope.m.jobTitleError.length === 0;\n\t\t}\n\n\t\tfunction validatePhoneNumberField() {\n\t\t\tif (scope.m.phoneNumber.length === 0) {\n\t\t\t\tscope.m.phoneNumberError = 'Input is required';\n\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (scope.m.phoneNumber.length !== 10) {\n\t\t\t\tscope.m.phoneNumberError = 'Valid input is required';\n\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (scope.m.phoneNumber[0] === '0' || scope.m.phoneNumber[0] === '1') {\n\t\t\t\tscope.m.phoneNumberError = 'Valid input is required';\n\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tscope.m.phoneNumberError = '';\n\n\t\t\treturn scope.m.phoneNumberError.length === 0;\n\t\t}\n\n\t\tfunction validateEmailAddressField() {\n\t\t\tif (scope.m.emailAddress.length === 0) {\n\t\t\t\tscope.m.emailAddressError = 'Input is required';\n\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (!validationService.isValidEmail(scope.m.emailAddress)) {\n\t\t\t\tscope.m.emailAddressError = 'Valid email is required';\n\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tscope.m.emailAddressError = '';\n\n\t\t\treturn scope.m.emailAddressError.length === 0;\n\t\t}\n\n\t\tfunction validatePassword1() {\n\t\t\tif (scope.m.password1.length === 0) {\n\t\t\t\tscope.m.password1Error = 'Input is required';\n\t\t\t} else {\n\t\t\t\tscope.m.password1Error = '';\n\t\t\t}\n\n\t\t\tif (scope.m.password1.length > 0) {\n\t\t\t\tif (!validationService.isValidPassword(scope.m.password1)) {\n\t\t\t\t\tscope.m.password1Error = 'Password requirements were not met.';\n\t\t\t\t} else {\n\t\t\t\t\tscope.m.password1Error = '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction validatePasswords() {\n\t\t\tif (scope.m.password1.length === 0) {\n\t\t\t\tscope.m.password1Error = 'Input is required';\n\t\t\t} else {\n\t\t\t\tscope.m.password1Error = '';\n\t\t\t}\n\n\t\t\tif (scope.m.password2.length === 0) {\n\t\t\t\tscope.m.password2Error = 'Input is required';\n\t\t\t} else {\n\t\t\t\tscope.m.password2Error = '';\n\t\t\t}\n\n\t\t\tif (scope.m.password1.length > 0) {\n\t\t\t\tif (!validationService.isValidPassword(scope.m.password1)) {\n\t\t\t\t\tscope.m.password1Error = 'Password requirements were not met.';\n\t\t\t\t} else {\n\t\t\t\t\tscope.m.password1Error = '';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (scope.m.password2.length > 0) {\n\t\t\t\tif (!validationService.isValidPassword(scope.m.password2)) {\n\t\t\t\t\tscope.m.password2Error = 'Password requirements were not met.';\n\t\t\t\t} else {\n\t\t\t\t\tscope.m.password2Error = '';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (scope.m.password1.length > 0 && scope.m.password2.length > 0) {\n\t\t\t\tif (scope.m.password1 !== scope.m.password2) {\n\t\t\t\t\tscope.m.password2Error = 'Passwords must match';\n\t\t\t\t} else {\n\t\t\t\t\tscope.m.password2Error = '';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn scope.m.password1Error.length === 0 && scope.m.password2Error.length === 0;\n\t\t}\n\n\t\tfunction getIntrastateLabel() {\n\t\t\tif (scope.m.carrier.intrastateState === 'AB' ||\n scope.m.carrier.intrastateState === 'BC' ||\n scope.m.carrier.intrastateState === 'ON' ||\n scope.m.carrier.intrastateState === 'PQ' ||\n scope.m.carrier.intrastateState === 'MB' ||\n scope.m.carrier.intrastateState === 'NS' ||\n scope.m.carrier.intrastateState === 'NB' ||\n scope.m.carrier.intrastateState === 'PE' ||\n scope.m.carrier.intrastateState === 'SK' ||\n scope.m.carrier.intrastateState === 'NL' ||\n scope.m.carrier.intrastateState === 'NT' ||\n scope.m.carrier.intrastateState === 'YT' ||\n scope.m.carrier.intrastateState === 'NU') {\n\t\t\t\treturn 'Canadian DAT ID Number: ';\n\t\t\t} else {\n\t\t\t\treturn 'Intrastate Number: ';\n\t\t\t}\n\t\t}\n\n\t\tfunction onLoginSuccess() {\n\t\t\tsessionService.saveCarrierVisit();\n\t\t\t$state.go('carrierProfile.company.showModal');\n\t\t}\n\t}\n\n})();\n","'use strict';\n\n(function() {\n\tangular.module('onboarding.carrier')\n\t\t.directive('cobAccountCreatedModal', cobAccountCreatedModal);\n\n\tcobAccountCreatedModal.$inject = ['sessionService', '$state', 'subjectObserverMessagesService', 'observerService'];\n\n\tvar sessionService,\n\t\t$state,\n\t\tsubjectMessages,\n\t\tobserverMessages,\n\t\tsubjectObserverMessagesService,\n\t\tobserverService,\n\t\t_domain;\n\n\tfunction cobAccountCreatedModal(_sessionService_, _$state_, _subjectObserverMessagesService_, _observerService_) {\n\t\tsessionService = _sessionService_;\n\t\t$state = _$state_;\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {},\n\t\t\treplace: false,\n\t\t\ttemplateUrl: '/app/carrier/profile/accountCreatedSuccess.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\t\t\tscope.m = {};\n\t\t\n\t\t\tscope.onStartProfile = onStartProfile;\n\t\t\tdocument.title = 'Account Created';\n\t\t\t_domain = getDomain(); \n\n\t\t\tif (_domain) {\n\t\t\t\tsetBrokerBrandingByName(); \n\t\t\t}\n\t\t}\n\n\t\tfunction onStartProfile() {\n\t\t\tsessionService.redirectToLogin();\n\t\t}\n\n\t\tfunction setBrokerBrandingByName() {\n\t\t\tsessionService.getBrokerByDomainName(_domain)\n\t\t\t\t.then(function(response) {\n\t\t\t\t\tvar broker = response.data;\n\n\t\t\t\t\tif (broker.imageMimeType) {\n\t\t\t\t\t\tscope.m.logoUrl = 'data:' + broker.imageMimeType + ';base64,' + broker.imageFile;\n\t\t\t\t\t}\n\n\t\t\t\t\tscope.m.welcomeMessage = broker.welcomeMessage;\n\t\t\t\t\tscope.m.brokerName = broker.brokerName;\n\t\t\t\t}); \n\t\t}\n\n\t\tfunction getDomain() {\n\t\t\treturn $('base').attr('href').split('/')[1];\n\t\t}\n\t}\n\n})();\n","'use strict';\n\n(function() {\n\tangular.module('onboarding.carrier')\n\t\t.directive('cobCarrierProfile', cobCarrierProfile);\n\n\tcobCarrierProfile.$inject = [\n\t\t'$timeout', 'sessionService', 'subjectObserverMessagesService', 'observerService', 'carrierRegistrationService'\n\t];\n\n\tvar $timeout, sessionService, subjectObserverMessagesService, observerService, carrierRegistrationService;\n\tvar subjectMessages, observerMessages;\n\n\tfunction cobCarrierProfile(_$timeout_,\n\t\t_sessionService_,\n\t\t_subjectObserverMessagesService_,\n\t\t_observerService_,\n\t\t_carrierRegistrationService_) {\n\t\t$timeout = _$timeout_;\n\t\tsessionService = _sessionService_;\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tcarrierRegistrationService = _carrierRegistrationService_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/carrier/profile/carrierProfile.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\n\t\t}\n\t}\n\n})();\n","'use strict';\n\n(function() {\n\tangular.module('onboarding.carrier')\n\t\t.directive('cobCarrierProfileCompany', cobCarrierProfileCompany);\n\n\tcobCarrierProfileCompany.$inject = [\n\t\t'$location', '$timeout', 'subjectObserverMessagesService', 'observerService', 'sessionService',\n\t\t'carrierRegistrationService', 'carrierDocumentsService', '$stateParams', 'spinnerService'\n\t];\n\n\tvar NOA_DOCUMENT_TYPE = 'Notice of Assigment (NOA)';\n\tvar NOA_DOCUMENT_HEADER_INFO = 'Please upload Notice of Assigment (NOA) document';\n\tvar NOA_DOCUMENT_UPLOADED_MESSAGE = 'You can now proceed with onboarding (registration).';\n\n\tvar CORPORATION_COMPANY_TYPE = 'Corporation';\n\tvar PARTNERSHIP_COMPANY_TYPE = 'Partnership';\n\tvar SOLE_PROPRIETORSHIP_COMPANY_TYPE = 'Sole Proprietorship';\n\tvar LIMITED_LIABILITY_COMPANY_TYPE = 'Limited Liability Company (LLC)';\n\tvar COOPERATIVE_CANADA_COMPANY_TYPE = 'Cooperative (Canada)';\n\n\tvar $location,\n\t\t$timeout,\n\t\tsubjectObserverMessagesService,\n\t\tobserverService,\n\t\tsessionService,\n\t\tcarrierRegistrationService,\n\t\tcarrierDocumentsService,\n\t\tspinnerService,\n\t\tsubjectMessages,\n\t\tobserverMessages,\n\t\t$stateParams;\n\n\tfunction cobCarrierProfileCompany(\n\t\t_$location_,\n\t\t_$timeout_,\n\t\t_subjectObserverMessagesService_,\n\t\t_observerService_,\n\t\t_sessionService_,\n\t\t_carrierRegistrationService_,\n\t\t_carrierDocumentsService_,\n\t\t_$stateParams_,\n\t\t_spinnerService_) {\n\t\t$timeout = _$timeout_;\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tsessionService = _sessionService_;\n\t\tcarrierRegistrationService = _carrierRegistrationService_;\n\t\tcarrierDocumentsService = _carrierDocumentsService_;\n\t\tspinnerService = _spinnerService_;\n\t\t$location = _$location_;\n\t\t$stateParams = _$stateParams_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/carrier/profile/carrierProfileCompany.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\t\t\tscope.carrierId = $stateParams.carrierId;\n\t\t\tif (!scope.carrierId) {\n\t\t\t\tscope.carrierId = -1;\n\t\t\t}\n\n\t\t\tscope.noaDocumentHeaderInfo = NOA_DOCUMENT_HEADER_INFO;\n\t\t\tscope.noaDocumentUploadedMessage = NOA_DOCUMENT_UPLOADED_MESSAGE;\n\n\t\t\tscope.tab = '';\n\t\t\tscope.setIsDirty = setIsDirty;\n\t\t\tscope.scacKeyDown = scacKeyDown;\n\t\t\tscope.veteranOwnedChange = veteranOwnedChange;\n\t\t\tscope.minorityOwnedChange = minorityOwnedChange;\n\t\t\tscope.certifiedByNMSDCChanged = certifiedByNMSDCChanged;\n\t\t\tscope.mailingAddressSameAsPhysicalAddressChange = mailingAddressSameAsPhysicalAddressChange;\n\t\t\tscope.remitToAddressSameAsPhysicalAddressChange = remitToAddressSameAsPhysicalAddressChange;\n\t\t\tscope.remitToAddressSameAsMailingAddressChange = remitToAddressSameAsMailingAddressChange;\n\t\t\tscope.factoringCompanyChange = factoringCompanyChange;\n\n\t\t\tscope.validateCompanyTypeField = validateCompanyTypeField;\n\t\t\tscope.validateYearFoundedField = validateYearFoundedField;\n\t\t\tscope.validateScacField = validateScacField;\n\t\t\tscope.validateRemitToNameField = validateRemitToNameField;\n\n\t\t\tscope.onForceGo = onForceGo;\n\t\t\tscope.saveData = saveData;\n\t\t\tscope.goToTab = goToTab;\n\t\t\tscope.uploadNoaFile = uploadNoaFile;\n\t\t\tscope.deleteNoaFile = deleteNoaFile;\n\n\t\t\tscope.ux_requirement_hack_for_scrolling = false;\n\n\t\t\tscope.m = {\n\t\t\t\tisDirty: false,\n\t\t\t\tisBroker: sessionService.isBroker(),\n\t\t\t\tisAdmin: sessionService.isAuthorizedInternalAdmin(),\n\t\t\t\tmailingAddressSameAsPhysicalAddress: true,\n\t\t\t\tremitToAddressSameAsPhysicalAddress: true,\n\t\t\t\tremitToAddressSameAsMailingAddress: false,\n\t\t\t\tfactoringCompanyDocuments: []\n\t\t\t};\n\n\t\t\tscope.companyTypesDic = createCompanyTypesDic();\n\n\t\t\tscope.companyTypes = [\n\t\t\t\tCORPORATION_COMPANY_TYPE,\n\t\t\t\tLIMITED_LIABILITY_COMPANY_TYPE,\n\t\t\t\tSOLE_PROPRIETORSHIP_COMPANY_TYPE,\n\t\t\t\tPARTNERSHIP_COMPANY_TYPE,\n\t\t\t\tCOOPERATIVE_CANADA_COMPANY_TYPE\n\t\t\t];\n\n\t\t\tscope.minorityTypes = {\n\t\t\t\t' ': ' ', // using blank makes 2 options once selected\n\t\t\t\t'AsianPacific': 'Asian Pacific',\n\t\t\t\t'AfricanAmerican': 'African American',\n\t\t\t\t'Hispanic': 'Hispanic',\n\t\t\t\t'AsianIndianAmerican': 'Asian-Indian American',\n\t\t\t\t'NativeAmericanIndian': 'Native American Indian'\n\t\t\t};\n\t\t\tregisterObserverHandlers();\n\t\t\tloadData();\n\t\t\tdocument.title = 'Profile-Company';\n\n\t\t\t$timeout(function() {\n\t\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_CARRIER_PROFILE_VIEW_LOAD);\n\t\t\t},\n\t\t\t100);\n\n\t\t}\n\n\t\tfunction createCompanyTypesDic() {\n\t\t\tvar companyTypesDic = {};\n\t\t\tcompanyTypesDic[CORPORATION_COMPANY_TYPE] = 'Corporation';\n\t\t\tcompanyTypesDic[PARTNERSHIP_COMPANY_TYPE] = 'Partnership';\n\t\t\tcompanyTypesDic[SOLE_PROPRIETORSHIP_COMPANY_TYPE] = 'SoleProprietorship';\n\t\t\tcompanyTypesDic[LIMITED_LIABILITY_COMPANY_TYPE] = 'LimitedLiabilityCompanyLLC';\n\t\t\tcompanyTypesDic[COOPERATIVE_CANADA_COMPANY_TYPE] = 'CooperativeCanada';\n\n\t\t\treturn companyTypesDic;\n\t\t}\n\n\t\tfunction registerObserverHandlers() {\n\t\t\tobserverService.registerHandlers(scope,\n\t\t\t\t[\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_START_CHANGE_CARRIER_PROFILE_VIEW, handler: saveData },\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_CARRIER_PROFILE_VIEW_IS_DIRTY, handler: setIsDirty },\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_SET_PENDING_TAB, handler: setPendingTab }\n\t\t\t\t]);\n\n\t\t\tscope.$on('$destroy',\n\t\t\t\tfunction() {\n\t\t\t\t\twindow.onbeforeunload = undefined;\n\t\t\t\t});\n\n\t\t\tscope.$on('$locationChangeStart',\n\t\t\t\tfunction(event) {\n\t\t\t\t\tif (scope.m.isDirty) {\n\t\t\t\t\t\tif (!scope.ux_requirement_hack_for_scrolling) {\n\t\t\t\t\t\t\tif (!\n\t\t\t\t\t\t\tconfirm('You have unsaved data. If you leave this page any changes will be lost. Changes are saved using the Save buttons at the bottom of the page. Are you sure you want to leave the page?')) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tscope.ux_requirement_hack_for_scrolling = false;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction factoringCompanyChange() {\n\t\t\tscope.m.remitToName = null;\n\t\t\tscope.m.remitToAddress = {};\n\t\t\tscope.m.remitToNameError = '';\n\t\t\tscope.m.factoringCompanyDocumentError = '';\n\t\t\tscope.m.remitToAddressSameAsMailingAddress = false;\n\t\t\tscope.m.remitToAddressSameAsPhysicalAddress = false;\n\t\t\tsetIsDirty();\n\t\t}\n\n\t\tfunction setIsDirty() {\n\t\t\tscope.m.isDirty = true;\n\t\t\twindow.onbeforeunload = function() {\n\t\t\t\treturn 'You have unsaved data. If you leave this page any changes will be lost. Changes are saved using the Save buttons at the bottom of the page.';\n\t\t\t};\n\t\t}\n\n\t\tfunction loadData() {\n\t\t\tcarrierRegistrationService.lookupCarrierCompanyInfo(scope.carrierId)\n\t\t\t\t.then(function(response) {\n\t\t\t\t\tscope.m.certificationNumber = response.data.certificationNumber;\n\t\t\t\t\tscope.m.certifiedByNMSDC = response.data.certifiedByNMSDC;\n\n\t\t\t\t\tscope.m.compnayName = response.data.compnayName;\n\t\t\t\t\tscope.m.status = response.data.status;\n\t\t\t\t\tscope.m.companyType = getCompanyType(response.data.companyType);\n\t\t\t\t\tscope.m.disabaledVeteranOwned = response.data.disabaledVeteranOwned;\n\t\t\t\t\tif (response.data.minorityType === 'NotMinorityOwned') {\n\t\t\t\t\t\tscope.m.minorityType = ' ';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tscope.m.minorityType = response.data.minorityType;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (response.data.minorityOwned) {\n\t\t\t\t\t\tscope.m.minorityOwned = response.data.minorityOwned;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tscope.m.minorityOwned = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tscope.m.nameOfRegionalCouncil = response.data.nameOfRegionalCouncil;\n\n\t\t\t\t\tscope.m.scac = response.data.scac;\n\t\t\t\t\tscope.m.veteranOwned = response.data.veteranOwned;\n\t\t\t\t\tscope.m.womanOwned = response.data.womanOwned;\n\n\t\t\t\t\tif (response.data.yearFounded > 0)\n\t\t\t\t\t\tscope.m.yearFounded = response.data.yearFounded;\n\n\t\t\t\t\tif (response.data.physicalAddress) {\n\t\t\t\t\t\tscope.m.physicalAddress = response.data.physicalAddress;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tscope.physicalAddress = {};\n\t\t\t\t\t}\n\n\t\t\t\t\tscope.m.mailingAddressSameAsPhysicalAddress = response.data.mailingAddressSameAsPhysicalAddress;\n\t\t\t\t\tif (!response.data.mailingAddressSameAsPhysicalAddress) {\n\t\t\t\t\t\tif (response.data.mailingAddress) {\n\t\t\t\t\t\t\tscope.m.mailingAddress = response.data.mailingAddress;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tscope.m.mailingAddress = {};\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tscope.m.mailingAddress = {};\n\t\t\t\t\t}\n\t\t\t\t\tscope.m.remitToAddressSameAsMailingAddress = response.data.remitToAddressSameAsMailingAddress;\n\t\t\t\t\tscope.m.remitToAddressSameAsPhysicalAddress = response.data.remitToAddressSameAsPhysicalAddress;\n\t\t\t\t\tif (!scope.m.remitToAddressSameAsMailingAddress && !scope.m.remitToAddressSameAsPhysicalAddress) {\n\t\t\t\t\t\tif (response.data.remitToAddress) {\n\t\t\t\t\t\t\tscope.m.remitToName = response.data.remitToName;\n\t\t\t\t\t\t\tscope.m.remitToAddress = response.data.remitToAddress;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tscope.m.remitToAddress = {};\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tscope.m.remitToAddress = {};\n\t\t\t\t\t}\n\n\t\t\t\t\tscope.m.interestInQuickPay = response.data.quickPay;\n\t\t\t\t\tscope.m.factoringCompany = response.data.factoringCompany;\n\t\t\t\t\tscope.m.isDirty = false;\n\t\t\t\t\twindow.onbeforeunload = undefined;\n\n\t\t\t\t\tloadDocuments();\n\t\t\t\t})\n\t\t\t\t.catch(function(e) {\n\t\t\t\t\tconsole.log(e);\n\t\t\t\t});\n\t\t}\n\n\t\tfunction getCompanyType(companyType) {\n\t\t\treturn Object.keys(scope.companyTypesDic)\n\t\t\t\t.find(function (key) {\n\t\t\t\t\treturn scope.companyTypesDic[key] === companyType;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction loadDocuments() {\n\t\t\tcarrierRegistrationService.lookupCarrierDocuments(scope.carrierId).then(function (response) {\n\t\t\t\tvar documents = response.data.documents;\n\t\t\t\tscope.m.factoringCompanyDocuments = carrierDocumentsService.getDocumentsByType(documents, NOA_DOCUMENT_TYPE);\n\t\t\t});\n\t\t}\n\n\t\tfunction scacKeyDown(event) {\n\t\t\tvar charCode = (event.which) ? event.which : event.keyCode;\n\t\t\tvar key = event.keyCode;\n\n\t\t\tswitch (charCode) {\n\t\t\tcase 8: //backspace\n\t\t\tcase 35: //end\n\t\t\tcase 36: //home\n\t\t\tcase 37: //left arrow\n\t\t\tcase 39: //right arrow\n\t\t\tcase 46: //delete\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If the keys include the TAB, CTRL, SHIFT, ALT, or META keys, 10 key pad, or the arrow keys, do nothing.\n\t\t\t// This lets us support copy and paste too\n\t\t\tif ((key === 91) ||\n (15 < key && key < 19) ||\n (37 <= key && key <= 40) ||\n (key === 9) ||\n (96 <= key && key <= 105)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t//comma\n\t\t\tif ((key === 188)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!/^[a-z ]+$/i.test(String.fromCharCode(charCode))) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\n\t\tfunction goToTab(tab) {\n\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_SET_PENDING_TAB, tab);\n\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\tsubjectMessages.COB_SUBJECT_START_CHANGE_CARRIER_PROFILE_VIEW,\n\t\t\t\tnavigate);\n\t\t}\n\n\t\tfunction setPendingTab(tab) {\n\t\t\tscope.tab = tab;\n\t\t}\n\n\t\tfunction navigate() {\n\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\tsubjectMessages.COB_SUBJECT_FINISH_CHANGE_CARRIER_PROFILE_VIEW,\n\t\t\t\tscope.tab);\n\t\t}\n\n\t\tfunction onForceGo() {\n\t\t\tif (typeof (scope.pendingCallback) === 'function')\n\t\t\t\tscope.pendingCallback();\n\t\t}\n\n\t\tfunction saveData(callback, isRecursive) {\n\t\t\t// Brokers cannot save data.\n\t\t\tif (scope.m.isDirty && !scope.m.isBroker) {\n\t\t\t\tif (!isRecursive) {\n\t\t\t\t\tvalidateAddresses();\n\t\t\t\t}\n\t\t\t\tif (scope.m.physicalAddressIsValid === null ||\n scope.m.mailingAddressIsValid === null ||\n scope.m.remitToAddressIsValid === null) {\n\t\t\t\t\t$timeout(function() { saveData(callback, true); }, 100);\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (validateForm()) {\n\t\t\t\t\tif (scope.m.remitToAddressSameAsPhysicalAddress || scope.m.remitToAddressSameAsMailingAddress) {\n\t\t\t\t\t\tscope.m.remitToName = null;\n\t\t\t\t\t}\n\t\t\t\t\tcarrierRegistrationService.updateCarrierCompanyInfo(scope.carrierId,\n\t\t\t\t\t\tscope.companyTypesDic[scope.m.companyType],\n\t\t\t\t\t\tscope.m.yearFounded,\n\t\t\t\t\t\tscope.m.scac,\n\t\t\t\t\t\tscope.m.womanOwned,\n\t\t\t\t\t\tscope.m.veteranOwned,\n\t\t\t\t\t\tscope.m.disabaledVeteranOwned,\n\t\t\t\t\t\tscope.m.minorityOwned,\n\t\t\t\t\t\tscope.m.minorityType,\n\t\t\t\t\t\tscope.m.certifiedByNMSDC,\n\t\t\t\t\t\tscope.m.nameOfRegionalCouncil,\n\t\t\t\t\t\tscope.m.certificationNumber,\n\t\t\t\t\t\tscope.m.physicalAddress,\n\t\t\t\t\t\tscope.m.mailingAddressSameAsPhysicalAddress,\n\t\t\t\t\t\tscope.m.mailingAddress,\n\t\t\t\t\t\tscope.m.remitToAddressSameAsPhysicalAddress,\n\t\t\t\t\t\tscope.m.remitToAddressSameAsMailingAddress,\n\t\t\t\t\t\tscope.m.remitToName,\n\t\t\t\t\t\tscope.m.remitToAddress,\n\t\t\t\t\t\tscope.m.interestInQuickPay,\n\t\t\t\t\t\tscope.m.factoringCompany)\n\t\t\t\t\t\t.then(function() {\n\t\t\t\t\t\t\tscope.m.isDirty = false;\n\t\t\t\t\t\t\twindow.onbeforeunload = undefined;\n\t\t\t\t\t\t\tobserverService\n\t\t\t\t\t\t\t\t.sendMessageToSubject(scope,\n\t\t\t\t\t\t\t\t\tsubjectMessages.COB_SUBJECT_CARRIER_PROFILE_VIEW_STATUS,\n\t\t\t\t\t\t\t\t\t'company');\n\t\t\t\t\t\t\tif (typeof (callback) === 'function')\n\t\t\t\t\t\t\t\tcallback();\n\t\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tscope.pendingCallback = callback;\n\t\t\t\t\tscope.showSectionMessage = true;\n\n\t\t\t\t\t$timeout(function() {\n\t\t\t\t\t\tscope.ux_requirement_hack_for_scrolling = true;\n\t\t\t\t\t\t$('.profile-company')\n\t\t\t\t\t\t\t.animate({\n\t\t\t\t\t\t\t\tscrollTop: $('#error-summary').offset().top\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t200);\n\t\t\t\t\t\tsetIsDirty();\n\t\t\t\t\t},\n\t\t\t\t\t1);\n\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (typeof (callback) === 'function')\n\t\t\t\t\tcallback();\n\t\t\t}\n\t\t}\n\n\t\tfunction veteranOwnedChange() {\n\t\t\tif (!scope.m.veteranOwned) {\n\t\t\t\tscope.m.disabaledVeteranOwned = false;\n\t\t\t}\n\t\t}\n\n\t\tfunction minorityOwnedChange() {\n\t\t\tif (!scope.m.minorityOwned) {\n\t\t\t\tscope.m.minorityType = ' ';\n\t\t\t\tscope.m.certifiedByNMSDC = false;\n\t\t\t\tcertifiedByNMSDCChanged();\n\t\t\t}\n\t\t}\n\n\t\tfunction certifiedByNMSDCChanged() {\n\t\t\tif (!scope.m.certifiedByNMSDC) {\n\t\t\t\tscope.m.nameOfRegionalCouncil = '';\n\t\t\t\tscope.m.certificationNumber = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction mailingAddressSameAsPhysicalAddressChange() {\n\t\t\tif (scope.m.mailingAddressSameAsPhysicalAddress) {\n\t\t\t\tscope.m.mailingAddress = {};\n\t\t\t\tif (scope.m.remitToAddressSameAsMailingAddress) {\n\t\t\t\t\tscope.m.remitToAddressSameAsPhysicalAddress = true;\n\t\t\t\t\tscope.m.remitToAddressSameAsMailingAddress = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction remitToAddressSameAsPhysicalAddressChange() {\n\t\t\tif (scope.m.remitToAddressSameAsPhysicalAddress) {\n\t\t\t\tscope.m.remitToAddress = {};\n\t\t\t\tscope.m.remitToAddressSameAsMailingAddress = false;\n\t\t\t\tscope.m.remitToNameError = '';\n\t\t\t\tscope.m.remitToName = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction remitToAddressSameAsMailingAddressChange() {\n\t\t\tif (scope.m.remitToAddressSameAsMailingAddress) {\n\t\t\t\tscope.m.remitToAddress = {};\n\t\t\t\tscope.m.remitToAddressSameAsPhysicalAddress = false;\n\t\t\t\tscope.m.remitToNameError = '';\n\t\t\t\tscope.m.remitToName = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateForm() {\n\n\t\t\tvalidateCompanyTypeField();\n\t\t\tvalidateYearFoundedField();\n\t\t\tvalidateScacField();\n\t\t\tvalidateRemitToNameField();\n\t\t\tvalidateQuikPayField();\n\t\t\tvalidateFactoringCompanyField();\n\t\t\tvalidateFactoringCompanyDocument();\n\n\t\t\tvar isValid = isFormValid();\n\t\t\tif (isValid) {\n\t\t\t\tscope.showSectionMessage = false;\n\t\t\t}\n\n\t\t\treturn isValid;\n\t\t}\n\n\t\tfunction isFormValid() {\n\t\t\treturn !scope.m.companyTypeError && !scope.m.yearFoundedError && !scope.m.scacError &&\n scope.m.physicalAddressIsValid && scope.m.mailingAddressIsValid && scope.m.remitToAddressIsValid &&\n !scope.m.remitToNameError & !scope.m.QuikPayError && !scope.m.factoringCompanyError && !scope.m.factoringCompanyDocumentError;\n\t\t}\n\n\t\tfunction validateAddresses() {\n\t\t\tscope.m.physicalAddressIsValid = null;\n\t\t\tif (!scope.m.mailingAddressSameAsPhysicalAddress)\n\t\t\t\tscope.m.mailingAddressIsValid = null;\n\t\t\telse\n\t\t\t\tscope.m.mailingAddressIsValid = true;\n\n\t\t\tif (!scope.m.remitToAddressSameAsMailingAddress && !scope.m.remitToAddressSameAsPhysicalAddress)\n\t\t\t\tscope.m.remitToAddressIsValid = null;\n\t\t\telse\n\t\t\t\tscope.m.remitToAddressIsValid = true;\n\t\t}\n\n\t\tfunction validateCompanyTypeField() {\n\t\t\tif (!scope.m.companyType) {\n\t\t\t\tscope.m.companyTypeError = 'Please select an option';\n\t\t\t} else {\n\t\t\t\tscope.m.companyTypeError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateYearFoundedField() {\n\t\t\tif (typeof scope.m.yearFounded === 'string') {\n\t\t\t\tif (!scope.m.yearFounded ||\n !scope.m.yearFounded.match(/^(?:19|20)\\d{2}$/)) {\n\t\t\t\t\tscope.m.yearFoundedError = 'Valid input is required';\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tscope.m.yearFounded = parseInt(scope.m.yearFounded);\n\t\t\t}\n\t\t\tif (scope.m.yearFounded > new Date().getFullYear()) {\n\t\t\t\tscope.m.yearFoundedError = 'Valid input is required';\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tscope.m.yearFoundedError = '';\n\t\t}\n\n\t\tfunction validateScacField() {\n\t\t\tif (scope.m.scac) {\n\t\t\t\tif (!scope.m.scac.match(/^[a-zA-Z]{2,4}(,\\s?[a-zA-Z]{2,4})*$/)) {\n\t\t\t\t\tscope.m.scacError = 'Valid input is required';\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tscope.m.scacError = '';\n\t\t}\n\n\t\tfunction validateRemitToNameField() {\n\t\t\tif (!scope.m.remitToAddressSameAsMailingAddress &&\n !scope.m.remitToAddressSameAsPhysicalAddress &&\n scope.m.factoringCompany &&\n !scope.m.remitToName) {\n\t\t\t\tscope.m.remitToNameError = 'Valid input is required.';\n\t\t\t} else {\n\t\t\t\tscope.m.remitToNameError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateQuikPayField() {\n\t\t\tif (typeof (scope.m.interestInQuickPay) === 'boolean') {\n\t\t\t\tscope.m.QuikPayError = '';\n\t\t\t} else {\n\t\t\t\tscope.m.QuikPayError = 'Please select an option.';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateFactoringCompanyField() {\n\t\t\tif (typeof (scope.m.factoringCompany) === 'boolean') {\n\t\t\t\tscope.m.factoringCompanyError = '';\n\t\t\t} else {\n\t\t\t\tscope.m.factoringCompanyError = 'Please select an option.';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateFactoringCompanyDocument() {\n\t\t\tscope.m.factoringCompanyDocumentError = '';\n\n\t\t\tif (!scope.m.factoringCompany) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!scope.m.factoringCompanyDocuments || scope.m.factoringCompanyDocuments.length === 0) {\n\t\t\t\tscope.m.factoringCompanyDocumentError = 'Document upload is mandatory. Please make sure to attach your Notice of Assignment (NOA).';\n\t\t\t}\n\t\t}\n\n\t\tfunction uploadNoaFile(file) {\n\t\t\tif (!file) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar validationResult = carrierDocumentsService.validateFile(file);\n\t\t\tif (!validationResult.succeeded) {\n\t\t\t\tscope.m.factoringCompanyUploadResult = validationResult;\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tuploadFile(file, NOA_DOCUMENT_TYPE);\n\t\t}\n\n\t\tfunction uploadFile(file, type) {\n\t\t\tspinnerService.startSpinner(scope);\n\n\t\t\tcarrierDocumentsService.getBase64DataUrl(file).then(function (url) {\n\t\t\t\tvar documentFile = {\n\t\t\t\t\tdocumentName: file.name,\n\t\t\t\t\tmimeType: file.type,\n\t\t\t\t\tdocumentType: type,\n\t\t\t\t\tdescription: '',\n\t\t\t\t\tbase64: url.split(',')[1]\n\t\t\t\t};\n\n\t\t\t\tcarrierDocumentsService.uploadDocument(documentFile, scope.carrierId).then(function (response) {\n\t\t\t\t\tif (response.data.isSuccess) {\n\t\t\t\t\t\tif (type === NOA_DOCUMENT_TYPE) {\n\t\t\t\t\t\t\tscope.m.factoringCompanyDocuments.unshift(response.data.document);\n\t\t\t\t\t\t\tscope.m.factoringCompanyUploadedRecently = true;\n\t\t\t\t\t\t\tscope.m.factoringCompanyUploadResult = carrierDocumentsService.getResult(true);\n\t\t\t\t\t\t\tscope.m.factoringCompanyDocumentError = '';\n\t\t\t\t\t\t\tsetIsDirty();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}).finally(function () {\n\t\t\t\t\tspinnerService.stopSpinner(scope);\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tfunction deleteNoaFile(file) {\n\t\t\tscope.m.factoringCompanyUploadedRecently = false;\n\t\t\tscope.m.factoringCompanyUploadResult = {};\n\t\t\tsetIsDirty();\n\t\t}\n\t}\n\n})();\n","/* eslint-disable no-useless-escape */\n/* eslint-disable no-undef */\n// TODO: remove code above and fix issues in case changing this file\n'use strict';\n\n(function() {\n\tangular.module('onboarding.carrier')\n\t\t.directive('cobCarrierProfileContacts', cobCarrierProfileContacts);\n\n\tcobCarrierProfileContacts.$inject = [\n\t\t'$timeout', 'sessionService', 'subjectObserverMessagesService',\n\t\t'observerService', 'carrierRegistrationService', 'validationService', '$stateParams'\n\t];\n\n\tvar $timeout,\n\t\tsessionService,\n\t\tsubjectObserverMessagesService,\n\t\tobserverService,\n\t\tcarrierRegistrationService,\n\t\tsubjectMessages,\n\t\tobserverMessages,\n\t\thasPrimary,\n\t\tvalidationService,\n\t\t$stateParams;\n\n\n\tfunction cobCarrierProfileContacts(_$timeout_,\n\t\t_sessionService_,\n\t\t_subjectObserverMessagesService_,\n\t\t_observerService_,\n\t\t_carrierRegistrationService_,\n\t\t_validationService_,\n\t\t_$stateParams_) {\n\t\t$timeout = _$timeout_;\n\t\tsessionService = _sessionService_;\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tcarrierRegistrationService = _carrierRegistrationService_;\n\t\tvalidationService = _validationService_;\n\t\t$stateParams = _$stateParams_;\n\n\t\thasPrimary = false;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/carrier/profile/carrierProfileContacts.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\t\t\tscope.carrierId = $stateParams.carrierId;\n\n\t\t\tscope.contactNameTypeAheadFilter = contactNameTypeAheadFilter;\n\t\t\tscope.contactNameTypeAheadSelect = contactNameTypeAheadSelect;\n\t\t\tscope.contactNameChange = contactNameChange;\n\t\t\tscope.contactNameBlur = contactNameBlur;\n\t\t\tscope.contactNameFocus = contactNameFocus;\n\t\t\tscope.contactPrimaryDisable = contactPrimaryDisable;\n\n\t\t\tscope.contactAddEditClick = contactAddEditClick;\n\t\t\tscope.contactCancelClick = contactCancelClick;\n\t\t\tscope.saveContact = saveContact;\n\t\t\tscope.deleteContact = deleteContact;\n\t\t\tscope.contactDeleteConfirm = contactDeleteConfirm;\n\t\t\tscope.contactDeleteCancel = contactDeleteCancel;\n\n\t\t\tscope.saveReference = saveReference;\n\t\t\tscope.deleteReference = deleteReference;\n\t\t\tscope.referenceCancelClick = referenceCancelClick;\n\t\t\tscope.referenceAddEditClick = referenceAddEditClick;\n\n\t\t\tscope.validateContactCompany = validateContactCompany;\n\t\t\tscope.validateContactName = validateContactName;\n\t\t\tscope.validateContactPhoneNumber = validateContactPhoneNumber;\n\t\t\tscope.validateContactFaxNumber = validateContactFaxNumber;\n\t\t\tscope.validateContactEmail = validateContactEmail;\n\n\t\t\tscope.setIsDirtyContacts = setIsDirtyContacts;\n\t\t\tscope.setIsDirtyReferences = setIsDirtyReferences;\n\t\t\tscope.goToTab = goToTab;\n\t\t\tscope.onForceGo = onForceGo;\n\n\t\t\tscope.m = {\n\t\t\t\tisBroker: sessionService.isBroker(),\n\t\t\t\tisAdmin: sessionService.isAuthorizedInternalAdmin(),\n\t\t\t\tcontacts: [\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayRole: 'Owner/Officer',\n\t\t\t\t\t\tid: 'owner',\n\t\t\t\t\t\trole: 'Owner or Officer',\n\t\t\t\t\t\tvalidation: {}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayRole: 'Accounting',\n\t\t\t\t\t\tid: 'accounting',\n\t\t\t\t\t\trole: 'Accounting',\n\t\t\t\t\t\tvalidation: {}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayRole: 'Dispatch & Operations',\n\t\t\t\t\t\tid: 'dispatch',\n\t\t\t\t\t\trole: 'Dispatch and Operations',\n\t\t\t\t\t\tvalidation: {}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayRole: 'Safety & Claims',\n\t\t\t\t\t\tid: 'safety',\n\t\t\t\t\t\trole: 'Safety and Claims',\n\t\t\t\t\t\tvalidation: {}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayRole: 'After Hours & Emergency',\n\t\t\t\t\t\tid: 'emergency',\n\t\t\t\t\t\trole: 'After Hours and Emergency',\n\t\t\t\t\t\tvalidation: {}\n\t\t\t\t\t}\n\t\t\t\t],\n\n\t\t\t\treference1: {\n\t\t\t\t\tvalidation: {}\n\t\t\t\t},\n\t\t\t\treference2: {\n\t\t\t\t\tvalidation: {}\n\t\t\t\t},\n\t\t\t\treference3: {\n\t\t\t\t\tvalidation: {}\n\t\t\t\t},\n\n\t\t\t\ttypeAheadFilter: [],\n\n\t\t\t\teditContact: false,\n\t\t\t\teditReference: false\n\t\t\t};\n\n\t\t\tscope.contactToDelete = {};\n\t\t\tloadData(false);\n\t\t\tregisterObserverHandlers();\n\t\t\tdocument.title = 'Profile-Contacts';\n\n\t\t}\n\n\t\tfunction loadData(skipSendLoad) {\n\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_AJAX_WAITING);\n\n\t\t\tcarrierRegistrationService.lookupContactsReferences(scope.carrierId)\n\t\t\t\t.then(function(response) {\n\t\t\t\t\thasPrimary = false;\n\t\t\t\t\tif (!scope.m.editContact) //do not reload contacts well they are being edited\n\t\t\t\t\t{\n\t\t\t\t\t\tscope.m.isDirtyContacts = false;\n\t\t\t\t\t\tif (!scope.m.isDirtyReferences) {\n\t\t\t\t\t\t\tsetSectionMessage(false);\n\t\t\t\t\t\t\twindow.onbeforeunload = undefined;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tangular.forEach(response.data.contacts,\n\t\t\t\t\t\t\tfunction(contact) {\n\n\t\t\t\t\t\t\t\tif (contact.isPrimary) {\n\t\t\t\t\t\t\t\t\thasPrimary = true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tswitch (contact.role) {\n\t\t\t\t\t\t\t\tcase 'Owner or Officer':\n\t\t\t\t\t\t\t\t\tscope.m.contacts[0].isPrimary = contact.isPrimary;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[0].name = contact.name;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[0].title = contact.title;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[0].phoneNumber = contact.phone;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[0].phoneExtension = contact.phoneExtension;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[0].faxNumber = contact.fax;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[0].email = contact.email;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[0].edit = false;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase 'Accounting':\n\t\t\t\t\t\t\t\t\tscope.m.contacts[1].isPrimary = contact.isPrimary;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[1].name = contact.name;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[1].title = contact.title;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[1].phoneNumber = contact.phone;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[1].phoneExtension = contact.phoneExtension;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[1].faxNumber = contact.fax;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[1].email = contact.email;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[1].edit = false;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase 'Dispatch and Operations':\n\t\t\t\t\t\t\t\t\tscope.m.contacts[2].isPrimary = contact.isPrimary;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[2].name = contact.name;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[2].title = contact.title;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[2].phoneNumber = contact.phone;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[2].phoneExtension = contact.phoneExtension;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[2].faxNumber = contact.fax;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[2].email = contact.email;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[2].edit = false;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase 'Safety and Claims':\n\t\t\t\t\t\t\t\t\tscope.m.contacts[3].isPrimary = contact.isPrimary;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[3].name = contact.name;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[3].title = contact.title;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[3].phoneNumber = contact.phone;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[3].phoneExtension = contact.phoneExtension;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[3].faxNumber = contact.fax;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[3].email = contact.email;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[3].edit = false;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase 'After Hours and Emergency':\n\t\t\t\t\t\t\t\t\tscope.m.contacts[4].isPrimary = contact.isPrimary;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[4].name = contact.name;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[4].title = contact.title;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[4].phoneNumber = contact.phone;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[4].phoneExtension = contact.phoneExtension;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[4].faxNumber = contact.fax;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[4].email = contact.email;\n\t\t\t\t\t\t\t\t\tscope.m.contacts[4].edit = false;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif (!scope.m.editReference) //do not reload references well they are being edited\n\t\t\t\t\t{\n\t\t\t\t\t\tif (!scope.m.isDirtyContacts) {\n\t\t\t\t\t\t\tsetSectionMessage(false);\n\t\t\t\t\t\t\twindow.onbeforeunload = undefined;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tresetReferences();\n\t\t\t\t\t\tangular.forEach(response.data.references,\n\t\t\t\t\t\t\tfunction(reference, index) {\n\t\t\t\t\t\t\t\tif (index === 0) {\n\t\t\t\t\t\t\t\t\tscope.m.reference1.companyName = reference.companyName;\n\t\t\t\t\t\t\t\t\tscope.m.reference1.name = reference.contactName;\n\t\t\t\t\t\t\t\t\tscope.m.reference1.phoneNumber = reference.phone;\n\t\t\t\t\t\t\t\t\tscope.m.reference1.phoneExtension = reference.phoneExtension;\n\t\t\t\t\t\t\t\t\tscope.m.reference1.referenceIndex = reference.referenceIndex;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (index === 1) {\n\t\t\t\t\t\t\t\t\tscope.m.reference2.companyName = reference.companyName;\n\t\t\t\t\t\t\t\t\tscope.m.reference2.name = reference.contactName;\n\t\t\t\t\t\t\t\t\tscope.m.reference2.phoneNumber = reference.phone;\n\t\t\t\t\t\t\t\t\tscope.m.reference2.phoneExtension = reference.phoneExtension;\n\t\t\t\t\t\t\t\t\tscope.m.reference2.referenceIndex = reference.referenceIndex;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (index === 2) {\n\t\t\t\t\t\t\t\t\tscope.m.reference3.companyName = reference.companyName;\n\t\t\t\t\t\t\t\t\tscope.m.reference3.name = reference.contactName;\n\t\t\t\t\t\t\t\t\tscope.m.reference3.phoneNumber = reference.phone;\n\t\t\t\t\t\t\t\t\tscope.m.reference3.phoneExtension = reference.phoneExtension;\n\t\t\t\t\t\t\t\t\tscope.m.reference3.referenceIndex = reference.referenceIndex;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.finally(function() {\n\t\t\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_AJAX_DONE);\n\t\t\t\t\tif (skipSendLoad)\n\t\t\t\t\t\treturn;\n\t\t\t\t\t$timeout(function () {\n\t\t\t\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_CARRIER_PROFILE_VIEW_LOAD);\n\t\t\t\t\t}, 0);\n\t\t\t\t});\n\t\t}\n\n\t\tfunction resetReferences() {\n\t\t\tscope.m.isDirtyReferences = false;\n\t\t\tscope.m.reference1.companyName = undefined;\n\t\t\tscope.m.reference1.name = undefined;\n\t\t\tscope.m.reference1.phoneNumber = undefined;\n\t\t\tscope.m.reference1.phoneExtension = undefined;\n\t\t\tscope.m.reference1.referenceIndex = undefined;\n\n\t\t\tscope.m.reference2.companyName = undefined;\n\t\t\tscope.m.reference2.name = undefined;\n\t\t\tscope.m.reference2.phoneNumber = undefined;\n\t\t\tscope.m.reference2.phoneExtension = undefined;\n\t\t\tscope.m.reference2.referenceIndex = undefined;\n\n\t\t\tscope.m.reference3.companyName = undefined;\n\t\t\tscope.m.reference3.name = undefined;\n\t\t\tscope.m.reference3.phoneNumber = undefined;\n\t\t\tscope.m.reference3.phoneExtension = undefined;\n\t\t\tscope.m.reference3.referenceIndex = undefined;\n\t\t}\n\n\t\tfunction registerObserverHandlers() {\n\n\t\t\tscope.$on('$destroy',\n\t\t\t\tfunction() {\n\t\t\t\t\twindow.onbeforeunload = undefined;\n\t\t\t\t});\n\n\t\t\tscope.$on('$locationChangeStart',\n\t\t\t\tfunction(event) {\n\t\t\t\t\tif (scope.m.isDirtyReferences || scope.m.isDirtyContacts) {\n\t\t\t\t\t\tif (!\n\t\t\t\t\t\tconfirm('You have unsaved data. If you leave this page any changes will be lost. Changes are saved using the Save buttons at the bottom of the page. Are you sure you want to leave the page?')) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\tobserverService.registerHandlers(scope,\n\t\t\t\t[\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_START_CHANGE_CARRIER_PROFILE_VIEW, handler: saveData },\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_SET_PENDING_TAB, handler: setPendingTab }\n\t\t\t\t]);\n\t\t}\n\n\t\tfunction setIsDirtyContacts() {\n\t\t\tscope.m.isDirtyContacts = true;\n\t\t\twindow.onbeforeunload = function() {\n\t\t\t\treturn 'You have unsaved data. If you leave this page any changes will be lost. Changes are saved using the Save buttons at the bottom of the page.';\n\t\t\t};\n\t\t}\n\n\t\tfunction setIsDirtyReferences() {\n\t\t\tscope.m.isDirtyReferences = true;\n\t\t\twindow.onbeforeunload = function() {\n\t\t\t\treturn 'You have unsaved data. If you leave this page any changes will be lost. Changes are saved using the Save buttons at the bottom of the page.';\n\t\t\t};\n\t\t}\n\n\t\tfunction saveData(callback) {\n\t\t\tif (scope.m.isDirtyContacts) {\n\t\t\t\tsaveContacts(callback);\n\t\t\t}\n\t\t\tif (scope.m.isDirtyReferences) {\n\t\t\t\tsaveReferences(callback);\n\t\t\t}\n\t\t\tif (!scope.m.isDirtyContacts && !scope.m.isDirtyReferences) {\n\t\t\t\tif (typeof (callback) === 'function') {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction saveContacts(callback) {\n\t\t\tif (hasContact()) {\n\t\t\t\tsaveContact(scope.m.contacts[0], callback);\n\t\t\t\tsaveContact(scope.m.contacts[1], callback);\n\t\t\t\tsaveContact(scope.m.contacts[2], callback);\n\t\t\t\tsaveContact(scope.m.contacts[3], callback);\n\t\t\t\tsaveContact(scope.m.contacts[4], callback);\n\t\t\t} else {\n\t\t\t\tscope.m.showContactRequired = true;\n\t\t\t\tsetSectionMessage(true);\n\n\t\t\t\tif (typeof (callback) === 'function') {\n\t\t\t\t\tscope.pendingCallback = callback;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction saveReferences(callback) {\n\t\t\tsaveReference(scope.m.reference1, callback);\n\t\t\tsaveReference(scope.m.reference2, callback);\n\t\t\tsaveReference(scope.m.reference3, callback);\n\t\t}\n\n\t\tfunction hasContact() {\n\t\t\treturn (scope.m.contacts[0].name ||\n scope.m.contacts[1].name ||\n scope.m.contacts[2].name ||\n scope.m.contacts[3].name ||\n scope.m.contacts[4].name);\n\t\t}\n\n\t\tfunction contactNameTypeAheadFilter(value) {\n\t\t\tvar filterResults = [];\n\t\t\tif (!value)\n\t\t\t\treturn filterResults;\n\t\t\tvar string = value.toLowerCase();\n\t\t\tif (scope.m.contacts[0].name) {\n\t\t\t\tif (scope.m.contacts[0].edit) {\n\t\t\t\t\tif (scope.m.ownerOfficerClean &&\n scope.m.ownerOfficerClean.name &&\n scope.m.ownerOfficerClean.name.toLowerCase().indexOf(string) > -1) {\n\t\t\t\t\t\tfilterResults.push(scope.m.ownerOfficerClean.name);\n\t\t\t\t\t}\n\t\t\t\t} else if (scope.m.contacts[0].name.toLowerCase().indexOf(string) > -1) {\n\t\t\t\t\tfilterResults.push(scope.m.contacts[0].name);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (scope.m.contacts[1].name) {\n\t\t\t\tif (scope.m.contacts[1].edit) {\n\t\t\t\t\tif (scope.m.accountingClean &&\n scope.m.accountingClean.name &&\n scope.m.accountingClean.name.toLowerCase().indexOf(string) > -1) {\n\t\t\t\t\t\tif (filterResults.indexOf(scope.m.accountingClean.name) > -1) { /** non unique} **/\n\t\t\t\t\t\t} else\n\t\t\t\t\t\t\tfilterResults.push(scope.m.accountingClean.name);\n\t\t\t\t\t}\n\t\t\t\t} else if (scope.m.contacts[1].name.toLowerCase().indexOf(string) > -1) {\n\t\t\t\t\tif (filterResults.indexOf(scope.m.contacts[1].name) > -1) { /** non unique} **/\n\t\t\t\t\t} else\n\t\t\t\t\t\tfilterResults.push(scope.m.contacts[1].name);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (scope.m.contacts[2].name) {\n\t\t\t\tif (scope.m.contacts[2].edit) {\n\t\t\t\t\tif (scope.m.dispatchOperationsClean &&\n scope.m.dispatchOperationsClean.name &&\n scope.m.dispatchOperationsClean.toLowerCase().name.indexOf(string) > -1) {\n\t\t\t\t\t\tif (filterResults.indexOf(scope.m.dispatchOperationsClean.name) > -1) { /** non unique} **/\n\t\t\t\t\t\t} else\n\t\t\t\t\t\t\tfilterResults.push(scope.m.dispatchOperationsClean.name);\n\t\t\t\t\t}\n\t\t\t\t} else if (scope.m.contacts[2].name.toLowerCase().indexOf(string) > -1) {\n\t\t\t\t\tif (filterResults.indexOf(scope.m.contacts[2].name) > -1) { /** non unique} **/\n\t\t\t\t\t} else\n\t\t\t\t\t\tfilterResults.push(scope.m.contacts[2].name);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (scope.m.contacts[3].name) {\n\t\t\t\tif (scope.m.contacts[3].edit) {\n\t\t\t\t\tif (scope.m.saftyClaimsClean &&\n scope.m.saftyClaimsClean.name &&\n scope.m.saftyClaimsClean.name.toLowerCase().indexOf(string) > -1) {\n\t\t\t\t\t\tif (filterResults.indexOf(scope.m.saftyClaimsClean.name) > -1) { /** non unique} **/\n\t\t\t\t\t\t} else\n\t\t\t\t\t\t\tfilterResults.push(scope.m.saftyClaimsClean.name);\n\t\t\t\t\t}\n\t\t\t\t} else if (scope.m.contacts[3].name.toLowerCase().indexOf(string) > -1) {\n\t\t\t\t\tif (filterResults.indexOf(scope.m.contacts[3].name) > -1) { /** non unique} **/\n\t\t\t\t\t} else\n\t\t\t\t\t\tfilterResults.push(scope.m.contacts[3].name);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (scope.m.contacts[4].name) {\n\t\t\t\tif (scope.m.contacts[4].edit) {\n\t\t\t\t\tif (scope.m.afterHoursEmergencyClean &&\n scope.m.afterHoursEmergencyClean.name &&\n scope.m.afterHoursEmergencyClean.name.toLowerCase().indexOf(string) > -1) {\n\t\t\t\t\t\tif (filterResults.indexOf(scope.m.afterHoursEmergencyClean.name) > -1) { /** non unique} **/\n\t\t\t\t\t\t} else\n\t\t\t\t\t\t\tfilterResults.push(scope.m.afterHoursEmergencyClean.name);\n\t\t\t\t\t}\n\t\t\t\t} else if (scope.m.contacts[4].name.toLowerCase().indexOf(string) > -1) {\n\t\t\t\t\tif (filterResults.indexOf(scope.m.contacts[4].name) > -1) { /** non unique} **/\n\t\t\t\t\t} else\n\t\t\t\t\t\tfilterResults.push(scope.m.contacts[4].name);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn filterResults;\n\t\t}\n\n\t\tfunction contactNameTypeAheadSelect(name, contact) {\n\t\t\tif (!name) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tscope.m.contacts[index].showTypeAhead = false;\n\n\t\t\tif (scope.m.contacts[0].name === name) {\n\t\t\t\tscope.m.contacts[index].name = scope.m.contacts[0].name;\n\t\t\t\tscope.m.contacts[index].title = scope.m.contacts[0].title;\n\t\t\t\tscope.m.contacts[index].phoneNumber = scope.m.contacts[0].phoneNumber;\n\t\t\t\tscope.m.contacts[index].phoneExtension = scope.m.contacts[0].phoneExtension;\n\t\t\t\tscope.m.contacts[index].faxNumber = scope.m.contacts[0].faxNumber;\n\t\t\t\tscope.m.contacts[index].email = scope.m.contacts[0].email;\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (scope.m.contacts[1].name === name) {\n\t\t\t\tscope.m.contacts[index].name = scope.m.contacts[1].name;\n\t\t\t\tscope.m.contacts[index].title = scope.m.contacts[1].title;\n\t\t\t\tscope.m.contacts[index].phoneNumber = scope.m.contacts[1].phoneNumber;\n\t\t\t\tscope.m.contacts[index].phoneExtension = scope.m.contacts[1].phoneExtension;\n\t\t\t\tscope.m.contacts[index].faxNumber = scope.m.contacts[1].faxNumber;\n\t\t\t\tscope.m.contacts[index].email = scope.m.contacts[1].email;\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (scope.m.contacts[2].name === name) {\n\t\t\t\tscope.m.contacts[index].name = scope.m.contacts[2].name;\n\t\t\t\tscope.m.contacts[index].title = scope.m.contacts[2].title;\n\t\t\t\tscope.m.contacts[index].phoneNumber = scope.m.contacts[2].phoneNumber;\n\t\t\t\tscope.m.contacts[index].phoneExtension = scope.m.contacts[2].phoneExtension;\n\t\t\t\tscope.m.contacts[index].faxNumber = scope.m.contacts[2].faxNumber;\n\t\t\t\tscope.m.contacts[index].email = scope.m.contacts[2].email;\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (scope.m.contacts[3].name) {\n\t\t\t\tscope.m.contacts[index].name = scope.m.contacts[3].name;\n\t\t\t\tscope.m.contacts[index].title = scope.m.contacts[3].title;\n\t\t\t\tscope.m.contacts[index].phoneNumber = scope.m.contacts[3].phoneNumber;\n\t\t\t\tscope.m.contacts[index].phoneExtension = scope.m.contacts[3].phoneExtension;\n\t\t\t\tscope.m.contacts[index].faxNumber = scope.m.contacts[3].faxNumber;\n\t\t\t\tscope.m.contacts[index].email = scope.m.contacts[3].email;\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (scope.m.contacts[4].name) {\n\t\t\t\tscope.m.contacts[index].name = scope.m.contacts[4].name;\n\t\t\t\tscope.m.contacts[index].title = scope.m.contacts[4].title;\n\t\t\t\tscope.m.contacts[index].phoneNumber = scope.m.contacts[4].phoneNumber;\n\t\t\t\tscope.m.contacts[index].phoneExtension = scope.m.contacts[4].phoneExtension;\n\t\t\t\tscope.m.contacts[index].faxNumber = scope.m.contacts[4].faxNumber;\n\t\t\t\tscope.m.contacts[index].email = scope.m.contacts[4].email;\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tfunction contactNameChange(index) {\n\t\t\tif (scope.contactNameBlurTimer) {\n\t\t\t\t$timeout.cancel(scope.contactNameBlurTimer);\n\t\t\t}\n\t\t\tif (scope.m.contacts[index].name)\n\t\t\t\tscope.m.contacts[index].showTypeAhead = true;\n\t\t\telse\n\t\t\t\tscope.m.contacts[index].showTypeAhead = false;\n\t\t}\n\n\t\tfunction contactNameBlur(index) {\n\t\t\tvalidateContactName(index);\n\n\t\t\tscope.contactNameBlurTimer = $timeout(function() {\n\t\t\t\tscope.m.contacts[index].showTypeAhead = false;\n\t\t\t},\n\t\t\t200);\n\t\t}\n\n\t\tfunction contactNameFocus(event) {\n\t\t\tevent.currentTarget.parentElement.children[0].focus();\n\t\t}\n\n\t\tfunction contactPrimaryDisable(index) {\n\t\t\tif (scope.m.contacts[index].edit) {\n\t\t\t\tif (!scope.m.contacts[index].clean.isPrimary && hasPrimary) {\n\t\t\t\t\treturn false;\n\t\t\t\t} else {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} else\n\t\t\t\treturn true;\n\t\t}\n\n\t\tfunction saveContact(index, callback) {\n\t\t\tif (!scope.m.contacts[index].edit) //if it is clean don't resave\n\t\t\t\treturn;\n\t\t\tif (validateContact(index)) {\n\t\t\t\tvar action;\n\t\t\t\tif (scope.m.contacts[index].clean && scope.m.contacts[index].clean.name) {\n\t\t\t\t\taction = 'EDIT';\n\t\t\t\t} else {\n\t\t\t\t\taction = 'ADD';\n\t\t\t\t}\n\n\t\t\t\tcarrierRegistrationService.updateCarrierContact(action,\n\t\t\t\t\tscope.m.contacts[index].name,\n\t\t\t\t\tscope.m.contacts[index].role,\n\t\t\t\t\tscope.m.contacts[index].title,\n\t\t\t\t\tscope.m.contacts[index].phoneNumber,\n\t\t\t\t\tscope.m.contacts[index].phoneExtension,\n\t\t\t\t\tscope.m.contacts[index].faxNumber,\n\t\t\t\t\tscope.m.contacts[index].email,\n\t\t\t\t\tscope.m.contacts[index].isPrimary,\n\t\t\t\t\tscope.carrierId)\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\tscope.m.editContact = false;\n\t\t\t\t\t\tscope.m.showContactRequired = false;\n\t\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\t\tsubjectMessages.COB_SUBJECT_CARRIER_PROFILE_VIEW_STATUS,\n\t\t\t\t\t\t\t'contacts');\n\n\t\t\t\t\t\tif (typeof (callback) === 'function') {\n\t\t\t\t\t\t\tif (!scope.m.editReference) //wait for references to save\n\t\t\t\t\t\t\t\tcallback();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tloadData(true);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t} else if (typeof (callback) === 'function') {\n\t\t\t\tsetSectionMessage(true);\n\t\t\t\tscope.pendingCallback = callback;\n\t\t\t}\n\t\t}\n\n\t\tfunction contactCancelClick(index) {\n\t\t\tscope.m.contacts[index].isPrimary = scope.m.contacts[index].clean.isPrimary;\n\t\t\tscope.m.contacts[index].name = scope.m.contacts[index].clean.name;\n\t\t\tscope.m.contacts[index].title = scope.m.contacts[index].clean.title;\n\t\t\tscope.m.contacts[index].phoneNumber = scope.m.contacts[index].clean.phoneNumber;\n\t\t\tscope.m.contacts[index].phoneExtension = scope.m.contacts[index].clean.phoneExtension;\n\t\t\tscope.m.contacts[index].faxNumber = scope.m.contacts[index].clean.faxNumber;\n\t\t\tscope.m.contacts[index].email = scope.m.contacts[index].clean.email;\n\t\t\tscope.m.contacts[index].edit = false;\n\n\t\t\tdelete scope.m.contacts[index].validation.name;\n\t\t\tdelete scope.m.contacts[index].validation.phoneNumber;\n\t\t\tdelete scope.m.contacts[index].validation.faxNumber;\n\t\t\tdelete scope.m.contacts[index].validation.email;\n\n\t\t\tscope.m.editContact = false;\n\t\t\tscope.m.isDirtyContacts = false;\n\t\t\tif (!scope.m.isDirtyReferences) {\n\t\t\t\tsetSectionMessage(false);\n\t\t\t}\n\t\t}\n\n\t\tfunction contactAddEditClick(index) {\n\n\t\t\tscope.m.editContact = true;\n\n\t\t\t$timeout(function() { scope.m.contacts[index].edit = true; }, 1);\n\n\n\t\t\tscope.m.contacts[index].clean = {\n\t\t\t\tisPrimary: scope.m.contacts[index].isPrimary,\n\t\t\t\tname: scope.m.contacts[index].name,\n\t\t\t\ttitle: scope.m.contacts[index].title,\n\t\t\t\tphoneNumber: scope.m.contacts[index].phoneNumber,\n\t\t\t\tphoneExtension: scope.m.contacts[index].phoneExtension,\n\t\t\t\tfaxNumber: scope.m.contacts[index].faxNumber,\n\t\t\t\temail: scope.m.contacts[index].email\n\t\t\t};\n\t\t\tif (!hasPrimary) {\n\t\t\t\tscope.m.contacts[index].isPrimary = true;\n\t\t\t}\n\t\t}\n\n\t\tfunction deleteContact(index) {\n\t\t\tscope.contactToDelete = scope.m.contacts[index];\n\t\t\tscope.m.showContactDeleteConfimation = true;\n\t\t}\n\n\t\tfunction contactDeleteConfirm() {\n\t\t\tcarrierRegistrationService.updateCarrierContact('DELETE',\n\t\t\t\tscope.contactToDelete.name,\n\t\t\t\tscope.contactToDelete.role,\n\t\t\t\tscope.contactToDelete.title,\n\t\t\t\tscope.contactToDelete.phoneNumber,\n\t\t\t\tscope.contactToDelete.phoneExtension,\n\t\t\t\tscope.contactToDelete.faxNumber,\n\t\t\t\tscope.contactToDelete.email,\n\t\t\t\tscope.contactToDelete.isPrimary,\n\t\t\t\tscope.carrierId)\n\t\t\t\t.then(function() {\n\t\t\t\t\tscope.contactToDelete.name = undefined;\n\t\t\t\t\tscope.contactToDelete.title = undefined;\n\t\t\t\t\tscope.contactToDelete.phoneNumber = undefined;\n\t\t\t\t\tscope.contactToDelete.phoneExtension = undefined;\n\t\t\t\t\tscope.contactToDelete.faxNumber = undefined;\n\t\t\t\t\tscope.contactToDelete.email = undefined;\n\t\t\t\t\tscope.contactToDelete.edit = false;\n\n\t\t\t\t\tscope.m.showContactDeleteConfimation = false;\n\t\t\t\t\tloadData(true);\n\t\t\t\t});\n\n\t\t}\n\n\t\tfunction contactDeleteCancel() {\n\t\t\tscope.m.showContactDeleteConfimation = false;\n\t\t}\n\n\t\tfunction saveReference(reference, callback) {\n\t\t\tif (!reference.edit) //if it is clean don't resave\n\t\t\t\treturn;\n\t\t\tif (validateReference(reference)) {\n\t\t\t\tvar action;\n\t\t\t\tif (reference && reference.clean && reference.clean.name) {\n\t\t\t\t\taction = 'EDIT';\n\t\t\t\t} else {\n\t\t\t\t\taction = 'ADD';\n\t\t\t\t}\n\n\t\t\t\tcarrierRegistrationService.updateCarrierReferences(reference.referenceIndex,\n\t\t\t\t\taction,\n\t\t\t\t\treference.companyName,\n\t\t\t\t\treference.name,\n\t\t\t\t\treference.phoneNumber,\n\t\t\t\t\treference.phoneExtension,\n\t\t\t\t\tscope.carrierId)\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\tscope.m.editReference = false;\n\t\t\t\t\t\treference.edit = false;\n\n\t\t\t\t\t\tif (typeof (callback) === 'function') {\n\t\t\t\t\t\t\tif (!scope.m.editContact) //wait for contacts to save\n\t\t\t\t\t\t\t\tcallback();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tloadData(true);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t} else if (typeof (callback) === 'function') {\n\t\t\t\tsetSectionMessage(true);\n\t\t\t\tscope.pendingCallback = callback;\n\t\t\t}\n\t\t}\n\n\t\tfunction deleteReference(reference) {\n\t\t\tcarrierRegistrationService.updateCarrierReferences(reference.referenceIndex,\n\t\t\t\t'DELETE',\n\t\t\t\treference.companyName,\n\t\t\t\treference.name,\n\t\t\t\treference.phoneNumber,\n\t\t\t\treference.phoneExtension,\n\t\t\t\tscope.carrierId)\n\t\t\t\t.then(function() {\n\n\t\t\t\t\treference.companyName = undefined;\n\t\t\t\t\treference.name = undefined;\n\t\t\t\t\treference.phoneNumber = undefined;\n\t\t\t\t\treference.phoneExtension = undefined;\n\t\t\t\t\treference.edit = false;\n\n\t\t\t\t\tloadData(true);\n\t\t\t\t});\n\t\t}\n\n\t\tfunction referenceCancelClick(reference) {\n\t\t\treference.companyName = reference.clean.companyName;\n\t\t\treference.name = reference.clean.name;\n\t\t\treference.phoneNumber = reference.clean.phoneNumber;\n\t\t\treference.phoneExtension = reference.clean.phoneExtension;\n\t\t\treference.edit = false;\n\n\t\t\tdelete reference.validation.companyName;\n\t\t\tdelete reference.validation.name;\n\t\t\tdelete reference.validation.phoneNumber;\n\t\t\tdelete reference.validation.faxNumber;\n\n\t\t\tscope.m.editReference = false;\n\t\t\tscope.m.isDirtyReferences = false;\n\t\t\tif (!scope.m.isDirtyContacts) {\n\t\t\t\tsetSectionMessage(false);\n\t\t\t}\n\t\t}\n\n\t\tfunction referenceAddEditClick(reference) {\n\t\t\tscope.m.editReference = true;\n\t\t\treference.edit = true;\n\n\t\t\treference.clean = {\n\t\t\t\tcompanyName: reference.companyName,\n\t\t\t\tname: reference.name,\n\t\t\t\tphoneNumber: reference.phoneNumber,\n\t\t\t\tphoneExtension: reference.phoneExtension\n\t\t\t};\n\t\t}\n\n\t\tfunction validateContact(index) {\n\n\t\t\tif (scope.m.contacts[index].edit) {\n\t\t\t\tvalidateContactName(index);\n\t\t\t\tvalidateContactPhoneNumber(index);\n\t\t\t\tvalidateContactFaxNumber(index);\n\t\t\t\tvalidateContactEmail(index);\n\t\t\t}\n\n\t\t\treturn Object.keys(scope.m.contacts[index].validation).length === 0;\n\t\t}\n\n\t\tfunction validateReference(reference) {\n\t\t\tif (reference.edit) {\n\t\t\t\tvalidateContactCompany(reference);\n\t\t\t\tvalidateContactName(reference);\n\t\t\t\tvalidateContactPhoneNumber(reference);\n\t\t\t}\n\n\t\t\treturn Object.keys(reference.validation).length === 0;\n\t\t}\n\n\t\tfunction validateContactCompany(index) {\n\t\t\tif (typeof index === 'object') {\n\t\t\t\tif (!index.companyName) {\n\t\t\t\t\tindex.validation.companyName = 'Input is required';\n\t\t\t\t} else {\n\t\t\t\t\tdelete index.validation.companyName;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (!scope.m.contacts[index].companyName) {\n\t\t\t\t\tscope.m.contacts[index].validation.companyName = 'Input is required';\n\t\t\t\t} else {\n\t\t\t\t\tdelete scope.m.contacts[index].validation.companyName;\n\t\t\t\t} \n\t\t\t}\n \n\t\t}\n\n\t\tfunction validateContactName(index) {\n\t\t\tif (typeof index === 'object') {\n\t\t\t\tif (index.name) {\n\t\t\t\t\tif (index.name.length > 40) {\n\t\t\t\t\t\tindex.validation.name = 'Valid input is required';\n\t\t\t\t\t}\n\n\t\t\t\t\tdelete index.validation.name;\n\t\t\t\t} else {\n\t\t\t\t\tindex.validation.name = 'Input is required';\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (scope.m.contacts[index].name) {\n\t\t\t\t\tif (scope.m.contacts[index].name.length > 40) {\n\t\t\t\t\t\tscope.m.contacts[index].validation.name = 'Valid input is required';\n\t\t\t\t\t}\n\n\t\t\t\t\tdelete scope.m.contacts[index].validation.name;\n\t\t\t\t} else {\n\t\t\t\t\tscope.m.contacts[index].validation.name = 'Input is required';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction validateContactPhoneNumber(index) {\n\t\t\tif (typeof index === 'object') {\n\t\t\t\tif (!index.phoneNumber) {\n\t\t\t\t\tindex.validation.phoneNumber = 'Input is required';\n\t\t\t\t} else if (index.phoneNumber.length !== 10) {\n\t\t\t\t\tindex.validation.phoneNumber = 'Valid input is required';\n\t\t\t\t} else if (index.phoneNumber[0] === '0' || index.phoneNumber[0] === '1') {\n\t\t\t\t\tindex.validation.phoneNumber = 'Valid input is required';\n\t\t\t\t} else {\n\t\t\t\t\tdelete index.validation.phoneNumber;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (!scope.m.contacts[index].phoneNumber) {\n\t\t\t\t\tscope.m.contacts[index].validation.phoneNumber = 'Input is required';\n\t\t\t\t} else if (scope.m.contacts[index].phoneNumber.length !== 10) {\n\t\t\t\t\tscope.m.contacts[index].validation.phoneNumber = 'Valid input is required';\n\t\t\t\t} else if (scope.m.contacts[index].phoneNumber[0] === '0' || scope.m.contacts[index].phoneNumber[0] === '1') {\n\t\t\t\t\tscope.m.contacts[index].validation.phoneNumber = 'Valid input is required';\n\t\t\t\t} else {\n\t\t\t\t\tdelete scope.m.contacts[index].validation.phoneNumber;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction validateContactFaxNumber(index) {\n\t\t\tif (scope.m.contacts[index].faxNumber && scope.m.contacts[index].faxNumber.length !== 10) {\n\t\t\t\tscope.m.contacts[index].validation.faxNumber = 'Valid input is required';\n\t\t\t} else if (scope.m.contacts[index].faxNumber && (scope.m.contacts[index].faxNumber[0] === '0' || scope.m.contacts[index].faxNumber[0] === '1')) {\n\t\t\t\tscope.m.contacts[index].validation.faxNumber = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tdelete scope.m.contacts[index].validation.faxNumber;\n\t\t\t}\n\t\t}\n\n\t\tfunction validateContactEmail(index) {\n\t\t\tif (scope.m.contacts[index].email &&\n !/^([a-zA-Z0-9])([a-zA-Z0-9_\\.\\-])*([a-zA-Z0-9])\\@(([a-zA-Z0-9\\-])+\\.)+([a-zA-Z]{2,4})+$/.test(scope.m.contacts[index].email)) {\n\t\t\t\tscope.m.contacts[index].validation.email = 'Valid email is required';\n\t\t\t} else {\n\t\t\t\tdelete scope.m.contacts[index].validation.email;\n\t\t\t}\n\t\t}\n\n\t\tfunction goToTab(tab) {\n\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_SET_PENDING_TAB, tab);\n\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\tsubjectMessages.COB_SUBJECT_START_CHANGE_CARRIER_PROFILE_VIEW,\n\t\t\t\tnavigate);\n\t\t}\n\n\t\tfunction setPendingTab(tab) {\n\t\t\tscope.tab = tab;\n\t\t}\n\n\t\tfunction navigate() {\n\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\tsubjectMessages.COB_SUBJECT_FINISH_CHANGE_CARRIER_PROFILE_VIEW,\n\t\t\t\tscope.tab);\n\t\t}\n\n\t\tfunction setSectionMessage(show) {\n\t\t\tscope.m.showSectionMessage = show;\n\t\t\tif (show) {\n\t\t\t\t$timeout(function() {\n\t\t\t\t\t$('.carrier-profile-wrapper')\n\t\t\t\t\t\t.animate({\n\t\t\t\t\t\t\tscrollTop: $('#error-summary').offset().top\n\t\t\t\t\t\t},\n\t\t\t\t\t\t200);\n\t\t\t\t},\n\t\t\t\t10);\n\t\t\t}\n\t\t}\n\n\t\tfunction onForceGo() {\n\t\t\tif (typeof (scope.pendingCallback) === 'function')\n\t\t\t\tscope.pendingCallback();\n\t\t}\n\t}\n\n})();\n","/* eslint-disable no-undef */\n// TODO: remove code above and fix issues in case changing this file\n'use strict';\n\n(function() {\n\tangular.module('onboarding.carrier')\n\t\t.directive('cobCarrierProfileContracts', cobCarrierProfileContracts);\n\n\tcobCarrierProfileContracts.$inject = [\n\t\t'$location', '$timeout', '$window', '$state', '$stateParams', 'sessionService',\n\t\t'subjectObserverMessagesService', 'observerService',\n\t\t'carrierRegistrationService',\n\t\t'authenticationService'\n\t];\n\n\tvar $location,\n\t\t$timeout,\n\t\t$window,\n\t\t$state,\n\t\t$stateParams,\n\t\tsessionService,\n\t\tsubjectObserverMessagesService,\n\t\tobserverService,\n\t\tcarrierRegistrationService,\n\t\tauthenticationService;\n\tvar subjectMessages, observerMessages;\n\n\tfunction cobCarrierProfileContracts(_$location_,\n\t\t_$timeout_, \n\t\t_$window_,\n\t\t_$state_,\n\t\t_$stateParams_,\n\t\t_sessionService_,\n\t\t_subjectObserverMessagesService_,\n\t\t_observerService_,\n\t\t_carrierRegistrationService_,\n\t\t_authenticationService_) {\n\t\t$location = _$location_;\n\t\t$timeout = _$timeout_;\n\t\t$window = _$window_;\n\t\t$state = _$state_;\n\t\t$stateParams = _$stateParams_;\n\t\tsessionService = _sessionService_;\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tcarrierRegistrationService = _carrierRegistrationService_;\n\t\tauthenticationService = _authenticationService_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/carrier/profile/carrierProfileContracts.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\n\t\t\tscope.carrierId = $stateParams.carrierId;\n\t\t\tscope.brokerId = $stateParams.brokerId;\n\t\t\tscope.ajaxIsRunning = false;\n\t\t\tscope.m = {\n\t\t\t\tisBroker: sessionService.isBroker(),\n\t\t\t\tisAdmin: sessionService.isAuthorizedInternalAdmin(),\n\t\t\t\treadyToSign: sessionService.getCarrierReadyToSign(),\n\t\t\t\tcarrierIsAuthorized: sessionService.isCarrier(),\n\t\t\t\tsignedNewContract: false,\n\t\t\t\tshowConfirmationModal: false,\n\t\t\t\tsearchType: 'brokerName',\n\t\t\t\totherTitleOption: 'Other',\n\t\t\t\tisSubmited: false\n\t\t\t};\n\n\t\t\tscope.titles = [\n\t\t\t\t'Chairman',\n\t\t\t\t'Chief Executive Officer (CEO)',\n\t\t\t\t'Chief Financial Officer (CFO)',\n\t\t\t\t'Chief Operations Officer (COO)',\n\t\t\t\t'Controller',\n\t\t\t\t'Director of Operations',\n\t\t\t\t'Executive Vice President',\n\t\t\t\t'General Manager',\n\t\t\t\t'Owner',\n\t\t\t\t'President',\n\t\t\t\t'Senior Vice President',\n\t\t\t\t'Vice President',\n\t\t\t\tscope.m.otherTitleOption\n\t\t\t];\n\n\t\t\tscope.setIsDirty = setIsDirty;\n\t\t\tscope.onForceGo = onForceGo;\n\t\t\tscope.goToProfile = goToProfile;\n\t\t\tscope.startSigning = startSigning;\n\t\t\tscope.cancelSigning = cancelSigning;\n\t\t\tscope.sign = sign;\n\t\t\tscope.sort = sort;\n\t\t\tscope.brokerClick = brokerClick;\n\t\t\tscope.signatureClick = signatureClick;\n\t\t\tscope.goToBranded = goToBranded;\n\t\t\tscope.validateSigneeFirstField = validateSigneeFirstField;\n\t\t\tscope.validateSigneeLastField = validateSigneeLastField;\n\t\t\tscope.validateSigneeTitleField = validateSigneeTitleField;\n\t\t\tscope.valdiateSigneeTitleOptions = valdiateSigneeTitleOptions;\n\t\t\tscope.getSigneeTitle = getSigneeTitle;\n\t\t\tscope.searchClick = searchClick;\n\t\t\tscope.openModalWindow = openModalWindow,\n\t\t\tscope.closeModalWindow = closeModalWindow,\n\t\t\tscope.logout = logout;\n\n\t\t\tscope.contractStatus = {\n\t\t\t\tsigned: 'Signed',\n\t\t\t\trejected: 'Rejected',\n\t\t\t\tnotSigned: 'NotSigned',\n\t\t\t\tsigning: 'Signing'\n\t\t\t};\n\n\t\t\tloadData();\n\n\t\t\tregisterObserverHandlers();\n\t\t\tdocument.title = 'Profile-Contracts';\n\n\t\t\t$timeout(function() {\n\t\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_CARRIER_PROFILE_VIEW_LOAD);\n\t\t\t},\n\t\t\t100);\n\t\t}\n\n\t\tfunction loadData() {\n\t\t\tif (scope.m.isBroker && !scope.m.isAdmin) {\n\t\t\t\tloadBrandedData();\n\t\t\t} else {\n\t\t\t\tloadBranding();\n\t\t\t\tif (scope.m.brokerName) {\n\t\t\t\t\tloadBrandedData();\n\t\t\t\t} else {\n\t\t\t\t\tloadBrokers();\n\t\t\t\t}\n\t\t\t\tif (scope.m.isAdmin) {\n\t\t\t\t\tvar carrier = sessionService.getCarrierImpersonated();\n\t\t\t\t\tif (carrier.dotNumber) {\n\t\t\t\t\t\tcarrierRegistrationService.validateDotNumber(carrier.dotNumber).then(function (response) {\n\t\t\t\t\t\t\tscope.m.carrierIsAuthorized = response.data.validationInfo === 'Authorized';\n\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse if (carrier.intrastateCode) {\n\t\t\t\t\t\tcarrierRegistrationService.validateIntrastateCode(carrier.intrastateState, carrier.intrastateCode).then(function (response) {\n\t\t\t\t\t\t\tscope.m.carrierIsAuthorized = response.data.validationInfo === 'Authorized';\n\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction loadBranding() {\n\t\t\tvar broker = sessionService.getBrokerBranding();\n\t\t\tif (broker && !scope.m.isBroker) {\n\t\t\t\tscope.brokerId = broker.brokerId;\n\t\t\t\tscope.m.brokerName = broker.brokerName;\n\t\t\t\tscope.m.contractMessage = broker.contractMessage;\n\t\t\t\tscope.m.contractMessageDisabled = broker.contractMessageDisabled;\n\t\t\t\tscope.m.logoUrl = sessionService.getBrokerLogoURL();\n\t\t\t\tloadBrandedData();\n\t\t\t}\n\t\t}\n\n\t\tfunction loadBrandedData() {\n\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_AJAX_WAITING);\n\n\t\t\tvar documentId = $location.search()['i'];\n\t\t\tvar documentStatus = $location.search()['status'];\n\t\t\tif (documentId && documentStatus !== 'DocumentDeclined') {\n\t\t\t\t$location.url($location.path());\n\t\t\t\tcarrierRegistrationService.facsimileSignatures(documentId)\n\t\t\t\t\t.then(loadContractsHelper)\n\t\t\t\t\t.finally(function () {\n\t\t\t\t\t\t// User has been redirected back to our app from signing an AssureSign document if they're in this block\n\t\t\t\t\t\tscope.m.signedNewContract = true;\n\t\t\t\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_AJAX_DONE);\n\t\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tif (documentStatus) { \n\t\t\t\t\t$location.url($location.path());\n\t\t\t\t}\n\t\t\t\tcarrierRegistrationService.lookupContractsAndSignatures(scope.carrierId, scope.brokerId)\n\t\t\t\t\t.then(loadContractsHelper)\n\t\t\t\t\t.finally(function() {\n\t\t\t\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_AJAX_DONE);\n\t\t\t\t\t});\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tfunction loadContractsHelper(response) {\n\t\t\tscope.m.contracts = response.data.contractSignatures;\n\n\t\t\tvar hasSigned = false;\n\n\t\t\tfor (var i = 0; i < scope.m.contracts.length; i++) {\n\t\t\t\tsetContractStatus(scope.m.contracts[i]);\n\t\t\t\tscope.m.contracts[i].dateSignedClean = new Date(scope.m.contracts[i].dateSigned);\n\t\t\t\tif (new Date(scope.m.contracts[i].dateSigned) < new Date(1900, 1, 1)) {\n\t\t\t\t\tscope.m.contracts[i].dateSigned = '----';\n\t\t\t\t}\n\t\t\t\tif (scope.m.contracts[i].rejected) {\n\t\t\t\t\tscope.m.contracts[i].dateSigned = 'Rejected';\n\t\t\t\t}\n\t\t\t\tif (!scope.m.contracts[i].signee) {\n\t\t\t\t\tscope.m.contracts[i].dateSignedSort = new Date(2101, 12, 12);\n\t\t\t\t} else if (scope.m.contracts[i].rejected) {\n\t\t\t\t\tscope.m.contracts[i].dateSignedSort = new Date(2100, 12, 12);\n\t\t\t\t} else {\n\t\t\t\t\tscope.m.contracts[i].dateSignedSort = scope.m.contracts[i].dateSignedClean;\n\t\t\t\t\thasSigned = true;\n\t\t\t\t}\n\n\t\t\t\tscope.m.contracts[i].signeeClean = scope.m.contracts[i].signee;\n\t\t\t\tscope.m.contracts[i].signeeTitleClean = scope.m.contracts[i].signeeTitle;\n\t\t\t}\n\t\t\tif (hasSigned) {\n\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\tsubjectMessages.COB_SUBJECT_CARRIER_PROFILE_VIEW_STATUS,\n\t\t\t\t\t'contracts');\n\t\t\t}\n\t\t\tsort('contractName');\n\t\t}\n\n\t\tfunction setContractStatus(contract) {\n\t\t\tif (contract.signee) {\n\t\t\t\tif (contract.rejected) {\n\t\t\t\t\tcontract.status = scope.contractStatus.rejected;\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tcontract.status = scope.contractStatus.signed;\n\n\t\t\t\treturn; \n\t\t\t}\n\n\t\t\tcontract.status = scope.contractStatus.notSigned;\n\t\t}\n\n\t\tfunction loadBrokers() {\n\t\t\tscope.ajaxIsRunning = true;\n\n\t\t\tsetTimeout(function () {\n\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_WAITING);\n\t\t\t},\n\t\t\t1);\n\n\t\t\tcarrierRegistrationService.lookupBrokers(scope.carrierId)\n\t\t\t\t.then(function(response) {\n\t\t\t\t\tscope.m.allBrokers = response.data.brokers;\n\n\t\t\t\t\tfor (var i = 0; i < scope.m.allBrokers.length; i++) {\n\n\t\t\t\t\t\tif (scope.m.allBrokers[i].lastVisited === '0001-01-01T00:00:00') {\n\t\t\t\t\t\t\tscope.m.allBrokers[i].lastVisited = '----';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tscope.m.allBrokers[i].href = scope.m.allBrokers[i].domain +\n\t\t\t\t\t\t\t$state.href('carrierProfile.contracts',\n\t\t\t\t\t\t\t\t{ carrierId: $stateParams.carrierId, brokerId: $stateParams.brokerId });\n\t\t\t\t\t}\n\t\t\t\t\tsort('signedContracts');\n\n\t\t\t\t})\n\t\t\t\t.finally(function () {\n\t\t\t\t\tscope.ajaxIsRunning = false;\n\t\t\t\t\tobserverService\n\t\t\t\t\t\t.sendMessageToSubject(scope,\n\t\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_DONE);\n\t\t\t\t\tif (reloadAjax) {\n\t\t\t\t\t\treloadAjax = false;\n\t\t\t\t\t\tscope.currentRow = 0;\n\t\t\t\t\t\tscope.totalRows = 0;\n\t\t\t\t\t\tscope.carriers = [];\n\t\t\t\t\t\tsetTimeout(function () { getCarriers(); }, 1);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}\n\n\t\tfunction loadSignatures(broker) {\n\t\t\t// has signed contracts but no loaded signatures\n\t\t\tif (broker.signedContracts && !broker.signatures) {\n\t\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_AJAX_WAITING);\n\t\t\t\tcarrierRegistrationService.lookupSignatures(scope.carrierId, broker.brokerId)\n\t\t\t\t\t.then(function(response) {\n\t\t\t\t\t\tbroker.signatures = response.data.contractSignatures;\n\n\t\t\t\t\t\tfor (var i = 0; i < broker.signatures.length; i++) {\n\n\t\t\t\t\t\t\tbroker.signatures[i].dateSignedClean = broker.signatures[i].dateSigned;\n\t\t\t\t\t\t\tif (broker.signatures[i].rejected) {\n\t\t\t\t\t\t\t\tbroker.signatures[i].dateSigned = 'Rejected';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t$timeout(function () {\n\t\t\t\t\t\t\tbroker.open = true;\n\t\t\t\t\t\t}, 20);\n\t\t\t\t\t})\n\t\t\t\t\t.finally(function() {\n\t\t\t\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_AJAX_DONE);\n\t\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tbroker.open = true;\n\t\t\t}\n\t\t}\n\n\t\tfunction registerObserverHandlers() {\n\n\t\t\tscope.$on('$destroy',\n\t\t\t\tfunction() {\n\t\t\t\t\twindow.onbeforeunload = undefined;\n\t\t\t\t});\n\n\t\t\tscope.$on('$locationChangeStart',\n\t\t\t\tfunction(event) {\n\t\t\t\t\tif (scope.m.isDirty) {\n\t\t\t\t\t\tif (!\n\t\t\t\t\t\tconfirm('You have not completed the signing process. Contracts are signed using the Sign button at the bottom of the page. Are you sure you want to leave the page?')) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_DOMAIN_DATA_LOADED);\n\t\t\tobserverService.registerHandlers(scope,\n\t\t\t\t[\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_START_CHANGE_CARRIER_PROFILE_VIEW, handler: navStart },\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_DOMAIN_DATA_LOADED, handler: loadData },\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_CARRIER_PROFILE_STATUS_FINISH, handler: setReadyToSign },\n\t\t\t\t]);\n\t\t}\n\n\t\tfunction navStart(callback) {\n\t\t\tif (scope.m.isDirty) {\n\t\t\t\tscope.m.showSectionMessage = true;\n\t\t\t\tscope.pendingCallback = callback;\n\t\t\t} else if (typeof (callback) === 'function') {\n\t\t\t\tcallback();\n\t\t\t}\n\t\t}\n\n\t\tfunction setIsDirty() {\n\t\t\tscope.m.isDirty = true;\n\t\t\twindow.onbeforeunload = function() {\n\t\t\t\treturn 'You have not completed the signing process. Contracts are signed using the Sign button at the bottom of the page. Are you sure you want to leave the page?';\n\t\t\t};\n\t\t}\n\n\t\tfunction clearDirty() {\n\t\t\tscope.m.isDirty = false;\n\t\t\twindow.onbeforeunload = undefined;\n\t\t}\n\n\t\tfunction onForceGo() {\n\t\t\tif (typeof (scope.pendingCallback) === 'function')\n\t\t\t\tscope.pendingCallback();\n\t\t}\n\n\t\tfunction goToProfile() {\n\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\tsubjectMessages.COB_SUBJECT_FINISH_CHANGE_CARRIER_PROFILE_VIEW,\n\t\t\t\t'profile');\n\t\t}\n\n\t\tfunction startSigning(contract) {\n\t\t\thideSigningContractForm(scope.signingContract, scope.contractStatus.notSigned);\n\t\t\tcontract.signing = true;\n\t\t\tscope.m.signing = true;\n\t\t\tcontract.status = scope.contractStatus.signing;\n\t\t\tscope.signingContract = contract;\n\t\t}\n\n\t\tfunction cancelSigning(contract) {\n\t\t\thideSigningContractForm(scope.signingContract, scope.contractStatus.notSigned);\n\t\t\tclearDirty();\n\n\t\t\tcontract.signee = '';\n\t\t\tcontract.signeeFirst = '';\n\t\t\tcontract.signeeLast = '';\n\t\t\tcontract.signeeTitle = '';\n\t\t\tcontract.signeeOtherTitle = '';\n\t\t\tcontract.signeeError = undefined;\n\t\t\tcontract.signeeFirstError = undefined;\n\t\t\tcontract.signeeLastError = undefined;\n\t\t\tcontract.signeeTitleError = undefined;\n\t\t}\n\n\t\tfunction hideSigningContractForm(contract, contractStatus) {\n\t\t\tif(contract) {\n\t\t\t\tcontract.signing = false;\n\t\t\t\tscope.m.signing = false;\n\t\t\t\tcontract.status = contractStatus;\n\t\t\t\tscope.signingContract = undefined;\n\t\t\t}\n\t\t}\n\n\t\tfunction sign(contract) {\n\t\t\tvalidateSigneeFirstField(contract);\n\t\t\tvalidateSigneeLastField(contract);\n\t\t\tvalidateSigneeTitleField(contract);\n\n\t\t\tif (!contract.signeeFirstError && !contract.signeeLastError && !contract.signeeTitleError) {\n\t\t\t\tcontract.signee = contract.signeeFirst + ' ' + contract.signeeLast;\n\t\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_AJAX_WAITING);\n\n\t\t\t\tif (contract.isAssureSign) {\n\t\t\t\t\tclearDirty();\n\t\t\t\t\tcarrierRegistrationService\n\t\t\t\t\t\t.signAssuresignContract(\n\t\t\t\t\t\t\tcontract.signee,\n\t\t\t\t\t\t\tgetSigneeTitle(contract),\n\t\t\t\t\t\t\tscope.brokerId,\n\t\t\t\t\t\t\t$window.location.href.split('?')[0])\n\t\t\t\t\t\t.then(function(response) {\n\t\t\t\t\t\t\t$window.location.href = response.data.signatureURL;\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.finally(function() {\n\t\t\t\t\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_AJAX_DONE);\n\t\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tcarrierRegistrationService\n\t\t\t\t\t\t.signStandardContract(\n\t\t\t\t\t\t\tcontract.signee,\n\t\t\t\t\t\t\tgetSigneeTitle(contract),\n\t\t\t\t\t\t\tcontract.contractId)\n\t\t\t\t\t\t.then(function(response) {\n\t\t\t\t\t\t\tcontract.dateSigned = response.data.signed;\n\t\t\t\t\t\t\thideSigningContractForm(contract, scope.contractStatus.signed);\n\t\t\t\t\t\t\tscope.m.isSubmited = false;\n\t\t\t\t\t\t\tclearDirty();\n\t\t\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\t\t\tsubjectMessages.COB_SUBJECT_CARRIER_PROFILE_VIEW_STATUS,\n\t\t\t\t\t\t\t\t'contracts');\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.finally(function() {\n\t\t\t\t\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_AJAX_DONE);\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tscope.m.signedNewContract = true;\n\t\t\t} \n\t\t}\n\n\t\tfunction getSigneeTitle(contract) {\n\t\t\treturn contract.signeeTitle === scope.m.otherTitleOption ? contract.signeeOtherTitle : contract.signeeTitle;\n\t\t}\n\n\t\tfunction validateSigneeFirstField(contract) {\n\t\t\tif (!contract.signeeFirst) {\n\t\t\t\tcontract.signeeFirstError = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tcontract.signeeFirstError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateSigneeLastField(contract) {\n\t\t\tif (!contract.signeeLast) {\n\t\t\t\tcontract.signeeLastError = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tcontract.signeeLastError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateSigneeTitleField(contract) {\n\t\t\tif (!getSigneeTitle(contract)) {\n\t\t\t\tcontract.signeeTitleError = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tcontract.signeeTitleError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction valdiateSigneeTitleOptions(contract) {\n\t\t\tif (!contract.signeeTitle) {\n\t\t\t\tcontract.signeeTitleOptionError = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tcontract.signeeTitleOptionError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction sort(col) {\n\t\t\tif (scope.m.order && col === scope.m.order[0].substring(1, scope.m.order[0].length)) {\n\t\t\t\tif (scope.m.order[0].substring(0, 1) === '+') {\n\t\t\t\t\tscope.m.order[0] = scope.m.order[0].replace('+', '-');\n\t\t\t\t} else {\n\t\t\t\t\tscope.m.order[0] = scope.m.order[0].replace('-', '+');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswitch (col) {\n\t\t\t\tcase 'contractName':\n\t\t\t\t\tscope.m.order = ['-contractName', '-version', '+rejected', '-dateSignedClean'];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'version':\n\t\t\t\t\tscope.m.order = ['-version', '+contractName', '+rejected', '-dateSignedClean'];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'signeeClean':\n\t\t\t\t\tscope.m.order = [\n\t\t\t\t\t\t'+signeeClean', '+signeeTitleClean', '+contractName', '-version', '+rejected',\n\t\t\t\t\t\t'-dateSignedClean'\n\t\t\t\t\t];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'signeeTitleClean':\n\t\t\t\t\tscope.m.order = ['+signeeTitleClean', '+signeeClean', '+contractName', '-version', '+rejected'];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'dateSignedSort':\n\t\t\t\t\tscope.m.order = [\n\t\t\t\t\t\t'-dateSignedSort', '+contractName', '-version', '+signeeClean', '+contractName',\n\t\t\t\t\t\t'+signeeTitleClean'\n\t\t\t\t\t];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'brokerName':\n\t\t\t\t\tscope.m.order = ['+brokerName', '-lastVisited'];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'signatureType':\n\t\t\t\t\tscope.m.order = ['-signatureType', '+brokerName'];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'lastVisited':\n\t\t\t\t\tscope.m.order = ['-lastVisited', '+brokerName'];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'signedContracts':\n\t\t\t\t\tscope.m.order = ['-signedContracts', '-lastVisited', '+brokerName'];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\n\t\tfunction searchClick() {\n\t\t\tscope.m.showAllBroker = false;\n\t\t\tscope.m.brokers = {};\n\t\t}\n\n\t\tfunction brokerClick(broker) {\n\t\t\tif (broker.open) {\n\t\t\t\tbroker.open = false;\n\t\t\t}\n\t\t\telse if (broker.signedContracts) {\n\t\t\t\tloadSignatures(broker);\n\t\t\t}\n\t\t}\n\n\t\tfunction signatureClick(signature) {\n\t\t\tsignature.isexpanded = !signature.isexpanded;\n\t\t}\n\n\t\tfunction goToBranded(broker) {\n\t\t\tsessionService.setDomain(broker.domain, scope);\n\t\t}\n\n\t\tfunction setReadyToSign() {\n\t\t\tscope.m.readyToSign = sessionService.getCarrierReadyToSign();\n\t\t}\n\n\t\tfunction openModalWindow() {\n\t\t\tscope.m.showConfirmationModal = true;\n\t\t}\n\n\t\tfunction closeModalWindow() {\n\t\t\tscope.m.signedNewContract = false;\n\t\t\tscope.m.showConfirmationModal = false;\n\t\t\tscope.m.isSubmited = true;\n\t\t}\n\n\t\tfunction logout() {\n\t\t\tauthenticationService.logout();\n\t\t}\n\t}\n})();\n","'use strict';\n\n(function () {\n\tangular.module('onboarding.carrier')\n\t\t.directive('cobCarrierProfileDocuments', cobCarrierProfileDocuments);\n\n\tcobCarrierProfileDocuments.$inject = [\n\t\t'$timeout', 'sessionService', 'Upload', 'subjectObserverMessagesService', 'observerService',\n\t\t'carrierRegistrationService', '$stateParams'\n\t];\n\n\tvar $timeout,\n\t\tsessionService,\n\t\tngFileUpload,\n\t\tsubjectObserverMessagesService,\n\t\tobserverService,\n\t\tcarrierRegistrationService,\n\t\t$stateParams;\n\tvar subjectMessages, observerMessages;\n\n\tvar NOA_DOCUMENT_TYPE = 'Notice of Assigment (NOA)';\n\n\tfunction cobCarrierProfileDocuments(_$timeout_,\n\t\t_sessionService_,\n\t\t_ngFileUpload_,\n\t\t_subjectObserverMessagesService_,\n\t\t_observerService_,\n\t\t_carrierRegistrationService_,\n\t\t_$stateParams_) {\n\t\t$timeout = _$timeout_;\n\t\tsessionService = _sessionService_;\n\t\tngFileUpload = _ngFileUpload_;\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tcarrierRegistrationService = _carrierRegistrationService_;\n\t\t$stateParams = _$stateParams_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/carrier/profile/carrierProfileDocuments.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\t\t\tscope.carrierId = $stateParams.carrierId;\n\n\t\t\tscope.m = {\n\t\t\t\tisBroker: sessionService.isBroker(),\n\t\t\t\tisAdmin: sessionService.isAuthorizedInternalAdmin(),\n\t\t\t\tdisableUpload: true,\n\t\t\t\tdisplayNewRow: false,\n\t\t\t\tshowCopiedMessage: false,\n\t\t\t\tdocuments: [],\n\t\t\t\tdocumentTypes: [\n\t\t\t\t\t'Interstate Authority Cert', 'State Authority Cert', 'Insurance Cert',\n\t\t\t\t\t'Vehicle Schedule', 'HazMat Cert', 'TWIC Card', 'C-TPAT Cert', NOA_DOCUMENT_TYPE, 'Other'\n\t\t\t\t],\n\t\t\t\tshowDocumentNameError: false,\n\t\t\t\tshowDocumentSharedModal: false,\n\t\t\t\tencryptedUrl: '',\n\t\t\t\tdeleteDocument: {}\n\t\t\t};\n\t\t\tscope.editDocument = editDocument;\n\t\t\tscope.onUploadClick = onUploadClick;\n\t\t\tscope.onCancelUploadClick = onCancelUploadClick;\n\t\t\tscope.validateNewDocumentName = validateNewDocumentName;\n\n\t\t\tscope.onDocumentNameClick = onDocumentNameClick;\n\t\t\tscope.onDocumentTypeClick = onDocumentTypeClick;\n\t\t\tscope.onDescriptionClick = onDescriptionClick;\n\t\t\tscope.onFileUploadStart = onFileUploadStart;\n\t\t\tscope.onTrashClick = onTrashClick;\n\t\t\tscope.confirmDelete = confirmDelete;\n\t\t\tscope.cancelDelete = cancelDelete;\n\t\t\tscope.onForceGo = onForceGo;\n\t\t\tscope.setIsDirty = setIsDirty;\n\t\t\tscope.fileSizeHelper = fileSizeHelper;\n\t\t\tscope.goToTab = goToTab;\n\t\t\tscope.evaluateRows = evaluateRows;\n\t\t\tscope.selectedDocumentsCount = selectedDocumentsCount;\n\t\t\tscope.shareDocuments = shareDocuments;\n\t\t\tscope.copyToClipboard = copyToClipboard;\n\t\t\tscope.closeNoaAlreadyExistsModal = closeNoaAlreadyExistsModal;\n\n\t\t\tregisterObserverHandlers();\n\t\t\tloadData();\n\t\t\tonDomainDataLoad();\n\t\t\tnewDocumentClear();\n\t\t\tdocument.title = 'Profile-Documents';\n\n\t\t\t$timeout(function () {\n\t\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_CARRIER_PROFILE_VIEW_LOAD);\n\t\t\t},\n\t\t\t100);\n\t\t}\n\n\t\tfunction loadData() {\n\t\t\tcarrierRegistrationService.lookupCarrierDocuments(scope.carrierId)\n\t\t\t\t.then(function (response) {\n\t\t\t\t\tscope.m.disableUpload = true;\n\t\t\t\t\tnewDocumentClear();\n\n\t\t\t\t\tif (response.data.documents) {\n\t\t\t\t\t\tscope.m.documents = response.data.documents;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}\n\n\t\tfunction onDomainDataLoad() {\n\t\t\tvar broker = sessionService.getBrokerBranding();\n\t\t\tif (broker && !scope.m.isBroker) {\n\t\t\t\tscope.brokerId = broker.brokerId;\n\t\t\t\tscope.m.brokerName = broker.brokerName;\n\t\t\t\tscope.m.documentsMessage = broker.documentsMessage;\n\t\t\t\tscope.m.documentsMessageDisabled = broker.documentsMessageDisabled;\n\t\t\t}\n\t\t}\n\n\t\tfunction registerObserverHandlers() {\n\n\t\t\tobserverService.registerHandlers(scope,\n\t\t\t\t[\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_DOMAIN_DATA_LOADED, handler: onDomainDataLoad },\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_START_CHANGE_CARRIER_PROFILE_VIEW, handler: saveData },\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_CARRIER_PROFILE_VIEW_IS_DIRTY, handler: setIsDirty },\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_SET_PENDING_TAB, handler: setPendingTab }\n\t\t\t\t]);\n\n\t\t\tscope.$on('$destroy',\n\t\t\t\tfunction () {\n\t\t\t\t\twindow.onbeforeunload = undefined;\n\t\t\t\t});\n\n\t\t\tscope.$on('$locationChangeStart',\n\t\t\t\tfunction (event) {\n\t\t\t\t\tif (scope.m.isDirty) {\n\t\t\t\t\t\tif (!scope.ux_requirement_hack_for_scrolling) {\n\t\t\t\t\t\t\tif (!confirm('You have unsaved data. If you leave this page any changes will be lost. Changes are saved using the Save buttons at the bottom of the page. Are you sure you want to leave the page?')) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tscope.ux_requirement_hack_for_scrolling = false;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction validateNewDocumentName() {\n\t\t\tif (scope.m.newDocumentName) {\n\t\t\t\tscope.m.disableUpload = false;\n\t\t\t\tscope.m.showDocumentNameError = false;\n\t\t\t} else {\n\t\t\t\tscope.m.showDocumentNameError = true;\n\t\t\t}\n\t\t}\n\n\t\tfunction onUploadClick() {\n\t\t\tsaveNewDocument(loadData);\n\t\t}\n\n\t\tfunction onCancelUploadClick() {\n\t\t\tnewDocumentClear();\n\t\t\tscope.m.isDirty = false;\n\t\t}\n\n\t\tfunction newDocumentClear() {\n\t\t\tscope.m.newDocumentType = 'Interstate Authority Cert';\n\t\t\tscope.m.newDocumentDescription = '';\n\t\t\tscope.m.newDocumentName = '';\n\t\t\tscope.m.newDocumentBase64 = '';\n\t\t\tscope.m.displayNewRow = false;\n\t\t\tscope.m.showFileNameError = false;\n\t\t\tscope.m.disableUpload = true;\n\t\t\tscope.m.fileUploaderFile = undefined;\n\t\t}\n\n\t\tfunction onFileUploadStart() {\n\t\t\tif (scope.m.fileUploaderFile) {\n\t\t\t\tif (validateFile()) {\n\t\t\t\t\tsetIsDirty();\n\t\t\t\t\tscope.m.displayNewRow = true;\n\t\t\t\t\tscope.m.newDocumentType = 'Interstate Authority Cert';\n\t\t\t\t\tngFileUpload.base64DataUrl(scope.m.fileUploaderFile, false)\n\t\t\t\t\t\t.then(function (url) {\n\t\t\t\t\t\t\tscope.m.newDocumentBase64 = url.split(',')[1];\n\t\t\t\t\t\t});\n\t\t\t\t\tscope.m.fileUploaderFileError = '';\n\t\t\t\t} else {\n\t\t\t\t\tscope.m\n\t\t\t\t\t\t.fileUploaderFileError =\n\t\t\t\t\t\t'Only .doc, .docx, .gif, .jpeg, .jpg, .pdf, .png, .tif, .tiff, .xls, or .xlsx under 10mb allowed.';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction validateFile() {\n\t\t\tvar validMimeTypes = [\n\t\t\t\t'application/pdf', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n\t\t\t\t'application/msword', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n\t\t\t\t'application/vnd.ms-excel', 'application/vnd.ms-word', 'image/tiff', 'image/png', 'image/jpeg',\n\t\t\t\t'image/gif'\n\t\t\t];\n\n\t\t\tif (validMimeTypes.indexOf(scope.m.fileUploaderFile.type) > -1) {\n\t\t\t\tif (scope.m.fileUploaderFile.size < 10485760) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction fileSizeHelper(size) {\n\t\t\tif ((size ^ 0) === size) {\n\t\t\t\tif (size < 1024) {\n\t\t\t\t\treturn size + 'B';\n\t\t\t\t} else if (size < 1048576) {\n\t\t\t\t\treturn Math.round(size / 1024) + 'KB';\n\t\t\t\t} else if (size < 1073741824) {\n\t\t\t\t\treturn Math.round(size / 1048576) + 'MB';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction setIsDirty() {\n\t\t\tscope.m.isDirty = true;\n\n\t\t\twindow.onbeforeunload = function () {\n\t\t\t\treturn 'You have unsaved data. If you leave this page any changes will be lost. Changes are saved using the Save buttons at the bottom of the page.';\n\t\t\t};\n\t\t}\n\n\t\tfunction saveData(callback) {\n\t\t\tif (!scope.m.isBroker) {\n\n\t\t\t\tcarrierRegistrationService.visitedSection('documents', scope.carrierId, scope.brokerId)\n\t\t\t\t\t.then(function () {\n\t\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\t\tsubjectMessages.COB_SUBJECT_CARRIER_PROFILE_VIEW_STATUS,\n\t\t\t\t\t\t\t'documents');\n\n\t\t\t\t\t\tif (scope.m.displayNewRow) {\n\t\t\t\t\t\t\tvalidateNewDocumentName();\n\t\t\t\t\t\t\tif (!scope.m.showDocumentNameError)\n\t\t\t\t\t\t\t\tsaveNewDocument(callback);\n\t\t\t\t\t\t\telse if (typeof (callback) === 'function') {\n\t\t\t\t\t\t\t\tscope.pendingCallback = callback;\n\t\t\t\t\t\t\t\tscope.showSectionMessage = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (scope.m.isDirty) {\n\t\t\t\t\t\t\tangular.forEach(scope.m.documents,\n\t\t\t\t\t\t\t\tfunction (document) {\n\t\t\t\t\t\t\t\t\tif (document\n\t\t\t\t\t\t\t\t\t\t.documentTypeEdit ||\n\t\t\t\t\t\t\t\t\t\tdocument.documentNameEdit ||\n\t\t\t\t\t\t\t\t\t\tdocument.descriptionEdit) {\n\t\t\t\t\t\t\t\t\t\teditDocument(document, callback);\n\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (typeof (callback) === 'function') {\n\t\t\t\t\t\t\t\tcallback();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tcallback();\n\t\t\t}\n\t\t}\n\n\t\tfunction saveNewDocument(callback) {\n\t\t\tif (scope.m.documents.some(function(doc) { return doc.documentType === NOA_DOCUMENT_TYPE; }) &&\n\t\t\t\tscope.m.newDocumentType === NOA_DOCUMENT_TYPE) {\n\t\t\t\tscope.showNoaAlreadyExistsModal = true;\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!scope.m.displayNewRow)\n\t\t\t\treturn;\n\t\t\tif (scope.m.newDocumentBase64) {\n\t\t\t\tvalidateNewDocumentName();\n\n\t\t\t\tvar fileName = scope.m.fileUploaderFile.name;\n\t\t\t\tvar fileExtension = fileName.split('.').pop();\n\t\t\t\tfileName = fileName.substring(0, fileName.length - (fileExtension.length + 1)); //trim off extension\n\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_WAITING);\n\t\t\t\t}, 1);\n\n\t\t\t\tcarrierRegistrationService.insertCarrierDocument(fileName,\n\t\t\t\t\tfileExtension,\n\t\t\t\t\tscope.m.fileUploaderFile.type,\n\t\t\t\t\tscope.m.newDocumentBase64,\n\t\t\t\t\tscope.m.newDocumentDescription,\n\t\t\t\t\tscope.m.newDocumentType,\n\t\t\t\t\tscope.m.newDocumentName,\n\t\t\t\t\tscope.carrierId)\n\t\t\t\t\t.then(function () {\n\t\t\t\t\t\tscope.m.isDirty = false;\n\n\t\t\t\t\t\t// Clear fileUploaderFile so that trash cans become visible.\n\t\t\t\t\t\tscope.m.fileUploaderFile = undefined;\n\t\t\t\t\t\tif (typeof (callback) === 'function') {\n\t\t\t\t\t\t\tcallback();\n\t\t\t\t\t\t}\n\t\t\t\t\t}).finally(function () {\n\t\t\t\t\t\tobserverService\n\t\t\t\t\t\t\t.sendMessageToSubject(scope,\n\t\t\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_DONE);\n\t\t\t\t\t});\n\t\t\t} else if (callback) {\n\t\t\t\t$timeout(function () {\n\t\t\t\t\tscope.ux_requirement_hack_for_scrolling = true;\n\t\t\t\t\t$('.profile-docs')\n\t\t\t\t\t\t.animate({\n\t\t\t\t\t\t\tscrollTop: $('#error-summary').offset().top\n\t\t\t\t\t\t},\n\t\t\t\t\t\t200);\n\t\t\t\t\tsetIsDirty();\n\t\t\t\t},\n\t\t\t\t1);\n\t\t\t}\n\t\t}\n\n\t\tfunction editDocument(document, callback) {\n\t\t\tif (document.documentName) {\n\t\t\t\tdocument.showDocumentNameError = false;\n\t\t\t\tif (!document.documentStatus) {\n\t\t\t\t\tdocument.documentStatus = 'ACTIVE';\n\t\t\t\t}\n\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_WAITING);\n\t\t\t\t}, 1);\n\n\t\t\t\tcarrierRegistrationService.updateCarrierDocument(document.documentId,\n\t\t\t\t\tdocument.description,\n\t\t\t\t\tdocument.documentType,\n\t\t\t\t\tdocument.documentName,\n\t\t\t\t\tdocument.documentStatus,\n\t\t\t\t\tscope.carrierId)\n\t\t\t\t\t.then(function () {\n\t\t\t\t\t\tscope.m.isDirty = false;\n\t\t\t\t\t\tdocument.documentTypeEdit = false;\n\t\t\t\t\t\tdocument.documentNameEdit = false;\n\t\t\t\t\t\tdocument.descriptionEdit = false;\n\n\t\t\t\t\t\tif (typeof (callback) === 'function') {\n\t\t\t\t\t\t\tcallback();\n\t\t\t\t\t\t}\n\t\t\t\t\t}).finally(function () {\n\t\t\t\t\t\tobserverService\n\t\t\t\t\t\t\t.sendMessageToSubject(scope,\n\t\t\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_DONE);\n\t\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tdocument.showDocumentNameError = true;\n\t\t\t\tif (callback) {\n\t\t\t\t\tscope.showSectionMessage = true;\n\t\t\t\t\tscope.pendingCallback = callback;\n\t\t\t\t\t$timeout(function () {\n\t\t\t\t\t\tscope.ux_requirement_hack_for_scrolling = true;\n\t\t\t\t\t\t$('.profile-docs')\n\t\t\t\t\t\t\t.animate({\n\t\t\t\t\t\t\t\tscrollTop: $('#error-summary').offset().top\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t200);\n\t\t\t\t\t},\n\t\t\t\t\t1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction onDocumentNameClick(document, event) {\n\t\t\tif (scope.m.isBroker)\n\t\t\t\treturn;\n\t\t\tdocument.documentNameEdit = true;\n\t\t\t$timeout(function () {\n\t\t\t\tevent.currentTarget.parentElement.children[1].children[0].focus();\n\t\t\t});\n\t\t}\n\n\t\tfunction onDocumentTypeClick(document, event) {\n\t\t\tif (scope.m.isBroker)\n\t\t\t\treturn;\n\t\t\tdocument.documentTypeDirty = document.documentType;\n\t\t\tdocument.documentTypeEdit = true;\n\n\t\t\t$timeout(function () {\n\t\t\t\tevent.currentTarget.parentElement.children[1].children[0].focus();\n\t\t\t});\n\t\t}\n\n\t\tfunction onDescriptionClick(document, event) {\n\t\t\tif (scope.m.isBroker)\n\t\t\t\treturn;\n\t\t\tdocument.descriptionEdit = true;\n\n\t\t\t$timeout(function () {\n\t\t\t\tevent.currentTarget.parentElement.children[1].children[0].focus();\n\t\t\t});\n\t\t}\n\n\t\tfunction onTrashClick(document) {\n\t\t\tif (scope.m.isBroker)\n\t\t\t\treturn;\n\t\t\tscope.m.deleteDocument = document;\n\t\t}\n\n\t\tfunction confirmDelete() {\n\t\t\tscope.m.deleteDocument.documentStatus = 'INACTIVE';\n\t\t\teditDocument(scope.m.deleteDocument, loadData);\n\t\t\tscope.m.deleteDocument = {};\n\t\t}\n\n\t\tfunction cancelDelete() {\n\t\t\tscope.m.deleteDocument = {};\n\t\t}\n\n\t\tfunction goToTab(tab) {\n\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_SET_PENDING_TAB, tab);\n\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\tsubjectMessages.COB_SUBJECT_START_CHANGE_CARRIER_PROFILE_VIEW,\n\t\t\t\tnavigate);\n\t\t}\n\n\t\tfunction setPendingTab(tab) {\n\t\t\tscope.tab = tab;\n\t\t}\n\n\t\tfunction navigate() {\n\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\tsubjectMessages.COB_SUBJECT_FINISH_CHANGE_CARRIER_PROFILE_VIEW,\n\t\t\t\tscope.tab);\n\t\t}\n\n\t\tfunction onForceGo() {\n\t\t\tif (typeof (scope.pendingCallback) === 'function')\n\t\t\t\tscope.pendingCallback();\n\t\t}\n\n\t\tfunction evaluateRows() {\n\t\t\tif (scope.m.displayNewRow && scope.m.fileUploaderFile) {\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfunction selectedDocumentsCount() {\n\t\t\tvar count = 0;\n\t\t\tangular.forEach(scope.m.documents,\n\t\t\t\tfunction (doc) {\n\t\t\t\t\tcount += doc.shared ? 1 : 0;\n\t\t\t\t});\n\n\t\t\treturn count;\n\t\t}\n\n\t\tfunction shareDocuments() {\n\t\t\tvar selectedDocs = [];\n\t\t\tif (selectedDocumentsCount() === 0) {\n\t\t\t\tangular.forEach(scope.m.documents,\n\t\t\t\t\tfunction (doc) {\n\t\t\t\t\t\tselectedDocs.push(doc.documentGuid);\n\t\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tangular.forEach(scope.m.documents,\n\t\t\t\t\tfunction (doc) {\n\t\t\t\t\t\tif (doc.shared) {\n\t\t\t\t\t\t\tselectedDocs.push(doc.documentGuid);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\tcarrierRegistrationService.shareDocuments(selectedDocs, scope.carrierId).then(function (response) {\n\t\t\t\tscope.m.showDocumentSharedModal = true;\n\t\t\t\tscope.m.encryptedUrl = response.data.url;\n\t\t\t});\n\t\t}\n\n\t\tfunction copyToClipboard() {\n\t\t\tscope.m.showCopiedMessage = true;\n\t\t\tvar elem = document.getElementById('encryptedUrlText');\n\t\t\tvar targetId = '_hiddenCopyText_';\n\t\t\tvar isInput = elem.tagName === 'INPUT' || elem.tagName === 'TEXTAREA';\n\t\t\tvar origSelectionStart, origSelectionEnd;\n\t\t\tif (isInput) {\n\t\t\t\t// can just use the original source element for the selection and copy\n\t\t\t\ttarget = elem;\n\t\t\t\torigSelectionStart = elem.selectionStart;\n\t\t\t\torigSelectionEnd = elem.selectionEnd;\n\t\t\t} else {\n\t\t\t\t// must use a temporary form element for the selection and copy\n\t\t\t\ttarget = document.getElementById(targetId);\n\t\t\t\tif (!target) {\n\t\t\t\t\tvar target = document.createElement('textarea');\n\t\t\t\t\ttarget.style.position = 'absolute';\n\t\t\t\t\ttarget.style.left = '-9999px';\n\t\t\t\t\ttarget.style.top = '0';\n\t\t\t\t\ttarget.id = targetId;\n\t\t\t\t\tdocument.body.appendChild(target);\n\t\t\t\t}\n\t\t\t\ttarget.textContent = elem.textContent;\n\t\t\t}\n\t\t\t// select the content\n\t\t\tvar currentFocus = document.activeElement;\n\t\t\ttarget.focus();\n\t\t\ttarget.setSelectionRange(0, target.value.length);\n\n\t\t\t// copy the selection\n\t\t\tvar succeed;\n\t\t\ttry {\n\t\t\t\tsucceed = document.execCommand('copy');\n\t\t\t} catch (e) {\n\t\t\t\tsucceed = false;\n\t\t\t}\n\t\t\t// restore original focus\n\t\t\tif (currentFocus && typeof currentFocus.focus === 'function') {\n\t\t\t\tcurrentFocus.focus();\n\t\t\t}\n\n\t\t\tif (isInput) {\n\t\t\t\t// restore prior selection\n\t\t\t\telem.setSelectionRange(origSelectionStart, origSelectionEnd);\n\t\t\t} else {\n\t\t\t\t// clear temporary content\n\t\t\t\ttarget.textContent = '';\n\t\t\t}\n\n\t\t\tdocument.getElementById('copyClipboardButton').focus();\n\t\t\t\n\t\t\treturn succeed;\n\t\t}\n\n\t\tfunction closeNoaAlreadyExistsModal() {\n\t\t\tscope.showNoaAlreadyExistsModal = false;\n\t\t}\n\t}\n})();\n","/* eslint-disable no-redeclare */\n// TODO: remove code above and fix issues in case changing this file\n'use strict';\n\n(function() {\n\tangular.module('onboarding.carrier')\n\t\t.directive('cobCarrierProfileFleetServices', cobCarrierProfileFleetServices);\n\n\tcobCarrierProfileFleetServices.$inject = [\n\t\t'$location', '$timeout', 'sessionService', 'subjectObserverMessagesService', 'observerService',\n\t\t'carrierRegistrationService', 'carrierDocumentsService', '$stateParams', 'spinnerService'\n\t];\n\n\tvar HAZMAT_DOCUMENT_TYPE = 'HazMat Cert';\n\tvar TWIC_DOCUMENT_TYPE = 'TWIC Card';\n\n\tvar HAZMAT_DOCUMENT_HEADER_INFO = 'Please upload an image of your Hazmat Certificate(s)';\n\tvar TWIC_DOCUMENT_HEADER_INFO = 'Please upload an image of your TWIC Card(s)';\n\n\tvar HAZMAT_UPLOADED_MESSAGE = 'You can upload more Hazmat certificate(s).';\n\tvar TWIC_UPLOADED_MESSAGE = 'You can upload more TWIC card(s).';\n\n\tvar $location,\n\t\t$timeout,\n\t\tsessionService,\n\t\tsubjectObserverMessagesService,\n\t\tobserverService,\n\t\tcarrierRegistrationService,\n\t\tcarrierDocumentsService,\n\t\t$stateParams,\n\t\tspinnerService;\n\tvar subjectMessages, observerMessages;\n\n\tfunction cobCarrierProfileFleetServices(\n\t\t_$location_,\n\t\t_$timeout_,\n\t\t_sessionService_,\n\t\t_subjectObserverMessagesService_,\n\t\t_observerService_,\n\t\t_carrierRegistrationService_,\n\t\t_carrierDocumentsService_,\n\t\t_$stateParams_,\n\t\t_spinnerService_) {\n\t\tsessionService = _sessionService_;\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tcarrierRegistrationService = _carrierRegistrationService_;\n\t\tcarrierDocumentsService = _carrierDocumentsService_;\n\t\t$timeout = _$timeout_;\n\t\t$location = _$location_;\n\t\t$stateParams = _$stateParams_;\n\t\tspinnerService = _spinnerService_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/carrier/profile/carrierProfileFleetServices.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\n\t\t\tscope.m = {\n\t\t\t\tisBroker: sessionService.isBroker(),\n\t\t\t\tisAdmin: sessionService.isAuthorizedInternalAdmin(),\n\t\t\t\tisDirty: false,\n\t\t\t\tshowSectionMessage: false,\n\t\t\t\thazmatUploadResult: {\n\t\t\t\t\tsucceeded: true,\n\t\t\t\t\terrorMessage: ''\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tscope.hazmatDocumentHeaderInfo = HAZMAT_DOCUMENT_HEADER_INFO;\n\t\t\tscope.twicDocumentHeaderInfo = TWIC_DOCUMENT_HEADER_INFO;\n\n\t\t\tscope.hazmatUploadedMessage = HAZMAT_UPLOADED_MESSAGE;\n\t\t\tscope.twicUploadedMessage = TWIC_UPLOADED_MESSAGE;\n\n\t\t\tscope.carrierId = $stateParams.carrierId;\n\t\t\tscope.setIsDirty = setIsDirty;\n\t\t\tscope.isValidNumberOfPowerUnits = isValidNumberOfPowerUnits;\n\t\t\tscope.isValidNumberOfOwnerOperators = isValidNumberOfOwnerOperators;\n\t\t\tscope.isValidNumberOfCompanyDrivers = isValidNumberOfCompanyDrivers;\n\t\t\tscope.isValidTrailerCounts = isValidTrailerCounts;\n\t\t\tscope.isFormValid = isFormValid;\n\t\t\tscope.textFieldKeyDown = textFieldKeyDown;\n\t\t\tscope.textFieldBlur = textFieldBlur;\n\t\t\tscope.goToTab = goToTab;\n\t\t\tscope.loadData = loadData;\n\t\t\tscope.clearTrailerCounts = clearTrailerCounts;\n\t\t\tscope.clearVanTypes = clearVanTypes;\n\t\t\tscope.clearFlatbedTypes = clearFlatbedTypes;\n\t\t\tscope.clearTrailerAttributes = clearTrailerAttributes;\n\t\t\tscope.onChangeHasDangerousGoods = onChangeHasDangerousGoods;\n\t\t\tscope.onChangeHasInternational = onChangeHasInternational;\n\t\t\tscope.onChangeHasSecurityCerts = onChangeHasSecurityCerts;\n\t\t\tscope.onChangeHasEnvironmentalCerts = onChangeHasEnvironmentalCerts;\n\t\t\tscope.onChangeHasLtlCapabilities = onChangeHasLtlCapabilities;\n\t\t\tscope.onChangeHasDropOffPort = onChangeHasDropOffPort;\n\t\t\tscope.onChangeIsPortDrayage = onChangeIsPortDrayage;\n\t\t\tscope.onChangeIsAirCartage = onChangeIsAirCartage;\n\t\t\tscope.onForceGo = onForceGo;\n\t\t\tscope.saveData = saveData;\n\t\t\tscope.setPendingTab = setPendingTab;\n\t\t\tscope.uploadHazmatFile = uploadHazmatFile;\n\t\t\tscope.uploadTwicFile = uploadTwicFile;\n\n\t\t\tscope.ux_requirement_hack_for_scrolling = false;\n\n\t\t\tregisterObserverHandlers();\n\t\t\tloadData();\n\t\t\tdocument.title = 'Profile-Fleet';\n\n\t\t\t$timeout(function() {\n\t\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_CARRIER_PROFILE_VIEW_LOAD);\n\t\t\t},\n\t\t\t100);\n\t\t}\n\n\t\tfunction registerObserverHandlers() {\n\n\t\t\tobserverService.registerHandlers(scope,\n\t\t\t\t[\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_START_CHANGE_CARRIER_PROFILE_VIEW, handler: saveData },\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_CARRIER_PROFILE_VIEW_IS_DIRTY, handler: setIsDirty },\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_SET_PENDING_TAB, handler: setPendingTab }\n\t\t\t\t]);\n\n\t\t\tscope.$on('$destroy',\n\t\t\t\tfunction() {\n\t\t\t\t\twindow.onbeforeunload = undefined;\n\t\t\t\t});\n\n\t\t\tscope.$on('$locationChangeStart',\n\t\t\t\tfunction(event) {\n\t\t\t\t\tif (scope.m.isDirty) {\n\t\t\t\t\t\tif (!scope.ux_requirement_hack_for_scrolling) {\n\t\t\t\t\t\t\tif (!confirm('You have unsaved data. If you leave this page any changes will be lost. Changes are saved using the Save buttons at the bottom of the page. Are you sure you want to leave the page?')) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tscope.ux_requirement_hack_for_scrolling = false;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction setIsDirty() {\n\t\t\tscope.m.isDirty = true;\n\t\t\twindow.onbeforeunload = function() {\n\t\t\t\treturn 'You have unsaved data. If you leave this page any changes will be lost. Changes are saved using the Save buttons at the bottom of the page.';\n\t\t\t};\n\t\t}\n\n\t\tfunction textFieldKeyDown(event) {\n\t\t\tvar charCode = (event.which) ? event.which : event.keyCode;\n\t\t\tvar isShift = !!event.shiftKey;\n\n\t\t\tif (isShift) {\n\t\t\t\tswitch (charCode) {\n\t\t\t\tcase 220: // | character\n\t\t\t\tcase 222: // '\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction textFieldBlur() {\n\t\t\tif (scope.m.otherServices != undefined) {\n\t\t\t\tscope.m.otherServices = scope.m.otherServices.replace(/\\|/g, ' ');\n\t\t\t\tscope.m.otherServices = scope.m.otherServices.replace(/'/g, ' ');\n\t\t\t}\n\n\t\t\tif (scope.m.airCartageAirports != undefined) {\n\t\t\t\tscope.m.airCartageAirports = scope.m.airCartageAirports.replace(/\\|/g, ' ');\n\t\t\t\tscope.m.airCartageAirports = scope.m.airCartageAirports.replace(/'/g, ' ');\n\t\t\t}\n\n\t\t\tif (scope.m.portDrayageCities != undefined) {\n\t\t\t\tscope.m.portDrayageCities = scope.m.portDrayageCities.replace(/\\|/g, ' ');\n\t\t\t\tscope.m.portDrayageCities = scope.m.portDrayageCities.replace(/'/g, ' ');\n\t\t\t}\n\t\t}\n\n\t\tfunction loadData() {\n\t\t\tvar carrierId = getCarrierId();\n\n\t\t\tcarrierRegistrationService.lookupCarrierFleetServices(carrierId)\n\t\t\t\t.then(function(response) {\n\n\t\t\t\t\tscope.m.hasDangerousGoods = response.data.hasDangerousGoods;\n\t\t\t\t\tscope.m.hasInternational = response.data.hasInternational;\n\t\t\t\t\tscope.m.hasEnvironmentalCerts = response.data.hasEnvironmentalCerts;\n\t\t\t\t\tscope.m.hasLtlCapabilities = response.data.hasLtlCapabilities;\n\t\t\t\t\tscope.m.hasDropOffPort = response.data.hasDropOffPort;\n\t\t\t\t\tscope.m.hasNoTrailers = response.data.hasNoTrailers;\n\t\t\t\t\tscope.m.hasSecurityCerts = response.data.hasSecurityCerts;\n\n\t\t\t\t\tif (response.data.equipment != null) {\n\t\t\t\t\t\tscope.m.numberOfPowerUnits = response.data.equipment.numberOfPowerUnits;\n\t\t\t\t\t\tscope.m.numberOfOwnerOperators = response.data.equipment.numberOfOwnerOperators;\n\t\t\t\t\t\tscope.m.numberOfCompanyDrivers = response.data.equipment.numberOfCompanyDrivers;\n\t\t\t\t\t\tscope.m.numberOfTeams = response.data.equipment.numberOfTeams;\n\t\t\t\t\t\tscope.m.onBoardCommunications = response.data.equipment.communicationType;\n\t\t\t\t\t\tscope.m.hasAirRide = response.data.equipment.hasAirRide;\n\t\t\t\t\t\tscope.m.hasChains = response.data.equipment.hasChains;\n\t\t\t\t\t\tscope.m.hasCoilRacks = response.data.equipment.hasCoilRacks;\n\t\t\t\t\t\tscope.m.hasConestoga = response.data.equipment.hasConestoga;\n\t\t\t\t\t\tscope.m.hasContainerLocks = response.data.equipment.hasContainerLocks;\n\t\t\t\t\t\tscope.m.hasCurtains = response.data.equipment.hasCurtains;\n\t\t\t\t\t\tscope.m.hasEtrac = response.data.equipment.hasEtrac;\n\t\t\t\t\t\tscope.m.hasGarmentRacks = response.data.equipment.hasGarmentRacks;\n\t\t\t\t\t\tscope.m.hasHotshot = response.data.equipment.hasHotshot;\n\t\t\t\t\t\tscope.m.hasInsulated = response.data.equipment.hasInsulated;\n\t\t\t\t\t\tscope.m.hasPadWrap = response.data.equipment.hasPadWrap;\n\t\t\t\t\t\tscope.m.hasStraps = response.data.equipment.hasStraps;\n\t\t\t\t\t\tscope.m.hasTarps = response.data.equipment.hasTarps;\n\t\t\t\t\t\tscope.m.hasVented = response.data.equipment.hasVented;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (response.data.services != null) {\n\t\t\t\t\t\tscope.m.isBrokerage = response.data.services.doesBrokerage;\n\t\t\t\t\t\tscope.m.isMultiStop = response.data.services.doesMultipleStops;\n\t\t\t\t\t\tscope.m.isPalletExchange = response.data.services.doesPalletExchange;\n\t\t\t\t\t\tscope.m.isParcel = response.data.services.doesParcels;\n\t\t\t\t\t\tscope.m.isTrailerInterchange = response.data.services.doesTrailerInterchange;\n\t\t\t\t\t\tscope.m.isAirCartage = response.data.services.handlesAirFreightCartage;\n\t\t\t\t\t\tscope.m.isEdi = response.data.services.handlesEdi;\n\t\t\t\t\t\tscope.m.isLargeLoad = response.data.services.handlesOversizeLoads;\n\t\t\t\t\t\tscope.m.isPortDrayage = response.data.services.handlesPortDryage;\n\t\t\t\t\t\tscope.m.isRailDrayage = response.data.services.handlesRailDryage;\n\t\t\t\t\t\tscope.m.isCarbCompliant = response.data.services.hasCarbCompliantTrucks;\n\t\t\t\t\t\tscope.m.isExpeditedGround = response.data.services.hasExpeditedGround;\n\t\t\t\t\t\tscope.m.isSpottedTrailers = response.data.services.hasSpottedTrailers;\n\t\t\t\t\t\tscope.m.isAceCertified = response.data.services.isAceCertified;\n\t\t\t\t\t\tscope.m.is100PctCarbCompliant = response.data.services.isCarbComplientTru;\n\t\t\t\t\t\tscope.m.isCtpatMember = response.data.services.isCtpatMember;\n\t\t\t\t\t\tscope.m.isHazmatCertified = response.data.services.isHazmatCertified;\n\t\t\t\t\t\tscope.m.isRadioactiveCertified = response.data.services.isRadioactiveCertified;\n\t\t\t\t\t\tscope.m.isResponsibleCareCarrier = response.data.services.isResponsibileCare;\n\t\t\t\t\t\tscope.m.isSmartWayCarrier = response.data.services.isSmartwayCarrier;\n\t\t\t\t\t\tscope.m.isTsaRegistered = response.data.services.isTsaRegistered;\n\t\t\t\t\t\tscope.m.isTwicCardholder = response.data.services.isTwicCardholder;\n\t\t\t\t\t\tscope.m.isUpsCarrier = response.data.services.isUpsCarrier;\n\t\t\t\t\t\tscope.m.otherServices = response.data.services.otherServices;\n\t\t\t\t\t\tscope.m.isLtlCapabilities = response.data.services.hasLtlCapabilties;\n\n\t\t\t\t\t\tif (response.data.services.airports != null) {\n\t\t\t\t\t\t\tvar airportCount = response.data.services.airports.length;\n\t\t\t\t\t\t\tif (airportCount > 0) {\n\t\t\t\t\t\t\t\tscope.m.airCartageAirports = '';\n\t\t\t\t\t\t\t\tfor (var i = 0; i < airportCount; i++) {\n\t\t\t\t\t\t\t\t\tscope.m.airCartageAirports += response.data.services.airports[i] + '\\n';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (response.data.services.ports != null) {\n\t\t\t\t\t\t\tvar portCount = response.data.services.ports.length;\n\t\t\t\t\t\t\tif (portCount > 0) {\n\t\t\t\t\t\t\t\tscope.m.portDrayageCities = '';\n\t\t\t\t\t\t\t\tfor (var i = 0; i < portCount; i++) {\n\t\t\t\t\t\t\t\t\tscope.m.portDrayageCities += response.data.services.ports[i] + '\\n';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif (response.data.equipment != null) {\n\n\t\t\t\t\t\tvar arrayLength = response.data.equipment.trailers.length;\n\n\t\t\t\t\t\tfor (var i = 0; i < arrayLength; i++) {\n\t\t\t\t\t\t\tswitch (response.data.equipment.trailers[i].trailerType.toLowerCase()) {\n\t\t\t\t\t\t\tcase 'flatbed48ft':\n\t\t\t\t\t\t\t\tscope.m.flatbeds48 = response.data.equipment.trailers[i].trailerAmount;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'flatbed53ft':\n\t\t\t\t\t\t\t\tscope.m.flatbeds53 = response.data.equipment.trailers[i].trailerAmount;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'van48ft':\n\t\t\t\t\t\t\t\tscope.m.vans48 = response.data.equipment.trailers[i].trailerAmount;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'van53ft':\n\t\t\t\t\t\t\t\tscope.m.vans53 = response.data.equipment.trailers[i].trailerAmount;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'reefer48ft':\n\t\t\t\t\t\t\t\tscope.m.reefers48 = response.data.equipment.trailers[i].trailerAmount;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'reefer53ft':\n\t\t\t\t\t\t\t\tscope.m.reefers53 = response.data.equipment.trailers[i].trailerAmount;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'doubledrop':\n\t\t\t\t\t\t\t\tscope.m.doubleDropCount = response.data.equipment.trailers[i].trailerAmount;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'lowboy':\n\t\t\t\t\t\t\t\tscope.m.lowBoyCount = response.data.equipment.trailers[i].trailerAmount;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'autocarrier':\n\t\t\t\t\t\t\t\tscope.m.autoCarrierCount = response.data.equipment.trailers[i].trailerAmount;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'container':\n\t\t\t\t\t\t\t\tscope.m.containerCount = response.data.equipment.trailers[i].trailerAmount;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'movingvan':\n\t\t\t\t\t\t\t\tscope.m.movingVanCount = response.data.equipment.trailers[i].trailerAmount;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'dropstep':\n\t\t\t\t\t\t\t\tscope.m.dropStepDeckCount = response.data.equipment.trailers[i].trailerAmount;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'dumptrailer':\n\t\t\t\t\t\t\t\tscope.m.dumpTrailerCount = response.data.equipment.trailers[i].trailerAmount;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'stretchtrailer':\n\t\t\t\t\t\t\t\tscope.m.stretchTrailerCount = response.data.equipment.trailers[i].trailerAmount;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'hopperbottom':\n\t\t\t\t\t\t\t\tscope.m.hopperBottomCount = response.data.equipment.trailers[i].trailerAmount;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'tanker':\n\t\t\t\t\t\t\t\tscope.m.tankerCount = response.data.equipment.trailers[i].trailerAmount;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'straighttruck':\n\t\t\t\t\t\t\t\tscope.m.straightTruckCount = response.data.equipment.trailers[i].trailerAmount;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t$timeout(function() {\n\t\t\t\t\t\tclearVanTypes();\n\t\t\t\t\t\tclearFlatbedTypes();\n\t\t\t\t\t\tclearTrailerAttributes();\n\t\t\t\t\t\tonChangeHasDangerousGoods();\n\t\t\t\t\t\tonChangeHasInternational();\n\t\t\t\t\t\tonChangeHasSecurityCerts();\n\t\t\t\t\t\tonChangeHasEnvironmentalCerts();\n\t\t\t\t\t\tonChangeHasLtlCapabilities();\n\t\t\t\t\t\tonChangeHasDropOffPort();\n\t\t\t\t\t\tonChangeIsPortDrayage();\n\t\t\t\t\t\tonChangeIsAirCartage();\n\n\t\t\t\t\t\tscope.m.isDirty = false;\n\t\t\t\t\t\twindow.onbeforeunload = undefined;\n\t\t\t\t\t});\n\n\t\t\t\t\tloadDocuments();\n\t\t\t\t})\n\t\t\t\t.catch(function(e) {\n\t\t\t\t\tconsole.log(e);\n\t\t\t\t});\n\n\t\t}\n\n\t\tfunction getCarrierId() {\n\t\t\treturn $stateParams.carrierId ? $stateParams.carrierId : -1;\n\t\t}\n\n\t\tfunction clearTrailerCounts() {\n\t\t\tif (scope.m.hasNoTrailers) {\n\t\t\t\tscope.m.vans48 = null;\n\t\t\t\tscope.m.vans53 = null;\n\t\t\t\tscope.m.flatbeds48 = null;\n\t\t\t\tscope.m.flatbeds53 = null;\n\t\t\t\tscope.m.reefers48 = null;\n\t\t\t\tscope.m.reefers53 = null;\n\t\t\t\tscope.m.containerCount = null;\n\t\t\t\tscope.m.movingVanCount = null;\n\t\t\t\tscope.m.straightTruckCount = null;\n\t\t\t\tscope.m.tankerCount = null;\n\t\t\t\tscope.m.autoCarrierCount = null;\n\t\t\t\tscope.m.doubleDropCount = null;\n\t\t\t\tscope.m.dropStepDeckCount = null;\n\t\t\t\tscope.m.lowBoyCount = null;\n\t\t\t\tscope.m.stretchTrailerCount = null;\n\t\t\t\tscope.m.dumpTrailerCount = null;\n\n\t\t\t\tif (flatbedsCountIsZero()) {\n\t\t\t\t\tscope.m.hopperBottomCount = null;\n\t\t\t\t}\n\n\t\t\t\tclearTrailerAttributes();\n\t\t\t}\n\t\t}\n\n\t\tfunction clearVanTypes() {\n\t\t\tif (vansCountIsZero()) {\n\t\t\t\tscope.m.containerCount = null;\n\t\t\t\tscope.m.movingVanCount = null;\n\t\t\t\tscope.m.straightTruckCount = null;\n\t\t\t\tscope.m.tankerCount = null;\n\t\t\t\tscope.m.hopperBottomCount = null;\n\n\t\t\t\tif (flatbedsCountIsZero()) {\n\t\t\t\t\tscope.m.hopperBottomCount = null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tclearTrailerAttributes();\n\t\t}\n\n\t\tfunction clearFlatbedTypes() {\n\t\t\tif (flatbedsCountIsZero()) {\n\t\t\t\tscope.m.autoCarrierCount = null;\n\t\t\t\tscope.m.doubleDropCount = null;\n\t\t\t\tscope.m.dropStepDeckCount = null;\n\t\t\t\tscope.m.lowBoyCount = null;\n\t\t\t\tscope.m.stretchTrailerCount = null;\n\t\t\t\tscope.m.dumpTrailerCount = null;\n\n\t\t\t\tif (vansCountIsZero()) {\n\t\t\t\t\tscope.m.hopperBottomCount = null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tclearTrailerAttributes();\n\t\t}\n\n\t\tfunction clearTrailerAttributes() {\n\t\t\tif (vansCountIsZero()) {\n\t\t\t\tscope.m.hasCurtains = false;\n\t\t\t\tscope.m.hasGarmentRacks = false;\n\t\t\t\tscope.m.hasPadWrap = false;\n\t\t\t}\n\n\t\t\tif (flatbedsCountIsZero()) {\n\t\t\t\tscope.m.hasChains = false;\n\t\t\t\tscope.m.hasCoilRacks = false;\n\t\t\t\tscope.m.hasStraps = false;\n\t\t\t\tscope.m.hasTarps = false;\n\t\t\t}\n\n\t\t\tif (vansCountIsZero() && flatbedsCountIsZero()) {\n\t\t\t\tscope.m.hasConestoga = false;\n\t\t\t\tscope.m.hasHotshot = false;\n\t\t\t}\n\n\t\t\tif (vansCountIsZero() && flatbedsCountIsZero() && reefersCountIsZero()) {\n\t\t\t\tscope.m.hasAirRide = false;\n\t\t\t}\n\t\t\tif (vansCountIsZero() && reefersCountIsZero()) {\n\t\t\t\tscope.m.hasInsulated = false;\n\t\t\t\tscope.m.hasVented = false;\n\t\t\t\tscope.m.hasContainerLocks = false;\n\t\t\t\tscope.m.hasEtrac = false;\n\t\t\t}\n\t\t}\n\n\t\tfunction vansCountIsZero() {\n\t\t\treturn ((scope.m\n\t\t\t\t.vans48 ===\n\t\t\t\tnull ||\n\t\t\t\tscope.m.vans48 === '0' ||\n\t\t\t\tscope.m.vans48 === '' ||\n\t\t\t\tscope.m.vans48 === 0) &&\n\t\t\t(scope.m.vans53 === null || scope.m.vans53 === '0' || scope.m.vans53 === '' || scope.m.vans53 === 0));\n\t\t}\n\n\t\tfunction flatbedsCountIsZero() {\n\t\t\treturn ((scope.m.flatbeds48 === null ||\n\t\t\t\tscope.m.flatbeds48 === '0' ||\n\t\t\t\tscope.m.flatbeds48 === '' ||\n\t\t\t\tscope.m.flatbeds48 === 0) &&\n\t\t\t(scope.m.flatbeds53 === null ||\n\t\t\t\tscope.m.flatbeds53 === '0' ||\n\t\t\t\tscope.m.flatbeds53 === '' ||\n\t\t\t\tscope.m.flatbeds53 === 0));\n\t\t}\n\n\t\tfunction reefersCountIsZero() {\n\t\t\treturn ((scope.m.reefers48 === null ||\n\t\t\t\tscope.m.reefers48 === '0' ||\n\t\t\t\tscope.m.reefers48 === '' ||\n\t\t\t\tscope.m.reefers48 === 0) &&\n\t\t\t(scope.m.reefers53 === null ||\n\t\t\t\tscope.m.reefers53 === '0' ||\n\t\t\t\tscope.m.reefers53 === '' ||\n\t\t\t\tscope.m.reefers53 === 0));\n\t\t}\n\n\t\tfunction isValidNumberOfOwnerOperators() {\n\t\t\tif (scope.m.numberOfOwnerOperators == null || scope.m.numberOfOwnerOperators === '') {\n\t\t\t\tscope.m.numberOfOwnerOperatorsError = 'Valid input is required';\n\t\t\t\t\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\tscope.m.numberOfOwnerOperatorsError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction onChangeHasDangerousGoods() {\n\t\t\tif (scope.m.hasDangerousGoods === false || scope.m.hasDangerousGoods === null) {\n\t\t\t\tscope.m.isHazmatCertified = false;\n\t\t\t\tscope.m.isRadioactiveCertified = false;\n\t\t\t\tscope.m.isResponsibleCareCarrier = false;\n\t\t\t}\n\t\t}\n\n\t\tfunction onChangeHasInternational() {\n\t\t\tif (scope.m.hasInternational === false || scope.m.hasInternational === null) {\n\t\t\t\tscope.m.isAceCertified = false;\n\t\t\t\tscope.m.isCtpatMember = false;\n\t\t\t}\n\t\t}\n\n\t\tfunction onChangeHasSecurityCerts() {\n\t\t\tif (scope.m.hasSecurityCerts === false || scope.m.hasSecurityCerts === null) {\n\t\t\t\tscope.m.isTwicCardholder = false;\n\t\t\t\tscope.m.isTsaRegistered = false;\n\t\t\t}\n\t\t}\n\n\t\tfunction onChangeHasEnvironmentalCerts() {\n\t\t\tif (scope.m.hasEnvironmentalCerts === false || scope.m.hasEnvironmentalCerts === null) {\n\t\t\t\tscope.m.isSmartWayCarrier = false;\n\t\t\t\tscope.m.isCarbCompliant = false;\n\t\t\t\tscope.m.is100PctCarbCompliant = false;\n\t\t\t}\n\t\t}\n\n\t\tfunction onChangeHasLtlCapabilities() {\n\t\t\tif (scope.m.hasLtlCapabilities === false || scope.m.hasLtlCapabilities === null) {\n\t\t\t\tscope.m.isParcel = false;\n\t\t\t\tscope.m.isUpsCarrier = false;\n\t\t\t\tscope.m.isLtlCapabilities = false;\n\t\t\t\tscope.m.isExpeditedGround = false;\n\t\t\t\tscope.m.isMultiStop = false;\n\t\t\t}\n\t\t}\n\n\t\tfunction onChangeHasDropOffPort() {\n\t\t\tif (scope.m.hasDropOffPort === false || scope.m.hasDropOffPort === null) {\n\t\t\t\tscope.m.isRailDrayage = false;\n\t\t\t\tscope.m.isPortDrayage = false;\n\t\t\t\tscope.m.portDrayageCities = null;\n\t\t\t\tscope.m.isAirCartage = false;\n\t\t\t\tscope.m.airCartageAirports = null;\n\t\t\t}\n\t\t}\n\n\t\tfunction onChangeIsPortDrayage() {\n\t\t\tif (scope.m.isPortDrayage === false || scope.m.isPortDrayage === null) {\n\t\t\t\tscope.m.portDrayageCities = null;\n\t\t\t}\n\t\t}\n\n\t\tfunction onChangeIsAirCartage() {\n\t\t\tif (scope.m.isAirCartage === false || scope.m.isAirCartage === null) {\n\t\t\t\tscope.m.airCartageAirports = null;\n\t\t\t}\n\t\t}\n\n\t\tfunction isValidNumberOfPowerUnits() {\n\t\t\tif (!scope.m.isBroker) {\n\t\t\t\tif (scope.m.numberOfPowerUnits == null || scope.m.numberOfPowerUnits === '') {\n\t\t\t\t\tscope.m.numberOfPowerUnitsError = 'Valid input is required';\n\t\t\t\t\t\n\t\t\t\t\treturn false;\n\t\t\t\t} else {\n\t\t\t\t\tscope.m.numberOfPowerUnitsError = '';\n\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction isValidNumberOfOwnerOperators() {\n\t\t\tif (!scope.m.isBroker) {\n\t\t\t\tif (scope.m.numberOfOwnerOperators == null || scope.m.numberOfOwnerOperators === '') {\n\t\t\t\t\tscope.m.numberOfOwnerOperatorsError = 'Valid input is required';\n\n\t\t\t\t\treturn false;\n\t\t\t\t} else {\n\t\t\t\t\tscope.m.numberOfOwnerOperatorsError = '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction isValidNumberOfCompanyDrivers() {\n\t\t\tif (!scope.m.isBroker) {\n\t\t\t\tif (scope.m.numberOfCompanyDrivers == null || scope.m.numberOfCompanyDrivers === '') {\n\t\t\t\t\tscope.m.numberOfCompanyDriversError = 'Valid input is required';\n\n\t\t\t\t\treturn false;\n\t\t\t\t} else {\n\t\t\t\t\tscope.m.numberOfCompanyDriversError = '';\n\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction isValidTrailerCounts() {\n\t\t\tif (!scope.m.hasNoTrailers) {\n\t\t\t\tif ((scope.m.vans48 != null && scope.m.vans48 !== '' && scope.m.vans48 >= 0) ||\n\t\t\t\t(scope.m.vans53 != null && scope.m.vans53 !== '' && scope.m.vans53 >= 0) ||\n\t\t\t\t(scope.m.flatbeds48 != null && scope.m.flatbeds48 !== '' && scope.m.flatbeds48 >= 0) ||\n\t\t\t\t(scope.m.flatbeds53 != null && scope.m.flatbeds53 !== '' && scope.m.flatbeds53 >= 0) ||\n\t\t\t\t(scope.m.reefers48 != null && scope.m.reefers48 !== '' && scope.m.reefers48 >= 0) ||\n\t\t\t\t(scope.m.reefers53 != null && scope.m.reefers53 !== '' && scope.m.reefers53 >= 0)) {\n\t\t\t\t\tscope.m.numberOfTrailersError = '';\n\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tscope.m\n\t\t\t\t\t.numberOfTrailersError =\n\t\t\t\t\t'Enter at least one quantity for Number of Trailers or select the \\'I have no trailers\\' checkbox. ';\n\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tscope.m.numberOfTrailersError = '';\n\n\t\t\treturn true;\n\t\t}\n\n\t\tfunction isFormValid() {\n\t\t\tisValidNumberOfCompanyDrivers();\n\t\t\tisValidNumberOfOwnerOperators();\n\t\t\tisValidNumberOfPowerUnits();\n\t\t\tisValidTrailerCounts();\n\n\t\t\tif (scope.m.numberOfCompanyDriversError === '' &&\n\t\t\t\tscope.m.numberOfOwnerOperatorsError === '' &&\n\t\t\t\tscope.m.numberOfPowerUnitsError === '' &&\n\t\t\t\tscope.m.numberOfTrailersError === '') {\n\t\t\t\tsetSectionMessage(false);\n\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tsetSectionMessage(true);\n\t\t\t\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction saveData(callback) {\n\t\t\tif (scope.m.isDirty) {\n\t\t\t\tif (isFormValid()) {\n\t\t\t\t\tvar trailers = [];\n\t\t\t\t\tvar ports = [];\n\t\t\t\t\tvar airports = [];\n\n\t\t\t\t\tif (scope.m.vans48 == 0 &&\n\t\t\t\t\t\tscope.m.vans53 == 0 &&\n\t\t\t\t\t\tscope.m.flatbeds48 == 0 &&\n\t\t\t\t\t\tscope.m.flatbeds53 == 0 &&\n\t\t\t\t\t\tscope.m.reefers48 == 0 &&\n\t\t\t\t\t\tscope.m.reefers53 == 0) {\n\n\t\t\t\t\t\tscope.m.vans48 = null;\n\t\t\t\t\t\tscope.m.vans53 = null;\n\t\t\t\t\t\tscope.m.flatbeds48 = null;\n\t\t\t\t\t\tscope.m.flatbeds53 = null;\n\t\t\t\t\t\tscope.m.reefers48 = null;\n\t\t\t\t\t\tscope.m.reefers53 = null;\n\n\t\t\t\t\t\tscope.m.hasNoTrailers = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (scope.m.vans48 != null && scope.m.vans48 !== '') {\n\t\t\t\t\t\tif (scope.m.vans48 >= 0) {\n\t\t\t\t\t\t\ttrailers.push({\n\t\t\t\t\t\t\t\ttrailerType: 'Van48ft',\n\t\t\t\t\t\t\t\tnumberOf: scope.m.vans48\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (scope.m.vans53 != null && scope.m.vans53 !== '') {\n\t\t\t\t\t\tif (scope.m.vans53 >= 0) {\n\t\t\t\t\t\t\ttrailers.push({\n\t\t\t\t\t\t\t\ttrailerType: 'Van53ft',\n\t\t\t\t\t\t\t\tnumberOf: scope.m.vans53\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (scope.m.flatbeds48 != null && scope.m.flatbeds48 !== '') {\n\t\t\t\t\t\tif (scope.m.flatbeds48 >= 0) {\n\t\t\t\t\t\t\ttrailers.push({\n\t\t\t\t\t\t\t\ttrailerType: 'Flatbed48ft',\n\t\t\t\t\t\t\t\tnumberOf: scope.m.flatbeds48\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (scope.m.flatbeds53 != null && scope.m.flatbeds53 !== '') {\n\t\t\t\t\t\tif (scope.m.flatbeds53 >= 0) {\n\t\t\t\t\t\t\ttrailers.push({\n\t\t\t\t\t\t\t\ttrailerType: 'Flatbed53ft',\n\t\t\t\t\t\t\t\tnumberOf: scope.m.flatbeds53\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (scope.m.reefers48 != null && scope.m.reefers48 !== '') {\n\t\t\t\t\t\tif (scope.m.reefers48 >= 0) {\n\t\t\t\t\t\t\ttrailers.push({\n\t\t\t\t\t\t\t\ttrailerType: 'Reefer48ft',\n\t\t\t\t\t\t\t\tnumberOf: scope.m.reefers48\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (scope.m.reefers53 != null && scope.m.reefers53 !== '') {\n\t\t\t\t\t\tif (scope.m.reefers53 >= 0) {\n\t\t\t\t\t\t\ttrailers.push({\n\t\t\t\t\t\t\t\ttrailerType: 'Reefer53ft',\n\t\t\t\t\t\t\t\tnumberOf: scope.m.reefers53\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (scope.m.doubleDropCount != null && scope.m.doubleDropCount !== '') {\n\t\t\t\t\t\tif (scope.m.doubleDropCount >= 0) {\n\t\t\t\t\t\t\ttrailers.push({\n\t\t\t\t\t\t\t\ttrailerType: 'DoubleDrop',\n\t\t\t\t\t\t\t\tnumberOf: scope.m.doubleDropCount\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (scope.m.containerCount != null && scope.m.containerCount !== '') {\n\t\t\t\t\t\tif (scope.m.containerCount >= 0) {\n\t\t\t\t\t\t\ttrailers.push({\n\t\t\t\t\t\t\t\ttrailerType: 'Container',\n\t\t\t\t\t\t\t\tnumberOf: scope.m.containerCount\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (scope.m.movingVanCount != null && scope.m.movingVanCount !== '') {\n\t\t\t\t\t\tif (scope.m.movingVanCount >= 0) {\n\t\t\t\t\t\t\ttrailers.push({\n\t\t\t\t\t\t\t\ttrailerType: 'MovingVan',\n\t\t\t\t\t\t\t\tnumberOf: scope.m.movingVanCount\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (scope.m.straightTruckCount != null && scope.m.straightTruckCount !== '') {\n\t\t\t\t\t\tif (scope.m.straightTruckCount >= 0) {\n\t\t\t\t\t\t\ttrailers.push({\n\t\t\t\t\t\t\t\ttrailerType: 'StraightTruck',\n\t\t\t\t\t\t\t\tnumberOf: scope.m.straightTruckCount\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (scope.m.tankerCount != null && scope.m.tankerCount !== '') {\n\t\t\t\t\t\tif (scope.m.tankerCount >= 0) {\n\t\t\t\t\t\t\ttrailers.push({\n\t\t\t\t\t\t\t\ttrailerType: 'Tanker',\n\t\t\t\t\t\t\t\tnumberOf: scope.m.tankerCount\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (scope.m.autoCarrierCount != null && scope.m.autoCarrierCount !== '') {\n\t\t\t\t\t\tif (scope.m.autoCarrierCount >= 0) {\n\t\t\t\t\t\t\ttrailers.push({\n\t\t\t\t\t\t\t\ttrailerType: 'AutoCarrier',\n\t\t\t\t\t\t\t\tnumberOf: scope.m.autoCarrierCount\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (scope.m.dropStepDeckCount != null && scope.m.dropStepDeckCount !== '') {\n\t\t\t\t\t\tif (scope.m.dropStepDeckCount >= 0) {\n\t\t\t\t\t\t\ttrailers.push({\n\t\t\t\t\t\t\t\ttrailerType: 'DropStep',\n\t\t\t\t\t\t\t\tnumberOf: scope.m.dropStepDeckCount\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (scope.m.lowBoyCount != null && scope.m.lowBoyCount !== '') {\n\t\t\t\t\t\tif (scope.m.lowBoyCount >= 0) {\n\t\t\t\t\t\t\ttrailers.push({\n\t\t\t\t\t\t\t\ttrailerType: 'Lowboy',\n\t\t\t\t\t\t\t\tnumberOf: scope.m.lowBoyCount\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (scope.m.stretchTrailerCount != null && scope.m.stretchTrailerCount !== '') {\n\t\t\t\t\t\tif (scope.m.stretchTrailerCount >= 0) {\n\t\t\t\t\t\t\ttrailers.push({\n\t\t\t\t\t\t\t\ttrailerType: 'StretchTrailer',\n\t\t\t\t\t\t\t\tnumberOf: scope.m.stretchTrailerCount\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (scope.m.dumpTrailerCount != null && scope.m.dumpTrailerCount !== '') {\n\t\t\t\t\t\tif (scope.m.dumpTrailerCount >= 0) {\n\t\t\t\t\t\t\ttrailers.push({\n\t\t\t\t\t\t\t\ttrailerType: 'DumpTrailer',\n\t\t\t\t\t\t\t\tnumberOf: scope.m.dumpTrailerCount\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (scope.m.hopperBottomCount != null && scope.m.hopperBottomCount !== '') {\n\t\t\t\t\t\tif (scope.m.hopperBottomCount >= 0) {\n\t\t\t\t\t\t\ttrailers.push({\n\t\t\t\t\t\t\t\ttrailerType: 'HopperBottom',\n\t\t\t\t\t\t\t\tnumberOf: scope.m.hopperBottomCount\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\n\t\t\t\t\tif (scope.m.airCartageAirports != null) {\n\t\t\t\t\t\tairports = scope.m.airCartageAirports.split('\\n');\n\t\t\t\t\t}\n\n\t\t\t\t\tif (scope.m.portDrayageCities != null) {\n\t\t\t\t\t\tports = scope.m.portDrayageCities.split('\\n');\n\t\t\t\t\t}\n\n\t\t\t\t\tvar carrierId = getCarrierId();\n\t\t\t\t\tcarrierRegistrationService.updateEquipmentInfo(carrierId,\n\t\t\t\t\t\tscope.m.hasNoTrailers,\n\t\t\t\t\t\tscope.m.hasInternational,\n\t\t\t\t\t\tscope.m.hasDangerousGoods,\n\t\t\t\t\t\tscope.m.hasSecurityCerts,\n\t\t\t\t\t\tscope.m.hasEnvironmentalCerts,\n\t\t\t\t\t\tscope.m.hasLtlCapabilities,\n\t\t\t\t\t\tscope.m.numberOfPowerUnits,\n\t\t\t\t\t\tscope.m.numberOfTeams,\n\t\t\t\t\t\tscope.m.numberOfOwnerOperators,\n\t\t\t\t\t\tscope.m.numberOfCompanyDrivers,\n\t\t\t\t\t\tscope.m.onBoardCommunications,\n\t\t\t\t\t\ttrailers,\n\t\t\t\t\t\tscope.m.hasAirRide,\n\t\t\t\t\t\tscope.m.hasVented,\n\t\t\t\t\t\tscope.m.hasHotshot,\n\t\t\t\t\t\tscope.m.hasCurtains,\n\t\t\t\t\t\tscope.m.hasInsulated,\n\t\t\t\t\t\tscope.m.hasConestoga,\n\t\t\t\t\t\tscope.m.hasCoilRacks,\n\t\t\t\t\t\tscope.m.hasContainerLocks,\n\t\t\t\t\t\tscope.m.hasTarps,\n\t\t\t\t\t\tscope.m.hasEtrac,\n\t\t\t\t\t\tscope.m.hasGarmentRacks,\n\t\t\t\t\t\tscope.m.hasPadWrap,\n\t\t\t\t\t\tscope.m.hasStraps,\n\t\t\t\t\t\tscope.m.hasChains,\n\t\t\t\t\t\tscope.m.isHazmatCertified,\n\t\t\t\t\t\tscope.m.isRadioactiveCertified,\n\t\t\t\t\t\tscope.m.isResponsibleCareCarrier,\n\t\t\t\t\t\tscope.m.isAceCertified,\n\t\t\t\t\t\tscope.m.isCtpatMember,\n\t\t\t\t\t\tscope.m.isTwicCardholder,\n\t\t\t\t\t\tscope.m.isTsaRegistered,\n\t\t\t\t\t\tscope.m.isSmartWayCarrier,\n\t\t\t\t\t\tscope.m.isCarbCompliant,\n\t\t\t\t\t\tscope.m.is100PctCarbCompliant,\n\t\t\t\t\t\tscope.m.isParcel,\n\t\t\t\t\t\tscope.m.isUpsCarrier,\n\t\t\t\t\t\tscope.m.isLtlCapabilities,\n\t\t\t\t\t\tscope.m.isExpeditedGround,\n\t\t\t\t\t\tscope.m.isMultiStop,\n\t\t\t\t\t\tscope.m.isRailDrayage,\n\t\t\t\t\t\tscope.m.isPortDrayage,\n\t\t\t\t\t\tscope.m.isAirCartage,\n\t\t\t\t\t\tscope.m.isEdi,\n\t\t\t\t\t\tscope.m.isSpottedTrailers,\n\t\t\t\t\t\tscope.m.isLargeLoad,\n\t\t\t\t\t\tscope.m.isTrailerInterchange,\n\t\t\t\t\t\tscope.m.isPalletExchange,\n\t\t\t\t\t\tscope.m.isBrokerage,\n\t\t\t\t\t\tscope.m.otherServices,\n\t\t\t\t\t\tairports,\n\t\t\t\t\t\tports,\n\t\t\t\t\t\tscope.m.hasDropOffPort)\n\t\t\t\t\t\t.then(function() {\n\t\t\t\t\t\t\tobserverService\n\t\t\t\t\t\t\t\t.sendMessageToSubject(scope,\n\t\t\t\t\t\t\t\t\tsubjectMessages.COB_SUBJECT_CARRIER_PROFILE_VIEW_STATUS,\n\t\t\t\t\t\t\t\t\t'fleetServices');\n\t\t\t\t\t\t\tscope.m.isDirty = false;\n\t\t\t\t\t\t\tsetSectionMessage(false);\n\t\t\t\t\t\t\twindow.onbeforeunload = undefined;\n\t\t\t\t\t\t\tif (typeof (callback) === 'function')\n\t\t\t\t\t\t\t\tcallback();\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(function(e) {\n\t\t\t\t\t\t\tconsole.log(e);\n\t\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tsetSectionMessage(true);\n\t\t\t\t\tscope.pendingCallback = callback;\n\n\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsetSectionMessage(false);\n\t\t\t\tif (typeof (callback) === 'function')\n\t\t\t\t\tcallback();\n\t\t\t}\n\t\t}\n\n\t\tfunction goToTab(tab) {\n\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_SET_PENDING_TAB, tab);\n\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\tsubjectMessages.COB_SUBJECT_START_CHANGE_CARRIER_PROFILE_VIEW,\n\t\t\t\tnavigate);\n\t\t}\n\n\t\tfunction setPendingTab(tab) {\n\t\t\tscope.tab = tab;\n\t\t}\n\n\t\tfunction navigate() {\n\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\tsubjectMessages.COB_SUBJECT_FINISH_CHANGE_CARRIER_PROFILE_VIEW,\n\t\t\t\tscope.tab);\n\t\t}\n\n\t\tfunction onForceGo() {\n\t\t\tif (typeof (scope.pendingCallback) === 'function')\n\t\t\t\tscope.pendingCallback();\n\t\t}\n\n\t\tfunction setSectionMessage(show) {\n\t\t\tscope.m.showSectionMessage = show;\n\t\t\tif (show) {\n\t\t\t\t$timeout(function () {\n\t\t\t\t\t$('.carrier-profile-wrapper')\n\t\t\t\t\t\t.animate({\n\t\t\t\t\t\t\tscrollTop: $('#error-summary').offset().top\n\t\t\t\t\t\t},\n\t\t\t\t\t\t200);\n\t\t\t\t},\n\t\t\t\t10);\n\t\t\t}\n\t\t}\n\n\t\tfunction loadDocuments() {\n\t\t\tvar carrierId = getCarrierId();\n\t\t\tcarrierRegistrationService.lookupCarrierDocuments(carrierId).then(function (response) {\n\t\t\t\tvar documents = response.data.documents;\n\t\t\t\tscope.m.hazmatCertificates = carrierDocumentsService.getDocumentsByType(documents, HAZMAT_DOCUMENT_TYPE);\n\t\t\t\tscope.m.twicCards = carrierDocumentsService.getDocumentsByType(documents, TWIC_DOCUMENT_TYPE);\n\t\t\t});\n\t\t}\n\n\t\tfunction uploadTwicFile(file) {\n\t\t\tif (!file)\n\t\t\t\treturn;\n\n\t\t\tvar validationResult = carrierDocumentsService.validateFleetDocument(scope.m.twicCards, file);\n\t\t\tif (!validationResult.succeeded) {\n\t\t\t\tscope.m.twicUploadResult = validationResult;\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tuploadFile(file, TWIC_DOCUMENT_TYPE);\n\t\t}\n\n\t\tfunction uploadHazmatFile(file) {\n\t\t\tif (!file)\n\t\t\t\treturn;\n\n\t\t\tvar validationResult = carrierDocumentsService.validateFleetDocument(scope.m.hazmatCertificates, file);\n\t\t\tif (!validationResult.succeeded) {\n\t\t\t\tscope.m.hazmatUploadResult = validationResult;\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tuploadFile(file, HAZMAT_DOCUMENT_TYPE);\n\t\t}\n\n\t\tfunction uploadFile(file, type) {\n\t\t\tspinnerService.startSpinner(scope);\n\n\t\t\tcarrierDocumentsService.getBase64DataUrl(file).then(function (url) {\n\t\t\t\tvar documentFile = {\n\t\t\t\t\tdocumentName: file.name,\n\t\t\t\t\tmimeType: file.type,\n\t\t\t\t\tdocumentType: type,\n\t\t\t\t\tdescription: '',\n\t\t\t\t\tbase64: url.split(',')[1]\n\t\t\t\t};\n\n\t\t\t\tvar carrierId = getCarrierId();\n\t\t\t\tcarrierDocumentsService.uploadDocument(documentFile, carrierId).then(function (response) {\n\t\t\t\t\tif (response.data.isSuccess) {\n\t\t\t\t\t\tif (type === HAZMAT_DOCUMENT_TYPE) {\n\t\t\t\t\t\t\tscope.m.hazmatCertificates.unshift(response.data.document);\n\t\t\t\t\t\t\tscope.m.hazmatFileUploadedRecently = true;\n\t\t\t\t\t\t\tscope.m.hazmatUploadResult = carrierDocumentsService.getResult(true);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (type === TWIC_DOCUMENT_TYPE) {\n\t\t\t\t\t\t\tscope.m.twicCards.unshift(response.data.document);\n\t\t\t\t\t\t\tscope.m.twicCardUploadedRecently = true;\n\t\t\t\t\t\t\tscope.m.twicUploadResult = carrierDocumentsService.getResult(true);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}).finally(function () {\n\t\t\t\t\tspinnerService.stopSpinner(scope);\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}\n\n})();\n","'use strict';\n\n(function() {\n\tangular.module('onboarding.carrier')\n\t\t.directive('cobCarrierProfileInsurance', cobCarrierProfileInsurance);\n\n\tcobCarrierProfileInsurance.$inject = [\n\t\t'$timeout', 'sessionService', 'subjectObserverMessagesService', 'observerService', 'carrierRegistrationService', '$stateParams'\n\t];\n\n\tvar $timeout, sessionService, subjectObserverMessagesService, observerService, carrierRegistrationService, $stateParams;\n\tvar subjectMessages, observerMessages;\n\n\tfunction cobCarrierProfileInsurance(_$timeout_,\n\t\t_sessionService_,\n\t\t_subjectObserverMessagesService_,\n\t\t_observerService_,\n\t\t_carrierRegistrationService_,\n\t\t_$stateParams_) {\n\t\t$timeout = _$timeout_;\n\t\tsessionService = _sessionService_;\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tcarrierRegistrationService = _carrierRegistrationService_;\n\t\t$stateParams = _$stateParams_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/carrier/profile/carrierProfileInsurance.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\n\t\t\tscope.m = {};\n\n\t\t\tloadData();\n\t\t\tregisterObserverHandlers();\n\t\t\tdocument.title = 'Profile-Insurance';\n\n\t\t\t$timeout(function() {\n\t\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_CARRIER_PROFILE_VIEW_LOAD);\n\t\t\t\tloadData();\n\t\t\t},\n\t\t\t100);\n\t\t}\n\n\t\tfunction loadData() {\n\n\t\t\tcarrierRegistrationService.lookupInsuranceInformation($stateParams.carrierId)\n\t\t\t\t.then(function(response) {\n\t\t\t\t\tif (response.data.isRegistryInsurance) {\n\t\t\t\t\t\tvar regInsurance = {\n\t\t\t\t\t\t\tagents: response.data\n\t\t\t\t\t\t};\n\t\t\t\t\t\tif (sessionService.getBrokerBranding()) {\n\t\t\t\t\t\t\tregInsurance.insuranceMessage = sessionService.getBrokerBranding().insuranceMessage;\n\t\t\t\t\t\t\tregInsurance.brokerName = sessionService.getBrokerBranding().brokerName;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\t\tsubjectMessages.COB_SUBJECT_CARRIER_PROFILE_INSUREANCE_REG_LOADED,\n\t\t\t\t\t\t\tregInsurance);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar dobInsurance = {\n\t\t\t\t\t\t\tagents: response.data.agents\n\t\t\t\t\t\t};\n\t\t\t\t\t\tif (sessionService.getBrokerBranding()) {\n\t\t\t\t\t\t\tdobInsurance.insuranceMessage = sessionService.getBrokerBranding().insuranceMessage;\n\t\t\t\t\t\t\tdobInsurance.brokerName = sessionService.getBrokerBranding().brokerName;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\t\tsubjectMessages.COB_SUBJECT_CARRIER_PROFILE_INSUREANCE_DOB_LOADED,\n\t\t\t\t\t\t\tdobInsurance);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}\n\n\t\tfunction registerObserverHandlers() {\n\n\t\t\tobserverService.registerHandlers(scope,\n\t\t\t\t[\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_CARRIER_PROFILE_INSUREANCE_RELOAD, handler: loadData }\n\t\t\t\t]);\n\t\t}\n\t}\n\n})();\n","'use strict';\n\n(function() {\n\tangular.module('onboarding.carrier')\n\t\t.directive('cobCarrierProfileInsuranceDob', cobCarrierProfileInsuranceDob);\n\n\tcobCarrierProfileInsuranceDob.$inject = [\n\t\t'$timeout', '$location', 'Upload', 'sessionService', 'subjectObserverMessagesService',\n\t\t'observerService', 'carrierRegistrationService', 'validationService', '$stateParams'\n\t];\n\n\tvar $timeout,\n\t\t$location,\n\t\tngFileUpload,\n\t\tsessionService,\n\t\tsubjectObserverMessagesService,\n\t\tobserverService,\n\t\tvalidationService,\n\t\t$stateParams;\n\tvar subjectMessages, observerMessages, carrierRegistrationService, cleanAgent, pendingTab;\n\n\tfunction cobCarrierProfileInsuranceDob(_$timeout_,\n\t\t_$location_,\n\t\t_ngFileUpload_,\n\t\t_sessionService_,\n\t\t_subjectObserverMessagesService_,\n\t\t_observerService_,\n\t\t_carrierRegistrationService_,\n\t\t_validationService_,\n\t\t_$stateParams_) {\n\t\t$timeout = _$timeout_;\n\t\t$location = _$location_;\n\t\tngFileUpload = _ngFileUpload_;\n\t\tsessionService = _sessionService_;\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tcarrierRegistrationService = _carrierRegistrationService_;\n\t\tvalidationService = _validationService_;\n\t\t$stateParams = _$stateParams_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/carrier/profile/carrierProfileInsuranceDob.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\n\t\t\tscope.getCoverage = getCoverage;\n\t\t\tscope.onEditClick = onEditClick;\n\t\t\tscope.onTrashClick = onTrashClick;\n\t\t\tscope.onSaveClick = onSaveClick;\n\t\t\tscope.onCancelClick = onCancelClick;\n\t\t\tscope.confirmDelete = confirmDelete;\n\t\t\tscope.cancelDelete = cancelDelete;\n\t\t\tscope.onAddClick = onAddClick;\n\t\t\tscope.goToTab = goToTab;\n\t\t\tscope.onDiscardFileClick = onDiscardFileClick;\n\t\t\tscope.onFileUploadStart = onFileUploadStart;\n\t\t\tscope.setIsDirty = setIsDirty;\n\t\t\tscope.onForceGo = onForceGo;\n\t\t\tscope.validateName = validateName;\n\t\t\tscope.validatePhone = validatePhone;\n\t\t\tscope.validateFax = validateFax;\n\t\t\tscope.validateEmail = validateEmail;\n\t\t\tscope.validateCoverage = validateCoverage;\n\n\t\t\tscope.m = {\n\t\t\t\tisBroker: sessionService.isBroker(),\n\t\t\t\tisAdmin: sessionService.isAuthorizedInternalAdmin(),\n\t\t\t\tloaded: false,\n\t\t\t\tedit: false,\n\t\t\t\taddNewRow: false,\n\t\t\t\tagents: [],\n\t\t\t\tnewAgent: {},\n\t\t\t\tdeleteAgent: {}\n\t\t\t};\n\n\t\t\tregisterObserverHandlers();\n\n\t\t\t$timeout(function() {\n\t\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_CARRIER_PROFILE_VIEW_LOAD);\n\t\t\t},\n\t\t\t100);\n\t\t}\n\n\t\tfunction loadData(data) {\n\n\t\t\tscope.m.loaded = true;\n\n\t\t\tscope.m.agents = [];\n\t\t\tscope.m.newAgent = {};\n\n\t\t\tscope.m.insuranceMessage = data.insuranceMessage;\n\t\t\tscope.m.brokerName = data.brokerName;\n\n\t\t\tangular.forEach(data.agents,\n\t\t\t\tfunction(agent) {\n\t\t\t\t\tvar dobAgent = {\n\t\t\t\t\t\tcertificateFileName: agent.certificateFileName,\n\t\t\t\t\t\tagentName: agent.agentName,\n\t\t\t\t\t\tagentId: agent.agentId,\n\t\t\t\t\t\tphone: agent.phone,\n\t\t\t\t\t\textension: agent.extension,\n\t\t\t\t\t\tfax: agent.fax,\n\t\t\t\t\t\temail: agent.email,\n\t\t\t\t\t\tauto: agent.coverage.indexOf('AUTO') > -1,\n\t\t\t\t\t\tcargo: agent.coverage.indexOf('CARGO') > -1,\n\t\t\t\t\t\tgeneral: agent.coverage.indexOf('GENERAL') > -1,\n\t\t\t\t\t\tworkersComp: agent.coverage.indexOf('WORKERS_COMP') > -1\n\t\t\t\t\t};\n\n\t\t\t\t\tif (agent.certificateFileName) {\n\t\t\t\t\t\tdobAgent.hadCert = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.push(dobAgent);\n\t\t\t\t},\n\t\t\t\tscope.m.agents);\n\n\n\t\t}\n\n\t\tfunction registerObserverHandlers() {\n\n\t\t\tobserverService.registerHandlers(scope,\n\t\t\t\t[\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_START_CHANGE_CARRIER_PROFILE_VIEW, handler: saveData },\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_CARRIER_PROFILE_INSUREANCE_DOB_LOADED, handler: loadData },\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_SET_PENDING_TAB, handler: setPendingTab }\n\t\t\t\t]);\n\n\t\t\tscope.$on('$destroy',\n\t\t\t\tfunction() {\n\t\t\t\t\twindow.onbeforeunload = undefined;\n\t\t\t\t});\n\n\t\t\tscope.$on('$locationChangeStart',\n\t\t\t\tfunction(event) {\n\t\t\t\t\tif (scope.m.isDirty) {\n\t\t\t\t\t\tif (!scope.ux_requirement_hack_for_scrolling) {\n\t\t\t\t\t\t\tif (!\n\t\t\t\t\t\t\tconfirm('You have unsaved data. If you leave this page any changes will be lost. Changes are saved using the Save buttons at the bottom of the page. Are you sure you want to leave the page?')) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tscope.ux_requirement_hack_for_scrolling = false;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction saveData(callback) {\n\t\t\tif (!scope.m.loaded) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!scope.m.isDirty) {\n\t\t\t\tif (typeof (callback) === 'function')\n\t\t\t\t\tcallback();\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (formIsValid()) {\n\t\t\t\tif (scope.m.addNewRow || scope.m.agents.length === 0) { //new row\n\t\t\t\t\tsaveAgent(scope.m.newAgent, callback);\n\n\t\t\t\t\treturn;\n\t\t\t\t} else {\n\t\t\t\t\tangular.forEach(scope.m.agents,\n\t\t\t\t\t\tfunction(agent) {\n\t\t\t\t\t\t\tif (agent.edit) {\n\t\t\t\t\t\t\t\tsaveAgent(agent, callback);\n\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsetSectionMessage(true);\n\t\t\t\tscope.pendingCallback = callback;\n\n\t\t\t\t$timeout(function() {\n\t\t\t\t\tscope.ux_requirement_hack_for_scrolling = true;\n\t\t\t\t\t$('.profile-insurance-DOB').animate({\n\t\t\t\t\t\tscrollTop: $('#error-summary').offset().top\n\t\t\t\t\t}, 200);\n\t\t\t\t\tsetIsDirty();\n\t\t\t\t},\n\t\t\t\t1);\n\t\t\t}\n\t\t}\n\n\t\tfunction saveAgent(agent, callback) {\n\t\t\tvar carrierId = -1;\n\n\t\t\tif ($stateParams.carrierId)\n\t\t\t\tcarrierId = $stateParams.carrierId;\n\n\t\t\tsetTimeout(function () {\n\t\t\t\tobserverService.sendMessageToSubject(scope, subjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_WAITING);\n\t\t\t}, 1);\n\n\t\t\tcarrierRegistrationService.updateDobInsurance(carrierId,\n\t\t\t\tagent.agentId,\n\t\t\t\tagent.agentName,\n\t\t\t\tagent.phone,\n\t\t\t\tagent.extension,\n\t\t\t\tagent.fax,\n\t\t\t\tagent.auto,\n\t\t\t\tagent.cargo,\n\t\t\t\tagent.general,\n\t\t\t\tagent.workersComp,\n\t\t\t\tagent.email,\n\t\t\t\tagent.certificateFileName,\n\t\t\t\tagent.newDocumentExe,\n\t\t\t\tagent.newDocumentBase64,\n\t\t\t\tagent.newDocumentType,\n\t\t\t\tagent.hadCert)\n\t\t\t\t.then(function() {\n\t\t\t\t\tscope.m.edit = false;\n\t\t\t\t\tagent.edit = false;\n\t\t\t\t\tscope.m.isDirty = false;\n\t\t\t\t\twindow.onbeforeunload = undefined;\n\t\t\t\t\tscope.m.addNewRow = false;\n\n\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\tsubjectMessages.COB_SUBJECT_CARRIER_PROFILE_VIEW_STATUS,\n\t\t\t\t\t\t'insurance');\n\n\t\t\t\t\tif (typeof (callback) === 'function') {\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\t\tsubjectMessages.COB_SUBJECT_CARRIER_PROFILE_INSUREANCE_RELOAD);\n\t\t\t\t\t}\n\n\t\t\t\t})\n\t\t\t\t.catch(function(error) {\n\t\t\t\t\tconsole.log(error);\n\t\t\t\t}).finally(function () {\n\t\t\t\t\tobserverService\n\t\t\t\t\t\t.sendMessageToSubject(scope, subjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_DONE);\n\t\t\t\t});\n\t\t}\n\n\t\tfunction setIsDirty() {\n\t\t\tscope.m.isDirty = true;\n\n\t\t\twindow.onbeforeunload = function() {\n\t\t\t\treturn 'You have unsaved data. If you leave this page any changes will be lost. Changes are saved using the Save buttons at the bottom of the page.';\n\t\t\t};\n\t\t}\n\n\t\tfunction getCoverage(agent) {\n\t\t\tvar output = '';\n\n\t\t\tif (agent.auto)\n\t\t\t\toutput = 'Auto, ';\n\n\t\t\tif (agent.cargo)\n\t\t\t\toutput = output + 'Cargo, ';\n\n\t\t\tif (agent.general)\n\t\t\t\toutput = output + 'General, ';\n\n\t\t\tif (agent.workersComp)\n\t\t\t\toutput = output + 'Workers\\' Comp ';\n\n\t\t\tif (output)\n\t\t\t\toutput = output.replace(/,\\s+$/gm, '');\n\n\t\t\treturn output;\n\t\t}\n\n\t\tfunction onEditClick(agent) {\n\t\t\tscope.m.edit = true;\n\t\t\tagent.edit = true;\n\n\t\t\tcleanAgent = {\n\t\t\t\tagentName: agent.agentName,\n\t\t\t\tphone: agent.phone,\n\t\t\t\textension: agent.extension,\n\t\t\t\tfax: agent.fax,\n\t\t\t\temail: agent.email,\n\t\t\t\tauto: agent.auto,\n\t\t\t\tcargo: agent.cargo,\n\t\t\t\tgeneral: agent.general,\n\t\t\t\tworkersComp: agent.workersComp,\n\t\t\t\tcertificateFileName: agent.certificateFileName,\n\t\t\t\tcertificateId: agent.certficateId\n\t\t\t};\n\t\t}\n\n\t\tfunction onTrashClick(agent) {\n\t\t\tscope.m.deleteAgent = agent;\n\t\t}\n\n\t\tfunction onSaveClick(agent) {\n\t\t\tif (agentIsValid(agent)) {\n\t\t\t\tsaveAgent(agent);\n\t\t\t}\n\t\t}\n\n\t\tfunction onCancelClick(agent) {\n\t\t\tif (scope.m.edit) {\n\t\t\t\tagent.agentName = cleanAgent.agentName;\n\t\t\t\tagent.phone = cleanAgent.phone;\n\t\t\t\tagent.extension = cleanAgent.extension;\n\t\t\t\tagent.fax = cleanAgent.fax;\n\t\t\t\tagent.email = cleanAgent.email;\n\t\t\t\tagent.auto = cleanAgent.auto;\n\t\t\t\tagent.cargo = cleanAgent.cargo;\n\t\t\t\tagent.general = cleanAgent.general;\n\t\t\t\tagent.workersComp = cleanAgent.workersComp;\n\t\t\t\tagent.certificateFileName = cleanAgent.certificateFileName;\n\n\t\t\t\tscope.m.edit = false;\n\t\t\t\tagent.edit = false;\n\t\t\t} else if (scope.m.addNewRow || scope.m.agents.length === 0) {\n\t\t\t\tscope.m.newAgent.agentName = undefined;\n\t\t\t\tscope.m.newAgent.phone = undefined;\n\t\t\t\tscope.m.newAgent.extension = undefined;\n\t\t\t\tscope.m.newAgent.fax = undefined;\n\t\t\t\tscope.m.newAgent.email = undefined;\n\t\t\t\tscope.m.newAgent.auto = undefined;\n\t\t\t\tscope.m.newAgent.cargo = undefined;\n\t\t\t\tscope.m.newAgent.general = undefined;\n\t\t\t\tscope.m.newAgent.workersComp = undefined;\n\t\t\t\tscope.m.newAgent.certificateFileName = undefined;\n\n\t\t\t\tscope.m.addNewRow = false;\n\t\t\t}\n\n\t\t\tagent.nameError = '';\n\t\t\tagent.phoneError = '';\n\t\t\tagent.faxError = '';\n\t\t\tagent.emailError = '';\n\t\t\tagent.coverageError = '';\n\t\t\tscope.m.isDirty = false;\n\t\t\twindow.onbeforeunload = undefined;\n\t\t}\n\n\t\tfunction confirmDelete() {\n\t\t\tscope.m.deleteAgent.agentName = '';\n\t\t\tsaveAgent(scope.m.deleteAgent);\n\t\t}\n\n\t\tfunction cancelDelete() {\n\t\t\tscope.m.deleteAgent = {};\n\t\t}\n\n\t\tfunction onAddClick() {\n\t\t\tscope.m.addNewRow = true;\n\t\t}\n\n\t\tfunction goToTab(tab) {\n\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_SET_PENDING_TAB, tab);\n\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\tsubjectMessages.COB_SUBJECT_START_CHANGE_CARRIER_PROFILE_VIEW,\n\t\t\t\tnavigate);\n\t\t}\n\n\t\tfunction setPendingTab(tab) {\n\t\t\tscope.tab = tab;\n\t\t}\n\n\t\tfunction navigate() {\n\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\tsubjectMessages.COB_SUBJECT_FINISH_CHANGE_CARRIER_PROFILE_VIEW,\n\t\t\t\tscope.tab);\n\t\t}\n\n\t\tfunction onDiscardFileClick(agent) {\n\t\t\tagent.certificateFileName = undefined;\n\t\t\tsetIsDirty();\n\t\t}\n\n\t\tfunction onFileUploadStart(agent) {\n\t\t\tif (agent.fileUploaderFile) {\n\t\t\t\tsetIsDirty();\n\t\t\t\tif (validateFile(agent)) {\n\t\t\t\t\tngFileUpload.base64DataUrl(agent.fileUploaderFile, false)\n\t\t\t\t\t\t.then(function(url) {\n\t\t\t\t\t\t\tvar nameSplit = agent.fileUploaderFile.name.split('.');\n\n\t\t\t\t\t\t\tagent.newDocumentBase64 = url.split(',')[1];\n\t\t\t\t\t\t\tagent.newDocumentType = agent.fileUploaderFile.type,\n\t\t\t\t\t\t\tagent.newDocumentExe = nameSplit[nameSplit.length - 1];\n\t\t\t\t\t\t\tagent.certificateFileName = agent.fileUploaderFile.name;\n\t\t\t\t\t\t});\n\n\t\t\t\t} else {\n\t\t\t\t\tagent.fileError = 'Only .pdf, .tif, .tiff, .jpg, .jpeg .png or .gif under 10mb allowed.';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction validateFile(agent) {\n\t\t\tvar validMimeTypes = [\n\t\t\t\t'application/pdf', 'image/tiff', 'image/png', 'image/jpeg',\n\t\t\t\t'image/gif'\n\t\t\t];\n\n\t\t\tif (validMimeTypes.indexOf(agent.fileUploaderFile.type) > -1) {\n\t\t\t\tif (agent.fileUploaderFile.size < 10485760) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction formIsValid() {\n\t\t\tvar isValid = true;\n\t\t\tif (!scope.m.isDirty) {\n\t\t\t\treturn true;\n\t\t\t} else if (scope.m.addNewRow || scope.m.agents.length === 0) { //new row\n\n\t\t\t\tif (!agentIsValid(scope.m.newAgent)) {\n\t\t\t\t\tisValid = false;\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\tangular.forEach(scope.m.agents,\n\t\t\t\t\tfunction(agent) {\n\t\t\t\t\t\tif (agent.edit) {\n\t\t\t\t\t\t\tif (!agentIsValid(agent)) {\n\t\t\t\t\t\t\t\tisValid = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn isValid;\n\t\t}\n\n\t\tfunction agentIsValid(agent) {\n\t\t\tvar isValid = true;\n\t\t\tvalidateName(agent);\n\t\t\tvalidatePhone(agent);\n\t\t\tvalidateFax(agent);\n\t\t\tvalidateEmail(agent);\n\t\t\tvalidateCoverage(agent);\n\n\t\t\tif (agent.nameError || agent.phoneError || agent.faxError || agent.emailError || agent.coverageError) {\n\t\t\t\tisValid = false;\n\t\t\t}\n\n\t\t\treturn isValid;\n\t\t}\n\n\t\tfunction validateCoverage(agent) {\n\t\t\tif (!agent.auto && !agent.cargo && !agent.general && !agent.workersComp) {\n\t\t\t\tagent.coverageError = 'Please select at least one option.';\n\t\t\t} else {\n\t\t\t\tagent.coverageError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateName(agent) {\n\t\t\tif (!agent.agentName) {\n\t\t\t\tagent.nameError = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tagent.nameError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validatePhone(agent) {\n\t\t\tif (!agent.phone) {\n\t\t\t\tagent.phoneError = 'Valid input is required';\n\t\t\t} else if (agent.phone.length !== 10) {\n\t\t\t\tagent.phoneError = 'Valid input is required';\n\t\t\t} else if (agent.phone[0] === '0' || agent.phone[0] === '1') {\n\t\t\t\tagent.phoneError = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tagent.phoneError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateFax(agent) {\n\t\t\tif (agent.fax && agent.fax.length !== 10) {\n\t\t\t\tagent.faxError = 'Valid input is required';\n\t\t\t} else if (agent.fax && (agent.fax[0] === '0' || agent.fax[0] === '1')) {\n\t\t\t\tagent.faxError = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tagent.faxError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateEmail(agent) {\n\t\t\tif (agent.email && !validationService.isValidEmail(agent.email)) {\n\t\t\t\tagent.emailError = 'Valid email is required';\n\t\t\t} else {\n\t\t\t\tagent.emailError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction onForceGo() {\n\t\t\tif (typeof (scope.pendingCallback) === 'function')\n\t\t\t\tscope.pendingCallback();\n\t\t}\n\n\t\tfunction setSectionMessage(show) {\n\t\t\tscope.m.showSectionMessage = show;\n\t\t\tif (show) {\n\t\t\t\t$timeout(function () {\n\t\t\t\t\t$('.carrier-profile-wrapper')\n\t\t\t\t\t\t.animate({\n\t\t\t\t\t\t\tscrollTop: $('#error-summary').offset().top\n\t\t\t\t\t\t},\n\t\t\t\t\t\t200);\n\t\t\t\t},\n\t\t\t\t10);\n\t\t\t}\n\t\t}\n\t}\n\n})();\n","// TODO: remove code above and fix issues in case changing this file\n/* eslint-disable no-undef */\n'use strict';\n\n(function () {\n\tangular.module('onboarding.carrier')\n\t\t.directive('cobCarrierProfileInsuranceReg', cobCarrierProfileInsuranceReg);\n\n\tcobCarrierProfileInsuranceReg.$inject = [\n\t\t'$timeout', 'sessionService', 'Upload', 'subjectObserverMessagesService', 'observerService',\n\t\t'carrierRegistrationService', '$location', 'validationService', '$stateParams'\n\t];\n\n\tvar $timeout,\n\t\tsessionService,\n\t\tngFileUpload,\n\t\tsubjectObserverMessagesService,\n\t\tobserverService,\n\t\tcarrierRegistrationService,\n\t\t$location,\n\t\tsubjectMessages,\n\t\tobserverMessages,\n\t\tvalidationService,\n\t\t$stateParams;\n\n\tfunction cobCarrierProfileInsuranceReg(_$timeout_,\n\t\t_sessionService_,\n\t\t_ngFileUpload_,\n\t\t_subjectObserverMessagesService_,\n\t\t_observerService_,\n\t\t_carrierRegistrationService_,\n\t\t_$location_,\n\t\t_validationService_,\n\t\t_$stateParams_) {\n\t\t$timeout = _$timeout_;\n\t\tsessionService = _sessionService_;\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tcarrierRegistrationService = _carrierRegistrationService_;\n\t\tngFileUpload = _ngFileUpload_;\n\t\t$location = _$location_;\n\t\tvalidationService = _validationService_;\n\t\t$stateParams = _$stateParams_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/carrier/profile/carrierProfileInsuranceReg.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\t\t\tscope.m = {\n\t\t\t\tisBroker: sessionService.isBroker(),\n\t\t\t\tisAdmin: sessionService.isAuthorizedInternalAdmin(),\n\t\t\t\tloaded: false,\n\t\t\t\ttoggleFeedbackForm: false,\n\t\t\t\tagents: [],\n\t\t\t\tfeedbackAgents: [],\n\t\t\t\taddNewRow: false,\n\t\t\t\tfeedbackDate: '',\n\t\t\t\totherFeedback: '',\n\t\t\t\tfeedbackError: [],\n\t\t\t\tsubmitted: false,\n\t\t\t\tshowSectionMessage: false,\n\t\t\t\tshowSectionSubmitMessage: false,\n\t\t\t\tregistryDate: ''\n\t\t\t};\n\t\t\tscope.goToTab = goToTab;\n\t\t\tscope.onForceGo = onForceGo;\n\t\t\tscope.sortCoverage = sortCoverage;\n\t\t\tscope.sortCoverageRows = sortCoverageRows;\n\t\t\tscope.toggleFeedback = toggleFeedback;\n\t\t\tscope.addNewRow = addNewRow;\n\t\t\tscope.deleteRow = deleteRow;\n\t\t\tscope.onDiscardFileClick = onDiscardFileClick;\n\t\t\tscope.onFileUploadStart = onFileUploadStart;\n\t\t\tscope.setIsDirty = setIsDirty;\n\t\t\tscope.validateFile = validateFile;\n\t\t\tscope.validateCoverage = validateCoverage;\n\t\t\tscope.validateName = validateName;\n\t\t\tscope.validatePhone = validatePhone;\n\t\t\tscope.validateFax = validateFax;\n\t\t\tscope.validateEmail = validateEmail;\n\t\t\tscope.getDate = getDate;\n\t\t\tscope.onSubmit = onSubmit;\n\t\t\tscope.deleteAll = deleteAll;\n\n\t\t\tregisterObserverHandlers();\n\t\t\t$timeout(function () {\n\t\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_CARRIER_PROFILE_VIEW_LOAD);\n\t\t\t},\n\t\t\t100);\n\t\t}\n\n\t\tfunction loadData(data) {\n\t\t\tscope.m.agents = [];\n\t\t\tscope.m.insuranceMessage = data.insuranceMessage;\n\t\t\tscope.m.brokerName = data.brokerName;\n\t\t\tscope.m.feedbackDate = Date.parse(data.agents.feedbackDate);\n\t\t\tscope.m.registryDate = Date.parse(data.agents.registryDate);\n\t\t\tangular.forEach(data.agents.agents,\n\t\t\t\tfunction (agent) {\n\t\t\t\t\tvar regAgent = {\n\t\t\t\t\t\tcoverage: agent.coverage,\n\t\t\t\t\t\tpolicy: agent.policy,\n\t\t\t\t\t\tphone: agent.phone\n\t\t\t\t\t};\n\t\t\t\t\tsortCoverage(regAgent);\n\t\t\t\t\tscope.m.agents.push(regAgent);\n\t\t\t\t});\n\t\t\tscope.m.loaded = true;\n\t\t}\n\n\t\tfunction setIsDirty() {\n\t\t\tscope.m.isDirty = true;\n\n\t\t\twindow.onbeforeunload = function () {\n\t\t\t\treturn 'Your feedback has not been submitted. If you leave this page any feedback will be lost. To submit your feedback, click the Submit button at the bottom of the page.';\n\t\t\t};\n\t\t}\n\n\t\tfunction canLeaveFeedback() {\n\t\t\tif (scope.m.feedbackDate > scope.m.registryDate) {\n\t\t\t\tscope.m.submitted = !scope.m.submitted;\n\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\tfunction sortCoverage(regAgent) {\n\t\t\tvar formattedCoverage = [];\n\t\t\tif (regAgent.coverage) {\n\t\t\t\tformattedCoverage = regAgent.coverage.map(function (coverageType) {\n\t\t\t\t\tif (coverageType === 'AUTO') {\n\t\t\t\t\t\tcoverageType = ' Auto';\n\t\t\t\t\t}\n\t\t\t\t\tif (coverageType === 'CARGO') {\n\t\t\t\t\t\tcoverageType = ' Cargo';\n\t\t\t\t\t}\n\t\t\t\t\tif (coverageType === 'GENERAL') {\n\t\t\t\t\t\tcoverageType = ' General';\n\t\t\t\t\t}\n\t\t\t\t\tif (coverageType === 'WORKERS_COMP') {\n\t\t\t\t\t\tcoverageType = ' Workers\\' Comp';\n\t\t\t\t\t}\n\n\t\t\t\t\treturn coverageType;\n\t\t\t\t});\n\t\t\t}\n\t\t\tformattedCoverage.sort();\n\t\t\tregAgent.formattedCoverage = formattedCoverage;\n\t\t}\n\n\t\tfunction sortCoverageRows(coverageRows) {\n\t\t\tcoverageRows.sort(function (a, b) {\n\t\t\t\tif (a.formattedCoverage[0] < b.formattedCoverage[0]) {\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\t\t\t\tif (a.formattedCoverage[0] > b.formattedCoverage[0]) {\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\n\t\t\t\treturn 0;\n\t\t\t});\n\t\t}\n\n\t\tfunction toggleFeedback() {\n\t\t\tif (canLeaveFeedback() && !scope.m.toggleFeedbackForm) {\n\t\t\t\tscope.m.toggleFeedbackForm = true;\n\t\t\t\tif (scope.m.feedbackAgents.length === 0) {\n\t\t\t\t\taddNewRow();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tscope.m.toggleFeedbackForm = false;\n\t\t\t}\n\t\t}\n\n\t\tfunction addNewRow() {\n\t\t\tscope.m.addNewRow = true;\n\t\t\tvar feedbackAgent = {};\n\t\t\tvar errors = {};\n\t\t\tscope.m.feedbackError.push(errors);\n\t\t\tscope.m.feedbackAgents.push(feedbackAgent);\n\t\t}\n\n\t\tfunction deleteRow(deletedRow) {\n\t\t\tscope.m.feedbackAgents.splice(deletedRow, 1);\n\t\t\tscope.m.feedbackError.splice(deletedRow, 1);\n\t\t}\n\n\t\tfunction deleteAll() {\n\t\t\tscope.m.feedbackAgents = [];\n\t\t\tscope.m.feedbackError = [];\n\t\t\tscope.m.isDirty = false;\n\t\t}\n\n\t\tfunction onDiscardFileClick(feedbackAgent) {\n\t\t\tfeedbackAgent.certificateFileName = undefined;\n\t\t}\n\n\t\tfunction onFileUploadStart(feedbackAgent, index) {\n\t\t\tif (feedbackAgent.fileUploaderFile) {\n\t\t\t\tsetIsDirty();\n\t\t\t\tif (validateFile(feedbackAgent, index)) {\n\t\t\t\t\tngFileUpload.base64DataUrl(feedbackAgent.fileUploaderFile, false)\n\t\t\t\t\t\t.then(function (url) {\n\t\t\t\t\t\t\tfeedbackAgent.certificateContent = url.split(',')[1];\n\t\t\t\t\t\t\tfeedbackAgent.certificateFileName = feedbackAgent.fileUploaderFile.name;\n\t\t\t\t\t\t\tfeedbackAgent.certificateMimeType = feedbackAgent.fileUploaderFile.type;\n\t\t\t\t\t\t});\n\n\t\t\t\t} else {\n\t\t\t\t\tscope.m.feedbackError[index]\n\t\t\t\t\t\t.fileError = 'Only .pdf, .tif, .tiff, .jpg, .jpeg .png or .gif under 10mb allowed.';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction getDate() {\n\t\t\tscope.m.feedbackDate = new Date();\n\t\t}\n\n\t\tfunction validateCoverage(feedbackAgent, index) {\n\t\t\tif (!feedbackAgent.HasAuto &&\n !feedbackAgent.HasCargo &&\n !feedbackAgent.HasWorkersComp &&\n !feedbackAgent.HasGeneral) {\n\t\t\t\tscope.m.feedbackError[index].coverageError = 'Please select at least one option';\n\t\t\t} else {\n\t\t\t\tscope.m.feedbackError[index].coverageError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateName(feedbackAgent, index) {\n\t\t\tif (!feedbackAgent.AgentName) {\n\t\t\t\tscope.m.feedbackError[index].nameError = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tscope.m.feedbackError[index].nameError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validatePhone(feedbackAgent, index) {\n\t\t\tif (!feedbackAgent.Phone) {\n\t\t\t\tscope.m.feedbackError[index].phoneError = 'Valid input is required';\n\t\t\t} else if (feedbackAgent.Phone.length !== 10) {\n\t\t\t\tscope.m.feedbackError[index].phoneError = 'Valid input is required';\n\t\t\t} else if (feedbackAgent.Phone[0] === '1' || feedbackAgent.Phone[0] === '0') {\n\t\t\t\tscope.m.feedbackError[index].phoneError = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tscope.m.feedbackError[index].phoneError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateFax(feedbackAgent, index) {\n\t\t\tif (feedbackAgent.Fax && feedbackAgent.Fax.length !== 10) {\n\t\t\t\tscope.m.feedbackError[index].faxError = 'Valid input is required';\n\t\t\t} else if (feedbackAgent.Fax && (feedbackAgent.Fax[0] === '1' || feedbackAgent.Fax[0] === '0')) {\n\t\t\t\tscope.m.feedbackError[index].faxError = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tscope.m.feedbackError[index].faxError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateEmail(feedbackAgent, index) {\n\t\t\tif (feedbackAgent.Email && !validationService.isValidEmail(feedbackAgent.Email)) {\n\t\t\t\tscope.m.feedbackError[index].emailError = 'Valid email is required';\n\t\t\t} else {\n\t\t\t\tscope.m.feedbackError[index].emailError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateFile(feedbackAgent) {\n\t\t\tvar validMimeTypes = [\n\t\t\t\t'application/pdf', 'image/tiff', 'image/png', 'image/jpeg',\n\t\t\t\t'image/gif'\n\t\t\t];\n\t\t\tif (validMimeTypes.indexOf(feedbackAgent.fileUploaderFile.type) > -1) {\n\t\t\t\tif (feedbackAgent.fileUploaderFile.size < 10485760) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction validateAgent(feedbackAgent, key) {\n\t\t\tvalidateCoverage(feedbackAgent, key);\n\t\t\tvalidateName(feedbackAgent, key);\n\t\t\tvalidatePhone(feedbackAgent, key);\n\t\t\tvalidateFax(feedbackAgent, key);\n\t\t\tvalidateEmail(feedbackAgent, key);\n\t\t\tif (scope.m.feedbackError[key].coverageError ||\n scope.m.feedbackError[key].nameError ||\n scope.m.feedbackError[key].phoneError ||\n scope.m.feedbackError[key].faxError ||\n scope.m.feedbackError[key].emailError) {\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\tfunction validateAgents() {\n\t\t\tvar isValid = true;\n\t\t\tangular.forEach(scope.m.feedbackAgents,\n\t\t\t\tfunction (feedbackAgent, key) {\n\t\t\t\t\tif (!validateAgent(feedbackAgent, key)) {\n\t\t\t\t\t\tisValid = false;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\treturn isValid;\n\t\t}\n\n\t\tfunction registerObserverHandlers() {\n\n\t\t\tobserverService.registerHandlers(scope,\n\t\t\t\t[\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_START_CHANGE_CARRIER_PROFILE_VIEW, handler: saveData },\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_CARRIER_PROFILE_INSUREANCE_REG_LOADED, handler: loadData },\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_SET_PENDING_TAB, handler: setPendingTab }\n\t\t\t\t]);\n\t\t\tscope.$on('$destroy',\n\t\t\t\tfunction () {\n\t\t\t\t\twindow.onbeforeunload = undefined;\n\t\t\t\t});\n\n\t\t\tscope.$on('$locationChangeStart',\n\t\t\t\tfunction (event) {\n\t\t\t\t\tif (scope.m.isDirty) {\n\t\t\t\t\t\tif (!scope.ux_requirement_hack_for_scrolling) {\n\t\t\t\t\t\t\tif (!\n\t\t\t\t\t\t\tconfirm('Your feedback has not been submitted. If you leave this page any feedback will be lost. To submit your feedback, click the Submit button at the bottom of the page. Are you sure you want to leave the page?')) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tscope.ux_requirement_hack_for_scrolling = false;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction onSubmit() {\n\t\t\tif (!scope.m.loaded) {\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\tif (validateAgents()) {\n\t\t\t\t\tscope.m.toggleFeedbackForm = false;\n\t\t\t\t\tscope.m.showSectionSubmitMessage = false;\n\t\t\t\t\tsetSectionMessage(false);\n\t\t\t\t\tgetDate();\n\t\t\t\t\tscope.m.submitted = true;\n\n\t\t\t\t\tvar carrierId = -1;\n\n\t\t\t\t\tif ($stateParams.carrierId)\n\t\t\t\t\t\tcarrierId = $stateParams.carrierId;\n\n\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\tobserverService.sendMessageToSubject(scope, subjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_WAITING);\n\t\t\t\t\t}, 1);\n\n\t\t\t\t\tcarrierRegistrationService\n\t\t\t\t\t\t.submitRegistryInsuranceInfo(carrierId, scope.m.feedbackAgents, scope.m.otherFeedback)\n\t\t\t\t\t\t.then(function () {\n\t\t\t\t\t\t\tif (typeof (callback) === 'function')\n\t\t\t\t\t\t\t\tcallback();\n\t\t\t\t\t\t}).finally(function () {\n\t\t\t\t\t\t\tobserverService\n\t\t\t\t\t\t\t\t.sendMessageToSubject(scope, subjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_DONE);\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction scrollTop() {\n\t\t\t$timeout(function () {\n\t\t\t\tscope.ux_requirement_hack_for_scrolling = true;\n\t\t\t\t$('.profile-insurance-reg')\n\t\t\t\t\t.animate({\n\t\t\t\t\t\tscrollTop: $('#error-summary').offset().top\n\t\t\t\t\t},\n\t\t\t\t\t200);\n\t\t\t\tsetIsDirty();\n\t\t\t},\n\t\t\t1);\n\t\t}\n\n\t\tfunction onForceGo() {\n\t\t\tif (typeof (scope.pendingCallback) === 'function')\n\t\t\t\tscope.pendingCallback();\n\t\t}\n\n\t\tfunction goToTab(tab) {\n\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_SET_PENDING_TAB, tab);\n\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\tsubjectMessages.COB_SUBJECT_START_CHANGE_CARRIER_PROFILE_VIEW,\n\t\t\t\tnavigate);\n\t\t}\n\n\t\tfunction setPendingTab(tab) {\n\t\t\tscope.tab = tab;\n\t\t}\n\n\t\tfunction navigate() {\n\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\tsubjectMessages.COB_SUBJECT_FINISH_CHANGE_CARRIER_PROFILE_VIEW,\n\t\t\t\tscope.tab);\n\t\t}\n\n\t\tfunction saveData(callback) {\n\t\t\tif (!scope.m.loaded) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ((!scope.m.isDirty || scope.m.submitted) && typeof (callback) === 'function') {\n\t\t\t\tcallback();\n\t\t\t} else if (validateAgents() && !scope.m.submitted) {\n\t\t\t\tscope.m.showSectionSubmitMessage = true;\n\t\t\t\tsetSectionMessage(false);\n\t\t\t\tscrollTop();\n\t\t\t} else if (!validateAgents() && !scope.m.submitted) {\n\t\t\t\tscope.m.showSectionSubmitMessage = false;\n\t\t\t\tsetSectionMessage(true);\n\t\t\t\tscrollTop();\n\t\t\t}\n\t\t\tscope.pendingCallback = callback;\n\t\t}\n\n\t\tfunction setSectionMessage(show) {\n\t\t\tscope.m.showSectionMessage = show;\n\t\t\tif (show) {\n\t\t\t\t$timeout(function () {\n\t\t\t\t\t$('.carrier-profile-wrapper')\n\t\t\t\t\t\t.animate({\n\t\t\t\t\t\t\tscrollTop: $('#error-summary').offset().top\n\t\t\t\t\t\t},\n\t\t\t\t\t\t200);\n\t\t\t\t},\n\t\t\t\t10);\n\t\t\t}\n\t\t}\n\t}\n\n})();\n","'use strict';\n\n(function() {\n\tangular.module('onboarding.carrier')\n\t\t.directive('cobCarrierProfileLaneCoverage', cobCarrierProfileLaneCoverage);\n\n\tcobCarrierProfileLaneCoverage.$inject = [\n\t\t'$timeout', 'sessionService', 'subjectObserverMessagesService', 'observerService', 'carrierRegistrationService', '$stateParams'\n\t];\n\n\tvar $timeout, sessionService, subjectObserverMessagesService, observerService, carrierRegistrationService, $stateParams;\n\tvar subjectMessages, observerMessages, allMetros, ignoreAllUsToggle;\n\n\tfunction cobCarrierProfileLaneCoverage(_$timeout_,\n\t\t_sessionService_,\n\t\t_subjectObserverMessagesService_,\n\t\t_observerService_,\n\t\t_carrierRegistrationService_,\n\t\t_$stateParams_) {\n\t\t$timeout = _$timeout_;\n\t\tsessionService = _sessionService_;\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tcarrierRegistrationService = _carrierRegistrationService_;\n\t\t$stateParams = _$stateParams_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/carrier/profile/carrierProfileLaneCoverage.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\n\t\t\tscope.carrierId = $stateParams.carrierId;\n\n\t\t\tscope.m = {\n\t\t\t\tisBroker: sessionService.isBroker(),\n\t\t\t\tisAdmin: sessionService.isAuthorizedInternalAdmin(),\n\t\t\t\tpreferredLanes: [],\n\t\t\t\tpreferredAreas: {},\n\t\t\t\tshowNewLane: false,\n\t\t\t\tshowCanadaMexico: false,\n\t\t\t\tshowUnitedStates: false\n\t\t\t};\n\n\t\t\tscope.trashClick = trashClick;\n\t\t\tscope.saveLane = saveLane;\n\t\t\tscope.addClicK = addClicK;\n\n\t\t\tscope.setIsDirty = setIsDirty;\n\t\t\tscope.canadaMexicoClick = canadaMexicoClick;\n\t\t\tscope.allCanadianRegionsChange = allCanadianRegionsChange;\n\t\t\tscope.westernChange = westernChange;\n\t\t\tscope.centralChange = centralChange;\n\t\t\tscope.easternChange = easternChange;\n\t\t\tscope.provinceChange = provinceChange;\n\t\t\tscope.goToTab = goToTab;\n\n\t\t\tscope.unitedStatesClick = unitedStatesClick;\n\t\t\tscope.allUsCheckClick = allUsCheckClick;\n\t\t\tscope.allUsZoneChange = allUsZoneChange;\n\t\t\tscope.zone0Change = zone0Change;\n\t\t\tscope.zone1Change = zone1Change;\n\t\t\tscope.zone2Change = zone2Change;\n\t\t\tscope.zone3Change = zone3Change;\n\t\t\tscope.zone4Change = zone4Change;\n\t\t\tscope.zone5Change = zone5Change;\n\t\t\tscope.zone6Change = zone6Change;\n\t\t\tscope.zone7Change = zone7Change;\n\t\t\tscope.zone8Change = zone8Change;\n\t\t\tscope.zone9Change = zone9Change;\n\t\t\tscope.stateChange = stateChange;\n\n\t\t\tsetAllMetros();\n\t\t\tloadData();\n\t\t\tregisterObserverHandlers();\n\t\t\tdocument.title = 'Profile-Lanes';\n\n\t\t\t$timeout(function() {\n\t\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_CARRIER_PROFILE_VIEW_LOAD);\n\t\t\t},\n\t\t\t100);\n\t\t}\n\n\t\tfunction setAllMetros() {\n\t\t\tallMetros = [\n\t\t\t\t{ metroCode: -1, state: 'AK', metro: 'entire state' },\n\t\t\t\t{ metroCode: 380, state: 'AK', metro: 'Anchorage' },\n\t\t\t\t{ metroCode: -1, state: 'AL', metro: 'entire state' },\n\t\t\t\t{ metroCode: 450, state: 'AL', metro: 'Anniston' },\n\t\t\t\t{ metroCode: 580, state: 'AL', metro: 'Auburn-Opelika' },\n\t\t\t\t{ metroCode: 1000, state: 'AL', metro: 'Birmingham' },\n\t\t\t\t{ metroCode: 2030, state: 'AL', metro: 'Decatur' },\n\t\t\t\t{ metroCode: 2180, state: 'AL', metro: 'Dothan' },\n\t\t\t\t{ metroCode: 2650, state: 'AL', metro: 'Florence' },\n\t\t\t\t{ metroCode: 2880, state: 'AL', metro: 'Gadsden' },\n\t\t\t\t{ metroCode: 3440, state: 'AL', metro: 'Huntsville' },\n\t\t\t\t{ metroCode: 5160, state: 'AL', metro: 'Mobile' },\n\t\t\t\t{ metroCode: 5240, state: 'AL', metro: 'Montgomery' },\n\t\t\t\t{ metroCode: 1800, state: 'AL', metro: 'Phenix City' },\n\t\t\t\t{ metroCode: 8600, state: 'AL', metro: 'Tuscaloosa' },\n\t\t\t\t{ metroCode: -1, state: 'AR', metro: 'entire state' },\n\t\t\t\t{ metroCode: 2580, state: 'AR', metro: 'Fayetteville-Springdale-Rogers' },\n\t\t\t\t{ metroCode: 2720, state: 'AR', metro: 'Ft Smith' },\n\t\t\t\t{ metroCode: 3700, state: 'AR', metro: 'Jonesboro' },\n\t\t\t\t{ metroCode: 4400, state: 'AR', metro: 'Little Rock' },\n\t\t\t\t{ metroCode: 6240, state: 'AR', metro: 'Pine Bluff' },\n\t\t\t\t{ metroCode: 8360, state: 'AR', metro: 'Texarkana' },\n\t\t\t\t{ metroCode: 4920, state: 'AR', metro: 'W Memphis' },\n\t\t\t\t{ metroCode: -1, state: 'AZ', metro: 'entire state' },\n\t\t\t\t{ metroCode: 2620, state: 'AZ', metro: 'Flagstaff' },\n\t\t\t\t{ metroCode: 4120, state: 'AZ', metro: 'Kingman' },\n\t\t\t\t{ metroCode: 6200, state: 'AZ', metro: 'Phoenix' },\n\t\t\t\t{ metroCode: 8520, state: 'AZ', metro: 'Tucson' },\n\t\t\t\t{ metroCode: 9360, state: 'AZ', metro: 'Yuma' },\n\t\t\t\t{ metroCode: -1, state: 'CA', metro: 'entire state' },\n\t\t\t\t{ metroCode: 680, state: 'CA', metro: 'Bakersfield' },\n\t\t\t\t{ metroCode: 1620, state: 'CA', metro: 'Chico-Paradise' },\n\t\t\t\t{ metroCode: 2840, state: 'CA', metro: 'Fresno' },\n\t\t\t\t{ metroCode: 4480, state: 'CA', metro: 'Angeles-Long Beach' },\n\t\t\t\t{ metroCode: 4940, state: 'CA', metro: 'Merced' },\n\t\t\t\t{ metroCode: 5170, state: 'CA', metro: 'Modesto' },\n\t\t\t\t{ metroCode: 5775, state: 'CA', metro: 'Oakland' },\n\t\t\t\t{ metroCode: 5945, state: 'CA', metro: 'Orange County' },\n\t\t\t\t{ metroCode: 6690, state: 'CA', metro: 'Redding' },\n\t\t\t\t{ metroCode: 6780, state: 'CA', metro: 'Riverside-San Bernardino' },\n\t\t\t\t{ metroCode: 6920, state: 'CA', metro: 'Sacramento' },\n\t\t\t\t{ metroCode: 7120, state: 'CA', metro: 'Salinas' },\n\t\t\t\t{ metroCode: 7320, state: 'CA', metro: 'San Diego' },\n\t\t\t\t{ metroCode: 7360, state: 'CA', metro: 'San Francisco' },\n\t\t\t\t{ metroCode: 7400, state: 'CA', metro: 'San Jose' },\n\t\t\t\t{ metroCode: 7460, state: 'CA', metro: 'San Luis Obispo-Atascadero-Paso Robles' },\n\t\t\t\t{ metroCode: 7480, state: 'CA', metro: 'Santa Barbara-Santa Maria-Lompoc' },\n\t\t\t\t{ metroCode: 7485, state: 'CA', metro: 'Santa Cruz-Watsonville' },\n\t\t\t\t{ metroCode: 7500, state: 'CA', metro: 'Santa Rosa' },\n\t\t\t\t{ metroCode: 8120, state: 'CA', metro: 'Stockton-Lodi' },\n\t\t\t\t{ metroCode: 8720, state: 'CA', metro: 'Vallejo-Fairfield-Napa' },\n\t\t\t\t{ metroCode: 8735, state: 'CA', metro: 'Ventura' },\n\t\t\t\t{ metroCode: 8780, state: 'CA', metro: 'Visalia-Tulare-Porterville' },\n\t\t\t\t{ metroCode: 9270, state: 'CA', metro: 'Yolo' },\n\t\t\t\t{ metroCode: 9340, state: 'CA', metro: 'Yuba City' },\n\t\t\t\t{ metroCode: -1, state: 'CO', metro: 'entire state' },\n\t\t\t\t{ metroCode: 1125, state: 'CO', metro: 'Boulder-Longmont' },\n\t\t\t\t{ metroCode: 1720, state: 'CO', metro: 'Colorado Springs' },\n\t\t\t\t{ metroCode: 2080, state: 'CO', metro: 'Denver' },\n\t\t\t\t{ metroCode: 2670, state: 'CO', metro: 'Fort Collins-Loveland' },\n\t\t\t\t{ metroCode: 2995, state: 'CO', metro: 'Grand Junction' },\n\t\t\t\t{ metroCode: 3060, state: 'CO', metro: 'Greeley' },\n\t\t\t\t{ metroCode: 6560, state: 'CO', metro: 'Pueblo' },\n\t\t\t\t{ metroCode: -1, state: 'CT', metro: 'entire state' },\n\t\t\t\t{ metroCode: 1160, state: 'CT', metro: 'Bridgeport' },\n\t\t\t\t{ metroCode: 1930, state: 'CT', metro: 'Danbury' },\n\t\t\t\t{ metroCode: 3280, state: 'CT', metro: 'Hartford' },\n\t\t\t\t{ metroCode: 5020, state: 'CT', metro: 'Middletown' },\n\t\t\t\t{ metroCode: 5440, state: 'CT', metro: 'New Britain' },\n\t\t\t\t{ metroCode: 5480, state: 'CT', metro: 'New Haven-Meriden' },\n\t\t\t\t{ metroCode: 5520, state: 'CT', metro: 'New London-Norwich' },\n\t\t\t\t{ metroCode: 5760, state: 'CT', metro: 'Norwalk' },\n\t\t\t\t{ metroCode: 8040, state: 'CT', metro: 'Stamford-Norwalk' },\n\t\t\t\t{ metroCode: 8880, state: 'CT', metro: 'Waterbury' },\n\t\t\t\t{ metroCode: -1, state: 'DC', metro: 'entire state' },\n\t\t\t\t{ metroCode: 8840, state: 'DC', metro: 'Washington DC' },\n\t\t\t\t{ metroCode: -1, state: 'DE', metro: 'entire state' },\n\t\t\t\t{ metroCode: 2190, state: 'DE', metro: 'Dover' },\n\t\t\t\t{ metroCode: 9160, state: 'DE', metro: 'Wilmington-Newark' },\n\t\t\t\t{ metroCode: -1, state: 'FL', metro: 'entire state' },\n\t\t\t\t{ metroCode: 1140, state: 'FL', metro: 'Bradenton' },\n\t\t\t\t{ metroCode: 2020, state: 'FL', metro: 'Daytona Beach' },\n\t\t\t\t{ metroCode: 2680, state: 'FL', metro: 'Ft Lauderdale' },\n\t\t\t\t{ metroCode: 2700, state: 'FL', metro: 'Ft Myers-Cape Coral' },\n\t\t\t\t{ metroCode: 2710, state: 'FL', metro: 'Ft Pierce-Port St Lucie' },\n\t\t\t\t{ metroCode: 2750, state: 'FL', metro: 'Ft Walton Beach' },\n\t\t\t\t{ metroCode: 2900, state: 'FL', metro: 'Gainesville' },\n\t\t\t\t{ metroCode: 3600, state: 'FL', metro: 'Jacksonville' },\n\t\t\t\t{ metroCode: 3980, state: 'FL', metro: 'Lakeland-Winter Haven' },\n\t\t\t\t{ metroCode: 4900, state: 'FL', metro: 'Melbourne-Titusville-Palm Bay' },\n\t\t\t\t{ metroCode: 5000, state: 'FL', metro: 'Miami' },\n\t\t\t\t{ metroCode: 5345, state: 'FL', metro: 'Naples' },\n\t\t\t\t{ metroCode: 5790, state: 'FL', metro: 'Ocala' },\n\t\t\t\t{ metroCode: 5960, state: 'FL', metro: 'Orlando' },\n\t\t\t\t{ metroCode: 6015, state: 'FL', metro: 'Panama City' },\n\t\t\t\t{ metroCode: 6080, state: 'FL', metro: 'Pensacola' },\n\t\t\t\t{ metroCode: 6580, state: 'FL', metro: 'Punta Gorda' },\n\t\t\t\t{ metroCode: 7510, state: 'FL', metro: 'Sarasota-Bradenton' },\n\t\t\t\t{ metroCode: 8240, state: 'FL', metro: 'Tallahassee' },\n\t\t\t\t{ metroCode: 8280, state: 'FL', metro: 'Tampa-St Petersburg-Clearwater' },\n\t\t\t\t{ metroCode: 8960, state: 'FL', metro: 'W Palm Beach-Boca Raton' },\n\t\t\t\t{ metroCode: -1, state: 'GA', metro: 'entire state' },\n\t\t\t\t{ metroCode: 120, state: 'GA', metro: 'Albany' },\n\t\t\t\t{ metroCode: 500, state: 'GA', metro: 'Athens' },\n\t\t\t\t{ metroCode: 520, state: 'GA', metro: 'Atlanta' },\n\t\t\t\t{ metroCode: 600, state: 'GA', metro: 'Augusta' },\n\t\t\t\t{ metroCode: 1800, state: 'GA', metro: 'Columbus' },\n\t\t\t\t{ metroCode: 4680, state: 'GA', metro: 'Macon' },\n\t\t\t\t{ metroCode: 7520, state: 'GA', metro: 'Savannah' },\n\t\t\t\t{ metroCode: -1, state: 'HI', metro: 'entire state' },\n\t\t\t\t{ metroCode: 3320, state: 'HI', metro: 'Honolulu' },\n\t\t\t\t{ metroCode: -1, state: 'IA', metro: 'entire state' },\n\t\t\t\t{ metroCode: 1360, state: 'IA', metro: 'Cedar Rapids' },\n\t\t\t\t{ metroCode: 5920, state: 'IA', metro: 'Council Bluffs' },\n\t\t\t\t{ metroCode: 1960, state: 'IA', metro: 'Davenport-Moline-Rock Island' },\n\t\t\t\t{ metroCode: 2120, state: 'IA', metro: 'Des Moines' },\n\t\t\t\t{ metroCode: 2200, state: 'IA', metro: 'Dubuque' },\n\t\t\t\t{ metroCode: 3500, state: 'IA', metro: 'Iowa City' },\n\t\t\t\t{ metroCode: 7720, state: 'IA', metro: 'Sioux City' },\n\t\t\t\t{ metroCode: 8920, state: 'IA', metro: 'Waterloo-Cedar Falls' },\n\t\t\t\t{ metroCode: -1, state: 'ID', metro: 'entire state' },\n\t\t\t\t{ metroCode: 1080, state: 'ID', metro: 'Boise' },\n\t\t\t\t{ metroCode: 6340, state: 'ID', metro: 'Pocatello' },\n\t\t\t\t{ metroCode: -1, state: 'IL', metro: 'entire state' },\n\t\t\t\t{ metroCode: 620, state: 'IL', metro: 'Aurora-Elgin' },\n\t\t\t\t{ metroCode: 1040, state: 'IL', metro: 'Bloomington-Normal' },\n\t\t\t\t{ metroCode: 1400, state: 'IL', metro: 'Champaign-Urbana' },\n\t\t\t\t{ metroCode: 1600, state: 'IL', metro: 'Chicago' },\n\t\t\t\t{ metroCode: 1960, state: 'IL', metro: 'Davenport-Moline-Rock Island' },\n\t\t\t\t{ metroCode: 2040, state: 'IL', metro: 'Decatur' },\n\t\t\t\t{ metroCode: 7040, state: 'IL', metro: 'E St Louis' },\n\t\t\t\t{ metroCode: 3690, state: 'IL', metro: 'Joliet' },\n\t\t\t\t{ metroCode: 3740, state: 'IL', metro: 'Kankakee' },\n\t\t\t\t{ metroCode: 6120, state: 'IL', metro: 'Peoria-Pekin' },\n\t\t\t\t{ metroCode: 6880, state: 'IL', metro: 'Rockford' },\n\t\t\t\t{ metroCode: 7880, state: 'IL', metro: 'Springfield' },\n\t\t\t\t{ metroCode: -1, state: 'IN', metro: 'entire state' },\n\t\t\t\t{ metroCode: 400, state: 'IN', metro: 'Anderson' },\n\t\t\t\t{ metroCode: 1020, state: 'IN', metro: 'Bloomington' },\n\t\t\t\t{ metroCode: 2330, state: 'IN', metro: 'Elkhart-Goshen' },\n\t\t\t\t{ metroCode: 2440, state: 'IN', metro: 'Evansville-Henderson' },\n\t\t\t\t{ metroCode: 2760, state: 'IN', metro: 'Ft Wayne' },\n\t\t\t\t{ metroCode: 2960, state: 'IN', metro: 'Gary' },\n\t\t\t\t{ metroCode: 3480, state: 'IN', metro: 'Indianapolis' },\n\t\t\t\t{ metroCode: 3850, state: 'IN', metro: 'Kokomo' },\n\t\t\t\t{ metroCode: 3920, state: 'IN', metro: 'Lafayette' },\n\t\t\t\t{ metroCode: 5280, state: 'IN', metro: 'Muncie' },\n\t\t\t\t{ metroCode: 4520, state: 'IN', metro: 'New Albany' },\n\t\t\t\t{ metroCode: 7800, state: 'IN', metro: 'S Bend' },\n\t\t\t\t{ metroCode: 8320, state: 'IN', metro: 'Terre Haute' },\n\t\t\t\t{ metroCode: -1, state: 'KS', metro: 'entire state' },\n\t\t\t\t{ metroCode: 3760, state: 'KS', metro: 'Kansas City' },\n\t\t\t\t{ metroCode: 4150, state: 'KS', metro: 'Lawrence' },\n\t\t\t\t{ metroCode: 8440, state: 'KS', metro: 'Topeka' },\n\t\t\t\t{ metroCode: 9040, state: 'KS', metro: 'Wichita' },\n\t\t\t\t{ metroCode: -1, state: 'KY', metro: 'entire state' },\n\t\t\t\t{ metroCode: 1640, state: 'KY', metro: 'Cincinnati-Covington' },\n\t\t\t\t{ metroCode: 1660, state: 'KY', metro: 'Clarksville-Hopkinsville' },\n\t\t\t\t{ metroCode: 3400, state: 'KY', metro: 'Huntington-Ashland' },\n\t\t\t\t{ metroCode: 4280, state: 'KY', metro: 'Lexington-Fayette' },\n\t\t\t\t{ metroCode: 4520, state: 'KY', metro: 'Louisville' },\n\t\t\t\t{ metroCode: 5990, state: 'KY', metro: 'Owensboro' },\n\t\t\t\t{ metroCode: -1, state: 'LA', metro: 'entire state' },\n\t\t\t\t{ metroCode: 220, state: 'LA', metro: 'Alexandria' },\n\t\t\t\t{ metroCode: 760, state: 'LA', metro: 'Baton Rouge' },\n\t\t\t\t{ metroCode: 3350, state: 'LA', metro: 'Houma' },\n\t\t\t\t{ metroCode: 3880, state: 'LA', metro: 'Lafayette' },\n\t\t\t\t{ metroCode: 3960, state: 'LA', metro: 'Lake Charles' },\n\t\t\t\t{ metroCode: 3965, state: 'LA', metro: 'Lake County' },\n\t\t\t\t{ metroCode: 5200, state: 'LA', metro: 'Monroe' },\n\t\t\t\t{ metroCode: 5560, state: 'LA', metro: 'New Orleans' },\n\t\t\t\t{ metroCode: 7680, state: 'LA', metro: 'Shreveport' },\n\t\t\t\t{ metroCode: -1, state: 'MA', metro: 'entire state' },\n\t\t\t\t{ metroCode: 740, state: 'MA', metro: 'Barnstable-Yarmouth' },\n\t\t\t\t{ metroCode: 1120, state: 'MA', metro: 'Boston' },\n\t\t\t\t{ metroCode: 1200, state: 'MA', metro: 'Brockton' },\n\t\t\t\t{ metroCode: 2480, state: 'MA', metro: 'Fall River' },\n\t\t\t\t{ metroCode: 2600, state: 'MA', metro: 'Fitchburg-Leominster' },\n\t\t\t\t{ metroCode: 4160, state: 'MA', metro: 'Lawrence' },\n\t\t\t\t{ metroCode: 4560, state: 'MA', metro: 'Lowell' },\n\t\t\t\t{ metroCode: 5400, state: 'MA', metro: 'New Bedford' },\n\t\t\t\t{ metroCode: 6060, state: 'MA', metro: 'Pawtucket-Woonsocket-Attleboro' },\n\t\t\t\t{ metroCode: 6320, state: 'MA', metro: 'Pittsfield' },\n\t\t\t\t{ metroCode: 6480, state: 'MA', metro: 'Providence-Fall River-Warwick' },\n\t\t\t\t{ metroCode: 7090, state: 'MA', metro: 'Salem-Gloucester' },\n\t\t\t\t{ metroCode: 8000, state: 'MA', metro: 'Springfield' },\n\t\t\t\t{ metroCode: 9240, state: 'MA', metro: 'Worcester' },\n\t\t\t\t{ metroCode: -1, state: 'MD', metro: 'entire state' },\n\t\t\t\t{ metroCode: 720, state: 'MD', metro: 'Baltimore' },\n\t\t\t\t{ metroCode: 1900, state: 'MD', metro: 'Cumberland' },\n\t\t\t\t{ metroCode: 3180, state: 'MD', metro: 'Hagerstown' },\n\t\t\t\t{ metroCode: 8840, state: 'MD', metro: 'Washington DC' },\n\t\t\t\t{ metroCode: 9160, state: 'MD', metro: 'Wilmington-Newark' },\n\t\t\t\t{ metroCode: -1, state: 'ME', metro: 'entire state' },\n\t\t\t\t{ metroCode: 730, state: 'ME', metro: 'Bangor' },\n\t\t\t\t{ metroCode: 4240, state: 'ME', metro: 'Lewiston-Auburn' },\n\t\t\t\t{ metroCode: 6400, state: 'ME', metro: 'Portland' },\n\t\t\t\t{ metroCode: 6450, state: 'ME', metro: 'Portsmouth-Rochester' },\n\t\t\t\t{ metroCode: -1, state: 'MI', metro: 'entire state' },\n\t\t\t\t{ metroCode: 440, state: 'MI', metro: 'Ann Arbor' },\n\t\t\t\t{ metroCode: 780, state: 'MI', metro: 'Battle Creek' },\n\t\t\t\t{ metroCode: 870, state: 'MI', metro: 'Benton Harbor' },\n\t\t\t\t{ metroCode: 2160, state: 'MI', metro: 'Detroit' },\n\t\t\t\t{ metroCode: 2640, state: 'MI', metro: 'Flint' },\n\t\t\t\t{ metroCode: 3000, state: 'MI', metro: 'Grand Rapids-Muskegon-Holland' },\n\t\t\t\t{ metroCode: 3520, state: 'MI', metro: 'Jackson' },\n\t\t\t\t{ metroCode: 3720, state: 'MI', metro: 'Kalamazoo-Battle Creek' },\n\t\t\t\t{ metroCode: 4040, state: 'MI', metro: 'Lansing-East Lansing' },\n\t\t\t\t{ metroCode: 6960, state: 'MI', metro: 'Saginaw-Bay City-Midland' },\n\t\t\t\t{ metroCode: -1, state: 'MN', metro: 'entire state' },\n\t\t\t\t{ metroCode: 2240, state: 'MN', metro: 'Duluth-Superior' },\n\t\t\t\t{ metroCode: 2520, state: 'MN', metro: 'Fargo-Moorhead' },\n\t\t\t\t{ metroCode: 2985, state: 'MN', metro: 'Grand Forks' },\n\t\t\t\t{ metroCode: 5120, state: 'MN', metro: 'Minneapolis-St. Paul' },\n\t\t\t\t{ metroCode: 6820, state: 'MN', metro: 'Rochester' },\n\t\t\t\t{ metroCode: 6980, state: 'MN', metro: 'St Cloud' },\n\t\t\t\t{ metroCode: -1, state: 'MO', metro: 'entire state' },\n\t\t\t\t{ metroCode: 1740, state: 'MO', metro: 'Columbia' },\n\t\t\t\t{ metroCode: 3710, state: 'MO', metro: 'Joplin' },\n\t\t\t\t{ metroCode: 3760, state: 'MO', metro: 'Kansas City' },\n\t\t\t\t{ metroCode: 7920, state: 'MO', metro: 'Springfield' },\n\t\t\t\t{ metroCode: 7000, state: 'MO', metro: 'St Joesph' },\n\t\t\t\t{ metroCode: 7040, state: 'MO', metro: 'St Louis' },\n\t\t\t\t{ metroCode: -1, state: 'MS', metro: 'entire state' },\n\t\t\t\t{ metroCode: 920, state: 'MS', metro: 'Biloxi-Gulfport-Pascagoula' },\n\t\t\t\t{ metroCode: 3285, state: 'MS', metro: 'Hattiesburg' },\n\t\t\t\t{ metroCode: 3560, state: 'MS', metro: 'Jackson' },\n\t\t\t\t{ metroCode: 4920, state: 'MS', metro: 'Memphis' },\n\t\t\t\t{ metroCode: -1, state: 'MT', metro: 'entire state' },\n\t\t\t\t{ metroCode: 880, state: 'MT', metro: 'Billings' },\n\t\t\t\t{ metroCode: 3040, state: 'MT', metro: 'Great Falls' },\n\t\t\t\t{ metroCode: 5140, state: 'MT', metro: 'Missoula' },\n\t\t\t\t{ metroCode: -1, state: 'NC', metro: 'entire state' },\n\t\t\t\t{ metroCode: 480, state: 'NC', metro: 'Asheville' },\n\t\t\t\t{ metroCode: 1520, state: 'NC', metro: 'Charlotte-Gastonia-Rock Hill' },\n\t\t\t\t{ metroCode: 2560, state: 'NC', metro: 'Fayetteville' },\n\t\t\t\t{ metroCode: 2980, state: 'NC', metro: 'Goldsboro' },\n\t\t\t\t{ metroCode: 3120, state: 'NC', metro: 'Greensboro-WinstonSalem-High Pt' },\n\t\t\t\t{ metroCode: 3150, state: 'NC', metro: 'Greenville' },\n\t\t\t\t{ metroCode: 3290, state: 'NC', metro: 'Hickory-Morganton-Lenoir' },\n\t\t\t\t{ metroCode: 3605, state: 'NC', metro: 'Jacksonville' },\n\t\t\t\t{ metroCode: 5720, state: 'NC', metro: 'Norfolk-Virginia Beach-Newport News' },\n\t\t\t\t{ metroCode: 6640, state: 'NC', metro: 'Raleigh-Durham-Chapel Hill' },\n\t\t\t\t{ metroCode: 6895, state: 'NC', metro: 'Rocky Mount' },\n\t\t\t\t{ metroCode: 9200, state: 'NC', metro: 'Wilmington' },\n\t\t\t\t{ metroCode: -1, state: 'ND', metro: 'entire state' },\n\t\t\t\t{ metroCode: 1010, state: 'ND', metro: 'Bismarck' },\n\t\t\t\t{ metroCode: 2520, state: 'ND', metro: 'Fargo-Moorhead' },\n\t\t\t\t{ metroCode: 2985, state: 'ND', metro: 'Grand Forks' },\n\t\t\t\t{ metroCode: -1, state: 'NE', metro: 'entire state' },\n\t\t\t\t{ metroCode: 4360, state: 'NE', metro: 'Lincoln' },\n\t\t\t\t{ metroCode: 5920, state: 'NE', metro: 'Omaha' },\n\t\t\t\t{ metroCode: 7720, state: 'NE', metro: 'S Sioux City' },\n\t\t\t\t{ metroCode: -1, state: 'NH', metro: 'entire state' },\n\t\t\t\t{ metroCode: 4160, state: 'NH', metro: 'Lawrence' },\n\t\t\t\t{ metroCode: 4760, state: 'NH', metro: 'Manchester' },\n\t\t\t\t{ metroCode: 5350, state: 'NH', metro: 'Nashua' },\n\t\t\t\t{ metroCode: 6450, state: 'NH', metro: 'Portsmouth-Rochester' },\n\t\t\t\t{ metroCode: -1, state: 'NJ', metro: 'entire state' },\n\t\t\t\t{ metroCode: 560, state: 'NJ', metro: 'Atlantic City-Cape May' },\n\t\t\t\t{ metroCode: 875, state: 'NJ', metro: 'Bergen-Passaic' },\n\t\t\t\t{ metroCode: 6160, state: 'NJ', metro: 'Camden' },\n\t\t\t\t{ metroCode: 3640, state: 'NJ', metro: 'Jersey City' },\n\t\t\t\t{ metroCode: 5015, state: 'NJ', metro: 'Middlesex-Somerset-Hunterdon' },\n\t\t\t\t{ metroCode: 5190, state: 'NJ', metro: 'Monmouth-Ocean' },\n\t\t\t\t{ metroCode: 5640, state: 'NJ', metro: 'Newark' },\n\t\t\t\t{ metroCode: 8480, state: 'NJ', metro: 'Trenton' },\n\t\t\t\t{ metroCode: 8760, state: 'NJ', metro: 'Vineland-Millville-Bridgeton' },\n\t\t\t\t{ metroCode: -1, state: 'NM', metro: 'entire state' },\n\t\t\t\t{ metroCode: 200, state: 'NM', metro: 'Albuquerque' },\n\t\t\t\t{ metroCode: 4100, state: 'NM', metro: 'Las Cruces' },\n\t\t\t\t{ metroCode: 7490, state: 'NM', metro: 'Santa Fe' },\n\t\t\t\t{ metroCode: -1, state: 'NV', metro: 'entire state' },\n\t\t\t\t{ metroCode: 4120, state: 'NV', metro: 'Las Vegas' },\n\t\t\t\t{ metroCode: 6720, state: 'NV', metro: 'Reno' },\n\t\t\t\t{ metroCode: -1, state: 'NY', metro: 'entire state' },\n\t\t\t\t{ metroCode: 160, state: 'NY', metro: 'Albany' },\n\t\t\t\t{ metroCode: 960, state: 'NY', metro: 'Binghamton' },\n\t\t\t\t{ metroCode: 1280, state: 'NY', metro: 'Buffalo-Niagara Falls' },\n\t\t\t\t{ metroCode: 2281, state: 'NY', metro: 'Dutchess County' },\n\t\t\t\t{ metroCode: 2335, state: 'NY', metro: 'Elmira' },\n\t\t\t\t{ metroCode: 2975, state: 'NY', metro: 'Glens Falls' },\n\t\t\t\t{ metroCode: 3610, state: 'NY', metro: 'Jamestown' },\n\t\t\t\t{ metroCode: 5380, state: 'NY', metro: 'Nassau-Suffolk' },\n\t\t\t\t{ metroCode: 5600, state: 'NY', metro: 'New York City' },\n\t\t\t\t{ metroCode: 5660, state: 'NY', metro: 'Newburgh' },\n\t\t\t\t{ metroCode: 5950, state: 'NY', metro: 'Orange County' },\n\t\t\t\t{ metroCode: 6840, state: 'NY', metro: 'Rochester' },\n\t\t\t\t{ metroCode: 8160, state: 'NY', metro: 'Syracuse' },\n\t\t\t\t{ metroCode: 8680, state: 'NY', metro: 'Utica-Rome' },\n\t\t\t\t{ metroCode: -1, state: 'OH', metro: 'entire state' },\n\t\t\t\t{ metroCode: 80, state: 'OH', metro: 'Akron' },\n\t\t\t\t{ metroCode: 1320, state: 'OH', metro: 'Canton-Massillon' },\n\t\t\t\t{ metroCode: 1640, state: 'OH', metro: 'Cincinnati-Covington' },\n\t\t\t\t{ metroCode: 1680, state: 'OH', metro: 'Cleveland-Lorain-Elyria' },\n\t\t\t\t{ metroCode: 1840, state: 'OH', metro: 'Columbus' },\n\t\t\t\t{ metroCode: 2000, state: 'OH', metro: 'Dayton-Springfield' },\n\t\t\t\t{ metroCode: 3200, state: 'OH', metro: 'Hamilton-Middletown' },\n\t\t\t\t{ metroCode: 3400, state: 'OH', metro: 'Huntington-Ashland' },\n\t\t\t\t{ metroCode: 4320, state: 'OH', metro: 'Lima' },\n\t\t\t\t{ metroCode: 4800, state: 'OH', metro: 'Mansfield' },\n\t\t\t\t{ metroCode: 6020, state: 'OH', metro: 'Marietta' },\n\t\t\t\t{ metroCode: 8080, state: 'OH', metro: 'Steubenville-Weirton' },\n\t\t\t\t{ metroCode: 8400, state: 'OH', metro: 'Toledo' },\n\t\t\t\t{ metroCode: 9320, state: 'OH', metro: 'Youngstown-Warren' },\n\t\t\t\t{ metroCode: -1, state: 'OK', metro: 'entire state' },\n\t\t\t\t{ metroCode: 2340, state: 'OK', metro: 'Enid' },\n\t\t\t\t{ metroCode: 4200, state: 'OK', metro: 'Lawton' },\n\t\t\t\t{ metroCode: 5880, state: 'OK', metro: 'Oklahoma City' },\n\t\t\t\t{ metroCode: 2720, state: 'OK', metro: 'Sallisaw' },\n\t\t\t\t{ metroCode: 8560, state: 'OK', metro: 'Tulsa' },\n\t\t\t\t{ metroCode: -1, state: 'OR', metro: 'entire state' },\n\t\t\t\t{ metroCode: 1890, state: 'OR', metro: 'Corvallis' },\n\t\t\t\t{ metroCode: 2400, state: 'OR', metro: 'Eugene-Springfield' },\n\t\t\t\t{ metroCode: 4890, state: 'OR', metro: 'Medford-Ashland' },\n\t\t\t\t{ metroCode: 6440, state: 'OR', metro: 'Portland-Vancouver' },\n\t\t\t\t{ metroCode: 7080, state: 'OR', metro: 'Salem' },\n\t\t\t\t{ metroCode: -1, state: 'PA', metro: 'entire state' },\n\t\t\t\t{ metroCode: 240, state: 'PA', metro: 'Allentown-Bethlehem-Easton' },\n\t\t\t\t{ metroCode: 280, state: 'PA', metro: 'Altoona' },\n\t\t\t\t{ metroCode: 845, state: 'PA', metro: 'Beaver County' },\n\t\t\t\t{ metroCode: 2360, state: 'PA', metro: 'Erie' },\n\t\t\t\t{ metroCode: 3240, state: 'PA', metro: 'Harrisburg-Lebanon-Carlisle' },\n\t\t\t\t{ metroCode: 3680, state: 'PA', metro: 'Johnstown' },\n\t\t\t\t{ metroCode: 4000, state: 'PA', metro: 'Lancaster' },\n\t\t\t\t{ metroCode: 6160, state: 'PA', metro: 'Philadelphia' },\n\t\t\t\t{ metroCode: 6280, state: 'PA', metro: 'Pittsburgh' },\n\t\t\t\t{ metroCode: 6680, state: 'PA', metro: 'Reading' },\n\t\t\t\t{ metroCode: 7560, state: 'PA', metro: 'Scranton--Wilkes-Barre--Hazleton' },\n\t\t\t\t{ metroCode: 7610, state: 'PA', metro: 'Sharon' },\n\t\t\t\t{ metroCode: 8050, state: 'PA', metro: 'State College' },\n\t\t\t\t{ metroCode: 9140, state: 'PA', metro: 'Williamsport' },\n\t\t\t\t{ metroCode: 9280, state: 'PA', metro: 'York' },\n\t\t\t\t{ metroCode: -1, state: 'RI', metro: 'entire state' },\n\t\t\t\t{ metroCode: 2480, state: 'RI', metro: 'Fall River' },\n\t\t\t\t{ metroCode: 6060, state: 'RI', metro: 'Pawtucket-Woonsocket-Attleboro' },\n\t\t\t\t{ metroCode: 6480, state: 'RI', metro: 'Providence-Fall River-Warwick' },\n\t\t\t\t{ metroCode: -1, state: 'SC', metro: 'entire state' },\n\t\t\t\t{ metroCode: 600, state: 'SC', metro: 'Aiken' },\n\t\t\t\t{ metroCode: 405, state: 'SC', metro: 'Anderson' },\n\t\t\t\t{ metroCode: 1440, state: 'SC', metro: 'Charleston' },\n\t\t\t\t{ metroCode: 1760, state: 'SC', metro: 'Columbia' },\n\t\t\t\t{ metroCode: 2655, state: 'SC', metro: 'Florence' },\n\t\t\t\t{ metroCode: 3160, state: 'SC', metro: 'Greenville-Spartanburg-Anderson' },\n\t\t\t\t{ metroCode: 5330, state: 'SC', metro: 'Myrtle Beach' },\n\t\t\t\t{ metroCode: 8140, state: 'SC', metro: 'Sumter' },\n\t\t\t\t{ metroCode: -1, state: 'SD', metro: 'entire state' },\n\t\t\t\t{ metroCode: 6660, state: 'SD', metro: 'Rapid City' },\n\t\t\t\t{ metroCode: 7760, state: 'SD', metro: 'Sioux Falls' },\n\t\t\t\t{ metroCode: -1, state: 'TN', metro: 'entire state' },\n\t\t\t\t{ metroCode: 1560, state: 'TN', metro: 'Chattanooga' },\n\t\t\t\t{ metroCode: 1660, state: 'TN', metro: 'Clarksville-Hopkinsville' },\n\t\t\t\t{ metroCode: 3580, state: 'TN', metro: 'Jackson' },\n\t\t\t\t{ metroCode: 3660, state: 'TN', metro: 'Johnson City-Kingsport-Bristol' },\n\t\t\t\t{ metroCode: 3840, state: 'TN', metro: 'Knoxville' },\n\t\t\t\t{ metroCode: 4920, state: 'TN', metro: 'Memphis' },\n\t\t\t\t{ metroCode: 5360, state: 'TN', metro: 'Nashville' },\n\t\t\t\t{ metroCode: -1, state: 'TX', metro: 'entire state' },\n\t\t\t\t{ metroCode: 40, state: 'TX', metro: 'Abilene' },\n\t\t\t\t{ metroCode: 320, state: 'TX', metro: 'Amarillo' },\n\t\t\t\t{ metroCode: 640, state: 'TX', metro: 'Austin-San Marcos' },\n\t\t\t\t{ metroCode: 840, state: 'TX', metro: 'Beaumont-Port Arthur' },\n\t\t\t\t{ metroCode: 1145, state: 'TX', metro: 'Brazoria' },\n\t\t\t\t{ metroCode: 1240, state: 'TX', metro: 'Brownsville-Harlingen-San Benito' },\n\t\t\t\t{ metroCode: 1260, state: 'TX', metro: 'Bryan-College Station' },\n\t\t\t\t{ metroCode: 1880, state: 'TX', metro: 'Corpus Christi' },\n\t\t\t\t{ metroCode: 1920, state: 'TX', metro: 'Dallas' },\n\t\t\t\t{ metroCode: 2320, state: 'TX', metro: 'El Paso' },\n\t\t\t\t{ metroCode: 2800, state: 'TX', metro: 'Ft Worth-Arlington' },\n\t\t\t\t{ metroCode: 2920, state: 'TX', metro: 'Galveston-Texas City' },\n\t\t\t\t{ metroCode: 3360, state: 'TX', metro: 'Houston' },\n\t\t\t\t{ metroCode: 3810, state: 'TX', metro: 'Killeen-Temple' },\n\t\t\t\t{ metroCode: 44, state: 'TX', metro: 'Lanius' },\n\t\t\t\t{ metroCode: 4080, state: 'TX', metro: 'Laredo' },\n\t\t\t\t{ metroCode: 4420, state: 'TX', metro: 'Longview-Marshall' },\n\t\t\t\t{ metroCode: 4600, state: 'TX', metro: 'Lubbock' },\n\t\t\t\t{ metroCode: 4880, state: 'TX', metro: 'McAllen-Edinburg-Mission' },\n\t\t\t\t{ metroCode: 5800, state: 'TX', metro: 'Odessa-Midland' },\n\t\t\t\t{ metroCode: 7200, state: 'TX', metro: 'San Angelo' },\n\t\t\t\t{ metroCode: 7240, state: 'TX', metro: 'San Antonio' },\n\t\t\t\t{ metroCode: 7640, state: 'TX', metro: 'Sherman-Denison' },\n\t\t\t\t{ metroCode: 8360, state: 'TX', metro: 'Texarkana' },\n\t\t\t\t{ metroCode: 8640, state: 'TX', metro: 'Tyler' },\n\t\t\t\t{ metroCode: 8750, state: 'TX', metro: 'Victoria' },\n\t\t\t\t{ metroCode: 8800, state: 'TX', metro: 'Waco' },\n\t\t\t\t{ metroCode: 9080, state: 'TX', metro: 'Wichita Falls' },\n\t\t\t\t{ metroCode: -1, state: 'UT', metro: 'entire state' },\n\t\t\t\t{ metroCode: 2620, state: 'UT', metro: 'Flagstaff' },\n\t\t\t\t{ metroCode: 6520, state: 'UT', metro: 'Provo-Orem' },\n\t\t\t\t{ metroCode: 7160, state: 'UT', metro: 'Salt Lake City-Ogden' },\n\t\t\t\t{ metroCode: -1, state: 'VA', metro: 'entire state' },\n\t\t\t\t{ metroCode: 1540, state: 'VA', metro: 'Charlottesville' },\n\t\t\t\t{ metroCode: 1950, state: 'VA', metro: 'Danville' },\n\t\t\t\t{ metroCode: 3660, state: 'VA', metro: 'Johnson City-Kingsport-Bristol' },\n\t\t\t\t{ metroCode: 4640, state: 'VA', metro: 'Lynchburg' },\n\t\t\t\t{ metroCode: 5720, state: 'VA', metro: 'Norfolk-Virginia Beach-Newport News' },\n\t\t\t\t{ metroCode: 6760, state: 'VA', metro: 'Richmond-Petersburg' },\n\t\t\t\t{ metroCode: 6800, state: 'VA', metro: 'Roanoke' },\n\t\t\t\t{ metroCode: 8840, state: 'VA', metro: 'Washington DC' },\n\t\t\t\t{ metroCode: -1, state: 'VT', metro: 'entire state' },\n\t\t\t\t{ metroCode: 1305, state: 'VT', metro: 'Burlington' },\n\t\t\t\t{ metroCode: -1, state: 'WA', metro: 'entire state' },\n\t\t\t\t{ metroCode: 860, state: 'WA', metro: 'Bellingham' },\n\t\t\t\t{ metroCode: 1150, state: 'WA', metro: 'Bremerton' },\n\t\t\t\t{ metroCode: 5910, state: 'WA', metro: 'Olympia' },\n\t\t\t\t{ metroCode: 6440, state: 'WA', metro: 'Portland-Vancouver' },\n\t\t\t\t{ metroCode: 6740, state: 'WA', metro: 'Richland-Kennewick-Pasco' },\n\t\t\t\t{ metroCode: 7600, state: 'WA', metro: 'Seattle-Bellevue-Everett' },\n\t\t\t\t{ metroCode: 7840, state: 'WA', metro: 'Spokane' },\n\t\t\t\t{ metroCode: 8200, state: 'WA', metro: 'Tacoma' },\n\t\t\t\t{ metroCode: 8725, state: 'WA', metro: 'Vancouver' },\n\t\t\t\t{ metroCode: 9260, state: 'WA', metro: 'Yakima' },\n\t\t\t\t{ metroCode: -1, state: 'WI', metro: 'entire state' },\n\t\t\t\t{ metroCode: 460, state: 'WI', metro: 'Appleton-Oshkosh-Neenah' },\n\t\t\t\t{ metroCode: 2240, state: 'WI', metro: 'Duluth-Superior' },\n\t\t\t\t{ metroCode: 2290, state: 'WI', metro: 'Eau Claire' },\n\t\t\t\t{ metroCode: 3080, state: 'WI', metro: 'Green Bay' },\n\t\t\t\t{ metroCode: 3620, state: 'WI', metro: 'Janesville-Beloit' },\n\t\t\t\t{ metroCode: 3800, state: 'WI', metro: 'Kenosha' },\n\t\t\t\t{ metroCode: 3870, state: 'WI', metro: 'La Crosse' },\n\t\t\t\t{ metroCode: 4720, state: 'WI', metro: 'Madison' },\n\t\t\t\t{ metroCode: 5080, state: 'WI', metro: 'Milwaukee-Waukesha' },\n\t\t\t\t{ metroCode: 5120, state: 'WI', metro: 'Minneapolis-St. Paul' },\n\t\t\t\t{ metroCode: 6600, state: 'WI', metro: 'Racine' },\n\t\t\t\t{ metroCode: 7620, state: 'WI', metro: 'Sheboygan' },\n\t\t\t\t{ metroCode: 8940, state: 'WI', metro: 'Wausau' },\n\t\t\t\t{ metroCode: -1, state: 'WV', metro: 'entire state' },\n\t\t\t\t{ metroCode: 1480, state: 'WV', metro: 'Charleston' },\n\t\t\t\t{ metroCode: 1900, state: 'WV', metro: 'Cumberland' },\n\t\t\t\t{ metroCode: 3400, state: 'WV', metro: 'Huntington-Ashland' },\n\t\t\t\t{ metroCode: 6020, state: 'WV', metro: 'Parkersburg' },\n\t\t\t\t{ metroCode: 8080, state: 'WV', metro: 'Steubenville-Weirton' },\n\t\t\t\t{ metroCode: 8840, state: 'WV', metro: 'Washington DC' },\n\t\t\t\t{ metroCode: 9000, state: 'WV', metro: 'Wheeling' },\n\t\t\t\t{ metroCode: -1, state: 'WY', metro: 'entire state' },\n\t\t\t\t{ metroCode: 1350, state: 'WY', metro: 'Casper' },\n\t\t\t\t{ metroCode: 1580, state: 'WY', metro: 'Cheyenne' }\n\t\t\t];\n\n\t\t\tscope.m.states = states();\n\t\t}\n\n\t\tfunction loadData(lanesOnly) {\n\t\t\tcarrierRegistrationService.lookupPreferredAreasLanes(scope.carrierId)\n\t\t\t\t.then(function(response) {\n\t\t\t\t\tscope.m.preferredLanes = response.data.preferredLanes;\n\t\t\t\t\tif (lanesOnly)\n\t\t\t\t\t\treturn;\n\t\t\t\t\tscope.m.preferredAreas = {};\n\t\t\t\t\tscope.m.hasServiceInMexico = response.data.hasServiceInMexico;\n\t\t\t\t\tif (response.data.preferredAreas) {\n\t\t\t\t\t\tresponse.data.preferredAreas.forEach(function(state) {\n\t\t\t\t\t\t\tscope.m.preferredAreas[state.toLowerCase()] = true;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tprovinceChange();\n\t\t\t\t\t\tstateChange();\n\n\t\t\t\t\t\tscope.m.showCanadaMexico = scope.m.preferredAreas.ab ||\n scope.m.preferredAreas.bc ||\n scope.m.preferredAreas.mb ||\n scope.m.preferredAreas.sk ||\n scope.m.preferredAreas.on ||\n scope.m.preferredAreas.pq ||\n scope.m.preferredAreas.nb ||\n scope.m.preferredAreas.nf ||\n scope.m.preferredAreas.ns ||\n scope.m.preferredAreas.pe ||\n scope.m.hasServiceInMexico;\n\t\t\t\t\t}\n\t\t\t\t\tscope.m.showUnitedStates = !scope.m.allUsZones;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction registerObserverHandlers() {\n\t\t\tscope.$watch('m.newOrginState',\n\t\t\t\tfunction(newVal) {\n\t\t\t\t\tif (newVal) {\n\t\t\t\t\t\tfilterOrginMetros();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\tscope.$watch('m.newDestinationState',\n\t\t\t\tfunction(newVal) {\n\t\t\t\t\tif (newVal) {\n\t\t\t\t\t\tfilterDestinationMetros();\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\tscope.$on('$destroy',\n\t\t\t\tfunction() {\n\t\t\t\t\twindow.onbeforeunload = undefined;\n\t\t\t\t});\n\n\t\t\tscope.$on('$locationChangeStart',\n\t\t\t\tfunction(event) {\n\t\t\t\t\tif (scope.m.isDirty || scope.m.showNewLane) {\n\t\t\t\t\t\tif (!\n\t\t\t\t\t\tconfirm('You have unsaved data. If you leave this page any changes will be lost. Changes are saved using the Save buttons at the bottom of the page. Are you sure you want to leave the page?')) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\tobserverService.registerHandlers(scope,\n\t\t\t\t[\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_START_CHANGE_CARRIER_PROFILE_VIEW, handler: saveData },\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_SET_PENDING_TAB, handler: setPendingTab }\n\t\t\t\t]);\n\t\t}\n\n\t\tfunction setIsDirty() {\n\t\t\tscope.m.isDirty = true;\n\t\t\twindow.onbeforeunload = function() {\n\t\t\t\treturn 'You have unsaved data. If you leave this page any changes will be lost. Changes are saved using the Save buttons at the bottom of the page.';\n\t\t\t};\n\t\t}\n\n\t\tfunction saveData(callback) {\n\t\t\tif (!scope.m.isBroker) {\n\t\t\t\tcarrierRegistrationService.visitedSection('laneCoverage', scope.carrierId, scope.brokerId)\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\t\tsubjectMessages.COB_SUBJECT_CARRIER_PROFILE_VIEW_STATUS,\n\t\t\t\t\t\t\t'laneCoverage');\n\t\t\t\t\t\tif (scope.m.showNewLane) {\n\t\t\t\t\t\t\tsaveLane();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsavePreferredAreas(callback);\n\t\t\t\t\t});\n\n\t\t\t} else {\n\t\t\t\tif (scope.m.showNewLane) {\n\t\t\t\t\tsaveLane();\n\t\t\t\t}\n\t\t\t\tsavePreferredAreas(callback);\n\t\t\t}\n\t\t}\n\n\t\tfunction states() {\n\t\t\tvar cur = '';\n\t\t\tvar states = [];\n\t\t\tallMetros.forEach(function(metro) {\n\t\t\t\tif (cur !== metro.state) {\n\t\t\t\t\tstates.push(metro.state);\n\t\t\t\t\tcur = metro.state;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn states;\n\t\t}\n\n\t\tfunction filterOrginMetros() {\n\t\t\tvar filtered = [];\n\t\t\tscope.m.newOrginMetro = {};\n\n\t\t\tallMetros.forEach(function(metro) {\n\t\t\t\tif (scope.m.newOrginState === metro.state) {\n\t\t\t\t\tfiltered.push(metro);\n\t\t\t\t\tif (!scope.m.newOrginMetro.state) {\n\t\t\t\t\t\tscope.m.newOrginMetro = metro;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tscope.m.filteredOrginMetros = filtered;\n\t\t}\n\n\t\tfunction filterDestinationMetros() {\n\t\t\tvar filtered = [];\n\t\t\tscope.m.newDestinationMetro = {};\n\n\t\t\tallMetros.forEach(function(metro) {\n\t\t\t\tif (scope.m.newDestinationState === metro.state) {\n\t\t\t\t\tfiltered.push(metro);\n\t\t\t\t\tif (!scope.m.newDestinationMetro.state) {\n\t\t\t\t\t\tscope.m.newDestinationMetro = metro;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tscope.m.filteredDestinationMetros = filtered;\n\t\t}\n\n\t\tfunction trashClick(lane) {\n\t\t\tif (lane) {\n\t\t\t\tfor (var i = 0; i < scope.m.preferredLanes.length; i++) {\n\t\t\t\t\tif (scope.m.preferredLanes[i].originState === lane.originState)\n\t\t\t\t\t\tif (scope.m.preferredLanes[i].originMetroName === lane.originMetroName)\n\t\t\t\t\t\t\tif (scope.m.preferredLanes[i].destinationState === lane.destinationState)\n\t\t\t\t\t\t\t\tif (scope.m.preferredLanes[i].destinationMetroName === lane.destinationMetroName) {\n\t\t\t\t\t\t\t\t\tcarrierRegistrationService.updatePreferredLanes(lane.originState,\n\t\t\t\t\t\t\t\t\t\tlane.originMetroCode,\n\t\t\t\t\t\t\t\t\t\tlane.originMetroName,\n\t\t\t\t\t\t\t\t\t\tlane.destinationState,\n\t\t\t\t\t\t\t\t\t\tlane.destinationMetroCode,\n\t\t\t\t\t\t\t\t\t\tlane.destinationMetroName,\n\t\t\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\t\t\tscope.carrierId)\n\t\t\t\t\t\t\t\t\t\t.then(function() { loadData(true); });\n\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tscope.m.showNewLane = false;\n\t\t\t\tif (!scope.m.isDirty) {\n\t\t\t\t\twindow.onbeforeunload = undefined;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\tfunction saveLane() {\n\t\t\tcarrierRegistrationService.updatePreferredLanes(scope.m.newOrginMetro.state,\n\t\t\t\tscope.m.newOrginMetro.metroCode,\n\t\t\t\tscope.m.newOrginMetro.metro,\n\t\t\t\tscope.m.newDestinationMetro.state,\n\t\t\t\tscope.m.newDestinationMetro.metroCode,\n\t\t\t\tscope.m.newDestinationMetro.metro,\n\t\t\t\tfalse,\n\t\t\t\tscope.carrierId)\n\t\t\t\t.then(function() {\n\t\t\t\t\tloadData(true);\n\t\t\t\t\tif (!scope.m.isDirty) {\n\t\t\t\t\t\twindow.onbeforeunload = undefined;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\tscope.m.showNewLane = false;\n\t\t}\n\n\t\tfunction addClicK() {\n\t\t\tscope.m.newOrginState = 'AK';\n\t\t\tscope.m.newDestinationState = 'AK';\n\t\t\tfilterOrginMetros();\n\t\t\tfilterDestinationMetros();\n\t\t\twindow.onbeforeunload = function() {\n\t\t\t\treturn 'You have unsaved data. If you leave this page any changes will be lost. Changes are saved using the Save buttons at the bottom of the page.';\n\t\t\t};\n\n\t\t\tscope.m.showNewLane = true;\n\t\t}\n\n\t\tfunction canadaMexicoClick() {\n\t\t\tscope.m.showCanadaMexico = !scope.m.showCanadaMexico;\n\t\t}\n\n\t\tfunction allCanadianRegionsChange() {\n\t\t\tscope.m.western = scope.m.allCanadianRegions;\n\t\t\tscope.m.central = scope.m.allCanadianRegions;\n\t\t\tscope.m.eastern = scope.m.allCanadianRegions;\n\n\t\t\twesternChange();\n\t\t\tcentralChange();\n\t\t\teasternChange();\n\t\t}\n\n\t\tfunction westernChange() {\n\t\t\tscope.m.preferredAreas.ab = scope.m.western;\n\t\t\tscope.m.preferredAreas.bc = scope.m.western;\n\t\t\tscope.m.preferredAreas.mb = scope.m.western;\n\t\t\tscope.m.preferredAreas.sk = scope.m.western;\n\n\t\t\tscope.m.allCanadianRegions = scope.m.western && scope.m.central && scope.m.eastern;\n\t\t}\n\n\t\tfunction centralChange() {\n\t\t\tscope.m.preferredAreas.on = scope.m.central;\n\t\t\tscope.m.preferredAreas.pq = scope.m.central;\n\n\t\t\tscope.m.allCanadianRegions = scope.m.western && scope.m.central && scope.m.eastern;\n\t\t}\n\n\t\tfunction easternChange() {\n\t\t\tscope.m.preferredAreas.nb = scope.m.eastern;\n\t\t\tscope.m.preferredAreas.nf = scope.m.eastern;\n\t\t\tscope.m.preferredAreas.ns = scope.m.eastern;\n\t\t\tscope.m.preferredAreas.pe = scope.m.eastern;\n\n\t\t\tscope.m.allCanadianRegions = scope.m.western && scope.m.central && scope.m.eastern;\n\t\t}\n\n\t\tfunction provinceChange() {\n\t\t\tscope.m.western = scope.m.preferredAreas.ab &&\n scope.m.preferredAreas.bc &&\n scope.m.preferredAreas.mb &&\n scope.m.preferredAreas.sk;\n\n\t\t\tscope.m.central = scope.m.preferredAreas.on && scope.m.preferredAreas.pq;\n\n\t\t\tscope.m.eastern = scope.m.preferredAreas.nb &&\n scope.m.preferredAreas.nf &&\n scope.m.preferredAreas.ns &&\n scope.m.preferredAreas.pe;\n\n\t\t\tscope.m.allCanadianRegions = scope.m.western && scope.m.central && scope.m.eastern;\n\t\t}\n\n\t\tfunction unitedStatesClick() {\n\t\t\tif (!ignoreAllUsToggle) {\n\t\t\t\tscope.m.showUnitedStates = !scope.m.showUnitedStates;\n\t\t\t} else {\n\t\t\t\tignoreAllUsToggle = false;\n\t\t\t}\n\t\t}\n\n\t\tfunction allUsCheckClick() {\n\t\t\t// Brokers cannot select\n\t\t\tif (scope.m.isBroker) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tscope.m.allUsZones = !scope.m.allUsZones;\n\t\t\tallUsZoneChange();\n\t\t\tsetIsDirty();\n\n\t\t\tif (!scope.m.allUsZones && scope.m.showUnitedStates) {\n\t\t\t\tignoreAllUsToggle = true;\n\t\t\t}\n\t\t}\n\n\t\tfunction allUsZoneChange() {\n\t\t\tscope.m.zone0 = scope.m.allUsZones;\n\t\t\tscope.m.zone1 = scope.m.allUsZones;\n\t\t\tscope.m.zone2 = scope.m.allUsZones;\n\t\t\tscope.m.zone3 = scope.m.allUsZones;\n\t\t\tscope.m.zone4 = scope.m.allUsZones;\n\t\t\tscope.m.zone5 = scope.m.allUsZones;\n\t\t\tscope.m.zone6 = scope.m.allUsZones;\n\t\t\tscope.m.zone7 = scope.m.allUsZones;\n\t\t\tscope.m.zone8 = scope.m.allUsZones;\n\t\t\tscope.m.zone9 = scope.m.allUsZones;\n\n\t\t\tzone0Change();\n\t\t\tzone1Change();\n\t\t\tzone2Change();\n\t\t\tzone3Change();\n\t\t\tzone4Change();\n\t\t\tzone5Change();\n\t\t\tzone6Change();\n\t\t\tzone7Change();\n\t\t\tzone8Change();\n\t\t\tzone9Change();\n\n\t\t\tif (scope.m.allUsZones) {\n\t\t\t\tscope.m.showUnitedStates = true;\n\t\t\t} else {\n\t\t\t\tscope.m.showUnitedStates = false;\n\t\t\t}\n\t\t}\n\n\t\tfunction zone0Change() {\n\t\t\tscope.m.preferredAreas.ct = scope.m.zone0;\n\t\t\tscope.m.preferredAreas.ma = scope.m.zone0;\n\t\t\tscope.m.preferredAreas.me = scope.m.zone0;\n\t\t\tscope.m.preferredAreas.nh = scope.m.zone0;\n\t\t\tscope.m.preferredAreas.nj = scope.m.zone0;\n\t\t\tscope.m.preferredAreas.ri = scope.m.zone0;\n\t\t\tscope.m.preferredAreas.vt = scope.m.zone0;\n\n\t\t\tallUsZonesHelper();\n\t\t}\n\n\t\tfunction zone1Change() {\n\t\t\tscope.m.preferredAreas.de = scope.m.zone1;\n\t\t\tscope.m.preferredAreas.ny = scope.m.zone1;\n\t\t\tscope.m.preferredAreas.pa = scope.m.zone1;\n\n\t\t\tallUsZonesHelper();\n\t\t}\n\n\t\tfunction zone2Change() {\n\t\t\tscope.m.preferredAreas.md = scope.m.zone2;\n\t\t\tscope.m.preferredAreas.nc = scope.m.zone2;\n\t\t\tscope.m.preferredAreas.sc = scope.m.zone2;\n\t\t\tscope.m.preferredAreas.va = scope.m.zone2;\n\t\t\tscope.m.preferredAreas.dc = scope.m.zone2;\n\t\t\tscope.m.preferredAreas.wv = scope.m.zone2;\n\n\t\t\tallUsZonesHelper();\n\t\t}\n\n\t\tfunction zone3Change() {\n\t\t\tscope.m.preferredAreas.al = scope.m.zone3;\n\t\t\tscope.m.preferredAreas.fl = scope.m.zone3;\n\t\t\tscope.m.preferredAreas.ga = scope.m.zone3;\n\t\t\tscope.m.preferredAreas.ms = scope.m.zone3;\n\t\t\tscope.m.preferredAreas.tn = scope.m.zone3;\n\n\t\t\tallUsZonesHelper();\n\t\t}\n\n\t\tfunction zone4Change() {\n\t\t\tscope.m.preferredAreas.in = scope.m.zone4;\n\t\t\tscope.m.preferredAreas.ky = scope.m.zone4;\n\t\t\tscope.m.preferredAreas.mi = scope.m.zone4;\n\t\t\tscope.m.preferredAreas.oh = scope.m.zone4;\n\n\t\t\tallUsZonesHelper();\n\t\t}\n\n\t\tfunction zone5Change() {\n\t\t\tscope.m.preferredAreas.ia = scope.m.zone5;\n\t\t\tscope.m.preferredAreas.mn = scope.m.zone5;\n\t\t\tscope.m.preferredAreas.mt = scope.m.zone5;\n\t\t\tscope.m.preferredAreas.sd = scope.m.zone5;\n\t\t\tscope.m.preferredAreas.nd = scope.m.zone5;\n\t\t\tscope.m.preferredAreas.wi = scope.m.zone5;\n\n\t\t\tallUsZonesHelper();\n\t\t}\n\n\t\tfunction zone6Change() {\n\t\t\tscope.m.preferredAreas.il = scope.m.zone6;\n\t\t\tscope.m.preferredAreas.ks = scope.m.zone6;\n\t\t\tscope.m.preferredAreas.mo = scope.m.zone6;\n\t\t\tscope.m.preferredAreas.ne = scope.m.zone6;\n\n\t\t\tallUsZonesHelper();\n\t\t}\n\n\t\tfunction zone7Change() {\n\t\t\tscope.m.preferredAreas.ar = scope.m.zone7;\n\t\t\tscope.m.preferredAreas.la = scope.m.zone7;\n\t\t\tscope.m.preferredAreas.ok = scope.m.zone7;\n\t\t\tscope.m.preferredAreas.tx = scope.m.zone7;\n\n\t\t\tallUsZonesHelper();\n\t\t}\n\n\t\tfunction zone8Change() {\n\t\t\tscope.m.preferredAreas.az = scope.m.zone8;\n\t\t\tscope.m.preferredAreas.co = scope.m.zone8;\n\t\t\tscope.m.preferredAreas.id = scope.m.zone8;\n\t\t\tscope.m.preferredAreas.nv = scope.m.zone8;\n\t\t\tscope.m.preferredAreas.nm = scope.m.zone8;\n\t\t\tscope.m.preferredAreas.ut = scope.m.zone8;\n\t\t\tscope.m.preferredAreas.wy = scope.m.zone8;\n\n\t\t\tallUsZonesHelper();\n\t\t}\n\n\t\tfunction zone9Change() {\n\t\t\tscope.m.preferredAreas.ca = scope.m.zone9;\n\t\t\tscope.m.preferredAreas.or = scope.m.zone9;\n\t\t\tscope.m.preferredAreas.wa = scope.m.zone9;\n\t\t\tscope.m.preferredAreas.ak = scope.m.zone9;\n\n\t\t\tallUsZonesHelper();\n\t\t}\n\n\t\tfunction stateChange() {\n\t\t\tscope.m.zone0 = scope.m.preferredAreas.ct &&\n scope.m.preferredAreas.ma &&\n scope.m.preferredAreas.me &&\n scope.m.preferredAreas.nh &&\n scope.m.preferredAreas.nj &&\n scope.m.preferredAreas.ri &&\n scope.m.preferredAreas.vt;\n\t\t\tscope.m.zone1 = scope.m.preferredAreas.de &&\n scope.m.preferredAreas.ny &&\n scope.m.preferredAreas.pa;\n\t\t\tscope.m.zone2 = scope.m.preferredAreas.md &&\n scope.m.preferredAreas.nc &&\n scope.m.preferredAreas.sc &&\n scope.m.preferredAreas.va &&\n scope.m.preferredAreas.dc &&\n scope.m.preferredAreas.wv;\n\t\t\tscope.m.zone3 = scope.m.preferredAreas.al &&\n scope.m.preferredAreas.fl &&\n scope.m.preferredAreas.ga &&\n scope.m.preferredAreas.ms &&\n scope.m.preferredAreas.tn;\n\t\t\tscope.m.zone4 = scope.m.preferredAreas.in &&\n scope.m.preferredAreas.ky &&\n scope.m.preferredAreas.mi &&\n scope.m.preferredAreas.oh;\n\t\t\tscope.m.zone5 = scope.m.preferredAreas.ia &&\n scope.m.preferredAreas.mn &&\n scope.m.preferredAreas.mt &&\n scope.m.preferredAreas.sd &&\n scope.m.preferredAreas.nd &&\n scope.m.preferredAreas.nd &&\n scope.m.preferredAreas.wi;\n\t\t\tscope.m.zone6 = scope.m.preferredAreas.il &&\n scope.m.preferredAreas.ks &&\n scope.m.preferredAreas.mo &&\n scope.m.preferredAreas.ne;\n\t\t\tscope.m.zone7 = scope.m.preferredAreas.ar &&\n scope.m.preferredAreas.la &&\n scope.m.preferredAreas.ok &&\n scope.m.preferredAreas.tx;\n\t\t\tscope.m.zone8 = scope.m.preferredAreas.az &&\n scope.m.preferredAreas.co &&\n scope.m.preferredAreas.id &&\n scope.m.preferredAreas.nv &&\n scope.m.preferredAreas.nm &&\n scope.m.preferredAreas.ut &&\n scope.m.preferredAreas.wy;\n\t\t\tscope.m.zone9 = scope.m.preferredAreas.ca &&\n scope.m.preferredAreas.or &&\n scope.m.preferredAreas.wa &&\n scope.m.preferredAreas.ak;\n\n\n\t\t\tallUsZonesHelper();\n\t\t}\n\n\t\tfunction allUsZonesHelper() {\n\t\t\tscope.m.allUsZones = scope.m.zone0 &&\n scope.m.zone1 &&\n scope.m.zone2 &&\n scope.m.zone3 &&\n scope.m.zone4 &&\n scope.m.zone5 &&\n scope.m.zone6 &&\n scope.m.zone7 &&\n scope.m.zone8 &&\n scope.m.zone9;\n\t\t}\n\n\t\tfunction savePreferredAreas(callback) {\n\t\t\tif (scope.m.isDirty) {\n\t\t\t\tvar preferredAreas = [];\n\t\t\t\tfor (var key in scope.m.preferredAreas) {\n\t\t\t\t\tif (scope.m.preferredAreas[key]) {\n\t\t\t\t\t\tpreferredAreas.push(key.toUpperCase());\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcarrierRegistrationService\n\t\t\t\t\t.updatePreferredAreas(preferredAreas, scope.m.hasServiceInMexico, scope.carrierId)\n\t\t\t\t\t.then(function() {\n\t\t\t\t\t\tscope.m.isDirty = false;\n\t\t\t\t\t\tif (!scope.m.showNewLane)\n\t\t\t\t\t\t\twindow.onbeforeunload = undefined;\n\t\t\t\t\t\tif (typeof (callback) === 'function')\n\t\t\t\t\t\t\tcallback();\n\t\t\t\t\t});\n\n\t\t\t} else if (typeof (callback) === 'function')\n\t\t\t\tcallback();\n\t\t}\n\n\t\tfunction goToTab(tab) {\n\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_SET_PENDING_TAB, tab);\n\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\tsubjectMessages.COB_SUBJECT_START_CHANGE_CARRIER_PROFILE_VIEW,\n\t\t\t\tnavigate);\n\t\t}\n\n\t\tfunction setPendingTab(tab) {\n\t\t\tscope.tab = tab;\n\t\t}\n\n\t\tfunction navigate() {\n\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\tsubjectMessages.COB_SUBJECT_FINISH_CHANGE_CARRIER_PROFILE_VIEW,\n\t\t\t\tscope.tab);\n\t\t}\n\t}\n\n})();\n","'use strict';\n\n(function() {\n\tangular.module('onboarding.carrier')\n\t\t.directive('cobCarrierProfileNavigation', cobCarrierProfileNavigation);\n\n\tcobCarrierProfileNavigation.$inject = [\n\t\t'$rootScope', '$state', '$stateParams', 'subjectObserverMessagesService', 'observerService', 'sessionService',\n\t\t'carrierRegistrationService', 'carrierService', 'carrierSettingsService', '$timeout'\n\t];\n\n\tvar $rootScope,\n\t\t$state,\n\t\t$stateParams,\n\t\tsubjectObserverMessagesService,\n\t\tobserverService,\n\t\tsubjectMessages,\n\t\tobserverMessages,\n\t\tsessionService,\n\t\tcarrierRegistrationService,\n\t\tcarrierSettingsService,\n\t\t$timeout,\n\t\tcarrierService;\n\n\tfunction cobCarrierProfileNavigation(_$rootScope_,\n\t\t_$state_,\n\t\t_$stateParams_,\n\t\t_subjectObserverMessagesService_,\n\t\t_observerService_,\n\t\t_sessionService_,\n\t\t_carrierRegistrationService_,\n\t\t_carrierService_,\n\t\t_carrierSettingsService_,\n\t\t_$timeout_) {\n\t\t$rootScope = _$rootScope_;\n\t\t$state = _$state_;\n\t\t$stateParams = _$stateParams_;\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tsessionService = _sessionService_;\n\t\tcarrierRegistrationService = _carrierRegistrationService_;\n\t\tcarrierService = _carrierService_;\n\t\tcarrierSettingsService = _carrierSettingsService_;\n\t\t$timeout = _$timeout_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/carrier/profile/carrierProfileNavigation.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\n\t\t\tscope.m = {\n\t\t\t\tisBroker: sessionService.isAuthorizedBrokerRead(),\n\t\t\t\tisBrokerWrite: sessionService.isAuthorizedBrokerWrite(),\n\t\t\t\tisAdmin: sessionService.isAuthorizedInternalAdmin(),\n\t\t\t\tisCarrier: sessionService.isAuthorizedCarrierRead(),\n\t\t\t\tstatusCount: 0\n\t\t\t};\n\n\t\t\tscope.carrierId = $stateParams.carrierId;\n\t\t\tscope.brokerId = $stateParams.brokerId;\n\t\t\tscope.pendingViewStatusChange = '';\n\t\t\tscope.selectTab = selectTab;\n\t\t\tscope.setTab = setTab;\n\t\t\tscope.navigationOrder = [\n\t\t\t\t'carrierProfile.company',\n\t\t\t\t'carrierProfile.contacts',\n\t\t\t\t'carrierProfile.fleetServices',\n\t\t\t\t'carrierProfile.laneCoverage',\n\t\t\t\t'carrierProfile.taxes',\n\t\t\t\t'carrierProfile.documents',\n\t\t\t\t'carrierProfile.insurance',\n\t\t\t\t'carrierProfile.contracts'\n\t\t\t];\n\n\t\t\tscope.navigationHeader = {\n\t\t\t\t'carrierProfile.company': 'Company',\n\t\t\t\t'carrierProfile.contacts': 'Contacts',\n\t\t\t\t'carrierProfile.fleetServices': 'Fleet',\n\t\t\t\t'carrierProfile.laneCoverage': 'Lanes',\n\t\t\t\t'carrierProfile.taxes': 'Tax',\n\t\t\t\t'carrierProfile.documents': 'Documents',\n\t\t\t\t'carrierProfile.insurance': 'Insurance',\n\t\t\t\t'carrierProfile.contracts': 'Contracts'\n\t\t\t};\n\t\t\tscope.saveNote = saveNote;\n\t\t\tscope.$state = $state;\n\t\t\tscope.makeNavSticky = true;\n\n\t\t\tvar tab = location.hash.substr(10);\n\t\t\tregisterObserverHandlers();\n\t\t\tselectTab(tab, true);\n\t\t\tlookupCarrierStatus();\n\t\t\tgetCarrierImpersonated();\n\t\t}\n\n\t\tfunction registerObserverHandlers() {\n\t\t\tobserverService.registerHandlers(scope,\n\t\t\t\t[\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: observerMessages.COB_OBSERVER_FINISH_CHANGE_CARRIER_PROFILE_VIEW,\n\t\t\t\t\t\thandler: onFinishChangeView\n\t\t\t\t\t},\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_CARRIER_PROFILE_VIEW_LOAD, handler: onViewLoad },\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_CARRIER_PROFILE_VIEW_STATUS, handler: onViewStatusChange },\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_CARRIER_PROFILE_STATUS_FINISH, handler: loadFirstTab }\n\t\t\t\t]);\n\t\t}\n\n\t\tfunction onFinishChangeView(view) {\n\t\t\tif (view === 'profile') {\n\t\t\t\t$rootScope.firstLogin = true;\n\t\t\t\tloadFirstTab();\n\t\t\t} else {\n\t\t\t\tselectTab(view);\n\t\t\t\tsetTab();\n\t\t\t}\n\t\t}\n\n\t\tfunction onViewLoad() {\n\t\t\tsetStickyNav();\n\t\t\tvar tab = location.hash.substr(10).split('?')[0];\n\t\t\tselectTab(tab, true);\n\t\t}\n\n\t\tfunction loadFirstTab() {\n\t\t\tif ($rootScope.firstLogin) {\n\t\t\t\tfor (var i = 0; i < scope.navigationOrder.length; i++) {\n\t\t\t\t\tif (!navStatusHelper(scope.navigationOrder[i])) {\n\t\t\t\t\t\tif (scope.navigationOrder[i] !== $state.current.name)\n\t\t\t\t\t\t\t$state.go(scope.navigationOrder[i],\n\t\t\t\t\t\t\t\t{ carrierId: $stateParams.carrierId, brokerId: $stateParams.brokerId });\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t$rootScope.firstLogin = false;\n\t\t\t}\n\t\t}\n\n\t\tfunction selectTab(tab, isViewLoad) {\n\t\t\tvar next, back;\n\t\t\t//the order of items MATTER\n\t\t\tif (tab === 'next') {\n\t\t\t\tnext = true;\n\t\t\t} else if (tab === 'back') {\n\t\t\t\tback = true;\n\t\t\t} else {\n\t\t\t\tscope.m.pendingTab = tab;\n\t\t\t}\n\n\t\t\tif (next || back) {\n\t\t\t\tfor (var i = 0; i < scope.navigationOrder.length; i++) {\n\t\t\t\t\tif (scope.navigationOrder[i] === $state.current.name) {\n\t\t\t\t\t\tif (next) {\n\t\t\t\t\t\t\ti = i + 1;\n\t\t\t\t\t\t} else if (back) {\n\t\t\t\t\t\t\ti = i - 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tscope.m.pendingTab = scope.navigationOrder[i];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (scope.pendingViewStatusChange) {\n\t\t\t\tviewStatusChange();\n\t\t\t}\n\t\t\tif (isViewLoad) {\n\t\t\t\tscope.m.pendingTab = '';\n\t\t\t} else\n\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\tsubjectMessages.COB_SUBJECT_START_CHANGE_CARRIER_PROFILE_VIEW,\n\t\t\t\t\tsetTab);\n\t\t}\n\n\t\tfunction setTab() {\n\t\t\tif (scope.m.pendingTab === $state.current.name) {\n\t\t\t\t$state.go(scope.m.pendingTab,\n\t\t\t\t\t{ carrierId: $stateParams.carrierId, brokerId: $stateParams.brokerId },\n\t\t\t\t\t{ reload: true });\n\t\t\t\tscope.m.pendingTab = '';\n\t\t\t} else if (scope.m.pendingTab) {\n\t\t\t\t$state.go(scope.m.pendingTab, { carrierId: $stateParams.carrierId, brokerId: $stateParams.brokerId });\n\t\t\t\tscope.m.pendingTab = '';\n\t\t\t}\n\n\t\t}\n\n\t\tfunction lookupCarrierStatus() {\n\t\t\tcarrierRegistrationService.lookupCarrierStatus(scope.carrierId)\n\t\t\t\t.then(function(response) {\n\t\t\t\t\tscope.m.companyInfoComplete = response.data.companyInfoComplete;\n\t\t\t\t\tscope.m.contactsComplete = response.data.contactsComplete;\n\t\t\t\t\tscope.m.documentsComplete = response.data.documentsComplete;\n\t\t\t\t\tscope.m.equipmentInfoComplete = response.data.equipmentInfoComplete;\n\t\t\t\t\tscope.m.insuranceInfoComplete = response.data.insuranceInfoComplete;\n\t\t\t\t\tscope.m.laneInfoComplete = response.data.laneInfoComplete;\n\t\t\t\t\tscope.m.taxInfoComplete = response.data.taxInfoComplete;\n\t\t\t\t\tisReadyToSign();\n\t\t\t\t\tsetCarrierNavState();\n\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\tsubjectMessages.COB_SUBJECT_CARRIER_PROFILE_STATUS_FINISH);\n\t\t\t\t});\n\t\t\tif ($stateParams.carrierId \n\t\t\t\t&& ($('base').attr('href').split('/')[1] || $stateParams.brokerId || scope.m.isBroker) \n\t\t\t\t&& !scope.m.isAdmin) {\n\t\t\t\tcarrierRegistrationService.lookupContractsAndSignatures($stateParams.carrierId, $stateParams.brokerId)\n\t\t\t\t\t.then(loadContractsHelper);\n\t\t\t}\n\t\t}\n\n\t\tfunction loadContractsHelper(response) {\n\n\t\t\tfor (var i = 0; i < response.data.contractSignatures.length; i++) {\n\t\t\t\tif (response.data.contractSignatures[i].signee &&! response.data.contractSignatures[i].rejected) {\n\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\tsubjectMessages.COB_SUBJECT_CARRIER_PROFILE_VIEW_STATUS,\n\t\t\t\t\t\t'contracts');\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\tfunction onViewStatusChange(view) {\n\t\t\tif (view === 'contracts') {\n\t\t\t\tscope.m.contractsComplete = true;\n\t\t\t} else {\n\t\t\t\tscope.pendingViewStatusChange = view;\n\t\t\t}\n\n\t\t}\n\n\t\tfunction viewStatusChange() {\n\t\t\tswitch (scope.pendingViewStatusChange) {\n\t\t\tcase 'company':\n\t\t\t\tscope.m.companyInfoComplete = true;\n\t\t\t\tbreak;\n\t\t\tcase 'contacts':\n\t\t\t\tscope.m.contactsComplete = true;\n\t\t\t\tbreak;\n\t\t\tcase 'documents':\n\t\t\t\tscope.m.documentsComplete = true;\n\t\t\t\tbreak;\n\t\t\tcase 'fleetServices':\n\t\t\t\tscope.m.equipmentInfoComplete = true;\n\t\t\t\tbreak;\n\t\t\tcase 'insurance':\n\t\t\t\tscope.m.insuranceInfoComplete = true;\n\t\t\t\tbreak;\n\t\t\tcase 'laneCoverage':\n\t\t\t\tscope.m.laneInfoComplete = true;\n\t\t\t\tbreak;\n\t\t\tcase 'taxes':\n\t\t\t\tscope.m.taxInfoComplete = true;\n\t\t\t\tbreak;\n\t\t\t}\n \n\t\t\tsetCarrierNavState();\n\t\t\tnavStatusHelper();\n\t\t\tscope.pendingViewStatusChange = '';\n\n\t\t\tif (!scope.m.readyTosign) {\n\t\t\t\tif (isReadyToSign()) {\n\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\tsubjectMessages.COB_SUBJECT_CARRIER_PROFILE_READY_TO_SIGN);\n\t\t\t\t\tcarrierRegistrationService.sendProfileCompleteNotification($stateParams.carrierId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction navStatusHelper(tab) {\n\t\t\tswitch (tab) {\n\t\t\tcase 'carrierProfile.company':\n\t\t\t\treturn scope.m.companyInfoComplete;\n\t\t\tcase 'carrierProfile.contacts':\n\t\t\t\treturn scope.m.contactsComplete;\n\t\t\tcase 'carrierProfile.fleetServices':\n\t\t\t\treturn scope.m.equipmentInfoComplete;\n\t\t\tcase 'carrierProfile.laneCoverage':\n\t\t\t\treturn scope.m.laneInfoComplete;\n\t\t\tcase 'carrierProfile.taxes':\n\t\t\t\treturn scope.m.taxInfoComplete;\n\t\t\tcase 'carrierProfile.documents':\n\t\t\t\treturn scope.m.documentsComplete;\n\t\t\tcase 'carrierProfile.insurance':\n\t\t\t\treturn scope.m.insuranceInfoComplete;\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfunction isReadyToSign() {\n\t\t\tscope.m.statusCount = 0;\n\t\t\tif (scope.m.companyInfoComplete)\n\t\t\t\tscope.m.statusCount = scope.m.statusCount + 1;\n\t\t\tif (scope.m.contactsComplete)\n\t\t\t\tscope.m.statusCount = scope.m.statusCount + 1;\n\t\t\tif (scope.m.documentsComplete)\n\t\t\t\tscope.m.statusCount = scope.m.statusCount + 1;\n\t\t\tif (scope.m.equipmentInfoComplete)\n\t\t\t\tscope.m.statusCount = scope.m.statusCount + 1;\n\t\t\tif (scope.m.insuranceInfoComplete)\n\t\t\t\tscope.m.statusCount = scope.m.statusCount + 1;\n\t\t\tif (scope.m.laneInfoComplete)\n\t\t\t\tscope.m.statusCount = scope.m.statusCount + 1;\n\t\t\tif (scope.m.taxInfoComplete)\n\t\t\t\tscope.m.statusCount = scope.m.statusCount + 1;\n\t\t\tif (scope.m.statusCount === 7) {\n\t\t\t\tscope.m.readyTosign = true;\n\t\t\t\tif (sessionService.getCarrierReadyToSign() === false) {\n\t\t\t\t\tscope.m.readyToSign = sessionService.setCarrierReadyToSign(true);\n\t\t\t\t} \n\t\t\t} else {\n\t\t\t\tscope.m.readyTosign = false;\n\t\t\t\tscope.m.readyToSign = sessionService.setCarrierReadyToSign(false);\n\t\t\t}\n\n\t\t\treturn scope.m.readyTosign;\n\t\t}\n\n\t\tfunction saveNote() {\n\t\t\tif (scope.m.carrierNotesChange) {\n\t\t\t\tif (scope.m.carrierNotes) {\n\t\t\t\t\tcarrierService.updateCarrierNote(scope.m.carrierId, scope.m.carrierNotes)\n\t\t\t\t\t\t.then(function() {\n\t\t\t\t\t\t\tscope.m.editingNotes = false;\n\t\t\t\t\t\t\tscope.m.carrierNotesChange = false;\n\t\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tcarrierService.deleteCarrierNote(scope.m.carrierId)\n\t\t\t\t\t\t.then(function() {\n\t\t\t\t\t\t\tscope.m.editingNotes = false;\n\t\t\t\t\t\t\tscope.m.carrierNotesChange = false;\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tscope.m.editingNotes = false;\n\t\t\t}\n\n\t\t}\n\n\t\tfunction setStickyNav() {\n\t\t\tvar Ylocation = Ylocation || 0;\n\t\t\t$('.carrier-profile-wrapper')\n\t\t\t\t.bind('scroll',\n\t\t\t\t\tfunction() {\n\t\t\t\t\t\tvar currentLocation = $(this).scrollTop();\n\t\t\t\t\t\t$(this).addClass('full-length');\n\t\t\t\t\t\t$('.carrier-profile').addClass('full-length');\n\t\t\t\t\t\tif (currentLocation >= Ylocation) {\n\t\t\t\t\t\t\tscope.makeNavSticky = false;\n\t\t\t\t\t\t\tobserverService\n\t\t\t\t\t\t\t\t.sendMessageToSubject(scope,\n\t\t\t\t\t\t\t\t\tsubjectMessages.COB_SUBJECT_CARRIER_SCROLL,\n\t\t\t\t\t\t\t\t\tscope.makeNavSticky);\n\t\t\t\t\t\t\tYlocation = currentLocation;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tscope.makeNavSticky = true;\n\t\t\t\t\t\t\t$(this).removeClass('full-length');\n\t\t\t\t\t\t\t$('.carrier-profile').removeClass('full-length');\n\t\t\t\t\t\t\tobserverService\n\t\t\t\t\t\t\t\t.sendMessageToSubject(scope,\n\t\t\t\t\t\t\t\t\tsubjectMessages.COB_SUBJECT_CARRIER_SCROLL,\n\t\t\t\t\t\t\t\t\tscope.makeNavSticky);\n\t\t\t\t\t\t\tYlocation = currentLocation;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tscope.$apply();\n\t\t\t\t\t});\n\t\t}\n\n\t\tfunction setCarrierNavState() {\n\t\t\tvar navState = {companyInfoComplete: scope.m.companyInfoComplete,\n\t\t\t\tcontactsComplete: scope.m.contactsComplete,\n\t\t\t\tdocumentsComplete: scope.m.documentsComplete,\n\t\t\t\tequipmentInfoComplete: scope.m.equipmentInfoComplete,\n\t\t\t\tinsuranceInfoComplete: scope.m.insuranceInfoComplete,\n\t\t\t\tlaneInfoComplete: scope.m.laneInfoComplete,\n\t\t\t\ttaxInfoComplete: scope.m.taxInfoComplete\n\t\t\t};\n\t\t\tsessionService.setCarrierNavState(navState);\n\t\t}\n\n\t\tfunction getCarrierImpersonated() {\n\t\t\tif (scope.carrierId) {\n\t\t\t\tif (scope.m.isAdmin && !scope.brokerId) {\n\t\t\t\t\tvar carrier = sessionService.getCarrierImpersonated();\n\t\t\t\t\tscope.m.dotNumber = carrier.dotNumber;\n\t\t\t\t\tscope.m.intrastateNumber = carrier.intrastateNumber;\n\t\t\t\t\tscope.m.carrierName = carrier.carrierName;\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tcarrierService.getCarrierDetails(scope.carrierId, scope.brokerId)\n\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\tscope.m.carrierId = response.data.carrierDetails.carrierId;\n\t\t\t\t\t\tscope.m.businessUnitId = response.data.carrierDetails.businessUnitId;\n\t\t\t\t\t\tif (response.data.carrierDetails.dbaName) {\n\t\t\t\t\t\t\tscope.m.carrierName = response.data.carrierDetails.dbaName;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tscope.m.carrierName = response.data.carrierDetails.legalName;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tscope.m.dotNumber = response.data.carrierDetails.dot;\n\t\t\t\t\t\tscope.m.intrastateNumber = response.data.carrierDetails.intrastateCode;\n\t\t\t\t\t\tscope.m.carrierNotes = response.data.carrierDetails.notes;\n\t\t\t\t\t\tscope.m.carrierStatus = response.data.carrierDetails.status;\n\n\t\t\t\t\t\tif (scope.m.isBroker) {\n\t\t\t\t\t\t\tcarrierRegistrationService.lookupUrlsByCategory(scope.m.businessUnitId)\n\t\t\t\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\t\t\t\tscope.m.carrierWatchUrl = response.data.url;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tif (scope.m.isCarrier) {\n\t\t\t\t\tcarrierSettingsService.lookupCarrierProfileModal(scope.carrierId).then(function (response) {\n\t\t\t\t\t\tif (response.data.dbaName) {\n\t\t\t\t\t\t\tscope.m.carrierCompanyName = response.data.dbaName;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tscope.m.carrierCompanyName = response.data.legalName;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n})();\n","'use strict';\n\n(function() {\n\tvar app = angular.module('onboarding.carrier');\n\tapp.directive('cobCarrierProfileTaxes', cobCarrierProfileTaxes);\n\tapp.constant('SSN_PLACEHOLDER', 'SSN, such as ### - ## - ####');\n\tapp.constant('SIN_PLACEHOLDER', 'SIN, such as ### - ### - ###');\n\tapp.constant('EIN_PLACEHOLDER', 'EIN, such as ## - #######');\n\n\tcobCarrierProfileTaxes.$inject = [\n\t\t'sessionService', 'subjectObserverMessagesService', 'observerService', 'carrierRegistrationService', '$timeout',\n\t\t'$location', '$stateParams'\n\t];\n\n\tvar\n\t\tsessionService,\n\t\tsubjectObserverMessagesService,\n\t\tobserverService,\n\t\tcarrierRegistrationService,\n\t\t$timeout,\n\t\t$location,\n\t\t$stateParams;\n\tvar subjectMessages, observerMessages;\n\n\tfunction cobCarrierProfileTaxes(_sessionService_,\n\t\t_subjectObserverMessagesService_,\n\t\t_observerService_,\n\t\t_carrierRegistrationService_,\n\t\t_$timeout_,\n\t\t_$location_,\n\t\t_$stateParams_) {\n\t\tsessionService = _sessionService_;\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tcarrierRegistrationService = _carrierRegistrationService_;\n\t\t$timeout = _$timeout_;\n\t\t$location = _$location_;\n\t\t$stateParams = _$stateParams_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/carrier/profile/carrierProfileTaxes.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\n\t\t\tregisterObserverHandlers();\n\t\t\tdocument.title = 'Profile-Tax';\n\n\t\t\t$timeout(function() {\n\t\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_CARRIER_PROFILE_VIEW_LOAD);\n\t\t\t\tloadData();\n\t\t\t},\n\t\t\t100);\n\t\t}\n\n\t\tfunction loadData() {\n\t\t\tcarrierRegistrationService.getCarrierTaxInfo($stateParams.carrierId)\n\t\t\t\t.then(function(response) {\n\t\t\t\t\tif (response.data.w8TaxInfo) {\n\t\t\t\t\t\tvar w8Data = {};\n\n\t\t\t\t\t\tw8Data.name = response.data.w8TaxInfo.name;\n\n\t\t\t\t\t\tif (response.data.w8TaxInfo.beneficialOwnerType) {\n\t\t\t\t\t\t\tw8Data.beneficialOwnerType = response.data.w8TaxInfo.beneficialOwnerType;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tw8Data.beneficialOwnerType = '--';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (response.data.w8TaxInfo.federalTaxIdType === 'EIN') {\n\t\t\t\t\t\t\tw8Data.ein = response.data.w8TaxInfo.tin;\n\t\t\t\t\t\t} else if (response.data.w8TaxInfo.federalTaxIdType === 'SSN') {\n\t\t\t\t\t\t\tw8Data.ssn = response.data.w8TaxInfo.tin;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (response.data.w8TaxInfo.foreignTaxIdType === 'SIN') {\n\t\t\t\t\t\t\tw8Data.sin = response.data.w8TaxInfo.foreignTaxId;\n\t\t\t\t\t\t} else if (response.data.w8TaxInfo.foreignTaxIdType === 'BN') {\n\t\t\t\t\t\t\tw8Data.bn = response.data.w8TaxInfo.foreignTaxId;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tw8Data.formYear = response.data.w8TaxInfo.formYear;\n\t\t\t\t\t\tw8Data.incorporationCountry = response.data.w8TaxInfo.incorporationCountry;\n\n\t\t\t\t\t\tw8Data.streetAddress = response.data.w8TaxInfo.streetAddress;\n\t\t\t\t\t\tw8Data.city = response.data.w8TaxInfo.city;\n\t\t\t\t\t\tw8Data.state = response.data.w8TaxInfo.state;\n\t\t\t\t\t\tw8Data.postalCode = response.data.w8TaxInfo.postalCode;\n\t\t\t\t\t\tw8Data.country = response.data.w8TaxInfo.country;\n\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tresponse.data.w8TaxInfo.mailingStreet === w8Data.streetAddress &&\n response.data.w8TaxInfo.mailingCity === w8Data.city &&\n response.data.w8TaxInfo.mailingCountry === w8Data.country &&\n response.data.w8TaxInfo.mailingPostalCode === w8Data.postalCode &&\n response.data.w8TaxInfo.mailingState === w8Data.state) {\n\t\t\t\t\t\t\tw8Data.mailingSameAsPermanent = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tw8Data.mailingSameAsPermanent = false;\n\t\t\t\t\t\t\tw8Data.mailingCity = response.data.w8TaxInfo.mailingCity;\n\t\t\t\t\t\t\tw8Data.mailingCountry = response.data.w8TaxInfo.mailingCountry;\n\t\t\t\t\t\t\tw8Data.mailingPostalCode = response.data.w8TaxInfo.mailingPostalCode;\n\t\t\t\t\t\t\tw8Data.mailingState = response.data.w8TaxInfo.mailingState;\n\t\t\t\t\t\t\tw8Data.mailingStreet = response.data.w8TaxInfo.mailingStreet;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!w8Data.mailingStreet && !w8Data.mailingCity && !w8Data.mailingPostalCode) {\n\t\t\t\t\t\t\tw8Data.mailingSameAsPermanent = true;\n\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\tobserverService\n\t\t\t\t\t\t\t.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_CARRIER_PROFILE_W8_LOADED, w8Data);\n\t\t\t\t\t} else if (response.data.w9TaxInfo) {\n\t\t\t\t\t\tvar w9Data = {};\n\t\t\t\t\t\tw9Data.taxStatus = response.data.w9TaxInfo.taxStatus;\n\t\t\t\t\t\tw9Data.exemptionType = 0;\n\t\t\t\t\t\tw9Data.name = response.data.w9TaxInfo.name;\n\t\t\t\t\t\tw9Data.businessName = response.data.w9TaxInfo.businessName;\n\t\t\t\t\t\tw9Data.streetAddress = response.data.w9TaxInfo.streetAddress;\n\t\t\t\t\t\tw9Data.cityAddress = response.data.w9TaxInfo.city;\n\t\t\t\t\t\tw9Data.postalCodeAddress = response.data.w9TaxInfo.postalCode;\n\n\t\t\t\t\t\tif (response.data.w9TaxInfo.state) {\n\t\t\t\t\t\t\tw9Data.stateAddress = response.data.w9TaxInfo.state;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tw9Data.stateAddress = '--';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (response.data.w9TaxInfo.taxClassification) {\n\t\t\t\t\t\t\tw9Data.federalType = response.data.w9TaxInfo.taxClassification;\n\n\t\t\t\t\t\t\tif (w9Data.federalType === 'Other') {\n\t\t\t\t\t\t\t\tw9Data.federalTypeOther = response.data.w9TaxInfo.otherText;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tw9Data.federalType = '--';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (response.data.w9TaxInfo.exemptPayeeCode) {\n\t\t\t\t\t\t\tw9Data.exemptionType = parseInt(response.data.w9TaxInfo.exemptPayeeCode);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tw9Data.exemptionType = '0';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (response.data.w9TaxInfo.fatcaReportingCode) {\n\t\t\t\t\t\t\tw9Data.reportCode = response.data.w9TaxInfo.fatcaReportingCode;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tw9Data.reportCode = '--';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (response.data.w9TaxInfo.federalTaxIdType === 'EIN') {\n\t\t\t\t\t\t\tw9Data.eid = response.data.w9TaxInfo.tin;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (response.data.w9TaxInfo.federalTaxIdType === 'SSN') {\n\t\t\t\t\t\t\tw9Data.ssn = response.data.w9TaxInfo.tin;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tobserverService\n\t\t\t\t\t\t\t.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_CARRIER_PROFILE_W9_LOADED, w9Data);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch(function(e) {\n\t\t\t\t\tconsole.log(e);\n\t\t\t\t});\n\t\t}\n\n\t\tfunction registerObserverHandlers() {\n\n\t\t\tobserverService.registerHandlers(scope,\n\t\t\t\t[\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_CARRIER_PROFILE_TAX_RELOAD, handler: loadData }\n\t\t\t\t]);\n\t\t}\n\t}\n\n})();\n","'use strict';\n\n(function() {\n\tangular.module('onboarding.carrier')\n\t\t.directive('cobCarrierProfileTaxesW8', cobCarrierProfileTaxesW8);\n\n\tcobCarrierProfileTaxesW8.$inject = [\n\t\t'sessionService', 'subjectObserverMessagesService', 'observerService',\n\t\t'carrierRegistrationService', '$timeout', '$location', 'validationService',\n\t\t'$stateParams', 'SSN_PLACEHOLDER', 'SIN_PLACEHOLDER', 'EIN_PLACEHOLDER'\n\t];\n\n\tvar sessionService,\n\t\tsubjectObserverMessagesService,\n\t\tobserverService,\n\t\tcarrierRegistrationService,\n\t\t$timeout,\n\t\t$location,\n\t\tvalidationService,\n\t\t$stateParams,\n\t\tssnPlaceholder,\n\t\tsinPlaceholder,\n\t\teinPlaceholder;\n\tvar subjectMessages, observerMessages;\n\n\tfunction cobCarrierProfileTaxesW8(_sessionService_,\n\t\t_subjectObserverMessagesService_,\n\t\t_observerService_,\n\t\t_carrierRegistrationService_,\n\t\t_$timeout_,\n\t\t_$location_,\n\t\t_validationService_,\n\t\t_$stateParams_,\n\t\tSSN_PLACEHOLDER,\n\t\tSIN_PLACEHOLDER,\n\t\tEIN_PLACEHOLDER) {\n\t\tsessionService = _sessionService_;\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tcarrierRegistrationService = _carrierRegistrationService_;\n\t\t$timeout = _$timeout_;\n\t\t$location = _$location_;\n\t\tvalidationService = _validationService_;\n\t\t$stateParams = _$stateParams_;\n\t\tssnPlaceholder = SSN_PLACEHOLDER;\n\t\tsinPlaceholder = SIN_PLACEHOLDER;\n\t\teinPlaceholder = EIN_PLACEHOLDER;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/carrier/profile/carrierProfileTaxesW8.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\n\t\t\tscope.ssnPlaceholder = ssnPlaceholder;\n\t\t\tscope.sinPlaceholder = sinPlaceholder;\n\t\t\tscope.einPlaceholder = einPlaceholder;\n \n\t\t\tscope.carrierId = $stateParams.carrierId;\n\t\t\tscope.m = {\n\t\t\t\tisBroker: sessionService.isBroker(),\n\t\t\t\tisAdmin: sessionService.isAuthorizedInternalAdmin(),\n\t\t\t\tloaded: false\n\t\t\t};\n\n\t\t\tscope.beneficialOwnerTypes = [\n\t\t\t\t{ key: '--', value: 'Select' },\n\t\t\t\t{ key: 'GrantorTrust', value: 'Grantor Trust' },\n\t\t\t\t{ key: 'Centralbankofissue', value: 'Central bank of issue' },\n\t\t\t\t{ key: 'Individual', value: 'Individual' },\n\t\t\t\t{ key: 'Complextrust', value: 'Complex trust' },\n\t\t\t\t{ key: 'Taxexemptorganization', value: 'Tax-exempt organization' },\n\t\t\t\t{ key: 'Corporation', value: 'Corporation' },\n\t\t\t\t{ key: 'Estate', value: 'Estate' },\n\t\t\t\t{ key: 'Privatefoundation', value: 'Private Foundation' },\n\t\t\t\t{ key: 'Disregarded', value: 'Disregarded' },\n\t\t\t\t{ key: 'Government', value: 'Government' },\n\t\t\t\t{ key: 'Partnership', value: 'Partnership' },\n\t\t\t\t{ key: 'Internationalorganization', value: 'International organization' },\n\t\t\t\t{ key: 'Simpletrust', value: 'Simple Trust' }\n\t\t\t];\n\t\t\tscope.stateList = [\n\t\t\t\t{ key: 'AB', value: 'AB', country: 'Canada' },\n\t\t\t\t{ key: 'BC', value: 'BC', country: 'Canada' },\n\t\t\t\t{ key: 'MB', value: 'MB', country: 'Canada' },\n\t\t\t\t{ key: 'NB', value: 'NB', country: 'Canada' },\n\t\t\t\t{ key: 'NF', value: 'NF', country: 'Canada' },\n\t\t\t\t{ key: 'NT', value: 'NT', country: 'Canada' },\n\t\t\t\t{ key: 'NS', value: 'NS', country: 'Canada' },\n\t\t\t\t{ key: 'NU', value: 'NU', country: 'Canada' },\n\t\t\t\t{ key: 'ON', value: 'ON', country: 'Canada' },\n\t\t\t\t{ key: 'PE', value: 'PE', country: 'Canada' },\n\t\t\t\t{ key: 'PQ', value: 'PQ', country: 'Canada' },\n\t\t\t\t{ key: 'SK', value: 'SK', country: 'Canada' },\n\t\t\t\t{ key: 'YT', value: 'YT', country: 'Canada' }\n\t\t\t];\n\n\t\t\tscope.setIsDirty = setIsDirty;\n\t\t\tscope.textFieldKeyDown = textFieldKeyDown;\n\t\t\tscope.validateName = validateName;\n\t\t\tscope.validateBeneficialOwner = validateBeneficialOwner;\n\n\t\t\tscope.validateStreetAddress = validateStreetAddress;\n\t\t\tscope.validateCityAddress = validateCityAddress;\n\t\t\tscope.validateStateAddress = validateStateAddress;\n\t\t\tscope.validatePostalCodeAddress = validatePostalCodeAddress;\n\n\t\t\tscope.validateMailingStreet = validateMailingStreet;\n\t\t\tscope.validateMailingCity = validateMailingCity;\n\t\t\tscope.validateMailingState = validateMailingState;\n\t\t\tscope.validateMailingPostalCode = validateMailingPostalCode;\n\n\t\t\tscope.validateSsn = validateSsn;\n\t\t\tscope.validateEin = validateEin;\n\t\t\tscope.validateBn = validateBn;\n\t\t\tscope.validateSin = validateSin;\n\n\t\t\tscope.mailingSameAsPermanentChange = mailingSameAsPermanentChange;\n\t\t\tscope.mailingStateChange = mailingStateChange;\n\t\t\tscope.goToTab = goToTab;\n\t\t\tscope.onForceGo = onForceGo;\n\n\t\t\tregisterObserverHandlers();\n\t\t}\n\n\t\tfunction registerObserverHandlers() {\n\n\t\t\tobserverService.registerHandlers(scope,\n\t\t\t\t[\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_START_CHANGE_CARRIER_PROFILE_VIEW, handler: saveData },\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_CARRIER_PROFILE_W8_LOADED, handler: loadData },\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_SET_PENDING_TAB, handler: setPendingTab }\n\t\t\t\t]);\n\n\t\t\tscope.$on('$destroy',\n\t\t\t\tfunction() {\n\t\t\t\t\twindow.onbeforeunload = undefined;\n\t\t\t\t});\n\n\t\t\tscope.$on('$locationChangeStart',\n\t\t\t\tfunction(event, next, current) {\n\t\t\t\t\tif (scope.m.isDirty) {\n\t\t\t\t\t\tif (!scope.ux_requirement_hack_for_scrolling) {\n\t\t\t\t\t\t\tif (!\n\t\t\t\t\t\t\tconfirm('You have unsaved data. If you leave this page any changes will be lost. Changes are saved using the Save buttons at the bottom of the page. Are you sure you want to leave the page?')) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tscope.ux_requirement_hack_for_scrolling = false;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction setIsDirty() {\n\t\t\tscope.m.isDirty = true;\n\t\t\twindow.onbeforeunload = function() {\n\t\t\t\treturn 'You have unsaved data. If you leave this page any changes will be lost. Changes are saved using the Save buttons at the bottom of the page.';\n\t\t\t};\n\t\t}\n\n\t\tfunction loadData(data) {\n\t\t\tscope.m.loaded = true;\n\n\t\t\tscope.m.beneficialOwnerType = data.beneficialOwnerType;\n\t\t\tscope.m.cityAddress = data.city;\n\t\t\tscope.m.countryAddress = 'Canada';\n\t\t\tscope.m.ein = data.ein;\n\t\t\tscope.m.ssn = data.ssn;\n\t\t\tscope.m.sin = data.sin;\n\t\t\tscope.m.bn = data.bn;\n\t\t\tscope.m.formYear = data.formYear;\n\t\t\tscope.m.incorporationCountry = 'Canada';\n\t\t\tscope.m.mailingSameAsPermanent = data.mailingSameAsPermanent;\n\t\t\tscope.m.mailingCity = data.mailingCity;\n\t\t\tif (data.mailingState)\n\t\t\t\tscope.m.mailingCountry = 'Canada';\n\n\t\t\tscope.m.mailingPostalCode = data.mailingPostalCode;\n\t\t\tscope.m.mailingState = data.mailingState;\n\t\t\tscope.m.mailingStreet = data.mailingStreet;\n\t\t\tscope.m.name = data.name;\n\t\t\tscope.m.postalCodeAddress = data.postalCode;\n\t\t\tscope.m.stateAddress = data.state;\n\t\t\tscope.m.streetAddress = data.streetAddress;\n\n\t\t\tvar navState = sessionService.getCarrierNavState();\n\t\t\tif (!scope.m.ein && !scope.m.ssn && !scope.m.sin && !scope.m.bn) {\n\t\t\t\tif (navState && navState.taxInfoComplete) {\n\t\t\t\t\tscope.m.ein = '*********';\n\t\t\t\t\tscope.m.ssn = '*********';\n\t\t\t\t\tscope.m.sin = '*********';\n\t\t\t\t\tscope.m.bn = '*********';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction saveData(callback) {\n\t\t\tif (!scope.m.loaded)\n\t\t\t\treturn;\n\t\t\tif (scope.m.isDirty) {\n\t\t\t\tif (formIsValid()) {\n\n\t\t\t\t\tvar mailingAddress, mailingCity, mailingState, mailingPostalCode, mailingCountry;\n\t\t\t\t\tif (scope.m.mailingSameAsPermanent) {\n\t\t\t\t\t\tmailingAddress = scope.m.streetAddress;\n\t\t\t\t\t\tmailingCity = scope.m.cityAddress;\n\t\t\t\t\t\tmailingState = scope.m.stateAddress;\n\t\t\t\t\t\tmailingPostalCode = scope.m.postalCodeAddress;\n\t\t\t\t\t\tmailingCountry = scope.m.countryAddress;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmailingAddress = scope.m.mailingStreet;\n\t\t\t\t\t\tmailingCity = scope.m.mailingCity;\n\t\t\t\t\t\tmailingState = scope.m.mailingState;\n\t\t\t\t\t\tmailingPostalCode = scope.m.mailingPostalCode;\n\t\t\t\t\t\tmailingCountry = scope.m.mailingCountry;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar tin, federalTaxType;\n\t\t\t\t\tif (scope.m.ein) {\n\t\t\t\t\t\ttin = scope.m.ein;\n\t\t\t\t\t\tfederalTaxType = 'EIN';\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttin = scope.m.ssn;\n\t\t\t\t\t\tfederalTaxType = 'SSN';\n\t\t\t\t\t}\n\n\t\t\t\t\tvar foreignTaxId, foreignTaxIdType;\n\t\t\t\t\tif (scope.m.bn) {\n\t\t\t\t\t\tforeignTaxId = scope.m.bn;\n\t\t\t\t\t\tforeignTaxIdType = 'BN';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tforeignTaxId = scope.m.sin;\n\t\t\t\t\t\tforeignTaxIdType = 'SIN';\n\t\t\t\t\t}\n\n\t\t\t\t\tcarrierRegistrationService.updateW8TaxInformation(scope.m.name,\n\t\t\t\t\t\tscope.m.beneficialOwnerType,\n\t\t\t\t\t\tscope.m.streetAddress,\n\t\t\t\t\t\tscope.m.cityAddress,\n\t\t\t\t\t\tscope.m.stateAddress,\n\t\t\t\t\t\tscope.m.postalCodeAddress,\n\t\t\t\t\t\tscope.m.countryAddress,\n\t\t\t\t\t\tmailingAddress,\n\t\t\t\t\t\tmailingCity,\n\t\t\t\t\t\tmailingState,\n\t\t\t\t\t\tmailingPostalCode,\n\t\t\t\t\t\tmailingCountry,\n\t\t\t\t\t\ttin,\n\t\t\t\t\t\tfederalTaxType,\n\t\t\t\t\t\tforeignTaxId,\n\t\t\t\t\t\tforeignTaxIdType,\n\t\t\t\t\t\tscope.carrierId)\n\t\t\t\t\t\t.then(function() {\n\t\t\t\t\t\t\tobserverService\n\t\t\t\t\t\t\t\t.sendMessageToSubject(scope,\n\t\t\t\t\t\t\t\t\tsubjectMessages.COB_SUBJECT_CARRIER_PROFILE_VIEW_STATUS,\n\t\t\t\t\t\t\t\t\t'taxes');\n\t\t\t\t\t\t\tif (typeof (callback) === 'function')\n\t\t\t\t\t\t\t\tcallback();\n\t\t\t\t\t\t});\n\n\t\t\t\t} else {\n\t\t\t\t\t// invalid form\n\t\t\t\t\tsetSectionMessage(true);\n\t\t\t\t\tscope.pendingCallback = callback;\n\n\t\t\t\t\t$timeout(function() {\n\t\t\t\t\t\tscope.ux_requirement_hack_for_scrolling = true;\n\t\t\t\t\t\t$('.profile-tax')\n\t\t\t\t\t\t\t.animate({\n\t\t\t\t\t\t\t\tscrollTop: $('#error-summary').offset().top\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t200);\n\t\t\t\t\t\tsetIsDirty();\n\t\t\t\t\t},\n\t\t\t\t\t1);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsetSectionMessage(false);\n\t\t\t\tif (typeof (callback) === 'function')\n\t\t\t\t\tcallback();\n\t\t\t}\n\t\t}\n\n\t\tfunction textFieldKeyDown(event) {\n\t\t\tvar charCode = (event.which) ? event.which : event.keyCode;\n\t\t\tvar isShift = !!event.shiftKey;\n\n\t\t\tif (isShift) {\n\t\t\t\tswitch (charCode) {\n\t\t\t\tcase 220: // | character\n\t\t\t\tcase 222: // \"\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction formIsValid() {\n\t\t\tvalidateName();\n\t\t\tvalidateBeneficialOwner();\n\t\t\tvalidateStreetAddress();\n\t\t\tvalidateCityAddress();\n\t\t\tvalidateStateAddress();\n\t\t\tvalidatePostalCodeAddress();\n\t\t\tvalidateMailingStreet();\n\t\t\tvalidateMailingCity();\n\t\t\tvalidateMailingState();\n\t\t\tvalidateMailingPostalCode();\n\t\t\tvalidateSsn();\n\t\t\tvalidateEin();\n\t\t\tvalidateBn();\n\t\t\tvalidateSin();\n\n\t\t\tif (scope.m.nameError ||\n scope.m.beneficialOwnerError ||\n scope.m.streetAddressError ||\n scope.m.cityAddressError ||\n scope.m.stateAddressError ||\n scope.m.postalCodeAddressError ||\n scope.m.mailingStreetError ||\n scope.m.mailingCityError ||\n scope.m.mailingStateError ||\n scope.m.mailingPostalCodeError ||\n scope.m.ssnError ||\n scope.m.einError ||\n scope.m.bnError ||\n scope.m.sinError ||\n scope.m.foreignTaxIdError ||\n scope.m.taxpayerIdError) {\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\tfunction validateName() {\n\t\t\tif (scope.m.name === null || scope.m.name === '') {\n\t\t\t\tscope.m.nameError = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tscope.m.nameError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateBeneficialOwner() {\n\t\t\tif (scope.m.beneficialOwnerType && scope.m.beneficialOwnerType !== '--') {\n\t\t\t\tscope.m.beneficialOwnerError = '';\n\t\t\t} else {\n\t\t\t\tscope.m.beneficialOwnerError = 'Please select an option';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateStreetAddress() {\n\t\t\tif (!scope.m.streetAddress) {\n\t\t\t\tscope.m.streetAddressError = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tscope.m.streetAddressError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateCityAddress() {\n\t\t\tif (scope.m.cityAddress === null || scope.m.cityAddress === '') {\n\t\t\t\tscope.m.cityAddressError = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tscope.m.cityAddressError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateStateAddress() {\n\t\t\tif (scope.m.stateAddress === '--') {\n\t\t\t\tscope.m.stateAddressError = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tscope.m.stateAddressError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validatePostalCodeAddress() {\n\t\t\tif (!validationService.isValidCanadianPostalCode(scope.m.postalCodeAddress)) {\n\t\t\t\tscope.m.postalCodeAddressError = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tscope.m.postalCodeAddressError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateMailingStreet() {\n\t\t\tif (!scope.m.mailingStreet && !scope.m.mailingSameAsPermanent) {\n\t\t\t\tscope.m.mailingStreetError = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tscope.m.mailingStreetError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateMailingCity() {\n\t\t\tif (!scope.m.mailingCity && !scope.m.mailingSameAsPermanent) {\n\t\t\t\tscope.m.mailingCityError = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tscope.m.mailingCityError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateMailingState() {\n\t\t\tif (!scope.m.mailingState && !scope.m.mailingSameAsPermanent) {\n\t\t\t\tscope.m.mailingStateError = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tscope.m.mailingStateError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateMailingPostalCode() {\n\t\t\tvar isValidZip = /^[ABCEGHJKLMNPRSTVXY][0-9][ABCEGHJKLMNPRSTVWXYZ] ?[0-9][ABCEGHJKLMNPRSTVWXYZ][0-9]$/i\n\t\t\t\t.test(scope.m.mailingPostalCode);\n\n\t\t\tif (!isValidZip && !scope.m.mailingSameAsPermanent) {\n\t\t\t\tscope.m.mailingPostalCodeError = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tscope.m.mailingPostalCodeError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateSsn() {\n\t\t\tif (scope.m.ssn && scope.m.ssn.toString().length !== 9) {\n\t\t\t\tscope.m.ssnError = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tscope.m.ssnError = '';\n\t\t\t}\n\n\t\t\tvalidateTaxpayerId();\n\t\t}\n\n\t\tfunction validateEin() {\n\t\t\tif (scope.m.ein && scope.m.ein.toString().length !== 9) {\n\t\t\t\tscope.m.einError = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tscope.m.einError = '';\n\t\t\t}\n\n\t\t\tvalidateTaxpayerId();\n\t\t}\n\n\t\tfunction validateTaxpayerId() {\n\n\t\t\tif (scope.m.ein && scope.m.ssn) {\n\t\t\t\tscope.m.taxpayerIdError = 'Only one TIN allowed';\n\t\t\t} else {\n\t\t\t\tscope.m.taxpayerIdError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateBn() {\n\t\t\tscope.m.bnError = '';\n\t\t\tvalidateForeignTaxId();\n\t\t}\n\n\t\tfunction validateSin() {\n\t\t\tif (scope.m.sin && scope.m.sin.toString().length !== 9) {\n\t\t\t\tscope.m.sinError = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tscope.m.sinError = '';\n\t\t\t}\n \n\t\t\tvalidateForeignTaxId();\n\t\t}\n\n\t\tfunction validateForeignTaxId() {\n\t\t\tif (scope.m.bn && scope.m.sin)\n\t\t\t\tscope.m.foreignTaxIdError = 'Only one Foreign Tax ID allowed';\n\t\t\telse if (!scope.m.bn && !scope.m.sin)\n\t\t\t\tscope.m.foreignTaxIdError = 'Valid input is required';\n\t\t\telse\n\t\t\t\tscope.m.foreignTaxIdError = '';\n\t\t}\n\n\t\tfunction mailingSameAsPermanentChange() {\n\t\t\tif (!scope.m.mailingSameAsPermanent) {\n\n\t\t\t\tscope.m.mailingCity = '';\n\t\t\t\tscope.m.mailingCountry = '';\n\t\t\t\tscope.m.mailingPostalCode = '';\n\t\t\t\tscope.m.mailingState = '';\n\t\t\t\tscope.m.mailingStreet = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction mailingStateChange() {\n\t\t\tif (scope.m.mailingState)\n\t\t\t\tscope.m.mailingCountry = 'Canada';\n\t\t\telse\n\t\t\t\tscope.m.mailingCountry = '';\n\t\t}\n\n\t\tfunction goToTab(tab) {\n\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_SET_PENDING_TAB, tab);\n\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\tsubjectMessages.COB_SUBJECT_START_CHANGE_CARRIER_PROFILE_VIEW,\n\t\t\t\tnavigate);\n\t\t}\n\n\t\tfunction setPendingTab(tab) {\n\t\t\tscope.tab = tab;\n\t\t}\n\n\t\tfunction navigate() {\n\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\tsubjectMessages.COB_SUBJECT_FINISH_CHANGE_CARRIER_PROFILE_VIEW,\n\t\t\t\tscope.tab);\n\t\t}\n\n\t\tfunction onForceGo() {\n\t\t\tif (typeof (scope.pendingCallback) === 'function')\n\t\t\t\tscope.pendingCallback();\n\t\t}\n\n\t\tfunction setSectionMessage(show) {\n\t\t\tscope.m.showSectionMessage = show;\n\t\t\tif (show) {\n\t\t\t\t$timeout(function () {\n\t\t\t\t\t$('.carrier-profile-wrapper')\n\t\t\t\t\t\t.animate({\n\t\t\t\t\t\t\tscrollTop: $('#error-summary').offset().top\n\t\t\t\t\t\t},\n\t\t\t\t\t\t200);\n\t\t\t\t},\n\t\t\t\t10);\n\t\t\t}\n\t\t}\n\t}\n\n})();\n","'use strict';\n\n(function() {\n\tangular.module('onboarding.carrier')\n\t\t.directive('cobCarrierProfileTaxesW9', cobCarrierProfileTaxesW9);\n\n\tcobCarrierProfileTaxesW9.$inject = [\n\t\t'sessionService', 'subjectObserverMessagesService', 'observerService',\n\t\t'carrierRegistrationService', '$timeout', '$location', '$stateParams',\n\t\t'SSN_PLACEHOLDER', 'EIN_PLACEHOLDER'\n\t];\n\n\tvar sessionService,\n\t\tsubjectObserverMessagesService,\n\t\tobserverService,\n\t\tcarrierRegistrationService,\n\t\t$timeout,\n\t\t$location,\n\t\t$stateParams,\n\t\tssnPlaceholder,\n\t\teinPlaceholder;\n\tvar subjectMessages, observerMessages;\n\n\tfunction cobCarrierProfileTaxesW9(_sessionService_,\n\t\t_subjectObserverMessagesService_,\n\t\t_observerService_,\n\t\t_carrierRegistrationService_,\n\t\t_$timeout_,\n\t\t_$location_,\n\t\t_$stateParams_,\n\t\tSSN_PLACEHOLDER,\n\t\tEIN_PLACEHOLDER) {\n\t\tsessionService = _sessionService_;\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tcarrierRegistrationService = _carrierRegistrationService_;\n\t\t$timeout = _$timeout_;\n\t\t$location = _$location_;\n\t\t$stateParams = _$stateParams_;\n\t\tssnPlaceholder = SSN_PLACEHOLDER;\n\t\teinPlaceholder = EIN_PLACEHOLDER;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/carrier/profile/carrierProfileTaxesW9.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\n\t\t\tscope.ssnPlaceholder = ssnPlaceholder;\n\t\t\tscope.einPlaceholder = einPlaceholder;\n\n\t\t\tscope.carrierId = $stateParams.carrierId;\n\t\t\tscope.m = {\n\t\t\t\tisBroker: sessionService.isBroker(),\n\t\t\t\tisAdmin: sessionService.isAuthorizedInternalAdmin(),\n\t\t\t\tloaded: false,\n\t\t\t\tisDirty: false,\n\t\t\t\tshowSectionMessage: false,\n\t\t\t\texemptionType: 0\n\t\t\t};\n\n\t\t\tscope.federalTypes = [\n\t\t\t\t{ key: '--', value: 'Select' },\n\t\t\t\t{ key: 'Individualsoleproprietor', value: 'Individual/Sole Proprietor or Single-Member LLC' },\n\t\t\t\t{ key: 'CCorporation', value: 'C Corporation' },\n\t\t\t\t{ key: 'SCorporation', value: 'S Corporation' },\n\t\t\t\t{ key: 'Partnership', value: 'Partnership' },\n\t\t\t\t{ key: 'Trustestate', value: 'Trust/Estate' },\n\t\t\t\t{ key: 'LLC_CCorporation', value: 'LLC taxed as C Corp' },\n\t\t\t\t{ key: 'LLC_SCorporation', value: 'LLC taxed as S Corp' },\n\t\t\t\t{ key: 'LLC_Partnership', value: 'LLC taxed as Partnership' },\n\t\t\t\t{ key: 'Other', value: 'Other' }\n\t\t\t];\n\n\t\t\tscope.exemptionTypes = [\n\t\t\t\t{ key: 0, value: '--' },\n\t\t\t\t{ key: 1, value: '1' },\n\t\t\t\t{ key: 2, value: '2' },\n\t\t\t\t{ key: 3, value: '3' },\n\t\t\t\t{ key: 4, value: '4' },\n\t\t\t\t{ key: 5, value: '5' },\n\t\t\t\t{ key: 6, value: '6' },\n\t\t\t\t{ key: 7, value: '7' },\n\t\t\t\t{ key: 8, value: '8' },\n\t\t\t\t{ key: 9, value: '9' },\n\t\t\t\t{ key: 10, value: '10' },\n\t\t\t\t{ key: 11, value: '11' },\n\t\t\t\t{ key: 12, value: '12' },\n\t\t\t\t{ key: 13, value: '13' }\n\t\t\t];\n\n\t\t\tscope.reportCodes = {\n\t\t\t\t'--': '--',\n\t\t\t\t'A': 'A',\n\t\t\t\t'B': 'B',\n\t\t\t\t'C': 'C',\n\t\t\t\t'D': 'D',\n\t\t\t\t'E': 'E',\n\t\t\t\t'F': 'F',\n\t\t\t\t'G': 'G',\n\t\t\t\t'H': 'H',\n\t\t\t\t'I': 'I',\n\t\t\t\t'J': 'J',\n\t\t\t\t'K': 'K',\n\t\t\t\t'L': 'L',\n\t\t\t\t'M': 'M'\n\t\t\t};\n\n\t\t\tscope.stateList = [\n\t\t\t\t{ key: '--', value: '--', country: 'USA' },\n\t\t\t\t{ key: 'AL', value: 'AL', country: 'USA' },\n\t\t\t\t{ key: 'AK', value: 'AK', country: 'USA' },\n\t\t\t\t{ key: 'AS', value: 'AS', country: 'USA' },\n\t\t\t\t{ key: 'AZ', value: 'AZ', country: 'USA' },\n\t\t\t\t{ key: 'AR', value: 'AR', country: 'USA' },\n\t\t\t\t{ key: 'CA', value: 'CA', country: 'USA' },\n\t\t\t\t{ key: 'CO', value: 'CO', country: 'USA' },\n\t\t\t\t{ key: 'CT', value: 'CT', country: 'USA' },\n\t\t\t\t{ key: 'DE', value: 'DE', country: 'USA' },\n\t\t\t\t{ key: 'DC', value: 'DC', country: 'USA' },\n\t\t\t\t{ key: 'FL', value: 'FL', country: 'USA' },\n\t\t\t\t{ key: 'GA', value: 'GA', country: 'USA' },\n\t\t\t\t{ key: 'GU', value: 'GU', country: 'USA' },\n\t\t\t\t{ key: 'HI', value: 'HI', country: 'USA' },\n\t\t\t\t{ key: 'ID', value: 'ID', country: 'USA' },\n\t\t\t\t{ key: 'IL', value: 'IL', country: 'USA' },\n\t\t\t\t{ key: 'IN', value: 'IN', country: 'USA' },\n\t\t\t\t{ key: 'IA', value: 'IA', country: 'USA' },\n\t\t\t\t{ key: 'KS', value: 'KS', country: 'USA' },\n\t\t\t\t{ key: 'KY', value: 'KY', country: 'USA' },\n\t\t\t\t{ key: 'LA', value: 'LA', country: 'USA' },\n\t\t\t\t{ key: 'ME', value: 'ME', country: 'USA' },\n\t\t\t\t{ key: 'MD', value: 'MD', country: 'USA' },\n\t\t\t\t{ key: 'MA', value: 'MA', country: 'USA' },\n\t\t\t\t{ key: 'MI', value: 'MI', country: 'USA' },\n\t\t\t\t{ key: 'MN', value: 'MN', country: 'USA' },\n\t\t\t\t{ key: 'MS', value: 'MS', country: 'USA' },\n\t\t\t\t{ key: 'MO', value: 'MO', country: 'USA' },\n\t\t\t\t{ key: 'MT', value: 'MT', country: 'USA' },\n\t\t\t\t{ key: 'NE', value: 'NE', country: 'USA' },\n\t\t\t\t{ key: 'NV', value: 'NV', country: 'USA' },\n\t\t\t\t{ key: 'NH', value: 'NH', country: 'USA' },\n\t\t\t\t{ key: 'NJ', value: 'NJ', country: 'USA' },\n\t\t\t\t{ key: 'NM', value: 'NM', country: 'USA' },\n\t\t\t\t{ key: 'NY', value: 'NY', country: 'USA' },\n\t\t\t\t{ key: 'NC', value: 'NC', country: 'USA' },\n\t\t\t\t{ key: 'ND', value: 'ND', country: 'USA' },\n\t\t\t\t{ key: 'OH', value: 'OH', country: 'USA' },\n\t\t\t\t{ key: 'OK', value: 'OK', country: 'USA' },\n\t\t\t\t{ key: 'OR', value: 'OR', country: 'USA' },\n\t\t\t\t{ key: 'PA', value: 'PA', country: 'USA' },\n\t\t\t\t{ key: 'PR', value: 'PR', country: 'USA' },\n\t\t\t\t{ key: 'RI', value: 'RI', country: 'USA' },\n\t\t\t\t{ key: 'SC', value: 'SC', country: 'USA' },\n\t\t\t\t{ key: 'SD', value: 'SD', country: 'USA' },\n\t\t\t\t{ key: 'TN', value: 'TN', country: 'USA' },\n\t\t\t\t{ key: 'TX', value: 'TX', country: 'USA' },\n\t\t\t\t{ key: 'UT', value: 'UT', country: 'USA' },\n\t\t\t\t{ key: 'VT', value: 'VT', country: 'USA' },\n\t\t\t\t{ key: 'VA', value: 'VA', country: 'USA' },\n\t\t\t\t{ key: 'VI', value: 'VI', country: 'USA' },\n\t\t\t\t{ key: 'WA', value: 'WA', country: 'USA' },\n\t\t\t\t{ key: 'WV', value: 'WV', country: 'USA' },\n\t\t\t\t{ key: 'WI', value: 'WI', country: 'USA' },\n\t\t\t\t{ key: 'WY', value: 'WY', country: 'USA' }\n\t\t\t];\n\n\t\t\tscope.validateName = validateName;\n\t\t\tscope.validateTaxClassification = validateTaxClassification;\n\t\t\tscope.validateStreetAddress = validateStreetAddress;\n\t\t\tscope.validateCityAddress = validateCityAddress;\n\t\t\tscope.validateStateAddress = validateStateAddress;\n\t\t\tscope.validatePostalCodeAddress = validatePostalCodeAddress;\n\t\t\tscope.validateFederalTypeOther = validateFederalTypeOther;\n\t\t\tscope.textFieldKeyDown = textFieldKeyDown;\n\t\t\tscope.validateTin = validateTin;\n\t\t\tscope.goToTab = goToTab;\n\t\t\tscope.onForceGo = onForceGo;\n\t\t\tscope.setIsDirty = setIsDirty;\n\t\t\tscope.parseInt = parseInt;\n\n\t\t\tregisterObserverHandlers();\n\t\t}\n\n\t\tfunction loadData(data) {\n\n\t\t\tscope.m.loaded = true;\n\t\t\tscope.m.name = data.name;\n\t\t\tscope.m.businessName = data.businessName;\n\t\t\tscope.m.streetAddress = data.streetAddress;\n\t\t\tscope.m.cityAddress = data.cityAddress;\n\t\t\tscope.m.postalCodeAddress = data.postalCodeAddress;\n\t\t\tscope.m.stateAddress = data.stateAddress;\n\t\t\tscope.m.federalType = data.federalType;\n\t\t\tscope.m.federalTypeOther = data.federalTypeOther;\n\t\t\tscope.m.reportCode = data.reportCode;\n\t\t\tscope.m.eid = data.eid;\n\t\t\tscope.m.ssn = data.ssn;\n \n\t\t\tvar navState = sessionService.getCarrierNavState();\n\t\t\tif (!scope.m.eid && !scope.m.ssn) {\n\t\t\t\tif (navState && navState.taxInfoComplete) {\n\t\t\t\t\tscope.m.eid = '*********';\n\t\t\t\t\tscope.m.ssn = '*********';\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!data.exemptionType) {\n\t\t\t\tscope.m.exemptionType = 0;\n\t\t\t} else {\n\t\t\t\tscope.m.exemptionType = data.exemptionType;\n\t\t\t}\n\n\t\t\tupdateTaxStatus(data.taxStatus);\n\t\t}\n\n\t\tfunction updateTaxStatus(taxStatus) {\n\t\t\tvar taxStatusDic = {\n\t\t\t\t'Valid': 'valid',\n\t\t\t\t'Pending': 'awaiting validation'\n\t\t\t};\n\n\t\t\tif(taxStatusDic[taxStatus]) {\n\t\t\t\tscope.m.taxStatusText = taxStatusDic[taxStatus];\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tscope.m.taxStatusText = 'invalid';\n\t\t}\n\n\t\tfunction registerObserverHandlers() {\n\n\t\t\tobserverService.registerHandlers(scope,\n\t\t\t\t[\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_START_CHANGE_CARRIER_PROFILE_VIEW, handler: saveData },\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_CARRIER_PROFILE_W9_LOADED, handler: loadData },\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_SET_PENDING_TAB, handler: setPendingTab }\n\t\t\t\t]);\n\n\t\t\tscope.$on('$destroy',\n\t\t\t\tfunction() {\n\t\t\t\t\twindow.onbeforeunload = undefined;\n\t\t\t\t});\n\n\t\t\tscope.$on('$locationChangeStart',\n\t\t\t\tfunction(event) {\n\t\t\t\t\tif (scope.m.isDirty) {\n\t\t\t\t\t\tif (!scope.ux_requirement_hack_for_scrolling) {\n\t\t\t\t\t\t\tif (!\n\t\t\t\t\t\t\tconfirm('You have unsaved data. If you leave this page any changes will be lost. Changes are saved using the Save buttons at the bottom of the page. Are you sure you want to leave the page?')) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tscope.ux_requirement_hack_for_scrolling = false;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction setIsDirty() {\n\t\t\tscope.m.isDirty = true;\n\t\t\twindow.onbeforeunload = function() {\n\t\t\t\treturn 'You have unsaved data. If you leave this page any changes will be lost. Changes are saved using the Save buttons at the bottom of the page.';\n\t\t\t};\n\t\t}\n\n\t\tfunction saveData(callback) {\n\t\t\tif (!scope.m.loaded)\n\t\t\t\treturn;\n\t\t\tif (scope.m.isDirty) {\n\t\t\t\tif (formIsValid()) {\n\t\t\t\t\tvar federalTaxType;\n\t\t\t\t\tvar tin;\n\t\t\t\t\tif (scope.m.ssn) {\n\t\t\t\t\t\tfederalTaxType = 'SSN';\n\t\t\t\t\t\ttin = scope.m.ssn;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfederalTaxType = 'EID';\n\t\t\t\t\t\ttin = scope.m.eid;\n\t\t\t\t\t}\n\n\t\t\t\t\tcarrierRegistrationService.updateW9TaxInformation(scope.m.name,\n\t\t\t\t\t\tscope.m.businessName,\n\t\t\t\t\t\tscope.m.federalType,\n\t\t\t\t\t\tscope.m.federalTypeOther,\n\t\t\t\t\t\tscope.m.exemptionType,\n\t\t\t\t\t\tscope.m.reportCode,\n\t\t\t\t\t\tscope.m.streetAddress,\n\t\t\t\t\t\tscope.m.cityAddress,\n\t\t\t\t\t\tscope.m.stateAddress,\n\t\t\t\t\t\tscope.m.postalCodeAddress,\n\t\t\t\t\t\ttin,\n\t\t\t\t\t\tfederalTaxType,\n\t\t\t\t\t\tscope.carrierId)\n\t\t\t\t\t\t.then(function() {\n\t\t\t\t\t\t\tobserverService\n\t\t\t\t\t\t\t\t.sendMessageToSubject(scope,\n\t\t\t\t\t\t\t\t\tsubjectMessages.COB_SUBJECT_CARRIER_PROFILE_VIEW_STATUS,\n\t\t\t\t\t\t\t\t\t'taxes');\n\t\t\t\t\t\t\tscope.m.isDirty = false;\n\t\t\t\t\t\t\twindow.onbeforeunload = undefined;\n\t\t\t\t\t\t\tif (typeof (callback) === 'function')\n\t\t\t\t\t\t\t\tcallback();\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tobserverService\n\t\t\t\t\t\t\t\t\t.sendMessageToSubject(scope,\n\t\t\t\t\t\t\t\t\t\tsubjectMessages\n\t\t\t\t\t\t\t\t\t\t\t.COB_SUBJECT_CARRIER_PROFILE_TAX_RELOAD);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(function(e) {\n\t\t\t\t\t\t\tconsole.log(e);\n\t\t\t\t\t\t});\n\n\t\t\t\t} else {\n\t\t\t\t\t// invalid form\n\t\t\t\t\tscope.m.showSectionMessage = true;\n\t\t\t\t\tscope.pendingCallback = callback;\n\n\t\t\t\t\t$timeout(function() {\n\t\t\t\t\t\tscope.ux_requirement_hack_for_scrolling = true;\n\t\t\t\t\t\t$('.profile-tax')\n\t\t\t\t\t\t\t.animate({\n\t\t\t\t\t\t\t\tscrollTop: $('#error-summary').offset().top\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t200);\n\t\t\t\t\t\tsetIsDirty();\n\t\t\t\t\t},\n\t\t\t\t\t1);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tscope.m.showSectionMessage = false;\n\t\t\t\tif (typeof (callback) === 'function')\n\t\t\t\t\tcallback();\n\t\t\t}\n\t\t}\n\n\t\tfunction validateName() {\n\t\t\tif (!scope.m.name) {\n\t\t\t\tscope.m.nameError = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tscope.m.nameError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateTaxClassification() {\n\t\t\tif (scope.m.federalType === '--') {\n\t\t\t\tvalidateFederalTypeOther();\n\t\t\t\tscope.m.federalTypeError = 'Please select an option';\n\t\t\t} else {\n\t\t\t\tif (scope.m.federalType !== 'Other') {\n\t\t\t\t\tvalidateFederalTypeOther();\n\t\t\t\t\tscope.m.federalTypeOther = '';\n\t\t\t\t}\n\t\t\t\tscope.m.federalTypeError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateStreetAddress() {\n\t\t\tif (!scope.m.streetAddress) {\n\t\t\t\tscope.m.streetAddressError = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tscope.m.streetAddressError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateCityAddress() {\n\t\t\tif (!scope.m.cityAddress) {\n\t\t\t\tscope.m.cityAddressError = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tscope.m.cityAddressError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateStateAddress() {\n\t\t\tif (scope.m.stateAddress === '--') {\n\t\t\t\tscope.m.stateAddressError = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tscope.m.stateAddressError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validatePostalCodeAddress() {\n\t\t\tvar isValidZip = /(^\\d{5}$)|(^\\d{5}-\\d{4}$)/.test(scope.m.postalCodeAddress);\n\n\t\t\tif (!isValidZip) {\n\t\t\t\tscope.m.postalCodeAddressError = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tscope.m.postalCodeAddressError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateSsn() {\n\t\t\tif (scope.m.ssn) {\n\t\t\t\tif (scope.m.ssn.toString().length !== 9) {\n\t\t\t\t\tscope.m.ssnError = 'Valid input is required';\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tscope.m.ssnError = '';\n\t\t}\n\n\t\tfunction validateEid() {\n\t\t\tif (scope.m.eid) {\n\t\t\t\tif (scope.m.eid.toString().length !== 9) {\n\t\t\t\t\tscope.m.eidError = 'Valid input is required';\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tscope.m.eidError = '';\n\t\t}\n\n\t\tfunction validateFederalTypeOther() {\n\t\t\tif (scope.m.federalType === 'Other' && !scope.m.federalTypeOther) {\n\t\t\t\tscope.m.federalTypeOtherError = 'Valid input is required';\n\t\t\t} else {\n\t\t\t\tscope.m.federalTypeOtherError = '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateTin() {\n\t\t\tif (scope.m.eid && scope.m.ssn) {\n\t\t\t\tscope.m.tinError = 'Only one TIN allowed';\n\t\t\t\tscope.m.eidError = '';\n\t\t\t\tscope.m.ssnError = '';\n\t\t\t} else if (!scope.m.eid && !scope.m.ssn) {\n\t\t\t\tscope.m.tinError = 'Valid input is required';\n\t\t\t\tscope.m.eidError = '';\n\t\t\t\tscope.m.ssnError = '';\n\t\t\t} else {\n\t\t\t\tscope.m.tinError = '';\n\t\t\t\tvalidateEid();\n\t\t\t\tvalidateSsn();\n\t\t\t}\n\t\t}\n\n\t\tfunction formIsValid() {\n\t\t\tvalidateName();\n\t\t\tvalidateTaxClassification();\n\t\t\tvalidateStreetAddress();\n\t\t\tvalidateStateAddress();\n\t\t\tvalidatePostalCodeAddress();\n\t\t\tvalidateTin();\n\t\t\tvalidateFederalTypeOther();\n\n\t\t\tif (!scope.m.nameError &&\n !scope.m.federalTypeError &&\n !scope.m.streetAddressError &&\n !scope.m.stateAddressError &&\n !scope.m.postalCodeAddressError &&\n !scope.m.ssnError &&\n !scope.m.eidError &&\n !scope.m.federalTypeOtherError &&\n !scope.m.tinError) {\n\n\t\t\t\tscope.m.showSectionMessage = false;\n\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tscope.m.showSectionMessage = true;\n\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction goToTab(tab) {\n\t\t\tobserverService.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_SET_PENDING_TAB, tab);\n\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\tsubjectMessages.COB_SUBJECT_START_CHANGE_CARRIER_PROFILE_VIEW,\n\t\t\t\tnavigate);\n\t\t}\n\n\t\tfunction setPendingTab(tab) {\n\t\t\tscope.tab = tab;\n\t\t}\n\n\t\tfunction navigate() {\n\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\tsubjectMessages.COB_SUBJECT_FINISH_CHANGE_CARRIER_PROFILE_VIEW,\n\t\t\t\tscope.tab);\n\t\t}\n\n\t\tfunction onForceGo() {\n\t\t\tif (typeof (scope.pendingCallback) === 'function')\n\t\t\t\tscope.pendingCallback();\n\t\t}\n\n\t\tfunction textFieldKeyDown(event) {\n\t\t\tvar charCode = (event.which) ? event.which : event.keyCode;\n\t\t\tvar isShift = !!event.shiftKey;\n\n\t\t\tif (isShift) {\n\t\t\t\tswitch (charCode) {\n\t\t\t\tcase 220: // | character\n\t\t\t\tcase 222: // \"\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n})();\n","'use strict';\n\n(function() {\n\tangular.module('onboarding.carrier')\n\t\t.directive('cobCarrierReadyToSignModal', cobCarrierReadyToSignModal);\n\n\tcobCarrierReadyToSignModal.$inject = [\n\t\t'sessionService', '$state', 'subjectObserverMessagesService', 'observerService'\n\t];\n\n\tvar sessionService,\n\t\t$location,\n\t\t$state,\n\t\tsubjectObserverMessagesService,\n\t\tobserverService,\n\t\tsubjectMessages,\n\t\tobserverMessages;\n\n\tfunction\n\tcobCarrierReadyToSignModal(_sessionService_, _$state_, _subjectObserverMessagesService_, _observerService_) {\n\t\tsessionService = _sessionService_;\n\t\t$state = _$state_;\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/carrier/profile/readyToSignModal.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\n\t\t\tscope.m = {\n\t\t\t\thidden: true\n\t\t\t};\n\t\t\tvar broker = sessionService.getBrokerBranding();\n\t\t\tif (broker) {\n\t\t\t\tscope.m.logoUrl = sessionService.getBrokerLogoURL();\n\t\t\t\tscope.m.welcomeMessage = broker.welcomeMessage;\n\t\t\t\tscope.m.brokerName = broker.brokerName;\n\t\t\t}\n\n\t\t\tscope.hide = hide;\n\t\t\tscope.navTo = navTo;\n\t\t\tregisterObserverHandlers();\n\t\t}\n\n\t\tfunction registerObserverHandlers() {\n\t\t\tobserverService.registerHandlers(scope,\n\t\t\t\t[\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_CARRIER_PROFILE_READY_TO_SIGN, handler: show }\n\t\t\t\t]);\n\t\t}\n\n\t\tfunction show() {\n\t\t\tscope.m.hidden = false;\n\t\t}\n\n\t\tfunction hide() {\n\t\t\tscope.m.hidden = true;\n\t\t}\n\n\t\tfunction navTo(view) {\n\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\tsubjectMessages.COB_SUBJECT_FINISH_CHANGE_CARRIER_PROFILE_VIEW,\n\t\t\t\tview);\n\t\t\thide();\n\t\t}\n\t}\n\n})();\n","'use strict';\n\n(function() {\n\tangular.module('onboarding.carrier')\n\t\t.directive('cobCarrierWelcomeModal', cobCarrierWelcomeModal);\n\n\tcobCarrierWelcomeModal.$inject = ['sessionService', '$state', 'subjectObserverMessagesService', 'observerService'];\n\n\tvar sessionService,\n\t\t$state,\n\t\tsubjectMessages,\n\t\tobserverMessages,\n\t\tsubjectObserverMessagesService,\n\t\tobserverService;\n\n\tfunction cobCarrierWelcomeModal(_sessionService_, _$state_, _subjectObserverMessagesService_, _observerService_) {\n\t\tsessionService = _sessionService_;\n\t\t$state = _$state_;\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/carrier/profile/welcomeModal.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\t\t\tscope.m = {};\n\t\t\tvar broker = sessionService.getBrokerBranding();\n\t\t\tif (broker) {\n\t\t\t\tscope.m.logoUrl = sessionService.getBrokerLogoURL();\n\t\t\t\tscope.m.welcomeMessage = broker.welcomeMessage;\n\t\t\t\tscope.m.brokerName = broker.brokerName;\n\t\t\t}\n\n\t\t\tscope.hide = hide;\n\t\t\tdocument.title = 'Profile Steps';\n\t\t}\n\n\t\tfunction hide() {\n\t\t\tdocument.title = 'Profile-Company';\n\t\t\t$state.go('carrierProfile.company');\n\t\t}\n\t}\n\n})();\n","'use strict';\n\nangular.module('onboarding.broker',\n\t[\n\t]);\n","angular.module('onboarding.broker.carriers',\n\t[\n\t\t'naif.base64'\n\t]);\n","'use strict';\n\nangular.module('onboarding.broker.contracts',\n\t[\n\t]);\n","'use strict';\n\n(function() {\n\tangular.module('onboarding.broker.carriers')\n\t\t.directive('cobCarrierList', cobCarrierList);\n\n\tcobCarrierList.$inject = [\n\t\t'subjectObserverMessagesService', 'observerService', 'carrierService','sessionService', '$log', '$timeout',\n\t\t'$state', '$stateParams'\n\t];\n\n\tvar subjectObserverMessagesService,\n\t\tobserverService,\n\t\tcarrierService,\n\t\tsubjectMessages,\n\t\tobserverMessages,\n\t\tsessionService,\n\t\trowCount,\n\t\treloadAjax,\n\t\t$log,\n\t\t$timeout,\n\t\t$state,\n\t\t$stateParams;\n\n\tfunction cobCarrierList(_subjectObserverMessagesService_,\n\t\t_observerService_,\n\t\t_carrierService_,\n\t\t_sessionService_,\n\t\t_$log_,\n\t\t_$timeout_,\n\t\t_$state_,\n\t\t_$stateParams_) {\n\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tcarrierService = _carrierService_;\n\t\tsessionService = _sessionService_;\n\t\t$state = _$state_;\n\t\t$stateParams = _$stateParams_;\n\t\trowCount = 100;\n\n\t\treloadAjax = false;\n\t\t$log = _$log_;\n\t\t$timeout = _$timeout_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/broker/carriers/carrier-list.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope, elem) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tscope.$stateParams = $stateParams;\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\n\t\t\tscope.m = {\n\t\t\t\terrors: []\n\t\t\t};\n\n\t\t\tscope.carriers = [];\n\t\t\tscope.sortType = 'lastVisited';\n\t\t\tscope.isSortDescending = true;\n\t\t\tscope.showConfirmation = false;\n\t\t\tscope.emailAddress = '';\n\t\t\tscope.ajaxIsRunning = false;\n\t\t\tscope.initialLoad = true;\n\t\t\tscope.showAllDocsList = false;\n\n\t\t\tscope.lastClicked = -1;\n\t\t\tscope.checkBoxClick = checkBoxClick;\n\n\t\t\tscope.associationEnumToString = associationEnumToString;\n\t\t\tscope.selectedCarriersCount = selectedCarriersCount;\n\t\t\tscope.saveNote = saveNote;\n\t\t\tscope.dismissErrors = dismissErrors;\n\t\t\tscope.carrierNoteHelper = carrierNoteHelper;\n\t\t\tscope.exportCarriers = exportCarriers;\n\t\t\tscope.exportCarriersDisable = exportCarriersDisable;\n\t\t\tscope.isWriteEnabledUser = sessionService.isAuthorizedBrokerWrite();\n\t\t\tscope.exportSelectedCarriersHelper = exportSelectedCarriersHelper;\n\n\t\t\tscope.closeModalWindow = closeModalWindow;\n\t\t\tscope.toggleDocsModal = toggleDocsModal;\n\t\t\tscope.getCarriers = getCarriers;\n\t\t\tscope.loadMore = loadMore;\n\t\t\tscope.setFilter = setFilter;\n\t\t\tscope.expandCarrier = expandCarrier;\n\t\t\tscope.changeStatus = changeStatus;\n\t\t\tscope.changeSort = changeSort;\n\t\t\tscope.getSortCssClass = getSortCssClass;\n\t\t\tscope.searchTypeChange = searchTypeChange;\n\t\t\tscope.searchInputChange = searchInputChange;\n\t\t\tscope.validateSearchInput = validateSearchInput;\n\t\t\tscope.searchClick = searchClick;\n\t\t\tscope.searchInputKeyPress = searchInputKeyPress;\n\t\t\tscope.notesClicked = notesClicked;\n\t\t\tscope.searchValue = '';\n\t\t\tresetOpenedCarrierIndex();\n\t\t\tresetCarrierProfileSectionStatusData();\n\t\t\tscope.getContractsInfo = getContractsInfo;\n\n\t\t\tscope.currentRow = 0;\n\t\t\tscope.totalRows = 0;\n\t\t\tscope.statusChoices = [\n\t\t\t\t{ id: -1, name: 'Export Selected to CSV' },\n\t\t\t\t//{ id: -2, name: 'Export Selected to XML' },\n\t\t\t\t{ id: 2, name: 'Mark as Incomplete' },\n\t\t\t\t{ id: 0, name: 'Mark as Complete' },\n\t\t\t\t{ id: 1, name: 'Hide Selected' },\n\t\t\t\t{ id: 5, name: 'Show Selected' }\n\t\t\t];\n\n\t\t\tscope.statuses = [\n\t\t\t\t{ id: 0, name: 'Complete' },\n\t\t\t\t{ id: 2, name: 'Incomplete' },\n\t\t\t\t{ id: 1, name: 'Hidden' }\n\t\t\t];\n\n\t\t\tregisterEventHandlers();\n\t\t\tdocument.title = 'Carrier List';\n\t\t\tscope.searchType = 'company';\n\n\t\t\tsearchTypeChange();\n\t\t\t// setFilter('complete');\n\t\t}\n\n\t\tfunction registerEventHandlers() {\n\t\t\tobserverService.registerHandlers(scope,\n\t\t\t\t[\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_SCROLL_MESSAGE, handler: loadMore }\n\t\t\t\t]);\n\t\t}\n\n\t\tfunction resetOpenedCarrierIndex() {\n\t\t\tscope.openedCarrierIndex = -1;\n\t\t}\n\n\t\tfunction dismissErrors() {\n\t\t\tscope.m.errors = [];\n\t\t}\n\n\t\tfunction carrierNoteHelper() {\n\t\t\tif (scope.carrier.notes === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (scope.carrier.notes.length > 20) {\n\t\t\t\treturn scope.carrier.notes.substr(0, 20) + '...';\n\t\t\t}\n\n\t\t\treturn scope.carrier.notes;\n\t\t}\n\n\t\tfunction changeStatus() {\n\t\t\tif (scope.selectedStatus !== null && scope.selectedStatus >= 0) {\n\n\t\t\t\tvar changedItems = [];\n\t\t\t\tangular.forEach(scope.carriers,\n\t\t\t\t\tfunction(carrier) {\n\t\t\t\t\t\tif (carrier.checked) {\n\n\t\t\t\t\t\t\tvar status = scope.selectedStatus;\n\t\t\t\t\t\t\tif (scope.selectedStatus === 5) {\n\t\t\t\t\t\t\t\tif (carrier.association === 1) {\n\t\t\t\t\t\t\t\t\tif (carrier.status === 'SIGNED') {\n\t\t\t\t\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tstatus = 2;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tstatus = carrier.association;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tstatus = scope.selectedStatus;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (carrier.association !== status) {\n\t\t\t\t\t\t\t\tvar item = {\n\t\t\t\t\t\t\t\t\tcarrierId: carrier.carrierId,\n\t\t\t\t\t\t\t\t\tstatus: associationEnumToString(status)\n\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\tcarrier.association = status;\n\n\t\t\t\t\t\t\t\tchangedItems.push(item);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\tif (changedItems.length > 0) {\n\t\t\t\t\tcarrierService.updateCarrierStatus(changedItems)\n\t\t\t\t\t\t.catch(function(e) {\n\t\t\t\t\t\t\tconsole.log(e);\n\t\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tscope.selectedStatus = null;\n\t\t\t}\n\n\t\t\tif (scope.selectedStatus === -1) {\n\t\t\t\texportCarriers();\n\t\t\t}\n\n\t\t\tscope.selectedStatus = null;\n\t\t}\n\n\t\tfunction checkBoxClick(event, index) {\n\t\t\tif (scope.lastClicked > -1 && event.shiftKey) {\n\t\t\t\tangular.forEach(scope.carriers.slice(Math.min(scope.lastClicked, index),\n\t\t\t\t\tMath.max(scope.lastClicked, index) + 1),\n\t\t\t\tfunction(carrier) {\n\t\t\t\t\tcarrier.checked = scope.carriers[scope.lastClicked].checked;\n\t\t\t\t});\n\t\t\t\tdocument.getSelection().removeAllRanges();\n\t\t\t} else {\n\t\t\t\tscope.carriers[index].checked = !scope.carriers[index].checked;\n\t\t\t}\n\t\t\tscope.lastClicked = index;\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\tfunction exportAllCarriers() {\n\t\t\tscope.showConfirmation = true;\n\n\t\t\tcarrierService.exportAllCarriers(scope.selectedFilter)\n\t\t\t\t.then(function(response) {\n\t\t\t\t\tscope.emailAddress = response.data.emailAddress;\n\t\t\t\t})\n\t\t\t\t.catch(function(e) {\n\t\t\t\t\tconsole.log(e);\n\t\t\t\t});\n\t\t}\n\n\t\tfunction exportSelectedCarriersHelper() {\n\t\t\tvar params = '';\n\n\t\t\tangular.forEach(scope.carriers,\n\t\t\t\tfunction (carrier) {\n\t\t\t\t\tif (carrier.checked) {\n\t\t\t\t\t\tif (params) {\n\t\t\t\t\t\t\tparams = params + ',';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparams = params + carrier.carrierId;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\tif ($stateParams.brokerId) {\n\t\t\t\tparams = params + '&brokerId=' + $stateParams.brokerId;\n\t\t\t}\n\n\t\t\treturn params;\n\t\t}\n\n\t\tfunction exportCarriers() {\n\t\t\texportAllCarriers();\n\t\t}\n\n\t\tfunction exportCarriersDisable() {\n\t\t\tif (scope.carriers.length === 0) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif (selectedCarriersCount() === 0 && !scope.selectedFilter) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction changeSort(sortType) {\n\t\t\tscope.sortType = sortType;\n\t\t\tscope.isSortDescending = !scope.isSortDescending;\n\t\t\tscope.currentRow = 0;\n\t\t\tscope.totalRows = 0;\n\t\t\tscope.carriers = [];\n\n\t\t\tloadMore();\n\t\t}\n\n\t\tfunction getSortCssClass(sortType) {\n\t\t\tif (scope.sortType === sortType) {\n\t\t\t\treturn scope.isSortDescending ? 'sort-dsc' : 'sort-asc';\n\t\t\t}\n\t\t}\n\n\t\tfunction setFilter(filter) {\n\t\t\tscope.initialLoad = false;\n\t\t\tscope.selectedFilter = filter;\n\t\t\tscope.currentRow = 0;\n\t\t\tscope.totalRows = 0;\n\t\t\tscope.carriers = [];\n\t\t\tscope.searchType = 'company';\n\t\t\tresetOpenedCarrierIndex();\n\n\t\t\tsearchTypeChange();\n\t\t\tif (scope.ajaxIsRunning) {\n\t\t\t\treloadAjax = true;\n\t\t\t}\n\t\t\tgetCarriers();\n\t\t}\n\n\t\tfunction getCarriers() {\n\t\t\tif (scope.ajaxIsRunning) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Only execute if currentRow is less than total rows\n\t\t\tif (scope.currentRow === 0 || scope.currentRow < scope.totalRows) {\n\t\t\t\tscope.ajaxIsRunning = true;\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_WAITING);\n\t\t\t\t},\n\t\t\t\t1);\n\n\t\t\t\tcarrierService.getCarriers(scope.selectedFilter,\n\t\t\t\t\tscope.currentRow,\n\t\t\t\t\trowCount,\n\t\t\t\t\tscope.sortType,\n\t\t\t\t\tscope.isSortDescending,\n\t\t\t\t\tscope.currentRow === 0)\n\t\t\t\t\t.then(function(response) {\n\t\t\t\t\t\tif (scope.currentRow === 0) {\n\t\t\t\t\t\t\tscope.totalRows = response.data.totalRowsAvailable;\n\t\t\t\t\t\t\tsetTimeout(function() { elem.find('.wrapper-table-flex')[0].scrollTop = 0; }, 1);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tscope.currentRow += rowCount;\n\t\t\t\t\t\tvar length = response.data.carriers.length;\n\t\t\t\t\t\tfor (var i = 0; i < length; i++) {\n\t\t\t\t\t\t\tvar carrier = response.data.carriers[i];\n\t\t\t\t\t\t\tcarrier.selectedFilter = scope.selectedFilter;\n\t\t\t\t\t\t\tscope.carriers.push(carrier);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch(function(e) {\n\t\t\t\t\t\tconsole.log(e);\n\t\t\t\t\t\t// alert('Unable to retrieve carriers');\n\t\t\t\t\t})\n\t\t\t\t\t.finally(function() {\n\t\t\t\t\t\tscope.ajaxIsRunning = false;\n\t\t\t\t\t\tobserverService\n\t\t\t\t\t\t\t.sendMessageToSubject(scope,\n\t\t\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_DONE);\n\t\t\t\t\t\tif (reloadAjax) {\n\t\t\t\t\t\t\treloadAjax = false;\n\t\t\t\t\t\t\tscope.currentRow = 0;\n\t\t\t\t\t\t\tscope.totalRows = 0;\n\t\t\t\t\t\t\tscope.carriers = [];\n\t\t\t\t\t\t\tsetTimeout(function() { getCarriers(); }, 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tfunction associationEnumToString(association) {\n\t\t\tvar result = $.grep(scope.statuses,\n\t\t\t\tfunction(e) {\n\t\t\t\t\treturn e.id === association;\n\t\t\t\t});\n\n\t\t\tif (result.length > 0) {\n\t\t\t\treturn result[0].name;\n\t\t\t}\n\n\t\t\treturn 'Unknown';\n\t\t}\n\n\t\tfunction saveNote(carrier) {\n\t\t\tif (carrier.oldValue !== carrier.notes || carrier.oldValue !== undefined) {\n\t\t\t\tif (carrier.notes !== '' && carrier.notes !== null) {\n\t\t\t\t\tcarrierService.updateCarrierNote(carrier.carrierId, carrier.notes)\n\t\t\t\t\t\t.catch(function(res) {\n\t\t\t\t\t\t\tvar modelErrors = res.data.modelState;\n\t\t\t\t\t\t\tvar errors = [];\n\t\t\t\t\t\t\tfor (var key in modelErrors) {\n\t\t\t\t\t\t\t\tfor (var i = 0; i < modelErrors[key].length; i++) {\n\t\t\t\t\t\t\t\t\terrors.push(modelErrors[key][i]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tobserverService\n\t\t\t\t\t\t\t\t.sendMessageToSubject(scope, subjectMessages.COB_SUBJECT_GENERIC_SERVER_ERROR, errors);\n\t\t\t\t\t\t\tscope.m.errors = errors;\n\t\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tif (carrier.oldValue !== '' && carrier.oldValue !== null) {\n\t\t\t\t\t\tcarrierService.deleteCarrierNote(carrier.carrierId)\n\t\t\t\t\t\t\t.catch(function(res) {\n\t\t\t\t\t\t\t\tvar modelErrors = res.data.modelState;\n\t\t\t\t\t\t\t\tvar errors = [];\n\t\t\t\t\t\t\t\tfor (var key in modelErrors) {\n\t\t\t\t\t\t\t\t\tfor (var i = 0; i < modelErrors[key].length; i++) {\n\t\t\t\t\t\t\t\t\t\terrors.push(modelErrors[key][i]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tobserverService\n\t\t\t\t\t\t\t\t\t.sendMessageToSubject(scope,\n\t\t\t\t\t\t\t\t\t\tsubjectMessages.COB_SUBJECT_GENERIC_SERVER_ERROR,\n\t\t\t\t\t\t\t\t\t\terrors);\n\t\t\t\t\t\t\t\tscope.m.errors = errors;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction loadMore() {\n\t\t\tif (scope.selectedFilter) {\n\t\t\t\tgetCarriers();\n\t\t\t} else {\n\t\t\t\tsearchCarriers();\n\t\t\t}\n\t\t}\n\n\t\tfunction closeModalWindow() {\n\t\t\tscope.showConfirmation = false;\n\t\t}\n\n\t\tfunction toggleDocsModal() {\n\t\t\tscope.showAllDocsList = !scope.showAllDocsList;\n\t\t}\n\n\t\tfunction expandCarrier(index) {\n\t\t\tif (scope.openedCarrierIndex >= 0) {\n\t\t\t\tscope.carriers[scope.openedCarrierIndex].isExpanded = false;\n\t\t\t\tif (index === scope.openedCarrierIndex) {\n\t\t\t\t\tresetOpenedCarrierIndex();\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tresetOpenedCarrierIndex();\n\t\t\t}\n\t\t\tvar currentCarrier = scope.carriers[index];\n\t\t\tcurrentCarrier.isExpanded = true;\n\t\t\tscope.openedCarrierIndex = index;\n\n\t\t\tif (currentCarrier.isExpanded) {\n\t\t\t\tcurrentCarrier.documents = [];\n\t\t\t\tresetCarrierProfileSectionStatusData();\n\t\t\t\tcarrierService.getCarrierPrimaryContact(currentCarrier.carrierId)\n\t\t\t\t\t.then(function(response) {\n\t\t\t\t\t\tcurrentCarrier.contactName = response.data.contactName;\n\t\t\t\t\t\tcurrentCarrier.contactRole = response.data.contactRole;\n\t\t\t\t\t\tcurrentCarrier.contactEmail = response.data.contactEmail;\n\t\t\t\t\t\tcurrentCarrier.contactPhone = response.data.contactPhone;\n\t\t\t\t\t\tcurrentCarrier.tinStatus = response.data.tinStatus;\n\t\t\t\t\t\tscope.carrierProfileSectionStatusData = createCarrierProfileSectionStatusData(response.data, response.data.signedContracts, currentCarrier.carrierId);\n\t\t\t\t\t\tcurrentCarrier.signedContracts = response.data.signedContracts;\n\t\t\t\t\t\tcurrentCarrier.documents = response.data.documents;\n\t\t\t\t\t})\n\t\t\t\t\t.catch(function(response) {\n\t\t\t\t\t\t$log(response);\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction resetCarrierProfileSectionStatusData() {\n\t\t\tscope.carrierProfileSectionStatusData = {};\n\t\t}\n\n\t\tfunction createCarrierProfileSectionStatusData(data, signedContracts, carrierId) {\n\t\t\treturn {\n\t\t\t\tcarrierProfileSectionsStatus: {\n\t\t\t\t\tcompanyInfoComplete: data.companyInfoComplete,\n\t\t\t\t\tcontactsComplete: data.contactsComplete,\n\t\t\t\t\tequipmentInfoComplete: data.equipmentInfoComplete,\n\t\t\t\t\tlaneInfoComplete: data.laneInfoComplete,\n\t\t\t\t\ttaxInfoComplete: data.taxInfoComplete,\n\t\t\t\t\tdocumentsComplete: data.documentsComplete,\n\t\t\t\t\tinsuranceInfoComplete: data.insuranceInfoComplete,\n\t\t\t\t\tcontractsComplete: !!signedContracts\n\t\t\t\t},\n\t\t\t\tcarrierId: carrierId\n\t\t\t};\n\t\t}\n\n\t\tfunction getContractsInfo(carrier) {\n\t\t\tif (carrier && carrier.signedContracts) {\n\t\t\t\treturn carrier.signedContracts.signee + ', ' + carrier.signedContracts.title + ' (' + carrier.signedContracts.contracts.join(', ') + ')';\n\t\t\t}\n\t\t}\n\n\t\tfunction notesClicked($event, carrier) {\n\t\t\t$event.stopPropagation();\n\t\t\tif (!scope.isWriteEnabledUser) {\n\t\t\t\tcarrier.editingNotes = false;\n\t\t\t} else if (carrier.editingNotes !== true) {\n\t\t\t\tcarrier.oldValue = carrier.notes;\n\t\t\t\tcarrier.editingNotes = true;\n\t\t\t\tif (carrier.oldValue !== carrier.notes || carrier.oldValue !== undefined) {\n\t\t\t\t\tif (scope.oldValue !== carrier.notes) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcarrierService.deleteCarrierNote(carrier.carrierId)\n\t\t\t\t\t\t\t.catch(function(res) {\n\t\t\t\t\t\t\t\tvar modelErrors = res.data.modelState;\n\t\t\t\t\t\t\t\tvar errors = [];\n\t\t\t\t\t\t\t\tfor (var key in modelErrors) {\n\t\t\t\t\t\t\t\t\tfor (var i = 0; i < modelErrors[key].length; i++) {\n\t\t\t\t\t\t\t\t\t\terrors.push(modelErrors[key][i]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tobserverService\n\t\t\t\t\t\t\t\t\t.sendMessageToSubject(scope,\n\t\t\t\t\t\t\t\t\t\tsubjectMessages.COB_SUBJECT_GENERIC_SERVER_ERROR,\n\t\t\t\t\t\t\t\t\t\terrors);\n\t\t\t\t\t\t\t\tscope.m.errors = errors;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction searchTypeChange() {\n\t\t\tscope.searchValue = '';\n\t\t\tscope.searchValue2 = '';\n\t\t\tscope.searchInputError = '';\n\t\t\tswitch (scope.searchType) {\n\t\t\tcase 'company':\n\t\t\t\tscope.searchInputType = 'text';\n\t\t\t\tscope.searchInputPlaceholder = 'e.g. Sample Company';\n\t\t\t\tbreak;\n\t\t\tcase 'dotNumber':\n\t\t\t\tscope.searchInputType = 'text';\n\t\t\t\tscope.searchInputPlaceholder = 'e.g. 1234567';\n\t\t\t\tbreak;\n\t\t\tcase 'docketNumber':\n\t\t\t\tscope.searchInputType = 'text';\n\t\t\t\tscope.searchInputPlaceholder = 'e.g. 123456';\n\t\t\t\tbreak;\n\t\t\tcase 'timeFrame':\n\t\t\t\tscope.searchInputType = 'text';\n\t\t\t\tscope.searchInputPlaceholder = 'e.g. mm/dd/yy';\n\t\t\t\tbreak;\n\t\t\tcase 'intrastateNumber':\n\t\t\t\tscope.searchInputType = 'text';\n\t\t\t\tscope.searchInputPlaceholder = 'e.g. 001122333A';\n\t\t\t\tbreak;\n\t\t\tcase 'scacCode':\n\t\t\t\tscope.searchInputType = 'text';\n\t\t\t\tscope.searchInputPlaceholder = 'e.g. ABCD';\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tfunction validateSearchInput() {\n\t\t\tvar errorText = 'Please input a valid search value';\n\t\t\tswitch (scope.searchType) {\n\t\t\tcase 'company':\n\t\t\t\tif (scope.searchValue.length > 155 || scope.searchValue.length === 0) {\n\t\t\t\t\tscope.searchInputError = errorText;\n\t\t\t\t} else {\n\t\t\t\t\tscope.searchInputError = '';\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'dotNumber':\n\t\t\t\tif (/^[0-9]{1,9}$/.test(scope.searchValue)) {\n\t\t\t\t\tscope.searchInputError = '';\n\t\t\t\t} else {\n\t\t\t\t\tscope.searchInputError = errorText;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'docketNumber':\n\t\t\t\tif (/^[0-9]{1,9}$/.test(scope.searchValue)) {\n\t\t\t\t\tscope.searchInputError = '';\n\t\t\t\t} else {\n\t\t\t\t\tscope.searchInputError = errorText;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'timeFrame':\n\t\t\t\tif (!scope.searchValue && scope.searchValue2) {\n\t\t\t\t\tscope.searchValue = scope.searchValue2;\n\t\t\t\t\tscope.searchValue2 = '';\n\t\t\t\t}\n\t\t\t\t// eslint-disable-next-line no-useless-escape\n\t\t\t\tif (/^(0[1-9]|1[012])[\\/](0[1-9]|[12][0-9]|3[01])[\\/]\\d\\d$/.test(scope.searchValue)) {\n\n\t\t\t\t\tif (scope.searchValue2) {\n\t\t\t\t\t\t// eslint-disable-next-line no-useless-escape\n\t\t\t\t\t\tif (/^(0[1-9]|1[012])[\\/](0[1-9]|[12][0-9]|3[01])[\\/]\\d\\d$/.test(scope.searchValue2)) {\n\t\t\t\t\t\t\tscope.searchInputError = '';\n\t\t\t\t\t\t\tvar searchValueParts = scope.searchValue.split('/');\n\t\t\t\t\t\t\tvar searchValue2Parts = scope.searchValue2.split('/');\n\n\t\t\t\t\t\t\tvar date1 = new Date(parseInt(searchValueParts[2]),\n\t\t\t\t\t\t\t\tparseInt(searchValueParts[0]) - 1,\n\t\t\t\t\t\t\t\tparseInt(searchValueParts[1]));\n\t\t\t\t\t\t\tvar date2 = new Date(parseInt(searchValue2Parts[2]),\n\t\t\t\t\t\t\t\tparseInt(searchValue2Parts[0]) - 1,\n\t\t\t\t\t\t\t\tparseInt(searchValue2Parts[1]));\n\t\t\t\t\t\t\tif (date1 > date2) {\n\t\t\t\t\t\t\t\tvar tempVal = scope.searchValue;\n\t\t\t\t\t\t\t\tscope.searchValue = scope.searchValue2;\n\t\t\t\t\t\t\t\tscope.searchValue2 = tempVal;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tscope.searchInputError = errorText;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tscope.searchValue2 = scope.searchValue;\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\t\t\t\t\tscope.searchInputError = errorText;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'intrastateNumber':\n\t\t\t\tif (/^[a-zA-Z0-9-]{1,15}$/.test(scope.searchValue)) {\n\t\t\t\t\tscope.searchInputError = '';\n\t\t\t\t} else {\n\t\t\t\t\tscope.searchInputError = errorText;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'scacCode':\n\t\t\t\tif (/^[a-zA-Z]{1,4}$/.test(scope.searchValue)) {\n\t\t\t\t\tscope.searchInputError = '';\n\t\t\t\t} else {\n\t\t\t\t\tscope.searchInputError = errorText;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn !scope.searchInputError;\n\t\t}\n\n\t\tfunction selectedCarriersCount() {\n\t\t\tvar count = 0;\n\t\t\tangular.forEach(scope.carriers,\n\t\t\t\tfunction(carrier) {\n\t\t\t\t\tcount += carrier.checked ? 1 : 0;\n\t\t\t\t});\n\n\t\t\treturn count;\n\t\t}\n\n\t\tfunction searchInputKeyPress(event) {\n\t\t\tvar charCode = (event.which) ? event.which : event.keyCode;\n\t\t\tif (charCode === 13) { // on Enter\n\t\t\t\tsearchClick();\n\t\t\t\tevent.preventDefault();\n\t\t\t\t\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tswitch (charCode) {\n\t\t\tcase 8: //backspace\n\t\t\tcase 35: //end\n\t\t\tcase 36: //home\n\t\t\tcase 37: //left arrow\n\t\t\tcase 39: //right arrow\n\t\t\tcase 46: //delete\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar key = String.fromCharCode(charCode);\n\n\t\t\tswitch (scope.searchType) {\n\t\t\tcase 'company':\n\t\t\t\tbreak;\n\t\t\tcase 'dotNumber':\n\t\t\tcase 'docketNumber':\n\t\t\t\tif (!/^[0-9]$/.test(key)) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'timeFrame':\n\t\t\t\t// TODO: move this to the date picker directive so it works with the picker\n\t\t\t\t// eslint-disable-next-line no-useless-escape\n\t\t\t\tif (!/^[0-9\\/]$/.test(key)) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'intrastateNumber':\n\t\t\t\tif (!/^[a-zA-Z0-9-]$/.test(key)) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'scacCode':\n\t\t\t\tif (!/^[a-zA-Z]$/.test(key)) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tfunction searchInputChange() {\n\t\t\tswitch (scope.searchType) {\n\t\t\tcase 'company':\n\t\t\t\tscope.searchValue = scope.searchValue.substring(0, 50);\n\t\t\t\tbreak;\n\t\t\tcase 'dotNumber':\n\t\t\t\tscope.searchValue = scope.searchValue.substring(0, 9);\n\t\t\t\tbreak;\n\t\t\tcase 'docketNumber':\n\t\t\t\tscope.searchValue = scope.searchValue.substring(0, 9);\n\t\t\t\tbreak;\n\t\t\tcase 'timeFrame':\n\t\t\t\tscope.searchValue = scope.searchValue.substring(0, 10);\n\t\t\t\tscope.searchValue2 = scope.searchValue2.substring(0, 10);\n\t\t\t\tbreak;\n\t\t\tcase 'intrastateNumber':\n\t\t\t\tscope.searchValue = scope.searchValue.substring(0, 15);\n\t\t\t\tbreak;\n\t\t\tcase 'scacCode':\n\t\t\t\tscope.searchValue = scope.searchValue.substring(0, 4);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tfunction searchClick() {\n\t\t\tif (validateSearchInput()) {\n\t\t\t\tscope.initialLoad = false;\n\t\t\t\tscope.currentRow = 0;\n\t\t\t\tscope.totalRows = 0;\n\t\t\t\tscope.carriers = [];\n\t\t\t\tscope.searchInputError = '';\n\t\t\t\tscope.selectedFilter = '';\n\t\t\t\t$timeout(function() {\n\t\t\t\t\tif (scope.ajaxIsRunning) {\n\t\t\t\t\t\treloadAjax = true;\n\t\t\t\t\t}\n\t\t\t\t\tsearchCarriers();\n\t\t\t\t}); // need to wait for $apply from date switch in validation\n\t\t\t}\n\t\t}\n\n\t\tfunction searchCarriers() {\n\t\t\tif (scope.ajaxIsRunning) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Only execute if currentRow is less than total rows\n\t\t\tif (scope.currentRow === 0 || scope.currentRow < scope.totalRows) {\n\t\t\t\tscope.ajaxIsRunning = true;\n\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_WAITING);\n\n\t\t\t\tcarrierService.searchCarriers(scope.searchValue,\n\t\t\t\t\tscope.searchValue2,\n\t\t\t\t\tscope.searchType,\n\t\t\t\t\tscope.currentRow,\n\t\t\t\t\trowCount,\n\t\t\t\t\tscope.sortType,\n\t\t\t\t\tscope.isSortDescending,\n\t\t\t\t\tscope.currentRow === 0)\n\t\t\t\t\t.then(function(response) {\n\t\t\t\t\t\tif (scope.currentRow === 0) {\n\t\t\t\t\t\t\tscope.totalRows = response.data.totalRowsAvailable;\n\t\t\t\t\t\t\tsetTimeout(function() { elem.find('.wrapper-table-flex')[0].scrollTop = 0; }, 1);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tscope.currentRow += rowCount;\n\t\t\t\t\t\tvar length = response.data.carriers.length;\n\t\t\t\t\t\tfor (var i = 0; i < length; i++) {\n\t\t\t\t\t\t\tvar carrier = response.data.carriers[i];\n\t\t\t\t\t\t\tcarrier.selectedFilter = scope.selectedFilter;\n\t\t\t\t\t\t\tscope.carriers.push(carrier);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch(function(e) {\n\t\t\t\t\t\tconsole.log(e);\n\t\t\t\t\t\t// alert('Unable to retrieve carriers');\n\t\t\t\t\t})\n\t\t\t\t\t.finally(function() {\n\t\t\t\t\t\tscope.ajaxIsRunning = false;\n\t\t\t\t\t\tobserverService\n\t\t\t\t\t\t\t.sendMessageToSubject(scope,\n\t\t\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_DONE);\n\t\t\t\t\t\tif (reloadAjax) {\n\t\t\t\t\t\t\treloadAjax = false;\n\t\t\t\t\t\t\tscope.currentRow = 0;\n\t\t\t\t\t\t\tscope.totalRows = 0;\n\t\t\t\t\t\t\tscope.carriers = [];\n\t\t\t\t\t\t\tsearchCarriers();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\t}\n})();\n","'use strict';\n\n(function() {\n\tangular.module('onboarding.broker.contracts')\n\t\t.directive('cobBrokerContract', cobBrokerContract);\n\n\tcobBrokerContract.$inject = [\n\t\t'subjectObserverMessagesService', 'observerService', 'contractService', 'Upload', 'sessionService', '$state',\n\t\t'$stateParams'\n\t];\n\n\tvar observerService,\n\t\tsubjectObserverMessagesService,\n\t\tsubjectMessages,\n\t\tobserverMessages,\n\t\tcontractService,\n\t\tngFileUpload,\n\t\tsessionService,\n\t\t$state,\n\t\t$stateParams;\n\n\tfunction cobBrokerContract(_subjectObserverMessagesService_,\n\t\t_observerService_,\n\t\t_contractService_,\n\t\t_ngFileUpload_,\n\t\t_sessionService_,\n\t\t_state_,\n\t\t_$stateParams_) {\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tcontractService = _contractService_;\n\n\t\tsessionService = _sessionService_;\n\t\t$state = _state_;\n\t\t$stateParams = _$stateParams_;\n\t\tobserverService = _observerService_;\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\n\t\tngFileUpload = _ngFileUpload_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {\n\t\t\t\tcontracts: '=',\n\t\t\t\tcontract: '=',\n\t\t\t\t//disableUpload: '='\n\t\t\t},\n\t\t\ttemplateUrl: '/app/broker/contracts/brokerContract.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tif (sessionService.isAuthorizedInternalAdmin() && !$stateParams.brokerId) {\n\t\t\t\t$state.go('brokersAdmin');\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\n\t\t\tscope.upload = fileSelect;\n\n\t\t\tif (!scope.contract) {\n\t\t\t\tscope.contract = {};\n\t\t\t}\n\t\t\tif (!scope.contract.errors) {\n\t\t\t\tscope.contract.errors = {};\n\t\t\t}\n\n\t\t\tscope.contract.save = saveContract;\n\t\t\tscope.contract.validate = validate;\n\t\t\tscope.contract.validateContractName = validateContractName;\n\t\t\tscope.contract.reset = reset;\n\t\t\tscope.contract.isready = true;\n\t\t\tscope.disableUpload = false;\n\t\t}\n\n\t\tfunction saveContract() {\n\t\t\tif (validate() === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar regex = /(?:\\.([^.]+))?$/;\n\n\t\t\tvar addBrokerContractRequest = {\n\t\t\t\tname: scope.contract.contractName,\n\t\t\t\tdescription: scope.contract.contractDescription,\n\t\t\t\tfileContent: scope.contract.contractFile.base64,\n\t\t\t\tmimeType: scope.contract.contractFile.filetype,\n\t\t\t\tfileName: scope.contract.contractFile.filename,\n\t\t\t\tfileSize: scope.contract.contractFile.filesize,\n\t\t\t\tfileExtension: regex.exec(scope.contract.contractFile.filename)[1],\n\t\t\t\tcontractId: scope.contract.contractId\n\t\t\t};\n\n\t\t\tsetTimeout(function () {\n\t\t\t\tobserverService.sendMessageToSubject(scope, subjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_WAITING);\n\t\t\t}, 1);\n\n\t\t\tcontractService.addContract(addBrokerContractRequest)\n\t\t\t\t.then(function() {\n\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_FILE_UPLOAD_SAVED);\n\t\t\t\t\treset();\n\t\t\t\t})\n\t\t\t\t.catch(function(res) {\n\t\t\t\t\tvar modelErrors = res.data.modelState;\n\t\t\t\t\tvar errors = [];\n\t\t\t\t\tfor (var key in modelErrors) {\n\t\t\t\t\t\tfor (var i = 0; i < modelErrors[key].length; i++) {\n\t\t\t\t\t\t\terrors.push(modelErrors[key][i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}).finally(function () {\n\t\t\t\t\tobserverService\n\t\t\t\t\t\t.sendMessageToSubject(scope, subjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_DONE);\n\t\t\t\t});\n\t\t}\n\n\t\tfunction validateContractName() {\n\t\t\tif (scope.contract.contractName) {\n\t\t\t\tif (scope.contract.contractId) {\n\t\t\t\t\tdelete scope.contract.errors['contractName'];\n\t\t\t\t} else {\n\t\t\t\t\tif (scope.contracts) {\n\t\t\t\t\t\tdelete scope.contract.errors['contractName'];\n\t\t\t\t\t\tfor (var i = 0; i < scope.contracts.length; i++) {\n\t\t\t\t\t\t\tif (scope.contract.contractName.toLowerCase() === scope.contracts[i].name.toLowerCase()) {\n\t\t\t\t\t\t\t\tscope.contract.errors.contractName = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tscope.contract.errors.contractName = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tscope.contract.errors.contractName = true;\n\t\t\t}\n\n\t\t\tif (scope.contract.contractFile.filename) {\n\t\t\t\tscope.contract.isValid = !(Object.keys(scope.contract.errors).length);\n\t\t\t}\n\t\t}\n\n\t\tfunction validateFile() {\n\t\t\tvar errors = [];\n\t\t\tvar validMimeTypes = [\n\t\t\t\t'application/pdf', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n\t\t\t\t'application/msword', 'application/vnd.ms-word', 'image/tiff', 'image/png', 'image/jpeg'\n\t\t\t];\n\n\t\t\tvar validFileExtensions = ['pdf', 'docx', 'doc', 'tif', 'tiff', 'png', 'jpg', 'jpeg'];\n\n\n\t\t\tif (scope.contract.contractFile.filesize >= 10485760) {\n\t\t\t\terrors.push('File size must be less than 10mb');\n\t\t\t}\n\n\n\t\t\tif (scope.contract.contractFile.filetype !== '') {\n\t\t\t\tif (validMimeTypes.indexOf(scope.contract.contractFile.filetype) === -1) {\n\t\t\t\t\terrors.push('Select a valid file type');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar regex = /(?:\\.([^.]+))?$/;\n\t\t\t\tvar extension = regex.exec(scope.contract.contractFile.filename);\n\n\t\t\t\tif (validFileExtensions.indexOf(extension[1]) === -1) {\n\t\t\t\t\terrors.push('Select a valid file type');\n\t\t\t\t} else {\n\t\t\t\t\tswitch (extension[1]) {\n\t\t\t\t\tcase 'pdf':\n\t\t\t\t\t\tscope.contract.contractFile.filetype = 'application/pdf';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'docx':\n\t\t\t\t\t\tscope.contract.contractFile\n\t\t\t\t\t\t\t.filetype = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'doc':\n\t\t\t\t\t\tscope.contract.contractFile.filetype = 'application/msword';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'tiff':\n\t\t\t\t\tcase 'tif':\n\t\t\t\t\t\tscope.contract.contractFile.filetype = 'image/tiff';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'png':\n\t\t\t\t\t\tscope.contract.contractFile.filetype = 'image/png';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'jpg':\n\t\t\t\t\tcase 'jpeg':\n\t\t\t\t\t\tscope.contract.contractFile.filetype = 'image/jpeg';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (errors.length > 0) {\n\t\t\t\tscope.contract.errors.file = true;\n\t\t\t} else {\n\t\t\t\tdelete scope.contract.errors['file'];\n\t\t\t}\n\n\t\t\tif (scope.contract.contractName) {\n\t\t\t\tscope.contract.isValid = !(Object.keys(scope.contract.errors).length);\n\t\t\t}\n\t\t}\n\n\t\tfunction fileSelect(files) {\n\t\t\tif (files && files.length == 1) {\n\t\t\t\tvar file = files[0];\n\n\t\t\t\tif (!scope.contract.contractFile) {\n\t\t\t\t\tscope.contract.contractFile = {};\n\t\t\t\t}\n\t\t\t\tscope.contract.contractFile.filetype = file.type;\n\t\t\t\tscope.contractFile.filename = file.name;\n\t\t\t\tscope.contract.contractFile.filename = file.name;\n\t\t\t\tscope.contract.contractFile.filesize = file.size;\n\n\t\t\t\tngFileUpload.base64DataUrl(file, false)\n\t\t\t\t\t.then(function(url) {\n\t\t\t\t\t\tscope.contract.contractFile.base64 = url.split(',')[1];\n\t\t\t\t\t\tvalidateFile();\n\t\t\t\t\t\tif (scope.contract.errors.file) {\n\t\t\t\t\t\t\tobserverService\n\t\t\t\t\t\t\t\t.sendMessageToSubject(scope,\n\t\t\t\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_FILE_UPLOAD_ERROR);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tscope.disableUpload = true;\n\t\t\t\t\t\t\tobserverService\n\t\t\t\t\t\t\t\t.sendMessageToSubject(scope,\n\t\t\t\t\t\t\t\t\tsubjectObserverMessagesService\n\t\t\t\t\t\t\t\t\t\t.getSubjectMessages()\n\t\t\t\t\t\t\t\t\t\t.COB_SUBJECT_FILE_UPLOAD_SUCCESS);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_FILE_UPLOAD_ERROR);\n\t\t\t}\n\t\t}\n\n\t\tfunction validate() {\n\t\t\tvalidateContractName();\n\t\t\tvalidateFile();\n\t\t\tscope.contract.isValid = !(Object.keys(scope.contract.errors).length);\n\n\t\t\treturn scope.contract.isValid;\n\t\t}\n\n\t\tfunction reset() {\n\t\t\tscope.disableUpload = false;\n\t\t\tscope.contract.isValid = false;\n\t\t\tscope.contract.contractFile = {};\n\t\t\tscope.contract.errors = {};\n\t\t\tscope.contract.contractDescription = '';\n\t\t\tif (!scope.contract.contractId) {\n\t\t\t\tscope.contract.contractName = '';\n\t\t\t}\n\n\t\t}\n\n\t\tfunction registerObserverHandlers() {\n\t\t\tobserverService.registerHandlers(scope,\n\t\t\t\t[\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_FILE_UPLOAD_SUCCESS, handler: onSuccess },\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_FILE_UPLOAD_SAVED, handler: onChange },\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_FILE_UPLOAD_ERROR, handler: onError }\n\t\t\t\t]);\n\t\t}\n\n\t\tfunction onSuccess() {\n\t\t\tconsole.log('File Upload Success');\n\t\t}\n\n\t\tfunction onChange() {\n\t\t\tconsole.log('File Upload Change');\n\t\t}\n\n\t\tfunction onError() {\n\t\t\tconsole.log('File Upload Error');\n\t\t}\n\t}\n\n})();\n","'use strict';\n\n(function() {\n\tangular.module('onboarding.broker.contracts')\n\t\t.directive('cobContractList', cobContractList);\n\n\tcobContractList.$inject = [\n\t\t'subjectObserverMessagesService', 'observerService', 'contractService', 'sessionService', '$state',\n\t\t'$stateParams'\n\t];\n\n\tvar subjectObserverMessagesService,\n\t\tobserverService,\n\t\tcontractService,\n\t\tsubjectMessages,\n\t\tobserverMessages,\n\t\tsessionService,\n\t\t$state,\n\t\t$stateParams;\n\n\tfunction cobContractList(_subjectObserverMessagesService_,\n\t\t_observerService_,\n\t\t_contractService_,\n\t\t_sessionService_,\n\t\t_state_,\n\t\t_$stateParams_) {\n\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tcontractService = _contractService_;\n\t\tsessionService = _sessionService_;\n\t\t$state = _state_;\n\t\t$stateParams = _$stateParams_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/broker/contracts/contract-list.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\t////////////\n\n\t\tfunction activate() {\n\n\t\t\tif (sessionService.isAuthorizedInternalAdmin() && !$stateParams.brokerId) {\n\t\t\t\t$state.go('brokersAdmin');\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\t\t\tregisterEventHandlers();\n\n\t\t\tscope.m = {\n\t\t\t\terrors: [],\n\t\t\t\tshowAddContractModal: false\n\t\t\t};\n\n\t\t\tscope.$stateParams = $stateParams;\n\t\t\tscope.contracts = [];\n\t\t\tscope.ajaxIsRunning = false;\n\t\t\tscope.dismissErrors = dismissErrors;\n\t\t\tscope.getContracts = getContracts;\n\t\t\tscope.setFilter = setFilter;\n\t\t\tscope.saveDescription = saveDescription;\n\t\t\tscope.onfileUploadCancel = onfileUploadCancel;\n\t\t\tscope.onFileUploadSave = onFileUploadSave;\n\t\t\tscope.sortType = 'uploadDate';\n\t\t\tscope.sortReverse = false;\n\t\t\tscope.currentRow = 0;\n\n\t\t\tsetFilter('active');\n\t\t\tdocument.title = 'Contracts';\n\t\t}\n\n\t\tfunction registerEventHandlers() {\n\t\t\tobserverService.registerHandlers(scope,\n\t\t\t\t[\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_FILE_UPLOAD_SUCCESS, handler: onFileUploadSuccess },\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_FILE_UPLOAD_SAVED, handler: onFileUploadSaved }\n\t\t\t\t\t//,{ message: observerMessages.COB_OBSERVER_FILE_UPLOAD_ERROR, handler: onError }\n\t\t\t\t]);\n\t\t}\n\n\t\tfunction dismissErrors() {\n\t\t\tscope.m.errors = [];\n\t\t}\n\n\t\tfunction setFilter(filter) {\n\t\t\tscope.selectedFilter = filter;\n\t\t\tgetContracts();\n\t\t}\n\n\t\tfunction saveDescription(contract) {\n\n\t\t\tcontractService.updateContractDescription(contract.contractId, contract.name, contract.description)\n\t\t\t\t.catch(function(res) {\n\t\t\t\t\tvar modelErrors = res.data.modelState;\n\t\t\t\t\tvar errors = [];\n\t\t\t\t\tfor (var key in modelErrors) {\n\t\t\t\t\t\tfor (var i = 0; i < modelErrors[key].length; i++) {\n\t\t\t\t\t\t\terrors.push(modelErrors[key][i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\tsubjectMessages.COB_SUBJECT_GENERIC_SERVER_ERROR,\n\t\t\t\t\t\terrors);\n\t\t\t\t\tscope.m.errors = errors;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction getContracts() {\n\t\t\tif (!scope.ajaxIsRunning) {\n\t\t\t\tscope.ajaxIsRunning = true;\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_WAITING);\n\t\t\t\t},\n\t\t\t\t1);\n\n\t\t\t\tcontractService.getContracts(scope.selectedFilter)\n\t\t\t\t\t.then(function(response) {\n\t\t\t\t\t\tscope.contracts = response.data.contracts;\n\t\t\t\t\t})\n\t\t\t\t\t.catch(function(e) {\n\t\t\t\t\t\tconsole.log(e);\n\t\t\t\t\t\t// alert('Unable to retrieve carriers');\n\t\t\t\t\t})\n\t\t\t\t\t.finally(function() {\n\t\t\t\t\t\tscope.ajaxIsRunning = false;\n\t\t\t\t\t\tobserverService\n\t\t\t\t\t\t\t.sendMessageToSubject(scope,\n\t\t\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_DONE);\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction onFileUploadSuccess() {\n\t\t\tscope.disableUpload = true;\n\t\t}\n\n\t\tfunction onFileUploadSaved() {\n\t\t\tsetFilter('active');\n\t\t\tscope.disableUpload = false;\n\t\t}\n\n\t\tfunction onFileUploadSave() {\n\t\t\tscope.newContract.save();\n\t\t}\n\n\t\tfunction onfileUploadCancel() {\n\t\t\tscope.newContract.reset();\n\t\t\tscope.disableUpload = false;\n\t\t}\n\t}\n})();\n","/* eslint-disable no-redeclare */\n// TODO: remove code above and fix issues in case changing this file\n'use strict';\n\n(function() {\n\tangular.module('onboarding.broker.contracts')\n\t\t.directive('cobContractSignaturesList', cobContractSignaturesList);\n\n\tcobContractSignaturesList.$inject = [\n\t\t'subjectObserverMessagesService', 'observerService', 'contractService', '$log', '$timeout', 'sessionService', '$state',\n\t\t'$stateParams'\n\t];\n\n\tvar subjectObserverMessagesService,\n\t\tobserverService,\n\t\tcontractService,\n\t\tsubjectMessages,\n\t\tobserverMessages,\n\t\trowCount,\n\t\t$log,\n\t\t$timeout,\n\t\tsessionService,\n\t\t$state,\n\t\t$stateParams,\n\t\treloadAjax;\n\n\tfunction cobContractSignaturesList(_subjectObserverMessagesService_,\n\t\t_observerService_,\n\t\t_contractService_,\n\t\t_$log_,\n\t\t_$timeout_,\n\t\t_sessionService_,\n\t\t_state_,\n\t\t_$stateParams_) {\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tcontractService = _contractService_;\n\t\trowCount = 100;\n\t\t$log = _$log_;\n\t\t$timeout = _$timeout_;\n\t\tsessionService = _sessionService_;\n\t\t$state = _state_;\n\t\t$stateParams = _$stateParams_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/broker/contracts/contractSignaturesList.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\n\t\t\tif (sessionService.isAuthorizedInternalAdmin() && !$stateParams.brokerId) {\n\t\t\t\t$state.go('brokersAdmin');\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\n\t\t\tscope.$stateParams = $stateParams;\n\t\t\tscope.m = {\n\t\t\t\terrors: []\n\t\t\t};\n\t\t\tscope.signatures = [];\n\t\t\tscope.contractId = $stateParams['contractid'];\n\t\t\tscope.contract = {};\n\t\t\tscope.ajaxIsRunning = false;\n\n\t\t\tscope.currentRow = 0;\n\t\t\tscope.isSortDescending = true;\n\t\t\tscope.sortOrder = 'date';\n\t\t\tscope.filter = '';\n\t\t\tscope.filterType = 'sortName';\n\t\t\tscope.filterInputPlaceholder = 'e.g. Sample Company';\n\t\t\tscope.isFilter = false;\n\t\t\tscope.haveAllRows = false;\n\t\t\tscope.allChecked = false;\n\t\t\tscope.checkedCount = 0;\n\t\t\tscope.lastClicked = -1;\n\n\n\t\t\tscope.rejectSignatureHideConfirm = rejectSignatureHideConfirm;\n\t\t\tscope.rejectClicked = rejectClicked;\n\t\t\tscope.getSignatures = getSignatures;\n\t\t\tscope.rejectSignatures = rejectSignatures;\n\t\t\tscope.timezoneFilter = timezoneFilter;\n\t\t\tscope.hamburgerClicked = hamburgerClicked;\n\t\t\tscope.filterTypeChange = filterTypeChange;\n\t\t\tscope.filterInputKeyPress = filterInputKeyPress;\n\t\t\tscope.filterInputChange = filterInputChange;\n\t\t\tscope.searchClick = searchClick;\n\t\t\tscope.toggleChecked = toggleChecked;\n\t\t\tscope.exportSignatures = exportSignatures;\n\t\t\tscope.selectedSignatures = selectedSignatures;\n\t\t\tscope.exportSignaturesDisable = exportSignaturesDisable;\n\t\t\tscope.showRejectConfirmation = { showConfirmation: false };\n\t\t\tscope.sort = sort;\n\t\t\tscope.enableRejectButton = false;\n\t\t\tscope.rejectableCheckedCount = 0;\n\t\t\tscope.singleSigneeName = '';\n\t\t\tscope.statChoices = [];\n\n\t\t\tif (sessionService.isAuthorizedBrokerWrite()) {\n\t\t\t\tscope.statusChoices = [\n\t\t\t\t\t{ id: 0, name: 'Export Selected to CSV' },\n\t\t\t\t\t{ id: 1, name: 'Reject' }\n\t\t\t\t];\n\t\t\t} else {\n\t\t\t\tscope.statusChoices = [\n\t\t\t\t\t{ id: 0, name: 'Export Selected to CSV' }\n\t\t\t\t];\n\t\t\t}\n\n\t\t\tgetSignatures(true);\n\t\t\tgetDetails();\n\t\t\tregisterEventHandlers();\n\t\t\tdocument.title = 'Contract Signatures';\n\t\t}\n\n\t\tfunction registerEventHandlers() {\n\t\t\tobserverService.registerHandlers(scope,\n\t\t\t\t[\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_SCROLL_MESSAGE, handler: getSignatures }\n\t\t\t\t]);\n\t\t}\n\n\t\tfunction rejectClicked() {\n\t\t\tscope.showRejectConfirmation.showConfirmation = true;\n\n\t\t\tvar length = scope.signatures.length;\n\t\t\tif (scope.rejectableCheckedCount === 1) {\n\t\t\t\tfor (var i = 0; i < length; i++) {\n\t\t\t\t\tif (scope.signatures[i].checked && scope.signatures[i].status.toLowerCase() === 'active') {\n\t\t\t\t\t\tscope.singleSigneeName = scope.signatures[i].signee;\n\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction hamburgerClicked() {\n\t\t\tswitch (scope.selectedStatus) {\n\t\t\tcase 0:\n\t\t\t\tif (scope.checkedCount > 0) {\n\t\t\t\t\texportSignatures();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 1:\n\t\t\t\tif (scope.rejectableCheckedCount > 0) {\n\t\t\t\t\trejectClicked();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t}\n\n\t\t\tscope.selectedStatus = null;\n\t\t}\n\n\t\tfunction filterTypeChange() {\n\t\t\tswitch (scope.filterType) {\n\t\t\tcase 'signatory':\n\t\t\t\tscope.filterInputPlaceholder = 'e.g. John Doe';\n\t\t\t\tbreak;\n\t\t\tcase 'sortName':\n\t\t\t\tscope.filterInputPlaceholder = 'e.g. Sample Company';\n\t\t\t\tbreak;\n\t\t\tcase 'title':\n\t\t\t\tscope.filterInputPlaceholder = 'e.g. Owner';\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tfunction validateFilter() {\n\t\t\tif (scope.filter.length === 0) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t}\n\n\t\tfunction filterInputKeyPress(event) {\n\t\t\tvar charCode = (event.which) ? event.which : event.keyCode;\n\t\t\tif (charCode === 13) { // on Enter\n\t\t\t\tsearchClick();\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tswitch (charCode) {\n\t\t\tcase 8: //backspace\n\t\t\tcase 35: //end\n\t\t\tcase 36: //home\n\t\t\tcase 37: //left arrow\n\t\t\tcase 39: //right arrow\n\t\t\tcase 46: //delete\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tfunction filterInputChange() {\n\t\t\tswitch (scope.filterType) {\n\t\t\tcase 'signatory':\n\t\t\t\tscope.filter = scope.filter.substring(0, 100);\n\t\t\t\tbreak;\n\t\t\tcase 'sortName':\n\t\t\t\tscope.filter = scope.filter.substring(0, 155);\n\t\t\t\tbreak;\n\t\t\tcase 'title':\n\t\t\t\tscope.searchValue = scope.searchValue.substring(0, 100);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tfunction searchClick(clearSearch) {\n\t\t\tif (clearSearch) {\n\t\t\t\tscope.filter = '';\n\t\t\t}\n\t\t\tif (validateFilter() || clearSearch) {\n\t\t\t\tscope.currentRow = 0;\n\t\t\t\tscope.haveAllRows = false;\n\t\t\t\tscope.isFilter = (scope.filter.length > 0);\n\t\t\t\t$timeout(function () {\n\t\t\t\t\tif (scope.ajaxIsRunning) {\n\t\t\t\t\t\treloadAjax = true;\n\t\t\t\t\t}\n\t\t\t\t\tgetSignatures(true);\n\t\t\t\t}); // need to wait for $apply from date switch in validation\n\t\t\t}\n\t\t}\n\n\t\tfunction getSignatures(clearOld) {\n\t\t\tif (scope.ajaxIsRunning) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (scope.haveAllRows === false) {\n\t\t\t\tscope.ajaxIsRunning = true;\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_WAITING);\n\t\t\t\t},\n\t\t\t\t1);\n\n\t\t\t\tcontractService.getContractSignatures(scope.contractId,\n\t\t\t\t\tscope.currentRow,\n\t\t\t\t\trowCount,\n\t\t\t\t\tscope.sortOrder,\n\t\t\t\t\tscope.isSortDescending,\n\t\t\t\t\tscope.filter,\n\t\t\t\t\tscope.filterType)\n\t\t\t\t\t.then(function(response) {\n\t\t\t\t\t\tvar length = response.data.signatures.length;\n\t\t\t\t\t\tscope.currentRow += rowCount;\n\t\t\t\t\t\tif (clearOld) {\n\t\t\t\t\t\t\tscope.signatures = response.data.signatures;\n\t\t\t\t\t\t\tscope.allChecked = false;\n\t\t\t\t\t\t\tscope.checkedCount = 0;\n\t\t\t\t\t\t\tscope.rejectableCheckedCount = 0;\n\t\t\t\t\t\t\tscope.availableRows = response.data.availableRows;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfor (var i = 0; i < length; i++) {\n\t\t\t\t\t\t\t\tresponse.data.signatures[i].checked = false;\n\t\t\t\t\t\t\t\tscope.signatures.push(response.data.signatures[i]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (length < rowCount) {\n\t\t\t\t\t\t\tscope.haveAllRows = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch(function(e) {\n\t\t\t\t\t\tconsole.log(e);\n\t\t\t\t\t\t// alert('Unable to retrieve carriers');\n\t\t\t\t\t})\n\t\t\t\t\t.finally(function() {\n\t\t\t\t\t\tscope.ajaxIsRunning = false;\n\t\t\t\t\t\tobserverService\n\t\t\t\t\t\t\t.sendMessageToSubject(scope,\n\t\t\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_DONE);\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tfunction rejectSignatures() {\n\t\t\tvar rejectedSignatures = [];\n\t\t\tvar length = scope.signatures.length;\n\n\t\t\tfor (var i = 0; i < length; i++) {\n\t\t\t\tif (scope.signatures[i].checked && scope.signatures[i].status.toLowerCase() === 'active') {\n\t\t\t\t\trejectedSignatures.push(scope.signatures[i].signatureId);\n\t\t\t\t\tscope.signatures[i].signee = 'REJECTED';\n\t\t\t\t\tscope.signatures[i].status = 'REJECTED';\n\t\t\t\t\tscope.signatures[i].title = '–';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tsetTimeout(function () {\n\t\t\t\tobserverService.sendMessageToSubject(scope, subjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_WAITING);\n\t\t\t}, 1);\n\n\t\t\tcontractService.rejectSignatures(rejectedSignatures)\n\t\t\t\t.then(function() {\n\t\t\t\t\tscope.currentRow = 0;\n\t\t\t\t\tscope.haveAllRows = false;\n\t\t\t\t\t// Do not refresh list, model is updated. UX wants to retain checkbox checked state\n\t\t\t\t})\n\t\t\t\t.catch(function(e) {\n\t\t\t\t\tconsole.log(e);\n\t\t\t\t}).finally(function () {\n\t\t\t\t\tobserverService.sendMessageToSubject(scope, subjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_DONE);\n\t\t\t\t});\n\n\t\t\tscope.showRejectConfirmation.showConfirmation = false;\n\n\t\t\trejectedSignatures = [];\n\t\t\tscope.rejectableCheckedCount = 0;\n\t\t}\n\n\t\tfunction rejectSignatureHideConfirm() {\n\t\t\tscope.showRejectConfirmation.showConfirmation = false;\n\t\t}\n\n\t\tfunction sort(sortBy) {\n\n\t\t\tif (sortBy === scope.sortOrder) {\n\t\t\t\tscope.isSortDescending = !scope.isSortDescending;\n\t\t\t} else {\n\t\t\t\tscope.sortOrder = sortBy;\n\t\t\t\tscope.isSortDescending = true;\n\t\t\t}\n\n\t\t\tscope.currentRow = 0;\n\t\t\tscope.haveAllRows = false;\n\n\n\t\t\tgetSignatures(true);\n\t\t}\n\n\t\tfunction timezoneFilter(time) {\n\t\t\tvar timeObj = new Date(time);\n\t\t\tif (timeObj.getTimezoneOffset() / 60 === 7)\n\t\t\t\treturn 'PDT';\n\t\t\telse if (timeObj.getTimezoneOffset() / 60 === 8)\n\t\t\t\treturn 'PST';\n\t\t\telse //should not happen but we do not want to give wrong data ever\n\t\t\t\treturn 'UTC -' + (timeObj.getTimezoneOffset() / 60);\n\t\t}\n\n\t\tfunction toggleChecked(event, index) {\n\t\t\tif (scope.lastClicked > -1 && event.shiftKey) {\n\t\t\t\tangular.forEach(scope.signatures.slice(Math.min(scope.lastClicked, index),\n\t\t\t\t\tMath.max(scope.lastClicked, index) + 1),\n\t\t\t\tfunction(signature) {\n\t\t\t\t\tif (signature.checked) {\n\t\t\t\t\t\tscope.checkedCount--;\n\t\t\t\t\t\tif (signature.status.toLowerCase() === 'active') {\n\t\t\t\t\t\t\tscope.rejectableCheckedCount--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tsignature.checked = scope.signatures[scope.lastClicked].checked;\n\n\t\t\t\t\tif (scope.signatures[scope.lastClicked].checked) {\n\t\t\t\t\t\tscope.checkedCount++;\n\t\t\t\t\t\tif (signature.status.toLowerCase() === 'active') {\n\t\t\t\t\t\t\tscope.rejectableCheckedCount++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tdocument.getSelection().removeAllRanges();\n\t\t\t} else {\n\t\t\t\tvar signature = scope.signatures[index];\n\t\t\t\tsignature.checked = !signature.checked;\n\t\t\t\tif (signature.checked) {\n\t\t\t\t\tscope.checkedCount++;\n\t\t\t\t\tif (signature.status.toLowerCase() === 'active') {\n\t\t\t\t\t\tscope.rejectableCheckedCount++;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tscope.checkedCount--;\n\t\t\t\t\tif (signature.status.toLowerCase() === 'active') {\n\t\t\t\t\t\tscope.rejectableCheckedCount--;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tscope.lastClicked = index;\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\tfunction getDetails() {\n\t\t\tsetTimeout(function () {\n\t\t\t\tobserverService.sendMessageToSubject(scope, subjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_WAITING);\n\t\t\t}, 1);\n\n\t\t\tcontractService.getContractDetail(scope.contractId)\n\t\t\t\t.then(function(response) {\n\t\t\t\t\tscope.contract = response.data;\n\t\t\t\t})\n\t\t\t\t.catch(function(e) {\n\t\t\t\t\tconsole.log(e);\n\t\t\t\t}).finally(function () {\n\t\t\t\t\tobserverService.sendMessageToSubject(scope, subjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_DONE);\n\t\t\t\t});\n\n\t\t\treturn;\n\t\t}\n\n\t\tfunction exportSignaturesDisable() {\n\t\t\tif (scope.signatures.length === 0) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\tfunction exportSignatures() {\n\t\t\tif (scope.checkedCount > 0) {\n\t\t\t\t//export selected\n\t\t\t\tvar exportedSignatures = [];\n\t\t\t\tvar length = scope.signatures.length;\n\n\t\t\t\tfor (var i = 0; i < length; i++) {\n\t\t\t\t\tif (scope.signatures[i].checked)\n\t\t\t\t\t\texportedSignatures.push(scope.signatures[i].signatureId);\n\t\t\t\t}\n\n\t\t\t\tcontractService.exportContractSignatures(scope.contractId, exportedSignatures)\n\t\t\t\t\t.then(downloadFile)\n\t\t\t\t\t.catch(function (e) {\n\t\t\t\t\t\tconsole.log(e);\n\t\t\t\t\t});\n\t\t\t} else if (scope.isFilter) {\n\t\t\t\texportedSignatures = [];\n\t\t\t\tlength = scope.signatures.length;\n\n\t\t\t\tfor (var i = 0; i < length; i++) {\n\t\t\t\t\texportedSignatures.push(scope.signatures[i].signatureId);\n\t\t\t\t}\n\n\t\t\t\tcontractService.exportContractSignatures(scope.contractId, exportedSignatures)\n\t\t\t\t\t.then(downloadFile)\n\t\t\t\t\t.catch(function (e) {\n\t\t\t\t\t\tconsole.log(e);\n\t\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t//export all\n\t\t\t\tcontractService.exportAllContractSignatures(Number(scope.contractId))\n\t\t\t\t\t.then(function (response) {\n\t\t\t\t\t\tscope.showExportConfirmation = true;\n\t\t\t\t\t\tscope.exportConfirmationEmailAddress = response.data.emailAddress;\n\t\t\t\t\t})\n\t\t\t\t\t.catch(function (e) {\n\t\t\t\t\t\tconsole.log(e);\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction selectedSignatures() {\n\t\t\tvar signatures = '';\n\t\t\tangular.forEach(scope.signatures,\n\t\t\t\tfunction (signature) {\n\t\t\t\t\tif (signature.checked) {\n\t\t\t\t\t\tif (signatures !== '') {\n\t\t\t\t\t\t\tsignatures = signatures + '&signatureIds=' + signature.signatureId;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsignatures = 'signatureIds=' + signature.signatureId;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\tif (signatures.length) {\n\t\t\t\tscope.m.hasSelectedSignatures = true;\n\t\t\t} else {\n\t\t\t\tscope.m.hasSelectedSignatures = false;\n\t\t\t}\n\n\t\t\treturn signatures;\n\t\t}\n\n\t\tfunction getDate() {\n\t\t\tvar today = new Date();\n\t\t\tvar returnVal = today.getFullYear().toString();\n\n\t\t\tif (today.getMonth() < 9) {\n\t\t\t\treturnVal += '0' + (today.getMonth() + 1);\n\t\t\t} else {\n\t\t\t\treturnVal += (today.getMonth() + 1);\n\t\t\t}\n\n\t\t\tif (today.getMonth() < 9) {\n\t\t\t\treturnVal += '0' + (today.getDate() + 1);\n\t\t\t} else {\n\t\t\t\treturnVal += (today.getDate() + 1);\n\t\t\t}\n\n\t\t\treturn returnVal;\n\t\t}\n\n\t\tfunction downloadFile(response) {\n\t\t\tvar blob = new Blob([response.data], { type: 'text/csv;charset=utf-8' });\n\t\t\tvar fileName = scope.contract.contractName + '+Signatures+' + getDate() + '.csv';\n\n\t\t\tif (navigator.msSaveBlob) { // IE 10+\n\t\t\t\tnavigator.msSaveBlob(blob, fileName);\n\t\t\t} else {\n\t\t\t\tvar link = document.createElement('a');\n\t\t\t\tif (link.download !== undefined) { // feature detection\n\t\t\t\t\t// Browsers that support HTML5 download attribute\n\t\t\t\t\tvar url = URL.createObjectURL(blob);\n\t\t\t\t\tlink.setAttribute('href', url);\n\t\t\t\t\tlink.setAttribute('download', fileName);\n\t\t\t\t\tlink.style.visibility = 'hidden';\n\t\t\t\t\tdocument.body.appendChild(link);\n\t\t\t\t\tlink.click();\n\t\t\t\t\tdocument.body.removeChild(link);\n\t\t\t\t} else { // safari sucks\n\t\t\t\t\turl = URL.createObjectURL(blob);\n\t\t\t\t\tlink.setAttribute('href', url);\n\t\t\t\t\tlink.setAttribute('download', fileName);\n\t\t\t\t\tlink.style.visibility = 'hidden';\n\t\t\t\t\tdocument.body.appendChild(link);\n\t\t\t\t\tlink.click();\n\t\t\t\t\tdocument.body.removeChild(link);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n})();\n","'use strict';\n\n(function() {\n\tangular.module('onboarding.broker.contracts')\n\t\t.directive('cobContractVersionsList', cobContractVersionsList);\n\n\tcobContractVersionsList.$inject = [\n\t\t'subjectObserverMessagesService', 'observerService', 'contractService', '$log', '$location', 'sessionService',\n\t\t'$state', '$stateParams'\n\t];\n\n\tvar subjectObserverMessagesService,\n\t\tobserverService,\n\t\tcontractService,\n\t\tsubjectMessages,\n\t\tobserverMessages,\n\t\trowCount,\n\t\t$log,\n\t\t$location,\n\t\tsessionService,\n\t\t$state,\n\t\t$stateParams;\n\n\tfunction cobContractVersionsList(_subjectObserverMessagesService_,\n\t\t_observerService_,\n\t\t_contractService_,\n\t\t_$log_,\n\t\t_$location_,\n\t\t_sessionService_,\n\t\t_state_,\n\t\t_$stateParams_) {\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tcontractService = _contractService_;\n\t\trowCount = 100;\n\t\t$log = _$log_;\n\t\t$location = _$location_;\n\t\tsessionService = _sessionService_;\n\t\t$state = _state_;\n\t\t$stateParams = _$stateParams_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/broker/contracts/contractVersionList.html',\n\t\t\tlink: linkFunction,\n\t\t\tbindToController: true\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\n\t\t\tif (sessionService.isAuthorizedInternalAdmin() && !$stateParams.brokerId) {\n\t\t\t\t$state.go('brokersAdmin');\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\t\t\tregisterEventHandlers();\n\n\t\t\tscope.$stateParams = $stateParams;\n\t\t\tscope.m = {\n\t\t\t\terrors: [],\n\t\t\t\tshowDeleteContractModal: false\n\t\t\t};\n\t\t\tscope.versions = [];\n\t\t\tscope.sortReverse = false;\n\t\t\tscope.sortType = 'uploadDate';\n\t\t\tvar contractId = $location.search()['contractid'];\n\t\t\tif (contractId) {\n\t\t\t\tscope.contractId = parseFloat(contractId);\n\t\t\t}\n\n\t\t\tscope.showDeleteConfirmation = {\n\t\t\t\tshowDeleteConfirmation: false,\n\t\t\t\tcontractId: undefined\n\t\t\t};\n\t\t\tscope.deleteContract = deleteContract;\n\t\t\tscope.deleteContractHideConfirm = deleteContractHideConfirm;\n\t\t\tscope.deleteContractShowConfirm = deleteContractShowConfirm;\n\t\t\tscope.descriptionClicked = descriptionClicked;\n\t\t\tscope.saveDescription = saveDescription;\n\t\t\tscope.getVersions = getVersions;\n\t\t\tscope.setActive = setActive;\n\t\t\tscope.sortClicked = sortClicked;\n\n\t\t\tgetDetails();\n\t\t\tdocument.title = 'Contract Versions';\n\t\t}\n\n\t\tfunction registerEventHandlers() {\n\t\t\tobserverService.registerHandlers(scope,\n\t\t\t\t[\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_FILE_UPLOAD_SUCCESS, handler: onFileUploadSuccess },\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_FILE_UPLOAD_SAVED, handler: onFileUploadSave }\n\t\t\t\t\t//,{ message: observerMessages.COB_OBSERVER_FILE_UPLOAD_ERROR, handler: onError }\n\t\t\t\t]);\n\t\t}\n\n\t\tfunction deleteContract() {\n\t\t\tsetTimeout(function () {\n\t\t\t\tobserverService.sendMessageToSubject(scope, subjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_WAITING);\n\t\t\t}, 1);\n\n\t\t\tcontractService.deleteContract(scope.showDeleteConfirmation.contractId)\n\t\t\t\t// .then(function(response) {\n\n\t\t\t\t// \tscope.versions = response.data.versions;\n\t\t\t\t// })\n\t\t\t\t.catch(function(e) {\n\t\t\t\t\tconsole.log(e);\n\t\t\t\t})\n\t\t\t\t.finally(function() {\n\t\t\t\t\tscope.showDeleteConfirmation.showDeleteConfirmation = false;\n\t\t\t\t\tscope.showDeleteConfirmation.contractId = undefined;\n\t\t\t\t\tgetVersions();\n\t\t\t\t\tobserverService.sendMessageToSubject(scope, subjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_DONE);\n\t\t\t\t});\n\n\t\t}\n\n\t\tfunction deleteContractHideConfirm() {\n\t\t\tscope.showDeleteConfirmation.showDeleteConfirmation = false;\n\t\t\tscope.showDeleteConfirmation.contractId = undefined;\n\t\t}\n\n\t\tfunction deleteContractShowConfirm(version) {\n\t\t\tscope.showDeleteConfirmation.showDeleteConfirmation = true;\n\t\t\tscope.showDeleteConfirmation.contractId = version.contractId;\n\t\t}\n\n\t\tfunction descriptionClicked(version) {\n\t\t\tif (version.isLatest) {\n\t\t\t\tscope.oldValue = version.description;\n\t\t\t\tversion.editMode = !version.editMode || true;\n\t\t\t}\n\t\t}\n\n\t\tfunction getVersions() {\n\t\t\tsetTimeout(function() {\n\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_WAITING);\n\t\t\t},\n\t\t\t1);\n\n\t\t\tcontractService.getContractVersions(scope.contract.contractName)\n\t\t\t\t.then(function(response) {\n\t\t\t\t\tscope.versions = response.data.contracts;\n\t\t\t\t\tif (scope.versions.length > 0) {\n\t\t\t\t\t\tscope.versions[0].isLatest = true;\n\t\t\t\t\t\tscope.newContract.contractId = scope.versions[0].contractId;\n\t\t\t\t\t\t$location.search('contractid', scope.newContract.contractId);\n\t\t\t\t\t} else // no versions found\n\t\t\t\t\t{\n\t\t\t\t\t\t$state.go('contracts',{ brokerId: $stateParams.brokerId });\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch(function(e) {\n\t\t\t\t\tconsole.log(e);\n\t\t\t\t\t// alert('Unable to retrieve carriers');\n\t\t\t\t})\n\t\t\t\t.finally(function() {\n\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_DONE);\n\t\t\t\t});\n\n\t\t\treturn;\n\t\t}\n\n\t\tfunction getDetails() {\n\t\t\tif (scope.contractId) {\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\tobserverService.sendMessageToSubject(scope, subjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_WAITING);\n\t\t\t\t}, 1);\n\n\t\t\t\tcontractService.getContractDetail(scope.contractId)\n\t\t\t\t\t.then(function(response) {\n\t\t\t\t\t\tscope.contract = response.data;\n\t\t\t\t\t\tobserverService\n\t\t\t\t\t\t\t.sendMessageToSubject(scope,\n\t\t\t\t\t\t\t\tsubjectMessages.COB_SUBJECT_CONTRACT_GROUP_SELECTED,\n\t\t\t\t\t\t\t\tscope.contract);\n\t\t\t\t\t\tgetVersions();\n\n\t\t\t\t\t\tif (!scope.newContract) {\n\t\t\t\t\t\t\tscope.newContract = {};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tscope.newContract.contractId = scope.contractId;\n\t\t\t\t\t\tscope.newContract.contractName = scope.contract.contractName;\n\n\t\t\t\t\t})\n\t\t\t\t\t.catch(function(e) {\n\t\t\t\t\t\tconsole.log(e);\n\t\t\t\t\t}).finally(function () {\n\t\t\t\t\t\tobserverService\n\t\t\t\t\t\t\t.sendMessageToSubject(scope, subjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_DONE);\n\t\t\t\t\t});\n\t\t\t} else // cannot load a contract whithout the ID\n\t\t\t{\n\t\t\t\t$location.search('contractid', null);\n\t\t\t\t$location.path('/contracts');\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tfunction saveDescription(contract) {\n\n\t\t\tsetTimeout(function () {\n\t\t\t\tobserverService.sendMessageToSubject(scope, subjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_WAITING);\n\t\t\t}, 1);\n\n\t\t\tcontractService.updateContractDescription(contract.contractId, contract.name, contract.description)\n\t\t\t\t.then(function() {\n\t\t\t\t})\n\t\t\t\t.catch(function(res) {\n\t\t\t\t\tvar modelErrors = res.data.modelState;\n\t\t\t\t\tvar errors = [];\n\t\t\t\t\tfor (var key in modelErrors) {\n\t\t\t\t\t\tfor (var i = 0; i < modelErrors[key].length; i++) {\n\t\t\t\t\t\t\terrors.push(modelErrors[key][i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\tsubjectMessages.COB_SUBJECT_GENERIC_SERVER_ERROR,\n\t\t\t\t\t\terrors);\n\t\t\t\t\tscope.m.errors = errors;\n\t\t\t\t}).finally(function () {\n\t\t\t\t\tobserverService\n\t\t\t\t\t\t.sendMessageToSubject(scope, subjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_DONE);\n\t\t\t\t});\n\t\t}\n\n\t\tfunction setActive(isActive) {\n\t\t\tif (!scope.contract) {\n\t\t\t\tscope.contract = {};\n\t\t\t}\n\t\t\tif (isActive) {\n\t\t\t\tscope.contract.status = 'ACTIVE';\n\t\t\t} else {\n\t\t\t\tscope.contract.status = 'INACTIVE';\n\t\t\t}\n\n\t\t\tsetTimeout(function () {\n\t\t\t\tobserverService.sendMessageToSubject(scope, subjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_WAITING);\n\t\t\t}, 1);\n\n\t\t\tcontractService.updateContractStatus(scope.contractId, scope.contract.status, scope.contract.contractName)\n\t\t\t\t// .then(function(response) {\n\t\t\t\t// \tscope.contract.status = response.data.status;\n\t\t\t\t// })\n\t\t\t\t.catch(function(e) {\n\t\t\t\t\tconsole.log(e);\n\t\t\t\t\t// Return To Original State\n\t\t\t\t\tif (!isActive) {\n\t\t\t\t\t\tscope.contract.status = 'ACTIVE';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tscope.contract.status = 'INACTIVE';\n\t\t\t\t\t}\n\t\t\t\t}).finally(function () {\n\t\t\t\t\tobserverService\n\t\t\t\t\t\t.sendMessageToSubject(scope, subjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_DONE);\n\t\t\t\t});\n\n\t\t\treturn;\n\t\t}\n\n\t\tfunction sortClicked(sortType) {\n\t\t\tif (scope.sortType === sortType) {\n\t\t\t\tscope.sortReverse = !scope.sortReverse;\n\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\tscope.sortType = sortType;\n\t\t\t\tscope.sortReverse = false;\n\t\t\t}\n\t\t}\n\n\t\tfunction onFileUploadSuccess() {\n\t\t\tscope.newContract.save();\n\t\t}\n\n\t\tfunction onFileUploadSave() {\n\t\t\tgetVersions();\n\t\t}\n\t}\n})();\n","'use strict';\n\nangular.module('onboarding.internaladmin',\n\t[\n\t]);\n","'use strict';\n\n(function() {\n\tangular.module('onboarding.internaladmin')\n\t\t.directive('cobAdminBrokerList', cobAdminBrokerList);\n\n\tcobAdminBrokerList.$inject = [\n\t\t'subjectObserverMessagesService', 'observerService', 'internalAdminService', 'sessionService', '$state'\n\t];\n\n\tvar subjectObserverMessagesService,\n\t\tobserverService,\n\t\tinternalAdminService,\n\t\tsubjectMessages,\n\t\tobserverMessages,\n\t\tsessionService,\n\t\tstate;\n\n\tfunction cobAdminBrokerList(_subjectObserverMessagesService_,\n\t\t_observerService_,\n\t\t_internalAdminService_,\n\t\t_sessionService_,\n\t\t_state_) {\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tinternalAdminService = _internalAdminService_;\n\t\tsessionService = _sessionService_;\n\t\tstate = _state_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/internaladmin/cobAdminBrokerList.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\n\t\t\tscope.ajaxIsRunning = false;\n\t\t\tscope.brokers = [];\n\t\t\tscope.searchType = 'companyName';\n\t\t\tscope.setFilter = setFilter;\n\t\t\tscope.sortReverse = false;\n\t\t\tscope.sortType = 'activeDate';\n\n\t\t\tscope.hideAssureSignIdModal = hideAssureSignIdModal;\n\t\t\tscope.masqueradeClick = masqueradeClick;\n\t\t\tscope.searchClick = searchClick;\n\t\t\tscope.searchTypeChange = searchTypeChange;\n\t\t\tscope.sortClicked = sortClicked;\n\t\t\tscope.searchInputKeyPress = searchInputKeyPress;\n\t\t\tscope.showAssureSignIdModal = showAssureSignIdModal;\n\t\t\tscope.clearSearchClicked = clearSearchClicked;\n\t\t\tscope.searchInputChange = searchInputChange;\n\t\t\tscope.isSearch = false;\n\n\t\t\tsetFilter('Active');\n\t\t\tsearchTypeChange();\n\t\t\tgetBrokers();\n\t\t\tdocument.title = 'Admin - Brokers';\n\t\t}\n\n\t\tfunction masqueradeClick(brokerId, brokerName, domain) {\n\t\t\tsessionService.setBrokerImpersonated(brokerId, brokerName, domain);\n\t\t}\n\n\t\tfunction getBrokers() {\n\t\t\tif (scope.ajaxIsRunning) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tscope.ajaxIsRunning = true;\n\t\t\tsetTimeout(function() {\n\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_WAITING);\n\t\t\t},\n\t\t\t1);\n\n\t\t\tinternalAdminService.getBrokers()\n\t\t\t\t.then(function(response) {\n\t\t\t\t\tscope.brokers = response.data.brokers;\n\t\t\t\t})\n\t\t\t\t.finally(function() {\n\t\t\t\t\tscope.ajaxIsRunning = false;\n\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_DONE);\n\t\t\t\t});\n\n\t\t\treturn;\n\t\t}\n\n\t\tfunction hideAssureSignIdModal() {\n\t\t\tscope.displayAssureSignIdModal = false;\n\t\t}\n\n\t\tfunction searchClick() {\n\t\t\tscope.isSearch = true;\n\t\t\tscope.filter = '';\n\t\t\tsetfilterExpr();\n\t\t}\n\n\t\tfunction searchTypeChange() {\n\t\t\tscope.searchValue = '';\n\t\t\tif (scope.searchType === 'accountId') {\n\t\t\t\tscope.searchInputPlaceholder = 'e.g. 182789';\n\t\t\t} else if (scope.searchType === 'guid') {\n\t\t\t\tscope.searchInputPlaceholder = 'e.g. DECA1A5E-3147-483D-BC7E-E5F601A205F9';\n\t\t\t}\n\t\t\telse {\n\t\t\t\tscope.searchInputPlaceholder = 'e.g. Sample Company';\n\t\t\t}\n\n\t\t}\n\n\t\tfunction setFilter(filter) {\n\t\t\tscope.filter = filter;\n\t\t\tsetfilterExpr();\n\t\t}\n\n\t\tfunction setfilterExpr() {\n\t\t\tif (scope.filter) {\n\t\t\t\tscope.filterExpr = { status: scope.filter };\n\t\t\t\tscope.searchExact = true;\n\t\t\t} else if (scope.searchType === 'companyName') {\n\t\t\t\tscope.filterExpr = { companyName: scope.searchValue };\n\t\t\t\tscope.searchExact = false;\n\t\t\t} else if (scope.searchType === 'accountId') {\n\t\t\t\tscope.filterExpr = { accountId: scope.searchValue };\n\t\t\t\tscope.searchExact = false;\n\t\t\t} else if (scope.searchType === 'guid') {\n\t\t\t\tscope.filterExpr = { guid: scope.searchValue.toUpperCase() };\n\t\t\t\tscope.searchExact = true;\n\t\t\t}\n\t\t}\n\n\t\tfunction sortClicked(sortType) {\n\t\t\tif (scope.sortType === sortType) {\n\t\t\t\tscope.sortReverse = !scope.sortReverse;\n\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\tscope.sortType = sortType;\n\t\t\t\tscope.sortReverse = false;\n\t\t\t}\n\t\t}\n\n\t\tfunction searchInputKeyPress(event) {\n\t\t\tvar charCode = (event.which) ? event.which : event.keyCode;\n\t\t\tif (charCode === 13) { // on Enter\n\t\t\t\tsearchClick();\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tfunction showAssureSignIdModal(broker) {\n\t\t\tscope.displayAssureSignIdModal = true;\n\t\t\tscope.assuresignBrokerId = broker.brokerId;\n\t\t\tscope.assuresignBrokerName = broker.companyName;\n\t\t\tscope.assuresignBrokerDomain = broker.domain;\n\t\t}\n\n\t\tfunction clearSearchClicked() {\n\t\t\tscope.isSearch = false;\n\t\t\tscope.searchValue = '';\n\t\t\tsetFilter('Active');\n\t\t}\n\n\t\tfunction searchInputChange() {\n\t\t\tswitch (scope.searchType) {\n\t\t\tcase 'companyName':\n\t\t\t\tscope.searchValue = scope.searchValue.substring(0, 150);\n\t\t\t\tbreak;\n\t\t\tcase 'accountId':\n\t\t\t\tscope.searchValue = scope.searchValue.substring(0, 8);\n\t\t\t\tbreak;\n\t\t\tcase 'guid':\n\t\t\t\tscope.searchValue = scope.searchValue.substring(0, 50);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n})();\n","'use strict';\n\n(function() {\n\tangular.module('onboarding.internaladmin')\n\t\t.directive('cobAdminBrokerUsageReport', cobAdminBrokerUsageReport);\n\n\tcobAdminBrokerUsageReport.$inject = ['subjectObserverMessagesService', 'observerService', 'internalAdminService'];\n\n\tvar subjectObserverMessagesService, observerService, internalAdminService;\n\n\tfunction cobAdminBrokerUsageReport(_subjectObserverMessagesService_, _observerService_, _internalAdminService_) {\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tinternalAdminService = _internalAdminService_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/internaladmin/cobAdminBrokerUsageReport.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tscope.ajaxIsRunning = false;\n\t\t\tscope.brokers = [];\n\t\t\tscope.sortReverse = false;\n\t\t\tscope.sortType = 'average';\n\n\t\t\tscope.sortClicked = sortClicked;\n\t\t\tgetReport();\n\t\t}\n\n\t\tfunction getReport() {\n\t\t\tif (scope.ajaxIsRunning) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tscope.ajaxIsRunning = true;\n\t\t\tsetTimeout(function() {\n\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_WAITING);\n\t\t\t},\n\t\t\t1);\n\n\t\t\tinternalAdminService.getBrokerUsageReport()\n\t\t\t\t.then(function(response) {\n\t\t\t\t\tscope.brokers = response.data.brokers;\n\t\t\t\t})\n\t\t\t\t.finally(function() {\n\t\t\t\t\tscope.ajaxIsRunning = false;\n\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_DONE);\n\t\t\t\t});\n\n\t\t\treturn;\n\t\t}\n\n\t\tfunction sortClicked(sortType) {\n\t\t\tif (scope.sortType === sortType) {\n\t\t\t\tscope.sortReverse = !scope.sortReverse;\n\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\tscope.sortType = sortType;\n\t\t\t\tscope.sortReverse = false;\n\t\t\t}\n\t\t}\n\t}\n})();\n","'use strict';\n\n(function() {\n\tangular.module('onboarding.internaladmin')\n\t\t.directive('cobAdminCarrierList', cobAdminCarrierList);\n\n\tcobAdminCarrierList.$inject = [\n\t\t'subjectObserverMessagesService', 'observerService', 'internalAdminService', 'sessionService', '$state',\n\t\t'Upload', 'validationService'\n\t];\n\n\tvar subjectObserverMessagesService,\n\t\tobserverService,\n\t\tinternalAdminService,\n\t\tsubjectMessages,\n\t\tobserverMessages,\n\t\tsessionService,\n\t\tstate,\n\t\tvalidationService,\n\t\tngFileUpload,\n\t\treloadAjax;\n\n\tfunction cobAdminCarrierList(_subjectObserverMessagesService_,\n\t\t_observerService_,\n\t\t_internalAdminService_,\n\t\t_sessionService_,\n\t\t_state_,\n\t\t_ngFileUpload_,\n\t\t_validationService_) {\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tinternalAdminService = _internalAdminService_;\n\t\tsessionService = _sessionService_;\n\t\tstate = _state_;\n\t\tngFileUpload = _ngFileUpload_;\n\t\tvalidationService = _validationService_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/internaladmin/cobAdminCarrierList.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tsubjectMessages = subjectObserverMessagesService.getSubjectMessages();\n\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\n\t\t\tscope.carriers = [];\n\t\t\tscope.sortReverse = true;\n\t\t\tscope.rowCount = 100;\n\t\t\tscope.currentRow = 0;\n\t\t\tscope.totalRows = -1;\n\t\t\tscope.ajaxIsRunning = false;\n\t\t\tscope.sortType = 'legalName';\n\t\t\tscope.searchType = 'docketNumber';\n\t\t\tscope.searchInputPlaceholder = '';\n\t\t\tscope.isSearch = false;\n\t\t\tscope.showTinErrorModal = false;\n\t\t\tscope.searchClicked = searchClicked;\n\t\t\tscope.searchTypeChanged = searchTypeChanged;\n\t\t\tscope.searchInputKeyPress = searchInputKeyPress;\n\t\t\tscope.searchInputChange = searchInputChange;\n\t\t\tscope.setTinText = setTinText;\n\t\t\tscope.sortClicked = sortClicked;\n\t\t\tscope.upload = upload;\n\t\t\tscope.closeTinErrorModal = closeTinErrorModal;\n\t\t\tscope.clearSearchClicked = clearSearchClicked;\n\t\t\tscope.closeTinStatusModal = closeTinStatusModal;\n\t\t\tscope.tinStatusFilter = tinStatusFilter;\n\t\t\tscope.tinStatusChange = tinStatusChange;\n\t\t\tscope.openTinStatusModal = openTinStatusModal;\n\t\t\tscope.carrierImpersonate = carrierImpersonate;\n\t\t\tscope.setStatusFilter = setStatusFilter;\n\t\t\tscope.tinStatusRejectionCodeInfo = {\n\t\t\t\t0 : 'TIN and Name combination matches IRS Record',\n\t\t\t\t1 : 'TIN was missing or TIN not 9-digit numeric',\n\t\t\t\t2 :'TIN entered is not currently issued',\n\t\t\t\t3 : 'TIN and Name combination does not match IRS record',\n\t\t\t\t4: 'Invalid TIN Matching request',\n\t\t\t\t5: 'Duplicate TIN Matching request',\n\t\t\t\t6: 'TIN and Name combination matches IRS SSN records',\n\t\t\t\t7: 'TIN and Name combination matches IRS EIN records',\n\t\t\t\t8: 'TIN and Name combination matches IRS SSN and EIN records'\n\t\t\t};\n\t\t\tresetModalWindowData();\n\n\t\t\tif (!scope.tinResultsFileErrors) {\n\t\t\t\tscope.tinResultsFileErrors = {};\n\t\t\t}\n\n\t\t\tregisterEventHandlers();\n\t\t\tdocument.title = 'Admin - Carriers';\n\t\t\tsearchTypeChanged();\n\t\t\tsetStatusFilter('Pending');\n\t\t}\n\n\t\tfunction registerEventHandlers() {\n\t\t\tobserverService.registerHandlers(scope,\n\t\t\t\t[\n\t\t\t\t\t{ message: observerMessages.COB_OBSERVER_SCROLL_MESSAGE, handler: getSearchData }\n\t\t\t\t]);\n\t\t}\n\n\t\tfunction getCarriers() {\n\n\t\t\tif (scope.ajaxIsRunning) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tscope.ajaxIsRunning = true;\n\t\t\tsetTimeout(function() {\n\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_WAITING);\n\t\t\t},\n\t\t\t1);\n\n\t\t\tinternalAdminService.getCarriers()\n\t\t\t\t.then(function(response) {\n\t\t\t\t\tscope.carriers = response.data.carriers;\n\t\t\t\t\tscope.totalRows = response.data.totalRowsAvailable;\n\t\t\t\t})\n\t\t\t\t.finally(function() {\n\t\t\t\t\tscope.ajaxIsRunning = false;\n\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_DONE);\n\t\t\t\t});\n\n\t\t\treturn;\n\t\t}\n\n\t\tfunction sortClicked(sortType) {\n\t\t\tif (scope.sortType === sortType) {\n\t\t\t\tscope.sortReverse = !scope.sortReverse;\n\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\tscope.sortType = sortType;\n\t\t\t\tscope.sortReverse = false;\n\t\t\t}\n\t\t}\n\n\t\tfunction searchClicked() {\n\t\t\tif (validateSearchInput()) {\n\t\t\t\tclearFilter();\n\t\t\t\tclearSearch();\n\t\t\t\tgetSearchData();\n\t\t\t}\n\t\t}\n\n\t\tfunction getSearchData() {\n\t\t\tif (scope.ajaxIsRunning || !scope.isSearch) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (scope.currentRow <= scope.totalRows) {\n\t\t\t\tscope.ajaxIsRunning = true;\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_WAITING);\n\t\t\t\t},\n\t\t\t\t1);\n\n\t\t\t\tinternalAdminService.searchCarriers(scope.filterType || scope.searchType,\n\t\t\t\t\tscope.searchValue || scope.filterValue,\n\t\t\t\t\tscope.currentRow,\n\t\t\t\t\tscope.rowCount,\n\t\t\t\t\tscope.currentRow === 0)\n\t\t\t\t\t.then(function(response) {\n\t\t\t\t\t\tif (scope.currentRow === 0) {\n\t\t\t\t\t\t\tscope.totalRows = response.data.totalRowsAvailable;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tscope.currentRow += scope.rowCount;\n\n\t\t\t\t\t\tvar length = response.data.carriers.length;\n\t\t\t\t\t\tfor (var i = 0; i < length; i++) {\n\t\t\t\t\t\t\tif (response.data.carriers[i].intrastateState)\n\t\t\t\t\t\t\t\tresponse.data.carriers[i].intrastate = response.data.carriers[i].intrastateState + '/' + response.data.carriers[i].intrastateCode;\n\t\t\t\t\t\t\tscope.carriers.push(response.data.carriers[i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch(function(e) {\n\t\t\t\t\t\tconsole.log(e);\n\t\t\t\t\t})\n\t\t\t\t\t.finally(function() {\n\t\t\t\t\t\tscope.ajaxIsRunning = false;\n\t\t\t\t\t\tobserverService\n\t\t\t\t\t\t\t.sendMessageToSubject(scope,\n\t\t\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_DONE);\n\t\t\t\t\t\tif (reloadAjax) {\n\t\t\t\t\t\t\treloadAjax = false;\n\t\t\t\t\t\t\tscope.currentRow = 0;\n\t\t\t\t\t\t\tscope.totalRows = 0;\n\t\t\t\t\t\t\tscope.carriers = [];\n\t\t\t\t\t\t\tgetSearchData();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tfunction searchTypeChanged() {\n\t\t\tscope.searchValue = '';\n\t\t\tscope.searchInputError = '';\n\t\t\tswitch (scope.searchType) {\n\t\t\tcase 'company':\n\t\t\t\tscope.searchInputType = 'text';\n\t\t\t\tscope.searchInputPlaceholder = 'e.g. Sample Company';\n\t\t\t\tbreak;\n\t\t\tcase 'dotNumber':\n\t\t\t\tscope.searchInputType = 'text';\n\t\t\t\tscope.searchInputPlaceholder = 'e.g. 1234567';\n\t\t\t\tbreak;\n\t\t\tcase 'docketNumber':\n\t\t\t\tscope.searchInputType = 'text';\n\t\t\t\tscope.searchInputPlaceholder = 'e.g. 123456';\n\t\t\t\tbreak;\n\t\t\tcase 'timeFrame':\n\t\t\t\tscope.searchInputType = 'text';\n\t\t\t\tscope.searchInputPlaceholder = 'e.g. mm/dd/yy';\n\t\t\t\tbreak;\n\t\t\tcase 'intrastateNumber':\n\t\t\t\tscope.searchInputType = 'text';\n\t\t\t\tscope.searchInputPlaceholder = 'e.g. 001122333A';\n\t\t\t\tbreak;\n\t\t\tcase 'scacCode':\n\t\t\t\tscope.searchInputType = 'text';\n\t\t\t\tscope.searchInputPlaceholder = 'e.g. ABCD';\n\t\t\t\tbreak;\n\t\t\tcase 'email':\n\t\t\t\tscope.searchInputType = 'text';\n\t\t\t\tscope.searchInputPlaceholder = 'e.g. john.smith@dat.com';\n\t\t\t\tbreak;\n\t\t\tcase 'guid':\n\t\t\t\tscope.searchInputType = 'guid';\n\t\t\t\tscope.searchInputPlaceholder = 'e.g. DECA1A5E-3147-483D-BC7E-E5F601A205F9';\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tfunction validateSearchInput() {\n\t\t\tvar errorText = 'Please input a valid search value';\n\t\t\tswitch (scope.searchType) {\n\t\t\tcase 'company':\n\t\t\t\tif (scope.searchValue.length > 155 || scope.searchValue.length === 0) {\n\t\t\t\t\tscope.searchInputError = errorText;\n\t\t\t\t} else {\n\t\t\t\t\tscope.searchInputError = '';\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'guid':\n\t\t\t\tif (scope.searchValue.length > 50 || scope.searchValue.length === 0) {\n\t\t\t\t\tscope.searchInputError = errorText;\n\t\t\t\t} else {\n\t\t\t\t\tscope.searchInputError = '';\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'dotNumber':\n\t\t\t\tif (/^[0-9]{1,9}$/.test(scope.searchValue)) {\n\t\t\t\t\tscope.searchInputError = '';\n\t\t\t\t} else {\n\t\t\t\t\tscope.searchInputError = errorText;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'docketNumber':\n\t\t\t\tif (/^[0-9]{1,9}$/.test(scope.searchValue)) {\n\t\t\t\t\tscope.searchInputError = '';\n\t\t\t\t} else {\n\t\t\t\t\tscope.searchInputError = errorText;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'intrastateNumber':\n\t\t\t\tif (/^[a-zA-Z0-9-]{1,15}$/.test(scope.searchValue)) {\n\t\t\t\t\tscope.searchInputError = '';\n\t\t\t\t} else {\n\t\t\t\t\tscope.searchInputError = errorText;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'scacCode':\n\t\t\t\tif (/^[a-zA-Z]{1,4}$/.test(scope.searchValue)) {\n\t\t\t\t\tscope.searchInputError = '';\n\t\t\t\t} else {\n\t\t\t\t\tscope.searchInputError = errorText;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'email':\n\t\t\t\tif (validationService.isValidEmail(scope.searchValue)) {\n\t\t\t\t\tscope.searchInputError = '';\n\t\t\t\t} else {\n\t\t\t\t\tscope.searchInputError = 'Please enter a valid email';\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn !scope.searchInputError;\n\t\t}\n\n\t\tfunction searchInputChange() {\n\t\t\tswitch (scope.searchType) {\n\t\t\tcase 'company':\n\t\t\t\tscope.searchValue = scope.searchValue.substring(0, 155);\n\t\t\t\tbreak;\n\t\t\tcase 'guid':\n\t\t\t\tscope.searchValue = scope.searchValue.substring(0, 50);\n\t\t\t\tbreak;\n\t\t\tcase 'dotNumber':\n\t\t\t\tscope.searchValue = scope.searchValue.substring(0, 9);\n\t\t\t\tbreak;\n\t\t\tcase 'docketNumber':\n\t\t\t\tscope.searchValue = scope.searchValue.substring(0, 9);\n\t\t\t\tbreak;\n\t\t\tcase 'intrastateNumber':\n\t\t\t\tscope.searchValue = scope.searchValue.substring(0, 15);\n\t\t\t\tbreak;\n\t\t\tcase 'scacCode':\n\t\t\t\tscope.searchValue = scope.searchValue.substring(0, 4);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tfunction searchInputKeyPress(event) {\n\t\t\tvar charCode = (event.which) ? event.which : event.keyCode;\n\t\t\tif (charCode === 13) { // on Enter\n\t\t\t\tsearchClicked();\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tswitch (charCode) {\n\t\t\tcase 8: //backspace\n\t\t\tcase 35: //end\n\t\t\tcase 36: //home\n\t\t\tcase 37: //left arrow\n\t\t\tcase 39: //right arrow\n\t\t\tcase 46: //delete\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar key = String.fromCharCode(charCode);\n\n\t\t\tswitch (scope.searchType) {\n\t\t\tcase 'company':\n\t\t\tcase 'email':\n\t\t\t\tbreak;\n\t\t\tcase 'dotNumber':\n\t\t\tcase 'docketNumber':\n\t\t\t\tif (!/^[0-9]$/.test(key)) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'intrastateNumber':\n\t\t\t\tif (!/^[a-zA-Z0-9-]$/.test(key)) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'scacCode':\n\t\t\t\tif (!/^[a-zA-Z]$/.test(key)) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tfunction setTinText(input) {\n\t\t\tif (input === 'New') {\n\t\t\t\treturn 'Canadian';\n\t\t\t}\n\n\t\t\treturn input;\n\t\t}\n\n\t\tfunction saveTinResults() {\n\t\t\tif (scope.tinResultsFileErrors.file) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar regex = /(?:\\.([^.]+))?$/;\n\n\t\t\tvar uploadTinResultsRequest = {\n\t\t\t\tfileContent: scope.tinResultsFile.base64,\n\t\t\t\tmimeType: scope.tinResultsFile.filetype,\n\t\t\t\tfileName: scope.tinResultsFile.filename,\n\t\t\t\tfileExtension: regex.exec(scope.tinResultsFile.filename)[1]\n\t\t\t};\n\n\t\t\tinternalAdminService.processTinFile(uploadTinResultsRequest)\n\t\t\t\t.then(function() {\n\t\t\t\t\tgetCarriers();\n\t\t\t\t})\n\t\t\t\t.catch(function() {\n\t\t\t\t\tscope.showTinErrorModal = true;\n\t\t\t\t});\n\t\t}\n\n\t\tfunction validateTinResults() {\n\t\t\tvar errors = [];\n\t\t\tvar validMimeTypes = [\n\t\t\t\t'text/plain'\n\t\t\t];\n\n\t\t\tvar validFileExtensions = ['txt'];\n\n\n\t\t\tif (scope.tinResultsFile.filesize >= 15728640) {\n\t\t\t\terrors.push('File size must be less than 15mb');\n\t\t\t}\n\n\n\t\t\tif (scope.tinResultsFile.filetype !== '') {\n\t\t\t\tif (validMimeTypes.indexOf(scope.tinResultsFile.filetype) === -1) {\n\t\t\t\t\terrors.push('Select a valid file type');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar regex = /(?:\\.([^.]+))?$/;\n\t\t\t\tvar extension = regex.exec(scope.tinResultsFile.filename);\n\n\t\t\t\tif (validFileExtensions.indexOf(extension[1]) === -1) {\n\t\t\t\t\terrors.push('Select a valid file type');\n\t\t\t\t} else {\n\t\t\t\t\tswitch (extension[1]) {\n\t\t\t\t\tcase 'txt':\n\t\t\t\t\t\tscope.contract.tinResultsFile.filetype = 'text/palin';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (errors.length > 0) {\n\t\t\t\tscope.tinResultsFileErrors.file = true;\n\t\t\t} else {\n\t\t\t\tscope.tinResultsFileErrors.file = false;\n\t\t\t}\n\n\t\t\tsaveTinResults();\n\t\t}\n\n\t\tfunction upload(files) {\n\t\t\tif (files && files.length === 1) {\n\t\t\t\tvar file = files[0];\n\n\t\t\t\tscope.tinResultsFile.filetype = file.type;\n\t\t\t\tscope.tinResultsFile.filename = file.name;\n\t\t\t\tscope.tinResultsFile.filesize = file.size;\n\n\t\t\t\tngFileUpload.base64DataUrl(file, false)\n\t\t\t\t\t.then(function(url) {\n\t\t\t\t\t\tscope.tinResultsFile.base64 = url.split(',')[1];\n\t\t\t\t\t\tvalidateTinResults();\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction clearSearchClicked() {\n\t\t\tsetStatusFilter('Pending');\n\t\t\tgetCarriers();\n\t\t\tscope.isSearch = false;\n\t\t\tscope.searchValue = '';\n\t\t}\n\n\t\tfunction closeTinErrorModal() {\n\t\t\tscope.showTinErrorModal = false;\n\t\t}\n\n\t\tfunction closeTinStatusModal() {\n\t\t\tscope.showTinStatusModal = false;\n\t\t\tupdateCarriersList();\n\t\t\tresetModalWindowData();\n\t\t}\n\n\t\tfunction resetModalWindowData() {\n\t\t\tscope.modalWindowData = {};\n\t\t}\n\n\t\tfunction updateCarriersList() {\n\t\t\tif (scope.modalWindowData.carrierTinStatus !== scope.carrier.tinStatus && scope.filterValue !== 'All') {\n\t\t\t\tscope.carriers.splice(scope.modalWindowData.carrierIndex, 1);\n\t\t\t\tscope.carriers = scope.carriers.slice();\n\t\t\t}\n\t\t}\n\n\t\tfunction openTinStatusModal(index, carrier) {\n\t\t\tscope.carrier = carrier;\n\t\t\tscope.modalWindowData = createModalWindowData(index, carrier.tinStatus);\n\t\t\tscope.showTinStatusModal = true;\n\t\t}\n\n\t\tfunction createModalWindowData(index, tinStatus) {\n\t\t\treturn {\n\t\t\t\tcarrierIndex: index,\n\t\t\t\tcarrierTinStatus: tinStatus\n\t\t\t};\n\t\t}\n\n\t\tfunction tinStatusChange() {\n\t\t\tvar tinStatusChangeRequest = {\n\t\t\t\tlegalName: scope.carrier.legalName,\n\t\t\t\ttin: scope.carrier.tin,\n\t\t\t\ttinStatus: scope.carrier.tinStatus\n\t\t\t};\n\n\t\t\tif (scope.carrier.taxLegalName) {\n\t\t\t\ttinStatusChangeRequest.legalName = scope.carrier.taxLegalName;\n\t\t\t}\n\n\t\t\tinternalAdminService.updateTinStatus(tinStatusChangeRequest)\n\t\t\t\t.then(function() {\n\t\t\t\t// \tgetCarriers();\n\t\t\t\t});\n\t\t}\n\n\t\tfunction tinStatusFilter(carrier) {\n\t\t\tif (carrier.tinStatus == 'NotValid')\n\t\t\t\treturn 'Invalid';\n\n\t\t\treturn carrier.tinStatus;\n\t\t}\n\n\t\tfunction carrierImpersonate(carrier) {\n\t\t\tsessionService.setCarrierImpersonated(carrier.carrierId,\n\t\t\t\tcarrier.legalName,\n\t\t\t\tcarrier.dotNumber,\n\t\t\t\tcarrier.intrastateCode,\n\t\t\t\tcarrier.intrastateState);\n\t\t}\n\n\t\tfunction setStatusFilter(status) {\n\t\t\tscope.searchType = 'docketNumber';\n\t\t\tsearchTypeChanged();\n\t\t\tclearSearch();\n\n\t\t\tscope.filterType = 'tinStatus';\n\t\t\tscope.filterValue = status;\n\t\t\t\n\t\t\tif (scope.ajaxIsRunning) {\n\t\t\t\treloadAjax = true;\n\t\t\t}\n\t\t\tgetSearchData();\n\t\t}\n\n\t\tfunction clearFilter() {\n\t\t\tscope.filterType = '';\n\t\t\tscope.filterValue = '';\n\t\t}\n\n\t\tfunction clearSearch() {\n\t\t\tscope.carriers = [];\n\t\t\tscope.searchInputError = '';\n\t\t\tscope.currentRow = 0;\n\t\t\tscope.totalRows = 0;\n\t\t\tscope.isSearch = true;\n\t\t}\n\t}\n})();\n","'use strict';\n\n(function() {\n\tangular.module('onboarding.internaladmin')\n\t\t.directive('cobAdminContractList', cobAdminContractList);\n\n\tcobAdminContractList.$inject = ['subjectObserverMessagesService', 'observerService', 'internalAdminService'];\n\n\tvar subjectObserverMessagesService, observerService, internalAdminService;\n\n\tfunction cobAdminContractList(_subjectObserverMessagesService_, _observerService_, _internalAdminService_) {\n\t\tsubjectObserverMessagesService = _subjectObserverMessagesService_;\n\t\tobserverService = _observerService_;\n\t\tinternalAdminService = _internalAdminService_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/internaladmin/cobAdminContractList.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tvar subjectMessages = subjectObserverMessagesService.getSubjectMessages(),\n\t\t\t\tobserverMessages = subjectObserverMessagesService.getObserverMessages();\n\n\t\t\tscope.ajaxIsRunning = false;\n\t\t\tscope.contracts = [];\n\t\t\tscope.totalRows = 0;\n\t\t\tscope.sortType = 'companyName';\n\t\t\tscope.sortReverse = true;\n\t\t\tscope.templateClicked = templateClicked;\n\t\t\tscope.saveTemplateId = saveTemplateId;\n\t\t\tscope.scope = scope;\n\n\t\t\tdocument.title = 'Admin - Contracts';\n\t\t\tgetContracts();\n\t\t}\n\n\t\tfunction getContracts() {\n\t\t\tif (scope.ajaxIsRunning) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tscope.ajaxIsRunning = true;\n\t\t\tsetTimeout(function() {\n\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_WAITING);\n\t\t\t},\n\t\t\t1);\n\n\t\t\tinternalAdminService.getAssureSignContracts()\n\t\t\t\t.then(function(response) {\n\n\t\t\t\t\tvar length = response.data.contracts.length;\n\t\t\t\t\tfor (var i = 0; i < length; i++) {\n\t\t\t\t\t\tscope.contracts.push(response.data.contracts[i]);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch(function(e) {\n\t\t\t\t\tconsole.log(e);\n\t\t\t\t})\n\t\t\t\t.finally(function() {\n\t\t\t\t\tscope.ajaxIsRunning = false;\n\t\t\t\t\tobserverService.sendMessageToSubject(scope,\n\t\t\t\t\t\tsubjectObserverMessagesService.getSubjectMessages().COB_SUBJECT_AJAX_DONE);\n\t\t\t\t});\n\n\t\t\treturn;\n\t\t}\n\n\t\tfunction saveTemplateId(contract) {\n\t\t\tif (contract.oldValue !== contract.templateId || contract.oldValue !== undefined) {\n\t\t\t\tif (contract.templateId !== '' && contract.templateId !== null) {\n\t\t\t\t\tinternalAdminService\n\t\t\t\t\t\t.updateContractTemplateId(contract.brokerId,\n\t\t\t\t\t\t\tcontract.contractId,\n\t\t\t\t\t\t\tcontract.templateId,\n\t\t\t\t\t\t\tcontract.contractName)\n\t\t\t\t\t\t.catch(function(res) {\n\t\t\t\t\t\t\tvar modelErrors = res.data.modelState;\n\t\t\t\t\t\t\tvar errors = [];\n\t\t\t\t\t\t\tfor (var key in modelErrors) {\n\t\t\t\t\t\t\t\tfor (var i = 0; i < modelErrors[key].length; i++) {\n\t\t\t\t\t\t\t\t\terrors.push(modelErrors[key][i]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconsole.log(errors);\n\n\t\t\t\t\t\t});\n\t\t\t\t\tcontract.editingTemplateId = false;\n\t\t\t\t} else {\n\t\t\t\t\tcontract.templateId = contract.oldValue;\n\n\t\t\t\t\tscope.$apply(function() {\n\t\t\t\t\t\tcontract.editingTemplateId = false;\n\t\t\t\t\t});\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction templateClicked($event, contract) {\n\t\t\t$event.stopPropagation();\n\t\t\tif (contract.editingTemplateId !== true) {\n\t\t\t\tcontract.oldValue = contract.templateId;\n\t\t\t\tcontract.editingTemplateId = true;\n\t\t\t}\n\t\t}\n\t}\n\n})();\n","'use strict';\n\n(function() {\n\tangular.module('onboarding.internaladmin')\n\t\t.directive('cobAssureSignIdModal', cobAssureSignIdModal);\n\n\tcobAssureSignIdModal.$inject = ['internalAdminService', 'validationService'];\n\tvar internalAdminService, validationService;\n\n\tfunction cobAssureSignIdModal(_internalAdminService_, _validationService_) {\n\n\t\tinternalAdminService = _internalAdminService_;\n\t\tvalidationService = _validationService_;\n\n\t\treturn {\n\t\t\trestrict: 'E',\n\t\t\tscope: {\n\t\t\t\tbrokerId: '=',\n\t\t\t\tcloseFn: '&',\n\t\t\t\tcompanyName: '=',\n\t\t\t\tdomain: '='\n\t\t\t},\n\t\t\treplace: true,\n\t\t\ttemplateUrl: '/app/internaladmin/cobAssureSignIdModal.html',\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope) {\n\n\t\tactivate();\n\n\t\tfunction activate() {\n\t\t\tscope.cancelClicked = cancelClicked;\n\t\t\tscope.saveClicked = saveClicked;\n\n\t\t\tscope.$watch('brokerId',\n\t\t\t\tfunction() {\n\t\t\t\t\tif (scope.brokerId > 0) {\n\t\t\t\t\t\tgetAssureSignContext();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}\n\n\t\tfunction cancelClicked() {\n\t\t\tscope.brokerId = 0;\n\t\t\tscope.closeFn()();\n\t\t}\n\n\t\tfunction getAssureSignContext() {\n\t\t\tinternalAdminService.identifyBroker(scope.domain)\n\t\t\t\t.then(function(response) {\n\t\t\t\t\tscope.brokerIdentity = response.data;\n\t\t\t\t})\n\t\t\t\t.catch(function(e) {\n\t\t\t\t\tconsole.print(e);\n\t\t\t\t});\n\n\t\t\treturn;\n\t\t}\n\n\t\tfunction saveClicked() {\n\t\t\tvalidateEmail();\n\t\t\tif (scope.assureSignUserIdError)\n\t\t\t\treturn;\n\t\t\tinternalAdminService.defineOnboardingBroker(scope.brokerIdentity)\n\t\t\t\t.then(function() {\n\t\t\t\t\t// all is good\n\t\t\t\t\tscope.closeFn()();\n\t\t\t\t})\n\t\t\t\t.catch(function(e) {\n\t\t\t\t\tconsole.print(e);\n\t\t\t\t});\n\t\t}\n\n\t\tfunction validateEmail() {\n\t\t\tif (scope.brokerIdentity.assureSignUserId &&\n !validationService.isValidEmail(scope.brokerIdentity.assureSignUserId)) {\n\t\t\t\tscope.assureSignUserIdError = 'Valid email is required';\n\t\t\t} else {\n\t\t\t\tdelete scope.assureSignUserIdError;\n\t\t\t}\n\t\t}\n\t}\n})();\n"]}