{"version":3,"sources":["scripts/app.js"],"names":["certTypeDesc","webSessionStorage","sDatabaseID","getStoredData","desc","CERTTYPEID","TrainingController","$rootScope","dataService","$stateParams","$sce","$document","loginService","datesService","errorEmailNotification","modalService","$log","createForm","bPageFound","i","vm","arrDefs","length","curSec","sCurPage","substr","curPg","Number","slice","sSec","ITEMNAME","indexOf","iPg","idx","substring","GROUPSEQ","iCurChapter","header","subheader","GROUPNAME","obj","HTML","id","ITEMID","label","control","CONTROLTYPE","curPage","opt0","opt1","opt2","opt3","opt4","opt5","saveKey","data","answer","response","tries","maxTries","CAPTION","trustAsHtml","arrOpts","m","arrDefOpts","push","opts","split","TIP","sectionHdr","videoPath","trustAsResourceUrl","arrDataFields","d","bQuestion","String","arrData","j","sProgress","iLastChapter","updateTrainingStep","loadResults","sRawDataString","user","USERID","iStepSaveKey","sProID","objStep","STEPID","todayToDbString","proSaveProcess","then","result","RESULTCODE","sEmailContent","error4","emailSendError","saveData","proSaveFormData","results","proGetFormData","calculateScore","bReset","Qs","resetCalc","bGoToScore","pg","okAlert","ITEMDATA","Tries2","Tries3","Tries4","Tries5","Correct","Score","this","bBack","bCorrect","bIncorrect","SAVEKEY","sChapter","sContactInfo","bVideoPlay","sCurForm","info","libGetASetting","SETTINGVALUE","STEPPROGRESS","progress","proLoadDefOptions","defOpts","proGetForm","defs","answerHandler","goBack","goNext","tryAgain","StepsController","$state","vancoService","payPalService","$window","moodleService","$uibModal","$scope","butmanCampEmail","cetaCampEmail","vimEmail","timeOutService","getProcessRecordPub","proGetProcessRecordPub","iCertTypeID","STEPLINKFLAG","paymentStepID","paymentSaveKey","paymentProgress","authStepID","Youth","hideBtn","STEPDESCPUB","covenantStepID","LCPolicyStepID","trainStepID","trainSaveKey","trainProgress","CREATEDON","sSent","jsDateStrToCalendarStr","sCreatedOn","HtmlStepDesc","btnLabel","undefined","toolTip","angular","isDefined","STEPPREREQPUB","subPreReq","arrPreReq","k","STEPSEQPUB","STEPDESCPUBUN","arrSteps","STEPEXPIRES","sAppExpire","STEPDATE","STEPREFID","moodle","sCreated","jsDateStrToDbDateStr","iCourseID","getCurrentStatus","status","rcvGetValidate","rcvVal","VALRESULT","RCVID","proPayProcessUpdate","payResult","reload","savePaymentProcessStep","sRawProProcess","AUTOPAY","retProcess","reason","RESULTREASON","bSendError","prevRecord","selStep","go","updateTrainingStepNWTX","todayToCalString","bPayFee","certRecord","curCertRecord","completed","image","genRefSaveKey","modalInstance","refresh","sFirstName","sLastName","sStepsDone","bEnrollUser","pastorRefSaveKey","msDateFirstAccess","peoGetDetails","USERENTITYID","peoData","FIRSTNAME","firstName","LASTNAME","lastName","$on","close","goToStep","sStepLinkFlag","resetTimer","iApplSaveKey","iApplStepID","iAuthStepID","cert","certInProcess","CHURCHID","PROID","iStepID","goToVancoPayments","goToPayPal","error5","LASTUPDATED","iBkgrdStepID","bsResultsStepID","secGetReturnCode","USERFULLNAME","sMoodleReturnCode","RETURNCODE","mProID","toLowerCase","lettersOnlyPattern","eFirstName","replace","eLastName","getUser","USEREMAIL","mUser","users","firstaccess","enrollUser","mEnroll","str","toString","errorMoodle","iStart","iStop","sURL","SSCourseURL","URLRequest","location","updateUser","mUpdate","sDataSource","sReplyTo","sFrom","sEmailAddr","sProgramType","payData","suGetEvent","event","camp","EVENTCODE","emailSend_NWTXTraining","refSaveKey","refStepID","logOff","loggedIn","logout","myApps","openStepInst","refreshPage","resendRef","refStep","refResend","open","animation","templateUrl","controller","bindToController","controllerAs","keyboard","backdrop","StepInstController","back","sInstructions","fxGet","TEXTID","TEXT","returnToSteps","ResendRefController","refJSURL","protectURL","validatorService","arrayFactory","getDSs","proGetDSs","DSs","FullName","arrDSs","ENTITYID","sStepLink","selDS","getPastors","chID","proLoadPastors","pastors","arrPastors","selPastor","getClergy","clergy","getPastorUserAccount","iEntityID","usersGetOneFromEntityID","resultPR","pastorUserName","emGetFirstSeq","emails","STOPDATE","sRefEmail","EMAIL","curEmails","getCurrentOnly","USERNAME","emailIsValid","bReadyToSend","getReturnCode","iMin","sParams","retCode","refReturnCode","refReturnKey","RETURNKEY","deleteOldReturnCode","secDeleteReturnCodeFromKey","iReturnKey","RESULTS","saveProProcessRecord","stepID","sStepExpires","sStepNote","sStepLinkType","sendEmail","sProRefsURL","sRefJSLink","emailSend_MORefLink","sRefName","sInitFormText","$broadcast","emailSend_NWTXRefLink","emailSend_PastorRef","bInSendProcedure","iChurchID","STEPLINK","STEPLINKTYPE","STEPNOTE","stepRefID","arrStepRef","cancel","pastors_changeHandler","sendRequest","dToday","Date","dExp","getTime","CHURCHPASTORS","ReferralController","referRefEmail","getProMainForChurchID","proGetMain","otherPastors","unshift","getNewReturnCode","ApplUserID","Applicant","iProRefUserID","sNewReturnCode","iNewReturnKey","updateProProcessRecord","iReferralEntID","sReferralEmail","error3","retCodeKey","error1","getUserAccount","getUserInfoFromEntityID","sReferralUserName","sendEmailToReferral","sReferralEmailContent","getEmailContent","sReferralName","sSubject","emailSendCustom","sendRefToOtherPastor","goBackToForm","RefRequestController","getFormText","arrFormText","refHeader","refSubheader","refRequirement","FORM","RefPastorRefController","webProMO","APPOINTEDORSTAFF","sLinkType","resetForm","txtRefName","related","sDbToday","DSs_changeHandler","email_changeHandler","relatedHandler","val","txtRefName_changeHandler","RefDefaultController","emailSend_MCRefLink","TESTING","isUndefined","ReferenceController","getFormDefs","question","subHeader","instructions","example","required","REQUIRED","isDefault","arr","val0","val1","val2","val3","val4","val5","value","RefItems","getProcessRecord","getUserInfo","usersGetOne","ApplEmail","saveProData","sSaveString","RefData","error2","saveProProcessStep","sToday","dNow","getMonth","getDate","getFullYear","deleteReturnCode","proSaveRefTracker","notifyApplicant_ReferenceIsComplete","sURLLink","formDefs","DSLabel","bSubmitted","secGetReturnCodeFromKey","secReturnLogin","PARAMS","arrParams","FN","goToReferral","saveSelection","req","submitReference","bReadyToSave","NWTXReqController","sCampReq","text","returnToPaymentPage","NWTXPaymentController","$httpParamSerializer","itemName","seq","ITEMSEQ","group","grpSeq","fee","feeSaveKey","donate","donAmt","voucher","vAmt","arrFeesVouchers","FEEITEMID","DONAMT","FEEAMT","toFixed","VOUCHERCODE","getVoucherValue","vWillPay","arrCamps","EVENTID","selCamp1","selCamp2","bShow2","selCamp3","bShow3","selCamp4","bShow4","updateDataFields","calculatePayAmount","total","nPayAmt","nFee","objCurData","rcvGetVoucher","vouch","VOUCHERTYPE","AMOUNTBALANCE","VALUETYPE","VALUEAMOUNT","MAXVALUEPERUSE","v1BtnText","v2BtnText","v3BtnText","v4BtnText","bVoucher","saveFeesVouchers","proSaveFeesVouchers","goToPayPalVarFee","newCamp","bSaveProcedure","displayGrp1","header1","header2","iRcvID","nDonateAmt","nTrainingFee","sInstructions1","sCampInstr2","sPayPalLogin","sPayPalPostURL","sPayPalURL","suLoadEventsLite","events","CampListing","SITENAME","EVENTNAME","EVENTSTARTDATE","EVENTSTOPDATE","proGetFeesVouchers","feesV","addCamp","changeHandler","donateHandler","goToCampReq","payNow","updateData","voucherHandler","vNum","NewAcctController","passwordStrength","confirmPWChg","contactInfo","userAcctEmails","validateEmail","emValidate","confirmEmail","email","bReadyToSaveEmail","validatePW","validatePassword","confirmPassword","password","confirmPW","sPasswordStrength","bReadyToSavePW","validateUserName","un","userName","bReadyToSaveUsername","saveNewPersonRecord","fn","fName","toUpperCase","ln","lName","peoSave","saveContactEmail","savePersonalEmail","saveUserAccount","pwExpires","s15mosFromToday","usersSave","len","iUserID","proSaveMain","sendNewUserAcctEmail","dStepExpires","s6mosFromToday","proSaveInitData","sendSelfInitUAEmail","login","loginReturn","SECUSERLOGIN","RESULT","imgMCBanner","sPWClass","sSaveSuccessMsg","cancelChanges","checkPWStrength","pwReturn","getPWStrength","strength","confirmReadyToSave","item","enterKeyHandler","$event","keyCode","saveNewAccount","pw","NavBarController","headerService","version","mcWebAppsURL","lclURL","minFinURL","statsURL","custData","custDataDev","getAppsForMenu","userGetChurchFunctions","apps","dataSource","DataSource","ProRefApp","ProRef","headerIcon","getHeaderIcon","isCollapsed","sCustomerName","customer","name","goHome","goToAbout","goToApp","app","bPasswordExpired","sFn","sPath","goToChgPW","goToHelpDesk","goToMyCerts","MyCertsController","saveMainRecord","main","resultReason","saveInitAndApplRecords","s1yrFromToday","addNew","arcCertRecords","bCampInProcess","bInProcess","bLCAApproved","bVIMInProcess","bProcessExpiring","bCertExpiring","imgCamp","imgVIM","mc32","proProcessName","sChurchName","username","proGetCertRecords","certs","exp","STATUSEXPIREDATE","PROSTATUS","dt","setDate","getChurchName","sFunction","addNewOnlineProcess","certID","loadProcessSteps","ModalController","$uibModalInstance","modType","title","alertMsg","sTitle","sAlertMsg","dismiss","ModalTimeoutController","$timeout","runTimer","secTimer","continue","ModalConfSelectController","confs","options","ok","sConfSel","LoginController","appValidationService","setCustService","logInUser","sUsername","sPassword","sExp","PASSWORDEXPIRES","dPasswordExpires","setTimer","validateAccess","openConfSelectModal","HELPGETDBBYUSER","arrConfs","size","backdropClass","resolve","modResult","fromDataSource","DATASOURCE","validateUserLogin","bShowConferences","bAcctInit","custDB","selConf","sMaintenanceMsg","fromDatabaseID","libGetMaintenanceMsg","msg","trim","forgotPassword_clickHandler","sendForgottenPassword","onFocus","selectConference","setDataSource","setCustomer","LCACovenantController","sLCAEmailContent","sUserFullName","sConsent","chName","agreeHandler","LCPolicyController","sort","a","b","arrFormDefs","sCovenantURL","obj1","saveProcessStep","resultAlert","bCovenantViewed","bPolicyViewed","bReadyToSubmit","bReviewed","sLCPolicyURL","proGetChOrgSettings","chOrg","POLICYURL","COVENANTURL","button_clickHandler","checkBox_changeHandler","saveSubmit","HelpDeskController","helpDeskService","iIssueID","sUserEmail","sProblem","helpHdInitiateIssue","ISSUEID","sError","confirmReadyToSubmit","submitHD","helpHdSaveIssue","ChgPasswordController","oldPW","newPW","saveNewEmail","saveNewPassword","usersChangePassword","saveChanges","CertMgmtController","loadData","proLoadPRRefs","mChkShowAll","refs","DisplayDate","pastorRefs","proGetPastorChCerts","CERTTYPES","splice","churchCerts","churches","settings","sView","reloadData","loadReference","ref","updateCurrentChurch","curCh","curChurch","viewHandler","AuthorizationController","backgroundService","validateData","str1","bDataSaved","bProcessSaved","sendBackgroundScreen","firstAdvantage","bkgrdSuccess","bkgrdError","bShowCursor","protectMyMinistry","authorization","formData","cancelHandler","saveHandler","ApplicationController","personRecord","formatterService","getProFormDefs","getProFormData","arrFormData","loadDisplay","type","typeID","numOnly","emComm","tip","formattedPh","formatPhone","iMainChurchID","validateDate","calcAge","calculateAge","numOnlyPattern","valSSN","numOnlySSN","formatSSN","displayGrp2","header3","displayGrp3","header4","displayGrp4","selHomeAddr","populateSelHomeAddr","dBD","now","diff","ageDays","ageYrs","Math","floor","ADDR1","CITY","STATE","ZIP","valPh","isNaN","numOnlyPh","valZip","numOnlyZip","bInSaveProcedure","updatePersonRecord","createUpdateString","objPerson","saveAddress","bAddAddrFieldsToForm","saveHomeAddr","objPrimaryAddr","savePhones","ADDRTYPE","updateAddrEntityUse","saveNewPhones","saveEmail","saveNewEmails","get19thBirthDate","dBirthDate","arrHomeAddrs","arrChurches","arrPhTypes","arrStates","arrMain","arrPeoDetails","bDateOpen","bBDEntered","bEmailComm","dateFormat","sConfirmSSN","selChurch","selPrimPhType","selSecPhType","selOthPhType","selState","libLoadStates","phLoadTypes","dataMain","chLoadAll","dataCh","ENTITYNAME","addrGetAll","dataAddrs","dStart","STARTDATE","dStop","PRIMARYADDR","birthDateHandler","numOnlyConfirm","sSSN","PHONETYPE","PHONETYPEID","dateOpened","preventDefault","stopPropagation","selectHomeAddr","ADDRID","setConfComm","updateHomeAddr","runBlock","$location","$http","searchObject","search","sRetCodeToDelete","ReturnCode","DATABASEID","PASSWORD","arcUserChurch","UserChurchFNs","conf","setStoredData","$inject","module","run","store","sessionStorage","factory","sKey","getItem","sData","setItem","removeItem","mcWebCFC","vancoPay","params","method","sSetting","post","saveRcvPaymentTransData","subItem","curYear","currentYear","params1","results1","result2","returnURLWithCode","params3","App","ReturnURL","paramsString","url","sEmailContent1","service","sEmail","isValid","filter","RegExp","phoneIsValid","phone","valPhone","emailValidator","proJsCFC","sUserName","proURL","params2","nMin","ms","timer","appTimer","lastChance","DatabaseID","CustomerName","databaseID","sApplicant","sReturnCode","sMiddleName","sFormerName","sGender","sBDay","iUMChurchID","sSuffixName","sClergyLay","charAt","mn","frm","Locked","MiddleName","SuffixName","BirthDate","Gender","ClergyLay","PrimaryChurchID","FormerName","feeSetting","sFeeDesc","sItemName","postURL","sReturnURL","cmd","business","amount","invoice","item_name","item_number","notify_url","return","rm","cancel_return","custom","os0","no_shipping","pay","iStrength","reLowerCase","reUpperCase","reNumber","reSymbol","class","moodleCFC","userid","returnCode","iMoodleID","courseid","curStatus","curChapter","strKEY","arrKEY","completedChpt","sChpt","begChpt","endChpt","sStat","begStat","endStat","openOKAlert","openResultAlert","sz","authServiceCFC","sApp","iMinutes","setUserInfo","secDeleteReturnCode","err","SDATASOURCE","SECGETRETURNCODE","USERGETCHURCHFUNCTIONS","CHURCHNAME","sReturnType","sProb","UserID","sForm","sVersion","custName","alt","addThousandsCommas","numStr","pattern","test","digitsOnly","newString","phStr","tel","SSN","formattedSSN","formatZip","zip","frmZIP","sFormProc","iSaveKey","emailContent","mReturn","proc","declineEmail","sWebProtect","calStrToDbDateStr","sCal","dCal","mm","dd","sDbDate","today","yr","bDay","s19thBDay","dtStr","sCalDate","sCalToday","proEmailCFC","iDistNum","sIncludeOnlyActive","sSortBy","sTopItem","emGetAll","sCI","sRefLink","formText","sRefRequestLink","sProInitFormText","sSiteURLWithConf","sRefUserName","sTextID","sFormName","sFormType","proGetProcessSteps","form","bIncompleteOnly","proSaveResultsFA","FAReturn","sResultsString","proSaveResultsPMM","PMMReturn","proSaveScreenSend","proSendPMM","sOrderDetail","proSendPMMAccio","proSubmitFirstAdvantage","invID","sInvoiceID","vCode","sVoucherCode","returnCodeKey","sCustomEmailText","eventID","iEventID","sIncludeStatus","bFnOnly","usersGetId","sActiveOnly","selHmAddr","primAddr","sAddr","sCity","sState","sZipCode","homeTypeID","addrID","addrResults","sResultReason","addrTypes","arrTypes","ADDRTYPEID","entUse","saveResults","iCurPrimaryIdx","phones","arrPhones","phTypes","PRIMARYPHONE","PHONENUMBER","SEQ","splitOffPhoneType","savedPh","ph","iPersonalEmailType","emTypes","EMAILTYPE","EMAILTYPEID","primEmail","arrEmails","PRIMARYEMAIL","em","emData","updateEmailToPrimary","selEmail","sNewEmail","sConfirmEmail","strEmail","sNewPW","sConfirmPW","strPW","notReadyToSave","sOldPW","confirmEmailChg","alert","onSuccess","onError","proChurchID","dataChOrg","SCREENACCOUNT","BranchAcct","pwd","populateVariables","createMO_OrderDetail","saveScreenSend","saveFAResults","sOrderStatus","sEmailContent0","arrReturn","error","errorCode","sTestPMM","createNWTX_OrderDetail","createMC_OrderDetail","sendReturn","resultPMM","bday","sDOB","sAddr1","sZipcode","rePattern","sSendString","sendSave","perm","config","$httpProvider","defaults","headers","transformRequest","param","fullSubName","subName","subValue","innerObj","query","Array","Object","encodeURIComponent","isObject","routerConfig","$stateProvider","$urlRouterProvider","state","parent","otherwise","constant","$sceDelegateProvider","resourceUrlWhitelist","$templateCache","put"],"mappings":"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","file":"scripts/app-5d83fe48ab.js","sourcesContent":["(function() {\n\t'use strict';\n\n\tangular\n\t\t.module('proRefs', ['ui.router', 'ui.bootstrap', 'ngSanitize'])\n\t\t.run(runBlock);\n \n\tfunction runBlock($location, dataService, webSessionStorage, $state, headerService,\n\t\tloginService, $http, $rootScope, custData, custDataDev, setCustService, modalService) {\n\t\tvar sDatabaseID = \"\";\n\t\tvar sDataSource = \"\";\n\t\tvar searchObject = $location.search();\n\t\tvar sRetCodeToDelete = \"\";\n\t\t\n\n// searchObject.conf = \"MO-DEV\";\t\t//TESTING - Preload sDatabaseID for testing.\n// $rootScope.TESTING = true;\t\t\t//TESTING == true:\n\t\t\t\t\t\t\t\t\t\t// - Prevents ReturnCode deletion in loginService\n\t\t\t\t\t\t\t\t\t\t// - Prevents payment from going to VancoPay, so can check params.\n\t\t\t\t\t\t\t\t\t\t// - Gives additional debug alerts not shown to users.\n// $rootScope.AUTOPAY = true;\t\t//AUTOPAY == true:\n\t\t\t\t\t\t\t\t\t\t// - Automatically marks off Payment Step as \"Completed\"\n// searchObject = { ReturnCode: \"rMxId55CN4kiNwBB8_wf\" };\t\t//Login w/ReturnCode\n\t\t\n\t\tif ($rootScope.TESTING) { \n\t\t\tsDatabaseID = webSessionStorage.getStoredData('sDatabaseID');\n\t\t}\n\t\t\t\n\t\tif (searchObject.ReturnCode) { \n\t\t\tsRetCodeToDelete = searchObject.ReturnCode;\n\t\t} else 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\t\t//Login with ReturnCode ==> LoginService calls SecDeleteReturnCode immediately after login\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\t\t\t\t\t\n\t\t\t\t\t/* PUBLIC APP... Do NOT Use appValidationService. Additional apps shows in MENU if\n\t\t\t\t\t\tAuthorized thru LoginService. */\n\t\t\t\t\tif (data[0].USERID != \"\") {\t\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\t\t\t\t\t\t\t\tloginService.user.USERENTITYID = \n\t\t\t\t\t\t\t\t\tloginReturn[0].SECUSERLOGIN[0].USERENTITYID;\n\t\t\t\t\t\t\t\tif (data[0].FN == \"PayFee\") {\n\t\t\t\t\t\t\t\t\t$state.go('myCerts',{sFunction: data[0].FN});\n\t\t\t\t\t\t\t\t} else { \n\t\t\t\t\t\t\t\t\tvar arcUserChurch = loginService.user.UserChurchFNs;\n\t\t\t\t\t\t\t\t\tif (arcUserChurch.length > 0) {\t\n\t\t\t\t\t\t\t\t\t\tfor (var i=0; i
\" +\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\t\t\n\t\t// Login page with Conference identified:\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\t\n\t}\n})();\n\n(function () {\n 'use strict';\n \n angular\n .module('proRefs')\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('proRefs')\n\t\t.factory('vancoService', vancoService);\n\n\tvancoService.$inject = ['$http','webSessionStorage','loginService','$rootScope','datesService',\n\t\t'errorEmailNotification','dataService','mcWebCFC','protectURL','vancoPay','$httpParamSerializer',\n\t\t'$window','$log'];\t\n\n\tfunction vancoService($http, webSessionStorage, loginService, $rootScope, datesService,\n\t\terrorEmailNotification, dataService, mcWebCFC, protectURL, 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) {\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(mcWebCFC, 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(\"WebProtect/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 = \"WebProtect || 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(mcWebCFC, 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\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\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 = protectURL + \"?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\n//If TESTING... do not go to VancoPay. Instead, copy parameters and run VancoPay in Debug:\n\t\t\t\t\t\t\t\tif ($rootScope.TESTING) {\n\t\t\t\t\t\t\t\t\t$log.info(\"params:\",params3);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t$window.location.replace(url);\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});\n\t\t\t\t} else {\n\t\t\t\t\tvar sEmailContent1 = \"WebProtect/vancoService - 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\t\t\"

Attempted to resolve in v.175. See v175 notes on stepsCtrl for details.\";\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('proRefs')\n .factory('validatorService', validatorService);\n\n\tvalidatorService.$inject = [];\t\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}\n\t\t\n\t}\n})(); \n(function () {\n 'use strict';\n \n\tangular\n .module('proRefs')\n .factory('emailValidator', emailValidator);\n\n function emailValidator() {\n\t\tvar factory = {\n\t\t\tvalidateEmail: validateEmail\n\t\t};\n\t\t\n\t\treturn factory;\n\t\t\n\t\tfunction validateEmail(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('proRefs')\n\t\t.factory('userAcctEmails', userAcctEmails);\n\t\n\tuserAcctEmails.$inject = ['$http','webSessionStorage','$rootScope','protectURL','proJsCFC'];\n\n\tfunction userAcctEmails($http, webSessionStorage, $rootScope, protectURL, proJsCFC) {\n\t\tvar factory = {\n\t\t\tsendSelfInitUAEmail: sendSelfInitUAEmail\n\t\t};\n\t\t\n\t\treturn factory;\n\t\t\n\t\t\n\t\tfunction sendSelfInitUAEmail(sUserName, sEmail) {\n\t\t\tvar sDatabaseID = webSessionStorage.getStoredData(\"sDatabaseID\");\n\t\t\tvar sDataSource = webSessionStorage.getStoredData(\"sDataSource\");\n\t\t\tvar sEmailContent = \"\";\n\t\t\tvar sFrom = \"\";\n\t\t\tvar sReplyTo = \"\";\n\t\t\tvar proURL = protectURL + \"?conf=\" + sDatabaseID;\n\t\t\t\n\t\t\tsEmailContent = \"Your MissionConnect account has been initialized.

\" +\n\t\t\t\t\"For your records, the secure website address is:
\" +\n\t\t\t\t\"\" + proURL + \n\t\t\t\t\"

\" +\n\t\t\t\t\"Your Username is: \" + sUserName + \"

\" +\n\t\t\t\t\"Please store your Username and Password in a safe place for future reference.

\" +\n\t\t\t\t\"If you forget your password, you can have it sent to this email address by \" +\n\t\t\t\t\"clicking the "Forgot Password?" button on the login page.

\" +\n\t\t\t\t\"Login tips:
\" +\n\t\t\t\t\"Type in your username and password. Do not use a copy and paste method, as that sometimes \" +\n\t\t\t\t\"includes additional data that does not display, but will cause it not to work.
\" +\n\t\t\t\t\"Both the username and password are case sensitive. Capital letters should be entered \" +\n\t\t\t\t\"as capitalized, etc.\";\n\t\t\t\t\n\t\t\tvar params= {\n\t\t\t\tmethod: \"LibGetASetting\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tsSetting: \"RcvEmailReplyToProtect\"\t\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, params)\n\t\t\t.then(function (result) {\n\t\t\t\tif (result.data.length > 0) {\n\t\t\t\t\tsReplyTo = result.data[0].SETTINGVALUE;\n\t\t\t\t}\n\t\t\t\tvar params1= {\n\t\t\t\t\tmethod: \"LibGetASetting\",\n\t\t\t\t\tsDataSource: sDataSource,\n\t\t\t\t\tsSetting: \"RcvEmailFromProtect\"\t\n\t\t\t\t};\n\t\t\t\treturn $http.post(proJsCFC, params1)\n\t\t\t\t.then(function (result) {\n\t\t\t\t\tif (result.data.length > 0) {\n\t\t\t\t\t\tsFrom = result.data[0].SETTINGVALUE + \" <\" + sReplyTo + \">\";\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif (sDatabaseID.substr(-3,3) == \"DEV\") {\n\t\t\t\t\t\tsEmail = \"testing@greatspirit.com\";\n\t\t\t\t\t} else if (sDatabaseID == \"VID\") {\n\t\t\t\t\t\tsEmail = \"lyndzie@greatspirit.com\";\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tvar params2 = {\n\t\t\t\t\t\tmethod: \"EmailSendCustom\",\n\t\t\t\t\t\tsEmailAddr: sEmail,\n\t\t\t\t\t\tsFrom: sFrom,\n\t\t\t\t\t\tsReplyTo: sReplyTo,\n\t\t\t\t\t\tsSubject: \"Account Information\",\n\t\t\t\t\t\tsEmailContent: sEmailContent\n\t\t\t\t\t};\n\t\t\t\t\treturn $http.post(proJsCFC, params2)\n\t\t\t\t\t.then(function (result) {\n\t\t\t\t\t\treturn result.data;\n\t\t\t\t\t});\n\t\t\t\t});\t\n\t\t\t});\n\t\t}\t\n\t\t\n\t}\n})();\n(function () {\n 'use strict';\n \n\tangular\n .module('proRefs')\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 'use strict';\n \n\tangular\n .module('proRefs')\n .factory('setCustService', setCustService);\n\n\tsetCustService.$inject = ['custData','custDataDev','webSessionStorage','headerService',\n\t\t'$rootScope','$log'];\t\n\n function setCustService(custData, custDataDev, webSessionStorage, headerService,\n\t\t$rootScope, $log) {\n\t\tvar service = {\n\t\t\tfromDataSource: fromDataSource,\n\t\t\tfromDatabaseID: fromDatabaseID\n\t\t};\n\t\treturn service;\n\t\t\t\t\n\t\tfunction fromDataSource(dataSource) {\n\t\t\twebSessionStorage.setStoredData('sDataSource', dataSource);\n\n\t\t\tif (dataSource.slice(-3) == \"Dev\" || dataSource == \"FalconVideos\") {\n\t\t\t\tfor (var i=0; i
A reference for \" +\n\t\t\t\t\t\tsApplicant + \" has been referred to you by \" +\n\t\t\t\t\t\tloginService.user.USERFULLNAME + \" for completion. This is to fulfill \" +\n\t\t\t\t\t\t\"a requirement in the process for Safe Sanctuaries Certification.\" +\n\t\t\t\t\t\t\"

\";\t\t\t\t\n\n\t\t\t\t\tsEmailContent += \"You may login to your Safe Sanctuaries \" +\n\t\t\t\t\t\t\"account online and complete all of your waiting pastoral reference \" +\n\t\t\t\t\t\t\"requests at one time. (No more losing the request email among all the \" +\n\t\t\t\t\t\t\"other emails in your Inbox.) \" +\n\t\t\t\t\t\t\"This application also works from your tablet, smart phone, or other \" +\n\t\t\t\t\t\t\"devices.\";\n\n\t\t\t\t\tif (sReferralUserName != \"\") {\n\t\t\t\t\t\tsEmailContent += \"Just click the link below from within that device \" +\n\t\t\t\t\t\t\t\"to open the new Pastor's Reference application.

\" +\n\t\t\t\t\t\t\t\"Your UserName is: \" + sReferralUserName +\n\t\t\t\t\t\t\t\"
\" + \n\t\t\t\t\t\t\twebProMO + \"

OR\"; }\n\t\t\t\t\telse {\n\t\t\t\t\t\tsEmailContent += \"

However, it appears you do not have an \" +\n\t\t\t\t\t\t\t\"active MissionConnect (Safe Sanctuaries) online account, which \" +\n\t\t\t\t\t\t\t\"is required to use this feature. If you receive frequent \" +\n\t\t\t\t\t\t\t\"reference requests, and would like an account, \" +\n\t\t\t\t\t\t\t\"please contact the MO Safe Sanctuaries office.\";\n\t\t\t\t\t}\n\n\t\t\t\t\tsEmailContent += \"

If you prefer to complete just the single reference \" +\n\t\t\t\t\t\t\"at this time, click the following link to go directly to the reference for \" +\n\t\t\t\t\t\tsApplicant + \".
\" +\n\t\t\t\t\t\t\"\" + sRefJSLink + \n\t\t\t\t\t\t\"

\" +\n\t\t\t\t\t\t\"Please try to complete this reference within 2 weeks.\"; \n\t\t\t\tbreak;\n\t\t\t}\n\t\t\treturn sEmailContent;\n\t\t}\n\t}\n\n})();\n(function () {\n 'use strict';\n \n\tangular\n .module('proRefs')\n .factory('personRecord', personRecord);\n\n\tpersonRecord.$inject = ['webSessionStorage','dataService','loginService','datesService'];\t\n\n function personRecord(webSessionStorage, dataService, loginService, datesService) {\n\t\t\n\t\tvar factory = {\n\t\t\tcreateUpdateString: createUpdateString\n\t\t};\n\t\t\n\t\treturn factory;\t\n\t\n\t/* Person Record is only updated if Locked (-1) OR field remains NULL.\n\t\tFields NOT used in WebProtect applications, which would need to be added\n\t\tif used in future: Prefix, SuffixInitials, UseName, DeathDate, EthnicType,\n\t\tSpecialNeed, MaritalStatus, AnniversaryDate, CustomFields(PrCustDef1,2,3,4) **/\n\t\t\n\t\tfunction createUpdateString(objPerson, arrData) {\n\t\t\tvar sFirstName = \"\";\n\t\t\tvar sMiddleName = \"\";\n\t\t\t//var sLastName = \"\";\n\t\t\tvar sFormerName = \"\";\n\t\t\tvar sGender = \"\";\n\t\t\tvar sBDay = \"\";\n\t\t\tvar iUMChurchID = 0;\n\t\t\tvar sSuffixName = \"\";\n\t\t\tvar sClergyLay = \"\";\n\t\t\t//collect the entered data from application:\n\t\t\tfor (var i=0; i 0) {\n\t\t\t\tsRawDataString += \" || PrimaryChurchID==\" + String(iUMChurchID);\n\t\t\t}\n\t\t\tif (objPerson.FormerName == null && sFormerName != \"\") {\n\t\t\t\tsRawDataString += \" || FormerName==\" + sFormerName;\n\t\t\t}\n\t\t\tif (sRawDataString != \"\") {\n\t\t\t\tvar sSaveString = \"WebApps_Pro || Appl_PersonInfo || \" +\n\t\t\t\t\t\tString(loginService.user.USERID) + \" || U || EntityID==\" +\n\t\t\t\t\t\tString(objPerson.ENTITYID) + sRawDataString + \" ^^ \";\n\t\t\t} else { sSaveString = \"\"; }\t\t\t\n\t\t\t\t\t\t\n\t\t\treturn sSaveString;\t\t\t\n\t\t}\n\t\t\n\t}\n})(); \n(function () {\n\t'use strict';\n\n\tangular\n\t\t.module('proRefs')\n\t\t.factory('payPalService', payPalService);\n\n\tpayPalService.$inject = ['webSessionStorage','dataService','loginService','$rootScope',\n\t\t'errorEmailNotification','protectURL','$httpParamSerializer','$window','$log'];\t\n\n\tfunction payPalService(webSessionStorage, dataService, loginService, $rootScope,\n\t\terrorEmailNotification, protectURL, $httpParamSerializer, $window, $log) {\n$log.info(\"PayPalService\")\n\t\t\n\t\tvar service = {\n\t\t\tgoToPayPal: goToPayPal,\n\t\t\tgoToPayPalVarFee: goToPayPalVarFee\n\t\t};\n\t\treturn service;\n\t\t\n\t\tfunction goToPayPal(feeSetting, iCertTypeID) {\n\t\t\tvar sDataSource = webSessionStorage.getStoredData('sDataSource');\n\t\t\tvar sDatabaseID = webSessionStorage.getStoredData('sDatabaseID');\n\t\t\tvar nFee = 0;\n\t\t\tvar sFeeDesc = \"\";\n\t\t\tvar sItemName = \"\";\n\t\t\tvar sPayPalLogin = \"\";\n\t\t\tvar sPayPalURL = \"\";\n\t\t\tvar sPayPalPostURL = \"\";\n\t\t\t\n\t\t\tdataService.libGetASetting('PayPalLogin')\n\t\t\t.then(function(login) {\n\t\t\t\tsPayPalLogin = login[0].SETTINGVALUE;\n\t\t\t\t\n\t\t\t\tdataService.libGetASetting('PayPalURL')\n\t\t\t\t.then(function(url) {\n\t\t\t\t\tsPayPalURL = url[0].SETTINGVALUE;\n\t\t\t\t\t\n\t\t\t\t\tdataService.libGetASetting('PayPalPostURL')\n\t\t\t\t\t.then(function(postURL) {\n\t\t\t\t\t\tsPayPalPostURL = postURL[0].SETTINGVALUE;\n\n\t\t\t\t\t\tdataService.libGetASetting(feeSetting)\n\t\t\t\t\t\t.then(function(results) {\n\t\t\t\t\t\t\tif (results.length > 0) {\n\t\t\t\t\t\t\t\tnFee = results[0].SETTINGVALUE;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvar sEmailContent = errorEmailNotification.error4\n\t\t\t\t\t\t\t\t\t(\"MCWebApps/Protect/payPalService\");\n\t\t\t\t\t\t\t\tsEmailContent += \"
LibGetASetting(\"+feeSetting+\")\";\n\t\t\t\t\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tdataService.secGetReturnCode(10,\"PayFee\",loginService.user.USERID\n\t\t\t\t\t\t\t\t+\"|\"+loginService.user.USERFULLNAME)\n\t\t\t\t\t\t\t.then(function(data) {\n\t\t\t\t\t\t\t\tif (data.length > 0) {\n\t\t\t\t\t\t\t\t\tvar sReturnURL = protectURL + \"?ReturnCode=\" + data[0].RETURNCODE;\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tswitch (sDatabaseID) {\n\t\t\t\t\t\t\t\t\t\tcase \"MC\": case \"MC-DEV\":\n\t\t\t\t\t\t\t\t\t\t\tif (iCertTypeID == 4) {\n\t\t\t\t\t\t\t\t\t\t\t\tsItemName = \"McCurdy Ministries Volunteer Certification\";\n\t\t\t\t\t\t\t\t\t\t\t\tsFeeDesc = \"McCurdy Ministries certification fee\";\n\t\t\t\t\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\n\t\t\t\t\t\t\t\t\tvar params = {\n\t\t\t\t\t\t\t\t\t\tcmd: \"_xclick\",\n\t\t\t\t\t\t\t\t\t\tbusiness: sPayPalLogin,\n\t\t\t\t\t\t\t\t\t\tamount: nFee,\n\t\t\t\t\t\t\t\t\t\tinvoice: $rootScope.sProID,\n\t\t\t\t\t\t\t\t\t\titem_name: sItemName,\n\t\t\t\t\t\t\t\t\t\titem_number: 1,\n\t\t\t\t\t\t\t\t\t\tnotify_url: sPayPalPostURL,\n\t\t\t\t\t\t\t\t\t\treturn: sReturnURL,\n\t\t\t\t\t\t\t\t\t\trm: 1,\n\t\t\t\t\t\t\t\t\t\tcancel_return: sReturnURL,\n\t\t\t\t\t\t\t\t\t\tcustom: \"DataSource=\"+sDataSource+\"|App=Protect|UserID=\"+\n\t\t\t\t\t\t\t\t\t\t\tloginService.user.USERID,\n\t\t\t\t\t\t\t\t\t\tos0: sFeeDesc,\n\t\t\t\t\t\t\t\t\t\tno_shipping: 1,\n\t\t\t\t\t\t\t\t\t\tpay: \"Pay Now\"\t\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\tvar paramsString = $httpParamSerializer(params);\n\t\t\t\t\t\t\t\t\tvar url = sPayPalURL + \"?\" + paramsString;\n\t\t\t\t\t\t\t\t\t$window.location.replace(url); \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});\t\t\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction goToPayPalVarFee(nFee, iCertTypeID) {\n\t\t\tvar sDataSource = webSessionStorage.getStoredData('sDataSource');\n\t\t\tvar sDatabaseID = webSessionStorage.getStoredData('sDatabaseID');\n\t\t\tvar sFeeDesc = \"\";\n\t\t\tvar sItemName = \"\";\n\t\t\tvar sPayPalLogin = \"\";\n\t\t\tvar sPayPalURL = \"\";\n\t\t\tvar sPayPalPostURL = \"\";\n\t\t\t\n\t\t\tdataService.libGetASetting('PayPalLogin')\n\t\t\t.then(function(login) {\n\t\t\t\tsPayPalLogin = login[0].SETTINGVALUE;\n\t\t\t\t\n\t\t\t\tdataService.libGetASetting('PayPalURL')\n\t\t\t\t.then(function(url) {\n\t\t\t\t\tsPayPalURL = url[0].SETTINGVALUE;\n\t\t\t\t\t\n\t\t\t\t\tdataService.libGetASetting('PayPalPostURL')\n\t\t\t\t\t.then(function(postURL) {\n\t\t\t\t\t\tsPayPalPostURL = postURL[0].SETTINGVALUE;\n\n\t\t\t\t\t\tdataService.secGetReturnCode(10,\"PayFee\",loginService.user.USERID\n\t\t\t\t\t\t\t+\"|\"+loginService.user.USERFULLNAME)\n\t\t\t\t\t\t.then(function(data) {\n\t\t\t\t\t\t\tif (data.length > 0) {\n\t\t\t\t\t\t\t\tvar sReturnURL = protectURL + \"?ReturnCode=\" + data[0].RETURNCODE;\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tswitch (sDatabaseID) {\n\t\t\t\t\t\t\t\t\tcase \"NWTX\": case \"NWTX-DEV\":\n\t\t\t\t\t\t\t\t\t\tif (iCertTypeID == 4) {\n\t\t\t\t\t\t\t\t\t\t\tsItemName = \"NWTX Camp Volunteer\";\n\t\t\t\t\t\t\t\t\t\t\tsFeeDesc = \"NWTX Camp Volunteer fees and donations\";\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tsItemName = \"Volunteer in Mission\";\n\t\t\t\t\t\t\t\t\t\t\tsFeeDesc = \"NWTX VIM Fee\";\n\t\t\t\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\n\t\t\t\t\t\t\t\tvar params = {\n\t\t\t\t\t\t\t\t\tcmd: \"_xclick\",\n\t\t\t\t\t\t\t\t\tbusiness: sPayPalLogin,\n\t\t\t\t\t\t\t\t\tamount: nFee,\n\t\t\t\t\t\t\t\t\tinvoice: $rootScope.sProID,\n\t\t\t\t\t\t\t\t\titem_name: sItemName,\n\t\t\t\t\t\t\t\t\titem_number: 1,\n\t\t\t\t\t\t\t\t\tnotify_url: sPayPalPostURL,\n\t\t\t\t\t\t\t\t\treturn: sReturnURL,\n\t\t\t\t\t\t\t\t\trm: 1,\n\t\t\t\t\t\t\t\t\tcancel_return: sReturnURL,\n\t\t\t\t\t\t\t\t\tcustom: \"DataSource=\"+sDataSource+\"|App=Protect|UserID=\"+\n\t\t\t\t\t\t\t\t\t\tloginService.user.USERID,\n\t\t\t\t\t\t\t\t\tos0: sFeeDesc,\n\t\t\t\t\t\t\t\t\tno_shipping: 1,\n\t\t\t\t\t\t\t\t\tpay: \"Pay Now\"\t\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tvar paramsString = $httpParamSerializer(params);\n\t\t\t\t\t\t\t\tvar url = sPayPalURL + \"?\" + 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});\t\t\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}\n\t\n})();\t\n\n(function () {\n 'use strict';\n \n\tangular\n .module('proRefs')\n .factory('passwordStrength', passwordStrength);\n\n function passwordStrength() {\n\t\tvar reLowerCase = new RegExp(/([a-z]+)/);\n\t\tvar reUpperCase = new RegExp(/([A-Z]+)/);\n\t\tvar reNumber = new RegExp(/([0-9]+)/);\n\t\tvar reSymbol = new RegExp(/(\\W+)/);\n\t\t\n\t\tvar factory = {\n\t\t\tgetPWStrength: getPWStrength\n\t\t};\n\t\t\n\t\treturn factory;\n\t\t\n\t\tfunction getPWStrength(sPassword) {\n\t\t\tvar iStrength = 0;\n\t\t\tvar sPasswordStrength = \"Too Short\";\n\t\t\tvar sPWClass = \"tooShort\";\n\t\t\tif (sPassword.length > 8) {\n\t\t\t\tiStrength++;\n\t\t\t\tif ((sPassword.search(reLowerCase) != -1) && \n\t\t\t\t\t(sPassword.search(reUpperCase) != -1)) {\n\t\t\t\t\t\tiStrength++;\n\t\t\t\t}\n\t\t\t\tif (sPassword.search(reNumber) != -1) {\n\t\t\t\t\tiStrength++;\n\t\t\t\t}\n\t\t\t\tif (sPassword.search(reSymbol) != -1) {\n\t\t\t\t\tiStrength++;\n\t\t\t\t}\n\t\t\t\tif (sPassword.length > 11) {\n\t\t\t\t\tiStrength++;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tswitch (iStrength) {\n\t\t\t\t\tcase 0: \n\t\t\t\t\t\tsPasswordStrength = \"Too Short\";\n\t\t\t\t\t\tsPWClass = \"tooShort\";\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 1: \n\t\t\t\t\t\tsPasswordStrength = \"Very Weak\";\n\t\t\t\t\t\tsPWClass = \"veryWeak\";\t\t\t\t\t\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 2: \n\t\t\t\t\t\tsPasswordStrength = \"Weak\";\n\t\t\t\t\t\tsPWClass = \"weak\";\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 3: \n\t\t\t\t\t\tsPasswordStrength = \"Fair\";\n\t\t\t\t\t\tsPWClass = \"fair\";\t\t\t\t\t\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 4: \n\t\t\t\t\t\tsPasswordStrength = \"Strong\";\n\t\t\t\t\t\tsPWClass = \"strong\";\t\t\t\t\t\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 5: \n\t\t\t\t\t\tsPasswordStrength = \"Very Strong\";\n\t\t\t\t\t\tsPWClass = \"veryStrong\";\t\t\t\t\t\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn {\n\t\t\t\tstrength: sPasswordStrength,\n\t\t\t\tclass: sPWClass\n\t\t\t}\n\t\t\t\n\t\t}\n\t}\n\t\n})(); \n(function () {\n\t'use strict';\n\n\tangular\n\t\t.module('proRefs')\n\t\t.factory('moodleService', moodleService);\n\n\tmoodleService.$inject = ['$http','moodleCFC','$log'];\t\n\n\tfunction moodleService($http, moodleCFC, $log) {\n$log.info(\"MoodleService\");\n\n\t\tvar factory = {\n\t\t\tmoodle:{},\n\t\t\tenrollUser: enrollUser,\n\t\t\tgetCurrentStatus: getCurrentStatus,\n\t\t\tgetUser: getUser,\n\t\t\tupdateUser: updateUser\n\t\t};\n\t\treturn factory;\n\n\t\t\n\t\tfunction enrollUser(retCode, mProID) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"Moodle_EnrollUser\",\n\t\t\t\tuserid: factory.moodle.id,\n\t\t\t\treturnCode: retCode,\n\t\t\t\tsProID: mProID,\n\t\t\t\tiCourseID: 25\t\n\t\t\t};\n\t\t\treturn $http.post(moodleCFC, params)\n\t\t\t.then(function(result) { // $log.info(\"Moodle_EnrollUser results:\",result);\n\t\t\t\treturn result.data;\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction getCurrentStatus(iMoodleID, courseid) {\n\t\t\tfactory.moodle.id = iMoodleID;\n\t\t\tvar params = {\n\t\t\t\tmethod: \"Moodle_CourseStatus\",\n\t\t\t\tuserid: iMoodleID,\n\t\t\t\tiCourseID: courseid\n\t\t\t}; //$log.info(\"Moodle_CourseStatus call:\", new Date());\n\t\t\treturn $http.post(moodleCFC, params)\n\t\t\t.then(function (results) { // $log.info(\"Moodle_CourseStatus results:\",results.data, new Date());\n\t\t\t\tvar curStatus = \"0 of 8 chapters completed\";\n\t\t\t\tvar curChapter = 0;\n\t\t\t\tvar str = results.data.toString();\n\t\t\t\tvar arr = str.split(\"\");\n\t\t\t\tfor (var i=0; i -1) {\n\t\t\t\t\t\t\tvar sChpt = arrKEY[j]; // $log.info(\"sChpt:\",arrKEY[j])\n\t\t\t\t\t\t\tvar begChpt = sChpt.indexOf('');\n\t\t\t\t\t\t\tvar endChpt = sChpt.indexOf('');\n\t\t\t\t\t\t\tcurChapter = sChpt.substring(begChpt+7, endChpt);\n\n\t\t\t\t\t\t\tswitch (curChapter) {\t\n\t\t\t\t\t\t\t\tcase \"41\": curChapter = \"1\"; break;\n\t\t\t\t\t\t\t\tcase \"42\": curChapter = \"2\"; break;\n\t\t\t\t\t\t\t\tcase \"43\": curChapter = \"3\"; break;\n\t\t\t\t\t\t\t\tcase \"44\": curChapter = \"4\"; break;\n\t\t\t\t\t\t\t\tcase \"45\": curChapter = \"5\"; break;\n\t\t\t\t\t\t\t\tcase \"46\": curChapter = \"6\"; break;\n\t\t\t\t\t\t\t\tcase \"47\": curChapter = \"7\"; break;\n\t\t\t\t\t\t\t\tcase \"48\": curChapter = \"8\"; break;\n\t\t\t\t\t\t\t\tcase \"22\": /*do nothing */ break;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (arrKEY[j].indexOf('name=\"state\"') > -1) {\n\t\t\t\t\t\t\tvar sStat = arrKEY[j];\n\t\t\t\t\t\t\tvar begStat = sStat.indexOf('');\n\t\t\t\t\t\t\tvar endStat = sStat.indexOf('');\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tvar status = sStat.substring(begStat+7, endStat); \n// $log.info(\"CurChapter:\",curChapter,\"Status:\",status);\n\t\t\t\t\t\t\tif (status == \"1\") {\n\t\t\t\t\t\t\t\tif (Number(curChapter) > Number(completedChpt)) {\n\t\t\t\t\t\t\t\t\tcompletedChpt = curChapter;\n\t\t\t\t\t\t\t\t\tcurStatus = completedChpt + \" of 8 chapters completed\";\n\t\t\t\t\t\t\t\t} //possibly need ...\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} // $log.info('currentStatus =', curStatus);\t\n\t\t\t\t}\n\t\t\t\treturn curStatus;\n\t\t\t});\n\t\t}\n\t\t\n\t\t/* To test just the GetUser call... change method to \"Moddle_GetUser_TEST\": */\n\t\tfunction getUser(mProID, fName, lName, email) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"Moodle_GetUser\",\n\t\t\t\tsProID: mProID,\n\t\t\t\tsFirstName:fName,\n\t\t\t\tsLastName: lName,\n\t\t\t\tsEmail: email\n\t\t\t};\n\t\t\treturn $http.post(moodleCFC, params) \n\t\t\t.then(function(result) { //$log.info(\"svc:Moodle_GetUser:\",result);\n\t\t\t\treturn result.data;\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction updateUser(retCode, mProID) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"Moodle_UpdateUser\",\n\t\t\t\tuserid: factory.moodle.id,\n\t\t\t\treturnCode: retCode,\n\t\t\t\tsProID: mProID\n\t\t\t};\n\t\t\treturn $http.post(moodleCFC, params)\n\t\t\t.then(function(results) { //$log.info(\"Moodle_UpdateUser results:\",results.data, new Date())\n\t\t\t\treturn results.data;\t\t\t\t\n\t\t\t});\n\t\t}\n\t\t\n\t}\n})();\n(function(){\n 'use strict';\n\n angular\n\t\t.module('proRefs')\n\t\t.factory('modalService', modalService);\n\n\tmodalService.$inject = ['$uibModal','$log'];\n\n\tfunction modalService($uibModal, $log) {\n$log.info(\"modalService\");\n\t\t\n\t\tvar factory = {\n okAlert: openOKAlert,\n resultAlert: openResultAlert\n\t\t};\n\t\treturn factory;\n\t\t\n\t\t//customize more if need larger...\n\t\tfunction openOKAlert(title, alertMsg) {\n\t\t\t$uibModal.open({\n\t\t\t\tanimation: true,\n\t\t\t\tsize: 'sm',\n\t\t\t\ttemplateUrl: 'app/modals/modAlert.html',\n\t\t\t\tcontroller: 'ModalController',\n\t\t\t\tbindToController: true,\n\t\t\t\tcontrollerAs: 'vmMod',\n\t\t\t\tkeyboard: true,\n\t\t\t\tbackdrop: 'static',\n\t\t\t\tbackdropClass: 'bottom:0;height:100%;margin:0;padding-bottom:0',\n\t\t\t\tresolve: {\n\t\t\t\t\tmodType: function() {\n\t\t\t\t\t\treturn \"OK\";\n\t\t\t\t\t},\n\t\t\t\t\ttitle: function() {\n\t\t\t\t\t\treturn title;\n\t\t\t\t\t},\n\t\t\t\t\talertMsg: function() {\n\t\t\t\t\t\treturn alertMsg;\n\t\t\t\t\t}\t\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction openResultAlert(sz,result) { //sz:\"sm\",\"lg\";\n\t\t\t$uibModal.open({\n\t\t\t\tanimation: true,\n\t\t\t\tsize: sz,\n\t\t\t\ttemplateUrl: 'app/modals/modAlert.html',\n\t\t\t\tcontroller: 'ModalController',\n\t\t\t\tbindToController: true,\n\t\t\t\tcontrollerAs: 'vmMod',\n\t\t\t\tkeyboard: true,\n\t\t\t\tbackdrop: true,\n\t\t\t\tbackdropClass: 'bottom:0;height:100%;margin:0;padding-bottom:0',\n\t\t\t\tresolve: {\n\t\t\t\t\ttitle: function() {\t\t\t\t\t\t\n\t\t\t\t\t\treturn result[0].RESULT;\n\t\t\t\t\t},\n\t\t\t\t\talertMsg: function() {\n\t\t\t\t\t\treturn result[0].RESULTREASON;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\n\t}\t\t\n})();\t\n(function(){\n/**\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('proRefs')\n\t\t.factory('loginService', loginService);\n\n\tloginService.$inject = ['$http','webSessionStorage','$rootScope','modalService',\n\t\t'authServiceCFC','mcWebCFC','custData','$state','setCustService','$log'];\n\n\tfunction loginService($http, webSessionStorage, $rootScope, modalService,\n\t\tauthServiceCFC, mcWebCFC, custData, $state, setCustService, $log) {\n$log.info(\"Login Service\")\t\t\n\t\tvar sDataSource = \"\";\n\t\t\n\t\tvar factory = {\n user: {\n\t\t\t\tUSERID: 0,\n\t\t\t\tloggedIn: false,\n\t\t\t\tRETURNCODE: \"\",\n\t\t\t\tUserChurchFNs: []\n\t\t\t},\n\t\t\tlogin: login,\n\t\t\tlogout: logout,\n\t\t\tsecDeleteReturnCode: secDeleteReturnCode,\n\t\t\tsecGetReturnCode: secGetReturnCode,\n\t\t\tsecReturnLogin: secReturnLogin\n// \t\t\tsecReturnReset: secReturnReset\n\t\t};\n\t\treturn factory;\n\t\t\n\t/* 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: \"WebProtect.194\",\n\t\t\t\tiMinutes: 30,\n\t\t\t\tsFn: \"ProRef\"\n\t\t\t};\n\t\t\treturn $http.post(authServiceCFC, params)\n\t\t\t.then(function(results) { //$log.info(\"login results:\",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.UserChurchFNs = [];\n\t\t\t\t$rootScope.myApps = [];\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\tdifferent app... then SecUserLoginFunctions is run again from new\n\t\tapp to set a new ReturnCode to 30 minutes.\n\t\tiMin=1, sFn=[app to load] */\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: \"WebProtect\",\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/* UNABLE TO USE secReturnLogin from AuthService.cfc\n\t\tApp opened by passing permission from other app...\n\t\tStore DatabaseID & FN=$rootScope.goToApp to open.\n\t\tThen call regular login with ReturnCode's USERNAME/PASSWORD.\n\t\tFields returned with SecReturnLogin(ReturnCode):\n\t\t(USERNAME, DATABASEID(sDataSource), APP, FN, USERID, PASSWORD, PARAMS) */\t\n function secReturnLogin(sReturnCode) {\n var params = {\n method: \"SecReturnLogin\",\n sReturnCode: sReturnCode\n };\n return $http.post(mcWebCFC, params)\n .then(function (results) {\n\t\t\t\ttry {\n\t\t\t\t\tif (results.data[0].DATABASEID != \"\") {\n\t\t\t\t\t\tsDataSource = results.data[0].DATABASEID;\n\t\t\t\t\t}\n\t\t\t\t\tif (!$rootScope.TESTING) {\n\t\t\t\t\t\tsecDeleteReturnCode(sReturnCode);\n\t\t\t\t\t}\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\t/* CALLED When Apps used to extend ReturnCode another 30 minutes (default)\n\t before expiration. If expires, user has to Login again for NEW returnCode. */\n/* Deprecated 05/28/19 - when added timeOutService to app: \n function secReturnReset(resetCode, iUserID, iMin) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"SecReturnReset\",\n\t\t\t\tiUserID: iUserID,\n\t\t\t\tsReturnCode: resetCode,\n\t\t\t\tiNewMinutes: iMin\n\t\t\t};\n return $http.post(mcWebCFC, params)\n .then(function (results) {\n if (results.RESULT == \"Expired\") {\n\t\t\t\t\tfactory.user.loggedIn = false;\n\t\t\t\t\tmodalService.okAlert(\"Expired\",\n\t\t\t\t\t\t\"Your session has expired.

\" +\n\t\t\t\t\t\t\"Please log in again to continue.\");\n\t\t\t\t\t$state.go('login', {reload:true});\t \n }\n return results.data;\n });\n\t\t}\n*/\n\n\n/* Internal Utilities: */ \n\n function setUserInfo (results) { //$log.info(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\t\t\t\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;\t\t\t\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\tfactory.user.CHURCHID = results.data[0].USERGETCHURCHFUNCTIONS[0].CHURCHID;\n\t\t\t\tfactory.user.CHURCHNAME = results.data[0].USERGETCHURCHFUNCTIONS[0].CHURCHNAME;\n\t\t\t} else {\n\t\t\t\tfactory.user.UserChurchFNs = [];\n\t\t\t}\n\t\t\t$rootScope.$broadcast('updateNav');\t\t\n\t\t}\n\t\t\n\t}\n})();\n(function () {\n\t'use strict';\n \n\tangular\n\t\t.module('proRefs')\n\t\t.factory('helpDeskService', helpDeskService);\n\n\thelpDeskService.$inject = ['$http','$sce','mcWebCFC','webSessionStorage','$rootScope',\n\t\t'version','loginService','$state','modalService'];\n\n\tfunction helpDeskService($http, $sce, mcWebCFC, webSessionStorage, $rootScope,\n\t\tversion, loginService, $state, modalService) {\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: \"MCWebApps\",\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('proRefs')\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: \"assets/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;\t\n\t\t\t}\n\t\t\treturn headerIcon;\n\t\t}\n\t\t\n\t}\n\n})();\t \n(function () {\n 'use strict';\n\n\tangular\n\t\t.module('proRefs')\n\t\t.factory('formatterService', formatterService);\n\n\tformatterService.$inject = ['modalService'];\n\n\tfunction formatterService(modalService) {\n\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) {\n\t\t\tvar pattern = /\\D/g;\n\t\t\tvar str = numStr;\n\t\t\tvar newString = str.replace(pattern,'');\n\t\t\treturn newString;\n\t\t}\n\t\t\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;\n\t\t\t\tbreak;\t\n\t\t\t}\n\t\t\treturn tel;\n\t\t}\n\t\t\n\t\tfunction formatSSN(SSN) { //$log.info(\"formatSSN\",SSN)\n\t\t\tvar sSSN = SSN.toString();\n\t\t\tvar formattedSSN = \"\";\n\t\t\tformattedSSN = sSSN.substr(0,3) + \"-\" + sSSN.substr(3,2) + \"-\" +\n\t\t\t\tsSSN.substr(5,4);\n\t\t\treturn formattedSSN;\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\n\t}\n})();\n(function () {\n 'use strict';\n \n\tangular\n .module('proRefs')\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 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('proRefs')\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('proRefs')\n\t\t.factory('declineEmail', declineEmail);\n\n\tfunction declineEmail() {\n\t\tvar factory = {\n\t\t\tgetEmailContent: getEmailContent\n\t\t};\n\t\treturn factory;\n\t\t\n\t\t\n\t\tfunction getEmailContent(sApplicant, sRefName, sDatabaseID) {\n\t\t\t\n\t\t\tvar sWebProtect = \"https://umcdata.net/MissionConnect/Public/Protect/Web_Protect.html?conf=\" + sDatabaseID;\n\t\t\t\n\t\t\tvar sEmailContent = sEmailContent = sApplicant + \",

\" +\n\t\t\t\t\t\"Your Reference Request has been declined by \" + sRefName + \".

\" +\n\t\t\t\t\t\"Please return to your MissionConnect:Protect online process to resend this \" +\n\t\t\t\t\t\"Reference Request to another individual. For your convenience, the link to the \" +\n\t\t\t\t\t\"MissionConnect: Protect website is provided below.

\" +\n\t\t\t\t\t\"\" + sWebProtect + \n\t\t\t\t\t\"\";\n\n\t\t\treturn sEmailContent;\n\t\t}\n\t}\n\n})();\n(function () {\n\t'use strict';\n\n\tangular\n\t\t.module('proRefs')\n\t\t.factory('datesService', datesService);\n\n\tdatesService.$inject = ['$log'];\n\n\tfunction datesService($log) {\n$log.info(\"Dates Service\")\t\t\n\t\tvar service = {\n\t\t\tcalStrToDbDateStr: calStrToDbDateStr,\n\t\t\tcurrentYear: currentYear,\n\t\t\tget19thBirthDate: get19thBirthDate,\n\t\t\tjsDateStrToCalendarStr: jsDateStrToCalendarStr,\n\t\t\tjsDateStrToDbDateStr: jsDateStrToDbDateStr,\n\t\t\ts1yrFromToday: s1yrFromToday,\n\t\t\ts6mosFromToday: s6mosFromToday,\n\t\t\ts15mosFromToday: s15mosFromToday,\n\t\t\ttodayToCalString: todayToCalString,\n\t\t\ttodayToDbString: todayToDbString\n\t\t};\n\t\treturn service;\n\t\t\n\t\tfunction calStrToDbDateStr(sCal) {\n\t\t\tvar dCal = new Date(sCal);\n\t\t\tvar mm = dCal.getMonth()+1;\n\t\t\tif (mm < 10) { mm = \"0\" + String(mm); }\n\t\t\tvar dd = dCal.getDate();\n\t\t\tif (dd < 10) { dd = \"0\" + String(dd); }\n\t\t\tvar sDbDate = String(dCal.getFullYear()) + \"-\" + mm + \"-\" + dd;\n\t\t\treturn sDbDate;\t\t\t// \"01/01/2017\" ==> \"2017-01-01\"\n\t\t}\n\t\t\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) { $log.info(\"passed in:\", bDay)\n\t\t\tvar s19thBDay = \"\";\n\t\t\tvar dt = new Date(bDay); $log.info(\"dt\",dt)\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; \t// 19th BirthDate as MM/DD/YYYY\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\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\tsDbDate = dt.getFullYear() + \"-\" + mm +\t\"-\" + dd;\n\t\t\treturn sDbDate; // // \"August 03, 2017 17:50:20\" ==> \"2017-08-03\"\n\t\t}\n\t\t\n\t\tfunction s1yrFromToday() {\n\t\t\tvar today = new Date();\n\t\t\tvar mm = today.getMonth()+1;\n\t\t\tif (mm < 10) { mm = \"0\" + String(mm); }\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\tif (mm < 10) { mm = \"0\" + String(mm); }\n\t\t\tvar dd = today.getDate();\n\t\t\tif (dd < 10) { dd = \"0\" + String(dd); }\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\tif (mm < 10) { mm = \"0\" + String(mm); }\n\t\t\tvar dd = today.getDate();\n\t\t\tif (dd < 10) { dd = \"0\" + String(dd); }\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\t05/28/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('proRefs')\n .factory('dataService', dataService);\n\n\tdataService.$inject = ['$http','$sce','webSessionStorage','moodleCFC','proJsCFC',\n\t\t'loginService','$rootScope','proEmailCFC','mcWebCFC','modalService','$log'];\t\n\n function dataService($http, $sce, webSessionStorage, moodleCFC, proJsCFC,\n\t\tloginService, $rootScope, proEmailCFC, mcWebCFC, modalService, $log) {\n\t\tvar sDataSource = \"\";\n\n\t\tvar service = {\n\t\t\tsetDataSource: setDataSource,\n\t\t\taddrGetAll: addrGetAll,\n\t\t\tchLoadAll: chLoadAll,\n\t\t\temGetAll: emGetAll,\n\t\t\temGetFirstSeq: emGetFirstSeq,\n\t\t\temailSendCustom: emailSendCustom,\n\t\t\temailSendError: emailSendError,\n\t\t\temailSend_MCRefLink: emailSend_MCRefLink,\n\t\t\temailSend_MORefLink: emailSend_MORefLink,\n\t\t\temailSend_NWTXRefLink: emailSend_NWTXRefLink,\n\t\t\temailSend_NWTXTraining: emailSend_NWTXTraining,\n\t\t\temailSend_PastorRef: emailSend_PastorRef,\n\t\t\tfxGet: fxGet,\n\t\t\tgetChurchName: getChurchName,\n\t\t\tgetUserInfoFromEntityID: getUserInfoFromEntityID,\n\t\t\tlibGetASetting: libGetASetting,\n\t\t\tlibGetMaintenanceMsg: libGetMaintenanceMsg,\n\t\t\tlibLoadStates: libLoadStates,\n\t\t\tpeoGetDetails: peoGetDetails,\n\t\t\tpeoSave: peoSave,\n\t\t\tphLoadTypes: phLoadTypes,\n\t\t\tproGetCertRecords: proGetCertRecords,\n\t\t\tproGetChOrgSettings: proGetChOrgSettings,\n\t\t\tproGetDSs: proGetDSs,\n\t\t\tproGetFeesVouchers: proGetFeesVouchers,\n\t\t\tproGetForm: proGetForm,\n\t\t\tproGetFormData: proGetFormData,\n\t\t\tproGetMain: proGetMain,\n\t\t\tproGetPastorChCerts: proGetPastorChCerts,\n\t\t\tproGetProcessRecordPub: proGetProcessRecordPub,\n\t\t\tproGetProcessSteps: proGetProcessSteps,\n\t\t\tproLoadDefOptions: proLoadDefOptions,\n\t\t\tproLoadPastors: proLoadPastors,\n\t\t\tproLoadPRRefs: proLoadPRRefs,\n\t\t\tproPayProcessUpdate: proPayProcessUpdate,\n\t\t\tproSaveFeesVouchers: proSaveFeesVouchers,\n\t\t\tproSaveFormData: proSaveFormData,\n\t\t\tproSaveMain: proSaveMain,\n\t\t\tproSaveProcess: proSaveProcess,\n\t\t\tproSaveResultsFA: proSaveResultsFA,\n\t\t\tproSaveResultsPMM: proSaveResultsPMM,\n\t\t\tproSaveRefTracker: proSaveRefTracker,\n\t\t\tproSaveScreenSend: proSaveScreenSend,\n\t\t\tproSendPMM: proSendPMM,\n\t\t\tproSendPMMAccio: proSendPMMAccio,\n\t\t\tproSubmitFirstAdvantage: proSubmitFirstAdvantage,\n\t\t\trcvGetValidate: rcvGetValidate,\n\t\t\trcvGetVoucher: rcvGetVoucher,\n\t\t\tsecDeleteReturnCodeFromKey: secDeleteReturnCodeFromKey,\n\t\t\tsecGetReturnCode: secGetReturnCode,\n\t\t\tsecGetReturnCodeFromKey: secGetReturnCodeFromKey,\n\t\t\tsecReturnLogin: secReturnLogin,\n\t\t\tsendForgottenPassword: sendForgottenPassword,\n\t\t\tsuGetEvent: suGetEvent,\n\t\t\tsuLoadEventsLite: suLoadEventsLite,\n\t\t\tuserGetChurchFunctions: userGetChurchFunctions,\n\t\t\tusersChangePassword: usersChangePassword,\n\t\t\tusersGetId: usersGetId,\n\t\t\tusersGetOne: usersGetOne,\n\t\t\tusersGetOneFromEntityID: usersGetOneFromEntityID,\n\t\t\tusersSave: usersSave\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 addrGetAll(iEntityID) { //applCtrl\n var params = {\n method: \"AddrGetAll\",\n sDataSource: sDataSource,\n\t\t\t\tiEntityID: iEntityID\n };\n return $http.post(proJsCFC, params)\n .then(function (results) {\n return results.data;\n });\n\t\t}\n\t\t\n\t\tfunction chLoadAll() { //applCtrl\n var params = {\n method: \"ChLoadAll\",\n sDataSource: sDataSource,\n sChurchName: \"%\",\n iDistNum: -1,\n sIncludeOnlyActive: \"True\",\n sSortBy: \"ChurchName\",\n sTopItem: \"\"\n };\n return $http.post(proJsCFC, params)\n .then(function (results) {\n return results.data;\n });\n\t\t}\n\t\t\n\t\tfunction emGetAll(iEntityID) { //applCtrl\n\t\t\tvar params = {\n\t\t\t\tmethod: \"EmGetAll\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tiEntityID: iEntityID\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, 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 emGetFirstSeq(iEntityID) {//ReqRef_MOPastor\n\t\t\tvar params = {\n\t\t\t\tmethod: \"EmGetFirstSeq\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tiEntityID: iEntityID\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, 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 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(proJsCFC, params)\n .then(function (results) {\n return results.data;\n });\n\t\t}\n\t\t\n\t\t/** TODO:\n\t\t *\tChange from lori to 'errors@greatpirit.com' when all functioning well. \n\t\t **/\n\t\tfunction emailSendError(sEmailContent) {\n var params = {\n method: \"EmailSendCustom\",\n sEmailAddr: \"lori@greatspirit.com\",\n sFrom: \"GSS Error-Notification \"\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, 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\tfunction peoGetDetails(iEntityID) { //applCtrl, personRecord\n\t\t\tvar params = {\n\t\t\t\tmethod: \"PeoGetDetails\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tiEntityID: iEntityID,\n\t\t\t\tiUserID: loginService.user.USERID\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, 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 peoSave(sSaveString) {\n\t\t\tif (sDataSource == \"\") { setDataSource(); }\n\t\t\tvar params = {\n\t\t\t\tmethod: \"PeoSave\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tsRawDataString: sSaveString\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, params)\n\t\t\t.then(function (results) { $log.info('results:',results)\n\t\t\t\treturn results.data;\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction phLoadTypes() { //appl.html, contactInfo\n\t\t\tif (sDataSource == \"\") { setDataSource(); }\n\t\t\tvar params = {\n\t\t\t\tmethod: \"PhLoadTypes\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tsTopItem: \"Type:\"\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, 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 proGetCertRecords(iUserID, iEntityID) {\n\t\t\tif (sDataSource == \"\") { setDataSource(); }\n\t\t\tvar params = {\n\t\t\t\tmethod: \"ProGetCertRecords\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tiUserID: iUserID,\n\t\t\t\tiEntityID: iEntityID,\n\t\t\t\tiCertTypeID: 0\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, 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 proGetChOrgSettings(iChurchID) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"ProGetChOrgSettings\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tiEntityID: iChurchID\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, 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 proGetDSs() {\n\t\t\tvar params = {\n method: \"ProGetDSs\",\n sDataSource: sDataSource\n };\n return $http.post(proJsCFC, params)\n .then(function (results) {\n return results.data;\n });\n\t\t}\n\t\t\n\t\tfunction proGetFeesVouchers() {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"ProGetFeesVouchers\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tiUserID: loginService.user.USERID,\n\t\t\t\tsProID: $rootScope.sProID\t\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, 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 proGetForm(sFormName) {\n\t\t\tvar params = {\n method: \"ProGetForm\",\n sDataSource: sDataSource,\n sFormType: \"WebProtect\",\n sFormName: sFormName\n };\n return $http.post(proJsCFC, params)\n .then(function (results) {\n return results.data;\n });\n\t\t}\n\t\t\n\t\tfunction proGetFormData(sFormName) {\n\t\t\tvar params = {\n method: \"ProGetFormData\",\n sDataSource: sDataSource,\n sFormName: sFormName,\n sProID: $rootScope.sProID\n };\n return $http.post(proJsCFC, params)\n .then(function (results) {\n return results.data;\n });\n\t\t}\n\t\t\n\t\tfunction proGetMain(sProID) {\n\t\t\tif (sDataSource == \"\") { setDataSource(); }\n\t\t\tvar params = {\n method: \"ProGetMain\",\n sDataSource: sDataSource,\n sProID: sProID\n };\n return $http.post(proJsCFC, params)\n .then(function (results) {\n return results.data;\n });\n\t\t}\n\t\t\n\t\tfunction proGetPastorChCerts(iEntityID) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"ProGetPastorChCerts\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tiEntityID: iEntityID\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, 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 proGetProcessRecordPub(sProID) {\n\t\t\tif (sDataSource == \"\") { setDataSource(); }\n\t\t\tvar params = {\n\t\t\t\tmethod: \"ProGetProcessRecordPub\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tiUserID: loginService.user.USERID,\n\t\t\t\tsProID: sProID\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, 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 proGetProcessSteps(iCertTypeID) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"ProGetProcessSteps\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tiUserID: loginService.user.USERID,\n\t\t\t\tiCertTypeID: iCertTypeID\t\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, params)\n\t\t\t.then(function (results) {\n\t\t\t\treturn results.data;\t\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction proLoadDefOptions(form) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"ProLoadDefOptions\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tsFormName: form\t\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, 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\t//ONLY in MO currently. Edit if for others! (Include ProAddStaff table, and exclusions)\n\t\tfunction proLoadPastors(iChurchID) { //refer, //refRequest\n\t\t\tvar params = {\n method: \"ProLoadPastors\",\n sDataSource: sDataSource,\n iChurchID: iChurchID\n };\n return $http.post(proJsCFC, params)\n .then(function (results) {\n return results.data;\n });\n\t\t}\n\t\t\n\t\tfunction proLoadPRRefs(iEntityID, bIncompleteOnly) {\n\t\t\tif (sDataSource == \"\") { setDataSource(); }\n\t\t\tvar params = {\n method: \"ProLoadPRRefs\",\n sDataSource: sDataSource,\n iEntityID: iEntityID,\n bIncompleteOnly: bIncompleteOnly\n };\n return $http.post(proJsCFC, params)\n .then(function (results) {\n// \t\t\t\tresetReturnCode();\n\t\t\t\treturn results.data;\n });\n\t\t}\n\t\t\n\t\tfunction proPayProcessUpdate(iRcvID) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"ProPayProcessUpdate\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tiRcvID: iRcvID\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 proSaveFeesVouchers(sRawDataString) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"ProSaveFeesVouchers\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tsRawDataString: sRawDataString\t\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, 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\t//resets ReturnCode expiration:\t\n\t\tfunction proSaveFormData(sSaveString) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"ProSaveFormData\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tsRawDataString: sSaveString\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, params)\n\t\t\t.then(function (results) {\n// \t\t\t\tresetReturnCode();\n\t\t\t\treturn results.data;\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction proSaveMain(sSaveString) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"ProSaveMain\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tsRawDataString: sSaveString\t\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, 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 proSaveProcess(sSaveString) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"ProSaveProcess\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tsRawDataString: sSaveString\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, 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 proSaveRefTracker(iUserID) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"ProSaveRefTrackerWithApp\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tiUserID: iUserID,\n\t\t\t\tsApp: \"ProRefs_v.044\"\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, 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 proSaveResultsFA(iStepID,FAReturn) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"ProSaveResultsLN\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tiUserID: loginService.user.USERID,\n\t\t\t\tiStepID: iStepID,\n\t\t\t\tsResultsString: FAReturn\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, 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 proSaveResultsPMM(iStepID,PMMReturn) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"ProSaveResultsPMM\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tiUserID: loginService.user.USERID,\n\t\t\t\tiStepID: iStepID,\n\t\t\t\tsResultsString: PMMReturn\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, 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 proSaveScreenSend(sSaveString) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"ProSaveScreenSend\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tsRawDataString: sSaveString\t\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, params)\n\t\t\t.then(function (result) {\n\t\t\t\treturn result.data;\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction proSendPMM(sOrderDetail) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"ProSendPMM\",\n\t\t\t\tsOrderDetail: sOrderDetail\t\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, params)\n\t\t\t.then(function (result) {\n\t\t\t\treturn result;\t\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction proSendPMMAccio(sOrderDetail) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"ProSendPMMAccio\",\n\t\t\t\tsOrderDetail: sOrderDetail\t\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, params)\n\t\t\t.then(function (result) {\n\t\t\t\treturn result;\t\n\t\t\t});\n\t\t}\n\t\t\n\t\t//Testing: change method to ProTestFirstAdvantage(testCFC)\n\t\t//LIVE: proSubmitFirstAdvantage(proJsCFC)\n\t\tfunction proSubmitFirstAdvantage(sOrderDetail) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"ProSubmitFirstAdvantage\",\n\t\t\t\tsOrderDetail: sOrderDetail\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, params)\n\t\t\t.then(function (result) {\n\t\t\t\treturn result;\t\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction rcvGetValidate(invID) {\n\t\t\tsDataSource = webSessionStorage.getStoredData('sDataSource');\n\t\t\tvar params= {\n\t\t\t\tmethod: \"RcvGetValidate\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tsInvoiceID: invID\n\t\t\t}; $log.info('params',params);\n\t\t\treturn $http.post(mcWebCFC, params)\n .then(function(results) {\n if (results.data.length > 0) {\n\t\t\t\t\treturn results.data;\n\t\t\t\t}\t\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction rcvGetVoucher(vCode) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"RcvGetVoucher\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tsVoucherCode: vCode\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, params)\n\t\t\t.then(function (result) {\n\t\t\t\treturn result.data;\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction secDeleteReturnCodeFromKey(iReturnKey) {\n\t\t\tvar params = {\n method: \"SecDeleteReturnCodeFromKey\",\n iReturnKey: iReturnKey\n };\n return $http.post(proJsCFC, params)\n .then(function (results) {\n return results.data;\n });\n\t\t}\n\t\t\n\t\t//sFn: PastorRef (sStepLinkFlag), PayFee, etc.\n\t\tfunction secGetReturnCode(iMin, sFn, sParams) {\n\t\t\tvar params = {\n method: \"SecGetReturnCode\",\n sDataSource: sDataSource,\n iUserID: loginService.user.USERID,\n sApp: \"WebProtect\",\n iMinutes: iMin,\n sFn: sFn,\n sParams: sParams\n };\n return $http.post(proJsCFC, params)\n .then(function (results) {\n return results.data;\n });\n\t\t}\n\t\t\n\t\tfunction secGetReturnCodeFromKey(returnCodeKey) {\n\t\t\tvar params = {\n method: \"SecGetReturnCode\",\n sDataSource: sDataSource,\n iReturnKey: returnCodeKey\n };\n return $http.post(proJsCFC, params)\n .then(function (results) {\n return results.data;\n });\n\t\t}\n\t\t\n\t\tfunction secReturnLogin(sReturnCode) {\n\t\t\tvar params = {\n method: \"SecReturnLogin\",\n sReturnCode: sReturnCode\n };\n return $http.post(proJsCFC, params)\n .then(function (results) { //$log.info(\"secReturnLogin results:\",results)\n\t\t\t\treturn results.data;\n });\n\t\t}\n\t\t\n\t\tfunction sendForgottenPassword(sUserName) {\n\t\t\tif (sDataSource == \"\") { setDataSource(); }\n\t\t\tif (sDataSource.slice(-3) != 'Dev') {\n\t\t\t\tvar params = {\n\t\t\t\t\tmethod: \"SendForgottenPassword\",\n\t\t\t\t\tsDataSource: sDataSource,\n\t\t\t\t\tsUserName: sUserName,\n\t\t\t\t\tsCustomEmailText: \"\"\n\t\t\t\t};\n\t\t\t\treturn $http.post(proJsCFC, params)\n\t\t\t\t.then(function (results) {\n\t\t\t\t\treturn results.data;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tmodalService.okAlert(\"Forgot Password\", \n\t\t\t\t\t\"This function is not available for a Dev database, \" +\n\t\t\t\t\t\"as the email is sent directly from the cfc after retrieving \" +\n\t\t\t\t\t\"the email address from the user account.\");\n\t\t\t}\n\t\t}\n\n\t\tfunction suGetEvent(eventID) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"SUGetEvent\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tiEventID: eventID\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, params)\n\t\t\t.then(function(result) {\n\t\t\t\treturn result.data;\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction suLoadEventsLite(status) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"SULoadEventsLite\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tsIncludeStatus: status\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, 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\t//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(proJsCFC, 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 sRawDataString: sSaveString\n };\n return $http.post(proJsCFC, params)\n .then(function (results) {\n return results.data;\n });\n\t\t}\n\t\t\n\t\t//*** if ever need all UserIDs (even inactive), remove hardcode & add \"True\" for param)\n\t\tfunction usersGetId(iEntityID, sUserName) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"UsersGetId\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tiEntityID: iEntityID,\n\t\t\t\tsUserName: sUserName,\n\t\t\t\tsActiveOnly: \"False\"\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, params)\n .then(function (results) {\n return results.data;\n });\n\t\t}\n\t\t\n\t\tfunction usersGetOne(iUserID) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"UsersGetOne\",\n\t\t\t\tsDataSource: sDataSource,\n iUserID: iUserID\n };\n return $http.post(proJsCFC, params)\n .then(function (results) {\n return results.data;\n });\n\t\t}\n\t\t\n\t\tfunction usersGetOneFromEntityID(iEntityID) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"UsersGetOneFromEntityID\",\n\t\t\t\tsDataSource: sDataSource,\n iEntityID: iEntityID\n };\n return $http.post(proJsCFC, params)\n .then(function (results) {\n\t\t\t\tif (results == \"No User Account Found\") {\n\t\t\t\t\treturn results;\n\t\t\t\t} else {\n\t\t\t\t\treturn results.data;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tfunction usersSave(sSaveString) {\n\t\t\tvar params = {\n\t\t\t\tmethod: \"UsersSave\",\n\t\t\t\tsDataSource: sDataSource,\n sRawDataString: sSaveString\n };\n return $http.post(proJsCFC, params)\n .then(function (results) {\n// \t\t\t\tresetReturnCode();\n return results.data;\n });\n\t\t}\n\t\t\n\t\t\n//Internally called functions:\n\t\t\n/*\tDeprecated 05/28/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('proRefs')\n .factory('contactInfo', contactInfo);\n\n\tcontactInfo.$inject = ['$http','webSessionStorage','dataService','loginService',\n\t\t'datesService','errorEmailNotification','proJsCFC','$log'];\t\n\n function contactInfo($http, webSessionStorage, dataService, loginService, \n\t\tdatesService, errorEmailNotification, proJsCFC, $log) {\n\t\tvar sDataSource = \"\";\n\t\t\n\t\tvar factory = {\n\t\t\tsaveHomeAddr: saveHomeAddr,\n\t\t\tupdateAddrEntityUse: updateAddrEntityUse,\n\t\t\tsaveNewPhones: saveNewPhones,\n\t\t\tsplitOffPhoneType: splitOffPhoneType,\n\t\t\tsaveNewEmails: saveNewEmails,\n\t\t\tsavePersonalEmail: savePersonalEmail,\n\t\t\tupdateEmailToPrimary: updateEmailToPrimary\n\t\t};\n\t\t\n\t\treturn factory;\t\n\t\n\n//ADDRESS:\n\t/* RULES: Pull the address fields from the field data to save new Address.\n\t\tUPDATE: If current Home Address edited... update address -- no history of prev entry.\n\t\tINSERT (Addr): If NO Home Address, save entered data as Home Address.\n\t\tINSERT (AddrEntityUse): If NO current Primary, set Home Address as Primary. \n\t\tprimAddr=null if NO current Primary Address \n\t\tselHmAddr=null if entered address... no selected address */\t\n\t\tfunction saveHomeAddr(iEntityID, arrData, selHmAddr, primAddr) {\n\t\t\tif (sDataSource == \"\") { setDataSource(); }\n\t\t\tvar sDbToday = datesService.todayToDbString();\n\t\t\tvar sAddr = \"\";\n\t\t\tvar sCity = \"\";\n\t\t\tvar sState = \"\";\n\t\t\tvar sZipCode = \"\";\n\t\t\tvar homeTypeID = 0;\n\t\t\tvar addrID = 0;\n\t\t\tfor (var i=0; i 0) {\n\t\t\t\t\tif (addrResults.data[0].RESULTREASON == \"Update successful.\") {\n\t\t\t\t\t\treturn addrResults.data; }\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar sResultReason = addrResults.data[0].RESULTREASON;\n\t\t\t\t\t\tif (sResultReason.indexOf(\"AddrID=\")> 0) {\n\t\t\t\t\t\t\tvar idx = sResultReason.indexOf(\"AddrID=\");\n\t\t\t\t\t\t\tsRawDataString = \"\";\n\t\t\t\t\t\t\taddrID = sResultReason.slice(idx+7);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t//Get AddrTypes:\n\t\t\t\t\t\t\tvar params1 = {\n\t\t\t\t\t\t\t\tmethod: \"AddrLoadTypes\",\n\t\t\t\t\t\t\t\tsDataSource: sDataSource\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\treturn $http.post(proJsCFC, params1)\n\t\t\t\t\t\t\t.then(function (addrTypes) {\n\t\t\t\t\t\t\t\tvar arrTypes = addrTypes.data;\n\t\t\t\t\t\t\t\tfor (var i=0; i 0) { \n\t\t\t\t\t\t\t\t\tsRawDataString = \"WebApps_Pro || saveAddrUse || \" +\n\t\t\t\t\t\t\t\t\t\tString(loginService.user.USERID) + \" || I || EntityID==\" +\n\t\t\t\t\t\t\t\t\t\tiEntityID + \" || AddrID==\" + addrID + \" || AddrTypeID==\" +\n\t\t\t\t\t\t\t\t\t\thomeTypeID + \" || PrimaryAddr==\";\n\t\t\t\t\t\t\t\t\tif (primAddr == null ||\n\t\t\t\t\t\t\t\t\t\t(primAddr != null && primAddr.ADDRTYPEID == homeTypeID)) { \n\t\t\t\t\t\t\t\t\t\tsRawDataString += \"1\";\n\t\t\t\t\t\t\t\t\t} else { sRawDataString += \"0\"; }\n\t\t\t\t\t\t\t\t\tsRawDataString += \" || StartDate==\" + sDbToday + \n\t\t\t\t\t\t\t\t\t\t\" || Mailing==1 || Shipping==0 || Physical==0 ^^ \";\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t\t/* Primary Address is the HOME Address, but User selected a different\n\t\t\t\t\t\t\t\t\tHome Address than what is set as Primary, so update BOTH: */\n\t\t\t\t\t\t\t\telse if (primAddr != null && primAddr.ADDRTYPEID == homeTypeID &&\n\t\t\t\t\t\t\t\t\tprimAddr.ADDRID != selHmAddr.ADDRID) {\n\t\t\t\t\t\t\t\t\tsRawDataString = \"WebApps_Pro || saveAddrUse || \" +\n\t\t\t\t\t\t\t\t\t\tString(loginService.user.USERID) + \" || U || SaveKey==\" +\n\t\t\t\t\t\t\t\t\t\tselHmAddr.SAVEKEY + \" || EntityID==\" + iEntityID + \n\t\t\t\t\t\t\t\t\t\t\" || AddrID==\" + selHmAddr.ADDRID + \" || PrimaryAddr==1 ^^ \" +\n\t\t\t\t\t\t\t\t\t\t\"U || SaveKey==\" + primAddr.SAVEKEY + \" || EntityID==\" +\n\t\t\t\t\t\t\t\t\t\tiEntityID + \" || AddrID==\" + primAddr.ADDRID + \n\t\t\t\t\t\t\t\t\t\t\" || PrimaryAddr==0 ^^ \";\n\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tvar params2 = {\n\t\t\t\t\t\t\t\t\tmethod: \"AddrSaveEntityUse\",\n\t\t\t\t\t\t\t\t\tsDataSource: sDataSource,\n\t\t\t\t\t\t\t\t\tsRawDataString: sRawDataString\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\treturn $http.post(proJsCFC, params2)\n\t\t\t\t\t\t\t\t.then(function (entUse) {\n\t\t\t\t\t\t\t\t\treturn entUse.data;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\t\n\t\t\t\t\t\t}\t\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction updateAddrEntityUse(iEntityID, selHmAddr, primAddr) {\n\t\t/* Primary Address set to HOME, but User selected a different\n\t\t\texisting Address as HOME, so update BOTH: */\n\t\t\tif (sDataSource == \"\") { setDataSource(); }\n\t\t\tvar sRawDataString = \"WebApps_Pro || saveAddrUse || \" +\n\t\t\t\tString(loginService.user.USERID) + \" || U || SaveKey==\" + \n\t\t\t\tselHmAddr.SAVEKEY + \" || EntityID==\" + iEntityID + \n\t\t\t\t\" || AddrID==\" + selHmAddr.ADDRID + \" || PrimaryAddr==1 ^^ \" +\n\t\t\t\t\"U || SaveKey==\" + primAddr.SAVEKEY + \" || EntityID==\" +\n\t\t\t\tiEntityID + \" || AddrID==\" + primAddr.ADDRID + \" || PrimaryAddr==0 ^^ \";\n\t\t\t\n\t\t\tvar params = {\n\t\t\t\tmethod: \"AddrSaveEntityUse\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tsRawDataString: sRawDataString\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, params)\n\t\t\t.then(function (saveResults) {\n\t\t\t\treturn saveResults.data;\n\t\t\t});\n\t\t}\n\t\t\n\t\t\n//PHONES:\n\t/* Loads all current Phones. Validates if a Primary Exists.\n\t\tCompares newly entered Phones against existing, and updates\n\t\tif new phone entered for same PHONETYPE, else adds the new\n\t\tphone. If PHONETYPE==Primary, Updates existing and new, if\n\t\tNEW Primary added. */\n\t\tfunction saveNewPhones(iEntityID, arrData) {\n$log.info(\"ContactInfo saveNewPhones()\")\t\t\t\n\t\t\tif (sDataSource == \"\") { setDataSource(); }\n\t\t\tvar sRawDataString = \"\";\n\t\t\tvar sDbToday = datesService.todayToDbString();\n\t\t\tvar iCurPrimaryIdx = -1;\n\t\t\t\n\t\t\t//Get All Current Phones:\n\t\t\tvar params = {\n\t\t\t\tmethod: \"PhGetAll\",\n\t\t\t\tsDataSource: sDataSource,\n\t\t\t\tiEntityID: iEntityID \n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, params)\n\t\t\t.then(function (phones) {\n\t\t\t\tvar arrPhones = phones.data;\n\t\t\t\tvar dToday = new Date();\n\n\t\t\t\t//Filter for Only current phones:\n\t\t\t\tfor (var i=0; i dToday || \n\t\t\t\t\t\t(dStop != \"\" && dStop < dToday)) {\n\t\t\t\t\t\tarrPhones.splice(i, 1);\n\t\t\t\t\t\ti--;\n\t\t\t\t\t}\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t//Get Phone Types:\n\t\t\t\tvar params2 = {\n\t\t\t\t\tmethod: \"PhLoadTypes\",\n\t\t\t\t\tsDataSource: sDataSource\n\t\t\t\t};\n\t\t\t\treturn $http.post(proJsCFC, params2)\n\t\t\t\t.then(function (phTypes) {\n\t\t\t\t\tif (phTypes.data.length > 0) {\n\t\t\t\t\t\tvar arrTypes = phTypes.data;\n\t\t\t\t\t\t\n\t\t\t\t\t\t//Insert the PHONETYPEID into the arrData:\n\t\t\t\t\t\tfor (i=0; i 0) {\n\t\t\t\t\t\tfor (var j=0; j 0) {\n\t\t\t\t\t\t\t\t\t\tfor (j=0; j -1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsRawDataString += \"U || EntityID==\" + iEntityID + \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\" || Seq==\" + arrPhones[iCurPrimaryIdx].SEQ + \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\" || PrimaryPhone==0 ^^ \";\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tbreak; }\n\t\t\t\t\t\t\t\t\t\t\telse if (j == arrPhones.length-1) {\n\t\t\t\t\t\t\t\t\t\t\t\t/* This was listed as \"Primary Phone, and is not currently \n\t\t\t\t\t\t\t\t\t\t\t\t\tin the database, so INSERT as Primary, and UPDATE any\n\t\t\t\t\t\t\t\t\t\t\t\t\texisting Primary as Non-Primary: */\t\n\t\t\t\t\t\t\t\t\t\t\t\tsRawDataString += \"I || EntityID==\" + iEntityID + \n\t\t\t\t\t\t\t\t\t\t\t\t\t\" || PhoneTypeID==\" + arrData[i].typeID +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\" || PhoneNumber==\" + arrData[i].numOnly +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\" || StartDate==\" + sDbToday + \" || PrimaryPhone==1 ^^ \";\n\t\t\t\t\t\t\t\t\t\t\t\tif (iCurPrimaryIdx > -1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsRawDataString += \"U || EntityID==\" + iEntityID + \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\" || Seq==\" + arrPhones[iCurPrimaryIdx].SEQ + \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\" || PrimaryPhone==0 ^^ \";\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\t\t\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tsRawDataString += \"I || EntityID==\" + iEntityID + \n\t\t\t\t\t\t\t\t\t\t\t\" || PhoneTypeID==\" + arrData[i].typeID + \n\t\t\t\t\t\t\t\t\t\t\t\" || PhoneNumber==\" + arrData[i].numOnly +\n\t\t\t\t\t\t\t\t\t\t\t\" || StartDate==\" + sDbToday + \" || PrimaryPhone==1 ^^ \";\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"SecondaryPhone\": case \"OtherPhone\":\n\t\t\t\t\t\t\t\tif (arrData[i].data != \"\" && arrData[i].typeID != \"\") {\n\t\t\t\t\t\t\t\t\tif (arrPhones.length > 0) {\t\n\t\t\t\t\t\t\t\t\t\tfor (j=0; j 0) { \n\t\t\t\t\t\t\t\t\t\tfor (j=0; j -1) {\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsRawDataString += \"U || EntityID==\" + iEntityID +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\" || Seq==\" + arrPhones[iCurPrimaryIdx].SEQ +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\" || PrimaryPhone==0 ^^ \";\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tbreak; }\n\t\t\t\t\t\t\t\t\t\t\telse if (j == arrPhones.length-1) {\n\t\t\t\t\t\t\t\t\t\t\t\tsRawDataString += \"I || EntityID==\" + iEntityID + \n\t\t\t\t\t\t\t\t\t\t\t\t\t\" || PhoneTypeID==\" + arrData[i].typeID +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\" || PhoneNumber==\" + arrData[i].numOnly +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\" || StartDate==\" + sDbToday + \" || PrimaryPhone==\";\n\t\t\t\t\t\t\t\t\t\t\t\tif (iCurPrimaryIdx > -1) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (arrPhones[iCurPrimaryIdx].PHONETYPEID ==\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tarrData[i].typeID) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsRawDataString += \"1 ^^ U || EntityID==\" + iEntityID + \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\" || Seq==\" + arrPhones[iCurPrimaryIdx].SEQ + \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\" || PrimaryPhone==0 ^^ \"; }\n\t\t\t\t\t\t\t\t\t\t\t\t\telse { sRawDataString += \"0 ^^ \"; }\n\t\t\t\t\t\t\t\t\t\t\t\t} else { sRawDataString += \"1 ^^ \"; }\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\t\t\t\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tsRawDataString += \"I || EntityID==\" + iEntityID + \n\t\t\t\t\t\t\t\t\t\t\t\" || PhoneTypeID==\" + arrData[i].typeID + \n\t\t\t\t\t\t\t\t\t\t\t\" || PhoneNumber==\" + arrData[i].numOnly +\n\t\t\t\t\t\t\t\t\t\t\t\" || StartDate==\" + sDbToday + \" || PrimaryPhone==1 ^^ \";\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (sRawDataString != \"\") { \n\t\t\t\t\t\tvar sSaveString = \"WebApps_Pro || Appl_Phones || \" + loginService.user.USERID +\n\t\t\t\t\t\t\t\" || \" + sRawDataString;\n\t\t\t\t\t\tvar params3 = {\n\t\t\t\t\t\t\tmethod: \"PhSave\",\n\t\t\t\t\t\t\tsDataSource: sDataSource,\n\t\t\t\t\t\t\tsRawDataString: sSaveString \n\t\t\t\t\t\t};\n\t\t\t\t\t\treturn $http.post(proJsCFC, params3)\n\t\t\t\t\t\t.then(function (results) { //$log.info(\"SavePhResult:\",results)\n\t\t\t\t\t\t\treturn results.data;\n\t\t\t\t\t\t});\n\t\t\t\t\t} else { return \"No New Phones\"; }\n\t\t\t\t});\t\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction splitOffPhoneType(savedPh) {\n\t\t\tif (sDataSource == \"\") { setDataSource(); }\n\t\t\t//Get Phone Types:\n\t\t\tvar params2 = {\n\t\t\t\tmethod: \"PhLoadTypes\",\n\t\t\t\tsDataSource: sDataSource\n\t\t\t};\n\t\t\treturn $http.post(proJsCFC, params2)\n\t\t\t.then(function (phTypes) {\n\t\t\t\tif (phTypes.data.length > 0) {\n\t\t\t\t\tvar arrTypes = phTypes.data;\n\n\t\t\t\t\tvar idx = savedPh.indexOf(\"[\");\n\t\t\t\t\tvar ph = savedPh.substring(0, idx-1);\n\t\t\t\t\tvar type = savedPh.substring(idx+1,(savedPh.length)-1);\n\t\t\t\t\tfor (var i=0; i dToday || \n\t\t\t\t\t\t(dStop != \"\" && dStop < dToday)) {\n\t\t\t\t\t\tarrEmails.splice(i, 1);\n\t\t\t\t\t\ti--;\n\t\t\t\t\t}\t\n\t\t\t\t}\n\n\t\t\t\t//Get Email Types:\n\t\t\t\tvar params1 = {\n\t\t\t\t\tmethod: \"EmLoadTypes\",\n\t\t\t\t\tsDataSource: sDataSource\n\t\t\t\t};\n\t\t\t\treturn $http.post(proJsCFC, params1)\n\t\t\t\t.then(function(emTypes) {\n\t\t\t\t\tvar arrTypes = emTypes.data;\n\t\t\t\t\t\n\t\t\t\t\t//Insert the EMAILTYPEID into the arrData:\n\t\t\t\t\tfor (i=0; i 0) {\n\t\t\t\t\t\tfor (var j=0; j 0) {\n\t\t\t\t\t\t\t\t\tfor (j=0; j-1) {\n\t\t\t\tstrPW = \"false'\";\n\t\t\t} else if (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('proRefs')\n\t\t.factory('confirmEmailChg', confirmEmailChg);\n\t\t\n\tconfirmEmailChg.$inject = ['$window','emailValidator'];\n\t\n\tfunction confirmEmailChg($window, emailValidator) {\n\t\tvar factory = {\n\t\t\tconfirmEmail: confirmEmail\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\tif (emailValidator.isValid(sNewEmail) == true) {\n\t\t\t\t\t\tstrEmail = \"true\"; }\n\t\t\t\t\telse {\n\t\t\t\t\t\tstrEmail = \"false\";\n\t\t\t\t\t\t$window.alert(\"The email entered is not a valid email address. \" +\n\t\t\t\t\t\t\t\"Please enter a valid email address.\");\n\t\t\t\t\t}\t\n\t\t\t\t} else {\n\t\t\t\t\tstrEmail = \"noMatch\";\n\t\t\t\t\t$window.alert(\"The 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} else { \n\t\t\t\tstrEmail = \"false\"; \n\t\t\t}\n\t\t\treturn strEmail;\n\t\t}\n\t\t\t\t\t\t\n\t}\n\n})();\n(function () {\n\t'use strict';\n\n\tangular\n\t\t.module('proRefs')\n\t\t.factory('backgroundService', backgroundService);\n\n\tbackgroundService.$inject = ['$rootScope','dataService','modalService','errorEmailNotification',\n\t\t'loginService','formatterService','datesService','webSessionStorage','$log'];\n\n\tfunction backgroundService($rootScope, dataService, modalService, errorEmailNotification, \n\t\tloginService, formatterService, datesService, webSessionStorage, $log) {\n\t\tvar arrFormData = [];\n\t\tvar arrFormDefs = [];\n\t\tvar BranchAcct = 842628;\n\t\tvar iBkgrdStepID = 0;\n\t\tvar sAddr1 = \"\";\n\t\tvar sCity = \"\";\n\t\tvar sDatabaseID = \"\";\n\t\tvar sDOB = \"\";\n\t\tvar sFirstName = \"\";\n\t\tvar sFormerName = \"\";\n\t\tvar sGender = \"\";\n\t\tvar sLastName = \"\";\n\t\tvar sMiddleName = \"\";\n\t\tvar sOrderDetail = \"\";\n\t\tvar sPassword = \"\";\n\t\tvar sSSN = \"\";\n\t\tvar sState = \"\";\n\t\tvar sSuffixName = \"\";\n\t\tvar sTestPMM = \"YES\"; //Testing=\"YES\", Live=\"NO\"\n\t\tvar sUsername = \"\";\n\t\tvar sZipcode = \"\";\n\t\t\n\t\tvar service = {\n\t\t\tfirstAdvantage: firstAdvantage,\n\t\t\tprotectMyMinistry: protectMyMinistry\n\t\t};\n\t\t\n\t\treturn service;\n\n\n\t/* Currently MO ONLY: */\n\t\tfunction firstAdvantage(iStepID, onSuccess, onError) {\n\t\t\tiBkgrdStepID = iStepID;\n\t\t\t$rootScope.sCurForm = \"FA Background Service\";\n$log.info($rootScope.sCurForm);\n\t\t\t\n\t\t\tdataService.proGetMain($rootScope.sProID)\n\t\t\t.then(function(dataMain) {\n\t\t\t\tif (dataMain.length > 0) {\n\t\t\t\t\t//6/28/18 v...139 ~ changed to use CHURCHID to ID if BranchAcct... \n\t\t\t\t\t// since [B],[L] not available to view. lds\n\t\t\t\t\tif (dataMain[0].CHURCHID != \"\") {\n\t\t\t\t\t\tvar proChurchID = dataMain[0].CHURCHID;\n\t\t\t\t\t\t\n\t\t\t\t\t\tdataService.proGetChOrgSettings(proChurchID)\n\t\t\t\t\t\t.then(function(dataChOrg) { \n\t\t\t\t\t\t\tif (dataChOrg[0].SCREENACCOUNT != \"\") {\n\t\t\t\t\t\t\t\tBranchAcct = dataChOrg[0].SCREENACCOUNT;\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}\n\n\t\t\t\tdataService.libGetASetting(\"LNPassword\")\n\t\t\t\t.then(function(pwd) {\n\t\t\t\t\tif (pwd.length > 0) {\n\t\t\t\t\t\tsPassword = pwd[0].SETTINGVALUE;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmodalService.resultAlert(\"sm\", pwd[0]);\n\t\t\t\t\t\tvar sEmailContent = \n\t\t\t\t\t\t\terrorEmailNotification.error4(\"backgroundService/libGetFAPassword()\");\n\t\t\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tdataService.proGetForm(\"Application\")\n\t\t\t\t\t.then(function(defs) {\n\t\t\t\t\t\tif (defs.length > 0) {\n\t\t\t\t\t\t\tarrFormDefs = defs;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar sEmailContent = \n\t\t\t\t\t\t\t\terrorEmailNotification.error4(\"backgroundService/proGetForm()\");\n\t\t\t\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tdataService.proGetFormData(\"Application\", $rootScope.sProID)\n\t\t\t\t\t\t.then(function(formData) {\n\t\t\t\t\t\t\tif (formData.length > 0) {\n\t\t\t\t\t\t\t\tarrFormData = formData;\n\t\t\t\t\t\t\t\tpopulateVariables();\n\t\t\t\t\t\t\t\tcreateMO_OrderDetail(); $log.info(\"OrderDetail:\",sOrderDetail);\n\t\t\t\t\t\t\t\tsaveScreenSend(sOrderDetail);\n\n\t\t\t\t\t\t\t\tdataService.proSubmitFirstAdvantage(sOrderDetail)\n\t\t\t\t\t\t\t\t.then(function(result) {\n\t\t\t\t\t\t\t\t\tvar str = result.data; \n\t\t\t\t\t\t\t\t\tsaveFAResults(result.data);\n\t\t\t\t\t\t\t\t\tvar idx = str.indexOf(\"OrderStatus\");\n\t\t\t\t\t\t\t\t\tif (idx > -1) {\n\t\t\t\t\t\t\t\t\t\tvar status = str.substr(idx+12, 10);\n\t\t\t\t\t\t\t\t\t\tvar sOrderStatus = \"\";\n\t\t\t\t\t\t\t\t\t\tswitch(status) {\n\t\t\t\t\t\t\t\t\t\t\tcase \"InProgress\": sOrderStatus = \"In Progress\"; break;\n\t\t\t\t\t\t\t\t\t\t\tdefault: \n\t\t\t\t\t\t\t\t\t\t\t\tsOrderStatus = status; \n\t\t\t\t\t\t\t\t\t\t\t\tvar sEmailContent0 = errorEmailNotification.error4(\"webApps_Pro/backgroundService\");\n\t\t\t\t\t\t\t\t\t\t\t\tsEmailContent0 += \"

Function: proSubmitFirstAdvantage()
sOrderStatus is not yet listed in case for: \" + sOrderStatus + \n\t\t\t\t\t\t\t\t\t\t\t\t\". Please add!\";\n\t\t\t\t\t\t\t\t\t\t\t\tdataService.emailSendCustom(\"lori@greatspirit.com\", \"lori@greatspirit.com\", \"lori@greatspirit.com\", \"Coding Needed\", sEmailContent0);\n\t\t\t\t\t\t\t\t\t\t\tbreak; \n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tif (sOrderStatus != \"\") {\n\t\t\t\t\t\t\t\t\t\t\tmodalService.okAlert(\"Success\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"Information for your Background Screen has \" +\n\t\t\t\t\t\t\t\t\t\t\t\t\"been successfully submitted.\\n\\n\" +\n\t\t\t\t\t\t\t\t\t\t\t\t\"The current Status is \\\"\" + sOrderStatus + \"\\\"\");\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tvar arrReturn = [{status:status, error:sError,\n\t\t\t\t\t\t\t\t\t\t\tresult:str}];\n\t\t\t\t\t\t\t\t\t\tonSuccess(arrReturn);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tstatus = \"Error\";\n\t\t\t\t\t\t\t\t\t\tvar sError = \"\";\n\t\t\t\t\t\t\t\t\t\tidx = str.indexOf(\"\");\n\t\t\t\t\t\t\t\t\t\tif (idx > -1) {\n\t\t\t\t\t\t\t\t\t\t\tvar errorCode = str.substr(idx+11, 3);\n\t\t\t\t\t\t\t\t\t\t\tswitch (errorCode) {\n\t\t\t\t\t\t\t\t\t\t\t\tcase 210: sError = \"User is Locked\"; break;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tif (sError != \"\") { \n\t\t\t\t\t\t\t\t\t\t\t\tmodalService.okAlert(\"Error\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tsError); }\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tstatus = sError;\n\t\t\t\t\t\t\t\t\t\tvar sEmailContent = errorEmailNotification.error4(\"WebApps_Pro/backgroundService\");\n\t\t\t\t\t\t\t\t\t\tsEmailContent += \"

Function: proSubmitFirstAdvantage()\" +\n\t\t\t\t\t\t\t\t\t\t\t\"
There was an error submitting the background screen.\" +\n\t\t\t\t\t\t\t\t\t\t\t\"
ErrorCode = \" + errorCode + \"
Error Description: \" +\n\t\t\t\t\t\t\t\t\t\t\tsError + \"
FirstAdvantage return: \" + str;\n\t\t\t\t\t\t\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t\t\t\t\t\t\t\tarrReturn = [{status:status, error:sError, result:str}];\n\t\t\t\t\t\t\t\t\t\tonError(arrReturn);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tmodalService.resultAlert(\"sm\", formData[0]);\n\t\t\t\t\t\t\t\tvar sEmailContent = \n\t\t\t\t\t\t\t\t\terrorEmailNotification.error4(\"backgroundService/proGetForm()\");\n\t\t\t\t\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t});\t\n\t\t\t\t\t});\t\t\t\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\t\n\t\t//NWTX, MC\n\t\tfunction protectMyMinistry(iStepID, iCertTypeID, onSuccess, onError) {\n\t\t\tiBkgrdStepID = iStepID;\t\t\t\n\t\t\t$rootScope.sCurForm = \"PMM Background Service\";\n$log.info($rootScope.sCurForm);\n\t\t\t\n\t\t\tsDatabaseID = webSessionStorage.getStoredData('sDatabaseID');\n\t\t\tswitch (sDatabaseID) {\n\t\t\t\tcase \"MC\": case \"NWTX\":\n\t\t\t\t\tsTestPMM = \"NO\";\n\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tsTestPMM = \"YES\";\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\t\n\t\t\tdataService.libGetASetting(\"ProPMMPassword\")\n\t\t\t.then(function(pwd) {\n\t\t\t\tif (pwd.length > 0) {\n\t\t\t\t\tsPassword = pwd[0].SETTINGVALUE;\n\t\t\t\t} else {\n\t\t\t\t\tmodalService.resultAlert(\"sm\", pwd[0]);\n\t\t\t\t\tvar sEmailContent = errorEmailNotification.error4(\"backgroundService/libGetAPassword\");\n\t\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tdataService.libGetASetting(\"ProPMMUsername\")\n\t\t\t\t.then(function(un) {\n\t\t\t\t\tif (un.length > 0) {\n\t\t\t\t\t\tsUsername = un[0].SETTINGVALUE;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t//NWTX using Application5. If others, need to add Switch case for Conference\n\t\t\t\t\tif (Number(iCertTypeID) == 4) { var sApp = \"Application\"; }\n\t\t\t\t\telse if (Number(iCertTypeID) == 5) { sApp = \"Application5\"; }\n\t\t\t\t\t\n\t\t\t\t\tdataService.proGetForm(sApp)\n\t\t\t\t\t.then(function(defs) {\n\t\t\t\t\t\tif (defs.length > 0) {\n\t\t\t\t\t\t\tarrFormDefs = defs;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar sEmailContent = \n\t\t\t\t\t\t\t\terrorEmailNotification.error4(\"backgroundService/proGetForm\");\n\t\t\t\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdataService.proGetFormData(sApp, $rootScope.sProID)\n\t\t\t\t\t\t.then(function(data) { //$log.info(\"data:\",data)\n\t\t\t\t\t\t\tif (data.length > 0) {\n\t\t\t\t\t\t\t\tarrFormData = data;\n\t\t\t\t\t\t\t\tpopulateVariables();\n\t\t\t\t\t\t\t\tswitch (sDatabaseID) {\n\t\t\t\t\t\t\t\t\tcase \"NWTX\": case \"NWTX-DEV\":\n\t\t\t\t\t\t\t\t\t\tcreateNWTX_OrderDetail();\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase \"MC\": case \"MC-DEV\":\n\t\t\t\t\t\t\t\t\t\tcreateMC_OrderDetail();\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t} //$log.info(\"sOrderDetail\",sOrderDetail)\n\t\t\t\t\t\t\t\tsaveScreenSend(sOrderDetail);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tdataService.proSendPMM(sOrderDetail)\n\t\t\t\t\t\t\t\t.then(function(sendReturn) { $log.info(\"proSendPMM:\",sendReturn)\n\t\t\t\t\t\t\t\t\tvar resultPMM = sendReturn.data;\n\t\t\t\t\t\t\t\t\tvar status = \"\";\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tdataService.proSaveResultsPMM(iBkgrdStepID, resultPMM)\n\t\t\t\t\t\t\t\t\t.then(function(result) { $log.info(\"proSaveResultsPMM:\",result);\n\t\t\t\t\t\t\t\t\t\tif (result[0].RESULTCODE != 'Success') {\n\t\t\t\t\t\t\t\t\t\t\tvar sEmailContent = \n\t\t\t\t\t\t\t\t\t\t\t\terrorEmailNotification.error4(\"backgroundService/\" +\n\t\t\t\t\t\t\t\t\t\t\t\t\"savePMMResults\");\n\t\t\t\t\t\t\t\t\t\t\tsEmailContent += \"
Error: Failure saving initial PMM \" +\n\t\t\t\t\t\t\t\t\t\t\t\t\"Result.

\" +\n\t\t\t\t\t\t\t\t\t\t\t\t\"ProSendPMM Returned: \" + resultPMM.toString() + \"

\" +\n\t\t\t\t\t\t\t\t\t\t\t\t\"ProSaveResultsPMM Returned: \" + result[0].RESULTREASON;\n\t\t\t\t\t\t\t\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tvar idx = resultPMM.indexOf(\"Status\");\n\t\t\t\t\t\t\t\t\t\tif (idx > -1) {\n\t\t\t\t\t\t\t\t\t\t\tstatus = resultPMM.substr(idx+7, 7);\n\t\t\t\t\t\t\t\t\t\t\tif (status == \"SUCCESS\") {\n\t\t\t\t\t\t\t\t\t\t\t\tonSuccess();\n\t\t\t\t\t\t\t\t\t\t\t} else { \n\t\t\t\t\t\t\t\t\t\t\t\tvar sEmailContent0 = \n\t\t\t\t\t\t\t\t\t\t\t\t\terrorEmailNotification.error4(\"webApps_Pro/\" +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"backgroundService\");\n\t\t\t\t\t\t\t\t\t\t\t\tsEmailContent0 += \"

Function: proSendPMM()
\" +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"returned 'Status' is not yet listed in case \" + \n\t\t\t\t\t\t\t\t\t\t\t\t\t\"for: \" + status + \". Please add!\";\n\t\t\t\t\t\t\t\t\t\t\t\tdataService.emailSendCustom(\"lori@greatspirit.com\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"lori@greatspirit.com\", \"lori@greatspirit.com\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"Coding Needed\", sEmailContent0);\n\t\t\t\t\t\t\t\t\t\t\t\tonError();\n\t\t\t\t\t\t\t\t\t\t\t} \n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tsEmailContent = \n\t\t\t\t\t\t\t\t\t\t\t\terrorEmailNotification.error4(\"WebApps_Pro/\" +\n\t\t\t\t\t\t\t\t\t\t\t\t\"backgroundService\");\n\t\t\t\t\t\t\t\t\t\t\tsEmailContent += \"

Function: proSendPMM()\" +\n\t\t\t\t\t\t\t\t\t\t\t\t\"

There was an error submitting the background \" +\n\t\t\t\t\t\t\t\t\t\t\t\t\"screen.
Error Description: \" + resultPMM;\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t\t\t\t\t\t\t\t\tonError();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\t\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t} else {\t\n\t\t\t\t\t\t\t\tvar sEmailContent = \n\t\t\t\t\t\t\t\t\terrorEmailNotification.error4(\"backgroundService/proGetFormData\");\n\t\t\t\t\t\t\t\tsEmailContent += \"

Send in:
sApp: \" + sApp + \"
sProID: \" +\n\t\t\t\t\t\t\t\t\t$rootScope.sProID + \"
iCertTypeID: \" + String(iCertTypeID);\t\n\t\t\t\t\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t});\t\n\t\t\t\t\t});\t\t\n\t\t\t\t});\n\t\t\t});\t\t\n\t\t}\n\t\t\n\n//Internally called functions:\n\t\t\n\t\tfunction populateVariables() {\n\t\t\tif (arrFormData.length > 0) {\n\t\t\t\tfor (var i=0; i\" +\n\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\"2112\" +\n\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\"\"+$rootScope.sProID+\"\" +\n\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\"XChange\" +\n\t\t\t\t\t\t\t\t\"\" + BranchAcct + \"\" +\n\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\"\" +\tsFirstName + \"\" +\n\t\t\t\t\t\t\t\t\"\" + sMiddleName + \"\" +\n\t\t\t\t\t\t\t\t\"\" + sLastName + \"\" +\n\t\t\t\t\t\t\t\t\"\" + sFormerName + \"\" +\n\t\t\t\t\t\t\t\t\"\" + sSuffixName + \"\" +\n\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\"US\" +\n\t\t\t\t\t\t\t\t\"\" + sZipcode + \"\" +\n\t\t\t\t\t\t\t\t\"\" + sState + \"\" +\n\t\t\t\t\t\t\t\t\"\" + sCity + \"\" +\n\t\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\t\"\" + sAddr1 + \"\" +\n\t\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\"Y\" +\n\t\t\t\t\t\t\t\t\"\" + sSSN + \"\" +\n\t\t\t\t\t\t\t\t\"\" + sDOB + \"\" +\n\t\t\t\t\t\t\t\t\"\" + sGender + \"\" +\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\"\";\n\t\t}\n\t\t\n\t\tfunction createNWTX_OrderDetail() {\n\t\t\tsOrderDetail = \n\t\t\t\t\"\" +\n\t\t\t\t\t\"SEND ORDER\" +\n\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\"\" + \tsUsername + \"\" +\n\t\t\t\t\t\t\"\" + sPassword + \"\" +\n\t\t\t\t\t\"\" +\n\t\t\t\t\t\"\" + sTestPMM + \"\" +\n\t\t\t\t\t\"https://services.priorityresearch.com/webservice/AddToWebService.cfm\" +\n\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\"\" + $rootScope.sProID + \"\" +\n\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\"\" +\tsFirstName + \"\" +\n\t\t\t\t\t\t\t\"\" + sMiddleName + \"\" +\n\t\t\t\t\t\t\t\"\" + sLastName + \"\" +\n\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\"\" + sDOB + \"\" +\n\t\t\t\t\t\t\t\"\" + sSSN + \"\" +\n\t\t\t\t\t\t\t\"\" + sGender + \"\" +\n\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\"Volunteer\" +\n\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\"\" + sAddr1 + \"\" +\n\t\t\t\t\t\t\t\t\"\" + sCity + \"\" +\n\t\t\t\t\t\t\t\t\"\" + sState + \"\" +\n\t\t\t\t\t\t\t\t\"\" + sZipcode + \"\" +\n\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\t\"\" + sFormerName + \"\" +\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\t\"Basic\" +\n\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\"\" +\n\t\t\t\t\"\";\n\t\t}\n\t\t\n\t\tfunction createMC_OrderDetail() {\n\t\t\tsOrderDetail = \n\t\t\t\t\"\" +\n\t\t\t\t\t\"SEND ORDER\" +\n\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\"\" + \tsUsername + \"\" +\n\t\t\t\t\t\t\"\" + sPassword + \"\" +\n\t\t\t\t\t\"\" +\n\t\t\t\t\t\"\" + sTestPMM + \"\" +\n\t\t\t\t\t\"https://services.priorityresearch.com/webservice/AddToWebService.cfm\" +\n\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\"\" + $rootScope.sProID + \"\" +\n\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\"\" +\tsFirstName + \"\" +\n\t\t\t\t\t\t\t\"\" + sMiddleName + \"\" +\n\t\t\t\t\t\t\t\"\" + sLastName + \"\" +\n\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\"\" + sDOB + \"\" +\n\t\t\t\t\t\t\t\"\" + sSSN + \"\" +\n\t\t\t\t\t\t\t\"\" + sGender + \"\" +\n\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\"Volunteer\" +\n\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\"\" + sAddr1 + \"\" +\n\t\t\t\t\t\t\t\t\"\" + sCity + \"\" +\n\t\t\t\t\t\t\t\t\"\" + sState + \"\" +\n\t\t\t\t\t\t\t\t\"\" + sZipcode + \"\" +\n\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\t\"\" +\n\t\t\t\t\t\t\t\t\t\"\" + sFormerName + \"\" +\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\t\"1 county auto\" +\n\t\t\t\t\t\"\" +\n\t\t\t\t\"\";\n\t\t}\n\t\t\n\t\tfunction saveFAResults(data) {\n\t\t\t//Saves FA Return to ProDocs, and adds ProProcess record:\n\t\t\tdataService.proSaveResultsFA(iBkgrdStepID, data)\n\t\t\t.then(function(result) {\n\t\t\t\tif (result[0].RESULTS != 'Success') {\n\t\t\t\t\tvar sEmailContent = errorEmailNotification.error4(\"backgroundService/saveFAResults\");\n\t\t\t\t\tsEmailContent += \"Failure saving initial FA Result. Error: \" + result;\n\t\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t\n\t\tfunction saveScreenSend(sOrderDetail) {\n\t\t\tvar sSendString = \"WebApps_Pro || ScreenSend || \" + loginService.user.USERID + \n\t\t\t\t\" || I || ProID==\" + $rootScope.sProID + \" || SendString==\" + sOrderDetail + \" ^^ \";\n\n\t\t\tdataService.proSaveScreenSend(sSendString)\n\t\t\t.then(function(sendSave) { $log.info(\"proSaveScreenSend:\",sendSave)\n\t\t\t\tif (sendSave[0].RESULTCODE != \"Success\") {\n\t\t\t\t\tvar sEmailContent = errorEmailNotification.error4(\"backgroundService/\" +\n\t\t\t\t\t\t\"proSaveScreenSend\");\n\t\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t\t}\n\t\t\t});\n\t\t}\t\t\n\t}\n\t\n})();\n(function () {\n\t'use strict';\n\n\tangular\n\t\t.module('proRefs')\n\t\t.factory('arrayFactory', arrayFactory);\n\n\tarrayFactory.$inject = ['datesService'];\n\n\tfunction arrayFactory(datesService) {\n\t\tvar sDbToday = datesService.todayToDbString();\n\n\t\tvar factory = {\n\t\t\tgetCurrentOnly: getCurrentOnly\n\t\t};\n\t\treturn factory;\n\n\t\tfunction getCurrentOnly(arr) {\n\t\t\tfor (var i=0; i sDbToday ||\n\t\t\t\t\t(arr[i].STOPDATE != \"\" &&\n\t\t\t\t\tarr[i].STOPDATE < sDbToday)) {\n\t\t\t\t\tarr.splice(i, 1);\n\t\t\t\t\ti--;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn arr;\n\t\t}\n\n\t}\n})();\n(function () {\n 'use strict';\n \n\tangular\n .module('proRefs')\n .factory('appValidationService', appValidationService);\n\n\tappValidationService.$inject = ['loginService','dataService'];\t\n\n function appValidationService(loginService, dataService) {\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 = \"MyCerts\";\n\t\t\tif (apps.length > 0) {\n\t\t\t\tfor (var i=0; i 0) {\n\t\t\t\t\t\t\t\tfor (var j=0; j Replaces ProtectReferences and is part of the MCWebApps family.\n\tIt has been updated to work with MCWebApps giving pastors access to ContactInfo\n\tIt is ONLY working for MO at present... and only those with \"ProRef\" permission in \n\t[UserChurch] connected to a ChurchID.\n\tContactInfo ONLY loads [Person] records tied to the UserChurch.ChurchID for the ProRef record.\n\n\tloginServices:\n\t\tloginService.user = { \n\t\t\tUSEREMAIL,\t\t\t\t==> 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\tfirstName\t\t\t\t==> stepsCtrl\n\t\t\tlastName\t\t\t\t==> stepsCtrl\n\t\t\tloggedIn\n\t\t\tUserChurchFNs\t\t\t==> populated with USERGETCHURCHFUNCTIONS return for\n\t\t\t\t\t\t\t\t\t\tProRefs, etc. permissions\n\t\t\tCHURCHID\t\t\t\tNot in use... commented out in loginServices\n\t\t\tCHURCHNAME\t\t\t\tNot in use... commented out in loginServices\n\t\t};\n\t\nGLOBALS:\n\n\tsessionStorage:\t\t\n\t\tsDataSource = \twebSessionStorage.getStoredData('sDataSource');\n\t\tsDatabaseID\t=\twebSessionStorage.getStoredData('sDatabaseID');\n\n\t$rootScope:\t\n\t\t$rootScope.Applicant ==> refCtrl for Error message\n\t\t$rootScope.bPasswordExpired\t==> chgPWCtrl to prevent leaving chgPWCtrl until \n\t\t\tpassword updated.\n\t\t$rootScope.sProID\t//myCerts ==> accessed from stepsCtrl; applCtrl; lcPolicyCtrl;\n\t\t$rootScope.sCurForm\t//added on each form for use in HelpDesk form identification\t\n\t\t\nTODO:\n\tAppName: ProtectRefs (new MCWebApps version of ProtectReferences)\n\tPATH: cd Applications/ColdFusion9/wwwroot/Burt/Falcon/Web_TestSite/proRefs\n\t\n\tChange DEV EMAILS to go to \"testing@greatspirit.com\";\n\t\n\tLIVE:\n\t\t- index.module\n\t\t\t* TESTING text - comment out.\n\t\t- index.constants\n\t\t\t* Change paths to LIVE MissionConnect site from Web_TestSite\n\t\t\t* update version#\n\t\t- dataService\n\t\t\t* Test/change over ALL testCFC references to LIVE Protect_JS.cfc or WebApps.cfc\n\t\t\t* Error Emails to go to errors@GSS not lori@GSS\t\t\n\t\t\t\n\t\t- Contact eThink to change path to MCWebApps/Protect...\t\n\t\t- ProFormDefs - Last Def in Training \"C-2\" should be \"Score\" instead.\n*/\t\nangular\n\t.module('proRefs')\n\t.filter('certTypeDesc', certTypeDesc);\n\t\t\ncertTypeDesc.$inject = ['webSessionStorage'];\t\t\n\t\t\nfunction certTypeDesc(webSessionStorage) {\n\tvar sDatabaseID = webSessionStorage.getStoredData('sDatabaseID');\n\tvar desc = \"\";\n\t\t\n\treturn function (CERTTYPEID) {\n\t\tswitch (sDatabaseID) {\n\t\t\tcase \"MC\": case \"MC-DEV\":\n\t\t\t\tswitch (CERTTYPEID) {\n\t\t\t\t\tcase 1:\n\t\t\t\t\t\tdesc = \"Safe Sanctuaries\";\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 4:\n\t\t\t\t\t\tdesc = \"S S Online Process\";\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\tbreak;\n\t\t\tcase \"MO\": case \"MO-DEV\": case \"VID\":\n\t\t\t\tswitch (CERTTYPEID) {\n\t\t\t\t\tcase 1:\n\t\t\t\t\t\tdesc = \"Safe Sanctuaries Conf\";\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 3:\n\t\t\t\t\t\tdesc = \"Safe Sanctuaries Church\";\n\t\t\t\t\tbreak;\t\n\t\t\t\t\tcase 4:\n\t\t\t\t\t\tdesc = \"S S Online Process\";\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 5:\n\t\t\t\t\t\tdesc = \"LCA\";\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\tbreak;\n\t\t\tcase \"NWTX\": case \"NWTX-DEV\":\n\t\t\t\tswitch (CERTTYPEID) {\n\t\t\t\t\tcase 1:\n\t\t\t\t\t\tdesc = \"BCC CP Approved\";\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 4:\n\t\t\t\t\t\tdesc = \"BCC Online Process\";\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 5:\n\t\t\t\t\t\tdesc = \"Volunteers In Mission\";\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\treturn desc;\n\t}\t\n}\nangular\n .module('proRefs')\n .controller('TrainingController', TrainingController);\n\nTrainingController.$inject = ['$rootScope','dataService','$stateParams','$sce','$document',\n\t'loginService','datesService','errorEmailNotification','modalService','$log'];\n\nfunction TrainingController($rootScope, dataService, $stateParams, $sce, $document, \n\tloginService, datesService, errorEmailNotification, modalService, $log) {\n var vm = this; //vmTr\n \n vm.arrData = [];\n vm.arrDataFields = [];\n vm.arrDefOpts = [];\n vm.arrDefs = [];\n vm.bBack = false;\n vm.bQuestion = false;\t//turns on/off \"Next\" button, not visible until Question answered\n vm.bCorrect = false;\t//turns on/off \"That is Correct!\" response to Answer\n vm.bIncorrect = false;\t//turns on/off the \"Incorrect\" response text & button\n vm.bGoToScore = false;\t//when true, all Chapters/Questions complete, but data found missing\n\t\t\t\t\t\t\t//so return to single question to complete answer, then display full score\n vm.header = \"\";\n vm.iCurChapter = 0;\n vm.sCurPage = \"C-1\";\n vm.iLastChapter = 0;\n vm.iStepSaveKey = $stateParams.objStep.SAVEKEY;\n vm.sChapter = \"\";\n vm.sContactInfo = \"\";\n vm.sectionHdr = \"\";\n vm.subheader = \"\";\n vm.videoPath = \"\";\n vm.bVideoPlay = false;\n\n\t//Scoring:\n\tvm.Score = 0;\n\tvm.Qs = 0;\n\tvm.Correct = 0;\n\tvm.Tries2 = 0;\n\tvm.Tries3 = 0;\n\tvm.Tries4 = 0;\n\tvm.Tries5 = 0;\n \n//INITIALIZE:\n\t$rootScope.sCurForm = \"Training\";\n$log.info($rootScope.sCurForm);\t\n\t\n\tdataService.libGetASetting(\"ProContactInfo\")\n\t.then(function(result) {\n\t\tif (result.length > 0) {\n\t\t\tvm.sContactInfo = $sce.trustAsHtml(result[0].SETTINGVALUE);\n\t\t}\n\t});\n\t\n\tif ($stateParams.objStep.STEPPROGRESS != \"\") {\n\t\tvar progress = $stateParams.objStep.STEPPROGRESS;\n\t\tif (Number(progress.substr(0,2)) > 0) {\n\t\t\tvm.iCurChapter = Number(progress.substr(0,2)) + 1;\n\t\t}\n\t}\t\n\t\n\t//Used from here only to determine starting point if \n\t//questions in a chapter already completed...\n\tdataService.proGetFormData(\"Training\")\n\t.then(function(data) {\n\t\tif (data.length > 0) {\n\t\t\tvm.arrData = data;\n\t\t}\n\t\t\n\t\tdataService.proLoadDefOptions(\"Training\")\n\t\t.then(function(defOpts) {\n\t\t\tvm.arrDefOpts = defOpts;\n\t\t\t\n\t\t\tdataService.proGetForm(\"Training\")\n\t\t\t.then(function(defs) {\n\t\t\t\tvm.arrDefs = defs;\n\t\t\t\tvm.iLastChapter = vm.arrDefs[vm.arrDefs.length-1].GROUPSEQ;\n\t\t\t\t\n\t\t\t\tcreateForm();\n\t\t\t\t\n\t\t\t});\n\t\t});\n\t});\n\t\n/*\tTraining Schema:\n\tDefs ordered by GroupSeq/ItemSeq\n\tGROUPSEQ: \t0=Introduction, > 0= Chapter#\n\tGROUPNAME:\tChapter Header\n\tITEMNAME:\n\t\t\"C-1\" to \"C-x\": CONTENT pages, can be several C-x defs for a single display page.\n\t\t\"Q-1\" to \"Q-x\": QUESTIONS. Can be multiple Q-x defs on a single display page.\n\t\tEvery Question \"Q-#\" Def must be followed respectively by:\n\t\t\t\"A-#\" and \"F-#\": Answer & Failed/Incorrect Answer explanation & tally.\n\t\t\"A-#\" is a Definition contained in ProFormDefs.\n\t\t\"A-#|#\" is a unique identifier of \"A-#|Chapter\" used in ProDefOptions for answer options.\n\t\tThere is MUST BE ONLY ONE A-# Def, and ONE F-# Def!\n\tTIP:\tFor ItemName = \"A-#\": contains Correct Answer\n\t\t\tFor ControlType = Video: contains video HREF Path\n\tWhen a Chapter is Completed, ProProcess step is updated, and user no longer has access to \n\t\tthose pages.\t\t\n*/\t\n\t\n\tfunction createForm() {\n\t\tvar bPageFound = false;\n\t\t\n\t\tfor (var i=0; i 0) {\n\t\t\t\t\t\t\tfor (d=0; d 0) {\n\t\t\t\t\t\t\t\tvar sProgress = String(vm.iCurChapter) + \" of \" + \n\t\t\t\t\t\t\t\t\tString(vm.iLastChapter) + \" chapters completed\";\n\t\t\t\t\t\t\t\tupdateTrainingStep(sProgress);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvm.iCurChapter++; \n\t\t\t\t\t\t\t\tvm.sCurPage = \"C-1\";\n\t\t\t\t\t\t\t\ti = -1;\n\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\tbreak; }\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (vm.iCurChapter == vm.iLastChapter) {\n\t\t\t\t\t\tvm.sCurPage = \"Score\";\n\t\t\t\t\t\tloadResults();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsProgress = String(vm.iCurChapter) + \" of \" + \n\t\t\t\t\t\t\tString(vm.iLastChapter) + \" chapters completed\";\n\t\t\t\t\t\tupdateTrainingStep(sProgress);\n\t\t\t\t\t}\t\n\t\t\t\t}\t\n\t\t\t}\n\t\t}\n\t}\t\n\t\n\tfunction updateTrainingStep(sProgress) {\n\t\tvar sRawDataString = \"WebApps_Pro || Training || \" + loginService.user.USERID +\n\t\t\t\" || U || SaveKey==\" + vm.iStepSaveKey + \" || ProID==\" + \n\t\t\t$rootScope.sProID + \" || StepID==\" + $stateParams.objStep.STEPID; \n\t\tif (sProgress == \"8 of 8 chapters completed\") { \n\t\t\tsRawDataString += \" || StepDate==\" + datesService.todayToDbString() + \n\t\t\t\t\" || StepLink==1 || StepProgress==Completed\"; }\n\t\telse { sRawDataString += \" || StepProgress==\" + sProgress; }\n\t\tsRawDataString += \" ^^ \";\n\t\t\n\t\tdataService.proSaveProcess(sRawDataString)\n\t\t.then(function(result) {\n\t\t\tif (result[0].RESULTCODE == \"Success\") {\n\t\t\t\tif (vm.sCurPage !=\"Score\") {\n\t\t\t\t\tvm.iCurChapter++;\n\t\t\t\t\tvm.sCurPage = \"C-1\";\n\t\t\t\t\tcreateForm();\n\t\t\t\t}\t\n\t\t\t} else {\n\t\t\t\tvar sEmailContent = errorEmailNotification.error4(\"trainingCtrl/updateTrainingStep\");\n\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t}\n\t\t});\n\t}\t\t\n\n\tfunction saveData() {\n\t\tfor (var i=0; i 1) {\n\t\t\t\t\tvar tries = vm.arrDataFields[i].tries;\n\t\t\t\t\tif (vm.arrDataFields[i].maxTries < tries) { tries = vm.arrDataFields[i].maxTries; }\n\t\t\t\t\tsRawDataString += \"I || ProID==\" + $rootScope.sProID + \" || ItemID==\" + \n\t\t\t\t\t\tvm.arrDataFields[i+1].id + \" || ItemData==\" + tries + \" ^^ \";\n\t\t\t\t}\n\t\t\tbreak; }\n\t\t}\n\t\t\n\t\tdataService.proSaveFormData(sRawDataString)\n\t\t.then(function (results) {\n\t\t\tif (results.length > 0) {\n\t\t\t\tvm.bQuestion = false;\n\t\t\t}\n\t\t});\n\t}\n\t\n\tfunction loadResults() {\n\t\t//load updated data:\n\t\tdataService.proGetFormData(\"Training\")\n\t\t.then(function(data) {\n\t\t\tif (data.length > 0) {\n\t\t\t\tvm.arrData = data;\n\t\t\t\tcalculateScore();\n\t\t\t}\n\t\t});\n\t}\n\t\n\tfunction calculateScore() {\n\t\tvar bReset = false;\n\t\tfor (var i=0; i 0) {\n\t\t\t\tvm.iCertTypeID = data[0].CERTTYPEID;\n\t\t\t\tfor (var i=0; iYouth under 19 years of age are not required \" +\n\t\t\t\t\t\t\t\t\t\"to complete this step.
If you were required to provide your \" +\n\t\t\t\t\t\t\t\t\t\"Social Security Number, you may return here on your 19th birthday \" +\n\t\t\t\t\t\t\t\t\t\"to authorize the background screen for continued certification.\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"Covenant\":\n\t\t\t\t\t\t\tvm.covenantStepID = data[i].STEPID;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"LCPolicy\":\n\t\t\t\t\t\t\tvm.LCPolicyStepID = data[i].STEPID;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"Training\":\n\t\t\t\t\t\t\tvm.trainStepID = data[i].STEPID;\n\t\t\t\t\t\t\tvm.trainSaveKey = data[i].SAVEKEY;\n\t\t\t\t\t\t\tvm.trainProgress = data[i].STEPPROGRESS;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"NWTXTraining\":\n\t\t\t\t\t\t\tvm.trainStepID = data[i].STEPID;\n\t\t\t\t\t\t\tif (data[i].STEPPROGRESS == \"Training Request Sent\") {\n\t\t\t\t\t\t\t\tdata[i].hideBtn = \"true\";\n\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\tbreak; \n\t\t\t\t\t\tcase \"PastorRef\": case \"ClergyProfRef\": case \"DSRef\": \t//MO PR Refs\n\t\t\t\t\t\tcase \"GeneralRef\": case \"ClergyGenRef\":\t\t\t\t\t//MO Name Refs\n\t\t\t\t\t\tcase \"ProfRef1\": case \"ProfRef2\": case \"PersonalRef\":\t//NWTX Name Refs\n\t\t\t\t\t\tcase \"ProfRef\": //case \"GeneralRef\"\t\t\t\t\t\t//MC Name Refs\n\t\t\t\t\t\t\tif (data[i].CREATEDON != \"\") {\n\t\t\t\t\t\t\t\tvar sSent = datesService.jsDateStrToCalendarStr(data[i].CREATEDON);\n\t\t\t\t\t\t\t\tdata[i].sCreatedOn = sSent;\n\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif (data[i].STEPDESCPUB != \"\") {\n\t\t\t\t\t\tdata[i].HtmlStepDesc = $sce.trustAsHtml(data[i].STEPDESCPUB);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t/* Set Step button text: */\t\n\t\t\t\t\tif (data[i].STEPPROGRESS == \"\") {\n\t\t\t\t\t\tdata[i].btnLabel = \"Begin Step\";\n\t\t\t\t\t} else if (data[i].sCreatedOn != undefined) {\n\t\t\t\t\t\tdata[i].btnLabel = \"Resend\";\n\t\t\t\t\t\tdata[i].toolTip = \"Resend this Reference to the same person as a Reminder, \" +\n\t\t\t\t\t\t\t\"or to a New Person, or new Email address, if needed.\";\n\t\t\t\t\t} else { data[i].btnLabel = \"Continue\"; }\n\t\t\t\t\t\n\t\t\t\t/* Check PreRequisites for hiding Step button: */\t\n\t\t\t\t\t//var preReq = data[i].STEPPREREQPUB; \t//ex. \"+1*2*\"\n\t\t\t\t\tif (angular.isDefined(data[i].STEPPREREQPUB)==true) {\n\t\t\t\t\t\tvar subPreReq = data[i].STEPPREREQPUB.slice(1);\t\t//ex. 1\n\t\t\t\t\t\tvar arrPreReq = subPreReq.split(\"*\");\n\t\t\t\t\t\tif (arrPreReq.length > 0) {\n\t\t\t\t\t\t\tfor (var j=0; j 0) {\n\t\t\t\t\t\t\t\t\t\tif (rcvVal[0].VALRESULT == \"Success\" && rcvVal[0].RCVID > 0) {\n\t\t\t\t\t\t\t\t\t\t\tdataService.proPayProcessUpdate(rcvVal[0].RCVID)\n\t\t\t\t\t\t\t\t\t\t\t.then(function(payResult) {\n\t\t\t\t\t\t\t\t\t\t\t\tif (payResult[0].RESULTCODE == 'Success') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t$state.reload();\n\t\t\t\t\t\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tbreak; }\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t}\t// else //certType=5, LCA\n\t\t\t\tbreak;\n\t\t\t\t//case \"MC\": case \"MC-DEV\":\n\t\t\t\t\t//initialized in MCWebApps, directly from Login page.\n\t\t\t\t//break;\n\t\t\t\tcase \"NWTX\": case \"NWTX-DEV\":\n\t\t\t\t\tif (vm.iCertTypeID == 4) {\n\t\t\t\t\t\tif (data[0].STEPEXPIRES != null) { //used ONLY on Application... so import\n\t\t\t\t\t\t\tvm.sAppExpire = datesService.jsDateStrToCalendarStr(data[0].STEPEXPIRES);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvm.sAppExpire = \"Noon, on the Wednesday before the first Camp you wish to attend.\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvm.sAppExpire = \"30 days prior to the VIM trip date.\";\n\t\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t}\t\n\t\n\t\n\t//DEV databases get Payment Step automatically checked off\n\t//MO & MC Only. [NWTX on Custom payment form]\n\tfunction savePaymentProcessStep() {\n\t\tvar sRawProProcess = \"WebProtect || stepsCtrl || \" + loginService.user.USERID;\n\t\t\tif (vm.paymentSaveKey == \"\") { sRawProProcess += \" || I\"; }\n\t\t\telse { sRawProProcess += \" || U || SaveKey==\" + vm.paymentSaveKey; }\n\t\tsRawProProcess += \" || ProID==\" + $rootScope.sProID + \" || StepID==\" +\n\t\t\tvm.paymentStepID + \" || StepDate==\";\n\t\t\t\n\t\tif (vm.sDatabaseID.slice(-3) == \"DEV\" && $rootScope.AUTOPAY == true) {\n\t\t\tsRawProProcess += datesService.todayToDbString() + \" || StepProgress==Completed ^^ \";\n\t\t} else {\n\t\t\tsRawProProcess += \" || StepProgress==Started, Update Pending ^^ \";\n\t\t}\t\n\n\t\tdataService.proSaveProcess(sRawProProcess)\n\t\t.then(function(retProcess) {\n\t\t\tif (retProcess[0].RESULTCODE == \"Success\") {\n\t\t\t\tvar reason = retProcess[0].RESULTREASON;\n\t\t\t\tvar j = reason.indexOf(\"SaveKey\");\n\t\t\t\tif (j > -1) {\n\t\t\t\t\tvm.paymentSaveKey = reason.slice(j+8);\n\t\t\t\t} \n\t\t\t\telse if (vm.sDatabaseID.slice(-3)==\"DEV\" && $rootScope.AUTOPAY == true) { \n\t\t\t\t\t$state.reload(); \n\t\t\t\t}\n\t\t\t}\n\t\t});\t\t\n\t}\n\t\n\t/* v.166 added iCourseID for Moodle_CourseStatus call. */\n\tfunction updateTrainingStep(sProgress) {\n\t\tvar bSendError = false;\t\t\n\t\tif (angular.isDefined(loginService.user.USERID) == true) {\n\t\t\tvar sRawDataString = \"WebProtect || stepsCtrl_183 || \" + loginService.user.USERID;\n\t\t} else {\n\t\t\tsRawDataString = \"WebProtect || saveTraining_183 || -77\";\n\t\t\tbSendError = true;\n\t\t}\n\t\t\n\t\tif (vm.trainSaveKey == 0) { sRawDataString += \" || I\"; }\n\t\telse { sRawDataString += \" || U || SaveKey==\" + vm.trainSaveKey; }\n\t\tsRawDataString += \" || ProID==\" + $rootScope.sProID + \" || StepID==\" + vm.trainStepID; \n\t\tif (sProgress == \"8 of 8 chapters completed\") { \n\t\t\tsRawDataString += \" || StepDate==\" + datesService.todayToDbString() + \n\t\t\t\t\" || StepLink== || StepProgress==Completed\"; }\n\t\telse { sRawDataString += \" || StepLink==1 || StepProgress==\" + sProgress; }\n\t\tswitch (vm.sDatabaseID) {\n\t\t\tcase \"MO\": case \"MO-DEV\":\n\t\t\t\tif (angular.isDefined(moodleService.moodle.id)==true) {\n\t\t\t\t\tsRawDataString += \" || StepRefID==\" + moodleService.moodle.id + \" ^^ \";\n\t\t\t\t} else { sRawDataString += \" ^^ \";}\t\n\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tsRawDataString += \" || StepRefID== ^^ \";\n\t\t\tbreak;\t\n\t\t}\n// $log.info('updateTrainingStep:', sRawDataString);\t\n\t\tdataService.proSaveProcess(sRawDataString)\n\t\t.then(function(result) { \n// $log.info(\"updateTrainingStep_result:\",result)\n\t\t\tif (result[0].RESULTCODE != \"Success\") {\n\t\t\t\tvar prevRecord = \"version ...183
\" +\n\t\t\t\t\t\"trainSaveKey: \"+ vm.trainSaveKey + \"
sRawDataString: \" +\n\t\t\t\t\tsRawDataString;\n\t\t\t\tvar sEmailContent = errorEmailNotification.error4(\"stepsCtrl/updateTrainingStep\");\n\t\t\t\tsEmailContent += \"

\" + result[0].RESULTREASON + \"
\"+ prevRecord;\n\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t} else if (bSendError) {\n\t\t\t\tprevRecord = \"version.146
\" +\n\t\t\t\t\t\"trainSaveKey: \"+ vm.trainSaveKey + \"
sRawDataString: \" +\n\t\t\t\t\tsRawDataString;\n\t\t\t\tsEmailContent = errorEmailNotification.error4(\"stepsCtrl/updateTrainingStep\");\n\t\t\t\tsEmailContent += \"

\" + result[0].RESULTREASON + \"
\"+ prevRecord;\n\t\t\t\tsEmailContent += \"

\" + \"version 146 debug... thinking user returnCode is timed out \" +\n\t\t\t\t\t\"or some other way of losing USERID, thus errors on save. I replaced with -77 USERID \" +\n\t\t\t\t\t\"and send user to login again. Check time required to transfer to eThink, as seems to \" +\n\t\t\t\t\t\"be related.\";\n\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t}\t \n\t\t\t\n\t\t\tif (vm.trainSaveKey == 0) {\n\t\t\t\tvar idx = result[0].RESULTREASON.indexOf(\"SaveKey=\");\n\t\t\t\tvm.selStep.SAVEKEY = result[0].RESULTREASON.slice(idx+8);\n\t\t\t\tvm.trainSaveKey = result[0].RESULTREASON.slice(idx+8);\n\t\t\t\tvm.trainProgress = \"0 of 8 chapters completed\";\n\t\t\t//both MO & MC: (add switch if others in future...)\n\t\t\t\tvm.trainStepID = 404;\n\t\t\t}\n\n\t\t\tswitch (vm.sDatabaseID) {\n\t\t\t\tcase \"MC\": case \"MC-DEV\":\n\t\t\t\t\t$state.go('train', {objStep: vm.selStep});\n\t\t\t\tbreak;\n\t\t\t\tcase \"MO\": case \"MO-DEV\":\n\t\t\t\t\t$state.reload();\t\n\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t}\t\n\t\t\t\t\t\t\n\tfunction updateTrainingStepNWTX() {\n\t// Update the Step for NWTX:\n\t\tfor (var i=0; i
\" + result[0].RESULTREASON;\n\t\t\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t\t\t} else { $state.reload(); }\t\n\t\t\t\t});\n\t\t\t}\n\t\t}\t\n\t}\n\t\n\t\n/* Broadcasts: */\n\n\t$scope.$on('closeModal', function() {\n\t\tvm.modalInstance.close();\n\t});\n\n\t\n/* Called from view: */\t\t\n\t\n\tvm.goToStep = function(sStepLinkFlag) {\n\t\ttimeOutService.resetTimer(30);\n\t\tfor (var i=0; i
Error in saving the \" +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Payment ProProcess record. User unable to go to \" +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"VancoPay until ProProcess record saved successfully. \"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"

Error: \" + retProcess[0].RESULTREASON;\n\t\t\t\t\t\t\t\t\t\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t});\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak; }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"MC\": case \"MC-DEV\":\n\t\t\t\t\t\t\tif (vm.paymentProgress != \"\") {\n\t\t\t\t\t\t\t\tdataService.proGetProcessRecordPub($rootScope.sProID)\n\t\t\t\t\t\t\t\t.then(function(data) {\n\t\t\t\t\t\t\t\t\tfor (var i=0; i\" +\n\t\t\t\t\t\t\"Did vm.arrSteps populate? ... length:\" + String(vm.arrSteps.length) + \"
\" +\n\t\t\t\t\t\t\"vm.selStep.STEPID = \" + vm.selStep.STEPID + \"
\" +\n\t\t\t\t\t\t\"vm.selStep.SAVEKEY = \" + vm.selStep.SAVEKEY + \"
\" +\n\t\t\t\t\t\t\"vm.selStep.CREATEDON = \" + vm.selStep.CREATEDON + \"
\" +\n\t\t\t\t\t\t\"vm.selStep.LASTUPDATED = \" + vm.selStep.LASTUPDATED + \"
\" +\n\t\t\t\t\t\t\"vm.selStep.STEPPROGRESS = \" + vm.selStep.STEPPROGRESS);\n\t\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif (vm.paymentProgress == \"Started, Update Pending\") {\n\t\t\t\t\t//Call again to ensure not already paid thru PayPal... v.136\n\t\t\t\t\tdataService.proGetProcessRecordPub($rootScope.sProID)\n\t\t\t\t\t.then(function(data) {\n\t\t\t\t\t\tfor (var i=0; i\");\n\t\t\t\t\t\t\t\t\t\t\tvar iStop = str.indexOf(\"\");\n\t\t\t\t\t\t\t\t\t\t\tvar sURL = str.substring(iStart+7, iStop);\n\t\t\t\t\t\t\t\t\t\t\tvar SSCourseURL = \n\t\t\t\t\t\t\t\t\t\t\t\t\"&wantsurl=https://mosafesanctuaries.org/course/view.php?id=25\";\n\t\t\t\t\t\t\t\t\t\t\tvar URLRequest = sURL + SSCourseURL;\n\t\t\t\t\t\t\t\t\t\t\t$window.location.replace(URLRequest);\n// $log.info('(611)Send to eThink:', URLRequest);\n\t\t\t\t\t\t\t\t\t\t}\t\t\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t} else {\n// $log.info(\"(617)User Enrolled, so Call Moodle_UpdateUser\");\n// $log.info(\"Moodle_UpdateUser_Call:\", new Date());\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tmoodleService.updateUser(sMoodleReturnCode, mProID)\n\t\t\t\t\t\t\t\t\t.then(function(mUpdate) {\n// $log.info(\"(618)UpdateUser_results:\", mUpdate);\n// $log.info(\"Moodle_UpdateUser_results:\", new Date());\n\t\t\t\t\t\t\t\t\t\tvar str = mUpdate.toString();\n\t\t\t\t\t\t\t\t\t\tif (str == \"Error UpdateUser\" || str == \"Error AuthUser\") {\n\t\t\t\t\t\t\t\t\t\t\tvar sEmailContent = \n\t\t\t\t\t\t\t\t\t\t\t\terrorEmailNotification.errorMoodle(mUpdate,\"updateUser\");\n\t\t\t\t\t\t\t\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tvar iStart = str.indexOf(\"\");\n\t\t\t\t\t\t\t\t\t\t\tvar iStop = str.indexOf(\"\");\n\t\t\t\t\t\t\t\t\t\t\tvar sURL = str.substring(iStart+7, iStop);\n\t\t\t\t\t\t\t\t\t\t\tvar SSCourseURL = \n\t\t\t\t\t\t\t\t\t\t\t\t\"&wantsurl=https://mosafesanctuaries.org/course/view.php?\"; \n\t\t\t\t\t\t\t\t\t\t\tvar sCreated = \n\t\t\t\t\t\t\t\t\t\t\t\tdatesService.jsDateStrToDbDateStr(vm.selStep.CREATEDON);\n\t\t\t\t\t\t\t\t\t\t\tif (sCreated < \"2018-12-07\") {\n\t\t\t\t\t\t\t\t\t\t\t\tSSCourseURL += \"id=2\"; }\n\t\t\t\t\t\t\t\t\t\t\telse { SSCourseURL += \"id=25\"; }\n\t\t\t\t\t\t\t\t\t\t\tvar URLRequest = sURL + SSCourseURL;\n// $log.info(\"(639)Already enrolled:\",URLRequest);\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t$window.location.replace(URLRequest);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\tbreak;\n\t\t\tcase \"NWTXTraining\":\n\t\t\t\tvar sDataSource = webSessionStorage.getStoredData('sDataSource');\n\t\t\t\t// Need to grab Paid Camp for sending \"Ready For Training\" Email to each site\n\t\t\t\tvar str = String(vm.trainStepID);\n\t\t\t\tvar sReplyTo = \"mchelp@greatspirit.com\";\n\t\t\t\tvar sFrom = \"MissionConnect Help Desk <\" + sReplyTo + \">\";\n\t\t\t\tvar sEmailAddr = \"testing@greatspirit.com\";\n\t\t\t\tvar sProgramType = \"\"; //$log.info(\"certType:\",str.substr(0,1))\n\t\t\t\tif (str.substr(0,1) == \"4\") { \n\t\t\t\t\tdataService.proGetFormData(\"CampPayment\")\n\t\t\t\t\t.then(function(payData) { //$log.info(\"proGetFormData:\",payData);\n\t\t\t\t\t\tif (payData.length > 0) {\n\t\t\t\t\t\t\tdataService.suGetEvent(payData[0].ITEMDATA)\n\t\t\t\t\t\t\t.then(function(event) {\n\t\t\t\t\t\t\t\tvar camp = event[0].EVENTCODE;\n\t\t\t\t\t\t\t\tif (sDataSource == \"FalconNwtx\") {\n\t\t\t\t\t\t\t\t\tswitch (camp.substr(0,2)) {\n\t\t\t\t\t\t\t\t\t\tcase \"B_\": sEmailAddr = butmanCampEmail; break;\n\t\t\t\t\t\t\t\t\t\tcase \"C_\": sEmailAddr = cetaCampEmail; break;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t\t\tsProgramType = \"BCC Online Process\";\n//$log.info(sEmailAddr,sFrom,sReplyTo,sProgramType)\n\t\t\t\t\t\t\t\tdataService.emailSend_NWTXTraining(sEmailAddr,sFrom,sReplyTo,sProgramType)\n\t\t\t\t\t\t\t\t.then(function(result) {\n\t\t\t\t\t\t\t\t\tif (result == 'Completed') {\n\t\t\t\t\t\t\t\t\t\tupdateTrainingStepNWTX();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\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\tif (sDataSource == \"FalconNwtx\") {\n\t\t\t\t\t\tsEmailAddr = vimEmail;\n\t\t\t\t\t}\t\n\t\t\t\t\tsProgramType = \"Volunteers in Mission\";\n\t\t\t\t\tdataService.emailSend_NWTXTraining(sEmailAddr,sFrom,sReplyTo,sProgramType)\n\t\t\t\t\t.then(function(result) {\n\t\t\t\t\t\tif (result == 'Completed') {\n\t\t\t\t\t\t\tupdateTrainingStepNWTX();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\tbreak;\n\t\t\tcase \"PastorRef\": case \"ClergyProfRef\": case \"DSRef\": \t//MO PR Refs\n\t\t\tcase \"GeneralRef\": case \"ClergyGenRef\":\t\t\t\t\t//MO Name Refs\n\t\t\tcase \"ProfRef1\": case \"ProfRef2\": case \"PersonalRef\":\t//NWTX Name Refs\n\t\t\tcase \"ProfRef\": //case \"GeneralRef\"\t\t\t\t\t\t//MC Name Refs\n// $log.info('refRequest:', sStepLinkFlag, 'vm.selStep:', vm.selStep);\n\t\t\t\t$state.go('refRequest', {\n\t\t\t\t\tsStepLinkFlag: sStepLinkFlag,\n\t\t\t\t\trefSaveKey: vm.selStep.SAVEKEY,\n\t\t\t\t\trefStepID: vm.selStep.STEPID\n\t\t\t\t}, {reload:true});\n\t\t\tbreak;\n\t\t}\n\t};\n\t\n\tvm.logOff = function() {\n\t\t$rootScope.loggedIn = false;\n\t\tloginService.logout();\n\t\tloginService.user = {};\n\t\t$rootScope.myApps = [];\n\t\t$state.go('login', {reload:true});\n\t};\n\t\n\tvm.openStepInst = function() {\n\t\t$state.go('stepInst', {\n\t\t\tiCertTypeID: vm.iCertTypeID\n\t\t}, {reload:true});\t\n\t};\n\t\n\tvm.refreshPage = function() {\n $state.reload();\n };\n \n vm.resendRef = function(refStep) {\n\t timeOutService.resetTimer(30);\n\t\t$rootScope.refResend = refStep;\n\t\tvm.modalInstance = $uibModal.open({\n\t\t\tanimation: true,\n\t\t\ttemplateUrl: 'app/modals/resendRef.html',\n\t\t\tcontroller: 'ResendRefController',\n\t\t\tbindToController: true,\n\t\t\tcontrollerAs: 'vmRRef',\n\t\t\tkeyboard: true,\n\t\t\tbackdrop: 'static'\n\t\t});\n\t};\n \n}\t\n\nangular\t\t\n\t.module('proRefs')\n\t.controller('StepInstController', StepInstController);\n\nStepInstController.$inject = ['dataService','$sce','$state','$stateParams','webSessionStorage'];\n\t\nfunction StepInstController(dataService, $sce, $state, $stateParams, webSessionStorage) {\n\tvar vm = this; \t//vmSI\n\t\n\tvm.back = { image: \"assets/images/left_32.png\" };\n\tvm.sInstructions = \"\";\n\tvm.sDatabaseID = webSessionStorage.getStoredData('sDatabaseID');\t\n\t\n/* Initialize: */\n\tdataService.fxGet(\"WebProtect\",\"Steps\",\"X\")\n\t.then(function(data) {\n\t\tif (data.length > 0) {\n\t\t\tswitch ($stateParams.iCertTypeID) { \n\t\t\t\tcase 4:\n\t\t\t\t\tfor (var i=0; i 0) { \n\t\t\t\t\t\t//stored when clicking CertRecord\n\t\t\t\t\t\tvm.iChurchID = loginService.user.CHURCHID;\n\t\t\t\t\t\tgetPastors(vm.iChurchID); }\n\t\t\t\t\telse { getPastors(0); }\n\t\t\t\tbreak;\n\t\t\t}\n\t\tbreak;\n\t}\n\t\n\tfunction getDSs() {\n\t\tdataService.proGetDSs()\n\t\t.then(function(DSs) {$log.info(\"DS:\",DSs)\n\t\t\tfor (var i=0; i 0) {\n\t\t\t\tvm.arrPastors = pastors;\n\t\t\t\tfor (var i=0; i 0) {\n\t\t\t\tvm.arrPastors = clergy;\n\t\t\t\tfor (var i=0; i 0) {\n\t\t\tvm.sReplyTo = result[0].SETTINGVALUE;\n\t\t} else { \n\t\t\tdataService.emailSendError(\"This Conference is missing the ProConfEmail setting.\"); \n\t\t}\t\n\t});\n\t\n\tdataService.libGetASetting(\"RcvEmailFromProtect\")\n\t.then(function(result) {\n\t\tif (result.length > 0) {\n\t\t\tvm.sFrom = result[0].SETTINGVALUE;\n\t\t} else { dataService.emailSendError(\"This Conference is missing the RcvEmailFromProtect setting.\")}\t\n\t});\n\t\n\tdataService.libGetASetting(\"ProContactInfo\")\n\t.then(function(result) {\n\t\tif (result.length > 0) {\n\t\t\tvm.sContactInfo = result[0].SETTINGVALUE;\n\t\t}\n\t});\n\t\n\tdataService.fxGet(\"Protect\", \"Initialization\",\"EmailText\")\n\t.then(function(result) {\n\t\tif (result.length > 0) {\n\t\t\tvm.sInitFormText = result[0].TEXT;\n\t\t}\t\n\t});\n\t\n\tfunction getPastorUserAccount(iEntityID) {\n\t\tdataService.usersGetOneFromEntityID(iEntityID)\n\t\t.then(function(resultPR) {\n\t\t\tif (resultPR == \"No User Account Found\") {\n\t\t\t\tvm.pastorUserName = \"\";\n\t\t\t\t\t\n\t\t\t\tdataService.emGetFirstSeq(vm.selPastor.ENTITYID)\n\t\t\t\t.then(function(emails) {\n\t\t\t\t\tif (emails.length > 0) {\n\t\t\t\t\t\tif (emails.length == 1 && emails[0].STOPDATE != \"\") {\n\t\t\t\t\t\t\tvm.sRefEmail = emails[0].EMAIL;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar curEmails = arrayFactory.getCurrentOnly(emails)\n\t\t\t\t\t\t\tif (curEmails.length > 0) {\n\t\t\t\t\t\t\t\tvm.sRefEmail = curEmails[0].EMAIL;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmodalService.okAlert(\"Invalid Entry\",\n\t\t\t\t\t\t\t\"Please select a different clergy person, as there is no \" +\n\t\t\t\t\t\t\t\"email associated with the person you selected.\");\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else { \n\t\t\t\tvm.pastorUserName = resultPR[0].USERNAME;\n\t\t\t\tvm.sRefEmail = resultPR[0].USEREMAIL;\n\t\t\t\tif (validatorService.emailIsValid(vm.sRefEmail) == true) {\n\t\t\t\t\tvm.bReadyToSend = \"true\";\t\n\t\t\t\t}\t\n\t\t\t}\n\t\t});\n\t}\n\t\n\tfunction getReturnCode(iMin, sParams) {\n\t\tdataService.secGetReturnCode(iMin, vm.sStepLinkFlag, sParams)\n\t\t.then(function(retCode) {\n\t\t\tif (retCode.length > 0) {\n\t\t\t\tvm.refReturnCode = retCode[0].RETURNCODE;\n\t\t\t\tvm.refReturnKey = retCode[0].RETURNKEY;\n\t\t\t\t\t\t\t\n\t\t\t\tdeleteOldReturnCode();\n\t\t\t}\n\t\t});\n\t}\n\t\n\tfunction deleteOldReturnCode() {\n\t\tdataService.secDeleteReturnCodeFromKey(vm.iReturnKey)\n\t\t.then(function(result) {\n\t\t\tif (result[0].RESULTS != \"Delete Succeeded\") {\n\t\t\t\tvar sEmailContent = errorEmailNotification.error4(\"resendRefCtrl/deleteOldReturnCode\");\n\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t}\n\t\t\tsaveProProcessRecord();\n\t\t})\n\t}\n\t\n\tfunction saveProProcessRecord() {\n\t\tvar sRawDataString = \"WebApps_Pro || ResendRefReq || \" + \n\t\t\tloginService.user.USERID + \" || U || SaveKey==\" + vm.saveKey +\n\t\t\t\" || ProID==\" + $rootScope.sProID + \" || StepID==\" + vm.stepID;\n\t\t\tif (vm.sStepExpires != \"\") {\n\t\t\t\tsRawDataString += \" || StepExpires==\" + vm.sStepExpires;\n\t\t\t}\n\t\t\tif (vm.sStepNote != \"\") { vm.sStepNote += \"; \"; }\n\t\t\tsRawDataString += \" || StepNote==\" + vm.sStepNote + \"Resent \" + \n\t\t\t\tdatesService.todayToCalString() +\n\t\t\t\t\" || StepLinkType==\" + vm.sStepLinkType + \" || StepLink==\" + vm.sStepLink +\n\t\t\t\t\" || StepProgress==Reference Request Sent || StepRefID==\" +\n\t\t\t\tvm.sRefEmail + \"|\" + vm.refReturnKey + \" ^^ \";\n\n\t\tdataService.proSaveProcess(sRawDataString)\n\t\t.then(function(result) {\n\t\t\tif (result[0].RESULTCODE == \"Success\") {\n\t\t\t\tsendEmail();\n\t\t\t}\n\t\t});\n\t}\n\t\n\tfunction sendEmail() {\n\t\tif (vm.sDatabaseID.slice(-3) == \"DEV\") {\n\t\t\tvm.sRefEmail = \"testing@greatspirit.com\";\n\t\t} else if (vm.sDatabaseID == \"VID\") {\n\t\t\tvm.sRefEmail = \"lyndzie@greatspirit.com\";\n\t\t}\n\t\tvm.sFrom += \" <\" + vm.sReplyTo + \">\";\n\t\tvar sProRefsURL = protectURL + \"?conf=\" + vm.sDatabaseID; //alt: webProMO if not testing MO-DEV\n\t\tvar sRefJSLink = refJSURL + \"?ReturnCode=\" + vm.refReturnCode;\n\t\tswitch (vm.sStepLinkType) {\n\t\t\tcase \"Name\":\n\t\t\t\tswitch (vm.sDatabaseID) {\n\t\t\t\t\tcase \"MC\": case \"MC-DEV\":\n\t\t\t\t\t\tdataService.emailSend_MORefLink(vm.sContactInfo, \n\t\t\t\t\t\t\tvm.sRefEmail, vm.sFrom, vm.sRefName, sRefJSLink,\n\t\t\t\t\t\t\tvm.sReplyTo, vm.sInitFormText)\n\t\t\t\t\t\t.then(function(result) {\n\t\t\t\t\t\t\tif (result == \"Completed\") {\n\t\t\t\t\t\t\t\t$rootScope.$broadcast('closeModal');\n\t\t\t\t\t\t\t\t$state.go('steps', {reload:true});\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tmodalService.okAlert(\"Error\",\n\t\t\t\t\t\t\t\t\t\"An Error occurred while sending the \" +\n\t\t\t\t\t\t\t\t\t\"Reference Request email.\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\tbreak;\t\n\t\t\t\t\tcase \"MO\": case \"MO-DEV\":\n\t\t\t\t\t\tdataService.emailSend_MORefLink(vm.sContactInfo, \n\t\t\t\t\t\t\tvm.sRefEmail, vm.sFrom, vm.sRefName, sRefJSLink,\n\t\t\t\t\t\t\tvm.sReplyTo, vm.sInitFormText)\n\t\t\t\t\t\t.then(function(result) {\n\t\t\t\t\t\t\tif (result == \"Completed\") {\n\t\t\t\t\t\t\t\t$rootScope.$broadcast('closeModal');\n\t\t\t\t\t\t\t\t$state.go('steps', {reload:true});\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tmodalService.okAlert(\"Error\",\n\t\t\t\t\t\t\t\t\t\"An Error occurred while sending the \" +\n\t\t\t\t\t\t\t\t\t\"Reference Request email.\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\tbreak;\t\n\t\t\t\t\tcase \"NWTX\": case \"NWTX-DEV\":\n\t\t\t\t\t\tdataService.emailSend_NWTXRefLink(vm.sContactInfo, \n\t\t\t\t\t\t\tvm.sRefEmail, vm.sFrom, vm.sRefName, sRefJSLink,\n\t\t\t\t\t\t\tvm.sReplyTo, vm.sInitFormText)\n\t\t\t\t\t\t.then(function(result) {\n\t\t\t\t\t\t\tif (result == \"Completed\") {\n\t\t\t\t\t\t\t\t$rootScope.$broadcast('closeModal');\n\t\t\t\t\t\t\t\t$state.go('steps', {reload:true});\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tmodalService.okAlert(\"Error\",\n\t\t\t\t\t\t\t\t\t\"An Error occurred while sending the \" +\n\t\t\t\t\t\t\t\t\t\"Reference Request email.\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\tbreak;\n\t\t\tcase \"PR\":\n\t\t\t\tif (vm.pastorUserName != \"\") {\n\t\t\t\t\tdataService.emailSend_PastorRef(vm.sContactInfo, \n\t\t\t\t\t\tvm.sRefEmail, vm.sFrom, vm.sReplyTo, vm.sRefName,\n\t\t\t\t\t\tsProRefsURL, vm.pastorUserName, sRefJSLink,\n\t\t\t\t\t\tvm.sInitFormText)\n\t\t\t\t\t.then(function(result) {\n\t\t\t\t\t\tif (result == \"Completed\") {\n\t\t\t\t\t\t\t$rootScope.$broadcast('closeModal');\n\t\t\t\t\t\t\t$state.go('steps', {reload:true});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmodalService.okAlert(\"Error\",\n\t\t\t\t\t\t\t\t\"An Error occurred while sending the \" +\n\t\t\t\t\t\t\t\t\"Reference Request email.\");\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tdataService.emailSend_MORefLink(vm.sContactInfo, \n\t\t\t\t\t\tvm.sRefEmail, vm.sFrom, vm.sRefName, sRefJSLink,\n\t\t\t\t\t\tvm.sReplyTo, vm.sInitFormText)\n\t\t\t\t\t.then(function(result) {\n\t\t\t\t\t\tif (result == \"Completed\") {\n\t\t\t\t\t\t\t$rootScope.$broadcast('closeModal');\n\t\t\t\t\t\t\t$state.go('steps', {reload:true});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmodalService.okAlert(\"Error\",\n\t\t\t\t\t\t\t\t\"An Error occurred while sending the \" +\n\t\t\t\t\t\t\t\t\"Reference Request email.\");\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t}\n \n \n/* Broadcasts: */\n\n/* Calls from View: */\n\n\tvm.cancel = function() {\n\t\t$rootScope.$broadcast('closeModal');\n\t\t$state.go('steps', {reload:true});\n\t}\n\t\n\tvm.pastors_changeHandler = function() {\n\t\tif (vm.selPastor.ENTITYID > 0) {\n\t\t\tgetPastorUserAccount(vm.selPastor.ENTITYID);\n\t\t}\n\t};\n\n\tvm.sendRequest = function() {\n\t\tif (vm.bInSendProcedure == false) { //dups prevention\n\t\t\tvm.bInSendProcedure = true;\n\t\t\tswitch (vm.sStepLinkType) {\n\t\t\t\tcase \"Name\":\n\t\t\t\t\tif (vm.sRefName == \"\" || vm.sRefName.indexOf(\" \") == -1) {\n\t\t\t\t\t\tmodalService.okAlert(\"Invalid Entry\",\n\t\t\t\t\t\t\t\"Please enter the full name of the person to whom \" +\n\t\t\t\t\t\t\t\"you are sending this Reference Request.\");\n\t\t\t\t\t} else if (validatorService.emailIsValid(vm.sRefEmail) == true) {\n\t\t\t\t\t\tvm.sStepLink = vm.sRefName;\n\t\t\t\t\t\tvar sParams = loginService.user.USERID + \"|\" + loginService.user.USERFULLNAME +\n\t\t\t\t\t\t\t\"|\" + $rootScope.sProID;\n\t\t\t\t\t\tswitch (vm.sStepLinkFlag) {\n\t\t\t\t\t\t\tcase \"ProfRef1\": case \"ProfRef2\": case \"PersonalRef\": \t//NWTX No Exp\n\t\t\t\t\t\t\tcase \"ClergyProfRef\":\t\t\t\t\t\t\t\t\t//MO No Exp (Clergy)\n\t\t\t\t\t\t\t\tgetReturnCode(525600, sParams);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tdefault: //2 weeks:\n\t\t\t\t\t\t\t\tvar dToday = new Date();\n\t\t\t\t\t\t\t\tvar dExp = new Date(dToday.getTime() + 1.2096e9);\n\t\t\t\t\t\t\t\tvm.sStepExpires = datesService.jsDateStrToCalendarStr(dExp);\n\t\t\t\t\t\t\t\tgetReturnCode(20160, sParams);\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmodalService.okAlert(\"Invalid Entry\",\n\t\t\t\t\t\t\t\"You must enter a valid email address before \" +\n\t\t\t\t\t\t\t\"this request can be sent.\");\n\t\t\t\t\t}\n\t\t\t\tbreak;\t\t\n\t\t\t\tcase \"PR\":\n\t\t\t\t\tif (vm.sStepLinkFlag == \"DSRef\") {\n\t\t\t\t\t\tvm.sRefName = \"Rev. \" + vm.selDS.FullName;\n\t\t\t\t\t\tvm.sStepLink = vm.selDS.ENTITYID;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (vm.selPastor.ENTITYID > 0) {\n\t\t\t\t\t\t\tif (vm.selPastor.CHURCHPASTORS.indexOf(\"Rev\") > -1) {\n\t\t\t\t\t\t\t\tvm.sRefName = \"Rev. \";\n\t\t\t\t\t\t\t} else { vm.sRefName = \"\"; }\n\t\t\t\t\t\t\tvm.sRefName += vm.selPastor.FIRSTNAME + \" \" + vm.selPastor.LASTNAME;\n\t\t\t\t\t\t\tvm.sStepLink = vm.selPastor.ENTITYID;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmodalService.okAlert(\"Missing Entry\", \n\t\t\t\t\t\t\t\t\"You first need to select a clergy person to \" +\n\t\t\t\t\t\t\t\t\"send this Reference Request to.\");\n\t\t\t\t\t\t}\t\t\n\t\t\t\t\t}\n\t\t\t\t\tsParams = loginService.user.USERID + \"|\" + loginService.user.USERFULLNAME +\n\t\t\t\t\t\t\"|\" + $rootScope.sProID;\n\t\t\t\t\tgetReturnCode(525600, sParams);\t\t//ALL MO Clergy don't expire.\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\t\t\t\n\t};\n\t\n}\nangular\n .module('proRefs')\n .controller('ReferralController', ReferralController);\n\nReferralController.$inject = ['$rootScope','dataService', '$state', 'validatorService', 'modalService',\n\t'referRefEmail', 'webSessionStorage', '$stateParams', 'errorEmailNotification',\n\t'loginService'];\n\nfunction ReferralController($rootScope, dataService, $state, validatorService, modalService,\n\treferRefEmail, webSessionStorage, $stateParams, errorEmailNotification, \n\tloginService) {\n \n var vm = this;\n//$stateParams:\n\t//$stateParams.Applicant;\n\t//$stateParams.ApplUserID;\n\t//$stateParams.iProRefUserID;\n\t//$stateParams.iStepSaveKey;\n\t//$stateParams.retCodeKey;\n\t//$stateParams.sProID;\n\t//$stateParams.sStepLinkFlag;\n\t\n\tvm.Applicant = $stateParams.Applicant;\t//needed in VIEW\n\tvm.back = { image: \"assets/images/left_32.png\" };\n\tvm.iChurchID = 0;\n\tvm.iNewReturnKey = 0;\n\tvm.iReferralEntID = 0;\n\tvm.otherPastors = [];\n\tvm.selPastor = {}; //APPOINTEDORSTAFF = \"Appointed\" or \"Staff\"\n\tvm.sNewReturnCode = \"\";\n\tvm.sReferralEmail = \"\";\n\tvm.sReferralName = \"\"; \n\tvm.sReferralUserName = \"\";\n\n\n//INITIALIZE:\n\t$rootScope.sCurForm = \"Reference Referral\";\n\t\n\tgetProMainForChurchID();\n\t\n\tfunction getProMainForChurchID() {\n\t\tdataService.proGetMain($stateParams.sProID)\n\t\t.then(function(data) {\n\t\t\tif (data.length > 0 && data[0].CHURCHID > 0) {\n\t\t\t\tdataService.proLoadPastors(data[0].CHURCHID)\n\t\t\t\t.then(function(data) {\n\t\t\t\t\tif (data.length > 0) {\n\t\t\t\t\t\tvm.otherPastors = data;\n\t\t\t\t\t\tvm.otherPastors.unshift({\n\t\t\t\t\t\t\tENTITYID: \"0\", \n\t\t\t\t\t\t\tCHURCHPASTORS: ''\n\t\t\t\t\t\t});\n\t\t\t\t\t\tvm.selPastor = vm.otherPastors[0];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\t\n\t\t});\n\t}\n\n\tfunction getNewReturnCode() {\n\t\tvar sParams = $stateParams.ApplUserID + \"|\" + vm.Applicant + \"|\" + $stateParams.sProID;\n\t\tdataService.secGetReturnCode($stateParams.iProRefUserID, $stateParams.sStepLinkFlag, sParams, 0)\n\t\t.then(function(data) {\n\t\t\tif (data.length > 0) {\n\t\t\t\tvm.sNewReturnCode = data[0].RETURNCODE;\n\t\t\t\tvm.iNewReturnKey = data[0].RETURNKEY;\n\t\t\t\tupdateProProcessRecord();\n\t\t\t}\n\t\t});\t\t\n\t}\n\n\tfunction updateProProcessRecord() {\n\t\t//currently ONLY MO PastorRef has \"Referral\" capabilities, otherwise add switch for sStepLinkFlag\n\t\t//StepNote== need to add Staff or \"\" for MO\n\t\tvar sRawDataString = \"ProRefs_JS || referCtrl || \" + loginService.user.USERID + \n\t\t\t\" || U || SaveKey==\" + $stateParams.iStepSaveKey + \n\t\t\t\" || StepLink==\" + vm.iReferralEntID + \" || StepRefID==\" +\n\t\t\tvm.sReferralEmail + \"|\" + vm.iNewReturnKey + \" ^^ \";\n\t\t\t\n\t\tdataService.proSaveProcess(sRawDataString)\n\t\t.then(function(data) {\n\t\t\tif (data[0].RESULTCODE == \"Success\") {\n\t\t\t\tdeleteOldReturnCode(); }\n\t\t\telse {\n\t\t\t\tvar sEmailContent = errorEmailNotification.error3(\"referCtrl/proSaveProcess\",\n\t\t\t\t\t$stateParams.iStepSaveKey);\n\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t}\n\t\t});\n\t}\n\n\tfunction deleteOldReturnCode() {\n\t\tdataService.secDeleteReturnCodeFromKey($stateParams.retCodeKey)\n\t\t.then(function(data) {\n\t\t\tif (data[0].RESULTS != \"Delete Succeeded\") {\n\t\t\t\tvar sEmailContent = errorEmailNotification.error1(\"referCtrl/deleteReturnCode\");\n\t\t\t\tdataService.emailSendError(sEmailContent)\n\t\t\t}\t\t\n\t\t\t//$stateParams.retCodeKey = vm.iNewReturnKey; //??? used?\n\t\t\tgetUserAccount();\n\t\t});\n\t}\n\t\n\tfunction getUserAccount() {\n// $log.info(\"iReferralEntID: \"+String(vm.iReferralEntID));\t\t\n\t\tdataService.getUserInfoFromEntityID(vm.iReferralEntID)\n\t\t.then(function(data) {\n// $log.info(\"dataServices.getUserAccount()\",data);\t\t\t\n\t\t\tif (data.length > 0) {\n\t\t\t\tvm.sReferralUserName = data[0].USERNAME;\n\t\t\t\tsendEmailToReferral();\n\t\t\t}\t\n\t\t});\n\t}\t\n\n\tfunction sendEmailToReferral() {\n\t\tvar sReferralEmailContent = referRefEmail.getEmailContent(vm.Applicant,\n\t\t\tvm.sReferralUserName, vm.sReferralName, vm.sNewReturnCode);\n\t\t\t\t\n\t\tif (sReferralEmailContent != \"\") {\n\t\t\tvar sDatabaseID = webSessionStorage.getStoredData(\"sDatabaseID\");\n\t\t\tvar sSubject = \"Reference Request Form\";\n\t\t\tswitch (sDatabaseID) {\n\t\t\t\tcase \"MO\":\n\t\t\t\t\tvar sReplyTo = \"SSanctuaries@moumethodist.org\";\n\t\t\t\t\tvar sFrom = \"Safe Sanctuaries Administrator <\" + sReplyTo + \">\";\n\t\t\t\tbreak;\n\t\t\t\tcase \"VID\":\n\t\t\t\t\tvm.sReferralEmail = \"lyndzie@greatspirit.com\";\n\t\t\t\t\tsReplyTo = \"mchelp@greatspirit.com\";\n\t\t\t\t\tsFrom = \"GSS Testing \";\n\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tvm.sReferralEmail = \"testing@greatspirit.com\";\n\t\t\t\t\tsReplyTo = \"mchelp@greatspirit.com\";\n\t\t\t\t\tsFrom = \"GSS Testing \";\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdataService.emailSendCustom(vm.sReferralEmail, sFrom, sReplyTo, sSubject,\n\t\t\t\tsReferralEmailContent)\n\t\t\t.then(function(data) {\n\t\t\t\tif (data == \"Completed\") {\n\t\t\t\t\tmodalService.okAlert(\"Success\",\n\t\t\t\t\t\t\"The reference for \" + vm.Applicant + \n\t\t\t\t\t\t\"
has been forwarded to \" + vm.sReferralName + \".\");\n\t\t\t\t\t$state.go('certMgmt',{reload:true});\n\t\t\t\t}\t\t\t \n\t\t\t});\n\t\t}\n\t}\n\t\n\t\n/* External calls: */\n\n\tvm.sendRefToOtherPastor = function() {\n\t\tif (vm.selPastor.ENTITYID == \"0\") {\n\t\t\tmodalService.okAlert(\"Missing Entry\", \n\t\t\t\t\"You must first make a selection from the
\" +\n\t\t\t\t\t\"pastors/staff droplist to refer this
\" +\n\t\t\t\t\t\"reference to someone else.\"); }\n\t\telse if (vm.selPastor.EMAIL == \"\") {\n\t\t\tmodalService.okAlert(\"Invalid Entry\",\n\t\t\t\t\"There is no available email connected to \\n\" +\n\t\t\t\t\t\"the person you have selected. Please contact \\n\" +\n\t\t\t\t\t\"the Safe Sanctuaries office to add an Email \\n\" +\n\t\t\t\t\t\"address for \" + vm.selPastor.FIRSTNAME + \" \" +\n\t\t\t\t\tvm.selPastor.LASTNAME + \" before proceeding.\"); }\n\t\telse if (validatorService.emailIsValid(vm.selPastor.EMAIL) == true) {\n\t\t\tvm.sReferralName = vm.selPastor.FIRSTNAME + \" \" + vm.selPastor.LASTNAME;\n\t\t\tvm.iReferralEntID = vm.selPastor.ENTITYID;\n\t\t\tvm.sReferralEmail = vm.selPastor.EMAIL;\n\t\t\tif ($stateParams.iProRefUserID > 0) {\n\t\t\t\tgetNewReturnCode(); \n\t\t\t}\n\t\t}\n\t};\n\t\n\tvm.goBackToForm = function() {\n\t\t$state.go('ref', {retCodeKey: $stateParams.retCodeKey});\n\t};\n}\nangular\n .module('proRefs')\n .controller('RefRequestController', RefRequestController);\n\nRefRequestController.$inject = ['$stateParams','dataService','$state','$rootScope','$log'];\n\nfunction RefRequestController($stateParams, dataService, $state, $rootScope, $log) {\n var vm = this;\n \n vm.arrFormText = [];\n vm.refHeader = \"\";\n vm.refSubheader = \"\";\n vm.refRequirement = \"\";\n vm.sStepLinkFlag = $stateParams.sStepLinkFlag;\n \n \n//INITIALIZATION:\n\t$rootScope.sCurForm = \"Reference Request\";\n$log.info($rootScope.sCurForm);\n// $log.info(\"$stateParams:\",$stateParams)\t\n\n\tif (vm.arrFormText.length == 0 || vm.arrFormText[0].FORM != $stateParams.sStepLinkFlag) {\n\t\tgetFormText();\n\t}\n\t\n\tfunction getFormText() {\n\t\tdataService.fxGet(\"WebAppsPro\", $stateParams.sStepLinkFlag, \"X\")\n\t\t.then(function(results) {\n\t\t\tif (results.length > 0) {\n\t\t\t\tvm.arrFormText = results;\n\t\t\t\tfor (var i=0; i 0) { \n\t\t//stored when clicking CertRecord\n\t\tvm.iChurchID = loginService.user.CHURCHID;\n\t\tgetPastors(vm.iChurchID); }\n\telse { getPastors(0); }\n\t\n\tfunction getDSs() {\n\t\tdataService.proGetDSs()\n\t\t.then(function(DSs) {\n\t\t\tfor (var i=0; i 0) {\n\t\t\t\tvm.arrPastors = pastors;\n\t\t\t\tif (pastors.length == 1) {\n\t\t\t\t\tvm.selPastor = vm.arrPastors[0];\n\t\t\t\t\tgetPastorUserAccount(vm.selPastor.ENTITYID);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t\n\tdataService.libGetASetting(\"ProConfEmail\")\n\t.then(function(result) {\n\t\tif (result.length > 0) {\n\t\t\tvm.sReplyTo = result[0].SETTINGVALUE;\n\t\t} else { \n\t\t\tdataService.emailSendError(\"This Conference is missing the ProConfEmail setting.\"); }\t\n\t});\n\t\n\tdataService.libGetASetting(\"RcvEmailFromProtect\")\n\t.then(function(result) {\n\t\tif (result.length > 0) {\n\t\t\tvm.sFrom = result[0].SETTINGVALUE;\n\t\t} else { dataService.emailSendError(\"This Conference is missing the RcvEmailFromProtect setting.\")}\t\n\t});\n\t\n\tdataService.libGetASetting(\"ProContactInfo\")\n\t.then(function(result) {\n\t\tif (result.length > 0) {\n\t\t\tvm.sContactInfo = result[0].SETTINGVALUE;\n\t\t}\n\t});\n\t\n\tdataService.fxGet(\"Protect\", \"Initialization\",\"EmailText\")\n\t.then(function(result) {\n\t\tif (result.length > 0) {\n\t\t\tvm.sInitFormText = result[0].TEXT;\n\t\t}\t\n\t});\n\t\n\t\n\tfunction getPastorUserAccount(iEntityID) {\n\t\tdataService.usersGetOneFromEntityID(iEntityID)\n\t\t.then(function(resultPR) {\n\t\t\tif (resultPR == \"No User Account Found\") {\n\t\t\t\tvm.pastorUserName = \"\";\n\t\t\t\t\t\n\t\t\t\tdataService.emGetFirstSeq(vm.selPastor.ENTITYID)\n\t\t\t\t.then(function(emails) {\n\t\t\t\t\tif (emails.length > 0) {\n\t\t\t\t\t\tif (emails.length == 1 && emails[0].STOPDATE != \"\") {\n\t\t\t\t\t\t\tvm.sRefEmail = emails[0].EMAIL;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar curEmails = arrayFactory.getCurrentOnly(emails)\n\t\t\t\t\t\t\tif (curEmails.length > 0) {\n\t\t\t\t\t\t\t\tvm.sRefEmail = curEmails[0].EMAIL;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (validatorService.emailIsValid(vm.sRefEmail) == true) {\n\t\t\t\t\t\t\tvm.bReadyToSend = \"true\";\t\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmodalService.okAlert(\"Invalid Entry\",\n\t\t\t\t\t\t\t\t\"You must enter a valid email address before \" +\n\t\t\t\t\t\t\t\t\"this request can be sent.\\n\\nIf there is a missing or incorrect email \" +\n\t\t\t\t\t\t\t\t\"for the pastor selected, please contact the Safe Sanctuaries office.\");\n\t\t\t\t\t\t\tvm.bReadyToSend = \"false\";\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmodalService.okAlert(\"Invalid Entry\",\n\t\t\t\t\t\t\t\"You must enter a valid email address before \" +\n\t\t\t\t\t\t\t\"this request can be sent.\\n\\nIf there is a missing or incorrect email \" +\n\t\t\t\t\t\t\t\"for the pastor selected, please contact the Safe Sanctuaries office.\");\n\t\t\t\t\t\tvm.bReadyToSend = \"false\";\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else { \n\t\t\t\tvm.pastorUserName = resultPR[0].USERNAME;\n\t\t\t\tvm.sRefEmail = resultPR[0].USEREMAIL;\n\t\t\t\tif (validatorService.emailIsValid(vm.sRefEmail) == true) {\n\t\t\t\t\tvm.bReadyToSend = \"true\";\t\n\t\t\t\t}\t\n\t\t\t}\n\t\t});\n\t}\n\t\n\tfunction getReturnCode(iMin, sParams) {\n\t\tdataService.secGetReturnCode(iMin, vm.sStepLinkFlag, sParams)\n\t\t.then(function(retCode) {\n\t\t\tif (retCode.length > 0) {\n\t\t\t\tvm.refReturnCode = retCode[0].RETURNCODE;\n\t\t\t\tvm.refReturnKey = retCode[0].RETURNKEY;\n\t\t\t\t\t\t\t\n\t\t\t\tsaveProProcessRecord();\n\t\t\t}\n\t\t});\n\t}\n\t\n\tfunction saveProProcessRecord() {\n\t\t//MO PastorRef, ClergyProfRef do NOT Expire.\n\t\tvar sRawDataString = \"WebApps_Pro || \" + vm.sStepLinkFlag + \" || \" + loginService.user.USERID;\n\t\tif ($stateParams.refSaveKey > 0) { \n\t\t\tsRawDataString += \" || U || SaveKey==\" + $stateParams.refSaveKey; }\n\t\telse { sRawDataString += \" || I\"; }\n\t\tsRawDataString += \" || ProID==\" + $rootScope.sProID + \" || StepID==\" + \n\t\t\t$stateParams.refStepID + \" || StepNote==\";\n\t\t\n\t\t//MO Only: Add Note if Ref sent to \"Staff\" entered thru LCProtect:\n\t\tif ($stateParams.sStepLinkFlag == \"PastorRef\" && vm.selPastor.APPOINTEDORSTAFF == \"Staff\") {\n\t\t\tsRawDataString += \"(Staff)\";\n\t\t}\n\t\t\n\t\tsRawDataString += \" || StepLinkType==\" + vm.sLinkType + \" || StepLink==\";\n\t\tif (vm.sLinkType == \"PR\") { \n\t\t\tif (vm.sStepLinkFlag == 'DSRef') {\n\t\t\t\tsRawDataString += vm.selDS.ENTITYID; }\n\t\t\telse if (angular.isDefined(vm.selPastor.ENTITYID)==true) {\n\t\t\t\tsRawDataString += vm.selPastor.ENTITYID; }\n\t\t\telse { sRawDataString += vm.selDS.ENTITYID; }\t\n\t\t} else { sRawDataString += vm.sRefName; }\n\t\tsRawDataString += \" || StepProgress==Reference Request Sent || StepRefID==\" +\n\t\t\tvm.sRefEmail + \"|\" + vm.refReturnKey + \" ^^ \";\n$log.info(sRawDataString)\n\t\tdataService.proSaveProcess(sRawDataString)\n\t\t.then(function(result) { $log.info(result)\n\t\t\tif (result[0].RESULTCODE == \"Success\") {\n\t\t\t\tsendEmail();\n\t\t\t}\n\t\t});\n\t}\n\t\n\tfunction sendEmail() {\n\t\tif (vm.sDatabaseID.slice(-3) == \"DEV\") {\n\t\t\tvm.sRefEmail = \"testing@greatspirit.com\";\n\t\t} else if (vm.sDatabaseID == \"VID\") {\n\t\t\tvm.sRefEmail = \"lyndzie@greatspirit.com\";\n\t\t}\n\t\tvm.sFrom += \" <\" + vm.sReplyTo + \">\";\n\t\t\n\t\t//Currently MO ONLY... otherwise add switch/case for sDatabaseID:\n\t\tvar sProRefsURL = protectURL + \"?conf=\" + vm.sDatabaseID;\n\t\tvar sRefJSLink = refJSURL + \"?ReturnCode=\" + vm.refReturnCode;\n\t\tif (vm.pastorUserName != \"\") {\n\t\t\tdataService.emailSend_PastorRef(vm.sContactInfo, \n\t\t\t\tvm.sRefEmail, vm.sFrom, vm.sReplyTo, vm.sRefName,\n\t\t\t\tsProRefsURL, vm.pastorUserName, sRefJSLink,\n\t\t\t\tvm.sInitFormText)\n\t\t\t.then(function(result) {\n\t\t\t\tif (result == \"Completed\") {\n\t\t\t\t\tresetForm();\n\t\t\t\t\t$state.go('steps', {reload:true});\n\t\t\t\t} else {\n\t\t\t\t\tmodalService.okAlert(\"Send Error\",\n\t\t\t\t\t\t\"An Error occurred while sending the \" +\n\t\t\t\t\t\t\"Reference Request email.\");\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tdataService.emailSend_MORefLink(vm.sContactInfo, \n\t\t\t\tvm.sRefEmail, vm.sFrom, vm.sRefName, sRefJSLink,\n\t\t\t\tvm.sReplyTo, vm.sInitFormText)\n\t\t\t.then(function(result) {\n\t\t\t\tif (result == \"Completed\") {\n\t\t\t\t\tresetForm();\n\t\t\t\t\t$state.go('steps', {reload:true});\n\t\t\t\t} else {\n\t\t\t\t\tmodalService.okAlert(\"Send Error\",\n\t\t\t\t\t\t\"An Error occurred while sending the \" +\n\t\t\t\t\t\t\"Reference Request email.\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\t\n\t//can't reload a partial without reloading parent, so clear vars here for use with next Ref:\n\tfunction resetForm() {\n\t\tvm.pastorUserName = \"\";\n\t\tvm.selPastor = {};\n\t\tvm.txtRefName = \"\";\n\t}\n\t\n\t\n/* Broadcasts: */\n\n/* Calls from View: */\n\t\n\tvm.cancel = function() {\n\t\t$state.go('steps', {reload:true});\n\t}\n\t\n\tvm.DSs_changeHandler = function() {\n\t\tif (vm.selDS != null &&\n\t\t\tvm.selDS.ENTITYID > 0) {\n\t\t\tgetPastorUserAccount(vm.selDS.ENTITYID);\n\t\t\tif (vm.related == 'Yes') {\n\t\t\t\tvm.selPastor = {};\n\t\t\t}\n\t\t} else { \n\t\t\tvm.selDS = {};\n\t\t\tvm.bReadyToSend = \"false\"; \n\t\t}\n\t}\n\t\n\tvm.email_changeHandler = function() {\n\t\tif (validatorService.emailIsValid(vm.sRefEmail) == true) {\n\t\t\tif ((vm.related == 'No' && vm.selPastor.ENTITYID > 0) ||\n\t\t\t\t(vm.sStepLinkFlag == 'DSRef' && vm.selDS.ENTITYID > 0) ||\n\t\t\t\t(vm.sStepLinkFlag == 'ClergyProfRef' && vm.txtRefName != \"\")) {\n\t\t\t\tvm.bReadyToSend = \"true\";\n\t\t\t} else if (vm.related == 'Yes' && \n\t\t\t\t(vm.selPastor.ENTITYID > 0 || vm.selDS.ENTITYID > 0)) {\n\t\t\t\tvm.bReadyToSend = \"true\";\n\t\t\t} else {\n\t\t\t\tmodalService.okAlert(\"Missing Entry\", \n\t\t\t\t\t\"You first need to select a pastor to \" +\n\t\t\t\t\t\"send this Reference Request to.\")\n\t\t\t\tvm.bReadyToSend = \"false\";\n\t\t\t} \n\t\t} else {\n\t\t\tmodalService.okAlert(\"Invalid Entry\",\n\t\t\t\t\"You must enter a valid email address before \" +\n\t\t\t\t\"this request can be sent.\\n\\nIf there is a missing or incorrect email \" +\n\t\t\t\t\"for the pastor selected, please contact the Safe Sanctuaries office.\");\n\t\t\tvm.bReadyToSend = \"false\";\n\t\t}\t\n\t}\n\t\n\tvm.pastors_changeHandler = function() {\n\t\tif (vm.selPastor != null &&\n\t\t\tvm.selPastor.ENTITYID > 0) {\n\t\t\tgetPastorUserAccount(vm.selPastor.ENTITYID);\n\t\t\tif (vm.related == 'Yes') {\n\t\t\t\tvm.selDS = {};\n\t\t\t} else if (vm.sStepLinkFlag == 'ClergyProfRef') {\n\t\t\t\tvm.txtRefName = \"\";\n\t\t\t}\n\t\t} else { \n\t\t\tvm.selPastor = {};\n\t\t\tvm.bReadyToSend = \"false\"; \n\t\t}\n\t};\n\t\n\tvm.relatedHandler = function(val) {\n\t\tif (val == 'Yes') {\n\t\t\tvm.related = \"Yes\";\n\t\t\tgetPastors(0);\n\t\t\tgetDSs();\n\t\t} else if (vm.iChurchID > 0) {\n\t\t\tvm.related = \"No\";\n\t\t\tvm.selPastor = {};\n\t\t\tvm.selDS = {};\n\t\t\tgetPastors(vm.iChurchID);\n\t\t}\n\t};\n\t\n\tvm.sendRequest = function() {\n\t\tif (vm.bReadyToSend == \"true\") { \n\t\t\tif (vm.bInSendProcedure == false) { //dups prevention\n\t\t\t\tvm.bInSendProcedure = true;\n$log.info(\"Step:\",vm.sStepLinkFlag);\n\t\t\t\tswitch (vm.sStepLinkFlag) { \n\t\t\t\t\tcase \"PastorRef\":\n\t\t\t\t\t\tif (angular.isDefined(vm.selPastor.ENTITYID)==true) {\n\t\t\t\t\t\t\tif (vm.selPastor.CHURCHPASTORS.indexOf(\"Rev\") > -1) {\n\t\t\t\t\t\t\t\tvm.sRefName = \"Rev. \";\n\t\t\t\t\t\t\t} else { vm.sRefName = \"\"; }\n\t\t\t\t\t\t\tvm.sRefName += vm.selPastor.FIRSTNAME + \" \" + vm.selPastor.LASTNAME; \n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvm.sRefName = \"Rev. \" + vm.selDS.FullName; \n\t\t\t\t\t\t}\n\t\t\t\t\t\tvm.sLinkType = \"PR\";\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"DSRef\":\n\t\t\t\t\t\tvm.sRefName = \"Rev. \" + vm.selDS.FullName;\n\t\t\t\t\t\tvm.sLinkType = \"PR\";\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"ClergyProfRef\":\n\t\t\t\t\t\tif (vm.selPastor != null && vm.selPastor.ENTITYID > 0) {\n\t\t\t\t\t\t\tif (vm.selPastor.CHURCHPASTORS.indexOf(\"Rev\") > -1) {\n\t\t\t\t\t\t\t\tvm.sRefName = \"Rev. \";\n\t\t\t\t\t\t\t} else { vm.sRefName = \"\"; }\n\t\t\t\t\t\t\tvm.sRefName += vm.selPastor.FIRSTNAME + \" \" + vm.selPastor.LASTNAME;\n\t\t\t\t\t\t\tvm.sLinkType = \"PR\";\n\t\t\t\t\t\t} else if (vm.txtRefName != \"\") {\n\t\t\t\t\t\t\tvm.sRefName = vm.txtRefName;\n\t\t\t\t\t\t\tvm.sLinkType = \"Name\";\n\t\t\t\t\t\t}\n\t\t\t\t\tbreak;\t\n\t\t\t\t}\n\t\t\t\tvar sParams = loginService.user.USERID + \"|\" + loginService.user.USERFULLNAME +\n\t\t\t\t\t\"|\" + $rootScope.sProID;\n\t\t\t\tgetReturnCode(525600, sParams);\n\t\t\t}\n\t\t} else {\n\t\t\tmodalService.okAlert(\"Missing Entry\", \n\t\t\t\t\"Please select a pastor before clicking to send the reference request.\");\n\t\t}\t\t\n\t};\n\t\n\tvm.txtRefName_changeHandler = function() {\n\t\tif (vm.txtRefName != \"\") {\n\t\t\tvm.sRefName = vm.txtRefName;\n\t\t\tvm.selPastor = {};\n\t\t\tvm.pastorUserName = \"\";\n\t\t}\n\t};\n\n}\nangular\n .module('proRefs')\n .controller('RefDefaultController', RefDefaultController);\n\nRefDefaultController.$inject = ['webSessionStorage','$stateParams','validatorService','modalService',\n\t'loginService','$state','$rootScope','dataService','refJSURL','datesService','errorEmailNotification',\n\t'$log'];\n\nfunction RefDefaultController(webSessionStorage, $stateParams, validatorService, modalService, \n\tloginService, $state, $rootScope, dataService, refJSURL, datesService, errorEmailNotification,\n\t$log) {\n var vm = this;\n \n vm.bInSendProcedure = false;\n\tvm.bReadyToSend = \"false\";\n\tvm.refReturnCode = \"\";\n\tvm.refReturnKey = 0;\n vm.sContactInfo = \"\";\n\tvm.sDatabaseID = webSessionStorage.getStoredData('sDatabaseID');\n\tvm.sFrom = \"\";\n\tvm.sInitFormText = \"\";\n\tvm.sRefEmail = \"\";\n\tvm.sRefName = \"\";\n\tvm.sReplyTo = \"\";\n\tvm.sStepExpires = \"\";\n\t\n\tvm.sStepLinkFlag = $stateParams.sStepLinkFlag;\n\tvm.refSaveKey = $stateParams.refSaveKey;\n\tvm.refStepID = $stateParams.refStepID;\n\n\n//INITIALIZE:\n\t$rootScope.sCurForm = \"Name-Reference Request\";\n$log.info($rootScope.sCurForm);\n// $log.info(\"$stateParams:\",$stateParams)\t\n\n\tdataService.libGetASetting(\"ProConfEmail\") //or use \"RcvEmailReplyToProtect\" setting\n\t.then(function(result) {\n\t\tif (result.length > 0) {\n\t\t\tvm.sReplyTo = result[0].SETTINGVALUE;\n\t\t} else if ($rootScope.TESTING == true) { \n\t\t\tdataService.emailSendError(\"This Conference is missing the ProConfEmail setting.\"); \n\t\t}\n\t});\n\t\n\tdataService.libGetASetting(\"RcvEmailFromProtect\") //ie: \"NWTX Volunteer Registrar\"\n\t.then(function(result) {\n\t\tif (result.length > 0) {\n\t\t\tvm.sFrom = result[0].SETTINGVALUE;\n\t\t} else if ($rootScope.TESTING == true) { \n\t\t\tdataService.emailSendError(\"This Conference is missing the RcvEmailFromProtect setting.\"); \n\t\t}\n\t});\n\n\tdataService.libGetASetting(\"ProContactInfo\")\n\t.then(function(result) {\n\t\tif (result.length > 0) {\n\t\t\tvm.sContactInfo = result[0].SETTINGVALUE;\n\t\t} else if ($rootScope.TESTING == true) { \n\t\t\tdataService.emailSendError(\"This Conference is missing the ProContactInfo setting.\");\n\t\t}\n\t});\n\t\n\tdataService.fxGet(\"Protect\", \"Initialization\",\"EmailText\")\n\t.then(function(result) {\n\t\tif (result.length > 0) {\n\t\t\tvm.sInitFormText = result[0].TEXT;\n\t\t}\t\n\t});\n\t\n\tfunction getReturnCode(iMin, sParams) {\n\t\tdataService.secGetReturnCode(iMin, vm.sStepLinkFlag, sParams)\n\t\t.then(function(retCode) {\n\t\t\tif (retCode.length > 0) {\n\t\t\t\tvm.refReturnCode = retCode[0].RETURNCODE;\n\t\t\t\tvm.refReturnKey = retCode[0].RETURNKEY;\n\t\t\t\t\t\t\t\n\t\t\t\tsaveProProcessRecord();\n\t\t\t}\n\t\t});\n\t}\n\t\n\tfunction saveProProcessRecord() {\n\t\tvar sRawDataString = \"WebProtect || \" + vm.sStepLinkFlag + \" || \" +\n\t\t\tloginService.user.USERID;\n\t\tif (vm.refSaveKey != '') { \n\t\t\tsRawDataString += \" || U || SaveKey==\" + vm.refSaveKey; }\n\t\telse { sRawDataString += \" || I\"; }\n\t\tsRawDataString += \" || ProID==\" + $rootScope.sProID + \" || StepID==\" + \n\t\t\tvm.refStepID;\n\t\tif (vm.sStepExpires != \"\") {\n\t\t\tsRawDataString += \" || StepExpires==\" + vm.sStepExpires;\n\t\t}\n\t\tsRawDataString += \" || StepLinkType==Name || StepLink==\" + vm.sRefName +\n\t\t\t\" || StepProgress==Reference Request Sent || StepRefID==\" +\n\t\t\tvm.sRefEmail + \"|\" + vm.refReturnKey + \" ^^ \";\n$log.info(\"proSaveProcess:\",sRawDataString);\t\t\n\t\tdataService.proSaveProcess(sRawDataString)\n\t\t.then(function(result) {\n\t\t\tif (result[0].RESULTCODE == \"Success\") {\n\t\t\t\tsendEmail();\n\t\t\t}\n\t\t});\n\t}\n\t\n\tfunction sendEmail() { $log.info(vm.sDatabaseID)\n\t\tif (vm.sDatabaseID.slice(-3) == \"DEV\") {\n\t\t\tvm.sRefEmail = \"testing@greatspirit.com\";\n\t\t} else if (vm.sDatabaseID == \"VID\") {\n\t\t\tvm.sRefEmail = \"lyndzie@greatspirit.com\";\n\t\t}\n\t\tvm.sFrom += \" <\" + vm.sReplyTo + \">\";\n\t\tvar sRefJSLink = refJSURL + \"?ReturnCode=\" + vm.refReturnCode;\n$log.info(\"Ref:\",vm.sStepLinkFlag)\t\t\n\t\tswitch (vm.sStepLinkFlag) { \n\t\t\tcase \"GeneralRef\": case \"ClergyGenRef\": case \"ProfRef\":\n\t\t\t\tif (vm.sDatabaseID == \"MC\" || vm.sDatabaseID == \"MC-DEV\") {\n\t\t\t\t\tdataService.emailSend_MCRefLink(vm.sContactInfo, \n\t\t\t\t\t\tvm.sRefEmail, vm.sFrom, vm.sRefName, sRefJSLink,\n\t\t\t\t\t\tvm.sReplyTo, vm.sInitFormText)\n\t\t\t\t\t.then(function(result) {\n\t\t\t\t\t\tif (result == \"Completed\") {\n\t\t\t\t\t\t\t$state.go('steps', {reload:true});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmodalService.okAlert(\"Send Error\",\n\t\t\t\t\t\t\t\t\"An Error occurred while sending the \" +\n\t\t\t\t\t\t\t\t\"Reference Request email.\");\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else { //MO:\n\t\t\t\t\tdataService.emailSend_MORefLink(vm.sContactInfo, \n\t\t\t\t\t\tvm.sRefEmail, vm.sFrom, vm.sRefName, sRefJSLink,\n\t\t\t\t\t\tvm.sReplyTo, vm.sInitFormText)\n\t\t\t\t\t.then(function(result) {\n\t\t\t\t\t\tif (result == \"Completed\") {\n\t\t\t\t\t\t\t$state.go('steps', {reload:true});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmodalService.okAlert(\"Send Error\",\n\t\t\t\t\t\t\t\t\"An Error occurred while sending the \" +\n\t\t\t\t\t\t\t\t\"Reference Request email.\");\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\t\n\t\t\tbreak;\n\t\t\tcase \"ProfRef1\": case \"ProfRef2\": case \"PersonalRef\": //All NWTX Refs\n// $log.info(vm.sContactInfo, vm.sRefEmail, vm.sFrom, vm.sRefName, sRefJSLink, vm.sReplyTo)\t\t\t\n\t\t\t\tdataService.emailSend_NWTXRefLink(vm.sContactInfo, \n\t\t\t\t\tvm.sRefEmail, vm.sFrom, vm.sRefName, sRefJSLink,\n\t\t\t\t\tvm.sReplyTo, vm.sInitFormText)\n\t\t\t\t.then(function(result) {\n\t\t\t\t\tif (result == \"Completed\") {\n\t\t\t\t\t\t$state.go('steps', {reload:true});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmodalService.okAlert(\"Send Error\",\n\t\t\t\t\t\t\t\t\"An Error occurred while sending the \" +\n\t\t\t\t\t\t\t\t\"Reference Request email.\");\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\tbreak;\n\t\t}\n\t}\n\n\n/* Broadcasts: */\n\n/* Calls from View: */\n\n\tvm.cancel = function() {\n\t\t$state.go('steps', {reload:true});\n\t};\n\t\n\t//if name valid, validate & highlight Send as soon as email valid:\n\tvm.email_changeHandler = function() {\n\t\tif (vm.sStepLinkFlag == '' || vm.refStepID == 0 ||\n\t\t\tangular.isUndefined(vm.sStepLinkFlag)==true ||\n\t\t\tangular.isUndefined(vm.refStepID) == true) {\n\t\t\tmodalService.okAlert(\"Oops! We lost something!\",\n\t\t\t\t\t\t\t\t\"We are missing the data indicating which reference you \" +\n\t\t\t\t\t\t\t\t\"are requesting. This may have occurred if you computer sat \" +\n\t\t\t\t\t\t\t\t\"idle too long. Please select to begin the Step again in order \" +\n\t\t\t\t\t\t\t\t\"to refresh your data.\");\n\t\t\t$state.go('steps', {reload:true});\t\t\n\t\t} else if (vm.sRefEmail != \"\") {\n\t\t\tif (validatorService.emailIsValid(vm.sRefEmail) == true) {\n\t\t\t\tif (vm.sRefName != \"\" && vm.sRefName.indexOf(\" \") > -1) {\n\t\t\t\t\tvm.bReadyToSend = \"true\";\t\n\t\t\t\t} else {\n\t\t\t\t\tmodalService.okAlert(\"Missing Entry\", \n\t\t\t\t\t\t\"Please enter the First and Last names of the person to whom \" +\n\t\t\t\t\t\t\"you are sending this Reference Request.\");\n\t\t\t\t\tvm.bReadyToSend = \"false\";\n\t\t\t\t}\n\t\t\t} else { vm.bReadyToSend = \"false\"; }\n\t\t} else { vm.bReadyToSend = \"false\"; }\t\t\n\t};\n\t\t\n\tvm.sendRequest = function() {\n\t\tif (vm.bReadyToSend == \"true\") {\n\t\t\tif (vm.bInSendProcedure == false) { //dups prevention\n\t\t\t\tvm.bInSendProcedure = true;\n\t\t\t\tvar sParams = loginService.user.USERID + \"|\" + loginService.user.USERFULLNAME +\n\t\t\t\t\t\"|\" + $rootScope.sProID;\n\t\t\t\tswitch (vm.sStepLinkFlag) { \n\t\t\t\t\tcase \"ProfRef1\": case \"ProfRef2\": case \"PersonalRef\": \t//NWTX No Exp\n\t\t\t\t\tcase \"ClergyGenRef\":\t\t\t\t//MO No Exp (ALL to Clergy)\n\t\t\t\t\t\tgetReturnCode(525600, sParams);\n\t\t\t\t\tbreak;\n\t\t\t\t\tdefault: //2 weeks:\n\t\t\t\t\t\tvar dToday = new Date();\n\t\t\t\t\t\tvar dExp = new Date(dToday.getTime() + 1.2096e9);\n\t\t\t\t\t\tvm.sStepExpires = datesService.jsDateStrToCalendarStr(dExp);\n\t\t\t\t\t\tgetReturnCode(20160, sParams);\n\t\t\t\t\tbreak;\n\t\t\t\t}\t\t\n\t\t\t}\n\t\t} else {\n\t\t\tif (vm.sRefEmail == \"\") {\n\t\t\t\tmodalService.okAlert(\"Invalid Entry\",\n\t\t\t\t\t\"You must enter a valid email address before \" +\n\t\t\t\t\t\"this request can be sent.\\n\\nIf there is a missing or incorrect email \" +\n\t\t\t\t\t\"for the pastor selected, please contact the Safe Sanctuaries office.\");\n\t\t\t} else {\n\t\t\t\tmodalService.okAlert(\"Missing Entry\", \n\t\t\t\t\t\"Please enter the full name of the person to whom \" +\n\t\t\t\t\t\"you are sending this Reference Request.\")\n\t\t\t}\n\t\t}\t\t\n\t};\n\t\n\tvm.txtRefName_changeHandler = function() {\n\t\tif (vm.sRefName == \"\") { vm.bReadyToSend = \"false\"; }\n\t\telse if (vm.sRefName.indexOf(\" \") == -1) {\n\t\t\tmodalService.okAlert(\"Missing Entry\", \n\t\t\t\t\"Please enter the full name of the person to whom \" +\n\t\t\t\t\"you are sending this Reference Request.\\n\"+\n\t\t\t\t\"(A first and last name with a space in-between.)\");\n\t\t\tvm.bReadyToSend = \"false\";\n\t\t}\n\t};\n\n}\n\nangular\n .module('proRefs')\n .controller('ReferenceController', ReferenceController);\n\nReferenceController.$inject = ['$rootScope','dataService','$state','modalService',\n\t'webSessionStorage','$stateParams','errorEmailNotification','loginService','$sce','$log'];\n\nfunction ReferenceController($rootScope, dataService, $state, modalService,\n\twebSessionStorage, $stateParams, errorEmailNotification, loginService, $sce, $log) {\n var vm = this;\n \n vm.Applicant = \"\";\n vm.ApplEmail = \"\";\n vm.ApplUserID = 0;\n\tvm.back = { image: \"assets/images/left_32.png\" };\n\tvm.dNow = new Date();\n\tvm.formDefs = [];\n\tvm.header = \"\";\n\tvm.instructions = \"\";\n\tvm.iProRefUserID = 0;\n\tvm.iStepSaveKey = 0;\n\tvm.DSLabel = \"\";\n\tvm.RefData = [];\n\tvm.RefItems = [];\n\tvm.sDatabaseID = \"\";\n\tvm.sectionHdr = \"\";\n\tvm.sProID = \"\";\n\tvm.sSaveString = \"\";\n\tvm.sStepLinkFlag = \"\";\n\tvm.bSubmitted = false; \t//double-click handler\n\t\n\t\n//INITIALIZE:\n\t$rootScope.sCurForm = \"Reference\";\t\n$log.info(\"retCodeKey\",$stateParams.retCodeKey)\t\n dataService.secGetReturnCodeFromKey($stateParams.retCodeKey)\n\t.then(function(data) { $log.info(\"data:\", data);\n\t\tif (data.length > 0) {\n\t\t\tif (data[0].RETURNCODE == \"\") {\n\t\t\t\tmodalService.okAlert(\"Reference Completed\",\n\t\t\t\t\t\"This reference has already been completed by someone else.\\n\" +\n\t\t\t\t\t\"No further action is needed.\\n\\n\" +\n\t\t\t\t\t\"Thank-you for your willingness to participate in this process.\"); \n\t\t\t\t$state.go('certMgmt',{reload:true}); \n\t\t\t} else {\n\t\t\t\tdataService.secReturnLogin(data[0].RETURNCODE)\n\t\t\t\t.then(function(data) {\n\t\t\t\t\tif (data.length > 0) {\n\t\t\t\t\t\tif (data[0].USERNAME == \"Expired\") {\n\t\t\t\t\t\t\tmodalService.okAlert(\"Expired\",\n\t\t\t\t\t\t\t\t\"This Reference link has Expired.\\n\\n\" +\n\t\t\t\t\t\t\t\t\"Please check your Email to see if you have received an \" +\n\t\t\t\t\t\t\t\t\"updated link. If not, no further action is needed.\\n\\n \" +\n\t\t\t\t\t\t\t\t\"Thank-you for your willingness to participate in this \" +\n\t\t\t\t\t\t\t\t\"process.\");\n\t\t\t\t\t\t\t$state.go('certMgmt', {reload:true}); }\t\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tvar sParams = data[0].PARAMS;\n\t\t\t\t\t\t\tvar arrParams = sParams.split(\"|\");\n\t\t\t\t\t\t\tvm.iProRefUserID = data[0].USERID; //all Refs logged in with \"ProRef\"\n\t\t\t\t\t\t\tvm.ApplUserID = arrParams[0];\n\t\t\t\t\t\t\tvm.Applicant = arrParams[1];\n\t\t\t\t\t\t\tvm.sProID = arrParams[2];\n\t\t\t\t\t\t\tvm.sStepLinkFlag = data[0].FN;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (vm.ApplUserID > 0) {\n\t\t\t\t\t\t\t\tgetUserInfo();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tgetFormDefs();\n\t\t\t\t\t\t\tgetProcessRecord();\n\t\t\t\t\t\t}\t\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n\t\n\t\n\tfunction getFormDefs() {\n\t\tdataService.proGetForm(vm.sStepLinkFlag)\n\t\t.then(function(data) {\n\t\t\tif (data.length > 0) {\n\t\t\t\tvar obj = { question:\"\", answer:\"\", control:\"\"}\n\t\t\t\tvm.header = data[0].GROUPNAME;\n\t\t\t\tfor (var i=0; i 0) {\n\t\t\t\tfor (var i=0; i 0) {\n\t\t\t\tvm.ApplEmail = data[0].USEREMAIL;\n\t\t\t}\n\t\t});\n\t}\n\t\n\tfunction saveProData() {\n\t\tvm.sSaveString = \"WebApps_Pro || Ref_SaveData || \" + loginService.user.USERID + \" || \";\n\t\tfor (var i=0; i 0) {\n\t\t\t\tfor (i=0; i 0) {\n\t\t\t\tif (data[0].RESULTCODE == \"Error\") {\n\t\t\t\t\tvar sEmailContent = errorEmailNotification.error2(\"refCtrl/saveProProcessStep\");\n\t\t\t\t\tdataService.emailSendError(sEmailContent);\t\n\t\t\t\t} else {\n\t\t\t\t\tdeleteReturnCode();\n\t\t\t\t\t\n\t\t\t\t\t//And update new ProRefTracker:\n\t\t\t\t\tdataService.proSaveRefTracker(loginService.user.USERID);\n\t\t\t\t}\n\t\t\t}\t\n\t\t});\n\t}\n\t\n\tfunction deleteReturnCode() {\n\t\tdataService.secDeleteReturnCodeFromKey($stateParams.retCodeKey)\n\t\t.then(function(data) {\n\t\t\tif (data[0].RESULTS != \"Delete Succeeded\") {\n\t\t\t\tvar sEmailContent = errorEmailNotification.error1(\"refCtrl/deleteReturnCode\");\n\t\t\t\tdataService.emailSendError(sEmailContent)\n\t\t\t}\n\t\t\tnotifyApplicant_ReferenceIsComplete();\t\t\t\t\t\t\t\t\t\n\t\t});\n\t}\n\t\n\tfunction notifyApplicant_ReferenceIsComplete() {\n\t\tvar sDatabaseID = webSessionStorage.getStoredData(\"sDatabaseID\");\n\t\t\n\t\t/* Currently ONLY MO uses the ProtectReferences app, as they are the only \n\t\t\tconference using PR/StepLinkType with EntityIDs (used for Pastor selection). */\n\t\tswitch (sDatabaseID) {\n\t\t\tcase \"MO\":\n\t\t\t\tvar sReplyTo = \"SSanctuaries@moumethodist.org\";\n\t\t\t\tvar sFrom = \"Safe Sanctuaries Administrator <\" + sReplyTo + \">\";\n\t\t\tbreak;\n\t\t\tcase \"VID\":\n\t\t\t\tvm.ApplEmail = \"lyndzie@greatspirit.com\";\n\t\t\t\tsReplyTo = \"mchelp@greatspirit.com\";\n\t\t\t\tsFrom = \"GSS Testing \";\n\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tvm.ApplEmail = \"testing@greatspirit.com\";\n\t\t\t\tsReplyTo = \"mchelp@greatspirit.com\";\n\t\t\t\tsFrom = \"GSS Testing \";\n\t\t\tbreak;\t\n\t\t}\n\t\tvar sSubject = \"Reference Completed!\";\n\t\tvar sURLLink = \"https://umcdata.net/MissionConnect/Public/Protect/Web_Protect.html?conf=\" + sDatabaseID;\n\t\tvar sEmailContent = loginService.user.USERFULLNAME + \n\t\t\t\" has successfully submitted the requested reference.

\" +\n\t\t\t\"You may return to the web site to verify your progress and manage references \" +\n\t\t\t\"still outstanding.

For your convenience, the link is provided below: \" +\n\t\t\t\"

\" + \n\t\t\t\"\" + sURLLink + \"\";\n\t\tdataService.emailSendCustom(vm.ApplEmail, sFrom, sReplyTo, sSubject, sEmailContent)\n\t\t.then(function(data) {\n\t\t\tif (data == \"Completed\") {\n\t\t\tmodalService.okAlert(\"Success\",\n\t\t\t\t\"The reference for \" + vm.Applicant + \n\t\t\t\t\t\" has been successfully submitted.\");\n\t\t\t\t$state.go('certMgmt',{reload:true});\n\t\t\t}\t\t\t \n\t\t});\t\n\t}\n\t\n\t\n\t\n//Called Functions:\t\n\tvm.goToReferral = function() {\n\t\t$state.go('refer', {\n\t\t\tApplicant: vm.Applicant,\n\t\t\tApplUserID: vm.ApplUserID,\t\t\n\t\t\tiProRefUserID: vm.iProRefUserID,\n\t\t\tiStepSaveKey: vm.iStepSaveKey,\t\t\n\t\t\tretCodeKey: $stateParams.retCodeKey,\n\t\t\tsProID: vm.sProID,\t\t\n\t\t\tsStepLinkFlag: vm.sStepLinkFlag\n\t\t});\n\t}; \n\t\n\tvm.saveSelection = function(id, value, req) {\n\t\tif (vm.RefData.length > 0) {\n\t\t\tfor (var i=0; i 0) {\n\t\t\tvar bReadyToSave = true;\n\t\t\tfor (var i=0; i\" +\n\t\t\t\t\t\t\t\t\"The first missing item is:

\" + vm.RefItems[i].question +\n\t\t\t\t\t\t\t\t\"

Please complete the entire reference before clicking \" +\n\t\t\t\t\t\t\t\t\"to Submit.\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} \n\t\t\t}\n\t\t\tif (bReadyToSave && vm.bSubmitted == false) {\n\t\t\t\tvm.bSubmitted = true;\n\t\t\t\tsaveProData();\n\t\t\t}\n\t\t} else {\n\t\t\tmodalService.okAlert(\"Missing Entry\", \n\t\t\t\t\"You must complete this Reference before clicking to Submit.\");\n\t\t}\n\t};\n}\nangular\t\t\n\t.module('proRefs')\n\t.controller('NWTXReqController', NWTXReqController);\n\nNWTXReqController.$inject = ['dataService','$sce','$state'];\n\t\nfunction NWTXReqController(dataService, $sce, $state) {\n\tvar vm = this; \t//vmNReq\n\t\n\tvm.back = { image: \"assets/images/left_32.png\" };\n\tvm.sCampReq = \"\";\n\t\n\t\n/* Initialize: */\n\tdataService.fxGet(\"WebAppsPro\", \"Payment\", \"CampReq\")\n\t\t.then(function(text) {\n\t\tif (text.length > 0) {\n\t\t\tvm.sCampReq = $sce.trustAsHtml(text[0].TEXT);\n\t\t}\n\t});\n\t\n\n/* Called from view: */\t\t\n\t\n\tvm.returnToPaymentPage = function() {\n $state.go('nwtxPayment', {iCertTypeID:4}, {reload:true});\n };\n\t\n}\t\n\nangular\n .module('proRefs')\n .controller('NWTXPaymentController', NWTXPaymentController);\n\nNWTXPaymentController.$inject = ['dataService','$stateParams','$sce','datesService','modalService',\n\t'loginService','errorEmailNotification','$rootScope','vancoService','webSessionStorage',\n\t'$state','$httpParamSerializer','payPalService','$log'];\n\nfunction NWTXPaymentController(dataService, $stateParams, $sce, datesService, modalService, \n\tloginService, errorEmailNotification, $rootScope, vancoService, webSessionStorage,\n\t$state, $httpParamSerializer, payPalService, $log) {\n var vm = this; //NPay\n\n\tvm.newCamp = { image: \"assets/images/plus_16.png\" };\n\tvm.arrCamps = [];\n\tvm.arrDataFields = [];\n\tvm.arrFeesVouchers = [];\n\tvm.arrData = [];\n\tvm.arrDefs = [];\n\tvm.back = { image: \"assets/images/left_32.png\" };\n\tvm.bPayFee = false;\n\tvm.bSaveProcedure = false;\t//double-click handler\n\tvm.bShow2 = false;\n\tvm.bShow3 = false;\n\tvm.bShow4 = false;\n\tvm.bVoucher = false;\t\t//a Voucher is in use, so add checkBox at bottom\n\tvm.displayGrp1 = [];\n\tvm.header1 = \"\";\n\tvm.header2 = \"\";\n\tvm.iCertTypeID = $stateParams.iCertTypeID;\n\tvm.iRcvID = 0;\n\tvm.nDonateAmt = 0;\n\tvm.nFee = 0;\n\tvm.nTrainingFee = 0;\n\tvm.nPayAmt = 0;\n\tvm.paymentStepID = $stateParams.paymentStepID;\n\tvm.paymentSaveKey = $stateParams.paymentSaveKey;\n\tvm.selCamp1 = {};\n\tvm.selCamp2 = {};\n\tvm.selCamp3 = {};\n\tvm.selCamp4 = {};\n\tvm.sInstructions1 = \"\";\n\tvm.sCampInstr2 = \"\";\n\tvm.sPayPalLogin = \"\";\n\tvm.sPayPalPostURL = \"\";\n\tvm.sPayPalURL = \"\";\n\tvm.v1BtnText = \"Apply Voucher\";\n\tvm.v2BtnText = \"Apply Voucher\";\n\tvm.v3BtnText = \"Apply Voucher\";\n\tvm.v4BtnText = \"Apply Voucher\";\n\tvm.vWillPay = false;\n \n \n//INITIALIZATION:\n $rootScope.sCurForm = \"NWTX Payment Form\";\n$log.info($rootScope.sCurForm);\n \n dataService.fxGet(\"WebAppsPro\", \"Payment\", \"X\")\n\t.then(function(text) {\n\t\tif ($stateParams.iCertTypeID == 4) {\n\t\t\tfor (var i=0; i 0) {\n\t\t\t\t\tvm.arrData = data;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tdataService.proGetFeesVouchers()\n\t\t\t\t.then(function(feesV) {\n\t\t\t\t\tif (feesV.length > 0) {\n\t\t\t\t\t\tvm.arrFeesVouchers = feesV;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tdataService.proGetForm(\"CampPayment\")\n\t\t\t\t\t.then(function(defs) { //$log.info(\"defs:\",defs)\n\t\t\t\t\t\tvm.arrDefs = defs;\n\t\t\t\t\t\t\tcreateForm();\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\t\t\t\n\t\t});\t\n } else { \n\t\tdataService.libGetASetting('ProVIMVolFee')\n\t\t.then(function(data) {\n\t\t\tvm.nFee = data[0].SETTINGVALUE;\n\t\t});\n\t\t\n\t\tdataService.libGetASetting('ProVIMTrainingFee')\n\t\t.then(function(data) {\n\t\t\tvm.nTrainingFee = data[0].SETTINGVALUE;\n\t\t});\n\t\t\n\t\tdataService.proGetFormData(\"VIMPayment\")\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}\n\t\t\t\n\t\t\tdataService.proGetFeesVouchers()\n\t\t\t.then(function(feesV) { //$log.info(\"Fees:\",feesV);\n\t\t\t\tif (feesV.length > 0) {\n\t\t\t\t\tvm.arrFeesVouchers = feesV;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tdataService.proGetForm(\"VIMPayment\")\n\t\t\t\t.then(function(defs) { //$log.info(\"Defs:\",defs);\n\t\t\t\t\tvm.arrDefs = defs;\n\t\t\t\t\tcreateForm();\n\t\t\t\t});\n\t\t\t});\t\n\t\t});\n\t}\n\t\n\tfunction createForm() {\n\t\tfor (var i=0; i 0) { obj.donate = true; }\n\t\t\t\t\tobj.fee = vm.arrFeesVouchers[j].FEEAMT.toFixed(2);\n\t\t\t\t\tobj.feeSaveKey = vm.arrFeesVouchers[j].SAVEKEY;\n\t\t\t\t\tif (vm.arrFeesVouchers[j].VOUCHERCODE != \"\") {\n\t\t\t\t\t\tobj.voucher = vm.arrFeesVouchers[j].VOUCHERCODE;\n\t\t\t\t\t\tgetVoucherValue(obj);\n\t\t\t\t\t}\n\t\t\t\tbreak; }\n\t\t\t}\n\t\t\t\n\t\t\tswitch (vm.arrDefs[i].CONTROLTYPE) {\n\t\t\t\tcase \"CheckBox\":\n\t\t\t\t\tobj.label = vm.arrDefs[i].CAPTION;\n\t\t\t\t\tvm.vWillPay = obj.data; \n\t\t\t\tbreak;\t\n\t\t\t\tcase \"FeeOption\":\n\t\t\t\t\tobj.label = vm.arrDefs[i].CAPTION;\n\t\t\t\tbreak;\n\t\t\t\tcase \"NWTX_DLCamp\":\n\t\t\t\t\tswitch (vm.arrDefs[i].ITEMNAME) {\n\t\t\t\t\t\tcase \"CampSelection1\":\n\t\t\t\t\t\t\tobj.label = \"1st Camp Selection\";\n\t\t\t\t\t\t\tif (obj.data != \"\") {\n\t\t\t\t\t\t\t\tfor (j=0; j 0) {\n\t\t\t\ttotal += Number(vm.arrDataFields[i].fee);\n\t\t\t\tif (vm.arrDataFields[i].voucher != \"\") {\n\t\t\t\t\ttotal += Number(vm.arrDataFields[i].vAmt);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tvm.nPayAmt = total.toFixed(2);\n\t}\n\t\n\tfunction updateDataFields() {\n\t\tfor (var i=0; i 0) {\n\t\t\t\tif (vouch[0].VOUCHERTYPE == \"CreditUnlimited\" ||\n\t\t\t\t\t(vouch[0].VOUCHERTYPE == \"CreditLimited\" &&\n\t\t\t\t\tvouch[0].AMOUNTBALANCE > 0)) {\n\t\t\t\t\tswitch (vouch[0].VALUETYPE) {\n\t\t\t\t\t\tcase \"percent\":\n\t\t\t\t\t\t\tif (objCurData.donAmt > 0) {\n\t\t\t\t\t\t\t\tvar vAmt = (objCurData.fee-objCurData.donAmt) * \n\t\t\t\t\t\t\t\t\t(Number(vouch[0].VALUEAMOUNT)/100);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvAmt = objCurData.fee * (Number(vouch[0].VALUEAMOUNT)/100);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"dollars\":\n\t\t\t\t\t\t\tvAmt = Number(vouch[0].VALUEAMOUNT);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif (vouch[0].MAXVALUEPERUSE == \"\" ||\n\t\t\t\t\t\tvAmt <= vouch[0].MAXVALUEPERUSE) {\n\t\t\t\t\t\tobjCurData.vAmt = Number(vAmt * -1).toFixed(2);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tobjCurData.vAmt = Number(vouch[0].MAXVALUEPERUSE * -1).toFixed(2);\n\t\t\t\t\t}\n\t\t\t\t\tswitch (objCurData.itemName) {\n\t\t\t\t\t\tcase \"VIMType\": vm.v1BtnText = \"Remove Voucher\"; break;\n\t\t\t\t\t\tcase \"CampSelection1\": vm.v1BtnText = \"Remove Voucher\"; break;\n\t\t\t\t\t\tcase \"CampSelection2\": vm.v2BtnText = \"Remove Voucher\"; break;\n\t\t\t\t\t\tcase \"CampSelection3\": vm.v3BtnText = \"Remove Voucher\"; break;\n\t\t\t\t\t\tcase \"CampSelection4\": vm.v4BtnText = \"Remove Voucher\"; break;\n\t\t\t\t\t}\t\t\n\t\t\t\t\tvm.bVoucher = true; \n\t\t\t\t\tcalculatePayAmount();\n\t\t\t\t} else {\n\t\t\t\t\tmodalService.okAlert(\"No Available Credit\",\n\t\t\t\t\t\t\"There is no available credit left on this Voucher. \" +\t\t\t\n\t\t\t\t\t\t\"Please ensure you have entered the Voucher Code correctly. If so, \" +\n\t\t\t\t\t\t\"contact Conference staff for further assistance.\");\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tmodalService.okAlert(\"Invalid Entry\",\n\t\t\t\t\t\"There is no voucher for the entered Code. \" +\n\t\t\t\t\t\"Please ensure you have entered the Voucher Code correctly.\");\n\t\t\t}\n\t\t});\n\t}\n\t\n\tfunction saveData() {\n\t\tvar sRawDataString = \"WebApps_Pro || NwtxPayment || \" + loginService.user.USERID + \" || \";\n\t\tfor (var i=0; i 0) {\n\t\t\t\t\tsRawDataString += \"U || SaveKey==\" + vm.arrDataFields[i].saveKey;\n\t\t\t\t} else { sRawDataString += \"I\"; }\n\t\t\t\tsRawDataString += \" || ProID==\" + $rootScope.sProID + \" || ItemID==\" +\n\t\t\t\t\tvm.arrDataFields[i].id + \" || ItemData==\" + vm.arrDataFields[i].data + \" ^^ \"; \n\t\t\t} else if (vm.arrDataFields[i].saveKey > 0) {\n\t\t\t\tsRawDataString += \"D || SaveKey==\" + vm.arrDataFields[i].saveKey + \" ^^ \";\n\t\t\t}\n\t\t} //$log.info(\"saveData:\", sRawDataString)\n\t\t\n\t\tdataService.proSaveFormData(sRawDataString) \n\t\t.then(function(results) {\n\t\t\tif (results[0].RESULTCODE == 'Success') {\n\t\t\t\tsaveFeesVouchers();\n\t\t\t} else {\n\t\t\t\tvar sEmailContent = errorEmailNotification.error4(\"nwtxPaymentCtrl/saveData\") +\n\t\t\t\t\t\"

Error: \" + results[0].RESULTCODE;\n\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t}\n\t\t});\n\t}\n\t\n\tfunction saveFeesVouchers() {\n\t\tvar sRawDataString = \"WebApps_Pro || NwtxPayment || \" + loginService.user.USERID + \" || \";\n\t\tfor (var i=0; i 0) {\n\t\t\t\tif (vm.arrDataFields[i].feeSaveKey > 0) {\n\t\t\t\t\tsRawDataString += \"U || SaveKey==\" + vm.arrDataFields[i].feeSaveKey;\n\t\t\t\t} else { sRawDataString += \"I\"; }\n\t\t\t\tsRawDataString += \" || ProID==\" + $rootScope.sProID + \" || FeeItemID==\" + \n\t\t\t\t\tvm.arrDataFields[i].data + \" || FeeAmt==\" + vm.arrDataFields[i].fee + \n\t\t\t\t\t\" || DonAmt==\" + vm.arrDataFields[i].donAmt + \" || VoucherCode==\" + \n\t\t\t\t\tvm.arrDataFields[i].voucher + \" ^^ \";\n\t\t\t} else if (vm.arrDataFields[i].feeSaveKey > 0) {\n\t\t\t\tsRawDataString += \"D || SaveKey==\" + vm.arrDataFields[i].feeSaveKey + \" ^^ \";\n\t\t\t}\n\t\t} //$log.info(\"saveFeesVouchers:\",sRawDataString);\n\t\t\n\t\tdataService.proSaveFeesVouchers(sRawDataString)\n\t\t.then(function(results) { //$log.info(\"proSaveFeesVouchers:\",results)\n\t\t\tif (results[0].RESULTCODE == 'Success') {\n\t\t\t\tsavePaymentProcessStep();\n\t\t\t} else {\n\t\t\t\tvar sEmailContent = errorEmailNotification.error4(\"nwtxPaymentCtrl/saveFeesVouchers\");\n\t\t\t\tsEmailContent += \"

Error: \" + results[0].RESULTREASON;\n\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t}\t\t\n\t\t});\n\t}\n\t\n\tfunction savePaymentProcessStep() {\n\t\t/*.132 - ReADD vm.paymentStepID data to var in stepsCtrl before passing as $stateParam to prevent \n\t\t\tsave as \"0\" here. ~ 5/16/18 lds */\n\t\t//.133 - Hardcoded paymentStepID in Steps $stateParam populating vm.paymentStepID. ~ lds\t\n\t\tvar sRawDataString = \"WebProtect || PayFee.133 || \" + loginService.user.USERID;\n\t\t\tif (vm.paymentSaveKey == 0) { sRawDataString += \" || I\"; }\n\t\t\telse { sRawDataString += \" || U || SaveKey==\" + vm.paymentSaveKey; }\n\t\tsRawDataString += \" || ProID==\" + $rootScope.sProID + \" || StepID==\" +\n\t\t\tvm.paymentStepID + \" || StepDate==\";\n\t\t\t\n\t\tif (vm.nPayAmt > 0) {\n\t\t\tsRawDataString += \" || StepProgress==Started, Update Pending ^^ \";\n\t\t} else {\n\t\t\tsRawDataString += datesService.todayToDbString() + \" || StepProgress==Completed ^^ \";\n\t\t}\n\n\t\tdataService.proSaveProcess(sRawDataString)\n\t\t.then(function(retProcess) {\n\t\t\tif (retProcess[0].RESULTCODE == \"Success\") {\n\t\t\t\tif (vm.nPayAmt == 0) {\n\t\t\t\t\t$state.go('steps',{reload:true});\t\n/* -- Removed. One applicant seemed to keep clicking payment button due to not clearing message,\n\tthus didn't advance to steps. Message not necessary. ~ 5/21/18 lds \n\t\t\t\t\t\n*/\n\t\t\t\t\t\n\t\t\t\t} else { \n\t\t\t\t\tpayPalService.goToPayPalVarFee(vm.nPayAmt, vm.iCertTypeID);\n\t\t\t\t}\t\n\t\t\t} else {\n\t\t\t\tvar sEmailContent = errorEmailNotification.error4(\"nwtxPaymentCtrl/savePaymentProcessStep\");\n\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t}\n\t\t});\t\t\n\t}\n\t\n\t\n/* Broadcasts: */\n\n/* Calls from View: */\n\t\n\tvm.addCamp = function() {\n\t\tif (vm.selCamp1.EVENTID != undefined) {\n\t\t\tif (vm.bShow2 == false) { vm.bShow2 = true; }\n\t\t\telse if (vm.selCamp2.EVENTID != undefined) {\n\t\t\t\tif (vm.bShow3 == false) { vm.bShow3 = true; }\n\t\t\t\telse if (vm.selCamp3.EVENTID != undefined) {\n\t\t\t\t\tif (vm.bShow4 == false) { vm.bShow4 = true; }\t\n\t\t\t\t} else {\n\t\t\t\t\tmodalService.okAlert(\"Invalid Entry\",\n\t\t\t\t\t\t\"Please make 3rd Camp Selection before adding \" +\n\t\t\t\t\t\t\"another camp.\");\n\t\t\t\t}\t\t\n\t\t\t} else {\n\t\t\t\tmodalService.okAlert(\"Invalid Entry\",\n\t\t\t\t\t\"Please make 2nd Camp Selection before adding \" +\n\t\t\t\t\t\"another camp.\");\n\t\t\t}\t\t\n\t\t} else {\n\t\t\tmodalService.okAlert(\"Invalid Entry\",\n\t\t\t\t\"Please make 1st Camp Selection before adding \" +\n\t\t\t\t\"another camp.\");\n\t\t}\n\t};\n\t\n\tvm.changeHandler = function(id,value) { //$log.info(\"id\",id,value)\n\t\tfor (var i=0; i
\" +\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 }\n \n function validatePW() {\n\t\tvar validatePassword = confirmPWChg.confirmPassword(vm.data.password, vm.data.confirmPW);\n\t\tswitch (validatePassword) {\n\t\t\tcase \"true\": \n\t\t\t\tif (vm.sPasswordStrength == \"Strong\" ||\n\t\t\t\t\tvm.sPasswordStrength == \"Very Strong\") {\n\t\t\t\t\t\tvm.bReadyToSavePW = true; \n\t\t\t\t} else {\n\t\t\t\t\tvm.bReadyToSavePW = false;\n\t\t\t\t\tvm.data.confirmPW = \"\";\n\t\t\t\t\tmodalService.okAlert(\"Password Strength\", \n\t\t\t\t\t\t\"The password needs to meet the \\\"Strong\\\" \" +\n\t\t\t\t\t\t\"or \\\"Very Strong\\\" validation before it can be saved.\");\n\t\t\t\t}\n\t\t\tbreak;\t\t\n\t\t\tcase \"false\":\n\t\t\t\tvm.bReadyToSavePW = false;\n\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tvm.bReadyToSavePW = false;\n\t\t\t\tvm.data.confirmPW = \"\";\n\t\t\t\tmodalService.okAlert(\"Password Validation\", validatePassword);\n\t\t\tbreak;\n\t\t}\n }\n \n function validateUserName() {\n\t\tvar un = vm.data.userName;\n\t\tif (un != \"\") {\n\t\t\tif (un.indexOf(\"'\") != -1) {\n\t\t\t\tmodalService.okAlert(\"Data Validation Error\",\n\t\t\t\t\t\"The User Name cannot contain an apostrophe ('). Please remove \" +\n\t\t\t\t\t\"the apostrophe from the User Name entry.\");\n\t\t\t\tvm.bReadyToSaveUsername = false;\t\n\t\t\t} else if (un.indexOf(\"gss\") != -1) {\n\t\t\t\tmodalService.okAlert(\"Data Validation Error\",\n\t\t\t\t\t\"The prefix of 'gss' is reserved for authorized Great Spirit Systems \" +\n\t\t\t\t\t\"staff only. Please use different characters for the first 3 positions in your \" +\n\t\t\t\t\t\"User Name.\");\n\t\t\t\tvm.bReadyToSaveUsername = false;\t\n\t\t\t} else if (un.length < 4) {\n\t\t\t\tmodalService.okAlert(\"Data Validation Error\",\n\t\t\t\t\t\"The User Name must be at least 4 characters in length.\");\n\t\t\t\tvm.bReadyToSaveUsername = false;\n\t\t\t} else { vm.bReadyToSaveUsername = true; }\n\t\t} else { vm.bReadyToSaveUsername = false; }\t\n }\n\t\t\t\n function saveNewPersonRecord() {\n\t\tvar fn = vm.data.firstName.toLowerCase();\n\t\tvar fName = fn.substr(0,1).toUpperCase() + fn.slice(1);\n\t\tvm.data.firstName = fName;\n\t\tvar ln = vm.data.lastName.toLowerCase();\n\t\tvar lName = ln.substr(0,1).toUpperCase() + ln.slice(1);\n\t\tvm.data.lastName = lName;\n\t\tvar sRawDataString = \"MCWebApps || NewAccount_PR || -10 || I || FirstName==\" + fName +\n\t\t\t\" || LastName==\" + lName + \" || ClergyLay==L || AppName==WebProtect || Locked==-1 ^^ \";\n\n\t\tdataService.peoSave(sRawDataString)\n\t\t.then(function (result) {\n\t\t\tif (result[0].RESULTCODE == \"Success\") {\n\t\t\t\tvar idx = result[0].RESULTREASON.indexOf(\"EntityID=\");\n\t\t\t\tvm.iEntityID = Number(result[0].RESULTREASON.slice(idx+9));\n\t\t\t\tsaveContactEmail();\n\t\t\t} else {\n\t\t\t\t/** Error thrown:\n\t\t\t\t * \t01/17/19 - McCurdy. Person record created. Unable to determine cause.\n\t\t\t\t *\t\t02/08/19 - Resolved... No DatabaseID saved to DataService yet. Fixed.\n\t\t\t\t **/\n\t\t\t\tvar sEmailContent = errorEmailNotification.error4(\"newAcctCtrl/saveNewPersonRecord()\",\n\t\t\t\t\tresult[0].RESULTREASON);\n\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t}\n\t\t});\n }\n \n function saveContactEmail() {\n\t\tcontactInfo.savePersonalEmail(vm.iEntityID,vm.data.email)\n\t\t.then(function(result) {\n\t\t\tif (result[0].RESULTCODE == \"Success\") {\n\t\t\t\tsaveUserAccount();\n\t\t\t} else {\n\t\t\t\tvar sEmailContent = errorEmailNotification.error4(\"newAcctCtrl/saveContactEmail\",\n\t\t\t\t\tresult[0].RESULTREASON);\n\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t}\n\t\t});\n\t}\t\n\t\t\n\tfunction saveUserAccount() {\n\t\tvar pwExpires = datesService.s15mosFromToday();\n\t\tvar sSaveString = \"MCWebApps || NewAccount_UA || -12 || I || UserName==\" +\n\t\t\tvm.data.userName + \" || UserFullName==\" + vm.data.firstName + \" \" + vm.data.lastName +\n\t\t\t\" || UserDesc==Public User || Active==1 || Admin==0 || Password==\" + vm.data.password +\n\t\t\t\" || PasswordExpires==\" + pwExpires + \" || PWStrength==\" + vm.sPasswordStrength + \n\t\t\t\" || UserEmail==\" + vm.data.email + \" || UserEntityID==\" + vm.iEntityID + \" || UserLevel==2 ^^ \";\n\t\t\n\t\tdataService.usersSave(sSaveString)\n\t\t.then(function(result) {\n if (result[0].RESULTCODE == \"Success\") {\n\t\t\t\t//found bug of \".\" after UserID, so have to detect length,\n\t\t\t\t//and remove 1 character to get actual UserID.\n\t\t\t\tvar idx = result[0].RESULTREASON.indexOf(\"UserID=\");\n\t\t\t\tvar len = result[0].RESULTREASON.length;\n\t\t\t\tvm.iUserID = result[0].RESULTREASON.substring(idx+7,len-1);\n\n\t\t\t\tswitch (vm.sDatabaseID) {\n\t\t\t\t\tcase \"MC\": case \"MC-DEV\":\n\t\t\t\t\t\tvar sRawDataString = \"MCWebApps || NewAcct_ProMain || \" + vm.iUserID + \n\t\t\t\t\t\t\t\" || I || EntityID==\" + vm.iEntityID + \" || CertTypeID==4 ^^ \";\n// $log.info(sRawDataString);\n\t\t\t\t\t\tdataService.proSaveMain(sRawDataString)\n\t\t\t\t\t\t.then(function(result) {\n\t\t\t\t\t\t\tif (result[0].RESULTCODE == \"Success\") {\n\t\t\t\t\t\t\t\tidx = result[0].RESULTREASON.indexOf(\"ProID=\");\n\t\t\t\t\t\t\t\tvm.sProID = result[0].RESULTREASON.slice(idx+6);\n\t\t\t\t\t\t\t\tsaveProProcessRecord();\t\n\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsendNewUserAcctEmail();\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (result[0].RESULTREASON.indexOf(\"UserName\") == 0 &&\n\t\t\t\t\tresult[0].RESULTREASON.indexOf(\"already in use\") > 0) {\n\t\t\t\t\tvm.data.userName = \"\";\n\t\t\t\t\tmodalService.okAlert(\"Invalid Entry\",\n\t\t\t\t\t\tresult[0].RESULTREASON + \n\t\t\t\t\t\t\"
Please try entering another unique User Name.\");\n\t\t\t\t} else {\t\n\t\t\t\t\tvar sEmailContent = errorEmailNotification.error4(\"newAcctCtrl/saveUserAccount\",\n\t\t\t\t\t\tresult[0].RESULTREASON);\n\t\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t\t}\t\n\t\t\t}\n\t\t});\n }\n \n\t//McCurdy ONLY... as ONLY Protect app in use!\n\tfunction saveProProcessRecord() {\n\t\tvar dStepExpires = datesService.s6mosFromToday();\n\t\tvar sDbToday = datesService.todayToDbString();\n\n\t\tvar sRawDataString = \"MCWebApps || NewAcct_ProProcess || \" + vm.iUserID +\n\t\t\t\" || I || ProID==\" + vm.sProID + \" || StepID==400 || StepDate==\" + sDbToday + \n\t\t\t\" || StepNote==Initialized by \" + vm.data.firstName + \" \" + vm.data.lastName + \n\t\t\t\" ^^ I || ProID==\" + vm.sProID + \" || StepID==401 || StepExpires==\" + \n\t\t\tdStepExpires + \" ^^ \";\n\t\t\n\t\tdataService.proSaveProcess(sRawDataString)\n\t\t.then(function(result) {\n\t\t\tif(result[0].RESULTCODE == 'Success') {\n\t\t\t\tproSaveInitData();\n\t\t\t} else {\n\t\t\t\tvar sEmailContent = errorEmailNotification.error4(\"newAcctCtrl/saveProProcessRecord\",\n\t\t\t\t\tresult[0].RESULTREASON);\n\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t}\n\t\t});\n }\n\n\t//McCurdy ONLY... save initial Protect data...\n\tfunction proSaveInitData() {\n\t\tvar sRawDataString = \"MCWebApps || NewAcct_ProData || \" + vm.iUserID + \" || \";\n\n\t\tdataService.proGetForm(\"Application\")\n\t\t.then(function(defs) {\n\t\t\tif (defs.length > 0) {\n\t\t\t\tfor (var i=0; i 0) {\n\t\t\t\tfor (var i=0; i\" +\n\t\t\t\t\"You must create a new password to continue.\");\n\t\t\t$state.go('chgPW');\t\n\t\t} else {\n\t\t\tvar sFn = \"\";\n\t\t\tvar sPath = \"\";\n\t\t\tswitch (app) {\n\t\t\t\tcase \"Charges & Appointments\":\n\t\t\t\t\t//coming\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\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\tsPath = statsURL;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\t\n\t\t/* Validate ReturnCode, resetting to expire in 1 minute...\n\t\t\tCall for NEW ReturnCode set to expire in 1 minute...\n\t\t\tAnd go to new app (sFn), which will login to new app and issue new ReturnCode\n\t\t\t\tfor session in new app. */\n\t\t\tswitch (sFn) {\n\t\t\t\tcase \"ProRef\":\n\t\t\t\t\ttimeOutService.resetTimer(30);\n\t\t\t\t\t$state.go('certMgmt', {reload:true});\t\t\t\t\t\t\t\t\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\tvm.goToMyCerts = function() {\n\t\t$state.go('myCerts');\n\t}\n\t\n\t/** Deletes the active ReturnCode, removes all secure apps,\n\tsends user back to login screen, selected Customer retained: */\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\t\t\n\t.module('proRefs')\n\t.controller('MyCertsController', MyCertsController);\n\nMyCertsController.$inject = ['dataService','loginService','$state','$stateParams',\n\t'$rootScope','webSessionStorage','datesService','$log'];\n\t\nfunction MyCertsController(dataService, loginService, $state, $stateParams,\n\t$rootScope, webSessionStorage, datesService, $log) {\n\n\tvar vm = this;\n\n\tvm.addNew = { image: \"assets/images/plus_16.png\"};\n\tvm.arcCertRecords = [];\n\tvm.bCampInProcess = false;\n\tvm.bInProcess = false;\n\tvm.bLCAApproved = false;\n\tvm.bVIMInProcess = false;\n\tvm.bProcessExpiring = false;\n\tvm.bCertExpiring = false;\n\tvm.iCertTypeID = 0;\n\tvm.imgCamp = { image: \"assets/images/NWTXCampingvolunteer.png\" };\n\tvm.imgVIM = { image: \"assets/images/VIMButton.png\" };\n\tvm.mc32 = { image: \"assets/images/MCicon32.png\"};\n\tvm.proProcessName = \"\";\n\tvm.sChurchName = \"\";\n\tvm.sDatabaseID = webSessionStorage.getStoredData('sDatabaseID');\n\tvm.sDbToday = datesService.todayToDbString();\n\tvm.username = loginService.user.USERNAME;\n\n\t\n//INITIALIZE:\t\n\t$rootScope.sCurForm = \"My Certifications\";\n$log.info($rootScope.sCurForm);\n\t$rootScope.$broadcast('closeMenu');\n\t\n\tdataService.libGetASetting(\"ProProcessName\")\n\t.then(function(result) { //$log.info(\"libGetASetting:\",result)\n\t\tvm.proProcessName = result[0].SETTINGVALUE;\n\t});\n\t\n\tdataService.proGetCertRecords(loginService.user.USERID, loginService.user.USERENTITYID)\n\t.then(function(certs) { // $log.info(\"Certs:\", certs)\n\t\tif (certs.length > 0) {\n\t\t\tfor (var i=0; i 0) {\n\t\t\t\tvar resultReason = main[0].RESULTREASON;\n\t\t\t\tvar idx = resultReason.indexOf(\"ProID=\");\n\t\t\t\t$rootScope.sProID = resultReason.slice(idx+6);\n\t\t\t\t\n\t\t\t\tsaveInitAndApplRecords();\n\t\t\t}\n\t\t});\n\t}\n\t\n\tfunction saveInitAndApplRecords() {\n\t\t//calculate StepExpires for Application step:\n\t\tvar dStepExpires = \"\";\n\t\tswitch (vm.sDatabaseID) {\n\t\t\tcase \"NWTX\": case \"NWTX-DEV\": \n\t\t\tcase \"MC\": case \"MC-DEV\":\n\t\t\t\t// 6 mos. from Initialization Date\n\t\t\t\tdStepExpires = datesService.s6mosFromToday();\n\t\t\tbreak;\n\t\t\tdefault: // 1 year from today\n\t\t\t\tdStepExpires = \tdatesService.s1yrFromToday();\n\t\t\tbreak;\t\n\t\t}\n\t\tvar sRawDataString = \"WebApps_Pro || myCerts_New || \" + loginService.user.USERID +\n\t\t\t\" || I || ProID==\" + $rootScope.sProID + \" || StepID==\" + vm.iCertTypeID+\"00\" +\n\t\t\t\" || StepDate==\" + vm.sDbToday + \" || StepNote==Initialized by \" + \n\t\t\tloginService.user.USERFULLNAME + \n\t\t\t\" ^^ I || ProID==\" + $rootScope.sProID + \" || StepID==\" + vm.iCertTypeID+\"01\" +\n\t\t\t\" || StepExpires==\" + dStepExpires + \" ^^ \";\n\t\t\n\t\tdataService.proSaveProcess(sRawDataString)\n\t\t.then(function(result) {\n\t\t\tif(result[0].RESULTCODE == 'Success') {\n\t\t\t\t$state.go('steps', {reload:true});\n\t\t\t}\n\t\t});\n\t}\n\n\n/* Broadcasts: */\n\n/* Called from view: */\t\n \n vm.addNewOnlineProcess = function(certID) {\n\t\tvm.iCertTypeID = certID;\n\t\tsaveMainRecord();\n\t};\n \n vm.loadProcessSteps = function(cert) { //$log.info('clicked cert:', cert);\n\t\tif (cert.CHURCHID != \"\") {\n\t\t\tloginService.user.CHURCHID = cert.CHURCHID;\n\t\t}\n\t\t$rootScope.sProID = cert.PROID;\n\t\t$rootScope.curCertRecord = cert;\n\t\t$state.go('steps', {reload:true});\n }; \t\n}\n\nangular\n .module('proRefs')\n .controller('ModalController', ModalController);\n\nModalController.$inject = ['$uibModalInstance','modType','title','alertMsg',\n\t'dataService','datesService','$sce','modalService','$log'];\n\nfunction ModalController($uibModalInstance, modType, title, alertMsg, \n\tdataService, datesService, $sce, modalService, $log) {\n var vm = this;\n \n vm.modType = modType;\t//OK, printOpts, ...\n vm.sTitle = title;\n vm.sAlertMsg = $sce.trustAsHtml(alertMsg);\n$log.info(\"ModalAlert:\",modType) \n\n\t\n//modType='OK':\n\tvm.cancel = function() {\n\t\t$uibModalInstance.dismiss();\n\t};\n\n}\n\nangular\n .module('proRefs')\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('proRefs')\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 * \t05/28/19 lds - Added timeOutService, and resetting of Customer on form reload.\n **/\n\nangular\n .module('proRefs')\n .controller('LoginController', LoginController);\n\nLoginController.$inject = ['webSessionStorage','$rootScope', 'dataService', '$state',\n\t'loginService','$uibModal','modalService','custData','headerService','appValidationService',\n\t'setCustService','timeOutService','$sce','$log'];\n\nfunction LoginController(webSessionStorage, $rootScope, dataService, $state,\n\tloginService, $uibModal, modalService, custData, headerService, appValidationService,\n\tsetCustService, timeOutService, $sce, $log) {\n var vm = this; //as vmLI\n\n vm.addNew = { image: \"assets/images/plus_16.png\" }; \n vm.bShowConferences = false;\n\tvm.bAcctInit = false;\n vm.custDB = custData;\n vm.imgMCBanner = { image: \"assets/images/McCurdy.png\" };\n\tvm.sDatabaseID = webSessionStorage.getStoredData('sDatabaseID');\n\tvm.selConf = custData[0];\n\tvm.sMaintenanceMsg = \"\";\n\tvm.sUsername = \"\";\n vm.sPassword = \"\";\n \n\n \n//INITIALIZE: \n $rootScope.sCurForm = 'login';\n$log.info($rootScope.sCurForm) \n\t\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// if ($rootScope.TESTING) { vm.sDatabaseID = \"\"};\t \n\tif (vm.sDatabaseID !== null && vm.sDatabaseID !== \"\" &&\n\t\tangular.isDefined(vm.sDatabaseID) == true) {\n\t\tsetCustService.fromDatabaseID(vm.sDatabaseID);\t\n\t} else { \n\t\tvm.bShowConferences = true; \n\t}\n\t\n\t/* Display MaintenanceMsg: */\n\tdataService.libGetMaintenanceMsg()\n\t.then(function(msg) { // $log.info('msg', msg);\n\t\tif (msg.length > 0) {\n\t\t\tvm.sMaintenanceMsg = $sce.trustAsHtml(msg[0].SETTINGVALUE);\n\t\t}\n\t});\n\n //Display \"Create New Account\" button for those who use it:\n\tswitch (vm.sDatabaseID ) {\n\t\tcase \"MC\": case \"MC-DEV\":\n\t\tcase \"NWTX\": case \"NWTX-DEV\":\n\t\t\tvm.bAcctInit = true;\n\t\tbreak;\n\t\tdefault:\n\t\t\tvm.bAcctInit = false;\n\t\tbreak;\t\n\t}\n \n function 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\t\t\t\t\t\n\t\t\t\t/* Determine landing page... */\n\t\t\t\t\tif (appValidationService.validateAccess() == \"CertMgmt\") {\n\t\t\t\t\t\t$rootScope.sCurForm = 'Protect References';\n\t\t\t\t\t\t$state.go('certMgmt');\n\t\t\t\t\t} else { \n\t\t\t\t\t\t$rootScope.sCurForm = 'MyCerts';\n\t\t\t\t\t\t$state.go('myCerts'); \n\t\t\t\t\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 your password sent to you by clicking the \\\"Forgot \" +\n\t\t\t\t\t\"Password\\\" button.\");\n\t\t\t} else if (data[0].SECUSERLOGIN[0].RESULT == \"Multiple\") {\n\t\t\t\topenConfSelectModal(data[0].SECUSERLOGIN[0].HELPGETDBBYUSER);\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 your password sent to you by clicking the \\\"Forgot \" +\n\t\t\t\t\t\"Password\\\" button.\");\n\t\t\t}\n\t\t});\n\t}\n \n \n//Modals:\n\tfunction openConfSelectModal(arrConfs) {\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\tvm.validateUserLogin();\t\n\t\t});\n\t}\n \n \n//Called from View:\n\n vm.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}\n\t\t} \n\t};\n \n vm.forgotPassword_clickHandler = function() {\n\t\tif (vm.sDatabaseID == null || vm.sDatabaseID == \"\") {\n\t\t\tvm.bShowConferences = true;\n\t\t\tmodalService.okAlert(\"Forgot Password\", \n\t\t\t\t\"Please select your conference from the drop-list, and enter your Username, \" +\n\t\t\t\t\"then click the Forgot Password button again.\");\n\t\t\t\n\t\t} else if (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.
Your password will be emailed to the Email address listed \" +\n\t\t\t\t\"on your account.

\" +\n\t\t\t\t\"If you do not receive your password within 10-15 minutes, please contact your \" +\n\t\t\t\t\"MissionConnect Administrator to verify that your account email address is correct.\");\n\t\t} else {\t\t\n\t\t\tdataService.sendForgottenPassword(vm.sUsername)\n\t\t\t.then(function(data) { //$log.info(\"sendPassword\", data)\n\t\t\t\tswitch (data) { \n\t\t\t\t\tcase \"No User Account\":\n\t\t\t\t\t\tmodalService.okAlert(\"Account Not Found\", \n\t\t\t\t\t\t\t\"There is no user account with that Username.

\" +\n\t\t\t\t\t\t\t\"Please be sure you entered it correctly. The Username is \" +\n\t\t\t\t\t\t\t\"Case-Sensitive. Otherwise, contact your MissionConnect \" +\n\t\t\t\t\t\t\t\"Administrator to verify the Username you are using is correct.\");\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Completed\":\n\t\t\t\t\t\tmodalService.okAlert(\"Password Sent\", \n\t\t\t\t\t\t\t\"Your password has been sent.\\n\\n\" +\n\t\t\t\t\t\t\t\"Check your Email Inbox for the email with Subject:
\" +\n\t\t\t\t\t\t\t\"\\\"Your MissionConnect Login Information\\\".

\" +\n\t\t\t\t\t\t\t\"If the email does not arrive within 10-15 minutes, be sure \" +\n\t\t\t\t\t\t\t\"to also check your spam and junk folders.\");\n\t\t\t\t\tbreak;\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t}\n };\n \n//Close MENU:\n\tvm.onFocus = function() {\n\t\t$rootScope.$broadcast('closeMenu');\n\t};\n\t\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 \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\n\t\t}\n\t};\n}\nangular\n .module('proRefs')\n .controller('LCACovenantController', LCACovenantController);\n\nLCACovenantController.$inject = ['dataService','$rootScope','loginService','$state','modalService',\n\t'$stateParams','datesService','errorEmailNotification','webSessionStorage','$log'];\n\nfunction LCACovenantController(dataService, $rootScope, loginService, $state, modalService,\n\t$stateParams, datesService, errorEmailNotification, webSessionStorage, $log) {\n var vm = this; //vmLCA\n \n vm.arrDataFields = [];\n vm.displayGrp1 = [];\n vm.header1 = \"\";\n vm.sChurchName = \"\";\n vm.sConsent = \"\";\n vm.sDatabaseID = webSessionStorage.getStoredData('sDatabaseID');\n vm.sUserFullName = loginService.user.USERFULLNAME;\n \n \n//INITIALIZE:\n\t$rootScope.sCurForm = \"LCA Covenant\";\n$log.info($rootScope.sCurForm);\n\n\tdataService.proGetMain($rootScope.sProID)\n\t.then(function(main) {\n\t\tif (main.length > 0) {\n\t\t\tdataService.getChurchName(main[0].CHURCHID)\n\t\t\t.then(function(chName) {\n\t\t\t\tvm.sChurchName = chName;\n\t\t\t\t\n\t\t\t\tdataService.proGetForm(\"LCACovenant\")\n\t\t\t\t.then(function(defs) {\t//$log.info(\"defs:\",defs)\n\t\t\t\t\t\n\t\t\t\t\tdataService.proGetFormData(\"LCACovenant\")\n\t\t\t\t\t.then(function(data) { //$log.info(\"data:\",data)\n\t\t\t\t\t\t\n\t\t\t\t\t\tcreateForm(defs, data);\n\t\t\t\t\t})\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t});\n\t\n\tfunction createForm(defs, data) {\n\t\tfor (var i=0; i 0) {\n\t\t\t\tfor (var j=0; j 0) {\n\t\t\t\t\tsRawDataString += \"U || SaveKey==\" + vm.arrDataFields[i].saveKey;\n\t\t\t\t} else { sRawDataString += \"I\"; }\n\t\t\t\tsRawDataString += \" || ProID==\" + $rootScope.sProID + \" || ItemID==\" +\n\t\t\t\t\tvm.arrDataFields[i].id + \" || ItemData==\" + vm.arrDataFields[i].data + \" ^^ \";\n\t\t\t}\n\t\t} //$log.info(\"saveData:\",sRawDataString)\n\t\tdataService.proSaveFormData(sRawDataString)\n\t\t.then(function(results) {\n\t\t\tif (results[0].RESULTCODE == 'Success') {\n\t\t\t\tsaveProProcessRecord();\n\t\t\t}\n\t\t});\n\t}\n\t\n\tfunction saveProProcessRecord() {\n// \t\tvar sDbToday = datesService.todayToDbString();\n\t\tvar sRawDataString = \"WebApps_Pro || lcaCovenant || \" + loginService.user.USERID + \n\t\t\t\" || I || ProID==\" + $rootScope.sProID + \" || StepID==\" + $stateParams.iStepID + \n\t\t\t\" || StepDate==\" + datesService.todayToDbString() + \" || StepProgress==Completed ^^ \";\n\t\t\t\n\t\tdataService.proSaveProcess(sRawDataString)\n\t\t.then(function(result) {\n\t\t\tif (result[0].RESULTCODE == 'Success') {\n\t\t\t\tif (vm.sDatabaseID == \"MO\") {\n\t\t\t\t\t/* Per request by Tina Twenter 9/24/18 ~\n\t\t\t\t\t\tSend Email to Tina when applicant completes LCA Covenant: */\n\t\t\t\t\tvar sLCAEmailContent = vm.sUserFullName + \n\t\t\t\t\t\t\" has completed the LCA Covenant step of the LCA process, \" +\n\t\t\t\t\t\t\"and will be listed as an Approved LCA for \" +\n\t\t\t\t\t\tvm.sChurchName + \" in the system after the nightly processes run.\";\n\t\t\t\t\tdataService.emailSendCustom(\"ssanctuaries@moumethodist.org\", \n\t\t\t\t\t\t'mchelp@greatspirit.com', 'mchelp@greatspirit.com',\n\t\t\t\t\t\t'LCA Approved', sLCAEmailContent);\n\t\t\t\t}\n\t\t\t\t$state.go('steps', {reload:true});\n\t\t\t} else {\n\t\t\t\tvar sEmailContent = errorEmailNotification.error4(\"lcaCovenant/saveProProcessRecord\");\n\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t}\n\t\t});\t\n\t}\n\n/* Broadcasts: */\n\n/* Calls from View: */\n\t\n\tvm.cancel = function() {\n\t\t$state.go('steps', {reload:true});\n\t};\n\t\n\tvm.changeHandler = function(id) {\n\t\tfor (var i=0; i 0) {\n\t\t\tvm.iChurchID = main[0].CHURCHID;\n\t\t\t\n\t\t\tdataService.proGetChOrgSettings(vm.iChurchID)\n\t\t\t.then(function(chOrg) {\n\t\t\t\tif (chOrg.length > 0) {\n\t\t\t\t\tif (chOrg[0].POLICYURL != \"\") {\n\t\t\t\t\t\tvm.sLCPolicyURL = chOrg[0].POLICYURL;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvm.sLCPolicyURL = \"https://umcdata.net/Falcon/CustomerData/Mo/LCPolicies/SSPol_missing.pdf\";\n\t\t\t\t\t}\n\t\t\t\t\tif (chOrg[0].COVENANTURL != \"\") {\n\t\t\t\t\t\tvm.sCovenantURL = chOrg[0].COVENANTURL;\n\t\t\t\t\t\tvm.obj1 = {HTML:\"\", id:0, label:\"Display Safe Sanctuaries Covenant\",\n\t\t\t\t\t\t\tcontrol:\"Button\", itemName:\"Covenant\", \n\t\t\t\t\t\t\tseq:45, required:true, group:\"\", grpSeq:1, data:\"\"};\n\t\t\t\t\t}\n\t\t\t\t\tgetFormDefs();\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tvm.sLCPolicyURL = \"https://umcdata.net/Falcon/CustomerData/Mo/LCPolicies/SSPol_missing.pdf\";\n\t\t\tgetFormDefs();\n\t\t}\n\t});\n\t\n\tfunction getFormDefs() {\n\t\tdataService.proGetForm(\"LCPolicy\")\n\t\t.then(function(defs) {\n\t\t\tif (defs.length > 0) {\n\t\t\t\tdefs.sort(function(a, b) {\n\t\t\t\t\treturn a.ITEMSEQ - b.ITEMSEQ\n\t\t\t\t});\n\t\t\t\tvm.arrFormDefs = defs;\n\t\t\t\t\n\t\t\t\t//Create Form:\n\t\t\t\tfor (var i=0; i 0) { \n\t\t\t\t\t\t\t\tvm.displayGrp1.push(vm.obj1);\n\t\t\t\t\t\t\t\tvm.obj1 = {};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tobj = {};\t\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t}\n\t\t});\t\t\n\t}\n \n\tfunction saveData() {\n\t\tvar sRawDataString = \"WebApps_Pro || LCPolicy || \" + loginService.user.USERID + \" || \";\n\t\tfor (var i=0; i 0) {\n\t\t\t\tif (result[0].RESULTCODE == \"Success\") {\n\t\t\t\t\tsaveProcessStep();\n\t\t\t\t} else {\n\t\t\t\t\tvar reason = result[0].RESULTREASON;\n\t\t\t\t\tif (reason.indexOf('Cannot insert duplicate key') > 0) {\n\t\t\t\t\t\t//user already saved result... so go ahead and saveProcessStep(); ~ lds 12/11/19 added\n\t\t\t\t\t\tsaveProcessStep();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmodalService.resultAlert(\"sm\", result[0].RESULTREASON);\n\t\t\t\t\t\tvar sEmailContent = errorEmailNotification.error4(\"lcPolicyCtrl/saveData\");\n\t\t\t\t\t\tdataService.emailSendError(sEmailContent);\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsEmailContent = \n\t\t\t\t\terrorEmailNotification.error4(\"lcPolicyCtrl/saveData\");\n\t\t\t\tdataService.emailSendError(sEmailContent);\t\n\t\t\t}\n\t\t});\n\t}\n\t\n\tfunction saveProcessStep() {\n\t\tvar sRawDataString = \"WebApps_Pro || LCPol_ProProcess || \" + loginService.user.USERID +\n\t\t\t\" || I || ProID==\" + $rootScope.sProID + \" || StepID==\" + $stateParams.iStepID + \n\t\t\t\" || StepDate==\" + vm.sDbToday + \" || StepProgress==Completed ^^ \";\n \n\t\tdataService.proSaveProcess(sRawDataString)\n\t\t.then(function(result) {\n\t\t\tif (result.length > 0) {\n\t\t\t\tif (result[0].RESULTCODE == \"Success\") {\n\t\t\t\t\t$state.go('steps', {reload:true});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t\t\t\t\t\t\t\t\n\n/* Broadcasts: */\n\n/* Calls from View: */\n\t\n\tvm.button_clickHandler = function(item) {\n\t\tswitch (item.itemName) {\n\t\t\tcase \"LCPolicy\":\n\t\t\t\t$window.open(vm.sLCPolicyURL, '_blank');\n\t\t\t\tvm.bPolicyViewed = true;\n\t\t\tbreak;\n\t\t\tcase \"Covenant\":\n\t\t\t\t$window.open(vm.sCovenantURL, '_blank');\n\t\t\t\tvm.bCovenantViewed = true;\n\t\t\tbreak;\n\t\t}\t\n\t};\n\t\n\tvm.cancel = function() {\n\t\t$state.go('steps', {reload:true});\n\t};\n\t\n\tvm.checkBox_changeHandler = function(item) { $log.info('item', item, vm.bPolicyViewed, vm.bCovenantViewed);\n\t\tif (vm.bPolicyViewed == true) {\n\t\t\tif (vm.sCovenantURL == \"\") {\n\t\t\t\tif (vm.bReviewed == true) {\n\t\t\t\t\tvm.bReadyToSubmit = \"true\";\n\t\t\t\t\tfor (var i=0; i 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('proRefs')\n .controller('ChgPasswordController', ChgPasswordController);\n\nChgPasswordController.$inject = ['$rootScope','$state', 'passwordStrength','validatorService',\n\t'confirmPWChg', 'dataService','loginService','modalService','appValidationService','$log'];\t\n\nfunction ChgPasswordController($rootScope, $state, passwordStrength, validatorService,\n\tconfirmPWChg, dataService, loginService, modalService, appValidationService, $log) {\n\tvar vm = this;\t//vmCP\n \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\tvm.data = { oldPW:\"\",\n\t\tnewPW:\"\", confirmPW:\"\",\n\t\temail:\"\", confirmEmail:\"\"\t\n\t};\n \n $rootScope.sCurForm = \"Change Password/Email\";\n\n\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\telse {\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() {$log.info(\"validatePW\")\n\t\tif (vm.data.oldPW != \"\") {\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\t\tvm.bReadyToSavePW = true; \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\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\t\n\t//Already logged in before updating Email or Password:\n function saveNewEmail() {\n\t\tvar sSaveString = \"WebProtect || chgPW || \" + loginService.user.USERID + \n\t\t\t\" || U || UserID==\" + loginService.user.USERID + \n\t\t\t\" || UserEmail==\" + vm.data.email + \" ^^ \";\n\t\t\t\n\t\tdataService.usersSave(sSaveString)\n\t\t.then(function(data) {\n if (data[0].RESULTCODE == \"Success\") {\n\t\t\t\tloginService.user.USEREMAIL = vm.data.email;\n\t\t\t\tvar sSaveSuccessMsg = \"Your email has been updated successfully!
\";\n\t\t\t\tif (vm.bReadyToSavePW != true) {\n\t\t\t\t\tmodalService.okAlert(\"Save Successful\", sSaveSuccessMsg);\n\t\t\t\t\t\n\t\t\t\t\tif (!$rootScope.bPasswordExpired) {\n\t\t\t\t\t/* Determine landing page... */\n\t\t\t\t\t\tif (appValidationService.validateAccess() == \"CertMgmt\") {\n\t\t\t\t\t\t\t$rootScope.sCurForm = 'Protect References';\n\t\t\t\t\t\t\t$state.go('certMgmt');\n\t\t\t\t\t\t} else { \n\t\t\t\t\t\t\t$rootScope.sCurForm = 'MyCerts';\n\t\t\t\t\t\t\t$state.go('myCerts'); \n\t\t\t\t\t\t}\n\t\t\t\t\t} else { \n\t\t\t\t\t\tloginService.user.USEREMAIL = vm.data.email;\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\tvar sSaveString = \"WebApps_Pro || chgPW || \" + loginService.user.USERID +\n\t\t\t\" || U || UserID==\" + loginService.user.USERID + \" || UserName==\" +\n\t\t\tloginService.user.USERNAME + \" || OldPassword==\" + vm.data.oldPW +\n\t\t\t\" || NewPassword==\" + vm.data.newPW + \" || PWStrength==\" + \n\t\t\tvm.sPasswordStrength + \" ^^ \";\n\t\t\t\n\t\tdataService.usersChangePassword(sSaveString)\n\t\t.then(function(data) {\n\t\t\tif (data[0].RESULTCODE == \"Success\") {\n\t\t\t\t$rootScope.bPasswordExpired = false;\n\t\t\t\tmodalService.okAlert(\"Save Successful\", \n\t\t\t\t\t\"Your password has been updated successfully!\");\n\t\t\t\t\n\t\t\t\t//No need to store updated Password. \n\t\t\t\tif (appValidationService.validateAccess() == \"CertMgmt\") {\n\t\t\t\t\t$rootScope.sCurForm = 'Protect References';\n\t\t\t\t\t$state.go('certMgmt');\n\t\t\t\t} else { \n\t\t\t\t\t$rootScope.sCurForm = 'MyCerts';\n\t\t\t\t\t$state.go('myCerts'); \n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t$state.reload();\n\t\t\t\tmodalService.okAlert(\"Save Failed\", msg + data[0].RESULTREASON);\n\t\t\t}\n\t\t});\t\n }\n \n/* Externally Called Functions: */\n\n vm.cancelChanges = function() {\n\t\tif ($rootScope.bPasswordExpired) {\n\t\t\t$state.reload();\n\t\t\tmodalService.okAlert(\"Expired\",\n\t\t\t\t\"Your password is expired, and must be updated before you may \" +\n\t\t\t\t\"use the application.\");\n\t\t} else {\n\t\t\t//Return to Landing page for app:\n\t\t\tif (appValidationService.validateAccess() == \"CertMgmt\") {\n\t\t\t\t$rootScope.sCurForm = 'Protect References';\n\t\t\t\t$state.go('certMgmt');\n\t\t\t} else { \n\t\t\t\t$rootScope.sCurForm = 'MyCerts';\n\t\t\t\t$state.go('myCerts'); \n\t\t\t}\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\t//May be updating PW, Email or both...\t\t\n\t\tif (vm.bReadyToSavePW == true) {\n\t\t\tif ((vm.data.email==\"\" && vm.data.confirmEmail==\"\") ||\n\t\t\t\tvm.bReadyToSaveEmail == true) {\n\t\t\t\tvm.bReadyToSave = 'true'; \n\t\t\t} else { vm.bReadyToSave = 'false'; }\n\t\t} else if (vm.bReadyToSaveEmail == true &&\n\t\t\tvm.data.newPW == \"\" && vm.data.confirmPW == \"\") {\n\t\t\t\tvm.bReadyToSave = 'true';\n\t\t} else { vm.bReadyToSave = 'false'; }\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}\n\t\t\t}\t\n\t\t} \n\t}; \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}\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}\t\t\n };\n \n}\nangular\n .module('proRefs')\n .controller('CertMgmtController', CertMgmtController);\n\nCertMgmtController.$inject = ['dataService', '$rootScope', '$state', 'loginService', '$log'];\n\nfunction CertMgmtController(dataService, $rootScope, $state, loginService, $log) {\n var vm = this;\n \n vm.churchCerts = [];\n vm.churches = [];\n vm.mChkShowAll = true;\n vm.pastorRefs = [];\n vm.refresh = { image: \"assets/images/refresh_22.png\" };\n vm.settings = { image: \"assets/images/gear_24.png\" };\n\tvm.sView = \"refs\";\t/* Default */\n vm.sUserFullName = loginService.user.USERFULLNAME;\n\t\n\t$rootScope.sCurForm = \"Pastor References\";\n\t$rootScope.$broadcast('closeMenu');\n\t\n if (loginService.user.USERENTITYID > 0) {\n\t\tloadData();\n\t}\n\t\n\tfunction loadData() {\n\t\tdataService.proLoadPRRefs(loginService.user.USERENTITYID, vm.mChkShowAll)\n .then(function(refs) { // $log.info(\"refs:\",refs)\n\t\t\tfor (var i=0; i 0) {\t\t\t\n\t\t\t\t//combine certTypes into a single record:\n\t\t\t\tfor (var i=0; i\n\tvm.iCertTypeID = $rootScope.curCertRecord.CERTTYPEID;\n vm.header1 = \"\";\n\tvm.sDbToday = datesService.todayToDbString();\n\n//Added to prevent double-click duplication:\n vm.bDataSaved = false;\n\t\n// \t$log.info(\"iCertTypeID:\",$rootScope.curCertRecord.CERTTYPEID)\n \n/* Initialize: */\n\t$rootScope.sCurForm = \"Authorization\";\n$log.info($rootScope.sCurForm);\n\t\n\tdataService.proGetFormData(\"Authorization\")\n\t.then(function(formData) {\n\t\t\n\t\tdataService.proGetForm(\"Authorization\")\n\t\t.then(function(defs) {\n\t\t\tif (defs.length > 0) {\n\t\t\t\tvm.arrFormDefs = defs;\n\t\t\t\tfor (var i=0; i 0) {\n\t\t\t\t\t\t\t\tfor (var j=0; j 0) {\n\t\t\t\t\tfor (var i=0; i
v.101: Added double-click prevention 1/9/18... but still \" +\n\t\t\t\t\t\t\"hitting this error.\";\n\t\t\t\t\tdataService.emailSendError(sEmailContent);\t\n\t\t\t\t}\n\t\t\t});\n\t\t}\t\n\t}\n\t\n\tfunction saveProcessStep() {\n\t\tvar sRawDataString = \"WebApps_Pro || Auth_ProProcess || \" + loginService.user.USERID +\n\t\t\t\" || I || ProID==\" + $rootScope.sProID + \" || StepID==\" + $stateParams.iAuthStepID + \n\t\t\t\" || StepDate==\" + vm.sDbToday + \" || StepProgress==Completed ^^ \";\n\t\t\n\t\tdataService.proSaveProcess(sRawDataString)\n\t\t.then(function(result) {\n\t\t\tif (result.length > 0) {\n\t\t\t\tif (result[0].RESULTCODE == \"Success\") {\n\t\t\t\t\tvm.bProcessSaved = true;\n\t\t\t\t\tsendBackgroundScreen();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tmodalService.resultAlert(\"sm\", result[0]);\n\t\t\t\tvar sEmailContent = errorEmailNotification.error4(\"authCtrl/saveProcessStep\");\n\t\t\t\t\tdataService.emailSendError(sEmailContent);\n\t\t\t}\n\t\t});\n\t}\n\t\n\tfunction sendBackgroundScreen() { \n\t\tvar sDatabaseID = webSessionStorage.getStoredData('sDatabaseID');\n\t\tswitch (sDatabaseID) { \n\t\t\tcase \"MO\":\n\t\t\t\t/* Removed iCertTypeID... not needed in MO for now. ~ lds 6/28/18 v...139 */\n\t\t\t\tbackgroundService.firstAdvantage(vm.iBkgrdStepID, bkgrdSuccess, \n\t\t\t\t\tbkgrdError);\n\t\t\t\tvm.bShowCursor = true;\t\n\t\t\tbreak;\n\t\t\tcase \"NWTX\": case \"NWTX-DEV\":\n\t\t\tcase \"MC\": case \"MC-DEV\":\n\t\t\t\tvm.bShowCursor = true;\n\t\t\t\tbackgroundService.protectMyMinistry(vm.iBkgrdStepID, vm.iCertTypeID, bkgrdSuccess,\n\t\t\t\t\tbkgrdError);\n\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tmodalService.okAlert(\"Dev Database Found\",\n\t\t\t\t\t\"The background screen was NOT sent, since this is a TEST database.\");\n\t\t\t\tbkgrdSuccess();\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tfunction bkgrdError() {\n\t\tvm.bShowCursor = false;\n\t\tmodalService.okAlert(\"Error\",\n\t\t\t\"An Error occurred while submitting the Background screen.\");\n\t\t$state.go('steps',{reload:true});\t\n\t}\n\n\tfunction bkgrdSuccess() {\n\t\tvm.bShowCursor = false;\n\t\tmodalService.okAlert(\"Success\",\n\t\t\t\"Information for your Background \" +\n\t\t\t\"Screen has been successfully submitted.\");\n\t\t$state.go('steps', {reload:true});\n\t}\n\n\t\n/* Broadcasts: */\n\n\n/* Calls from View: */\n\tvm.cancelHandler = function() {\n\t\t$state.go('steps', {reload:true});\n\t};\n\t\n\tvm.changeHandler = function(id, value) {\n\t\tfor (var i=0; i
\" +\n\t\t\t\t\t\"The first missing field is: \" + vm.arrDataFields[i].label);\n\t\t\tbreak; }\n\t\t\telse if (i == vm.arrDataFields.length-1) {\n\t\t\t\tvalidateData();\n\t\t\t}\n\t\t}\n\t};\n\n}\nangular\t\t\n\t.module('proRefs')\n\t.controller('ApplicationController', ApplicationController);\n\nApplicationController.$inject = ['$rootScope','loginService','dataService',\n\t'webSessionStorage','$sce','$state','modalService','validatorService','personRecord',\n\t'contactInfo','$stateParams','datesService','errorEmailNotification', \n\t'formatterService','modalService','$log'];\n\t\nfunction ApplicationController($rootScope, loginService, dataService,\n\twebSessionStorage, $sce, $state, modalService, validatorService, personRecord, \n\tcontactInfo, $stateParams, datesService, errorEmailNotification, \n\tformatterService, modalService, $log) {\n\tvar vm = this; \t//vmAC\n\t\n\tvm.arrDataFields = [];\n\tvm.arrHomeAddrs = [];\n\tvm.arrChurches = [];\n\tvm.arrPhTypes = [];\n\tvm.arrStates = [];\n\tvm.arrFormData = [];\n\tvm.arrFormDefs = [];\n\tvm.arrMain = [];\n\tvm.arrPeoDetails = [];\n\tvm.bDateOpen = false;\t\t\t/* Date Calendar is open */\n\tvm.bBDEntered = false;\t\t\t/* Used to capture field ng-blur */\n\tvm.bEmailComm = false;\t\t\t/* When true: make Primary, RcvEmailComm=true */\n\tvm.bAddAddrFieldsToForm = false;\n\tvm.bInSaveProcedure = false;\t/* Double-click error prevention */\n\tvm.calcAge = \"\";\n\tvm.ageYrs = \"\";\n\tvm.dateFormat = \"MM/dd/yyyy\";\n\tvm.dBirthDate = \"\";\t\t\t\t//used to calculate 19th BDay for Expiration\n\tvm.iMainChurchID = 0;\t\t\t/* ChurchID from ProMain record */\t\n\tvm.iEntityID = 0;\n\tvm.objPerson = {};\t\t\t\t/* Person Record for applicant */\n\tvm.objPrimaryAddr = null;\t\t// Current PrimaryAddr, Home or otherwise\n\tvm.sConfirmSSN = \"\";\n\tvm.sDatabaseID = webSessionStorage.getStoredData('sDatabaseID');\n\tvm.selChurch = {};\n\tvm.selHomeAddr = null;\n\tvm.selPrimPhType = {};\n\tvm.selSecPhType = {};\n\tvm.selOthPhType = {};\n\tvm.selState = {};\n\tvm.sLastName = \"\";\n\tvm.sDbToday = datesService.todayToDbString();\n\t\n\tvm.header1 = \"\";\n\tvm.header2 = \"\";\n\tvm.header3 = \"\";\n\tvm.header4 = \"\";\n\tvm.displayGrp1 = [];\n\tvm.displayGrp2 = [];\n\tvm.displayGrp3 = [];\n\tvm.displayGrp4 = [];\n\t\n\t\n//INITIALIZE:\n\n\t$rootScope.sCurForm = \"Application\";\n$log.info($rootScope.sCurForm);\n\n\tdataService.libLoadStates()\n\t.then(function(data) {\n\t\tif (data.length>0) {\n\t\t\tvm.arrStates = data;\n\t\t\tvm.selState = vm.arrStates[0];\n\t\t}\n\t});\n\t\n\tdataService.phLoadTypes()\n\t.then(function(data) {\n\t\tif (data.length > 0) {\n\t\t\tvm.arrPhTypes = data;\n\t\t\tvm.selPrimPhType = vm.arrPhTypes[0];\n\t\t\tvm.selSecPhType = vm.arrPhTypes[0];\n\t\t\tvm.selOthPhType = vm.arrPhTypes[0];\n\t\t}\n\t});\n\t\n\tdataService.proGetMain($rootScope.sProID)\n\t.then(function(dataMain) {\n\t\tif (dataMain.length > 0) {\n\t\t\tvm.arrMain = dataMain;\n\t\t\tvm.iEntityID = vm.arrMain[0].ENTITYID;\n\t\t\tif (vm.sDatabaseID == \"MO\" || vm.sDatabaseID == \"MO-DEV\") {\n\t\t\t\tif (vm.arrMain[0].CHURCHID != \"\") {\n\t\t\t\t\tvm.iMainChurchID = vm.arrMain[0].CHURCHID;\t\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tdataService.chLoadAll()\n\t\t\t.then(function(dataCh) {\n\t\t\t\tif (dataCh.length > 0) {\n\t\t\t\t\tvm.arrChurches = dataCh;\n\t\t\t\t\tswitch (vm.sDatabaseID) {\n\t\t\t\t\t\tcase \"MO\": case \"MO-DEV\":\n\t\t\t\t\t\t\tvm.arrChurches.splice(1, 0, {ENTITYNAME:\"Conference/District Staff\",\n\t\t\t\t\t\t\t\tENTITYID:\"Staff\"});\n\t\t\t\t\t\t\tif (vm.iMainChurchID > 0) {\n\t\t\t\t\t\t\t\tfor (var i=0; i 0) { // $log.info(\"iEntityID:\",vm.iEntityID)\n\t\t\t\tdataService.addrGetAll(vm.iEntityID)\n\t\t\t\t.then(function(dataAddrs) {\n\t\t\t\t\tif (dataAddrs.length > 0) {\n\t\t\t\t\t\t\n\t\t\t\t\t\t//Filter for Only current addresses\n\t\t\t\t\t\t//Set Primary if Exists\n\t\t\t\t\t\tvar dToday = new Date();\n\t\t\t\t\t\tfor (var i=0; i dToday || \n\t\t\t\t\t\t\t\t(dStop != \"\" && dStop < dToday)) {\n\t\t\t\t\t\t\t\tdataAddrs.splice(i, 1);\n\t\t\t\t\t\t\t\ti--;\n\t\t\t\t\t\t\t} else if (dataAddrs[i].PRIMARYADDR == true) {\n\t\t\t\t\t\t\t\tvm.objPrimaryAddr = dataAddrs[i];\n\t\t\t\t\t\t\t\tif (dataAddrs[i].ADDRTYPE == \"Home\") {\n\t\t\t\t\t\t\t\t\tvm.selHomeAddr = vm.objPrimaryAddr;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t//Collect all \"Home\" AddrTypes for Home droplist:\n\t\t\t\t\t\tfor (i=0; i 0) {\n\t\t\t\t\t\t\tif (vm.selHomeAddr == null) {\n\t\t\t\t\t\t\t\tvm.selHomeAddr = vm.arrHomeAddrs[0];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else { vm.bAddAddrFieldsToForm = true; }\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvm.bAddAddrFieldsToForm = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tdataService.peoGetDetails(vm.iEntityID)\n\t\t\t\t.then(function(data) { //$log.info(\"peoGetDetails:\",data)\n\t\t\t\t\tif (data.length > 0) {\n\t\t\t\t\t\tvm.objPerson = data[0];\n\t\t\t\t\t\tif (vm.sLastName == \"\") {\n\t\t\t\t\t\t\tvm.sLastName = data[0].LASTNAME;\n\t\t\t\t\t\t\tif (vm.arrDataFields.length > 0) {\n\t\t\t\t\t\t\t\tfor (var i=0; i
\" +\n\t\t\t\t\t\"Please log in again to continue.\");\n\t\t\t\t\t$state.go('login', {reload:true});\n\t\t\t}\n\t\t}\n\t});\n\t\n\tfunction getProFormDefs() {\n\t\tdataService.proGetForm($stateParams.sStepLinkFlag)\n\t\t.then(function(defs) { //$log.info(\"defs:\",defs);\n\t\t\tif (defs.length > 0) {\n\t\t\t\tvm.arrFormDefs = defs;\n\t\t\t\t\n\t\t\t\tgetProFormData();\n\t\t\t}\n\t\t});\n\t}\n\t\n\tfunction getProFormData() {\n\t\tdataService.proGetFormData($stateParams.sStepLinkFlag, $rootScope.sProID)\n\t\t.then(function(data) { //$log.info(\"Data:\",data)\n\t\t\tif (data.length > 0) {\n\t\t\t\tvm.arrFormData = data;\n\t\t\t}\n\t\t\tloadDisplay();\n\t\t});\n\t}\n\t\n\tfunction loadDisplay() {\n\t\tvm.arrDataFields = [];\n\t\t\n\t\tfor (var i=0; i 0) {\n\t\t\t\t\t\t\t\tobj.data = vm.iMainChurchID;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tobj.label = vm.arrFormDefs[i].CAPTION;\n\t\t\t\tbreak;\n\t\t\t\tcase \"CheckBoxL\": case \"CheckBoxR\":\n\t\t\t\t\tobj.control = \"CheckBox\";\n\t\t\t\t\tobj.label = vm.arrFormDefs[i].CAPTION;\n\t\t\t\tbreak;\n\t\t\t\tcase \"DateField\":\n\t\t\t\t\tobj.label = vm.arrFormDefs[i].CAPTION;\n\t\t\t\t\tif (obj.itemName == \"BirthDate\") {\n\t\t\t\t\t\tif (obj.data != \"\") { \n\t\t\t\t\t\t\tobj.validateDate = new Date(obj.data);\n\t\t\t\t\t\t\tvm.calcAge = calculateAge(obj.validateDate); \n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t\tcase \"SSN\":\n\t\t\t\t\tif (obj.data != \"\") {\n\t\t\t\t\t\tvar numOnlyPattern = /[^0-9]/g;\n\t\t\t\t\t\tvar valSSN = String(obj.data);\n\t\t\t\t\t\tvar numOnlySSN = valSSN.replace(numOnlyPattern,'');\n\t\t\t\t\t\tobj.data = formatterService.formatSSN(numOnlySSN);\n\t\t\t\t\t}\n\t\t\t\t\tobj.label = vm.arrFormDefs[i].CAPTION; //v...141 (SSN was missing label!) ~ lds\n\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tobj.label = vm.arrFormDefs[i].CAPTION;\n\t\t\t\tbreak;\n\t\t\t}\t\n\t\t\t\n\t\t\tvm.arrDataFields.push(obj);\n\n\t\t\tswitch (vm.arrFormDefs[i].GROUPSEQ) {\n\t\t\t\tcase 1: \n\t\t\t\t\tvm.header1 = vm.arrFormDefs[i].GROUPNAME;\n\t\t\t\t\tvm.displayGrp1.push(obj);\n\t\t\t\tbreak;\n\t\t\t\tcase 2: \n\t\t\t\t\tvm.header2 = vm.arrFormDefs[i].GROUPNAME; \n\t\t\t\t\tvm.displayGrp2.push(obj);\n\t\t\t\tbreak;\n\t\t\t\tcase 3: \n\t\t\t\t\tvm.header3 = vm.arrFormDefs[i].GROUPNAME; \n\t\t\t\t\tvm.displayGrp3.push(obj);\n\t\t\t\tbreak;\n\t\t\t\tcase 4: \n\t\t\t\t\tvm.header4 = vm.arrFormDefs[i].GROUPNAME; \n\t\t\t\t\tvm.displayGrp4.push(obj);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (vm.selHomeAddr != null) {\n\t\t\tpopulateSelHomeAddr();\n\t\t} \n//$log.info(\"arrDataFields:\",vm.arrDataFields)\n\t}\n\t\t\n\tfunction calculateAge(dBD) {\n\t\tvar now = new Date();\n\t\tvar diff = now.getTime() - dBD.getTime();\n\t\tvar ageDays = diff/86400000;\n\t\tvm.ageYrs = Math.floor(ageDays/365.24); // $log.info('ageYrs:', vm.ageYrs); // for display of Age\n\t\tvar calcAge = Number(ageDays/365.24).toFixed(2); // $log.info('calcAge:', calcAge); // for calculation purposes\n\t\t\n\t\tif (calcAge < 10 || calcAge > 99) {\n\t\t\tmodalService.okAlert(\"Invalid Entry\",\n\t\t\t\t\"Please correct the Birth Date to be your actual Date of Birth.\");\t\n\t\t} else {\n\t\t\tswitch (vm.sDatabaseID) {\n\t\t\t\tcase \"MO\": case \"MO-DEV\":\n\t\t\t\t\tif (calcAge < 14.5) {\n\t\t\t\t\t\tmodalService.okAlert(\"Invalid Age\",\n\t\t\t\t\t\t\t\"The minimum age to be Conference certified level in the Missouri Conference is 15. In order to be considered for Local Church certification level, you must meet the Age Requirement in your specific Local Church SS Policy. The LCA at your church can provide this information to you. You can proceed to complete the training, however, it is up to the Local Church if they are able to certify you, if you are younger than the Minimum age. If you are under the minimum age of 15, you are not eligible for Conference level certification.\");\n\t\t\t\t\t}\n\t\t\t\t\t//SSN required for all > 14.5, as needed for autoRenew when turn 19yo. ~ fixed 5/13/19 v...181\n\t\t\t\t\t else if (calcAge < 18.5) { //v...141 corrected from 18 ~ lds\n\t\t\t\t\t\tfor (var i=0; i -1) {\n\t\t\t\t\t\t\tnumOnlyPattern = /[^0-9]/g;\n\t\t\t\t\t\t\tvar numOnlyZip = valZip.replace(numOnlyPattern,''); }\n\t\t\t\t\t\telse { numOnlyZip = valZip; }\n\t\t\t\t\t\tif (String(numOnlyZip).length != 5 && String(numOnlyZip).length != 9) {\n\t\t\t\t\t\t\tbReadyToSave = false;\n\t\t\t\t\t\t\tvm.arrDataFields[i].data = \"\";\n\t\t\t\t\t\t\tmodalService.okAlert(\"Invalid Entry\",\n\t\t\t\t\t\t\t\t\"The entered Zipcode is not valid. \" +\n\t\t\t\t\t\t\t\t\"A valid ZIP contains 5 digits or 9 digits when using \" +\n\t\t\t\t\t\t\t\t\"zip+4 format (#####-####). Please enter a valid Zipcode.\");\t\n\t\t\t\t\t\t}\t\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"Email\":\n\t\t\t\t\t\tif (validatorService.emailIsValid(vm.arrDataFields[i].data) == false) {\n\t\t\t\t\t\t\tbReadyToSave = false;\n\t\t\t\t\t\t\tmodalService.okAlert(\"Invalid Entry\",\n\t\t\t\t\t\t\t\t\"The entered email address is not \" +\n\t\t\t\t\t\t\t\t\"valid. Please enter a valid email address.\");\n\t\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"BirthDate\":\n\t\t\t\t\t\tif (new Date(vm.arrDataFields[i].validateDate) == 'Invalid Date') {\n\t\t\t\t\t\t\tbReadyToSave = false;\n\t\t\t\t\t\t\tvm.arrDataFields[i].validateDate == \"\";\n\t\t\t\t\t\t\tvm.arrDataFields[i].data = \"\";\n\t\t\t\t\t\t\tmodalService.okAlert(\"Invalid Entry\",\n\t\t\t\t\t\t\t\t\"The entered Birth Date is Invalid. \\n\" +\n\t\t\t\t\t\t\t\t\"Please enter a valid Date.\");\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar dBD = new Date(vm.arrDataFields[i].data);\n\t\t\t\t\t\t\tvar calcAge = calculateAge(dBD);\n\t\t\t\t\t\t\tif (calcAge < 10 || calcAge > 99) {\n\t\t\t\t\t\t\t\tbReadyToSave = false;\n\t\t\t\t\t\t\t\tmodalService.okAlert(\"Invalid Entry\",\n\t\t\t\t\t\t\t\t\t\"Please correct the Birth Date to be your actual Date of Birth.\");\n\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\t\n\t\t\t}\n\t\t}\n\n\t\tif (bReadyToSave == true) {\n\t\t\tsaveData();\n\t\t}\n\t}\n\t\n\tfunction saveData() {\n\t\tvar sRawDataString = \"WebProtect || Application || \" + String(loginService.user.USERID) +\n\t\t\t\" || \";\n\t\tfor (var i=0; i 0) {\n\t\t\t\t\tfor (var i=0; i 0) {\n\t\t\t\tfor (var i=0; i 0) {\n\t\t\t\tfor (var i=0; i 10 && vm.calcAge < 19) {\n\t\t\t\t\t//Authorization Step Expires on 19th Birthday\n\t\t\t\t\tsRawDataString += \"I || ProID==\" + $rootScope.sProID + \" || StepID==\" +\n\t\t\t\t\t\t$stateParams.iAuthStepID + \" || StepDate== || StepExpires==\" + \n\t\t\t\t\t\tdatesService.get19thBirthDate(vm.dBirthDate) + \n\t\t\t\t\t\t\" || StepNote==YOUTH under 19 y.o. || StepLinkType== || StepLink==\" +\n\t\t\t\t\t\t\" || StepProgress==Not Applicable || StepRefID== ^^ \";\t\n\t\t\t\t}\n\t\t\tbreak;\n\t\t\tcase \"MO\": case \"MO-DEV\":\n\t\t\t\t/** Youth under 18.5 y.o. do not complete Authorization Step or Background screen.\n\t\t\t\t * Authorization Step set to expire on 19th BDay to complete and run Background\n\t\t\t\t * screen at that time. ~ v...141 ~ lds \n\t\t\t\t * Updated text to represent < 18.5 y.o. ~ v...187 lds\n\t\t\t\t **/\n\t\t\t\tif (vm.calcAge > 10 && vm.calcAge < 18.5) {\n\t\t\t\t\t//Authorization Step Expires on 19th Birthday\n\t\t\t\t\tsRawDataString += \"I || ProID==\" + $rootScope.sProID + \" || StepID==\" +\n\t\t\t\t\t\t$stateParams.iAuthStepID + \" || StepDate== || StepExpires==\" + \n\t\t\t\t\t\tdatesService.get19thBirthDate(vm.dBirthDate) + \n\t\t\t\t\t\t\" || StepNote==YOUTH under 18.5 y.o. || StepLinkType== || StepLink==\" +\n\t\t\t\t\t\t\" || StepProgress==Not Applicable || StepRefID== ^^ \";\t\n\t\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\t\n\t\tdataService.proSaveProcess(sRawDataString)\n\t\t.then(function(result) {\n\t\t\tif (result.length > 0) {\n\t\t\t\tif (result[0].RESULTCODE == \"Success\") {\n\t\t\t\t\t$state.go('steps', {reload:true});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t\n\n/* Broadcasts: */\n\t\n\t\n/* Called from view: */\t\n\t\n\t//Necessary to use standard HTML in Angular as ng-model requires date:\n\tvm.birthDateHandler = function(item){\n\t\tvm.bBDEntered = true;\n\t\tif (new Date(item.validateDate) == 'Invalid Date') {\n\t\t\titem.validateDate == \"\";\n\t\t\tmodalService.okAlert(\"Invalid Entry\",\n\t\t\t\t\"The entered Birth Date is Invalid. \\n\" +\n\t\t\t\t\"Please enter a valid Date.\");\n\t\t} else {\n\t\t\titem.data = datesService.jsDateStrToCalendarStr(item.validateDate);\n\t\t\tvm.dBirthDate = item.validateDate;\t//v.135 needed BDate for obtaining 19th BDay Ln 619\n\t\t\tvm.calcAge = calculateAge(item.validateDate);\n\t\t}\n\t};\n\t\n\tvm.cancel = function() {\n\t\t$state.go('steps', {reload:true});\n\t};\n\t\n\tvm.changeHandler = function(id, value) {\n\t\tif (id=='confirmSSN') {\n\t\t\tvar numOnlyPattern = /[^0-9]/g;\n\t\t\tvar numOnlyConfirm = value.replace(numOnlyPattern,'');\n\t\t\tif (numOnlyConfirm.length == 9) {\n\t\t\t\tfor (var i=0; i 0) {\n\t\t\tpopulateSelHomeAddr();\n\t\t\t\n\t\t/* If the current Primary Addr is a Home Addr, but not the one selected \n\t\t\tfor use... Update the AddrEntityUse table with new selection as Primary. */\t\n\t\t\tif (vm.arrHomeAddrs.length > 1 && vm.selHomeAddr.PRIMARYADDR == false) {\n\t\t\t\tfor (var i=0; i\" ||\n\t\t\t\tangular.isDefined(vm.arrDataFields[i].data)==false)) {\n\t\t\t\tmodalService.okAlert(\"Missing Required Entry\", \n\t\t\t\t\t\"A State is required for your address.\\n\\n\" +\n\t\t\t\t\t\"Please make a State selection before clicking to Save and Submit \" +\n\t\t\t\t\t\"your data.\");\t\t\n\t\t\tbreak; }\n\t\t\telse if (i == vm.arrDataFields.length-1) {\n\t\t\t\tvalidateData();\n\t\t\t}\t\n\t\t}\n\t};\n\t\n\tvm.setConfComm = function() {\n\t\tfor (var i=0; vm.arrDataFields.length; i++) {\n\t\t\tif (vm.arrDataFields[i].itemName == \"Email\") { \n\t\t\t\tif (vm.arrDataFields[i].data != \"\") {\n\t\t\t\t\tvm.arrDataFields[i].emComm = vm.bEmailComm;\n\t\t\t\t} else {\n\t\t\t\t\tvm.bEmailComm = false;\n\t\t\t\t\tmodalService.okAlert(\"Missing Entry\", \n\t\t\t\t\t\t\"Please enter an email address prior to making \" +\n\t\t\t\t\t\t\"the Conference communication selection.\");\n\t\t\t\t}\t\n\t\t\tbreak; }\n\t\t}\n\t};\n\t\n\tvm.updateHomeAddr = function() {\n\t\tif (vm.bAddAddrFieldsToForm == true) {\n\t\t\tvm.selHomeAddr = null;\n\t\t\tvm.selState = null;\n\t\t\tfor (var i=0; i use $rootScope.curCertRecord instead\n\t\t}\n\t})\n .state('certMgmt', {\n url: '/certMgmt',\n templateUrl: 'app/views/certMgmt.html',\n controller: 'CertMgmtController',\n controllerAs: 'vmCM'\n })\n\t.state('chgPW', {\n url: '/chgPW',\n templateUrl: 'app/views/chgPW.html',\n controller: 'ChgPasswordController',\n controllerAs: 'vmCP'\n })\n .state('helpDesk', {\n\t\turl: '/helpDesk',\n\t\ttemplateUrl: 'app/views/helpDesk.html',\n\t\tcontroller: 'HelpDeskController',\n\t\tcontrollerAs: 'vmHD'\n\t})\n\t.state('lcaCovenant', {\n\t\turl: '/lcaCovenant',\n\t\ttemplateUrl: 'app/views/lcaCovenant.html',\n\t\tcontroller: 'LCACovenantController',\n\t\tcontrollerAs: 'vmLCA',\n\t\tparams: {\n\t\t\tiStepID: 0\n\t\t}\n\t})\n\t.state('lcPolicy', {\n\t\turl: '/lcPolicy',\n\t\ttemplateUrl: 'app/views/lcPolicy.html',\n\t\tcontroller: 'LCPolicyController',\n\t\tcontrollerAs: 'vmLC',\n\t\tparams: {\n\t\t\tiStepID: 0\n\t\t}\n\t})\n .state('myCerts', {\n\t\turl: '/myCerts',\n\t\ttemplateUrl: 'app/views/myCerts.html',\n\t\tcontroller: 'MyCertsController',\n\t\tcontrollerAs: 'vmCrt',\n\t\tparams: {\n\t\t\tsFunction: \"\"\n\t\t}\n\t})\n\t.state('newAcct', {\n\t\turl: '/newAcct',\n\t\ttemplateUrl: 'app/views/newAcct.html',\n\t\tcontroller: 'NewAcctController',\n\t\tcontrollerAs: 'vmUA'\n\t})\n\t.state('nwtxPayment', {\n\t\turl: '/nwtxPayment',\n\t\ttemplateUrl: 'app/views/nwtxPayment.html',\n\t\tcontroller: 'NWTXPaymentController',\n\t\tcontrollerAs: 'vmNPay',\n\t\tparams: {\n\t\t\tiCertTypeID: 0,\n\t\t\tpaymentSaveKey: 0,\n\t\t\tpaymentStepID: 0\n\t\t}\n\t})\n\t.state('nwtxCampReq', {\n\t\turl: '/nwtxCampReq',\n\t\ttemplateUrl: 'app/views/nwtxCampReq.html',\n\t\tcontroller: 'NWTXReqController',\n\t\tcontrollerAs: 'vmNReq'\n\t})\n\t.state('ref', {\n\t\turl: '/ref',\n\t\ttemplateUrl: 'app/views/reference.html',\n\t\tcontroller: 'ReferenceController',\n\t\tcontrollerAs: 'vmRef',\n\t\tparams: { retCodeKey: 0 }\n })\n .state('refer', {\n\t\turl: '/refer',\n\t\ttemplateUrl: 'app/views/refer.html',\n\t\tcontroller: 'ReferralController',\n\t\tcontrollerAs: 'vmRefer',\n\t\tparams: {\n\t\t\tApplicant: \"\",\n\t\t\tApplUserID: 0,\n\t\t\tiProRefUserID: 0,\n\t\t\tiStepSaveKey: 0,\n\t\t\tretCodeKey: 0, \n\t\t\tsProID: \"\",\t \t\n\t\t\tsStepLinkFlag: \"\" \n\t\t}\n })\n\t.state('refRequest', {\n\t\turl: '/refRequest',\n\t\ttemplateUrl: 'app/views/refRequest.html',\n\t\tcontroller: 'RefRequestController',\n\t\tcontrollerAs: 'vmRR',\n\t\tparams: {\n\t\t\tsStepLinkFlag: \"\",\n\t\t\trefSaveKey: 0,\n\t\t\trefStepID: 0\n\t\t}\n\t})\n\t\t.state('pastorRef', {\n\t\t\tparent: 'refRequest',\n\t\t\ttemplateUrl: 'app/partials/pastorRef.html',\n\t\t\tcontroller: 'RefPastorRefController',\n\t\t\tcontrollerAs: 'vmRefPR',\n\t\t\tparams: {\n\t\t\t\tsStepLinkFlag: \"\",\n\t\t\t\trefSaveKey: 0,\n\t\t\t\trefStepID: 0\n\t\t\t}\n\t\t})\n\t\t.state('defaultRef', {\n\t\t\tparent: 'refRequest',\n\t\t\ttemplateUrl: 'app/partials/defaultRef.html',\n\t\t\tcontroller: 'RefDefaultController',\n\t\t\tcontrollerAs: 'vmRefDef',\n\t\t\tparams: {\n\t\t\t\tsStepLinkFlag: \"\",\n\t\t\t\trefSaveKey: 0,\n\t\t\t\trefStepID: 0\n\t\t\t}\n\t\t})\t\n\t.state('steps', {\n\t\turl: '/steps',\n\t\ttemplateUrl: 'app/views/steps.html',\n\t\tcontroller: 'StepsController',\n\t\tcontrollerAs: 'vmSC'\n\t})\n\t.state('stepInst', {\n\t\turl: '/stepInst',\n\t\ttemplateUrl: 'app/views/stepInst.html',\n\t\tcontroller: 'StepInstController',\n\t\tcontrollerAs: 'vmSI',\n\t\tparams: {\n\t\t\tiCertTypeID: 4\n\t\t}\n\t})\n\t.state('train', {\n\t\turl: '/train',\n\t\ttemplateUrl: 'app/views/training.html',\n\t\tcontroller: 'TrainingController',\n\t\tcontrollerAs: 'vmTr',\n\t\tparams: {\n\t\t\tobjStep: {}\n\t\t}\n\t});\n \n $urlRouterProvider.otherwise('/index.html');\n \n }\n\n})();\n\n(function() {\n\t'use strict';\n\n\tangular\n\t\t.module('proRefs')\n//TEST*/.constant('version', '1.000.109')\n/*LIVE*/.constant('version', '1.000.194')\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('moodleCFC', 'https://umcdata.net/Falcon/libCFCs/Moodle.cfc')\n\t\t.constant('proEmailCFC', 'https://umcdata.net/Falcon/libCFCs/ProCustEmail.cfc')\n\t\t.constant('proJsCFC', 'https://umcdata.net/Falcon/libCFCs/Protect_JS.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('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\t\t.constant('refJSURL', 'https://umcdata.net/MissionConnect/Public/MCWebApps/Protect/RefJS1/#/index.html')\n\t\t.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('webProMO', 'https://umcdata.net/MORefs')\n\t\t.constant('butmanCampEmail', 'campvolunteer@butmancamp.org')\n\t\t.constant('cetaCampEmail', 'april@cetacanyon.org')\n\t\t.constant('vimEmail', 'hughs@nwtxconf.org')\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\":\"AR\",\n\t\t\t\t\"CustomerName\":\"Arkansas Conference\"\n\t\t\t},\n/*\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*/\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 Annual 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\t\"ProRef\": \"Safe Sanctuary References\"\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\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\t\t.constant('custDataDev', [\n\t\t\t{\n\t\t\t\t\"DataSource\":\"FalconArkDev\",\n\t\t\t\t\"DatabaseID\":\"AR-DEV\",\n\t\t\t\t\"CustomerName\":\"Arkansas Conference (AR-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 Annual 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\t\"ProRef\": \"Protect References\"\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 (SWTX-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(function() {\n// \t'use strict';\n\n\tangular\n\t\t.module('proRefs')\n\t\t.config(config);\n\n\tfunction config($sceDelegateProvider) {\n\t\t$sceDelegateProvider.resourceUrlWhitelist([\n\t\t\t'self',\n\t\t\t'https://umcdata.net/**'\n\t\t]);\n\t}\n\n})();\n\nangular.module(\"proRefs\").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/resendRef.html\",\"
\");\n$templateCache.put(\"app/partials/certsList.html\",\"\");\n$templateCache.put(\"app/partials/defaultRef.html\",\"

Please enter the name and Email address for your reference in the spaces provided.

\");\n$templateCache.put(\"app/partials/dsRef.html\",\"
Show Incomplete References Only
0\\\">
Request DateRequest From
{{ ref.DisplayDate | date : \\\"MM/dd/yyyy\\\" }} {{ ref.REFREQUESTFROM }}
\");\n$templateCache.put(\"app/partials/pastorRef.html\",\"
Are you related to your Local Church Pastor?   Yes    No

Please select your pastor from the list below. If there is only one, just confirm the email and click the Send Request button.

Please select your District Superintendent for your pastor reference from the list below. Or you may choose another MO Conference pastor who knows you well.

Please select a clergy from the drop-list, or enter the Name and Email address for your reference in the spaces provided.

Please select your District Superintendent from the list below.

\");\n$templateCache.put(\"app/partials/refsList.html\",\"
Show Incomplete References Only
0\\\">
Request DateRequest From
{{ ref.DisplayDate | date : \\\"MM/dd/yyyy\\\" }} {{ ref.REFREQUESTFROM }}
\");\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/appl.html\",\"

{{vmAC.header1}}

   {{ item.label }}

{{vmAC.header2}}

   {{ item.label }}
   Check here if this email should be used for other communications from the Conference.
 Male    Female
0 && vmAC.bAddAddrFieldsToForm==false\\\">Current Home Address:
0\\\">   Check here to update your Home address.
{{ item.label }}
 Yes    No
0 && vmAC.calcAge<18) && \\n\t\t\t\t\t\t(vmAC.sDatabaseID==\\'MC\\' || vmAC.sDatabaseID==\\'MC-DEV\\')\\\">0 && vmAC.calcAge<18) && \\n\t\t\t\t\t\t(vmAC.sDatabaseID==\\'MC\\' || vmAC.sDatabaseID==\\'MC-DEV\\')\\\" ng-change=\\\"vmAC.changeHandler(\\'confirmSSN\\', vmAC.sConfirmSSN)\\\">

{{vmAC.header3}}

{{ item.label }}
 Yes    No

{{vmAC.header4}}

{{ item.label }}
 Yes    No
\");\n$templateCache.put(\"app/views/authorization.html\",\"

{{vmAU.header1}}

{{ item.label }}

\");\n$templateCache.put(\"app/views/certMgmt.html\",\"
Reference Requests for:
{{ vmCM.sUserFullName }}
Show Incomplete References Only
0\\\">
Request DateRequest From
{{ ref.DisplayDate | date : \\\"MM/dd/yyyy\\\" }} {{ ref.REFREQUESTFROM }}

Certifications by Church

C=Conference    L=Local Church
LCA=Local Church Safe Sanctuaries Assoc.
0\\\">
NameCert TypeExp Date
{{ cert.CHURCHNAME }}
{{ cert.PERSONNAME }}
{{ cert.PERSONNAME }}
{{ cert.CERTTYPES }}
{{ cert.CERTTYPES }}
{{ cert.STATUSEXPIREDATE | date : \\\"MM/dd/yyyy\\\" }}

{{ cert.PROSTATUS }}
{{ cert.STATUSEXPIREDATE | date : \\\"MM/dd/yyyy\\\" }} {{ cert.PROSTATUS }}
\");\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/lcPolicy.html\",\"

{{vmLC.header1}}

{{ item.label }}

   {{ item.label }}
\");\n$templateCache.put(\"app/views/lcaCovenant.html\",\"

{{vmLCA.header1}}

I, {{ vmLCA.sUserFullName }}, {{ item.label }} {{ vmLCA.sChurchName }}

{{ item.label }}

\");\n$templateCache.put(\"app/views/login.html\",\"
\\\"McCurdy

Select your Conference:

If you do not already have a user account, you may create one by clicking the button below:

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/myCerts.html\",\"
Username: {{vmCrt.username}}

My {{vmCrt.proProcessName}}


{{ cert.CERTTYPEID | certTypeDesc }}  for {{ vmCrt.sChurchName }}
<{{ cert.PROID }}>
{{ cert.PROSTATUS }} Expiring SOON!
Exp: {{cert.STATUSEXPIREDATE|date:\\\"MM/dd/yyyy\\\"}}
[{{ cert.STATUSDATE | date:\\\"MM/dd/yyyy\\\"}} - {{ cert.STATUSEXPIREDATE | date:\\\"MM/dd/yyyy\\\" }}]

Click a button below to begin a new Volunteer Process:

\\\"Begin \\\"Begin
\");\n$templateCache.put(\"app/views/newAcct.html\",\"
\\\"McCurdy

Create a New Account

Tips for making the password stronger:
  • Make it longer
  • Use both UPPER & lower case
  • Add a number
  • Add a special character: *@!&,^%
Password Strength is:     {{ vmUA.sPasswordStrength }}  
\");\n$templateCache.put(\"app/views/nwtxCampReq.html\",\"
\\\"Return

\");\n$templateCache.put(\"app/views/nwtxPayment.html\",\"

[Scroll to bottom of page to Pay]

{{vmNPay.header1}}

 Member of a VIM Team
 Leading a VIM Team (I have been certified/trained as a VIM Team leader in the last four years through a UMC Conference VIM Coordinator
 I am registering for Team Leader training
   Pay in Full as Donation
   Pay in Full as Donation
   Pay in Full as Donation
   Pay in Full as Donation
   {{ item.label }}
  $
\");\n$templateCache.put(\"app/views/refRequest.html\",\"

{{ vmRR.refHeader }}

{{ vmRR.refSubheader }}

Requirements

Before requesting your reference, please read the requirements below.

{{ vmRR.refRequirement }}

\");\n$templateCache.put(\"app/views/refer.html\",\"
Applicant:
{{ vmRefer.Applicant }}

If this reference has been sent to you, but you feel there is another Pastor or listed Staff member better equipped to provide a reference for {{ vmRefer.Applicant }}, please select them from the list and click "Send." They will be sent a new Reference Request and this one will become invalid.

\");\n$templateCache.put(\"app/views/reference.html\",\"
Applicant:
{{ vmRef.Applicant }}

  to another pastor or
  staff person

If you wish to decline providing a Reference for {{ vmRef.Applicant }}, please do so by clicking the "Decline" button to the right.
Thank-you for your consideration in this process.

{{ vmRef.header }}

{{ vmRef.subHeader }}


{{ vmRef.sectionHdr }}

{{ item.question }}

[{{ item.example }}]

{{ item.instructions }}

{{ item.val0 }}
{{ item.val1 }}
{{ item.val2 }}
{{ item.val3 }}
{{ item.val4 }}
{{ item.val5 }}
\");\n$templateCache.put(\"app/views/stepInst.html\",\"
\\\"Return

\");\n$templateCache.put(\"app/views/steps.html\",\"
All Steps Must be Completed By {{ vmSC.sAppExpire }}

{{ $index+1}}. {{ step.STEPNAME }}

{{ step.STEPPROGRESS }} {{ step.sCreatedOn }}

Completed {{ step.STEPDATE|date:\\\"MM/dd/yyyy\\\" }}

\\\"Step

If all steps above are checked,
your process is complete!

\");\n$templateCache.put(\"app/views/training.html\",\"

{{ vmTr.header }}

{{ vmTr.subheader }}

{{ vmTr.sectionHdr }}

{{ item.label }}

 True    False  
 Yes    No  
{{ item.opt0.SELECTIONTEXT }}

{{ item.opt1.SELECTIONTEXT }}

{{ item.opt2.SELECTIONTEXT }}

{{ item.opt3.SELECTIONTEXT }}

{{ item.opt4.SELECTIONTEXT }}

{{ item.opt5.SELECTIONTEXT }}
{{ item.label }}
That is correct!

Your score for correctly answering the question on your first attempt is:

{{vmTr.Score|number:0}}%

Questions requiring 2 tried to get correct:

{{ vmTr.Tries2}}

Questions requiring 3 tried to get correct:

{{ vmTr.Tries3 }}

Questions requiring 4 tried to get correct:

{{ vmTr.Tries4 }}

Questions requiring 5 tried to get correct:

{{ vmTr.Tries5 }}

\");}]);"],"sourceRoot":"/source/"}