{"version":3,"sources":["scripts/app.js"],"names":["enterAsTab","scope","element","attrs","bind","event","which","preventDefault","elementToFocus","next","find","angular","isDefined","focus","StatHistoryController","$rootScope","loginService","dataService","$state","datesService","$sce","$scope","$stateParams","timeOutService","checkSumsService","$log","populateStatsTable","statGetFormStatus","vm","iChurchID","then","stats","info","length","i","TABLE2WSSTARTEDDATE","showWS","TABLE4STARTEDDATE","showTable4","TABLE9STARTEDDATE","showTable9","TABLE1SUBMITTEDDATE","readyToSubmit","Table1","TABLE2WSSUBMITTEDDATE","Table2Ws","TABLE2SUBMITTEDDATE","Table2","TABLE3SUBMITTEDDATE","Table3","TABLE4SUBMITTEDDATE","Table4","TABLE9SUBMITTEDDATE","Table9","arrStatRecords","submitHandler","result","sRawDataString","user","USERID","SAVEKEY","FORMYEAR","FORMNAME","nowAsDbDatePlusTime","statSaveCompleted","save","RESULTCODE","this","arrChurches","FNs","UserChurchFNs","USERENTITYID","sChurchName","selChurch","sInstructions","sUsername","USERNAME","sCurForm","$broadcast","fxGet","instr","trustAsHtml","TEXT","FN","CHURCHNAME","push","loadSelectedChurch","item","resetTimer","CHURCHID","openStat","stat","go","statRecord","reload","submitTable","tbl","statGetCompleted","StatEntryController","statTableService","formatterService","webSessionStorage","modalService","$window","getStatTables","statGetTables","tables","arrTables","FORM","selTable","setCompleted","getStatDefs","statGetForm","defs","arrDefs","getStatData","okAlert","statGetFormData","ENTITYID","data","arrData","loadDisplay","arrDataFields","arrCheckSums","arrSums","obj","Ln","FORMLINE","Desc1","DESCRIPTIONLINE1","Desc2","DESCRIPTIONLINE2","seq","STATITEMSEQ","Locked","DATASOURCE","ds","prevData","form","statItem","STATITEM","source","SOURCEDEF","formGroup","FORMGROUP","numDol","NUMDOL","bSubmitted","WEBLOCK","j","addThousandsCommas","CURDATA","PREVDATA","substr","chkSum","idx","indexOf","substring","sumField","slice","arrCalcFields","split","cMath","sStat","c","k","math","sPercentComplete","runTheCheckSums","refreshStatus","status","sum1","sum1Amt","sumField1","sum1sum","sum2","sum2Amt","sumField2","sum2sum","sum3","sum3Amt","sumField3","sum3sum","newSum","emailSendCustom","sSum1Amt","dSum1Amt","digitsOnly","Number","sSum1sum","dSum1sum","sSum2Amt","dSum2Amt","sSum2sum","dSum2sum","sSum3Amt","dSum3Amt","sSum3sum","dSum3sum","bChkSumsOff","sChkSumsErrorTable","saveData","str","sSaveString","statSaveStatData","bReadyToSave","RESULTREASON","getStatus","setTableText","sTableText","sTable1Text","sTable2Text","sTable2WsText","sTable3Text","sTable4Text","sTable9Text","saveKey","submit","validateSums","sumItem1","sumItem2","sumItem3","sumAmt1","sumAmt2","sumAmt3","sumOfSum1","sumOfSum2","totSum1","totSum2","pattern","replace","sDatabaseID","getStoredData","prevYear","tblCell","String","formText","TEXTID","cancelHandler","changeDataHandler","changeTableHandler","arrChecksums","id","itemID","document","getElementById","print","returnToStatsHist","saveHandler","StaffController","arrContacts","libLoadList","list","PrintController","$uibModal","back","image","bAllTables","optPrint","rptUrl","selected","goBack","printStatistics","rptStatChurch","rpt","REPORTURL","okPrintAlert","NavBarController","headerService","version","chrgApptsURL","mcWebAppsURL","minFinURL","protectURL","lclURL","custData","custDataDev","getAppsForMenu","myApps","userGetChurchFunctions","apps","dataSource","DataSource","ProRefApp","ProRef","loggedIn","headerIcon","getHeaderIcon","isCollapsed","sCustomerName","customer","name","$on","goHome","goToAbout","goToApp","app","bPasswordExpired","sFn","sPath","secGetReturnCode","location","RETURNCODE","goToChgPW","goToHelpDesk","logOff","logout","ModalController","$uibModalInstance","modType","title","alertMsg","sTitle","sAlertMsg","ok","close","cancel","dismiss","open","ModalTimeoutController","$timeout","runTimer","secTimer","continue","ModalConfSelectController","confs","options","sConfSel","LoginController","appValidationService","setCustService","logInUser","login","sPassword","SECUSERLOGIN","RESULT","sExp","PASSWORDEXPIRES","dPasswordExpires","Date","dToday","setTimer","validateAccess","openConfSelectModal","HELPGETDBBYUSER","arrConfs","bPwReset","modalInstance","animation","size","templateUrl","controller","bindToController","controllerAs","keyboard","backdrop","backdropClass","resolve","modResult","fromDataSource","forgotPassword_clickHandler","validateUserLogin","bShowConferences","custDB","selConf","sWelcomeHdr","fromDatabaseID","enterKeyHandler","$event","keyCode","trim","secPasswordReset","onFocus","selectConference","setDataSource","setCustomer","HelpDeskController","helpDeskService","validatorService","bReadyToSubmit","iIssueID","sUserEmail","sProblem","sUserFullName","USEREMAIL","USERFULLNAME","helpHdInitiateIssue","ISSUEID","sError","emailSendError","confirmReadyToSubmit","emailIsValid","submitHD","helpHdSaveIssue","ChgPasswordController","passwordStrength","confirmPWChg","validateEmail","emValidate","confirmEmail","email","bReadyToSaveEmail","newPW","confirmPW","validatePW","oldPW","bHideOldPw","validatePassword","confirmPassword","sPasswordStrength","bReadyToSavePW","saveNewEmail","usersSave","sSaveSuccessMsg","saveNewPassword","msg","loginReturn","usersChangePassword","sPWClass","cancelChanges","checkPWStrength","pwReturn","getPWStrength","strength","confirmReadyToSave","logOut","saveChanges","runRedirect","$inject","module","run","store","sessionStorage","factory","sKey","getItem","setStoredData","sData","setItem","removeItem","vancoService","$http","errorEmailNotification","testCFC","returnURL","vancoPay","$httpParamSerializer","goToVancoPayments","lastName","firstName","sDataSource","params","method","sSetting","post","results","fee","SETTINGVALUE","saveRcvPaymentTransData","sEmailContent","error4","iRcvID","subItem","sToday","todayToDbString","curYear","currentYear","sProID","params1","results1","RCVID","result2","ReturnCode","returnURLWithCode","params3","iUserID","App","ReturnURL","paramsString","url","sEmailContent1","service","sEmail","isValid","filter","RegExp","search","phoneIsValid","phone","numOnlyPattern","valPhone","numOnlyPh","nMin","ms","timer","appTimer","lastChance","DatabaseID","CustomerName","databaseID","iStrength","reLowerCase","reUpperCase","reNumber","reSymbol","class","openOKAlert","openPrintAlert","rptURL","openResultAlert","sz","resultAlert","authServiceCFC","mcWebCFC","statsURL","username","password","sUserName","sApp","iMinutes","setUserInfo","sReturnCode","RESULTS","secDeleteReturnCode","retCode","iMin","sParams","sUrl","secReturnLogin","DATABASEID","err","saveStr","SDATASOURCE","SECGETRETURNCODE","USERGETCHURCHFUNCTIONS","sReturnType","sProb","UserID","sForm","sVersion","custName","alt","numStr","toString","test","newString","formatPhone","phStr","numOnly","tel","formatSSN","SSN","frmSSN","formatZip","zip","frmZIP","error1","sFormProc","retCodeKey","error2","Applicant","error3","iSaveKey","error5","emailContent","errorMoodle","mReturn","proc","emailValidator","calStrToDbDateStr","sCal","dCal","mm","getMonth","dd","getDate","sDbDate","getFullYear","today","yr","get19thBirthDate","bDay","s19thBDay","dt","jsDateStrToCalendarStr","dtStr","sCalDate","jsDateStrToDbDateStr","nowAsCalStringPlusTime","sCalToday","getHours","getMinutes","getSeconds","getMilliseconds","s1yrFromToday","s6mosFromToday","s15mosFromToday","todayToCalString","sDbToday","statsCFC","sEmailAddr","sFrom","sReplyTo","sSubject","sSpecifier","sTables","year","chID","prevYr","sFormName","sYear","iEntityID","bIncludePrevYear","sendForgottenPassword","sCustomEmailText","entityID","bFnOnly","sNewEmail","sConfirmEmail","strEmail","toLowerCase","sNewPW","sConfirmPW","strPW","notReadyToSave","sOldPW","perm","config","$httpProvider","defaults","headers","transformRequest","param","value","fullSubName","subName","subValue","innerObj","query","Array","Object","isUndefined","encodeURIComponent","isObject","directive","routerConfig","$stateProvider","$urlRouterProvider","state","otherwise","constant","$templateCache","put"],"mappings":"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","file":"scripts/app-b5dd28caa2.js","sourcesContent":["(function() {\n\t'use strict';\n\n\tangular\n\t\t.module('stats', ['ui.router', 'ui.bootstrap'])\n\t\t.run(runRedirect);\t\n\t\t\n\tfunction runRedirect($window) {\n\t\t$window.location.replace(\"https://umcdata.net/ChurchReporting\");\n\t}\t\n\n/*\n\tfunction runBlock($location, webSessionStorage, $state, loginService, $rootScope,\n\t\tappValidationService, setCustService, modalService) {\n\t\tvar sDatabaseID = \"\";\n\t\tvar sDataSource = \"\";\n\t\tvar searchObject = $location.search();\n\t\n\tvar sRetCodeToDelete = \"\";\n\n//searchObject.conf = \"LA\";\t\t\t//*** TESTING AR: 0799493 / 151553\n// $rootScope.TESTING = true;\n// searchObject.ReturnCode = \"QHmd0DGa6jIBVegmNgYx\"; \t\t\t\t//*** TESTING\n\n/*\n\t\tif (searchObject.ReturnCode) {\n\t\t\tsRetCodeToDelete = searchObject.ReturnCode; }\n\t\telse if (webSessionStorage.getStoredData('sReturnCode') != null) {\n\t\t\t// if \"Refresh\" occurs, this allows login so as not to force\n\t\t\t//\tuser to manually login again:\n\t\t\tsRetCodeToDelete = webSessionStorage.getStoredData('sReturnCode');\n\t\t}\n*/\n\n\t\t//Login with ReturnCode ==> LoginService calls SecDeleteReturnCode immediately after login\n/*\n\t\tif (sRetCodeToDelete != \"\") {\n\t\t\tloginService.secReturnLogin(sRetCodeToDelete)\n\t\t\t.then(function (data) {\n\t\t\t\tif (data[0].DATABASEID != \"\") {\n\t\t\t\t\tsDataSource = data[0].DATABASEID;\n\t\t\t\t\tsetCustService.fromDataSource(sDataSource);\n\n\t\t\t\t\tif (data[0].PARAMS === \"PasswordReset\") {\n\t\t\t\t\t\t$state.go('chgPW', { bHideOldPw: true });\n\t\t\t\t\t} else if (data[0].USERID != \"\") {\n\t\t\t\t\t\tloginService.login(data[0].USERNAME, data[0].PASSWORD)\n\t\t\t\t\t\t.then(function(loginReturn) {\n\t\t\t\t\t\t\tif (loginReturn[0].SECUSERLOGIN[0].RESULT == \"Success\") {\n\n\t\t\t\t\t\t\t\t// Determine landing page... \n\t\t\t\t\t\t\t\tif (appValidationService.validateAccess() == \"Valid\") {\n\t\t\t\t\t\t\t\t\t$rootScope.sCurForm = 'Statistics Records';\n\t\t\t\t\t\t\t\t\t$state.go('statHist');\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$rootScope.sCurForm = 'Login';\n\t\t\t\t\t\t\t\t\t$state.go('login');\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 if (data[0].USERNAME == \"Expired\") {\n\t\t\t\t\t\tmodalService.okAlert(\"Expired\",\n\t\t\t\t\t\t\t\"Your session login has expired.

\" +\n\t\t\t\t\t\t\t\"Please log in again to continue.\");\n\t\t\t\t\t\t$state.go('login');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n*/\n\n\t\t//Login page with Conference identified:\n/*\n\t\telse {\n\t\t\tif (searchObject.conf) {\n\t\t\t\tsDatabaseID = searchObject.conf;\n\t\t\t\tsetCustService.fromDatabaseID(sDatabaseID);\n\t\t\t} else {\n\t\t\t\twebSessionStorage.setStoredData('sDataSource', \"HelpFalcon\");\n\t\t\t}\n\t\t}\n\t\n\t}\n*/\t\n})();\n\n(function () {\n 'use strict';\n \n angular\n .module('stats')\n .factory('webSessionStorage', webSessionStorage);\n \n function webSessionStorage($window) {\n var store = $window.sessionStorage;\n var factory = {};\n \n factory.getStoredData = function (sKey) {\n return store.getItem(sKey);\n };\n \n factory.setStoredData = function (sKey, sData) {\n if (sData) {\n store.setItem(sKey, sData);\n } \n else {\n store.removeItem(sKey);\n }\n };\n \n return factory;\n\t}\n \n})();\n(function () {\n\t'use strict';\n\n\tangular\n\t\t.module('stats')\n\t\t.factory('vancoService', vancoService);\n\n\tvancoService.$inject = ['$http','webSessionStorage','loginService','$rootScope','datesService',\n\t\t'errorEmailNotification','dataService','testCFC','returnURL','vancoPay','$httpParamSerializer',\n\t\t'$window','$log'];\t\n\n\tfunction vancoService($http, webSessionStorage, loginService, $rootScope, datesService,\n\t\terrorEmailNotification, dataService, testCFC, returnURL, vancoPay, $httpParamSerializer, \n\t\t$window, $log) {\n\t\tvar sDataSource = \"\";\n\t\t\n\t\tvar service = {\n\t\t\tgoToVancoPayments: goToVancoPayments,\n\t\t\tsaveRcvPaymentTransData: saveRcvPaymentTransData\n\t\t};\n\t\treturn service;\n\t\t\n\t\tfunction goToVancoPayments(lastName, firstName) { $log.info(\"VancoService\");\n\t\t\tsDataSource = webSessionStorage.getStoredData('sDataSource');\n\t\t/* Get Fee: */\n\t\t\tvar params= {\n\t\t\t\tmethod: \"LibGetASetting\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tsSetting: \"ProBkgrdScreenFee\"\n\t\t\t};\n\t\t\treturn $http.post(testCFC, params)\n .then(function(results) {\n if (results.data.length > 0) {\n\t\t\t\t\tvar fee = results.data[0].SETTINGVALUE;\n\t\t\t\t\tsaveRcvPaymentTransData(lastName, firstName, fee);\n\t\t\t\t} else {\n\t\t\t\t\tvar sEmailContent = errorEmailNotification.error4\n\t\t\t\t\t\t(\"WebApps_Pro/vancoService() LibGetBkgrdScreenFee\");\n\t\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t\t}\n });\n\t\t}\n\t\t\n\t\tfunction saveRcvPaymentTransData(lastName, firstName, fee) {\t\t\n\t\t\tvar iRcvID = 0;\n\t\t\tvar subItem = lastName + \", \" + firstName;\n\t\t\tvar sToday = datesService.todayToDbString();\n\t\t\tvar curYear = datesService.currentYear();\n\t\t\tif (subItem.length > 20) {\n\t\t\t\tsubItem = subItem.substr(0, 20);\n\t\t\t}\n\t\t\t\t\t\n\t\t\tvar sRawDataString = \"WebApps_Pro || vancoService || \" + loginService.user.USERID +\n\t\t\t\t\" || I || PaymentStatus==Started || BillingEntityID==\" + \n\t\t\t\tloginService.user.USERENTITYID + \" || App==Protect || RcvItem==SS || RcvSubItem==\" +\n\t\t\t\tsubItem + \" || RcvSubItemID==\" + $rootScope.sProID + \" || AmountToApply==\" + \n\t\t\t\tfee + \" || AsOfDate==\" + sToday + \" || FinYear==\" + curYear + \" ^^ \";\t\t\t\t\n\t\t\tvar params1 = {\n\t\t\t\tmethod: \"RcvSavePaymentTransData\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tsRawDataString: sRawDataString\n\t\t\t};\n\t\t\treturn $http.post(testCFC, params1)\n\t\t\t.then(function(results1) {\n\t\t\t\tif (results1.data[0].RESULTCODE == \"Success\") {\n\t\t\t\t\tiRcvID = results1.data[0].RCVID;\n$log.info(\"iRcvID:\",iRcvID);\n\n\t\t\t\t/* Get a ReturnCode: */\n\t\t\t\t\tdataService.secGetReturnCode(10, \"PayFee\", loginService.user.USERID + \"|\" +\n\t\t\t\t\t\tloginService.user.USERFULLNAME)\n\t\t\t\t\t.then(function(result2) { \n\t\t\t\t\t\tif (result2.length > 0) {\n\t\t\t\t\t\t\tvar ReturnCode = result2[0].RETURNCODE;\n$log.info(\"ReturnCode:\",ReturnCode);\n\n\t\t\t\t\t\t/* Go To VancoPay app: */\t\n\t\t\t\t\t\t\tif (iRcvID > 0) {\n\t\t\t\t\t\t\t\tvar returnURLWithCode = returnURL + \"?ReturnCode=\" + ReturnCode;\n\t\t\t\t\t\t\t\tvar params3 = {\n\t\t\t\t\t\t\t\t\tsDataSource: sDataSource,\n\t\t\t\t\t\t\t\t\tiUserID: loginService.user.USERID,\n\t\t\t\t\t\t\t\t\tApp: \"Protect\",\n\t\t\t\t\t\t\t\t\tReturnURL: returnURLWithCode,\n\t\t\t\t\t\t\t\t\tiRcvID: iRcvID\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tvar paramsString = $httpParamSerializer(params3);\n\t\t\t\t\t\t\t\tvar url = vancoPay + \"?\" + paramsString;\n\t\t\t\t\t\t\t\t$window.location.replace(url);\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} else {\n\t\t\t\t\tvar sEmailContent1 = \"WebApps_Pro/vancoServices - RcvSavePaymentTransData()\" +\n\t\t\t\t\t\t\"

There was an error saving the Vanco Payment RcvPaymentTransData \" +\n\t\t\t\t\t\t\"for:
ProID: \" + $rootScope.sProID + \"
Payment Amount: \" + fee +\n\t\t\t\t\t\t\"

Error: \" + results1.data[0].RESULTREASON;\n\t\t\t\t\tdataService.emailSendError(sEmailContent1);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\n\t}\n})();\n(function () {\n 'use strict';\n \n\tangular\n .module('stats')\n .factory('validatorService', validatorService);\n\n function validatorService() {\n\t\tvar service = {\n\t\t\temailIsValid: emailIsValid,\n\t\t\tphoneIsValid: phoneIsValid\n\t\t};\n\t\t\n\t\treturn service;\n\t\t\n\t\tfunction emailIsValid(sEmail) {\n\t\t\tvar isValid = false;\n\t\t\tvar filter = new RegExp(/^([a-zA-Z0-9_\\.\\-])+\\@(([a-zA-Z0-9\\-])+\\.)+([a-zA-Z0-9]{2,4})+$/);\n\n\t\t\tif (sEmail.search(filter) == -1) {\n\t\t\t\treturn isValid = false;\n\t\t\t} else { isValid = true; }\n\t\t\t\n\t\t\treturn isValid;\n\t\t}\n\t\t\n\t\tfunction phoneIsValid(phone) {\n\t\t\tvar isValid = false;\n\t\t\tvar numOnlyPattern = /[^0-9]/g;\n\t\t\tvar valPhone = String(phone);\n\t\t\tvar numOnlyPh = valPhone.replace(numOnlyPattern,'');\n\t\t\t\n\t\t\tif (String(numOnlyPh).length == 10) { return true; }\n\t\t\t\n\t\t\treturn isValid;\n\t\t}\t\t\n\t\n\t}\n})(); \n(function () {\n 'use strict';\n \n\tangular\n .module('stats')\n .factory('timeOutService', timeOutService);\n\n\ttimeOutService.$inject = ['$timeout','modalService','loginService','$state',\n\t\t'$uibModal'];//,'$log'];\t\n\n function timeOutService($timeout, modalService, loginService, $state, \n\t\t$uibModal) {//, $log) {\n\t\tvar appTimer;\n\t\t\n\t\tvar service = {\n\t\t\tsetTimer: setTimer,\n\t\t\tresetTimer: resetTimer\n\t\t};\n\t\treturn service;\n\n\t\tfunction setTimer(nMin) { \n\t\t\tvar ms = Number(nMin * 60000); //$log.info('timer set for ', ms);\n\t\t\tservice.timer = nMin;\n\t\t\tappTimer = $timeout(function () {\n\t\t\t\tlastChance();\t\t\t\n\t\t\t}, ms);\t\t\t\n\t\t}\n\t\t\n\t\t/** Last Chance... modal asking if user is still there,\n\t\t * and wants to continue using this application.\t\n\t\t **/\n\t\tfunction lastChance() {\n\t\t\tvar modalInstance = $uibModal.open({\n\t\t\t\tanimation: true,\n\t\t\t\tsize: 'sm',\n\t\t\t\ttemplateUrl: 'app/modals/modTimeout.html',\n\t\t\t\tcontroller: 'ModalTimeoutController',\n\t\t\t\tbindToController: true,\n\t\t\t\tcontrollerAs: 'modTO',\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});\n\t\t\tmodalInstance.result\n\t\t\t.then(function(modResult) {\n\t\t\t\tif (modResult.continue == false) {\n\t\t\t\t\t$state.go('login', {reload: true});\n\t\t\t\t\tloginService.logout();\n\t\t\t\t} else {\n\t\t\t\t\tservice.setTimer(30);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tfunction resetTimer(nMin) {\n\t\t\t$timeout.cancel(appTimer); //$log.info('cancelled');\n\t\t\tservice.setTimer(nMin);\n\n\t\t}\n\t}\n\t\n})();\n\n(function () {\n\t'use strict';\n\n\tangular\n\t\t.module('stats')\n\t\t.factory('statTableService', statTableService);\n\n\tstatTableService.$inject = [];\n\n\tfunction statTableService() {\n\t\t\n\t\tvar service = {\n\t\t\tgetStatus: getStatus\n\t\t};\n\t\t\n\t\treturn service;\n\n\n\t\tfunction getStatus(tbl,stat) {\n\t\t\tvar status = \"\";\n\t\t\t\tswitch (tbl) {\n\t\t\t\t\tcase \"Table 1\":\n\t\t\t\t\t\tif (stat.TABLE1SUBMITTEDDATE.indexOf('%') > 0) {\n\t\t\t\t\t\t\tstatus = stat.TABLE1SUBMITTEDDATE; }\n\t\t\t\t\t\telse if (stat.TABLE1SUBMITTEDDATE == '') {\n\t\t\t\t\t\t\tstatus = \"0% Complete\"; }\n\t\t\t\t\t\telse { status = \"Submitted on \" + stat.TABLE1SUBMITTEDDATE; }\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Table 2 Worksheet\":\n\t\t\t\t\t\tif (stat.TABLE2WSSUBMITTEDDATE.indexOf('%') > 0) {\n\t\t\t\t\t\t\tstatus = stat.TABLE2WSSUBMITTEDDATE; }\n\t\t\t\t\t\telse if (stat.TABLE2WSSUBMITTEDDATE == '') {\n\t\t\t\t\t\t\tstatus = \"0% Complete\"; }\n\t\t\t\t\t\telse { status = \"Submitted on \" + stat.TABLE2WSSUBMITTEDDATE; }\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Table 2\":\n\t\t\t\t\t\tif (stat.TABLE2SUBMITTEDDATE.indexOf('%') > 0) {\n\t\t\t\t\t\t\tstatus = stat.TABLE2SUBMITTEDDATE; }\n\t\t\t\t\t\telse if (stat.TABLE2SUBMITTEDDATE == '') {\n\t\t\t\t\t\t\tstatus = \"0% Complete\"; }\n\t\t\t\t\t\telse { status = \"Submitted on \" + stat.TABLE2SUBMITTEDDATE; }\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Table 3\":\n\t\t\t\t\t\tif (stat.TABLE3SUBMITTEDDATE.indexOf('%') > 0) {\n\t\t\t\t\t\t\tstatus = stat.TABLE3SUBMITTEDDATE; }\n\t\t\t\t\t\telse if (stat.TABLE3SUBMITTEDDATE == '') {\n\t\t\t\t\t\t\tstatus = \"0% Complete\"; }\n\t\t\t\t\t\telse { status = \"Submitted on \" + stat.TABLE3SUBMITTEDDATE; }\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Table 4\":\n\t\t\t\t\t\tif (stat.TABLE4SUBMITTEDDATE.indexOf('%') > 0) {\n\t\t\t\t\t\t\tstatus = stat.TABLE4SUBMITTEDDATE; }\n\t\t\t\t\t\telse if (stat.TABLE4SUBMITTEDDATE == '') {\n\t\t\t\t\t\t\tstatus = \"0% Complete\"; }\n\t\t\t\t\t\telse { status = \"Submitted on \" + stat.TABLE4SUBMITTEDDATE; }\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Table 9\":\n\t\t\t\t\t\tif (stat.TABLE9SUBMITTEDDATE.indexOf('%') > 0) {\n\t\t\t\t\t\t\tstatus = stat.TABLE9SUBMITTEDDATE; }\n\t\t\t\t\t\telse if (stat.TABLE9SUBMITTEDDATE == '') {\n\t\t\t\t\t\t\tstatus = \"0% Complete\"; }\n\t\t\t\t\t\telse { status = \"Submitted on \" + stat.TABLE9SUBMITTEDDATE; }\n\t\t\t\t\tbreak;\n\t\t\t\t}\t\n\t\t\treturn status;\n\t\t}\n\t}\n})();\n(function () {\n 'use strict';\n \n\tangular\n .module('stats')\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 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})(); \n(function(){\n 'use strict';\n\n angular\n\t\t.module('stats')\n\t\t.factory('modalService', modalService);\n\n\tmodalService.$inject = ['$uibModal','$window','$log'];\n\n\tfunction modalService($uibModal, $window, $log) {\n$log.info(\"modalService\");\n\t\t\n\t\tvar factory = {\n okAlert: openOKAlert,\n okPrintAlert: openPrintAlert,\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 openPrintAlert(title, alertMsg, rptURL) {\n\t\t\tvar modalInstance = $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 \"print\";\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\t\n\t\t\tmodalInstance.result\n\t\t\t.then(function(modResult) { $log.info(\"OK clicked\", modResult)\n\t\t\t\tif (modResult.open == true) {\n\t\t\t\t\t$window.open(rptURL, '_blank')\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/**\n * Created by jacob on 6/17/14.\n * SecUserLoginFunctions consolidates SecUserLogin, SecGetReturnCode and UserGetChurchFunctions (which\n * \t\tdoesn’t apply to all apps, so probably should add a parameter to skip it when not needed)\n */\n 'use strict';\n\n angular\n\t\t.module('stats')\n\t\t.factory('loginService', loginService);\n\n\tloginService.$inject = ['$http','webSessionStorage','$rootScope','modalService',\n\t\t'authServiceCFC','mcWebCFC','custData','$state','setCustService','statsURL'];\n\n\tfunction loginService($http, webSessionStorage, $rootScope, modalService,\n\t\tauthServiceCFC, mcWebCFC, custData, $state, setCustService, statsURL) {\n\n\t\tvar sDataSource = \"\";\n\t\t\n\t\tvar factory = {\n user: {\n\t\t\t\tUSERID: 0,\n\t\t\t\tUSERNAME: '',\n\t\t\t\tloggedIn: false,\n\t\t\t\tRETURNCODE: \"\",\n\t\t\t\tUserChurchFNs: []\n\t\t\t},\n login: login,\n logout: logout,\n secDeleteReturnCode: secDeleteReturnCode,\n secGetReturnCode: secGetReturnCode,\n secPasswordReset: secPasswordReset,\n secReturnLogin: secReturnLogin,\n\t\t\tusersSave: usersSave\n\t\t};\n\t\treturn factory;\n\t\t\n\t/* Runs SecUserLogin, SecGetReturnCode, UserGetChurchFunctions (sFn) */\t\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: \"WebStats_2.0\",\n\t\t\t\tiMinutes: 30,\n\t\t\t\tsFn: \"Statistics\"\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\tfactory.user.USERID = 0;\n\t\t\t\tfactory.user.USERNAME = '';\n\t\t\t\tfactory.user.UserChurchFNs = [];\n\t\t\t\t$rootScope.myApps = [];\t\t\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\n\t/** Used from NavBarCtrl to Get returnCode just to transfer to\n\t *\t different app... then SecUserLoginFunctions is run again from new\n\t *\t app to set a new ReturnCode to 30 minutes.\n\t * iMin=1, sFn=[app to load] \n\t **/\t\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: \"Statistics\",\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\n\t\t\n\t/** New Procedure for handling forgotten password, to allow a reset\n\t *\t\tafter a link is sent to the UserAccount Email.\t\n\t */\t\t\n\t\tfunction secPasswordReset(username) {\n\t\t\tsDataSource = webSessionStorage.getStoredData('sDataSource');\n\t\t\tvar params = {\n\t\t\t\tmethod: \"SecPasswordReset\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tsUserName: username,\n\t\t\t\tsApp: 'Statistics',\n\t\t\t\tiMinutes: 30,\n\t\t\t\tsFn: 'Statistics',\n\t\t\t\tsParams: 'PasswordReset',\n\t\t\t\tsUrl: statsURL\n\t\t\t};\n\t\t\treturn $http.post(authServiceCFC, params)\n\t\t\t.then(function(results) {\n\t\t\t\treturn results.data;\n\t\t\t});\n\t\t}\n\n\n\t/** UNABLE TO USE secReturnLogin from AuthService.cfc\n\t * App opened by passing permission from other app...\n\t *\t Store DatabaseID & FN=$rootScope.goToApp to open.\n\t *\t Then call regular login with ReturnCode's USERNAME/PASSWORD.\n\t *\t Fields returned with SecReturnLogin(ReturnCode):\n\t *\t (USERNAME, DATABASEID(sDataSource), APP, FN, USERID, PASSWORD, PARAMS) \n\t **/\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\tfactory.user.USERID = results.data[0].USERID;\n\t\t\t\t\t\tfactory.user.USERNAME = results.data[0].USERNAME;\n\t\t\t\t\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 \n\t\tfunction usersSave(saveStr) {\n\t\t\tsDataSource = webSessionStorage.getStoredData('sDataSource');\n\t\t\tvar params = {\n\t\t\t\tmethod: \"UsersSave\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tsRawDataString: saveStr\n\t\t\t};\n\t\t\treturn $http.post(mcWebCFC, params)\n .then(function(results) {\n\t\t\t\treturn results.data;\n\t\t\t});\n \t\t}\n\n\n/* Internal Utilities: */ \n\t\t\n\t\tfunction setUserInfo (results) {\n\t\t\t//Return from Login when No Conf, but one matching Username/password:\n\t\t\tif (results.data[0].SDATASOURCE != sDataSource) {\n\t\t\t\tsetCustService.fromDataSource(results.data[0].SDATASOURCE);\t\t\t\n\t\t\t}\n\n\t\t\tfactory.user = results.data[0].SECUSERLOGIN[0];\n\t\t\tfactory.user.RETURNCODE = results.data[0].SECGETRETURNCODE[0].RETURNCODE;\n\t\t\t//used if refresh browser:\n\t\t\twebSessionStorage.setStoredData('sReturnCode', factory.user.RETURNCODE);\n\t\t\t\n\t\t\tfactory.user.loggedIn = true;\n\t\t\tif (results.data[0].USERGETCHURCHFUNCTIONS.length > 0) {\n\t\t\t\tfactory.user.UserChurchFNs = (results.data[0].USERGETCHURCHFUNCTIONS); \n\t\t\t} else { \n\t\t\t\tfactory.user.UserChurchFNs = [];\n\t\t\t}\n\t\t\t$rootScope.$broadcast('updateNav'); \n\t\t}\n\t\t\n\t}\n})();\n(function () {\n\t'use strict';\n \n\tangular\n\t\t.module('stats')\n\t\t.factory('helpDeskService', helpDeskService);\n\n\thelpDeskService.$inject = ['$http','$sce','mcWebCFC','webSessionStorage','$rootScope',\n\t\t'version','loginService','modalService','$state'];\n\n\tfunction helpDeskService($http, $sce, mcWebCFC, webSessionStorage, $rootScope,\n\t\tversion, loginService, modalService, $state) {\n\t\tvar sDataSource = webSessionStorage.getStoredData('sDataSource');\n\t\t\n\t\tvar service = {\n\t\t\thelpHdInitiateIssue: helpHdInitiateIssue,\n\t\t\thelpHdSaveIssue: helpHdSaveIssue\n\t\t};\n\t\treturn service;\n\t\t\n\t\tfunction helpHdInitiateIssue() {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"HelpHdInitiateIssue\",\n\t\t\t\tsReturnType: \"json\"\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 helpHdSaveIssue(id, name, email, sProb) {\n\t\t\tif (loginService.user.USERID > 0) {\n\t\t\t\tvar UserID = loginService.user.USERID;\n\t\t\t} else { UserID = -1 }\n\t\t\tvar params = {\n\t\t\t\tmethod: \"HelpHdSaveIssue\",\n\t\t\t\tiIssueID: id,\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tsApp: \"WebStatistics\",\n\t\t\t\tsForm: $rootScope.sCurForm,\n\t\t\t\tsVersion: version,\n\t\t\t\tiUserID: UserID,\n\t\t\t\tsUserFullName: name,\n\t\t\t\tsUserEmail: email,\n\t\t\t\tsDatabaseID: webSessionStorage.getStoredData('sDatabaseID'),\n\t\t\t\tsProblem: sProb\n\t\t\t};\n\t\t\treturn $http.post(mcWebCFC, params)\n\t\t\t.then(function(results) {\n\t\t\t\tif (results.data == \"true\") {\n\t\t\t\t\t$state.go($rootScope.sCurForm);\n\t\t\t\t\tmodalService.okAlert(\"Success\",\n\t\t\t\t\t\t\"Your Help Desk issue has been sent successfully.\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\t\t\n\t}\n\t\n})();\n\t\t\n\n(function () {\n\t'use strict';\n \n\tangular\n\t\t.module('stats')\n\t\t.factory('headerService', headerService);\n\t\t\n\theaderService.$inject = ['$rootScope'];\n\t\n\tfunction headerService($rootScope) {\n\t\tvar headerIcon = { \n\t\t\timage: \"images/MCicon32.png\",\n\t\t\talt: \"MissionConnect\"};\n\t\t\n\t\tvar service = {\n\t\t\tcustomer: {name: \"MissionConnect\"},\n\t\t\tsetCustomer: setCustomer,\n\t\t\tgetHeaderIcon: getHeaderIcon\n\t\t};\n\t\t\n\t\treturn service;\n\t\t\n\t\tfunction setCustomer(custName) {\n\t\t\tservice.customer.name = custName;\n\t\t\tif (service.customer.name == \"MissionConnect\") {\n\t\t\t\theaderIcon = {\n\t\t\t\t\timage: \"assets/images/MCicon32.png\",\n\t\t\t\t\talt: \"MissionConnect\"\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\theaderIcon = {\n\t\t\t\t\timage: \"assets/images/crossflameRW_48px.png\",\n\t\t\t\t\talt: \"UMC Cross and Flame\"\n\t\t\t\t};\n\t\t\t}\n\t\t\t$rootScope.$broadcast('updateCustomer');\n\t\t}\n\t\t\n\t\tfunction getHeaderIcon() {\n\t\t\tswitch (service.customer.name) {\n\t\t\t\tcase \"MissionConnect\":\n\t\t\t\t\theaderIcon = {\n\t\t\t\t\t\timage: \"assets/images/MCicon32.png\",\n\t\t\t\t\t\talt: \"MissionConnect\"\n\t\t\t\t\t};\n\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\theaderIcon = {\n\t\t\t\t\t\timage: \"assets/images/crossflameRW_48px.png\",\n\t\t\t\t\t\talt: \"UMC Cross and Flame\"\n\t\t\t\t\t};\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\treturn headerIcon;\n\t\t}\t\t\n\t}\n\n})();\n(function () {\n 'use strict';\n\n\tangular\n\t\t.module('stats')\n\t\t.factory('formatterService', formatterService);\n\n\tformatterService.$inject = ['modalService'];\n\n\tfunction formatterService(modalService) {\n\t\tvar service = {\n\t\t\taddThousandsCommas: addThousandsCommas,\n\t\t\tdigitsOnly: digitsOnly,\n\t\t\tformatPhone: formatPhone,\n\t\t\tformatSSN: formatSSN,\n\t\t\tformatZip: formatZip\n\t\t};\n\n\t\treturn service;\n\n\t\tfunction addThousandsCommas(numStr) {\n\t\t\tvar pattern = /(\\d+)(\\d{3})/;\n\t\t\tnumStr = numStr.toString();\n\t\t\twhile (pattern.test(numStr)) {\n\t\t\t\tnumStr = numStr.replace(pattern, '$1' + ',' + '$2');\n\t\t\t}\n\t\t\treturn numStr;\n\t\t}\n\t\t\n\t\t//Remove all but Digits 0-9\n\t\tfunction digitsOnly(numStr) { //$log.info(\"formatterSvc/digitsOnly numStr:\",numStr);\n\t\t\tvar pattern = /\\D/g;\n\t\t\tvar str = numStr.toString();\n\t\t\tvar newString = str.replace(pattern,'');\n\t\t\treturn newString;\n\t\t}\n\t\t\n\t\t//formats AS digits entered if called with each change\n\t\tfunction formatPhone(phStr) {\n\t\t\tvar pattern = /\\D/g;\n\t\t\tvar numOnly = phStr.toString().trim().replace(pattern,'');\n\t\t\tvar tel = \"\";\n\t\t\tswitch (numOnly.length) {\n\t\t\t\tcase 1: case 2:\n\t\t\t\t\ttel = \"(\" + numOnly;\n\t\t\t\tbreak;\t\n\t\t\t\tcase 3:\n\t\t\t\t\ttel = \"(\" + numOnly + \") \";\n\t\t\t\tbreak;\n\t\t\t\tcase 4: case 5:\n\t\t\t\t\ttel = \"(\" + numOnly.substr(0,3) + \") \" + \n\t\t\t\t\t\tnumOnly.slice(3);\n\t\t\t\tbreak;\n\t\t\t\tcase 6:\n\t\t\t\t\ttel = \"(\" + numOnly.substr(0,3) + \") \" + \n\t\t\t\t\t\tnumOnly.slice(3) + \"-\";\n\t\t\t\tbreak;\n\t\t\t\tcase 7: case 8: case 9: case 10:\n\t\t\t\t\ttel = \"(\" + numOnly.substr(0,3) + \") \" + \n\t\t\t\t\t\tnumOnly.substr(3,3) + \"-\" + numOnly.slice(6);\n\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\ttel = \"(\" + numOnly.substr(0,3) + \") \" + \n\t\t\t\t\t\tnumOnly.substr(3,3) + \"-\" + numOnly.substr(6,4);\n\t\t\t\tbreak;\t\n\t\t\t}\n\t\t\treturn tel;\t\t//(111) 222-3333\n\t\t}\n\t\t\n\t\tfunction formatSSN(SSN) {\n\t\t\tvar frmSSN = \"\";\n\t\t\tfrmSSN = SSN.substr(0,3) + \"-\" + SSN.substr(3,2) + \"-\" +\n\t\t\t\tSSN.substr(5,4);\n\t\t\treturn frmSSN;\t//123456789 ==> 123-45-6789\n\t\t}\n\t\t\n\t\tfunction formatZip(zip) {\n\t\t\tvar pattern = /\\D/g;\n\t\t\tvar frmZIP = \"\";\n\t\t\tvar numStr = String(zip);\n\t\t\tvar numOnly = numStr.trim().replace(pattern,'');\n\t\t\tswitch (numStr.length) {\n\t\t\t\tcase 1: case 2: case 3: case 4: case 5:\n\t\t\t\t\tfrmZIP = String(numOnly);\n\t\t\t\tbreak;\n\t\t\t\tcase 6: \n\t\t\t\t\tif (String(numOnly).length == 5) {\n\t\t\t\t\t\tfrmZIP = String(numOnly) + \"-\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfrmZIP = String(numOnly).substr(0,5) + \"-\" + String(numOnly).slice(5); \n\t\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t\tcase 7: case 8: case 9: case 10:\n\t\t\t\t\tfrmZIP = String(numOnly).substr(0,5) + \"-\" + String(numOnly).slice(5);\n\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tfrmZIP = String(numOnly).substr(0,5) + \"-\" + String(numOnly).slice(5);\n\t\t\t\t\tif (frmZIP.length > 10) {\n\t\t\t\t\t\tmodalService.okAlert(\"Invalid Entry\",\n\t\t\t\t\t\t\t\"A Zipcode consists of 5 digits or 9 digits. Please \" +\n\t\t\t\t\t\t\t\"enter a valid Zipcode before continuing.\");\n\t\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\treturn frmZIP;\n\t\t}\n\t\t\n\t}\n})();\n(function () {\n 'use strict';\n \n\tangular\n .module('stats')\n .factory('errorEmailNotification', errorEmailNotification);\n\n\terrorEmailNotification.$inject = ['webSessionStorage','$rootScope','loginService'];\n\n function errorEmailNotification(webSessionStorage, $rootScope, loginService) {\n\t\tvar sDataSource = webSessionStorage.getStoredData(\"sDataSource\");\n\t\tvar sEmailContent = \"\";\n\t\t\n\t\tvar factory = {\n\t\t\terror1: error1,\n\t\t\terror2: error2,\n\t\t\terror3: error3,\n\t\t\terror4: error4,\n\t\t\terror5: error5,\n\t\t\terrorMoodle: errorMoodle\n\t\t};\n\t\treturn factory;\n\t\t\n\t\t\n\t\tfunction error1(sFormProc) {\n\t\t\tsEmailContent = \"Error in \" + sFormProc + \"()

\" +\n\t\t\t\t\"DataSource: \" + sDataSource + \"
\" +\n\t\t\t\t\"ReturnCode: \" + $rootScope.retCodeKey + \"
\" +\n\t\t\t\t\"User: \" + loginService.user.USERFULLNAME + \"
\" +\n\t\t\t\t\"UserID: \" + loginService.user.USERID;\n\t\t\treturn sEmailContent;\n\t\t}\n\t\t\n\t\tfunction error2(sFormProc) {\n\t\t\tsEmailContent = \"Error in \" + sFormProc + \"()

\" +\n\t\t\t\t\"DataSource: \" + sDataSource + \"
\" +\n\t\t\t\t\"ProID: \" + $rootScope.sProID + \"
\" +\n\t\t\t\t\"Applicant: \" + $rootScope.Applicant + \"
\" +\n\t\t\t\t\"User: \" + loginService.user.USERFULLNAME + \"
\" +\n\t\t\t\t\"UserID: \" + loginService.user.USERID;\n\t\t\treturn sEmailContent;\n\t\t}\n\t\t\n\t\tfunction error3(sFormProc, iSaveKey) {\n\t\t\tsEmailContent = \"Error in \" + sFormProc + \"()

\" +\n\t\t\t\t\"DataSource: \" + sDataSource + \"
\" +\n\t\t\t\t\"ProID: \" + $rootScope.sProID + \"
\" +\n\t\t\t\t\"Applicant: \" + $rootScope.Applicant + \"
\" +\n\t\t\t\t\"StepSaveKey: \" + String(iSaveKey) + \"
\" +\n\t\t\t\t\"User: \" + loginService.user.USERFULLNAME + \"
\" +\n\t\t\t\t\"UserID: \" + loginService.user.USERID;\n\t\t\treturn sEmailContent;\n\t\t}\n\t\t\n\t\tfunction error4(sFormProc) {\n\t\t\tsEmailContent = \"Error in \" + sFormProc + \"()

\" +\n\t\t\t\t\"DataSource: \" + sDataSource + \"
\" +\n\t\t\t\t\"ProID: \" + $rootScope.sProID + \"
\" +\n\t\t\t\t\"User: \" + loginService.user.USERFULLNAME + \"
\" +\n\t\t\t\t\"UserID: \" + loginService.user.USERID;\n\t\t\treturn sEmailContent;\n\t\t}\n\t\t\n\t\tfunction error5(sForm, emailContent) {\n\t\t\tsEmailContent = \"Error in \" + sForm + \"
\" +\n\t\t\t\temailContent + \"

\" +\n\t\t\t\t\"DataSource: \" + sDataSource + \"
\" +\n\t\t\t\t\"ProID: \" + $rootScope.sProID + \"
\" +\n\t\t\t\t\"User: \" + loginService.user.USERFULLNAME + \"
\" +\n\t\t\t\t\"UserID: \" + loginService.user.USERID;\n\t\t\treturn sEmailContent; \n\t\t}\n\t\t\n\t\tfunction errorMoodle(mReturn,proc) {\n\t\t\tsEmailContent = \"Error in WebApps_Pro/\" + proc + \"()

\" +\n\t\t\t\t\"User not found, and not created. Run test in WebProtect_AIR for:
\" +\n\t\t\t\t\"ProID: \" + $rootScope.sProID + \"
\" +\n\t\t\t\t\"User: \" + loginService.user.USERFULLNAME + \"
\" +\n\t\t\t\t\"UserID: \" + loginService.user.USERID + \"

\" +\n\t\t\t\t\"Returned from Moodle: \" + mReturn;\n\t\t\treturn sEmailContent;\t\n\t\t}\n\t}\n\n})();\n(function () {\n 'use strict';\n \n\tangular\n .module('stats')\n .factory('emailValidator', emailValidator);\n\n function 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\n\t\t\tif (sEmail.search(filter) == -1) {\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\t\t\n\t}\n\n})(); \n(function () {\n\t'use strict';\n\n\tangular\n\t\t.module('stats')\n\t\t.factory('datesService', datesService);\n\n\tdatesService.$inject = ['$log'];\n\n\tfunction datesService($log) {\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\tnowAsCalStringPlusTime: nowAsCalStringPlusTime,\n\t\t\tnowAsDbDatePlusTime: nowAsDbDatePlusTime,\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 nowAsCalStringPlusTime() {\n\t\t\tvar today = new Date(); $log.info(\"today\",today)\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\t\ttoday.getHours() + \":\" + today.getMinutes() + \":\" + today.getSeconds() +\n\t\t\t\t\".\" + today.getMilliseconds();\n\t\t\treturn sCalToday;\t// today as \"MM/DD/YYYY HH:MM:SS.MS\"\n\t\t}\n\t\t\n\t\tfunction nowAsDbDatePlusTime() {\n\t\t\tvar today = new Date(); $log.info(\"today\",today)\n\t\t\tvar mm = today.getMonth()+1;\n\t\t\tvar dd = today.getDate();\n\t\t\tvar sToday = String(today.getFullYear()) + \"-\" + mm + \"-\" + dd + \" \" + \n\t\t\t\ttoday.getHours() + \":\" + today.getMinutes() + \":\" + today.getSeconds() +\n\t\t\t\t\".\" + today.getMilliseconds();\n\t\t\treturn sToday;\t// today as \"YYYY-MM-DD HH:MM:SS.MS\"\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/** UPDATES:\n *\t\t01/15/19 lds - removed ReturnCodeReset function and all calls to it, as timeOutService now \n *\t\t\thandling internally.\n **/\n\n(function () {\n 'use strict';\n \n\tangular\n .module('stats')\n .factory('dataService', dataService);\n\n\tdataService.$inject = ['$http','$sce','webSessionStorage','loginService','$rootScope','statsCFC'];\t\n\n function dataService($http, $sce, webSessionStorage, loginService, $rootScope, statsCFC) {\n\t\tvar sDataSource = \"\";\n\n\t\tvar service = {\n\t\t\tsetDataSource: setDataSource,\n\t\t\temailSendCustom: emailSendCustom,\n\t\t\tfxGet: fxGet,\n\t\t\tlibLoadList: libLoadList,\n\t\t\trptStatChurch: rptStatChurch,\n\t\t\tsendForgottenPassword: sendForgottenPassword,\n\t\t\tstatGetCompleted: statGetCompleted,\n\t\t\tstatGetForm: statGetForm,\n\t\t\tstatGetFormData: statGetFormData,\n\t\t\tstatGetFormStatus: statGetFormStatus,\n\t\t\tstatGetTables: statGetTables,\n\t\t\tstatSaveCompleted: statSaveCompleted,\n\t\t\tstatSaveStatData: statSaveStatData,\n\t\t\tusersChangePassword: usersChangePassword,\n\t\t\tuserGetChurchFunctions: userGetChurchFunctions\n\t\t};\n\t\treturn service;\n\n\t\tfunction setDataSource() {\n\t\t\tsDataSource = webSessionStorage.getStoredData('sDataSource');\n\t\t}\n\t\t\n\t\tfunction emailSendCustom(sEmailAddr, sFrom, sReplyTo, sSubject, sEmailContent) {\n var params = {\n method: \"EmailSendCustom\",\n sEmailAddr: sEmailAddr,\n sFrom: sFrom,\n sReplyTo: sReplyTo,\n sSubject: sSubject,\n sEmailContent: sEmailContent\n };\n return $http.post(statsCFC, params)\n .then(function (results) {\n return results.data;\n });\n\t\t}\n\t\t\n\t\tfunction fxGet(form) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"FxGet\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tsApp: \"WebStatistics\",\n\t\t\t\tsForm: form,\n\t\t\t\tsSpecifier: \"X\"\t\n\t\t\t};\n\t\t\treturn $http.post(statsCFC, params)\n .then(function (results) {\n return results.data;\n });\n\t\t}\n\t\t\n\t\tfunction libLoadList() {\n\t\t\tif (sDataSource == \"\") { setDataSource(); }\n\t\t\tvar params = {\n\t\t\t\tmethod: \"LibLoadList\",\n\t\t\t\tsDataSource: sDataSource\n\t\t\t};\n\t\t\treturn $http.post(statsCFC, params)\n .then(function (results) {\n\t\t\t\treturn results.data;\n });\n\t\t}\n\t\t\n\t\tfunction rptStatChurch(sTables, year, chID, prevYr) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"RptStatChurch\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tiUserID: loginService.user.USERID,\n\t\t\t\tsFormName: sTables,\n\t\t\t\tsYear: year,\n\t\t\t\tiEntityID: chID,\n\t\t\t\tbIncludePrevYear: prevYr\n\t\t\t};\n\t\t\treturn $http.post(statsCFC, params)\n .then(function (results) {\n\t\t\t\treturn results.data;\n });\n\t\t}\n\t\t\n\t\tfunction sendForgottenPassword(sUserName) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"SendForgottenPassword\",\n\t\t\t\tsDataSource: sDataSource,\n sUserName: sUserName,\n sCustomEmailText: \"\"\n };\n return $http.post(statsCFC, params)\n .then(function (results) {\n return results.data;\n });\n\t\t}\n\t\t\n\t\tfunction statGetCompleted(id, year, form) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"StatGetCompleted\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tiEntityID: id,\n\t\t\t\tsYear: year,\n\t\t\t\tsFormName: form\n\t\t\t};\n\t\t\treturn $http.post(statsCFC, params)\n .then(function (results) {\n return results.data;\n });\n\n\t\t}\n\t\t\n\t\tfunction statGetForm(year) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"StatGetForm\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tsFormName: \"all\",\n\t\t\t\tsYear: year\n\t\t\t};\n\t\t\treturn $http.post(statsCFC, params)\n .then(function (results) {\n return results.data;\n });\n\t\t}\n\t\t\n\t\tfunction statGetFormData(year, entityID) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"StatGetFormData\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tsFormName: \"all\",\n\t\t\t\tsYear: year,\n\t\t\t\tiEntityID: entityID\n\t\t\t};\n\t\t\treturn $http.post(statsCFC, params)\n .then(function (results) {\n return results.data;\n });\n\t\t}\n\t\t\n\t\tfunction statGetFormStatus(entityID, yr) {\n\t\t\tif (sDataSource == \"\") { setDataSource(); }\n\t\t\tvar params = {\n\t\t\t\tmethod: \"StatGetFormStatus\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tiEntityID: entityID,\n\t\t\t\tsYear: yr\t\n\t\t\t};\n\t\t\treturn $http.post(statsCFC, params)\n .then(function (results) {\n return results.data;\n });\n\t\t}\n\t\t\n\t\tfunction statGetTables(year) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"StatGetTables\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tsYear: year\t\n\t\t\t};\n\t\t\treturn $http.post(statsCFC, params)\n .then(function (results) {\n return results.data;\n });\n\t\t}\n\t\t\n\t\tfunction statSaveCompleted(sSaveString) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"StatSaveCompleted\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tsRawDataString: sSaveString\n\t\t\t};\n\t\t\treturn $http.post(statsCFC, params)\n .then(function (results) {\n// \t\t\t\tresetReturnCode();\n return results.data;\n });\n\n\t\t}\n\t\t\n\t\tfunction statSaveStatData(sSaveString) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"StatSaveStatData\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tsRawDataString: sSaveString\n\t\t\t};\n\t\t\treturn $http.post(statsCFC, params)\n .then(function (results) {\n// \t\t\t\tresetReturnCode();\n return results.data;\n });\n\n\t\t}\n \n //Preset to ONLY For pulling MENU applications:\n\t\tfunction userGetChurchFunctions() {\n\t\t\tif (sDataSource == \"\") { setDataSource(); }\n\t\t\tvar params = {\n\t\t\t\tmethod: \"UserGetChurchFunctions\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tiUserID: loginService.user.USERID,\n\t\t\t\tsFn: \"all\",\n\t\t\t\tbFnOnly: 1\t\n\t\t\t};\n\t\t\treturn $http.post(statsCFC, params)\n .then(function (results) {\n return results.data;\n });\n\t\t}\n\t\t\n\t\tfunction usersChangePassword(sSaveString) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"UsersChangePassword\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tsRawDataString: sSaveString\n\t\t\t};\n\t\t\treturn $http.post(statsCFC, 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\n\t\t\n//Internally called functions:\n\t\t\n\t\n/*\tDeprecated 01/15/19 with release of timeOutService:\n\t\tfunction resetReturnCode() {\n\t\t\tloginService.secReturnReset(loginService.user.RETURNCODE, loginService.user.USERID, 30)\n\t\t\t.then(function(result) {\n\t\t\t\t$log.info(\"Reset ReturnCode:\",result[0].RESULT);\n\t\t\t\treturn result.RESULT;\n\t\t\t});\n\t\t}\n*/\n\t\t\n }\n })(); \n \n(function () {\n 'use strict';\n \n\tangular\n .module('stats')\n .factory('confirmPWChg', confirmPWChg);\n\n function confirmPWChg() {\n\t\tvar factory = {\n\t\t\tconfirmEmail: confirmEmail,\n\t\t\tconfirmPassword: confirmPassword,\n\t\t\tnotReadyToSave: notReadyToSave\n\t\t};\n\t\treturn factory;\n\t\t\n\t\tfunction confirmEmail(sNewEmail, sConfirmEmail) {\n\t\t\tvar strEmail;\n\t\t\tif (sNewEmail != \"\" && sConfirmEmail != \"\") {\n\t\t\t\tif (sNewEmail.toLowerCase() == sConfirmEmail.toLowerCase()) {\n\t\t\t\t\tstrEmail = \"true\"; }\n\t\t\t\telse {\n\t\t\t\t\tstrEmail = \"The New Email and the Confirmed Email addresses do not match. \" +\n\t\t\t\t\t\t\"Please enter the Email addresses again.\"; \n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tstrEmail = \"false\";\n\t\t\t}\n\t\t\treturn strEmail;\n\t\t}\n\t\t\t\t\n\t\tfunction confirmPassword(sNewPW, sConfirmPW) {\n\t\t\tvar strPW;\n\t\t\tif (sNewPW != \"\" && sConfirmPW != \"\") {\n\t\t\t\tif (sNewPW == sConfirmPW) { strPW = \"true\"; }\n\t\t\t\telse {\n\t\t\t\t\tstrPW = \"The New Password and the Confirmed Password do not match. \" +\n\t\t\t\t\t\t\"Please enter the passwords again.\"; \n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tstrPW = \"false\";\n\t\t\t}\n\t\t\treturn strPW;\n\t\t}\n\t\t\n\t\t//click Save button when NOT activated, so tell user why...\n\t\tfunction notReadyToSave(sOldPW, sNewPW, sConfirmPW, sNewEmail, sConfirmEmail) {\n\t\t\tvar str = \"\";\n\t\t\tif (sOldPW == \"\" && sNewPW == sConfirmPW) {\n\t\t\t\tstr = \"It is required that you enter your old password \" +\n\t\t\t\t\t\"in order to Save a new one.\"; }\n\t\t\telse if ((sNewEmail != \"\" || sConfirmEmail != \"\") &&\n\t\t\t\tsNewEmail.length != sConfirmEmail.length) {\n\t\t\t\tstr = \"You must enter the new Email Address twice, and the \" +\n\t\t\t\t\t\"entries must match, in order to save a new Email.\\n\\n\" +\n\t\t\t\t\t\"Please be sure you are entering the same address in \" +\n\t\t\t\t\t\"both the New and Confirm Email Address fields.\"; }\n\t\t\telse if ((sNewPW != \"\" || sConfirmPW != \"\") &&\n\t\t\t\tsNewPW.length != sConfirmPW.length) {\n\t\t\t\tstr = \"You must enter the new Password twice, and the \\n\" +\n\t\t\t\t\t\"entries must match, in order to save a new Password.\\n\\n\" +\n\t\t\t\t\t\"Please be sure you are entering the same password in \" +\n\t\t\t\t\t\"both the New and Confirm Password fields.\"; }\t\n\t\t\telse if (sOldPW == \"\" && sNewPW == \"\" && sConfirmPW == \"\" &&\n\t\t\t\tsNewEmail == \"\" && sConfirmEmail == \"\") {\n\t\t\t\tstr = \"There is nothing to Save! \\n\\n\" +\n\t\t\t\t\t\"Please enter your new Password or Email before \" +\n\t\t\t\t\t\"clicking the Save button.\";\t\n\t\t\t}\n\t\t\treturn str;\n\t\t}\n\t}\n\n})();\n(function () {\n\t'use strict';\n\n\tangular\n\t\t.module('stats')\n\t\t.factory('checkSumsService', checkSumsService);\n\n\tfunction checkSumsService() {\n\n\t\tvar service = {\n\t\t\treadyToSubmit: {\n\t\t\t\tTable1: false,\n\t\t\t\tTable2Ws: false,\n\t\t\t\tTable2: false,\n\t\t\t\tTable3: false,\n\t\t\t\tTable4: false,\n\t\t\t\tTable9: false\n\t\t\t}\n\t\t};\n\t\treturn service;\n\t\t\n\t}\n})();\n\n(function () {\n 'use strict';\n \n\tangular\n .module('stats')\n .factory('appValidationService', appValidationService);\n\n\tappValidationService.$inject = ['loginService','modalService'];\t\n\n function appValidationService(loginService, modalService) {\n\t\tvar service = {\n\t\t\tvalidateAccess: validateAccess\n\t\t};\n\t\t\n\t\treturn service;\n\t\t\n\t\tfunction validateAccess() {\n\t\t\tvar apps = loginService.user.UserChurchFNs;\n\t\t\tvar perm = \"Denied\";\n\t\t\tif (apps.length > 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\t\n\t\t}\t\n\t}\n})();\n(function() {\n\t'use strict';\n\n\tangular\n\t\t.module('stats')\n\t\t.config(function($httpProvider) {\n\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==> refCtrl, dataService\n\t\t\tUSERFULLNAME,\t\t\t==> certMgmtCtrl, refCtrl, referRefEmail\n\t\t\tUSERENTITYID\t\t\t==> certMgmtCtrl, applCtrl\n\t\t\tRETURNCODE\t\t\t\t==> \n\t\t\tRETURNKEY\n\t\t\tloggedIn\n\t\t\tUserChurchFNs\t\t\t==> populated with USERGETCHURCHFUNCTIONS return all\n\t\t\t\t\t\t\t\t\t\tchurches user has permission to access through various functions\n\t\t}; \n\t\t\n\t\t\nTODO:\n\t* \n\t\n\tLIVE:\n\t\t\n\tDevelopment: cd Applications/ColdFusion9/wwwroot/Burt/Falcon/Web_TestSite/[appName]\n\tRelease PATH: MissionConnect/Public/MCWebApps/ ... /#/index.html\n\t\t\t\n*/\t\nangular\n\t.module('stats')\n\t.directive('enterAsTab', enterAsTab);\n\nenterAsTab.$inject = [];\n\nfunction enterAsTab() {\n\treturn function (scope, element, attrs) {\n\t\telement.bind(\"keydown keypress\", function (event) {\n\t\t\tif (event.which === 13) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tvar elementToFocus = element.next('tr').find('input')[1];\n\t\t\t\tif (angular.isDefined(elementToFocus)) {\n\t\t\t\t\telementToFocus.focus();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n}\n\nangular\n .module('stats')\n .controller('StatHistoryController', StatHistoryController);\n\nStatHistoryController.$inject = ['$rootScope','loginService','dataService','$state','datesService',\n\t'$sce','$scope','$stateParams','timeOutService','checkSumsService','$log'];\n\nfunction StatHistoryController($rootScope, loginService, dataService, $state, datesService, \n\t$sce, $scope, $stateParams, timeOutService, checkSumsService, $log) {\n var vm = this;\n \n vm.arrChurches = [];\n vm.arrStatRecords = [];\n\tvm.FNs = loginService.user.UserChurchFNs;\n\tvm.iChurchID = loginService.user.USERENTITYID;\n\tvm.sChurchName = \"\";\n\tvm.selChurch = {};\n\tvm.sInstructions = \"\";\n\tvm.sUsername = loginService.user.USERNAME;\n//Custom Tables:\t\n\tvm.showWS = false; \t//Show Worksheet columns... only used in LA\n\tvm.showTable4 = false;\n\tvm.showTable9 = false;\n\n//INITIALIZE:\n\t$rootScope.sCurForm = \"Statistical Records\"\n// $log.info($rootScope.sCurForm)\n\t$rootScope.$broadcast('closeMenu');\n\n\t//$stateParams.iChurchID only used coming BACK from StatsEntry:\n\tif ($stateParams.iChurchID > 0) {\n\t\tvm.iChurchID = $stateParams.iChurchID;\n\t\tvm.sChurchName = $stateParams.sChurchName;\n\t}\n\n\tdataService.fxGet('StatsHistory')\n\t.then(function(instr) {\n\t\tif (instr.length > 0) { //$log.info(\"formText\",instr)\n\t\t\tvm.sInstructions = $sce.trustAsHtml(instr[0].TEXT);\n\t\t}\n\t});\n\n\tif (vm.FNs.length == 1 && vm.FNs[0].FN == 'Statistics') { \n\t\tvm.sChurchName = vm.FNs[0].CHURCHNAME; //$log.info(\"ChurchName:\",vm.sChurchName);\n\t\tpopulateStatsTable();\n\t} else {\n\t\tfor (var i=0; i0) {\n\t\t\t\t//show additional custom tables:\n\t\t\t\tfor (var i=0; i 0) {\n\t\t\t\tsubmitHandler(result);\n\t\t\t} else { \n\t\t\t\tvar sRawDataString = \"WebApps_Stats || v.001 || \" + loginService.user.USERID + \n\t\t\t\t\t\" || I || EntityID==\" + vm.iChurchID + \" || FormYear==\" + stat.FORMYEAR + \n\t\t\t\t\t\" || FormName==\" + tbl + \" || CompletedOn==\" + datesService.nowAsDbDatePlusTime() + \n\t\t\t\t\t\" || CompletedBy==\" + loginService.user.USERID + \" ^^ \";\n\t\t\t\t\n\t\t\t\tdataService.statSaveCompleted(sRawDataString)\n\t\t\t\t.then(function(save) {\n\t\t\t\t\tif (save[0].RESULTCODE == 'Success') {\n\t\t\t\t\t\tpopulateStatsTable();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t};\n\t\n}\n\nangular\n .module('stats')\n .controller('StatEntryController', StatEntryController); \n\nStatEntryController.$inject = ['dataService','$stateParams','loginService','statTableService',\n\t'$rootScope','$sce','formatterService','webSessionStorage','datesService','$state','modalService',\n\t'$window','timeOutService','checkSumsService','$log'];\n\nfunction StatEntryController(dataService, $stateParams, loginService, statTableService,\n\t$rootScope, $sce, formatterService, webSessionStorage, datesService, $state, modalService,\n\t$window, timeOutService, checkSumsService, $log) {\n var vm = this;\n\n\tvm.arrCheckSums = [];\n\tvm.arrData = [];\n\tvm.arrDefs = [];\n\tvm.arrDataFields = [];\n\tvm.arrSums = [];\n\tvm.arrTables = [];\n\tvm.bChkSumsOff = false;\n\tvm.sChkSumsErrorTable = \"\";\t//Store Table name for use in alert.\n\tvm.bSubmitted = false;\t//indicates the selTable is submitted\n\tvm.bReadyToSave = 'false';\n\tvm.iChurchID = $stateParams.statRecord.ENTITYID;\n\tvm.sChurchName = $stateParams.sChurchName;\n\tvm.sDatabaseID = webSessionStorage.getStoredData('sDatabaseID');\n\tvm.selTable = \"\";\n\tvm.sPercentComplete = \"\";\n\tvm.prevYear = \"\";\n\tvm.sTableText = \"\";\t\t//for Display (others just hold until table selected)\n\tvm.sTable1Text = \"\";\n\tvm.sTable2WsText = \"\";\n\tvm.sTable2Text = \"\";\n\tvm.sTable3Text = \"\";\n\tvm.sTable4Text = \"\";\n\tvm.sTable9Text = \"\";\n\tvm.statRecord = $stateParams.statRecord;\n\tvm.tblCell;\n\n//INITIALIZE:\n\t$rootScope.sCurForm = \"Stats Entry\";\n// $log.info($rootScope.sCurForm)\t\n\t\n\tvm.prevYear = String(Number(vm.statRecord.FORMYEAR)-1);\n\t\n\tdataService.fxGet(\"StatsEntry\")\n\t.then(function(formText) {\n\t\tfor (var i=0; i 0) {\n\t\t\t\tvm.arrTables.push(tables[0]);\n\t\t\t//LA has Worksheet that needs to come before Table2... else, load dynamically:\t\n\t\t\t\tif (tables[2].FORM == \"Table 2 Worksheet\") {\n\t\t\t\t\tvm.arrTables.push(tables[2]);\n\t\t\t\t\tvm.arrTables.push(tables[1]);\n\t\t\t\t\tfor (var i=3; i 0) {\n\t\t\t\tvm.arrDefs = defs;\n\t\t\t\t\n\t\t\t\tgetStatData();\t\t\t\t\n\t\t\t} else {\n\t\t\t\tmodalService.okAlert(\"No Statistics Found\",\n\t\t\t\t\t\"There are no Statistics defined for this year.\");\n\t\t\t}\n\t\t});\n\t}\t\n\t\n\tfunction getStatData() {\n\t\tdataService.statGetFormData(vm.statRecord.FORMYEAR, vm.statRecord.ENTITYID)\n\t\t.then(function(data) { $log.info(\"Data:\",data)\n\t\t\tif (data.length > 0) {\n\t\t\t\tvm.arrData = data;\n\t\t\t\tloadDisplay();\n\t\t\t}\n\t\t});\n\t}\n\t\n\tfunction loadDisplay() {\n\t\tvm.arrDataFields = [];\n\t\tvm.arrCheckSums = [];\n\t\tvm.arrSums = [];\n\t\tfor (var i=0; i');\n\t\t\t\t\t\t\tvm.arrCheckSums.push({\n\t\t\t\t\t\t\t\tform:vm.arrDefs[i].FORM,\n\t\t\t\t\t\t\t\tchkSum:chkSum.substring(0,idx),\n\t\t\t\t\t\t\t\tstatItem:vm.arrDefs[i].STATITEM,\n\t\t\t\t\t\t\t\tsumField:chkSum.slice(idx+1)\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n// $log.info(\"arrCheckSums:\",vm.arrCheckSums)\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Sum\":\n\t\t\t\t\t\tvar arrCalcFields = [];\n\t\t\t\t\t\tarrCalcFields = vm.arrDefs[i].SOURCEDEF.split(',');\n\t\t\t\t\t\tif (arrCalcFields.length == 1) {\n\t\t\t\t\t\t\tvar cMath = arrCalcFields[0].substr(0,1);\n\t\t\t\t\t\t\tvar sStat = arrCalcFields[0].slice(1);\n\t\t\t\t\t\t\tfor (var c=0; c0) {\n\t\t\t\tvm.statRecord = status[0];\n\t\t\t\tsetCompleted();\n\t\t\t}\n\t\t});\n\t}\n\n\tfunction runTheCheckSums() {\n\t\t//to indicate any Sum fields that are not accurate before a Save...\n\t\tvar sum1 = \"\"; var sum1Amt = 0; var sumField1 = \"\"; var sum1sum = 0;\n\t\tvar sum2 = \"\"; var sum2Amt = 0; var sumField2 = \"\"; var sum2sum = 0;\n\t\tvar sum3 = \"\"; var sum3Amt = 0; var sumField3 = \"\"; var sum3sum = 0;\n\t\tif (vm.arrCheckSums.length > 0) { \n// $log.info(\"checkSums:\",vm.arrCheckSums)\n\t\t\tfor (var i=0; i\" + \n\t\t\t\t\t\tresult[0].RESULTREASON);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\t\n\t//Uses the StatGetFormStatus record to display %complete, or Submitted, or Save buttons:\n\tfunction setCompleted() {\n\t\tvm.sPercentComplete = statTableService.getStatus(vm.selTable, vm.statRecord); \n\t\tif (vm.sPercentComplete.substr(0,9) == \"Submitted\") {\n\t\t\tvm.bSubmitted = true; \n\t\t}\n\t}\n\t\n\tfunction setTableText() {\n\t\tswitch (vm.selTable) {\n\t\t\tcase \"Table 1\": vm.sTableText = vm.sTable1Text;\tbreak;\n\t\t\tcase \"Table 2\": vm.sTableText = vm.sTable2Text;\tbreak;\n\t\t\tcase \"Table 2 Worksheet\": vm.sTableText = vm.sTable2WsText;\tbreak;\n\t\t\tcase \"Table 3\": vm.sTableText = vm.sTable3Text;\tbreak;\n\t\t\tcase \"Table 4\": vm.sTableText = vm.sTable4Text; break;\n\t\t\tcase \"Table 9\": vm.sTableText = vm.sTable9Text; break;\n\t\t}\n\t}\n\t\n\tfunction submitHandler(saveKey) {\n\t\tvar sRawDataString = \"WebApps_Stats || v.001 || \" + loginService.user.USERID + \" || \";\n\t\tif (saveKey > 0) {\n\t\t\tsRawDataString += \"U || SaveKey==\" + saveKey;\n\t\t} else { sRawDataString += \"I\"; }\n\t\tsRawDataString += \" || EntityID==\" + vm.iChurchID + \" || FormYear==\" + vm.statRecord.FORMYEAR + \n\t\t\t\" || FormName==\" + vm.selTable + \" || CompletedOn==\" + datesService.nowAsDbDatePlusTime() + \n\t\t\t\" || CompletedBy==\" + loginService.user.USERID + \" ^^ \";\n\t\t\t\t\n\t\tdataService.statSaveCompleted(sRawDataString)\n\t\t.then(function(submit) {\n\t\t\tif (submit[0].RESULTCODE == 'Success') {\n\t\t\t\trefreshStatus();\t//includes setCompleted()\n\t\t\t\tgetStatData();\t\t//includes loadDisplay()\n\t\t\t} else {\n\t\t\t\tmodalService.okAlert(\"Save Error\",\n\t\t\t\t\t\t\"An Error occurred while trying to submit the Statistics table.
\" + \n\t\t\t\t\t\tsubmit[0].RESULTREASON);\n\t\t\t}\n\t\t});\n\t}\n\t\n\tfunction validateSums(sStat) { //$log.info(\"StatSum:\",sStat)\n\t\tif (vm.arrSums.length > 0) {\n\t\t\tvar sumItem1 = \"\";\n\t\t\tvar sumItem2 = \"\";\n\t\t\tvar sumItem3 = \"\";\n\t\t\tvar sumAmt1 = 0;\n\t\t\tvar sumAmt2 = 0;\n\t\t\tvar sumAmt3 = 0;\n\t\t\tvar sumOfSum1 = \"\";\n\t\t\tvar sumOfSum2 = \"\";\n\t\t\tvar totSum1 = 0;\n\t\t\tvar totSum2 = 0;\n \n\t\t\t//Find all the sums this statItem feeds into:\n\t\t\tfor (var i=0; i 100) {\n\t\t\t\titem.data = item.data.substr(0,100);\n\t\t\t\tmodalService.okAlert(\"Character Limit\",\n\t\t\t\t\t\"You've reached the maximum number of characters allowed in this field.\");\n\t\t\t}\n\t\t}\n\t\t\n// \t\tif (bAllowChanges) {\n\t\t\tvm.bReadyToSave = 'true';\n\t\t\t//Special Handling prior to Summing:\n\t\t\tswitch (item.numDol) {\n\t\t\t\tcase \"Number\": case \"Dollars\":\n\t\t\t\t\tvar pattern = /\\D/g;\n\t\t\t\t\tvar str = item.data;\n\t\t\t\t\titem.data = str.replace(pattern,''); $log.info(item.data);\n\t\t\t\t\t\n\t\t\t\t\t/** Validate if '', that if previously NOT blank, fill with 0. \n\t\t\t\t\t*\tDo not want to do this if no previous value, as blank shows user they\n\t\t\t\t\t*\thad not completed yet... but if removing, then replace with 0.\n\t\t\t\t\t*/\n// \t\t\t\t\tif (item.data == '') {\n\t\t\t\t\t\t/** Not sure if should implement this... */\n// \t\t\t\t\t}\n\t\t\t\tbreak;\t\n\t\t\t}\n\t\t\tvalidateSums(item.statItem);\n\t\t\tif (vm.bChkSumsOff == true) {\n\t\t\t\trunTheCheckSums();\n\t\t\t}\n// \t\t}\t\n\t};\n\t\n\tvm.changeTableHandler = function() {\n\t\ttimeOutService.resetTimer(30);\n\t\t\n\t\tif (vm.bReadyToSave == 'false') {\n\t\t\tvm.bSubmitted = false;\t//reset\n\t\t\tvm.arrChecksums = [];\t//reset\n\t\t\tvm.arrSums = [];\t\t//reset\n\t\n\t\t\t//Custom LA:\n\t\t\tif ((vm.sDatabaseID=='LA'||vm.sDatabaseID=='LA-DEV') &&\n\t\t\t\tvm.selTable == 'Table 2' &&\n\t\t\t\tstatTableService.getStatus('Table 2 Worksheet', vm.statRecord).substr(0,9)!='Submitted') {\n\t\t\t\tvm.selTable = 'Table 2 Worksheet';\n\t\t\t\tmodalService.okAlert(\"Missing Worksheet Data\", \n\t\t\t\t\t\"You must Complete and Submit the Table 2 Worksheet before you are \" +\n\t\t\t\t\t\"able to complete Table 2.\");\n\t\t\t}\n\t\t\tsetCompleted();\t\t//run first to set vm.bSubmitted, so fields in display are disabled\n\t\t\tloadDisplay();\t\t//creates sum & checkSum arrays\n\t\t\tsetTableText();\n\t\t} else { \n\t\t\tmodalService.okAlert(\"Unsaved Changes\",\n\t\t\t\t\"Please Save or Cancel your data changes before changing tables.\");\n\t\t}\n\t};\n\t\n\tvm.enterAsTab = function(event,id) {\n\t\tif (event.which === 13) {\n\t\t\tevent.preventDefault();\n\t\t\tfor (var i=0; i
\" +\n\t\t\t\t\t\t\"Please correct the highlighted fields to balance with the \" +\n\t\t\t\t\t\t\"highlighted sum. Or you may click the Save button again to \" +\n\t\t\t\t\t\t\"continue to save.

\" +\n\t\t\t\t\t\t\"You will be unable to Submit this table until all CheckSums are equal.\");\n\t\t\t\t} else {\n\t\t\t\t\tmodalService.okAlert(\"Warning!\",\n\t\t\t\t\t\t\"There are CheckSums that are not equal.
\" +\n\t\t\t\t\t\t\"After the Save completes, please return to \" + vm.sChkSumsErrorTable + \n\t\t\t\t\t\t\" to correct the highlighted fields to balance with the highlighted sum.\");\n\t\t\t\t\tsaveData();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsaveData(); \n\t\t\t}\n\t\t} else if (vm.bReadyToSave == 'warn') {\n\t\t\trunTheCheckSums();\n\t\t\tsaveData();\n\t\t} else {\n\t\t\tmodalService.okAlert(\"Oops!\",\n\t\t\t\t\"We did not find any data changes to Save.\");\n\t\t}\n\t};\n\t\n\tvm.submitTable = function() {\n\t\ttimeOutService.resetTimer(30);\n/*\n\t\tif (vm.bChkSumsOff == true) {\n\t\t\tmodalService.okAlert(\"Warning!\",\n\t\t\t\t\"There are CheckSums that are not equal.

\" +\n\t\t\t\t\"You will not be able to submit this form until the highlighted fields \" +\n\t\t\t\t\"balance with the highlighted sum.\")\n\t\t} else {\n*/\n\t\t\tdataService.statGetCompleted(vm.iChurchID, vm.statRecord.FORMYEAR, vm.selTable)\n\t\t\t.then(function(result) {\n// $log.info('statGetCompleted:', result);\n\t\t\t\tif (result.length > 0) {\n\t\t\t\t\tsubmitHandler(result[0].SAVEKEY);\n\t\t\t\t} else {\n\t\t\t\t\tsubmitHandler(0); \n\t\t\t\t}\n\t\t\t});\t\t\n// \t\t}\n\t};\n\t\n}\nangular\n .module('stats')\n .controller('StaffController', StaffController);\n\nStaffController.$inject = ['dataService'];\n\nfunction StaffController(dataService) { \n\n var vm = this;\n \n vm.arrContacts = [];\n \n dataService.libLoadList()\n .then(function(list) {\n\t\tif (list.length > 0) {\n\t\t\tvm.arrContacts = list;\n\t\t}\n });\n\n}\n\nangular\n .module('stats')\n .controller('PrintController', PrintController);\n\nPrintController.$inject = ['$rootScope','$stateParams','$state','$window','dataService','$uibModal',\n\t'modalService', 'timeOutService', '$log'];\n\nfunction PrintController($rootScope, $stateParams, $state, $window, dataService, $uibModal, \n\tmodalService, timeOutService, $log) {\n var vm = this;\n \n vm.back = { image: \"assets/images/left_32.png\" };\n vm.bAllTables = true;\n vm.optPrint = \"1\";\n vm.arrTables = $stateParams.arrTables;\n vm.rptUrl = \"\";\n\n \n//INITIALIZE:\n\t$rootScope.sCurForm = \"Print\";\n$log.info($rootScope.sCurForm)\n \n for (var i=0; i 0) {\n\t\t\t\tvm.rptUrl = \"https://umcdata.net\" + rpt[0].REPORTURL;\n\t\t\t\tmodalService.okPrintAlert(\"Print Statistics\",\"Your report is ready to Print!\",\n\t\t\t\t\tvm.rptUrl);\n\t\t\t\t\n\t\t\t}\n\t\t});\n\t};\n\n}\n\nangular\t\t\n\t.module('stats')\n\t.controller('NavBarController', NavBarController);\n\nNavBarController.$inject = ['$state','webSessionStorage','headerService','$scope','modalService',\n\t'$rootScope', 'loginService','version','chrgApptsURL','mcWebAppsURL','minFinURL','protectURL','lclURL',\n\t'$window','custData','custDataDev','dataService','$log'];\n\t\nfunction NavBarController($state, webSessionStorage, headerService, $scope, modalService,\n\t$rootScope, loginService, version, chrgApptsURL, mcWebAppsURL, minFinURL, protectURL, lclURL, \n\t$window, custData, custDataDev, dataService, $log) {\n\tvar vm = this;\n\n\tvm.loggedIn = false;\n\tvm.headerIcon = headerService.getHeaderIcon();\n\tvm.isCollapsed = true;\n\tvm.myApps = [];\n\tvm.sCustomerName = headerService.customer.name;\n\tvm.version = version;\n\n\tfunction getAppsForMenu() {\n\t\tvm.myApps = [];\n\t\tdataService.userGetChurchFunctions()\n\t\t.then(function(apps) { //$log.info(\"getApps:\",apps, vm.myApps)\n\t\t\tif (apps.length > 0) {\n\t\t\t\tfor (var i=0; i Don't need to list SELF!\n\t\t\t\t\t\tbreak;\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n/* Broadcasts: */\t \n\t$scope.$on('closeMenu', function() {\n\t\tvm.isCollapsed = true;\n\t});\n\t\n\t$scope.$on('updateCustomer', function() {\n\t\tvm.headerIcon = headerService.getHeaderIcon();\n\t\tvm.sCustomerName = headerService.customer.name;\n\t});\n\t\n\t$scope.$on('updateNav', function() {\n\t\tvm.myApps = $rootScope.myApps;\n\t\tvm.loggedIn = loginService.user.loggedIn;\n\t\tgetAppsForMenu();\n\t});\n\n\t\n/* Calls from View: */\n\n\tvm.goHome = function() {\n\t\t$state.go('login', {reload:true});\n\t};\n\t\n\tvm.goToAbout = function() {\n\t\t$rootScope.sCurForm = \"about\";\n\t\t$state.go('about');\n\t}\n\t\n\tvm.goToApp = function(app) {\n\t\tif ($rootScope.bPasswordExpired == true) {\n\t\t\tmodalService.okAlert(\"Password Expired\",\n\t\t\t\t\"Your current password has expired.\");\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 \"Center\":\n\t\t\t\t\tsFn = \"Center\";\n\t\t\t\t\tsPath = chrgApptsURL;\n\t\t\t\tbreak;\n\t\t\t\tcase \"Contact Information\":\n\t\t\t\t\tsFn = \"ContactInfo\";\n\t\t\t\t\tsPath = mcWebAppsURL;\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 \"SignUp\":\n\t\t\t\t\t//coming...\n\t\t\t\tbreak;\n\t\t\t\tcase \"Statistics\":\n\t\t\t\t\tsFn = \"Statistics\";\n\t\t\t\t\t$rootScope.sCurForm = \"Statistics Records\";\n\t\t\t\tbreak;\n\t\t\t}\n\t\n\t\t/** Call for NEW ReturnCode set to expire in 1 minute...\n\t\t *\t And go to new app (sFn), which will login to new app.\n\t\t **/\n\t\t\tswitch (sFn) {\n\t\t\t\tcase \"Statistics\": //local path\n\t\t\t\t\t$state.go('statHist');\n\t\t\t\tbreak;\n\t\t\t\tdefault: // External Apps:\n\t\t\t\t\tloginService.secGetReturnCode(1, sFn)\n\t\t\t\t\t.then(function(result) {\n\t\t\t\t\t\t$window.location.replace(sPath + \"?ReturnCode=\" + \n\t\t\t\t\t\t\tresult[0].RETURNCODE);\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\t/** Removes all secure app permission, sending user back to\n\t *\t login screen and retaining selected Customer: \n\t **/\t\n\tvm.logOff = function() {\n\t\tvm.loggedIn = false;\n\t\tloginService.logout();\n\t\tvm.myApps = [];\n\t\t$state.go('login', {reload: true});\n\t};\n\t\n}\t \n\nangular\n .module('stats')\n .controller('ModalController', ModalController);\n\nModalController.$inject = ['$uibModalInstance','modType','title','alertMsg','$sce'];\n\nfunction ModalController($uibModalInstance, modType, title, alertMsg, $sce) {\n var vm = this;\n \n vm.modType = modType;\t//OK, printOpts, ...\n vm.sTitle = title;\n vm.sAlertMsg = $sce.trustAsHtml(alertMsg);\n \n\tvm.ok = function() {\n\t\t$uibModalInstance.close();\n\t}\n\t\n\tvm.cancel = function() {\n\t\t$uibModalInstance.dismiss();\n\t};\n\t\n\tvm.open = function() {\n\t\t$uibModalInstance.close({open: true});\n\t};\n\t\n}\n\nangular\n .module('stats')\n .controller('ModalTimeoutController', ModalTimeoutController);\n\nModalTimeoutController.$inject = ['$uibModalInstance','$timeout'];\n\nfunction ModalTimeoutController($uibModalInstance, $timeout) {\n var vm = this;\n vm.secTimer = 60;\n \n runTimer();\n \n\tfunction runTimer() {\n\t\t$timeout(function () {\n\t\t\tvm.secTimer--;\n\t\t\tif (vm.secTimer > 0) {\n\t\t\t\trunTimer();\t\n\t\t\t} else {\n\t\t\t\t$uibModalInstance.close({continue: false});\n\t\t\t}\n\t\t}, 1000);\t\t\n\t}\n\t\n\tvm.continue = function() {\n\t\t$uibModalInstance.close({continue: true});\t\n\t};\n}\nangular\n .module('stats')\n .controller('ModalConfSelectController', ModalConfSelectController);\n\nModalConfSelectController.$inject = ['$uibModalInstance','confs','$log'];\n\nfunction ModalConfSelectController($uibModalInstance, confs, $log) {\n$log.info(\"ModalConfSelectController\");\t\n\n\tvar vm = this;\n\tvm.confs = confs;\n\tvm.options = {};\n\t\n\tvm.ok = function (sConfSel) {\n\t\t$uibModalInstance.close(sConfSel);\n };\n\n\tvm.cancel = function () {\n\t\t$uibModalInstance.dismiss('cancel');\n\t};\n\n}\n/** UPDATES:\n * \t* 01/15/19 lds - Added timeOutService, and resetting of Customer on form reload.\n **/\n\nangular\n\t.module('stats')\n\t.controller('LoginController', LoginController);\n\nLoginController.$inject = ['webSessionStorage','$rootScope','dataService','$state',\n\t'loginService','$uibModal','modalService','custData','headerService','appValidationService',\n\t'setCustService','timeOutService'];\n\nfunction LoginController(webSessionStorage, $rootScope, dataService, $state, \n\tloginService, $uibModal, modalService, custData, headerService, appValidationService,\n\tsetCustService, timeOutService) {\n\tvar vm = this; //as vmLI\n\t\n\tvm.bShowConferences = false;\n\tvm.custDB = custData;\n\tvm.selConf = custData[0];\n\tvm.sDatabaseID = webSessionStorage.getStoredData('sDatabaseID');\n\tvm.sUsername = \"\";\n\tvm.sPassword = \"\";\n\tvm.sWelcomeHdr = \"\";\n\t\n\t\n//INITIALIZE:\t\n\t$rootScope.sCurForm = 'Login';\n\n\n\t/** When returning here, with {reload: true}, ensure\n\t * that Customer is still 'set' in NavBar by calling\n\t * setCustService if sDatabaseID still in Session storage:\n\t **/\n\tif (vm.sDatabaseID !== null &&\n\t\tangular.isDefined(vm.sDatabaseID) == true) {\n\t\tsetCustService.fromDatabaseID(vm.sDatabaseID);\t\n\t} else { vm.bShowConferences = true; }\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\t\t\t\t\t/* Start Session Timer: */\n\t\t\t\t\ttimeOutService.setTimer(30);\n\n\t\t\t\t/* Determine landing page... */\n\t\t\t\t\tif (appValidationService.validateAccess() == \"Valid\") {\n\t\t\t\t\t\t$rootScope.sCurForm = 'Statistics Records';\n\t\t\t\t\t\t$state.go('statHist');\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}\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 a password reset link sent to the email address ' +\n\t\t\t\t\t'associated with this account by clicking the \\\"Forgot Password\\\" button.');\n\t\t\t} else if (data[0].SECUSERLOGIN[0].RESULT == \"Multiple\") {\n\t\t\t\topenConfSelectModal(data[0].SECUSERLOGIN[0].HELPGETDBBYUSER, false);\n\t\t\t} else {\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 a password reset link sent to the email address ' +\n\t\t\t\t\t'associated with this account by clicking the \\\"Forgot Password\\\" button.');\n\t\t\t}\n\t\t});\n\t}\n\t\n\t\n//Modals:\n\tfunction openConfSelectModal(arrConfs, bPwReset) {\n\t\tvar modalInstance = $uibModal.open({\n\t\t\tanimation: true,\n\t\t\tsize: 'lg',\n\t\t\ttemplateUrl: 'app/modals/modConfSelectModal.html',\n\t\t\tcontroller: 'ModalConfSelectController',\n\t\t\tbindToController: true,\n\t\t\tcontrollerAs: 'vmSel',\n\t\t\tkeyboard: true,\n\t\t\tbackdrop: 'static',\n\t\t\tbackdropClass: 'bottom:0;height:100%;margin:0;padding-bottom:0',\n\t\t\tresolve: {\n\t\t\t\tconfs: function() {\n\t\t\t\t\treturn arrConfs;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tmodalInstance.result\n\t\t.then(function(modResult) {\n\t\t\tsetCustService.fromDataSource(modResult.DATASOURCE);\n\t\t\tif (bPwReset) {\n\t\t\t\tvm.forgotPassword_clickHandler();\n\t\t\t} else {\n\t\t\t\tvm.validateUserLogin();\t\t\t\t\t\n\t\t\t}\n\t\t});\n\t}\n\n\t\n/* Calls from View: */\n \n\tvm.enterKeyHandler = function($event) {\n\t\tif ($event.keyCode === 13) {\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}\t\n\t\t} \n\t};\n\t\n\tvm.forgotPassword_clickHandler = function() {\n\t\tif (vm.sUsername == \"\") {\n\t\t\tmodalService.okAlert('Missing Entry', \n\t\t\t\t'Please enter your Username, then click the \\\"Forgot Password\\\" ' +\n\t\t\t\t'button again. A password reset link will be sent to the Email address ' +\n\t\t\t\t'associated with this 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 {\t\t\n\t\t\tloginService.secPasswordReset(vm.sUsername)\n\t\t\t.then(function(data) {\n\t\t\t\tswitch (data[0].RESULT) {\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\t\tbreak;\n\t\t\t\t\tcase 'Multiple':\n\t\t\t\t\t\topenConfSelectModal(data[0].SECUSERLOGIN, true);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'Completed':\n\t\t\t\t\t\tmodalService.okAlert('Password Reset Email Sent', \n\t\t\t\t\t\t\t'A password reset link has been sent to ' + data[0].RESULTREASON +\n\t\t\t\t\t\t\t' from mchelp@greatspirit.com.

' +\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\t\tbreak;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n };\n\t\n//Close MENU:\t\n\tvm.onFocus = function() {\n\t\t$rootScope.$broadcast('closeMenu');\n\t};\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 vm.validateUserLogin = function() {\n\t\tif (vm.sUsername.trim() != \"\" && vm.sPassword.trim() != \"\") {\n\t\t\tlogInUser();\n\t\t} else {\n\t\t\tmodalService.okAlert(\"Missing Entry\", \n\t\t\t\t\"Please enter your Username and Password to Log \" +\n\t\t\t\t\"In to your account.\");\n\t\t}\n\t};\n\t\t\n}\nangular\n .module('stats')\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 + \"

Reporting issue: \" +\n\t\t\t\tvm.sProblem;\n\t\t\tdataService.emailSendError(sError);\n\t\t}\t\t\n\t});\n\t\t\n\t\t\n/* Externally Called Functions: */\n\n\tvm.confirmReadyToSubmit = function() {\n\t\tif (vm.sUserFullName != \"\" && vm.sUserEmail != \"\" &&\n\t\t\tvm.sProblem != \"\") {\n\t\t\tif (validatorService.emailIsValid(vm.sUserEmail) == true) {\n\t\t\t\tvm.bReadyToSubmit = \"true\"; }\n\t\t\telse {\n\t\t\t\tvm.bReadyToSubmit = \"false\";\n\t\t\t\tmodalService.okAlert(\"Invalid Entry\", \n\t\t\t\t\t\"The email entered is not a valid email address.

\" +\n\t\t\t\t\t\"Please enter a valid email address, then click Submit.\");\t\t\n\t\t\t}\t\n\t\t} else { vm.bReadyToSubmit = \"false\"; }\n\t};\n\t\n\tvm.submitHD = function() {\n\t\tif (vm.bReadyToSubmit == \"true\") {\n\t\t\tif (vm.iIssueID > 0) {\n\t\t\t\thelpDeskService.helpHdSaveIssue(vm.iIssueID, vm.sUserFullName,\n\t\t\t\t\tvm.sUserEmail, vm.sProblem);\n\t\t\t}\n\t\t} else if (vm.sUserFullName == \"\") {\n\t\t\tmodalService.okAlert(\"Missing Data\", \n\t\t\t\t\"Please enter your Name before Submitting \" +\n\t\t\t\t\"the Help Desk issue.\");\n\t\t} else if (vm.sUserEmail == \"\") {\n\t\t\tmodalService.okAlert(\"Missing Data\", \n\t\t\t\t\"Please enter your Email Address before \" +\n\t\t\t\t\"Submitting the Help Desk issue.\");\n\t\t} else if (vm.sProblem == \"\") {\n\t\t\tmodalService.okAlert(\"Missing Data\", \n\t\t\t\t\"Please describe the issue you are experiencing \" +\n\t\t\t\t\"before Submitting the Help Desk issue.\");\n\t\t}\n\t};\t\n\t\n}\t\n\nangular\n .module('stats')\n .controller('ChgPasswordController', ChgPasswordController);\n\nChgPasswordController.$inject = ['$rootScope','$state', 'passwordStrength','validatorService',\n\t'confirmPWChg','dataService','loginService','modalService','appValidationService','$stateParams'];\t\n\nfunction ChgPasswordController($rootScope, $state, passwordStrength, validatorService,\n\tconfirmPWChg, dataService, loginService, modalService, appValidationService, $stateParams) {\n\tvar vm = this;\t//vmCP\n \n vm.bHideOldPw = $stateParams.bHideOldPw;\n\tvm.bPasswordExpired = $rootScope.bPasswordExpired;\n vm.bReadyToSave = \"false\";\n vm.bReadyToSavePW = false;\n vm.bReadyToSaveEmail = false;\n vm.sPasswordStrength = \"Too Short\";\n vm.sPWClass = \"tooShort\";\n vm.sUserEmail = loginService.user.USEREMAIL;\n \n vm.data = { oldPW:\"\",\n\t\tnewPW:\"\", confirmPW:\"\",\n\t\temail:\"\", confirmEmail:\"\"\t\n\t};\n\t\n//INITIALIZE:\t\n\t$rootScope.sCurForm = \"Change Password/Email\";\n\t\n\tfunction validateEmail() {\n\t\tvar emValidate = confirmPWChg.confirmEmail(vm.data.email, vm.data.confirmEmail);\n\t\tswitch (emValidate) {\n\t\t\tcase \"true\": \n\t\t\t\tif (validatorService.emailIsValid(vm.data.email) == true) {\n\t\t\t\t\tvm.bReadyToSaveEmail = true; \n\t\t\t\t\tif (vm.data.newPW == \"\" && vm.data.confirmPW == \"\") {\n\t\t\t\t\t\tvm.bReadyToSave = 'true';\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tvm.bReadyToSaveEmail = false;\n\t\t\t\t\tvm.data.confirmEmail = \"\";\n\t\t\t\t\tmodalService.okAlert(\"Invalid Email Address\", \n\t\t\t\t\t\t\"The email entered is not a valid email address.

\" +\n\t\t\t\t\t\t\"Please enter a valid email address.\");\n\t\t\t\t}\n\t\t\tbreak;\n\t\t\tcase \"false\": \n\t\t\t\t//returned when email or confirmEmail is \"\"\n\t\t\t\tvm.bReadyToSaveEmail = false;\n\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tmodalService.okAlert(\"\", emValidate);\n\t\t\tbreak;\n\t\t}\n\t}\n\t\n\tfunction validatePW() {\n\t\tif (vm.data.oldPW != \"\" || vm.bHideOldPw) {\n\t\t\tvar validatePassword = confirmPWChg.confirmPassword(vm.data.newPW, vm.data.confirmPW);\n\t\t\tswitch (validatePassword) {\n\t\t\t\tcase \"true\": \n\t\t\t\t\tif (vm.sPasswordStrength == \"Strong\" ||\n\t\t\t\t\t\tvm.sPasswordStrength == \"Very Strong\") {\n\t\t\t\t\t\tvm.bReadyToSavePW = true;\n\t\t\t\t\t\tif ((vm.data.email==\"\" && vm.data.confirmEmail==\"\") ||\n\t\t\t\t\t\t\tvm.bReadyToSaveEmail == true) {\n\t\t\t\t\t\t\tvm.bReadyToSave = 'true';\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvm.bReadyToSavePW = false;\n\t\t\t\t\t\tvm.data.confirmPW = \"\";\n\t\t\t\t\t\tmodalService.okAlert(\"Password Strength\", \n\t\t\t\t\t\t\t\"The password needs to meet the \\\"Strong\\\" \" +\n\t\t\t\t\t\t\t\"or \\\"Very Strong\\\" validation before it can be saved.\");\n\t\t\t\t\t}\n\t\t\t\tbreak;\t\t\n\t\t\t\tcase \"false\":\n\t\t\t\t\tvm.bReadyToSavePW = false;\n\t\t\t\t\tvm.data.confirmPW = \"\";\n\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tvm.bReadyToSavePW = false;\n\t\t\t\t\tvm.data.confirmPW = \"\";\n\t\t\t\t\tmodalService.okAlert(\"Password Validation\", validatePassword);\n\t\t\t\tbreak;\n\t\t\t}\t\t\n\t\t}\n\t}\n \n function saveNewEmail() {\n\t\tvar sSaveString = \"WebStats || chgPW || \" + loginService.user.USERID + \n\t\t\t\" || U || UserID==\" + loginService.user.USERID + \n\t\t\t\" || UserEmail==\" + vm.data.email + \" ^^ \";\n\t\t\n\t\tloginService.usersSave(sSaveString)\n\t\t.then(function(data) { \n if (data[0].RESULTCODE == \"Success\") {\n\t\t\t\tvar sSaveSuccessMsg = \"Your email has been updated successfully!
\";\n\t\t\t\tloginService.user.USEREMAIL = vm.data.email;\n\t\t\t\tif (vm.bReadyToSavePW != true) {\n\t\t\t\t\tmodalService.okAlert(\"Save Successful\", sSaveSuccessMsg);\n\n\t\t\t\t\tif (!$rootScope.bPasswordExpired) {\n\t\t\t\t\t\tif (appValidationService.validateAccess() == \"Valid\") {\n\t\t\t\t\t\t\t$rootScope.sCurForm = 'Statistics Records';\n\t\t\t\t\t\t\t$state.go('statHist');\n\t\t\t\t\t\t} else { \n\t\t\t\t\t\t\t$rootScope.sCurForm = 'Login';\n\t\t\t\t\t\t\t$state.go('login'); \n\t\t\t\t\t\t}\n\t\t\t\t\t} else { \n\t\t\t\t\t\t$state.reload();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t//also saving new Password:\n\t\t\t\t\tsaveNewPassword(sSaveSuccessMsg);\t\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tmodalService.okAlert(\"Save Failed\", data[0].RESULTCODE);\n\t\t\t}\n\t\t});\n }\n \n\tfunction saveNewPassword(msg) {\n\t\tif (vm.bHideOldPw) {\n\t\t\tvar sSaveString = \"WebStats || chgPW || \" + loginService.user.USERID + \n\t\t\t\" || U || UserID==\" + loginService.user.USERID + \" || UserName==\" +\n\t\t\tloginService.user.USERNAME + \" || Password==\" + vm.data.newPW + \" ^^ \";\n\t\t\t\n\t\t\tloginService.usersSave(sSaveString)\n\t\t\t.then(function(data) {\n\t\t\t\tif (data[0].RESULTCODE == 'Success') {\n\t\t\t\t\t$rootScope.bPasswordExpired = false;\n\t\t\t\t\tmodalService.okAlert(\"Save Successful\", \n\t\t\t\t\t\tmsg + \"Your password has been updated successfully!\");\n\t\t\t\t\tloginService.login(loginService.user.USERNAME, vm.data.newPW)\n\t\t\t\t\t.then(function(loginReturn) {\n\t\t\t\t\t\tif (loginReturn[0].SECUSERLOGIN[0].RESULT == \"Success\") {\n\t\t\t\t\t\t\t$rootScope.sCurForm = 'Statistics Records';\n\t\t\t\t\t\t\t$state.go('statHist');\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t$state.reload();\n\t\t\t\t\tmodalService.okAlert(\"Save Failed\", msg + data[0].RESULTREASON);\n\t\t\t\t}\n\t \t\t})\n\t\t} else {\n\t\t\tvar sSaveString = \"WebStats || chgPW || \" + loginService.user.USERID +\n\t\t\t\t\" || U || UserID==\" + loginService.user.USERID + \" || UserName==\" +\n\t\t\t\tloginService.user.USERNAME + \" || OldPassword==\" + vm.data.oldPW +\n\t\t\t\t\" || NewPassword==\" + vm.data.newPW + \" || PWStrength==\" + \n\t\t\t\tvm.sPasswordStrength + \" ^^ \";\n\n\t\t\tdataService.usersChangePassword(sSaveString)\n\t\t\t.then(function(data) {\n\t\t\t\tif (data[0].RESULTCODE == \"Success\") {\n\t\t\t\t\t$rootScope.bPasswordExpired = false;\n\t\t\t\t\tmodalService.okAlert(\"Save Successful\", \n\t\t\t\t\t\tmsg + \"Your password has been updated successfully!\");\n\t\n\t\t\t\t\tif (appValidationService.validateAccess() == \"Valid\") {\n\t\t\t\t\t\t$rootScope.sCurForm = 'Statistics Records';\n\t\t\t\t\t\t$state.go('statHist');\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}\t\n\t\t\t\t} else {\n\t\t\t\t\t$state.reload();\n\t\t\t\t\tmodalService.okAlert(\"Save Failed\", msg + data[0].RESULTREASON);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n }\n \n \n/* Externally Called Functions: */\n\n vm.cancelChanges = function() {\n\t if ($rootScope.bPasswordExpired) {\n\t\t\t$state.reload();\n\t\t} else {\n\t\t\t//Return to Landing page for app:\n\t\t\t$rootScope.sCurForm = 'Statistics Records';\n\t\t\t$state.go('statHist');\n\t\t}\n\t};\n \n vm.checkPWStrength = function() {\n\t\tvar pwReturn = passwordStrength.getPWStrength(vm.data.newPW);\n\t\tvm.sPasswordStrength = pwReturn.strength;\n\t\tvm.sPWClass = pwReturn.class;\n\t}; \n\n vm.confirmReadyToSave = function(item) {\n\t\tswitch (item) {\n\t\t\tcase \"email\":\n\t\t\t\tvalidateEmail();\t\n\t\t\tbreak;\n\t\t\tcase \"pw\":\n\t\t\t\tvalidatePW();\n\t\t\tbreak;\n\t\t}\n\t};\n\t\n\tvm.enterKeyHandler = function($event) {\n\t\tif ($event.keyCode === 13) {\n\t\t\tif (vm.bReadyToSave == \"true\") {\n\t\t\t\tif (vm.bReadyToSaveEmail == true) {\n\t\t\t\t\tsaveNewEmail();\n\t\t\t\t} else if (vm.bReadyToSavePW == true) {\n\t\t\t\t\tsaveNewPassword(\"\");\n\t\t\t\t}\t\n\t\t\t}\t\n\t\t} \n\t};\n\t\n\tvm.logOut = function() {\n\t\tloginService.logout();\n\t\t$state.go('login'); \n\t}\n\n vm.saveChanges = function() {\n\t\tif (vm.bReadyToSave == \"true\") {\n\t\t\tif (vm.bReadyToSaveEmail == true) {\n\t\t\t\tsaveNewEmail();\n\t\t\t} else if (vm.bReadyToSavePW == true) {\n\t\t\t\tsaveNewPassword(\"\");\n\t\t\t}\t\n\t\t} else if (vm.data.newPW != \"\" && vm.data.confirmPW != \"\") {\n\t\t\tvalidatePW();\n\t\t} else if (vm.data.email != \"\" && vm.data.confirmEmail != \"\") {\n\t\t\tvalidateEmail();\n\t\t} else { \n\t\t\tmodalService.okAlert(\"Oops!\", \n\t\t\t\t\"We did not find any data changes to Save.\"); \n\t\t}\n };\n \n}\n(function() {\n\t'use strict';\n\n\tangular\n\t\t.module('stats')\n\t\t.config(routerConfig);\n\n\n\tfunction routerConfig($stateProvider, $urlRouterProvider) {\n\t\t$stateProvider\n\t\t.state('index', {\n\t\t\turl: '/index.html',\n\t\t\ttemplateUrl: 'app/views/login.html',\n\t\t\tcontroller: 'LoginController',\n\t\t\tcontrollerAs: 'vmLI'\n\t\t})\n\t\t.state('login', {\n\t\t\turl: '/login',\n\t\t\ttemplateUrl: 'app/views/login.html',\n\t\t\tcontroller: 'LoginController',\n\t\t\tcontrollerAs: 'vmLI'\n\t\t})\n\t\t.state('about', {\n\t\t\turl: '/about',\n\t\t\ttemplateUrl: 'app/views/about.html'\n\t\t})\n\t\t.state('chgPW', {\n\t\t\turl: '/chgPW',\n\t\t\ttemplateUrl: 'app/views/chgPW.html',\n\t\t\tcontroller: 'ChgPasswordController',\n\t\t\tcontrollerAs: 'vmCP',\n\t\t\tparams: {\n\t\t\t\tbHideOldPw: false\n\t\t\t}\n\t\t})\n\t\t.state('staff', {\n\t\t\turl: '/staff',\n\t\t\ttemplateUrl: 'app/views/staff.html',\n\t\t\tcontroller: 'StaffController',\n\t\t\tcontrollerAs: 'vmST'\n\t\t})\n\t\t.state('helpDesk', {\n\t\t\turl: '/helpDesk',\n\t\t\ttemplateUrl: 'app/views/helpDesk.html',\n\t\t\tcontroller: 'HelpDeskController',\n\t\t\tcontrollerAs: 'vmHD'\n\t\t})\n\t\t.state('print', {\n\t\t\turl: '/print',\n\t\t\ttemplateUrl: 'app/views/print.html',\n\t\t\tcontroller: 'PrintController',\n\t\t\tcontrollerAs: 'vmPrt',\n\t\t\tparams: {\n\t\t\t\tarrTables: [],\n\t\t\t\tsChurchName: \"\",\n\t\t\t\tstatRecord: {}\n\t\t\t}\n\t\t})\n\t\t.state('statHist', {\n\t\t\turl: '/statHist',\n\t\t\ttemplateUrl: 'app/views/statHist.html',\n\t\t\tcontroller: 'StatHistoryController',\n\t\t\tcontrollerAs: 'vmSH',\n\t\t\tparams: { \n\t\t\t\tiChurchID: 0,\n\t\t\t\tsChurchName: \"\" }\n\t\t})\n\t\t.state('statEntry', {\n\t\t\turl: '/statEntry',\n\t\t\ttemplateUrl: 'app/views/statEntry.html',\n\t\t\tcontroller: 'StatEntryController',\n\t\t\tcontrollerAs: 'vmSE',\n\t\t\tparams: {\n\t\t\t\tsChurchName: \"\",\n\t\t\t\tstatRecord: {}\n\t\t\t}\t\n\t\t});\n\n\t\t$urlRouterProvider.otherwise('/index.html');\n\t}\n\n})();\n\n(function() {\n\t'use strict';\n\n\tangular\n\t\t.module('stats')\n// /*TEST*/.constant('version', '0.000.035')\n/*LIVE*/.constant('version', '2.000.000')\n\t\t.constant('authServiceCFC', 'https://umcdata.net/Falcon/libCFCs/AuthService.cfc')\n\t\t.constant('mcWebCFC', 'https://umcdata.net/Falcon/libCFCs/MC_Web.cfc')\n\t\t.constant('statsCFC', 'https://umcdata.net/Falcon/libCFCs/StatsJS.cfc')\n\t\t.constant('helpDeskCFC', 'https://umcdata.net/Falcon/libCFCs/HelpDesk.cfc')\n//\t\t.constant('testCFC', 'https://umcdata.net/Falcon/libCFCs/Testing.cfc')\n\t\t.constant('chrgApptsURL', 'https://umcdata.net/MissionConnect/Public/ChrgAppts/index.html')\n\t\t.constant('lclURL', 'https://umcdata.net/MissionConnect/Public/MCWebApps/LCLeaders/#/index.html')\n\t\t.constant('mcWebAppsURL', 'https://umcdata.net/MissionConnect/Public/MCWebApps/#/index.html')\n\t\t.constant('minFinURL', 'https://umcdata.net/MissionConnect/Public/RcvWeb/#/login')\n\t\t.constant('protectURL', 'https://umcdata.net/MissionConnect/Public/MCWebApps/Protect/#/index.html')\n// /*TEST*/.constant('statsURL', 'https://umcdata.net/Falcon/Web_TestSite/MCWebApps/Statistics/#/index.html')\n/*LIVE*/.constant('statsURL', 'https://umcdata.net/MissionConnect/Public/MCWebApps/Statistics/#/index.html')\n\t\t.constant('vancoPay', 'https://umcdata.net/MissionConnect/Public/VancoPay/#/index.html')\n\t\t.constant('custData', [\n\t\t\t{\n\t\t\t\t\"DataSource\":\"\",\n\t\t\t\t\"DatabaseID\":\"GSS\",\n\t\t\t\t\"CustomerName\":\"\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"DataSource\":\"FalconArk\",\n\t\t\t\t\"DatabaseID\":\"ARK\",\n\t\t\t\t\"CustomerName\":\"Arkansas Conference\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"DataSource\":\"FalconDemo\",\n\t\t\t\t\"DatabaseID\":\"Demo\",\n\t\t\t\t\"CustomerName\":\"Demo Database\"\n\t\t\t},\n\t\t\t//EOH\n\t\t\t{\n\t\t\t\t\"DataSource\":\"FalconKy\",\n\t\t\t\t\"DatabaseID\":\"KY\",\n\t\t\t\t\"CustomerName\":\"Kentucky Conference\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"DataSource\":\"FalconLa\",\n\t\t\t\t\"DatabaseID\":\"LA\",\n\t\t\t\t\"CustomerName\":\"Louisiana Conference\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"DataSource\":\"FalconMc\",\n\t\t\t\t\"DatabaseID\":\"MC\",\n\t\t\t\t\"CustomerName\":\"McCurdy Ministries Community Center\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"DataSource\":\"FalconMem\",\n\t\t\t\t\"DatabaseID\":\"MEM\",\n\t\t\t\t\"CustomerName\":\"Memphis Conference\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"DataSource\":\"FalconMo\",\n\t\t\t\t\"DatabaseID\":\"MO\",\n\t\t\t\t\"CustomerName\":\"Missouri Conference\",\n\t\t\t\t\"ProRef\": \"Safe Sanctuary References\"\n\n\t\t\t},\n\t\t\t//MN,FalconMinn\n\t\t\t{\n\t\t\t\t\"DataSource\":\"FalconNm\",\n\t\t\t\t\"DatabaseID\":\"NM\",\n\t\t\t\t\"CustomerName\":\"New Mexico Conference\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"DataSource\":\"FalconNwtx\",\n\t\t\t\t\"DatabaseID\":\"NWTX\",\n\t\t\t\t\"CustomerName\":\"Northwest Texas Conference\",\n\t\t\t\t\"ProRef\":\"Volunteer References\"\n\t\t\t},\n\t\t\t//PR\n\t\t\t{\n\t\t\t\t\"DataSource\":\"FalconRm\",\n\t\t\t\t\"DatabaseID\":\"RM\",\n\t\t\t\t\"CustomerName\":\"Rocky Mountain Conference\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"DataSource\":\"FalconSwtx\",\n\t\t\t\t\"DatabaseID\":\"SWTX\",\n\t\t\t\t\"CustomerName\":\"Rio Texas Conference\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"DataSource\":\"FalconSg\",\n\t\t\t\t\"DatabaseID\":\"SGA\",\n\t\t\t\t\"CustomerName\":\"South Georgia Conference\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"DataSource\":\"FalconTenn\",\n\t\t\t\t\"DatabaseID\":\"TN\",\n\t\t\t\t\"CustomerName\":\"Tennessee Conference\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"DataSource\":\"FalconUny\",\n\t\t\t\t\"DatabaseID\":\"UNY\",\n\t\t\t\t\"CustomerName\":\"Upper New York Conference\"\n\t\t\t},\n\t\t\t//VID,FalconVideos\n\t\t\t//WI,FalconWi\n\t\t\t//WOH,FalconWoh\n\t\t\t{\n\t\t\t\t\"DataSource\":\"FalconYw\",\n\t\t\t\t\"DatabaseID\":\"YW\",\n\t\t\t\t\"CustomerName\":\"Mountain Sky Conference\"\n\t\t\t}\n\t\t])\n\n\t\t.constant('custDataDev', [\n\t\t\t{\n\t\t\t\t\"DataSource\":\"FalconArkDev\",\n\t\t\t\t\"DatabaseID\":\"ARK-DEV\",\n\t\t\t\t\"CustomerName\":\"Arkansas Conference (ARK-DEV)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"DataSource\":\"FalconKyDev\",\n\t\t\t\t\"DatabaseID\":\"KY-DEV\",\n\t\t\t\t\"CustomerName\":\"Kentucky Conference (KY-DEV)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"DataSource\":\"FalconLaDev\",\n\t\t\t\t\"DatabaseID\":\"LA-DEV\",\n\t\t\t\t\"CustomerName\":\"Louisiana Conference (LA-DEV)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"DataSource\":\"FalconMcDev\",\n\t\t\t\t\"DatabaseID\":\"MC-DEV\",\n\t\t\t\t\"CustomerName\":\"McCurdy Ministries (MC-DEV)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"DataSource\":\"FalconMemDev\",\n\t\t\t\t\"DatabaseID\":\"MEM-DEV\",\n\t\t\t\t\"CustomerName\":\"Memphis Conference (MEM-DEV)\"\n\t\t\t},\n\t\t\t{\t\n\t\t\t\t\"DataSource\":\"FalconMoDev\",\n\t\t\t\t\"DatabaseID\":\"MO-DEV\",\n\t\t\t\t\"CustomerName\":\"Missouri Conference (MO-DEV)\",\n\t\t\t\t\"ProRef\": \"Safe Sanctuary References\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"DataSource\":\"FalconNmDev\",\n\t\t\t\t\"DatabaseID\":\"NM-DEV\",\n\t\t\t\t\"CustomerName\":\"New Mexico Conference (NM-DEV)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"DataSource\":\"FalconNwtxDev\",\n\t\t\t\t\"DatabaseID\":\"NWTX-DEV\",\n\t\t\t\t\"CustomerName\":\"NWTX Conference (NWTX-DEV)\",\n\t\t\t\t\"ProRef\":\"Volunteer References\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"DataSource\":\"FalconSwtxDev\",\n\t\t\t\t\"DatabaseID\":\"SWTX-DEV\",\n\t\t\t\t\"CustomerName\":\"Rio Texas Conference (RIO-DEV)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"DataSource\":\"FalconSgDev\",\n\t\t\t\t\"DatabaseID\":\"SGA-DEV\",\n\t\t\t\t\"CustomerName\":\"South Georgia Conference (SGA-DEV)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"DataSource\":\"FalconTennDev\",\n\t\t\t\t\"DatabaseID\":\"TN-DEV\",\n\t\t\t\t\"CustomerName\":\"Tennessee Conference (TN-DEV)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"DataSource\":\"FalconUnyDev\",\n\t\t\t\t\"DatabaseID\":\"UNY-DEV\",\n\t\t\t\t\"CustomerName\":\"Upper New York Conference (UNY-DEV)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"DataSource\":\"FalconVideos\",\n\t\t\t\t\"DatabaseID\":\"VID\",\n\t\t\t\t\"CustomerName\":\"Demo Conference\",\n\t\t\t\t\"ProRef\":\"Safe Sanctuary References\"\n\t\t\t}\n\t\t]);\n\n})();\n\nangular.module(\"stats\").run([\"$templateCache\", function($templateCache) {$templateCache.put(\"app/modals/modAlert.html\",\"
\");\n$templateCache.put(\"app/modals/modConfSelectModal.html\",\"

Oops! We are having trouble locating your account, and need a little more information.
Please make a selection from the following:


\");\n$templateCache.put(\"app/modals/modTimeout.html\",\"
\");\n$templateCache.put(\"app/modals/print.html\",\"
\");\n$templateCache.put(\"app/modals/rptReady.html\",\"
\");\n$templateCache.put(\"app/views/about.html\",\"
This software was created by
Great Spirit Systems Corporation™
specializing in software development to
meet the unique needs of religious
organizations since 1994.

Inquiries should be addressed to
al@greatspirit.com
\");\n$templateCache.put(\"app/views/chgPW.html\",\"
Tips for making the password stronger:
  • Make it longer
  • Use both UPPER & lower case
  • Add a number
  • Add a special character: #*@!&,^%
[New Password must not match old]
Password Strength is    {{ vmCP.sPasswordStrength }}   
Current User Account Email: {{ vmCP.sUserEmail }}
\");\n$templateCache.put(\"app/views/helpDesk.html\",\"
MissionConnect: Help Desk
\");\n$templateCache.put(\"app/views/login.html\",\"

Select your Conference:

Login to access Secure Applications
Username & Password are Case Sensitive!
[For security reasons, the application will log off if idle for 30 minutes.]
\");\n$templateCache.put(\"app/views/print.html\",\"
Select to include only the Current Year (1-year) or Current and Previous Year
(2-years):
 1-year      2-years  
Select the Tables to Print:
  All Tables

 {{ item.FORM }}
\\\"Return
\");\n$templateCache.put(\"app/views/staff.html\",\"
LocationAdministratorEmailPhone
{{ item.ITEM }}{{ item.LISTDATA1 }}{{item.LISTDATA2}}{{ item.LISTDATA3 }}
\");\n$templateCache.put(\"app/views/statEntry.html\",\"
\\\"Return

{{ vmSE.sChurchName }}

{{ vmSE.sPercentComplete }}
{{ vmSE.statRecord.FORMYEAR }}{{ vmSE.prevYear }}
{{ item.Ln }}

{{ item.Desc1 }}

 Yes    No{{ item.Ln }}
\");\n$templateCache.put(\"app/views/statHist.html\",\"
Username: {{vmSH.sUsername}}
1\\\">

{{vmSH.sChurchName}}

YearTable 1 StartedTable 1 SubmittedTable 2 WS StartedTable 2 WS SubmittedTable 2 StartedTable 2 SubmittedTable 3 StartedTable 3 SubmittedTable 4 StartedTable 4 SubmittedTable 9 StartedTable 9 SubmittedOpen / View
{{ stat.FORMYEAR }}{{ stat.TABLE1STARTEDDATE }}100% Complete{{ stat.TABLE1SUBMITTEDDATE }}{{ stat.TABLE2WSSTARTEDDATE }}100% Complete{{ stat.TABLE2WSSUBMITTEDDATE }}{{ stat.TABLE2STARTEDDATE }}100% Complete{{ stat.TABLE2SUBMITTEDDATE }}{{ stat.TABLE3STARTEDDATE }}100% Complete{{ stat.TABLE3SUBMITTEDDATE }}{{ stat.TABLE4STARTEDDATE }}100% Complete{{ stat.TABLE4SUBMITTEDDATE }}
\");}]);"],"sourceRoot":"/source/"}