\" +\n\t\t\t\t\"Your Username is: \" + sUserName + \"
\" +\n\t\t\t\t\"Please store your Username and Password in a safe place for future reference.
\" +\n\t\t\t\t\"If you forget your password, you can have it sent to this email address by \" +\n\t\t\t\t\"clicking the "Forgot Password?" button on the login page.
\" +\n\t\t\t\t\"Login tips: \" +\n\t\t\t\t\"Type your username and password in. Do not use a copy and paste method, as that sometimes \" +\n\t\t\t\t\"includes additional data that does not display, but will cause it not to work. \" +\n\t\t\t\t\"Both the username and password are case sensitive. Capital letters should be entered \" +\n\t\t\t\t\"as capitalized, etc.\";\n\t\t\t\t\n\t\t\tswitch (sDatabaseID) {\n\t\t\t\tcase \"MC\":\n\t\t\t\t\tsReplyTo = \"eromero@mccurdy.org\";\n\t\t\t\t\tsFrom = \"McCurdy Ministries Volunteer Screening <\" + sReplyTo + \">\";\n\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tsReplyTo = \"testing@greatspirit.com\";\n\t\t\t\t\tsFrom = \"MCWebApps Testing <\" + sReplyTo + \">\";\n\t\t\t\tbreak;\t\n\t\t\t}\t\n\t\t\t\n\t\t\tvar params = {\n\t\t\t\tmethod: \"EmailSendCustom\",\n\t\t\t\tsEmailAddr: sEmail,\n\t\t\t\tsFrom: sFrom,\n\t\t\t\tsReplyTo: sReplyTo,\n\t\t\t\tsSubject: \"Account Information\",\n\t\t\t\tsEmailContent: sEmailContent\n\t\t\t};\n\t\t\treturn $http.post(mcWebCFC, params)\n\t\t\t.then(function (result) {\n\t\t\t\treturn result.data;\n\t\t\t});\n\t\t}\n\t\t\n\t}\n})();\n(function() {\n 'use strict';\n \n\tangular\n .module('mcweb')\n .factory('setCustService', setCustService);\n\n\tsetCustService.$inject = ['custData','custDataDev','webSessionStorage','headerService',\n\t\t'$rootScope'];\t\n\n function setCustService(custData, custDataDev, webSessionStorage, headerService,\n\t\t$rootScope) {\n\t\tvar service = {\n\t\t\tfromDataSource: fromDataSource,\n\t\t\tfromDatabaseID: fromDatabaseID\n\t\t};\n\t\treturn service;\n\t\t\t\t\n\t\tfunction fromDataSource(dataSource) {\n\t\t\twebSessionStorage.setStoredData('sDataSource', dataSource);\n\n\t\t\tif (dataSource.slice(-3) == \"Dev\" || dataSource == \"FalconVideos\") {\n\t\t\t\tfor (var i=0; i A reference for \" +\n\t\t\t\t\t\tsApplicant + \" has been referred to you by \" +\n\t\t\t\t\t\t$rootScope.user.USERFULLNAME + \" for completion. This is to \" +\n\t\t\t\t\t\t\"fulfill a requirement in the process for Safe Sanctuaries \" +\n\t\t\t\t\t\t\"Certification.
\";\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\tsEmailContent += \"We now have a CONVENIENT NEW WAY for you to manage your \" +\n\t\t\t\t\t\t\"reference requests. You may now login to your Safe Sanctuaries \" +\n\t\t\t\t\t\t\"account online and complete all of your waiting pastoral reference \" +\n\t\t\t\t\t\t\"requests at once. No more losing the request email among all the \" +\n\t\t\t\t\t\t\"other emails in your Inbox. \" +\n\t\t\t\t\t\t\"This will also now work from your tablet, smart phone, or other \" +\n\t\t\t\t\t\t\"devices.\";\n\t\t\t\t\t\t\n\t\t\t\t\tif (sReferralUserName != \"\") {\n\t\t\t\t\t\tsEmailContent += \"Just click the link below from within that device. \" +\n\t\t\t\t\t\t\"Click now to give it a try!
However, it appears you do not have an \" +\n\t\t\t\t\t\t\t\"active MissionConnect (Safe Sanctuaries) online account, which \" +\n\t\t\t\t\t\t\t\"is required to use this feature. If you receive frequent \" +\n\t\t\t\t\t\t\t\"reference requests, and would like an account, please contact \" +\n\t\t\t\t\t\t\t\"the MO Safe Sanctuaries office.\";\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tsEmailContent += \"
If you prefer, and you are on a computer, you \" +\n\t\t\t\t\t\t\"may click the following link to go directly to the reference for \" +\n\t\t\t\t\t\tsApplicant + \". This link will not work from mobile devices. \" +\n\t\t\t\t\t\t\"\" + sRefURLLink + \n\t\t\t\t\t\t\"
\" +\n\t\t\t\t\t\t\"Please try to complete this reference within 2 weeks.\"; \n\t\t\t\tbreak;\n\t\t\t}\n\t\t\t\t\n\t\t\t\treturn sEmailContent;\n\t\t}\n\t}\n\n})();\n(function () {\n\t'use strict';\n \n\tangular\n\t\t.module('mcweb')\n\t\t.factory('passwordStrength', passwordStrength);\n\n\tfunction passwordStrength() {\n\t\tvar reLowerCase = new RegExp(/([a-z]+)/);\n\t\tvar reUpperCase = new RegExp(/([A-Z]+)/);\n\t\tvar reNumber = new RegExp(/([0-9]+)/);\n\t\tvar reSymbol = new RegExp(/(\\W+)/);\n\t\t\n\t\tvar factory = {\n\t\t\tgetPWStrength: getPWStrength\n\t\t};\n\t\t\n\t\treturn factory;\n\t\t\n\t\tfunction getPWStrength(sPassword) {\n\t\t\tvar iStrength = 0;\n\t\t\tvar sPasswordStrength = \"Too Short\";\n\t\t\tvar sPWClass = \"tooShort\";\n\t\t\tif (sPassword.length > 8) {\n\t\t\t\tiStrength++;\n\t\t\t\tif ((sPassword.search(reLowerCase) != -1) && \n\t\t\t\t\t(sPassword.search(reUpperCase) != -1)) {\n\t\t\t\t\t\tiStrength++;\n\t\t\t\t}\n\t\t\t\tif (sPassword.search(reNumber) != -1) {\n\t\t\t\t\tiStrength++;\n\t\t\t\t}\n\t\t\t\tif (sPassword.search(reSymbol) != -1) {\n\t\t\t\t\tiStrength++;\n\t\t\t\t}\n\t\t\t\tif (sPassword.length > 11) {\n\t\t\t\t\tiStrength++;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tswitch (iStrength) {\n\t\t\t\t\tcase 0: \n\t\t\t\t\t\tsPasswordStrength = \"Too Short\";\n\t\t\t\t\t\tsPWClass = \"tooShort\";\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 1: \n\t\t\t\t\t\tsPasswordStrength = \"Very Weak\";\n\t\t\t\t\t\tsPWClass = \"veryWeak\";\t\t\t\t\t\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 2: \n\t\t\t\t\t\tsPasswordStrength = \"Weak\";\n\t\t\t\t\t\tsPWClass = \"weak\";\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 3: \n\t\t\t\t\t\tsPasswordStrength = \"Fair\";\n\t\t\t\t\t\tsPWClass = \"fair\";\t\t\t\t\t\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 4: \n\t\t\t\t\t\tsPasswordStrength = \"Strong\";\n\t\t\t\t\t\tsPWClass = \"strong\";\t\t\t\t\t\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 5: \n\t\t\t\t\t\tsPasswordStrength = \"Very Strong\";\n\t\t\t\t\t\tsPWClass = \"veryStrong\";\t\t\t\t\t\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn {\n\t\t\t\tstrength: sPasswordStrength,\n\t\t\t\tclass: sPWClass\n\t\t\t}\n\t\t\t\n\t\t}\n\t}\n\t\n})();\t \n(function(){\n 'use strict';\n\n angular\n\t\t.module('mcweb')\n\t\t.factory('modalService', modalService);\n\n\tmodalService.$inject = ['$uibModal','$log'];\n\n\tfunction modalService($uibModal, $log) {\n$log.info(\"modalService\");\n\t\t\n\t\tvar factory = {\n okAlert: openOKAlert,\n resultAlert: openResultAlert\n\t\t};\n\t\treturn factory;\n\t\t\n\t\t//customize more if need larger...\n\t\tfunction openOKAlert(title, alertMsg) {\n\t\t\t$uibModal.open({\n\t\t\t\tanimation: true,\n\t\t\t\tsize: 'sm',\n\t\t\t\ttemplateUrl: 'app/modals/modAlert.html',\n\t\t\t\tcontroller: 'ModalController',\n\t\t\t\tbindToController: true,\n\t\t\t\tcontrollerAs: 'vmMod',\n\t\t\t\tkeyboard: true,\n\t\t\t\tbackdrop: 'static',\n\t\t\t\tbackdropClass: 'bottom:0;height:100%;margin:0;padding-bottom:0',\n\t\t\t\tresolve: {\n\t\t\t\t\tmodType: function() {\n\t\t\t\t\t\treturn \"OK\";\n\t\t\t\t\t},\n\t\t\t\t\ttitle: function() {\n\t\t\t\t\t\treturn title;\n\t\t\t\t\t},\n\t\t\t\t\talertMsg: function() {\n\t\t\t\t\t\treturn alertMsg;\n\t\t\t\t\t}\t\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction openResultAlert(sz,result) { //sz:\"sm\",\"lg\";\n\t\t\t$uibModal.open({\n\t\t\t\tanimation: true,\n\t\t\t\tsize: sz,\n\t\t\t\ttemplateUrl: 'app/modals/modAlert.html',\n\t\t\t\tcontroller: 'ModalController',\n\t\t\t\tbindToController: true,\n\t\t\t\tcontrollerAs: 'vmMod',\n\t\t\t\tkeyboard: true,\n\t\t\t\tbackdrop: true,\n\t\t\t\tbackdropClass: 'bottom:0;height:100%;margin:0;padding-bottom:0',\n\t\t\t\tresolve: {\n\t\t\t\t\ttitle: function() {\t\t\t\t\t\t\n\t\t\t\t\t\treturn result[0].RESULT;\n\t\t\t\t\t},\n\t\t\t\t\talertMsg: function() {\n\t\t\t\t\t\treturn result[0].RESULTREASON;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\n\t}\t\t\n})();\t\n(function(){\n\t'use strict';\n/**\n * Created by jacob on 6/17/14.\n * SecUserLoginFunctions consolidates SecUserLogin, SecGetReturnCode and UserGetChurchFunctions (which doesn’t apply to all apps, so probably should add a parameter to skip it when not needed)\n */\n\n\tangular\n\t\t.module('mcweb')\n\t\t.factory('loginService', loginService);\n\n\tloginService.$inject = ['$http','webSessionStorage','$rootScope','modalService',\n\t\t'authServiceCFC','mcWebCFC','custData','$state','$log'];\n\n\tfunction loginService($http, webSessionStorage, $rootScope, modalService,\n\t\tauthServiceCFC, mcWebCFC, custData, $state, $log) {\n\t\tvar sDataSource = \"\";\n\n\t\tvar factory = {\n\t\t\tuser: {\n\t\t\t\tUSERID: 0,\n\t\t\t\tloggedIn: false,\n\t\t\t\tRETURNCODE: \"\",\n\t\t\t\tUserChurchFNs: []\n\t\t\t},\n\t\t\tlogin: login,\n\t\t\tlogout: logout,\n\t\t\tsecDeleteReturnCode: secDeleteReturnCode,\n\t\t\tsecGetReturnCode: secGetReturnCode,\n\t\t\tsecReturnLogin: secReturnLogin,\n\t\t\tsecReturnReset: secReturnReset\n\t\t};\n\t\treturn factory;\n\t\t\n\t\t//Return ONLY Functions in UserGetChurchFunctions for MENU:\n\t\tfunction login(username, password) {\n\t\t\tsDataSource = webSessionStorage.getStoredData('sDataSource');\n\t\t\tvar params = {\n\t\t\t\tmethod : \"SecUserLoginFunctions\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tsUserName: username,\n\t\t\t\tsPassword: password,\n\t\t\t\tsApp: \"MCWebApps.040\",\n\t\t\t\tiMinutes: 30,\n\t\t\t\tsFn: \"all\",\n\t\t\t\tbFnOnly: 1\n\t\t\t};\n\t\t\treturn $http.post(authServiceCFC, params)\n\t\t\t.then(function(results) { $log.info(results)\n\t\t\t\tif(results.data[0].SECUSERLOGIN[0].RESULT == \"Success\"){\n\t\t\t\t\tsetUserInfo(results);\n\t\t\t\t}\n\t\t\t\treturn results.data;\n\t\t\t});\n\t\t}\n\n\t\tfunction logout() {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"SecDeleteReturnCode\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tsReturnCode: factory.user.RETURNCODE\n\t\t\t};\n\t\t\treturn $http.post(authServiceCFC, params)\n\t\t\t.then(function(results) {\n\t\t\t\tif (results.data[0].RESULTS == 'Delete Successful') {\n\t\t\t\t\tfactory.user.RETURNCODE = \"\";\n\t\t\t\t}\n\t\t\t\tfactory.user.loggedIn = false;\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction secDeleteReturnCode(retCode) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"SecDeleteReturnCode\",\n\t\t\t\tsReturnCode: retCode\n\t\t\t};\n\t\t\treturn $http.post(mcWebCFC, params)\n\t\t\t.then(function(results) {\n\t\t\t\treturn results.data;\n\t\t\t});\n\t\t}\n\t\t\n\t/* Used from NavBarCtrl to Get returnCode just to transfer to\n\t\tdifferent app... then SecUserLoginFunctions is run again from new\n\t\tapp to set a new ReturnCode to 30 minutes.\n\t\tiMin=1, sFn=[app to load] */\n\t\tfunction secGetReturnCode(iMin,sFn) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"SecGetReturnCode\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tiUserID: factory.user.USERID,\n\t\t\t\tsApp: \"MCWebApps\",\n\t\t\t\tiMinutes: iMin,\n\t\t\t\tsFn: sFn,\n\t\t\t\tsParams: \"\"\n\t\t\t};\n\t\t\treturn $http.post(authServiceCFC, params)\n\t\t\t.then(function(results) {\n\t\t\t\tif (results.data.length > 0) {\n\t\t\t\t\tfactory.user.RETURNCODE = results.data[0].RETURNCODE;\n\t\t\t\t}\n\t\t\t\treturn results.data\n\t\t\t});\n\t\t}\n\t\t\n\t/* UNABLE TO USE secReturnLogin from AuthService.cfc\n\t\tApp opened by passing permission from other app...\n\t\tStore DatabaseID & FN=$rootScope.goToApp to open.\n\t\tThen call regular login with USERNAME/PASSWORD.\n\t\t(USERNAME, DATABASEID(sDataSource), APP, FN, USERID, PASSWORD, PARAMS) */\t\n function secReturnLogin(sReturnCode) {\n var params = {\n method: \"SecReturnLogin\",\n sReturnCode: sReturnCode\n };\n return $http.post(mcWebCFC, params)\n .then(function (results) {\n\t\t\t\ttry {\n\t\t\t\t\tif (results.data[0].DATABASEID != \"\") {\n\t\t\t\t\t\tsDataSource = results.data[0].DATABASEID;\n\t\t\t\t\t}\n\t\t\t\t/* User gets logged in, and new ReturnCode created: */\t\n\t\t\t\t\tsecDeleteReturnCode(sReturnCode);\n\t\t\t\t}\n\t\t\t\tcatch (err) {\n\t\t\t\t//\"TypeError: Cannot read property 'USERID' of undefined\"\t\n\t\t\t\t\tmodalService.okAlert(\"Error\", err);\n\t\t\t\t}\t\n\t\t\t\treturn results.data;\n\t\t\t});\n\t\t}\n \n /* CALLED When Apps used to extend ReturnCode another 30 minutes (default)\n\t before expiration. If expires, user has to Login again for NEW returnCode. */ \n function secReturnReset(resetCode, iMin) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"SecReturnReset\",\n\t\t\t\tiUserID: factory.user.USERID,\n\t\t\t\tsReturnCode: resetCode,\n\t\t\t\tiNewMinutes: iMin\n\t\t\t};\n return $http.post(mcWebCFC, params)\n .then(function (results) {\n if (results.RESULT == \"Expired\") {\n\t\t\t\t\tfactory.user.loggedIn = false;\n\t\t\t\t\tmodalService.okAlert(\"Expired\",\n\t\t\t\t\t\t\"Your session has expired.
\" +\n\t\t\t\t\"DataSource: \" + sDataSource + \" \" +\n\t\t\t\t\"Error: \" + resultReason + \" \" +\n\t\t\t\t\"UserID: \" + loginService.user.USERID;\n\t\t\treturn sEmailContent;\n\t\t}\n\t\t\n\t}\n\n})();\n(function () {\n\t'use strict';\n \n\tangular\n\t\t.module('mcweb')\n\t\t.factory('emailValidator', emailValidator);\n\n\tfunction emailValidator() {\n\t\tvar factory = {\n\t\t\tisValid: isValid\n\t\t};\n\t\t\n\t\treturn factory;\n\t\t\n\t\tfunction isValid(sEmail) {\n\t\t\tvar filter = new RegExp(/^([a-zA-Z0-9_\\.\\-])+\\@(([a-zA-Z0-9\\-])+\\.)+([a-zA-Z0-9]{2,4})+$/);\n\t\t\t\t\n\t\t\t\tif (sEmail.search(filter) == -1) {\n\t\t\t\t\treturn false;\n\t\t\t\t} else {\n\t\t\t\t\treturn true;\n\t\t\t}\n\t\t}\t\t\n\t}\n\n})();\t \n(function () {\n\t'use strict';\n\n\tangular\n\t\t.module('mcweb')\n\t\t.factory('datesService', datesService);\n\n\tdatesService.$inject = [];\n\n\tfunction datesService() {\n\n\t\tvar service = {\n\t\t\tcalStrToDbDateStr: calStrToDbDateStr,\n\t\t\tcurrentYear: currentYear,\n\t\t\tget19thBirthDate: get19thBirthDate,\n\t\t\tjsDateStrToCalendarStr: jsDateStrToCalendarStr,\n\t\t\tjsDateStrToDbDateStr: jsDateStrToDbDateStr,\n\t\t\ts1yrFromToday: s1yrFromToday,\n\t\t\ts6mosFromToday: s6mosFromToday,\n\t\t\ts15mosFromToday: s15mosFromToday,\n\t\t\ttodayToCalString: todayToCalString,\n\t\t\ttodayToDbString: todayToDbString\n\t\t};\n\t\treturn service;\n\t\t\n\t\tfunction calStrToDbDateStr(sCal) {\n\t\t\tvar dCal = new Date(sCal);\n\t\t\tvar mm = dCal.getMonth()+1;\n\t\t\tif (mm < 10) { mm = \"0\" + String(mm); }\n\t\t\tvar dd = dCal.getDate();\n\t\t\tif (dd < 10) { dd = \"0\" + String(dd); }\n\t\t\tvar sDbDate = String(dCal.getFullYear()) + \"- \" + mm + \"-\" + dd;\n\t\t\treturn sDbDate;\t\t\t// \"01/01/2017\" ==> \"2017-01-01\"\n\t\t}\n\n\t\tfunction currentYear() {\n\t\t\tvar today = new Date();\n\t\t\tvar yr = today.getFullYear();\n\t\t\treturn yr; //2017\t\n\t\t}\n\t\t\n\t\tfunction get19thBirthDate(bDay) { // 19th BirthDate as MM/DD/YYYY\n\t\t\tvar s19thBDay = \"\";\n\t\t\tvar dt = new Date(bDay);\n\t\t\tvar mm = dt.getMonth()+1;\n\t\t\tif (mm < 10) { mm = \"0\" + String(mm); }\n\t\t\tvar dd = dt.getDate();\n\t\t\tif (dd < 10) { dd = \"0\" + String(dd); }\n\t\t\ts19thBDay = mm + \"/\" + dd + \"/\" + String(dt.getFullYear()+19);\n\t\t\treturn s19thBDay;\n\t\t}\n\n\t\tfunction jsDateStrToCalendarStr(dtStr) {\n\t\t\tvar sCalDate = \"\";\n\t\t\tvar dt = new Date(dtStr);\n\t\t\tvar mm = dt.getMonth()+1;\n\t\t\tif (mm < 10) { mm = \"0\" + String(mm); }\n\t\t\tvar dd = dt.getDate();\n\t\t\tif (dd < 10) { dd = \"0\" + String(dd); }\n\t\t\tsCalDate = mm + \"/\" + dd + \"/\" + String(dt.getFullYear()) ;\n\t\t\treturn sCalDate; // \"August 03, 2017 17:50:20\" ==> \"08/03/2017\"\n\t\t}\n\n\t\tfunction jsDateStrToDbDateStr(dtStr) {\n\t\t\tvar sDbDate = \"\";\n\t\t\tvar dt = new Date(dtStr);\n\t\t\tvar mm = dt.getMonth()+1;\n\t\t\tvar dd = dt.getDate();\n\t\t\tsDbDate = dt.getFullYear() + \"-\" + mm +\t\"-\" + dd;\n\t\t\treturn sDbDate; // // \"August 03, 2017 17:50:20\" ==> \"2017-08-03\"\n\t\t}\n\t\t\n\t\tfunction s1yrFromToday() {\n\t\t\tvar today = new Date();\n\t\t\tvar mm = today.getMonth()+1;\n\t\t\tvar dd = today.getDate();\n\t\t\tif (dd < 10) { dd = \"0\" + String(dd); }\n\t\t\tvar sCalDate = mm + \"/\" + dd + \"/\" + String(today.getFullYear()+1);\n\t\t\treturn sCalDate; // today in 2017 as \"MM/DD/2018\"\n\t\t}\n\t\t\n\t\tfunction s6mosFromToday() {\n\t\t\tvar today = new Date();\n\t\t\tvar mm = today.getMonth()+1;\n\t\t\tvar dd = today.getDate();\n\t\t\tif (dd < 10) { dd = \"0\" + String(dd); }\n\t\t\tvar yr = today.getFullYear();\n\t\t\tvar sCalDate = \"\";\n\t\t\tif (mm < 7) { sCalDate = String(mm+6) + \"/\" + dd + \"/\" + yr; }\n\t\t\telse { sCalDate = String((mm+6)-12) + \"/\" + dd + \"/\" + String(yr+1); }\n\t\t\treturn sCalDate; // today= 7/1/2017 ==> \"01/01/2018\"\n\t\t}\n\t\t\n\t\tfunction s15mosFromToday() {\n\t\t\tvar today = new Date();\n\t\t\tvar mm = today.getMonth()+1;\n\t\t\tvar dd = today.getDate();\n\t\t\tif (dd < 10) { dd = \"0\" + String(dd); }\n\t\t\tvar yr = Number(today.getFullYear())+1;\n\t\t\tvar sCalDate = \"\";\n\t\t\tif (mm < 10) { sCalDate = String(mm+3) + \"/\" + dd + \"/\" + yr; }\n\t\t\telse { sCalDate = String((mm+3)-12) + \"/\" + dd + \"/\" + String(yr+1); }\n\t\t\treturn sCalDate; // today= 10/1/2017 ==> \"01/01/2019\"\n\t\t}\n\t\t\n\t\tfunction todayToCalString() {\n\t\t\tvar today = new Date();\n\t\t\tvar mm = today.getMonth()+1;\n\t\t\tvar dd = today.getDate();\n\t\t\tvar sCalToday = mm + \"/\" + dd + \"/\" + String(today.getFullYear()) ;\n\t\t\treturn sCalToday;\t// today as \"MM/DD/YYYY\"\n\t\t}\n\t\t\n\t\tfunction todayToDbString() {\n\t\t\tvar today = new Date();\n\t\t\tvar mm = today.getMonth()+1;\n\t\t\tvar dd = today.getDate();\n\t\t\tvar sDbToday = String(today.getFullYear()) + \"-\" + mm + \"-\" + dd;\n\t\t\treturn sDbToday;\t// today as \"YYYY-MM-DD\"\n\t\t}\n\n\t}\n})();\n(function () {\n\t'use strict';\n \n\tangular\n\t\t.module('mcweb')\n\t\t.factory('dataService', dataService);\n\n\tdataService.$inject = ['$http','$sce','webSessionStorage','mcWebCFC','proJsCFC','loginService'];\n\n\tfunction dataService($http, $sce, webSessionStorage, mcWebCFC, proJsCFC, loginService) {\n\t\tvar sDataSource = \"\";\n\t\t\n\t\tvar service = {\n\t\t\tsetDataSource: setDataSource,\n\t\t\taddrGetAll: addrGetAll,\n\t\t\tchLoadAll: chLoadAll,\n\t\t\temailSendCustom: emailSendCustom,\n\t\t\temailSendError: emailSendError,\n\t\t\temGetAll: emGetAll,\n\t\t\tlibGetMaintenanceMsg: libGetMaintenanceMsg,\n\t\t\tpeoGetByEmail: peoGetByEmail,\n\t\t\tpeoGetForChurch: peoGetForChurch,\n\t\t\tpeoSave: peoSave,\n\t\t\tphGetAll: phGetAll,\n\t\t\tproGetForm: proGetForm,\n\t\t\tproSaveFormData: proSaveFormData,\n\t\t\tproSaveMain: proSaveMain,\n\t\t\tproSaveProcess: proSaveProcess,\n\t\t\tsendForgottenPassword: sendForgottenPassword,\n\t\t\tusersChangePassword: usersChangePassword,\n\t\t\tusersGetOne: usersGetOne,\n\t\t\tusersSave: usersSave\n\t\t};\n\t\treturn service;\n\t\t\n\t\tfunction setDataSource() {\n\t\t\tsDataSource = webSessionStorage.getStoredData('sDataSource');\n\t\t}\n\t\t\n\t\tfunction addrGetAll(iEntityID) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"AddrGetAll\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tiEntityID: iEntityID\n\t\t\t};\n\t\t\treturn $http.post(mcWebCFC, params)\n\t\t\t.then(function(results) {\n\t\t\t\treturn results.data;\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction chLoadAll(sChurchName) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"ChLoadAll\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tsChurchName: sChurchName\n\t\t\t};\n\t\t\treturn $http.post(mcWebCFC, params)\n\t\t\t.then(function(results) {\n\t\t\t\tresetReturnCode();\n\t\t\t\treturn results.data;\n\t\t\t});\n\t\t}\n\n\t\tfunction emailSendCustom(sEmailAddr, sFrom, sReplyTo, sSubject, sEmailContent) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"EmailSendCustom\",\n\t\t\t\tsEmailAddr: sEmailAddr,\n\t\t\t\tsFrom: sFrom,\n\t\t\t\tsReplyTo: sReplyTo,\n\t\t\t\tsSubject: sSubject,\n\t\t\t\tsEmailContent: sEmailContent\n\t\t\t};\n\t\t\treturn $http.post(mcWebCFC, params)\n\t\t\t.then(function (results) {\n\t\t\t\treturn results.data;\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction emailSendError(sEmailContent) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"EmailSendCustom\",\n\t\t\t\tsEmailAddr: \"errors@greatspirit.com\",\n\t\t\t\tsFrom: \"GSS Error-Notification 0) {\n\t\t\t\tfor (var i=0; i Please contact your Conference \" +\n\t\t\t\t\t\"Administrator to request access.\");\n\t\t\t}\n\t\t\t\n\t\t\treturn perm; //Valid, Denied, MultApps, or an App FN.\t\n\t\t}\t\n\t}\n})();\n(function () {\n\t'use strict';\n \n\tangular\n\t\t.module('mcweb')\n\t\t.directive('dirEnterKey', dirEnterKey);\n\t\n\tfunction dirEnterKey($event) {\n\t\t\n\t\treturn function($scope, attrs) {\n\t\t\tvar keyCode = $event.keyCode;\n\t\t\tif (keyCode === 13) {\n\t\t\t\t$scope.$apply(function() {\n\t\t\t\t\t$scope.$eval(attrs.dirEnterKey);\n\t\t\t\t});\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\t}\n\t\n})();\t\n\n\n(function() {\n\t'use strict';\n\n\tangular\n\t\t.module('mcweb')\n\t\t.config(function($httpProvider) {\n\t\t\t$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8'; \n\n\t\t\t// Override $http service's default transformRequest \n\t\t\t$httpProvider.defaults.transformRequest = [function(data) { \n\t\t\t\t/* The workhorse; converts an object to x-www-form-urlencoded serialization. * @param {Object} obj * @return {String} */ \n\t\t\t\tvar param = function(obj) { \n\t\t\t\t\tvar query = ''; \n\t\t\t\t\tvar name, value, fullSubName, subName, subValue, innerObj, i; \n\t\t\t\t\tfor(name in obj) { \n\t\t\t\t\t\tvalue = obj[name]; \n\t\t\t\t\t\tif(value instanceof Array) { \n\t\t\t\t\t\t\tfor(i=0; i chgPWCtrl\n\t\t\tUSERID,\t\t\t\t\t==> dataService\n\t\t\tUSERFULLNAME,\t\t\t==> \n\t\t\tUSERENTITYID\t\t\t==> \n\t\t\tRETURNCODE\t\t\t\t==> \n\t\t\tRETURNKEY\n\t\t\tfirstName\t\t\t\t==> \n\t\t\tlastName\t\t\t\t==> \n\t\t\tloggedIn\n\t\t\tUserChurchFNs\t\t\t==> populated with USERGETCHURCHFUNCTIONS return\n\t\t};\n\n\t$rootScope\n\t\t.loggedIn\t\twhile successfully logged In.\n\t\t.myApps\t\t\t(navBarCtrl) to load Apps into MENU Secure Applications.\n\t\t.sCurForm\t\tlast form accessed, for HelpDesk assistance.\n\t\t.selEntityID;\tSelected person for view of ContactInfo. Stored to return as \n\t\t\t\t\t\t\tselected if 2 with same name in list.\n\t\t.\n\t\nCOLORS:\n\t#000\t\tblack\n\t#333\t\tlight black\n\t#555\t\tdark gray\n\t#f5f5f5\t\tlight gray for buttons\n\t#E8C944\t\tMC Gold 100%\n\t#6B9AAE\t\tMC Blue 50%\n\t#AEB9C6\t\tMC Blue 35%\t\n\t\n\tLOCAL PATH: cd Applications/ColdFusion9/wwwroot/Burt/Falcon/Web_TestSite/mcweb\n\tTESTING PATH: \n\t\n\tPrior to release:\n\t\t* index.module\n\t\t\t\n\t\t* index.constants\n\t\t\t\n\t\t* loginCtrl\n\t\t\t\n\t\t\t\n\t\t\t\n\tRelease Path: https://umcdata.net/MissionConnect/Public/MCWebApps/#/index.html opt:(?conf=MO)\t\t\n\n*/\t\nangular\n\t.module('mcweb')\n\t.filter('fZipcode', fZipcode);\n\t\nfunction fZipcode() {\n\treturn function (zip) {\n\t\tif (!zip) {\n\t\t\treturn zip;\n\t\t} else {\n\t\t\tif (zip.toString().length === 9) {\n\t\t\t\treturn zip.toString().slice(0,5) + \"-\" + zip.toString().slice(5);\n\t\t\t} else if (zip.toString().length === 5) {\n\t\t\t\treturn zip.toString();\n\t\t\t} else {\n\t\t\t\treturn zip;\n\t\t\t}\n\t\t}\n\t}\t\n}\nangular\n\t.module('mcweb')\n\t.filter('fPhone', fPhone);\n\n//Called directly from the view for display\n\t\nfunction fPhone() {\n\treturn function (input) {\n\t\tif (!input) {\n\t\t\treturn input;\n\t\t} else {\n\t\t\tvar value = input.toString().trim().replace(/^\\+/, '');\n\t\t\tif (value.match(/[^0-9]/)) {\n\t\t\t\treturn input;\n\t\t\t}\n\t\t\t\n\t\t\tvar country = 0;\n\t\t\tvar areaCode, number;\n\t\t\t\n\t\t\tswitch (value.length) {\n\t\t\t\tcase 10: // (###) ###-####\n\t\t\t\t\tcountry = 1;\n\t\t\t\t\tareaCode = value.substr(0,3);\n\t\t\t\t\tnumber = value.slice(3);\n\t\t\t\tbreak;\n\t\t\t\tcase 11: // Foreign\n\t\t\t\t\tcountry = value[0];\n\t\t\t\t\tareaCode = value.substring(1,4);\n\t\t\t\t\tnumber = value.slice(4);\n\t\t\t\tbreak;\n\t\t\t\tcase 12: // Foreign\n\t\t\t\t\tcountry = value.substring(0,3);\n\t\t\t\t\tareaCode = value.substring(3,5);\n\t\t\t\t\tnumber = value.slice(5);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\t\n\t\t\tif (country.value == 0) {\n\t\t\t\treturn input;\n\t\t\t} else {\n\t\t\t\tif (country == 1) {\n\t\t\t\t\tcountry = \"\";\n\t\t\t\t}\n\t\t\t\tnumber = number.substring(0,3) + \"-\" + number.slice(3);\n\n\t\t\t\treturn (country + \" (\" + areaCode + \") \" + number).trim();\n\t\t\t}\n\t\t}\n\t}\t\n}\nangular\n .module('mcweb')\n .controller('NewAcctController', NewAcctController);\n\nNewAcctController.$inject = ['$rootScope','$state', '$window', 'passwordStrength',\n\t'confirmEmailChg', 'dataService','loginService','contactInfo','datesService',\n\t'webSessionStorage','userAcctEmails','errorEmailNotification','protectURL','$log'];\t\n\nfunction NewAcctController($rootScope, $state, $window, passwordStrength,\n\tconfirmEmailChg, dataService, loginService, contactInfo, datesService, \n\twebSessionStorage, userAcctEmails, errorEmailNotification, protectURL, $log) {\n\tvar vm = this;\t//vmUA\n \n vm.bReadyToSave = 'false';\n vm.bReadyToSaveEmail = false;\n vm.bReadyToSavePW = false;\n vm.bReadyToSaveUsername = false;\n vm.imgMCBanner = { image: \"assets/images/Mc_Banner978x75.png\" };\n vm.sDatabaseID = webSessionStorage.getStoredData('sDatabaseID');\n vm.sPasswordStrength = \"Too Short\";\n vm.sProID = \"\";\t\t\t\t\t\t\t//ONLY used in McCurdy Protect Initialization with New Account.\n vm.sPWClass = \"tooShort\";\n vm.sSaveSuccessMsg = \"\";\n \n vm.data = {\n\t\tfirstName:\"\", lastName:\"\",\n\t\tpassword:\"\", confirmPW:\"\",\n\t\temail:\"\", confirmEmail:\"\",\n\t\tuserName:\"\"};\t\t\t\t\t\n\tvm.iEntityID = 0;\n\tvm.iUserID = 0;\n \n \n function validateEmail() {\n\t\tvar emValidate = confirmEmailChg.confirmEmail(vm.data.email, vm.data.confirmEmail);\n\t\tswitch (emValidate) {\n\t\t\tcase \"true\": \n\t\t\t\tvm.bReadyToSaveEmail = true;\n\t\t\tbreak;\n\t\t\tcase \"noMatch\":\n\t\t\t\tvm.bReadyToSaveEmail = false;\n\t\t\t\tvm.data.confirmEmail = \"\";\n\t\t\tbreak;\n\t\t\tcase \"false\": //returned when one or other is \"\"\n\t\t\t\tvm.bReadyToSaveEmail = false;\n\t\t\tbreak;\n\t\t}\n }\n \n function validatePW() {\n\t\tif (vm.data.password != \"\" && vm.data.confirmPW != \"\") {\n\t\t\tif (vm.data.password == vm.data.confirmPW) {\n\t\t\t\tif (vm.sPasswordStrength == \"Strong\" ||\n\t\t\t\t\tvm.sPasswordStrength == \"Very Strong\") {\n\t\t\t\t\tvm.bReadyToSavePW = true; \n\t\t\t\t} else {\n\t\t\t\t\tvm.bReadyToSavePW = false;\n\t\t\t\t\tvm.data.confirmPW = \"\";\n\t\t\t\t\t$window.alert(\"The password needs to meet the \\\"Strong\\\"\\n\" +\n\t\t\t\t\t\t\"or \\\"Very Strong\\\" validation before it can be saved.\");\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t$window.alert(\"The entered Password and the Confirmed \" +\n\t\t\t\t\t\"Password do not match. Please enter the confirmed password again.\");\n\t\t\t\tvm.data.confirmPW = \"\";\n\t\t\t\tvm.bReadyToSavePW = false;\n\t\t\t}\t\n\t\t} else { vm.bReadyToSavePW = false; }\n }\n \n function validateUserName() {\n\t\tvar un = vm.data.userName;\n\t\tif (un != \"\") {\n\t\t\tif (un.indexOf(\"'\") != -1) {\n\t\t\t\t$window.alert(\"The User Name cannot contain an apostrophe ('). Please remove \" +\n\t\t\t\t\t\"the apostrophe from the User Name entry.\");\n\t\t\t\tvm.bReadyToSaveUsername = false;\t\n\t\t\t} else if (un.indexOf(\"gss\") != -1) {\n\t\t\t\t$window.alert(\"The prefix of 'gss' is reserved for authorized Great Spirit Systems \" +\n\t\t\t\t\t\"staff only. Please use different characters for the first 3 positions in your \" +\n\t\t\t\t\t\"User Name.\");\n\t\t\t\tvm.bReadyToSaveUsername = false;\t\n\t\t\t} else if (un.length < 4) {\n\t\t\t\t$window.alert(\"The User Name must be at least 4 characters in length.\");\n\t\t\t\tvm.bReadyToSaveUsername = false;\n\t\t\t}\n\t\t\telse { vm.bReadyToSaveUsername = true; }\n\t\t} else { vm.bReadyToSaveUsername = false; }\t\n }\n\t\t\t\n function saveNewPersonRecord() {\n\t\tvar fn = vm.data.firstName.toLowerCase();\n\t\tvar fName = fn.substr(0,1).toUpperCase() + fn.slice(1);\n\t\tvm.data.firstName = fName;\n\t\tvar ln = vm.data.lastName.toLowerCase();\n\t\tvar lName = ln.substr(0,1).toUpperCase() + ln.slice(1);\n\t\tvm.data.lastName = lName;\n\t\tvar sRawDataString = \"MCWebApps || NewAccount_PR || -10 || I || FirstName==\" + fName +\n\t\t\t\" || LastName==\" + lName + \" || ClergyLay==L || AppName==WebProtect || Locked==-1 ^^ \";\n$log.info(\"savePeo:\",sRawDataString)\n\t\tdataService.peoSave(sRawDataString)\n\t\t.then(function (result) {\n\t\t\tif (result[0].RESULTCODE == \"Success\") {\n\t\t\t\tvar idx = result[0].RESULTREASON.indexOf(\"EntityID=\");\n\t\t\t\tvm.iEntityID = Number(result[0].RESULTREASON.slice(idx+9));\n\t\t\t\tsaveContactEmail();\n\t\t\t} else {\n\t\t\t\tvar sEmailContent = errorEmailNotification.error4(\"newAcctCtrl/peoSave\",\n\t\t\t\t\tresult[0].RESULTREASON);\n\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t}\n\t\t});\n }\n \n function saveContactEmail() { $log.info(\"SaveContactEmail...\")\n\t\tcontactInfo.savePersonalEmail(vm.iEntityID,vm.data.email)\n\t\t.then(function(result) {\n\t\t\tif (result[0].RESULTCODE == \"Success\") {\n\t\t\t\tsaveUserAccount();\n\t\t\t} else {\n\t\t\t\tvar sEmailContent = errorEmailNotification.error4(\"newAcctCtrl/saveContactEmail\",\n\t\t\t\t\tresult[0].RESULTREASON);\n\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t}\n\t\t});\n\t}\t\n\t\t\n\tfunction saveUserAccount() { $log.info(\"saveUserAccount...\")\t\n\t\tvar pwExpires = datesService.s15mosFromToday();\n\t\tvar sSaveString = \"MCWebApps || NewAccount_UA || -12 || I || UserName==\" +\n\t\t\tvm.data.userName + \" || UserFullName==\" + vm.data.firstName + \" \" + vm.data.lastName +\n\t\t\t\" || UserDesc==Public User || Active==1 || Admin==0 || Password==\" + vm.data.password +\n\t\t\t\" || PasswordExpires==\" + pwExpires + \" || PWStrength==\" + vm.sPasswordStrength + \n\t\t\t\" || UserEmail==\" + vm.data.email + \" || UserEntityID==\" + vm.iEntityID + \" || UserLevel==2 ^^ \";\n\t\t\n\t\tdataService.usersSave(sSaveString)\n\t\t.then(function(result) { $log.info(result)\n if (result[0].RESULTCODE == \"Success\") {\n\t\t\t\t//found bug of \".\" after UserID, so have to detect length,\n\t\t\t\t//and remove 1 character to get actual UserID.\n\t\t\t\tvar idx = result[0].RESULTREASON.indexOf(\"UserID=\");\n\t\t\t\tvar len = result[0].RESULTREASON.length;\n\t\t\t\tvm.iUserID = result[0].RESULTREASON.substring(idx+7,len-1);\n\n\t\t\t\tswitch (vm.sDatabaseID) {\n\t\t\t\t\tcase \"MC\": case \"MC-DEV\":\n\t\t\t\t\t\tvar sRawDataString = \"MCWebApps || NewAcct_ProMain || \" + vm.iUserID + \n\t\t\t\t\t\t\t\" || I || EntityID==\" + vm.iEntityID + \" || CertTypeID==4 ^^ \";\n$log.info(sRawDataString);\n\t\t\t\t\t\tdataService.proSaveMain(sRawDataString)\n\t\t\t\t\t\t.then(function(result) { $log.info(\"ProMain:\",result)\n\t\t\t\t\t\t\tif (result[0].RESULTCODE == \"Success\") {\n\t\t\t\t\t\t\t\tidx = result[0].RESULTREASON.indexOf(\"ProID=\");\n\t\t\t\t\t\t\t\tvm.sProID = result[0].RESULTREASON.slice(idx+6);\n\t\t\t\t\t\t\t\tsaveProProcessRecord();\t\n\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsendNewUserAcctEmail();\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (result[0].RESULTREASON.indexOf(\"UserName\") == 0 &&\n\t\t\t\t\tresult[0].RESULTREASON.indexOf(\"already in use\") > 0) {\n\t\t\t\t\tvm.data.userName = \"\";\n\t\t\t\t\t$window.alert(result[0].RESULTREASON + \n\t\t\t\t\t\t\"\\nPlease try entering another unique User Name.\");\n\t\t\t\t} else {\t\n\t\t\t\t\tvar sEmailContent = errorEmailNotification.error4(\"newAcctCtrl/saveUserAccount\",\n\t\t\t\t\t\tresult[0].RESULTREASON);\n\t\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t\t}\t\n\t\t\t}\n\t\t});\n }\n \n\t//McCurdy ONLY... as ONLY Protect app in use!\n\tfunction saveProProcessRecord() {\n\t\tvar dStepExpires = datesService.s6mosFromToday();\n\t\tvar sDbToday = datesService.todayToDbString();\n\n\t\tvar sRawDataString = \"MCWebApps || NewAcct_ProProcess || \" + vm.iUserID +\n\t\t\t\" || I || ProID==\" + vm.sProID + \" || StepID==400 || StepDate==\" + sDbToday + \n\t\t\t\" || StepNote==Initialized by \" + vm.data.firstName + \" \" + vm.data.lastName + \n\t\t\t\" ^^ I || ProID==\" + vm.sProID + \" || StepID==401 || StepExpires==\" + \n\t\t\tdStepExpires + \" ^^ \";\n\t\t\n\t\tdataService.proSaveProcess(sRawDataString)\n\t\t.then(function(result) { $log.info(\"ProProcess:,\",result)\n\t\t\tif(result[0].RESULTCODE == 'Success') {\n\t\t\t\tproSaveInitData();\n\t\t\t} else {\n\t\t\t\tvar sEmailContent = errorEmailNotification.error4(\"newAcctCtrl/saveProProcessRecord\",\n\t\t\t\t\tresult[0].RESULTREASON);\n\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t}\n\t\t});\n }\n\n\t//McCurdy ONLY... save initial Protect data...\n\tfunction proSaveInitData() {\n\t\tvar sRawDataString = \"MCWebApps || NewAcct_ProData || \" + vm.iUserID + \" || \";\n\n\t\tdataService.proGetForm(\"Application\")\n\t\t.then(function(defs) {\n\t\t\tif (defs.length > 0) {\n\t\t\t\tfor (var i=0; i\" +\n\t\t\t\t\"You must create a new password to continue.\");\n\t\t\t$state.go('chgPW');\t\n\t\t} else {\n\t\t\tvar sFn = \"\";\n\t\t\tvar sPath = \"\";\n\t\t\tswitch (app) {\n\t\t\t\tcase \"Contact Information\":\n\t\t\t\t\tsFn = \"ContactInfo\";\n\t\t\t\t\t$rootScope.sCurForm = \"Contact Information\";\n\t\t\t\tbreak;\n\t\t\t\tcase \"Local Church Leaders\":\n\t\t\t\t\tsFn = \"ChLeaders\";\n\t\t\t\t\tsPath = lclURL\n\t\t\t\tbreak;\n\t\t\t\tcase \"Ministry Financials\":\n\t\t\t\t\tsFn = \"MinFin\";\n\t\t\t\t\tsPath = minFinURL;\n\t\t\t\tbreak;\n\t\t\t\tcase \"Safe Sanctuary References\": \t//MO\n\t\t\t\tcase \"Volunteer References\":\t\t//NWTX\n\t\t\t\tcase \"Protect References\":\t\t\t//DEFAULT\n\t\t\t\t\tsFn = \"ProRef\";\n\t\t\t\t\tsPath = protectURL;\n\t\t\t\tbreak;\n\t\t\t\tcase \"Statistics\":\n\t\t\t\t\tsFn = \"Statistics\";\n\t\t\t\t\tsPath = statsURL;\n\t\t\t\tbreak;\n\t\t\t}\n\t\n\t\t/* Validate ReturnCode, resetting to expire in 1 minute...\n\t\t\tCall for NEW ReturnCode set to expire in 1 minute...\n\t\t\tAnd go to new app (sFn), which will login to new app and issue new ReturnCode\n\t\t\tfor session in new app. */\t\n\t\t\tswitch (sFn) {\n\t\t\t\tcase \"ContactInfo\": //local path\n\t\t\t\t\tloginService.secReturnReset(loginService.user.RETURNCODE, 30);\n\t\t\t\t\t$state.go('contactInfo');\t\t\t\t\t\t\t\t\n\t\t\t\tbreak;\n\t\t\t\tdefault: //external to this app:\n\t\t\t\t\tloginService.secReturnReset(loginService.user.RETURNCODE, 1)\n\t\t\t\t\t.then(function(result) {\n\t\t\t\t\t\tif (result[0].RESULT == \"Success\") {\n\t\t\t\t\t\t\t$window.location.replace(sPath + \"?ReturnCode=\" +\n\t\t\t\t\t\t\t\tloginService.user.RETURNCODE);\n\t\t\t\t\t\t} else { //Expired Session\n\t\t\t\t\t\t\tmodalService.okAlert(\"Expired\",\n\t\t\t\t\t\t\t\t\"Your session has expired. Please log in again, \" + \n\t\t\t\t\t\t\t\t\"then select the application desired.\");\n\t\t\t\t\t\t\t$state.go('login', {reload:true});\t\n\t\t\t\t\t\t}\t\t \n\t\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\t\n\t}; //goToApp()\n\t\n\tvm.goToChgPW = function() {\n\t\t$rootScope.sCurForm = \"chgPW\";\n\t\t$state.go('chgPW');\n\t};\n\t\n\tvm.goToHelpDesk = function() {\n\t\t$state.go('helpDesk', {reload:true});\n\t};\n\t\n/** Deletes the active ReturnCode, removes all secure apps,\n\tsends user back to login screen, selected Customer retained: */\t\n\tvm.logOff = function() {\n\t\tvm.loggedIn = false;\n\t\tloginService.logout();\n\t\tloginService.user = {};\n\t\t$rootScope.myApps = [];\n\t\tvm.myApps = [];\n\t\t$state.go('login', {reload:true});\n\t};\n\t\n}\t \n\nangular\n .module('mcweb')\n .controller('ModalController', ModalController);\n\nModalController.$inject = ['$uibModalInstance','modType','title','alertMsg',\n\t'dataService','datesService','$sce'];\n\nfunction ModalController($uibModalInstance, modType, title, alertMsg, \n\tdataService, datesService, $sce) {\n var vm = this;\n \n vm.modType = modType;\t//OK, printOpts, etc...\n vm.sTitle = title;\n vm.sAlertMsg = $sce.trustAsHtml(alertMsg);\n\n\tvm.cancel = function() {\n\t\t$uibModalInstance.dismiss();\n\t};\n\n}\n\nangular\n\t.module('mcweb')\n\t.controller('LoginController', LoginController);\n\nLoginController.$inject = ['webSessionStorage','$rootScope','dataService','$state','$window',\n\t'loginService','modalService','custData','headerService','appValidationService',\n\t'setCustService','custDataDev','protectURL','statsURL','minFinURL','lclURL','$sce','$log'];\n\nfunction LoginController(webSessionStorage, $rootScope, dataService, $state, $window,\n\tloginService, modalService, custData, headerService, appValidationService, \n\tsetCustService, custDataDev, protectURL, statsURL, minFinURL, lclURL, $sce, $log) {\n\tvar vm = this; //as vmLI\n\t\n\tvm.custDB = custData;\n\tvm.selConf = custData[0];\n\tvm.sMaintenanceMsg = '';\n\tvm.sUsername = \"\";\n\tvm.sPassword = \"\";\n\t\n\n//INITIALIZE:\t\n\n\t$rootScope.sCurForm = 'Login';\n$log.info($rootScope.sCurForm);\n\t\n\t//If timed out, preset conference to stored conf:\n\tif (angular.isDefined(headerService.customer)==true) {\n\t\tif (headerService.customer.name != \"MissionConnect\") {\n\t\t\tupdateSelCust();\n\t\t}\n\t}\n\t\n\t/* Display MaintenanceMsg: */\n\tdataService.libGetMaintenanceMsg()\n\t.then(function(msg) { $log.info('msg:', msg);\n\t\tif (msg.length > 0) {\n\t\t\tvm.sMaintenanceMsg = $sce.trustAsHtml(msg[0].SETTINGVALUE);\n\t\t}\n\t});\n\n\t\n\tfunction logInUser() {\n\t\tloginService.login(vm.sUsername, vm.sPassword)\n\t\t.then(function(data) {\n\t\t\tif (data[0].SECUSERLOGIN[0].RESULT == \"Success\") {\n\t\t\t\tvar sExp = data[0].SECUSERLOGIN[0].PASSWORDEXPIRES;\n\t\t\t\tvar dPasswordExpires = new Date(sExp.substr(0,4),\n\t\t\t\t\tNumber(sExp.substr(5,2))-1, sExp.substr(8,2));\n\t\t\t\tvar dToday = new Date();\n\t\t\t\tif (dPasswordExpires > dToday) {\n\n\t\t\t\t/* Determine landing page... */\n\t\t\t\t\tvar permission = appValidationService.validateAccess();\n\t\t\t\t\tif (permission == \"Valid\") {\n\t\t\t\t\t\t$rootScope.sCurForm = 'Contact Information';\n\t\t\t\t\t\t$state.go('contactInfo');\n\t\t\t\t\t} else if (permission == \"MultApps\") {\n\t\t\t\t\t\t$state.go('selApp');\n\t\t\t\t\t} else if (permission != \"Denied\") { \n\t\t\t\t\t\tvar sPath = \"\";\n\t\t\t\t\t\tswitch(permission) {\n\t\t\t\t\t\t\tcase \"ChLeaders\": sPath = lclURL; break;\n\t\t\t\t\t\t\tcase \"MinFin\": sPath = minFinURL; break;\n\t\t\t\t\t\t\tcase \"ProRef\":\n\t\t\t\t\t\t\tcase \"LCAMgmt\": sPath = protectURL; break;\n\t\t\t\t\t\t\tcase \"Statistics\": sPath = statsURL; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (sPath != \"\") {\n\t\t\t\t\t\t\tloginService.secReturnReset(loginService.user.RETURNCODE, 1)\n\t\t\t\t\t\t\t.then(function(result) {\n\t\t\t\t\t\t\t\tif (result[0].RESULT == \"Success\") {\n\t\t\t\t\t\t\t\t\t$window.location.replace(sPath+\"?ReturnCode=\" +\n\t\t\t\t\t\t\t\t\t\tloginService.user.RETURNCODE);\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\t\t\t\t\t} else {\n\t\t\t\t\t\t$rootScope.sCurForm = 'Login';\n\t\t\t\t\t\t$state.go('login'); \n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$rootScope.bPasswordExpired = true;\n\t\t\t\t\tmodalService.okAlert(\"Expired Password\",\n\t\t\t\t\t\t\"Your current password has expired.\\n\" +\n\t\t\t\t\t\t\"You must create a new password to continue.\");\n\t\t\t\t\t$state.go('chgPW');\n\t\t\t\t}\n\t\t\t} else if (data[0].SECUSERLOGIN[0].RESULT == \"Fail\") {\n\t\t\t\tmodalService.okAlert(\"Login Failed\",\n\t\t\t\t\t\"We were unable to log you in with the Username and Password provided.
\" +\n\t\t\t\t\t\"Please try again, or have your password sent to you by clicking the \\\"Forgot \" +\n\t\t\t\t\t\"Password\\\" button.\");\n\t\t\t}\n\t\t});\n\t}\n\t\n\tfunction updateSelCust() {\n\t\tvar sDataSource = webSessionStorage.getStoredData(\"sDataSource\");\n\t\tif (sDataSource.slice(-3) == \"Dev\") {\n\t\t\tfor (var i=0; i -1) {\n\t\t\t\tbreak; }\n\t\t\t\telse if (i == custData.length-1) {\n\t\t\t\t\tfor (var j=0; jYour password will be emailed to the Email address listed \" +\n\t\t\t\t\"on your account.
\" +\n\t\t\t\t\"If you do not receive your password within 10-15 minutes, please contact your \" +\n\t\t\t\t\"MissionConnect Administrator to verify that your account email address is correct.\");\n\t\t} else {\n\t\t\tdataService.sendForgottenPassword(vm.sUsername)\n\t\t\t.then(function(data) { \n\t\t\t\tswitch (data) {\n\t\t\t\t\tcase \"No User Account\":\n\t\t\t\t\t\tmodalService.okAlert(\"Account Not Found\", \n\t\t\t\t\t\t\t\"There is no user account with that Username.
\" +\n\t\t\t\t\t\t\t\"Please be sure you entered it correctly. The Username is \" +\n\t\t\t\t\t\t\t\"Case-Sensitive. Otherwise, contact your MissionConnect \" +\n\t\t\t\t\t\t\t\"Administrator to verify the Username you are using is correct.\");\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Completed\":\n\t\t\t\t\t\tmodalService.okAlert(\"Password Sent\", \n\t\t\t\t\t\t\t\"Your password has been sent.\\n\\n\" +\n\t\t\t\t\t\t\t\"Check your Email Inbox for the email with Subject: \" +\n\t\t\t\t\t\t\t\"\\\"Your MissionConnect Login Information\\\".
\" +\n\t\t\t\t\t\t\t\"If the email does not arrive within 10-15 minutes, be sure \" +\n\t\t\t\t\t\t\t\"to also check your spam and junk folders.\");\n\t\t\t\t\tbreak;\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n\n//Close MENU:\n\tvm.onFocus = function() {\n\t\t$rootScope.$broadcast('closeMenu');\n\t};\n\n\n/* When selected Customer changes, headerService is called to \"set\"\n\tnew Customer icon & name, which in turn calls to update the \n\tNavBarCtrl to reflect the change. */\t\n\tvm.selectConference = function() {\n\t\tif (vm.selConf.DataSource != \"\") {\n\t\t\tsetCustService.fromDataSource(vm.selConf.DataSource);\n\t\t\tdataService.setDataSource();\n\t\t} else {\n\t\t\theaderService.setCustomer(\"MissionConnect\");\n\t\t}\n\t};\n\t\n\tvm.validateUserLogin = function() {\n\t\tif (vm.selConf.DataSource != \"\") {\n\t\t\tif (vm.sUsername.trim() != \"\" && vm.sPassword.trim() != \"\") {\n\t\t\t\tlogInUser();\n\t\t\t} else {\n\t\t\t\tmodalService.okAlert(\"Missing Entry\", \n\t\t\t\t\t\"Please enter your Username and Password to Log \" +\n\t\t\t\t\t\"In to your account.\");\n\t\t\t}\n\t\t} else {\n\t\t\tmodalService.okAlert(\"Missing Entry\", \n\t\t\t\t\"Please make a selection from the \" +\n\t\t\t\t\"Conference droplist before logging in.\");\t\n\t\t}\t\n\t};\n\t\t\n}\nangular\n .module('mcweb')\n .controller('HelpDeskController', HelpDeskController);\n\nHelpDeskController.$inject = ['helpDeskService','$state','loginService','dataService',\n\t'validatorService','modalService'];\t\n\nfunction HelpDeskController(helpDeskService, $state, loginService, dataService,\n\tvalidatorService, modalService) {\n\tvar vm = this;\t//vmHD\n\t\n\tvm.bReadyToSubmit;\n\tvm.iIssueID = 0;\n\tvm.sUserEmail = \"\";\n\tvm.sProblem = \"\";\n\tvm.sUserFullName = \"\";\n\t\n\tif (loginService.user.USERID > 0) {\n\t\tvm.sUserEmail = loginService.user.USEREMAIL;\n\t\tvm.sUserFullName = loginService.user.USERFULLNAME;\n\t}\n\t\n\thelpDeskService.helpHdInitiateIssue()\n\t.then(function(data) {\n\t\tif (data[0].ISSUEID > 0) {\n\t\t\tvm.iIssueID = data[0].ISSUEID;\n\t\t} else {\n\t\t\tvar sError = \"There was an Error retrieving the Help Desk \" +\n\t\t\t\t\"IssueID for UserID: \" + loginService.user.USERID + \", \" +\n\t\t\t\tloginService.user.USERFULLNAME + \"
This software was created by Great Spirit Systems Corporation™ specializing in software development to meet the unique needs of religious organizations since 1994.