public function addEdit($id)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     if (!bTestForURLHack('showClients')) {
         return;
     }
     $this->load->helper('dl_util/verify_id');
     verifyIDsViaType($this, CENUM_CONTEXT_STATUSCAT, $id, true);
     $id = (int) $id;
     $bNew = $id <= 0;
     $this->load->model('clients/mclient_status', 'clsClientStat');
     $this->clsClientStat->loadClientStatCats(true, true, $id);
     // validation rules
     $this->form_validation->set_error_delimiters('<div class="formError">', '</div>');
     $this->form_validation->set_rules('txtStatCatName', 'Status Category', 'trim|required|' . 'callback_verifyUniqueStatCat[' . $id . ']');
     $this->form_validation->set_rules('txtNotes');
     if ($this->form_validation->run() == FALSE) {
         $displayData = array();
         $displayData['formD'] = new stdClass();
         $this->load->library('generic_form');
         if ($bNew) {
             $this->clsClientStat->loadClientStatCats(true, true, -1);
             $this->clsClientStat->statCats[0]->lKeyID = -1;
             $this->clsClientStat->statCats[0]->strCatName = '';
         }
         if (validation_errors() == '') {
             $displayData['formD']->txtStatCatName = htmlspecialchars($this->clsClientStat->statCats[0]->strCatName);
             $displayData['formD']->txtNotes = htmlspecialchars($this->clsClientStat->statCats[0]->strDescription);
         } else {
             setOnFormError($displayData);
             $displayData['formD']->txtStatCatName = set_value('txtStatCatName');
             $displayData['formD']->txtNotes = set_value('txtNotes');
         }
         //--------------------------
         // breadcrumbs
         //--------------------------
         $displayData['pageTitle'] = anchor('main/menu/admin', 'Admin', 'class="breadcrumb"') . ' | ' . anchor('admin/alists/showLists', 'Lists', 'class="breadcrumb" ') . ' | ' . anchor('admin/admin_special_lists/clients/statCatView', 'Client Status Categories', 'class="breadcrumb" ') . ' | ' . ($bNew ? 'Add new status category' : 'Edit status category');
         $displayData['title'] = CS_PROGNAME . ' | Lists';
         $displayData['nav'] = $this->mnav_brain_jar->navData();
         $displayData['id'] = $id;
         $displayData['bNew'] = $bNew;
         $displayData['statCats'] = $this->clsClientStat->statCats;
         $displayData['mainTemplate'] = 'client/client_status_cat_add_edit';
         $this->load->vars($displayData);
         $this->load->view('template');
     } else {
         $this->clsClientStat->statCats[0]->strCatName = trim($_POST['txtStatCatName']);
         $this->clsClientStat->statCats[0]->strDescription = trim($_POST['txtNotes']);
         if ($id == 0) {
             $id = $this->clsClientStat->addNewClientStatusCat();
             $this->session->set_flashdata('msg', 'Your status category was added');
         } else {
             $this->clsClientStat->updateClientStatusCat($id);
             $this->session->set_flashdata('msg', 'Your status category was updated');
         }
         redirect('admin/admin_special_lists/clients/statCatView');
     }
 }
 function addEdit($lAcctID, $lCampID)
 {
     if (!bTestForURLHack('adminOnly')) {
         return;
     }
     $this->load->helper('dl_util/verify_id');
     verifyID($this, $lAcctID, 'account ID');
     verifyIDsViaType($this, CENUM_CONTEXT_CAMPAIGN, $lCampID, true);
     $displayData = array();
     $displayData['lAcctID'] = $lAcctID = (int) $lAcctID;
     $displayData['lCampID'] = $lCampID = (int) $lCampID;
     $displayData['bNew'] = $bNew = $lCampID <= 0;
     // load account name
     $this->load->model('donations/maccts_camps', 'clsAC');
     $this->clsAC->loadAccounts(false, true, $lAcctID);
     $displayData['strAcctName'] = $strAcct = $this->clsAC->accounts[0]->strSafeName;
     // load campaign info
     $this->clsAC->loadCampaigns(false, false, null, true, $lCampID);
     $displayData['bProtected'] = $this->clsAC->campaigns[0]->bProtected;
     $displayData['bAnyGifts'] = $this->clsAC->bAnyGiftsViaCampID($lCampID);
     // validation rules
     $this->form_validation->set_error_delimiters('<div class="formError">', '</div>');
     $this->form_validation->set_rules('txtCamp', 'Campaign Name', 'callback_campNameDupTest[' . $lAcctID . ',' . $lCampID . ']');
     if ($this->form_validation->run() == FALSE) {
         $displayData['title'] = CS_PROGNAME . ' | Campaigns';
         $displayData['pageTitle'] = anchor('main/menu/admin', 'Admin', 'class="breadcrumb"') . ' | ' . anchor('admin/alists/showLists', 'Lists', 'class="breadcrumb"') . ' | ' . anchor('accts_camp/accounts/view', 'Accounts & Campaigns', 'class="breadcrumb"') . ' | ' . anchor('accts_camp/campaigns/viewCampsViaAcctID/' . $lAcctID, $strAcct . ': View Campaigns', 'class="breadcrumb"') . ' |  ' . ($bNew ? 'Add New Campaign' : 'Update Campaign');
         $displayData['nav'] = $this->mnav_brain_jar->navData();
         $this->load->library('generic_form');
         $displayData['clsForm'] = $this->generic_form;
         if (validation_errors() == '') {
             $displayData['strCampaign'] = $this->clsAC->campaigns[0]->strCampaign;
         } else {
             setOnFormError($displayData);
             $displayData['strCampaign'] = set_value('txtCamp');
         }
         $displayData['mainTemplate'] = 'accts_camp/camp_add_edit';
         $this->load->vars($displayData);
         $this->load->view('template');
     } else {
         $this->clsAC->campaigns[0]->strCampaign = $strCamp = xss_clean(trim($_POST['txtCamp']));
         $this->clsAC->campaigns[0]->lAcctID = $lAcctID;
         if ($bNew) {
             $this->clsAC->lAddNewCampaign();
             $this->session->set_flashdata('msg', 'Your new campaign was added');
         } else {
             $this->clsAC->campaigns[0]->bRetired = @$_POST['chkRetire'] == 'TRUE';
             $this->clsAC->campaigns[0]->lKeyID = $lCampID;
             $this->clsAC->updateCampaign();
             $this->session->set_flashdata('msg', 'Your campaign was updated');
         }
         redirect('accts_camp/campaigns/viewCampsViaAcctID/' . $lAcctID);
     }
 }
 function view($enumContextType, $enumEntryType, $lFID)
 {
     //------------------------------------------------------------------------------
     //
     //------------------------------------------------------------------------------
     $this->load->helper('dl_util/verify_id');
     verifyIDsViaType($this, $enumContextType, $lFID, false);
     $displayData = array();
     $displayData = array();
     $displayData['lFID'] = $lFID = (int) $lFID;
     $displayData['enumContextType'] = $enumContextType;
     $displayData['enumEntryType'] = $enumEntryType;
     $displayData['bImage'] = $bImage = $enumEntryType == CENUM_IMGDOC_ENTRY_IMAGE;
     $displayData['bUpdate'] = false;
     $strLabel = $bImage ? 'Image' : 'Document';
     //-------------------------
     // models & helpers
     //-------------------------
     $params = array('enumStyle' => 'terse');
     $this->load->library('generic_rpt', $params);
     $this->load->library('util/dl_date_time', '', 'clsDateTime');
     $this->load->model('img_docs/mimage_doc', 'clsImgDoc');
     $this->load->model('img_docs/mimg_doc_tags', 'cidTags');
     $this->load->helper('dl_util/web_layout');
     $this->load->helper('auctions/auction');
     $this->load->helper('dl_util/record_view');
     $this->load->helper('img_docs/link_img_docs');
     $this->load->helper('dl_util/time_date');
     $this->load->helper('dl_util/context');
     $this->load->helper('img_docs/image_doc');
     $this->load->helper('img_docs/link_img_docs');
     $this->load->helper('img_docs/img_doc_tags');
     loadSupportModels($enumContextType, $lFID);
     $this->clsImgDoc->loadDocImageInfoViaEntryContextFID($enumEntryType, $enumContextType, $lFID);
     $displayData['lNumImageDocs'] = $lNumImageDocs = $this->clsImgDoc->lNumImageDocs;
     if ($lNumImageDocs > 0) {
         $displayData['imageDocs'] =& $this->clsImgDoc->imageDocs;
         foreach ($displayData['imageDocs'] as $img) {
             $img->strTagsUL = $this->cidTags->strImgDocTagsUL($img->lKeyID);
         }
     }
     //--------------------------
     // breadcrumbs
     //--------------------------
     $displayData['contextSummary'] = strContextHTML($enumContextType, $lFID, $displayData['strContextName']);
     $displayData['pageTitle'] = breadCrumbsToRecViewViaContextType($enumContextType, $lFID, 'View ' . $strLabel . 's');
     $displayData['title'] = CS_PROGNAME . ' | ' . $strLabel . 's';
     $displayData['nav'] = $this->mnav_brain_jar->navData();
     $displayData['mainTemplate'] = 'img_docs/view_image_docs_view';
     $this->load->vars($displayData);
     $this->load->view('template');
 }
 function addEdit($id)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     if (!bTestForURLHack('adminOnly')) {
         return;
     }
     $this->load->helper('dl_util/verify_id');
     verifyIDsViaType($this, CENUM_CONTEXT_ACCOUNT, $id, true);
     $displayData = array();
     $id = (int) $id;
     $displayData['bNew'] = $bNew = $id <= 0;
     $displayData['lAcctID'] = $id;
     $this->load->model('donations/maccts_camps', 'clsAC');
     // validation rules
     $this->form_validation->set_error_delimiters('<div class="formError">', '</div>');
     $this->form_validation->set_rules('txtAcct', 'Account Name', 'callback_acctNameDupTest[' . $id . ']');
     if ($this->form_validation->run() == FALSE) {
         $displayData['title'] = CS_PROGNAME . ' | Accounts';
         $displayData['pageTitle'] = anchor('main/menu/admin', 'Admin', 'class="breadcrumb"') . ' | ' . anchor('admin/alists/showLists', 'Lists', 'class="breadcrumb"') . ' | ' . anchor('accts_camp/accounts/view', 'Accounts & Campaigns', 'class="breadcrumb"') . ' |  ' . ($bNew ? 'Add New Account' : 'Update Account');
         $displayData['nav'] = $this->mnav_brain_jar->navData();
         $this->clsAC->loadAccounts(false, true, $id);
         $displayData['clsAcct'] = $this->clsAC->accounts[0];
         $displayData['bAnyGifts'] = $this->clsAC->bAnyGiftsViaAcctID($id);
         $this->load->library('generic_form');
         $displayData['clsForm'] = $this->generic_form;
         if (validation_errors() == '') {
             $displayData['strAccount'] = $this->clsAC->accounts[0]->strSafeName;
         } else {
             setOnFormError($displayData);
             $displayData['strAccount'] = set_value('txtAcct');
         }
         $displayData['mainTemplate'] = 'accts_camp/account_add_edit';
         $this->load->vars($displayData);
         $this->load->view('template');
     } else {
         $this->clsAC->accounts[0]->strAccount = $strAcct = xss_clean(trim($_POST['txtAcct']));
         if ($bNew) {
             $this->clsAC->lAddNewAccount();
             $this->session->set_flashdata('msg', 'Your new account was added');
         } else {
             $this->clsAC->accounts[0]->bRetired = @$_POST['chkRetire'] == 'TRUE';
             $this->clsAC->accounts[0]->lKeyID = $id;
             $this->clsAC->updateAccount();
             $this->session->set_flashdata('msg', 'Your account was updated');
         }
         redirect('accts_camp/accounts/view');
     }
 }
 function addEdit($lClientID)
 {
     //---------------------------------------------------------------
     // user wishes to edit existing client record
     //---------------------------------------------------------------
     if (!bTestForURLHack('showClients')) {
         return;
     }
     $this->load->helper('dl_util/verify_id');
     verifyIDsViaType($this, CENUM_CONTEXT_CLIENT, $lClientID, true);
     $lClientID = (int) $lClientID;
     $this->load->library('util/dl_date_time', '', 'clsDateTime');
     $this->load->model('clients/mclients', 'clsClients');
     $this->clsClients->loadClientsViaClientID($lClientID);
     $this->addEditClient($lClientID, $this->clsClients);
 }
 function orderTermSelected($lReportID, $strField, $bAscending, $lTermID = 0)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     $this->load->helper('dl_util/verify_id');
     verifyID($this, $lReportID, 'custom report ID');
     verifyIDsViaType($this, CENUM_CONTEXT_CUSTOMREPORTTERM, $lTermID, true);
     $lReportID = (int) $lReportID;
     $lTermID = (int) $lTermID;
     $bAscending = $bAscending == 'true';
     $bNew = $lTermID <= 0;
     //-------------------------
     // models & helpers
     //-------------------------
     $this->load->helper('reports/search');
     $this->load->helper('reports/creport_util');
     $this->load->helper('dl_util/context');
     $this->load->model('admin/mpermissions', 'perms');
     $this->load->model('personalization/muser_fields');
     $this->load->model('personalization/muser_schema');
     $this->load->model('admin/madmin_aco');
     $this->load->model('creports/mcreports', 'crpt');
     //------------------------------------------------
     // load report
     //------------------------------------------------
     $this->crpt->loadReportViaID($lReportID, false);
     $report =& $this->crpt->reports[0];
     $enumRptType = $report->enumRptType;
     $tables = $this->crpt->loadTableStructures($enumRptType);
     $this->crpt->findFieldInTables($strField, $tables, $lTableIDX, $lFieldIDX);
     $table =& $tables[$lTableIDX];
     $opts = new stdClass();
     $opts->lReportID = $lReportID;
     $opts->bAscending = $bAscending;
     $opts->strFieldID = $strField;
     $opts->lFieldID = $table->fields[$lFieldIDX]->lFieldID;
     $opts->lTableID = $table->lTableID;
     $this->crpt->addSortTerm($opts);
     redirect('creports/custom_directory/viewRec/' . $lReportID);
 }
 function addFromCForm($lParentID, $lCFID)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     global $gErrMessages, $gbShowHiddenVerifyError;
     $this->load->helper('dl_util/verify_id');
     verifyID($this, $lCFID, 'custom form ID');
     $displayData = array();
     $displayData['js'] = '';
     $displayData['lCFID'] = $lCFID = (int) $lCFID;
     $displayData['lParentID'] = $lParentID = (int) $lParentID;
     $gbShowHiddenVerifyError = false;
     $gErrMessages = array();
     /*------------------------------------------------
           models/libraries/helpers
       ------------------------------------------------*/
     $params = array('enumStyle' => 'terse');
     $this->load->library('generic_rpt', $params);
     $this->load->model('custom_forms/mcustom_forms', 'cForm');
     $this->load->model('personalization/muser_fields', 'clsUF');
     $this->load->model('personalization/muser_fields_display', 'clsUFD');
     $this->load->model('admin/madmin_aco', 'clsACO');
     $this->load->model('admin/mpermissions', 'perms');
     $this->load->helper('dl_util/context');
     $this->load->helper('dl_util/custom_forms');
     $this->load->helper('dl_util/time_date');
     $this->load->library('util/dl_date_time', '', 'clsDateTime');
     // load the custom form
     $this->cForm->loadCustomFormsViaCFID($lCFID);
     $displayData['cForm'] = $cForm =& $this->cForm->customForms[0];
     $enumType = $cForm->enumContextType;
     // now that the context is known, verify the parent ID
     verifyIDsViaType($this, $enumType, $lParentID, true);
     // custom verification ?
     $displayData['bCusVerification'] = $bCusVerification = $cForm->strVerificationModule . '' != '';
     //-----------------------------
     // validation rules
     //-----------------------------
     $this->form_validation->set_error_delimiters('<div class="formError">', '</div>');
     if ($bCusVerification) {
         $this->load->helper('path');
         $this->form_validation->set_rules('hVerify', 'Hidden verification', 'callback_hiddenVerify[' . $cForm->strVerificationModule . ',' . $cForm->strVModEntryPoint . ']');
     }
     // personalized tables and associated fields
     $this->cForm->loadPTablesForDisplay($lCFID, $this->clsUF);
     $displayData['utables'] = $utables =& $this->cForm->utables;
     $displayData['lNumTables'] = $lNumTables = $this->cForm->lNumTables;
     setValidationUTables($displayData['js'], $lNumTables, $utables);
     if ($this->form_validation->run() == FALSE) {
         $this->load->library('generic_form');
         $this->load->model('util/mlist_generic', 'clsList');
         $this->load->helper('dl_util/web_layout');
         loadSupportModels($enumType, $lParentID);
         initUTableDates($displayData['js'], $lNumTables, $utables);
         initUTableDDLs($lNumTables, $utables);
         if (validation_errors() == '') {
             populateCustomTables($lNumTables, $utables, $lParentID);
             setCustomUTableDDLs($lNumTables, $utables);
         } else {
             setOnFormError($displayData);
             repopulateCustomTables($lNumTables, $utables);
         }
         //--------------------------
         // breadcrumbs
         //--------------------------
         $displayData['pageTitle'] = $this->cForm->strCustomFormsPageTitleAddEdit($enumType, $cForm->strFormName);
         $displayData['strHTMLSummary'] = strContextHTML($enumType, $lParentID, $enumType);
         $displayData['errMessages'] = arrayCopy($gErrMessages);
         $displayData['title'] = CS_PROGNAME . ' | Custom Forms';
         $displayData['nav'] = $this->mnav_brain_jar->navData();
         $displayData['mainTemplate'] = array('custom_forms/custom_form_data_entry_view');
         $this->load->vars($displayData);
         $this->load->view('template');
     } else {
         saveCustomPTables($lParentID, $lNumTables, $utables);
         $this->cForm->lLogFormSave($lParentID, $lCFID);
         $this->fromWhenceYeCame($lParentID, $enumType, $cForm);
     }
 }
 function add($enumContextType, $enumEntryType, $lFID)
 {
     //------------------------------------------------------------------------------
     //
     //------------------------------------------------------------------------------
     global $gstrFormatDatePicker, $gdteNow, $gbDateFormatUS;
     if (!bTestForURLHack('editImagesDocs', $enumContextType)) {
         return;
     }
     $this->load->helper('dl_util/verify_id');
     verifyIDsViaType($this, $enumContextType, $lFID, false);
     $displayData = array();
     $displayData['formData'] = new stdClass();
     $displayData['lFID'] = $lFID = (int) $lFID;
     $displayData['enumContextType'] = $enumContextType;
     $displayData['enumEntryType'] = $enumEntryType;
     $displayData['bImage'] = $bImage = $enumEntryType == CENUM_IMGDOC_ENTRY_IMAGE;
     $displayData['bUpdate'] = false;
     $strLabel = $bImage ? 'Image' : 'Document';
     //-------------------------
     // models & helpers
     //-------------------------
     $params = array('enumStyle' => 'terse');
     $this->load->library('generic_rpt', $params);
     $this->load->library('util/dl_date_time', '', 'clsDateTime');
     $this->load->helper('dl_util/time_date');
     $this->load->helper('dl_util/context');
     $this->load->helper('auctions/auction');
     $this->load->helper('img_docs/image_doc');
     $this->load->helper('img_docs/link_img_docs');
     $this->load->model('admin/mpermissions', 'perms');
     loadSupportModels($enumContextType, $lFID);
     $enumIDContext = imgDocTags\xlateTagTypeViaContextType($enumContextType, $enumEntryType);
     $displayData['strTagLabel'] = imgDocTags\strXlateImgDocContext($enumIDContext);
     $this->cidTags->loadImgDocTagsForDDL($enumIDContext, -1, $displayData['lNumTags'], $displayData['tags']);
     //-------------------------
     // validation rules
     //-------------------------
     $this->form_validation->set_error_delimiters('<div class="formError">', '</div>');
     $this->form_validation->set_rules('txtDescription', 'Description', 'trim');
     $this->form_validation->set_rules('txtCaption', 'Caption', 'trim');
     $this->form_validation->set_rules('txtDate', 'Date of ' . $strLabel, 'trim|required|' . 'callback_clientImageUploadVerifyBDateValid');
     if ($bImage) {
         $this->form_validation->set_rules('chkProfile', 'Profile', 'trim');
         $this->form_validation->set_rules('userfile', 'File Name', 'callback_clientUpImageFN');
     } else {
         $this->form_validation->set_rules('userfile', 'File Name', 'callback_clientUpDocFN');
     }
     if ($this->form_validation->run() == FALSE) {
         $this->load->helper('dl_util/web_layout');
         $this->load->library('generic_form');
         // first time displayed, no user data entry errors
         if (validation_errors() == '') {
             $displayData['formData']->txtDate = date($gstrFormatDatePicker, $gdteNow);
             $displayData['formData']->txtDescription = '';
             $displayData['formData']->txtCaption = '';
             if ($bImage) {
                 $displayData['formData']->bProfile = false;
             }
         } else {
             setOnFormError($displayData);
             $displayData['formData']->txtDescription = set_value('txtDescription');
             $displayData['formData']->txtCaption = set_value('txtCaption');
             $displayData['formData']->txtDate = set_value('txtDate');
             $this->updateTagSelect($displayData['lNumTags'], $displayData['tags']);
             if ($bImage) {
                 $displayData['formData']->bProfile = set_value('chkProfile') == 'TRUE';
             }
             // if errors other than those related to file upload, delete
             // temporary upload file
             $strTempFN = @$_SESSION[CS_NAMESPACE . 'clientUploadEncryptFN'];
             if ($strTempFN != '') {
                 unlink('./images/upload/' . $strTempFN);
             }
         }
         $displayData['contextSummary'] = strContextHTML($enumContextType, $lFID, $displayData['strContextName']);
         //--------------------------
         // breadcrumbs
         //--------------------------
         $displayData['pageTitle'] = breadCrumbsToRecViewViaContextType($enumContextType, $lFID, 'Add ' . $strLabel);
         $displayData['title'] = CS_PROGNAME . ' | ' . $strLabel . 's';
         $displayData['nav'] = $this->mnav_brain_jar->navData();
         $displayData['mainTemplate'] = 'img_docs/upload_image_doc_view';
         $this->load->vars($displayData);
         $this->load->view('template');
     } else {
         $this->load->model('img_docs/mimage_doc', 'clsImgDoc');
         if ($bImage) {
             $this->load->library('image_lib');
         }
         $this->clsImgDoc->loadDocImageInfoViaID(-1);
         $imageDoc =& $this->clsImgDoc->imageDocs[0];
         $bProfile = @$_POST['chkProfile'] == 'TRUE';
         $strDate = trim($_POST['txtDate']);
         MDY_ViaUserForm($strDate, $lMon, $lDay, $lYear, $gbDateFormatUS);
         $dteMySQLDate = strMoDaYr2MySQLDate($lMon, $lDay, $lYear);
         $uploadResults = $_SESSION[CS_NAMESPACE . 'uploadResults'];
         $enumEntryType = $bImage ? CENUM_IMGDOC_ENTRY_IMAGE : CENUM_IMGDOC_ENTRY_PDF;
         $imageDoc->enumEntryType = $enumEntryType;
         $imageDoc->enumContextType = $enumContextType;
         $imageDoc->lForeignID = $lFID;
         $imageDoc->strCaptionTitle = trim($_POST['txtCaption']);
         $imageDoc->strDescription = trim($_POST['txtDescription']);
         $imageDoc->dteMysqlDocImage = $dteMySQLDate;
         $imageDoc->bProfile = $bProfile;
         $imageDoc->strUserFN = $uploadResults['orig_name'];
         $imageDoc->strSystemFN = $strFN = $uploadResults['file_name'];
         if ($bImage) {
             $imageDoc->strSystemThumbFN = $strThumbFN = $uploadResults['raw_name'] . '_tn' . $uploadResults['file_ext'];
         } else {
             $imageDoc->strSystemThumbFN = $strThumbFN = null;
         }
         $imageDoc->strPath = $strPath = $this->clsImgDoc->strCatalogPath($enumContextType, $enumEntryType, $lFID);
         $this->clsImgDoc->transferUploadFile($strPath, $strFN, $strThumbFN, $bImage, $bImage);
         $lImgDocID = $this->clsImgDoc->insertDocImageRec();
         if ($bImage && $bProfile) {
             $this->clsImgDoc->setProfileFlag($lImgDocID, $enumContextType, $lFID);
         }
         // tags
         $this->setUserSelectedTagsFromPost($lImgDocID);
         /*
                  $tagIDs = array();
                  if (isset($_POST['ddlTags'])){
                     $bTagIDs = array();
                     foreach ($_POST['ddlTags'] as $uselTag){
                        if ((int)$uselTag > 0) $tagIDs[] = (int)$uselTag;
                     }
                  }
                  $this->cidTags->setTagIDsViaImgDocID($lImgDocID, $tagIDs);
         */
         $this->session->set_flashdata('msg', 'The ' . $strLabel . ' was uploaded');
         redirectViaContextType($enumContextType, $lFID);
     }
 }
function commonAcctEdit($lUserID, $bAsAdmin)
{
    /*---------------------------------------------------------------------
          another way... Note that get_instance is a CI function, defined in
          system/core/CodeIgniter.php
    
          from http://stackoverflow.com/questions/4740430/explain-ci-get-instance
    
          $CI =& get_instance(); // use get_instance, it is less prone to failure in this context.
       ---------------------------------------------------------------------*/
    global $glUserID;
    $bSelfSame = $glUserID == $lUserID;
    if ($bAsAdmin) {
        if (!bTestForURLHack('adminOnly')) {
            return;
        }
    } else {
        if (!$bSelfSame) {
            bTestForURLHack('forceFail');
            return;
        }
    }
    $local =& get_instance();
    $local->load->helper('dl_util/verify_id');
    verifyIDsViaType($local, CENUM_CONTEXT_USER, $lUserID, true);
    $local->load->model('admin/mpermissions', 'perms');
    $displayData = array();
    $displayData['js'] = '';
    $displayData['userRec'] = new stdClass();
    $displayData['lUserID'] = $lUserID = (int) $lUserID;
    $displayData['bNew'] = $bNew = $lUserID <= 0;
    $displayData['bAsAdmin'] = $bAsAdmin;
    $local->load->helper('js/hide_show_div');
    $displayData['js'] .= insertHideSetDiv();
    $local->load->model('admin/muser_accts', 'clsUser');
    $local->load->helper('dl_util/web_layout');
    //-----------------------------
    // load account record
    //-----------------------------
    $local->clsUser->loadSingleUserRecord($lUserID);
    $userRec = $local->clsUser->userRec[0];
    // validation rules
    $local->form_validation->set_error_delimiters('<div class="formError">', '</div>');
    $local->form_validation->set_rules('txtFName', 'User\'s First Name', 'trim|required');
    $local->form_validation->set_rules('txtLName', 'User\'s Last Name', 'trim|required');
    $local->form_validation->set_rules('txtUN', 'User Name', 'trim|required|callback_verifyUniqueUserID[' . $lUserID . ']');
    if ($bAsAdmin) {
        $local->form_validation->set_rules('txtPWord1', 'Password', 'trim|callback_verifyPWordRequired[' . $lUserID . ']');
        $local->form_validation->set_rules('txtPWord2', 'Password (again)', 'trim|callback_verifyPWordsMatch');
        $local->form_validation->set_rules('chkAdmin');
    }
    $local->form_validation->set_rules('rdoAcctType');
    //      $local->form_validation->set_rules('rdoAcctType');
    $local->form_validation->set_rules('rdoDebug');
    // volunteer permissions
    $local->form_validation->set_rules('chkVolEditContactInfo');
    $local->form_validation->set_rules('chkVolVolPassReset');
    $local->form_validation->set_rules('chkVolViewGiftHistory');
    $local->form_validation->set_rules('chkVolEditJobSkills');
    $local->form_validation->set_rules('chkVolViewHrsHistory');
    $local->form_validation->set_rules('chkVolAddVolHours');
    $local->form_validation->set_rules('chkVolShiftSignup');
    $local->form_validation->set_rules('txtPID', 'PeopleID', 'trim|is_natural_no_zero|callback_verifyPID');
    $local->form_validation->set_rules('chkUserDataEntryPeople');
    $local->form_validation->set_rules('chkUserDataEntryGifts');
    $local->form_validation->set_rules('chkUserEditPeople');
    $local->form_validation->set_rules('chkUserEditGifts');
    $local->form_validation->set_rules('chkUserViewGiftHistory');
    $local->form_validation->set_rules('chkUserViewPeople');
    $local->form_validation->set_rules('chkUserViewReports');
    $local->form_validation->set_rules('chkUserAllowSponsorship');
    $local->form_validation->set_rules('chkUserAllowSponFinancial');
    $local->form_validation->set_rules('chkUserAllowClient');
    $local->form_validation->set_rules('chkUserAllowAuctions');
    $local->form_validation->set_rules('chkUserAllowGrants');
    $local->form_validation->set_rules('chkUserAllowInventory');
    $local->form_validation->set_rules('chkUserVolManager');
    $local->form_validation->set_rules('chkUserAllowExports');
    $local->form_validation->set_rules('rdoDateFormat', 'Date Format', 'required');
    $local->form_validation->set_rules('rdoMeasureFormat', 'Measurement Preference', 'required');
    $local->form_validation->set_rules('txtPhone');
    $local->form_validation->set_rules('txtCell');
    $local->form_validation->set_rules('txtEmail', 'User\'s Email', 'required|valid_email');
    $local->form_validation->set_rules('txtAddr1');
    $local->form_validation->set_rules('txtAddr2');
    $local->form_validation->set_rules('txtCity');
    $local->form_validation->set_rules('txtState');
    $local->form_validation->set_rules('txtCountry');
    $local->form_validation->set_rules('txtZip');
    if ($local->form_validation->run() == FALSE) {
        if ($bNew) {
            $strAnchorExtra = '';
        } else {
            $strAnchorExtra = ' | ' . anchor('admin/accts/view/' . $lUserID, $userRec->strSafeName, 'class="breadcrumb"');
        }
        $displayData['title'] = CS_PROGNAME . ' | User Accounts';
        if ($bAsAdmin) {
            $displayData['pageTitle'] = anchor('main/menu/admin', 'Admin', 'class="breadcrumb"') . ' | ' . anchor('admin/accts/userAcctDir/A', 'User Accounts', 'class="breadcrumb"') . $strAnchorExtra . ' |  ' . ($bNew ? 'Add New Account' : 'Edit Account');
        } else {
            $displayData['pageTitle'] = anchor('main/menu/more', 'More', 'class="breadcrumb"') . ' | ' . anchor('more/user_acct/view/' . $glUserID, 'Your Account', 'class="breadcrumb"');
        }
        $displayData['nav'] = $local->mnav_brain_jar->navData();
        $local->load->library('generic_form');
        $displayData['userRec']->strSafeName = $userRec->strSafeName;
        $displayData['userRec']->lKeyID = $userRec->us_lKeyID;
        if (validation_errors() == '') {
            $displayData['userRec']->strFName = htmlspecialchars($userRec->us_strFirstName);
            $displayData['userRec']->strLName = htmlspecialchars($userRec->us_strLastName);
            $displayData['userRec']->strUserName = htmlspecialchars($userRec->us_strUserName);
            $displayData['userRec']->enumDateFormat = htmlspecialchars($userRec->us_enumDateFormat);
            $displayData['userRec']->enumMeasurePref = htmlspecialchars($userRec->us_enumMeasurePref);
            $displayData['userRec']->bAdmin = $userRec->us_bAdmin;
            $displayData['userRec']->bDebugger = $userRec->us_bDebugger;
            $displayData['userRec']->bStandardUser = $userRec->bStandardUser;
            $displayData['userRec']->bVolAccount = $userRec->bVolAccount;
            $displayData['userRec']->bVolEditContact = $userRec->bVolEditContact;
            $displayData['userRec']->bVolPassReset = $userRec->bVolPassReset;
            $displayData['userRec']->bVolViewGiftHistory = $userRec->bVolViewGiftHistory;
            $displayData['userRec']->bVolEditJobSkills = $userRec->bVolEditJobSkills;
            $displayData['userRec']->bVolViewHrsHistory = $userRec->bVolViewHrsHistory;
            $displayData['userRec']->bVolAddVolHours = $userRec->bVolAddVolHours;
            $displayData['userRec']->bVolShiftSignup = $userRec->bVolShiftSignup;
            $displayData['userRec']->txtPID = $userRec->lPeopleID;
            $displayData['userRec']->bUserDataEntryPeople = $userRec->bUserDataEntryPeople;
            $displayData['userRec']->bUserDataEntryGifts = $userRec->bUserDataEntryGifts;
            $displayData['userRec']->bUserEditPeople = $userRec->bUserEditPeople;
            $displayData['userRec']->bUserEditGifts = $userRec->bUserEditGifts;
            $displayData['userRec']->bUserViewPeople = $userRec->bUserViewPeople;
            $displayData['userRec']->bUserViewGiftHistory = $userRec->bUserViewGiftHistory;
            $displayData['userRec']->bUserViewReports = $userRec->bUserViewReports;
            $displayData['userRec']->bUserAllowExports = $userRec->bUserAllowExports;
            $displayData['userRec']->bUserAllowSponsorship = $userRec->bUserAllowSponsorship;
            $displayData['userRec']->bUserAllowSponFinancial = $userRec->bUserAllowSponFinancial;
            $displayData['userRec']->bUserAllowClient = $userRec->bUserAllowClient;
            $displayData['userRec']->bUserAllowAuctions = $userRec->bUserAllowAuctions;
            $displayData['userRec']->bUserAllowGrants = $userRec->bUserAllowGrants;
            $displayData['userRec']->bUserAllowInventory = $userRec->bUserAllowInventory;
            $displayData['userRec']->bUserVolManager = $userRec->bUserVolManager;
            $displayData['userRec']->strPhone = htmlspecialchars($userRec->us_strPhone);
            $displayData['userRec']->strCell = htmlspecialchars($userRec->us_strCell);
            $displayData['userRec']->strEmail = htmlspecialchars($userRec->us_strEmail);
            $displayData['userRec']->strAddr1 = htmlspecialchars($userRec->us_strAddr1);
            $displayData['userRec']->strAddr2 = htmlspecialchars($userRec->us_strAddr2);
            $displayData['userRec']->strCity = htmlspecialchars($userRec->us_strCity);
            $displayData['userRec']->strState = htmlspecialchars($userRec->us_strState);
            $displayData['userRec']->strCountry = htmlspecialchars($userRec->us_strCountry);
            $displayData['userRec']->strZip = htmlspecialchars($userRec->us_strZip);
        } else {
            setOnFormError($displayData);
            $displayData['userRec']->strFName = set_value('txtFName');
            $displayData['userRec']->strLName = set_value('txtLName');
            $displayData['userRec']->strUserName = set_value('txtUN');
            $displayData['userRec']->enumDateFormat = set_value('rdoDateFormat');
            $displayData['userRec']->enumMeasurePref = set_value('rdoMeasureFormat');
            $displayData['userRec']->bDebugger = set_value('rdoDebug') == 'true';
            $displayData['userRec']->bAdmin = set_value('rdoAcctType') == 'admin';
            $displayData['userRec']->bStandardUser = set_value('rdoAcctType') == 'user';
            $displayData['userRec']->bVolAccount = set_value('rdoAcctType') == 'vol';
            $displayData['userRec']->bVolEditContact = set_value('chkVolEditContactInfo') == 'true';
            $displayData['userRec']->bVolPassReset = set_value('chkVolVolPassReset') == 'true';
            $displayData['userRec']->bVolViewGiftHistory = set_value('chkVolViewGiftHistory') == 'true';
            $displayData['userRec']->bVolEditJobSkills = set_value('chkVolEditJobSkills') == 'true';
            $displayData['userRec']->bVolViewHrsHistory = set_value('chkVolViewHrsHistory') == 'true';
            $displayData['userRec']->bVolAddVolHours = set_value('chkVolAddVolHours') == 'true';
            $displayData['userRec']->bVolShiftSignup = set_value('chkVolShiftSignup') == 'true';
            $displayData['userRec']->txtPID = set_value('txtPID');
            $displayData['userRec']->bUserDataEntryPeople = set_value('chkUserDataEntryPeople') == 'true';
            $displayData['userRec']->bUserDataEntryGifts = set_value('chkUserDataEntryGifts') == 'true';
            $displayData['userRec']->bUserEditPeople = set_value('chkUserEditPeople') == 'true';
            $displayData['userRec']->bUserEditGifts = set_value('chkUserEditGifts') == 'true';
            $displayData['userRec']->bUserViewPeople = set_value('chkUserViewPeople') == 'true';
            $displayData['userRec']->bUserViewGiftHistory = set_value('chkUserViewGiftHistory') == 'true';
            $displayData['userRec']->bUserViewReports = set_value('chkUserViewReports') == 'true';
            $displayData['userRec']->bUserAllowExports = set_value('chkUserAllowExports') == 'true';
            $displayData['userRec']->bUserAllowSponsorship = set_value('chkUserAllowSponsorship') == 'true';
            $displayData['userRec']->bUserAllowSponFinancial = set_value('chkUserAllowSponFinancial') == 'true';
            $displayData['userRec']->bUserAllowClient = set_value('chkUserAllowClient') == 'true';
            $displayData['userRec']->bUserAllowAuctions = set_value('chkUserAllowAuctions') == 'true';
            $displayData['userRec']->bUserAllowGrants = set_value('chkUserAllowGrants') == 'true';
            $displayData['userRec']->bUserAllowInventory = set_value('chkUserAllowInventory') == 'true';
            $displayData['userRec']->bUserVolManager = set_value('chkUserVolManager') == 'true';
            $displayData['userRec']->strPhone = set_value('txtPhone');
            $displayData['userRec']->strCell = set_value('txtCell');
            $displayData['userRec']->strEmail = set_value('txtEmail');
            $displayData['userRec']->strAddr1 = set_value('txtAddr1');
            $displayData['userRec']->strAddr2 = set_value('txtAddr2');
            $displayData['userRec']->strCity = set_value('txtCity');
            $displayData['userRec']->strState = set_value('txtState');
            $displayData['userRec']->strCountry = set_value('txtCountry');
            $displayData['userRec']->strZip = set_value('txtZip');
        }
        $displayData['mainTemplate'] = 'admin/user_acct_add_edit_view';
        $local->load->vars($displayData);
        $local->load->view('template');
    } else {
        $userRec->us_strFirstName = xss_clean(trim($_POST['txtFName']));
        $userRec->us_strLastName = xss_clean(trim($_POST['txtLName']));
        $userRec->us_strUserName = xss_clean(trim($_POST['txtUN']));
        $userRec->us_enumDateFormat = xss_clean(trim($_POST['rdoDateFormat']));
        $userRec->us_enumMeasurePref = xss_clean(trim($_POST['rdoMeasureFormat']));
        if ($bAsAdmin) {
            $userRec->us_bDebugger = $_POST['rdoDebug'] == 'true';
            $userRec->us_bAdmin = $_POST['rdoAcctType'] == 'admin';
            $userRec->bStandardUser = $_POST['rdoAcctType'] == 'user';
            $userRec->bVolAccount = $_POST['rdoAcctType'] == 'vol';
            $userRec->bVolEditContact = $userRec->bVolPassReset = $userRec->bVolViewGiftHistory = $userRec->bVolEditJobSkills = $userRec->bVolViewHrsHistory = $userRec->bVolAddVolHours = $userRec->bVolShiftSignup = false;
            $userRec->bUserDataEntryPeople = $userRec->bUserDataEntryGifts = $userRec->bUserEditPeople = $userRec->bUserEditGifts = $userRec->bUserViewPeople = $userRec->bUserViewGiftHistory = $userRec->bUserViewReports = $userRec->bUserAllowSponsorship = $userRec->bUserAllowSponFinancial = $userRec->bUserAllowClient = $userRec->bUserAllowAuctions = $userRec->bUserAllowGrants = $userRec->bUserAllowInventory = $userRec->bUserVolManager = $userRec->bUserAllowExports = false;
            if ($userRec->bVolAccount) {
                $userRec->bVolEditContact = @$_POST['chkVolEditContactInfo'] == 'true';
                $userRec->bVolPassReset = @$_POST['chkVolVolPassReset'] == 'true';
                $userRec->bVolViewGiftHistory = @$_POST['chkVolViewGiftHistory'] == 'true';
                $userRec->bVolEditJobSkills = @$_POST['chkVolEditJobSkills'] == 'true';
                $userRec->bVolViewHrsHistory = @$_POST['chkVolViewHrsHistory'] == 'true';
                $userRec->bVolAddVolHours = @$_POST['chkVolAddVolHours'] == 'true';
                $userRec->bVolShiftSignup = @$_POST['chkVolShiftSignup'] == 'true';
                $userRec->lPeopleID = (int) @$_POST['txtPID'];
            } elseif ($userRec->bStandardUser) {
                $userRec->bUserDataEntryPeople = @$_POST['chkUserDataEntryPeople'] == 'true';
                $userRec->bUserDataEntryGifts = @$_POST['chkUserDataEntryGifts'] == 'true';
                $userRec->bUserEditPeople = @$_POST['chkUserEditPeople'] == 'true';
                $userRec->bUserEditGifts = @$_POST['chkUserEditGifts'] == 'true';
                $userRec->bUserViewPeople = @$_POST['chkUserViewPeople'] == 'true';
                $userRec->bUserViewGiftHistory = @$_POST['chkUserViewGiftHistory'] == 'true';
                $userRec->bUserViewReports = @$_POST['chkUserViewReports'] == 'true';
                $userRec->bUserAllowExports = @$_POST['chkUserAllowExports'] == 'true';
                $userRec->bUserAllowSponsorship = @$_POST['chkUserAllowSponsorship'] == 'true';
                $userRec->bUserAllowSponFinancial = @$_POST['chkUserAllowSponFinancial'] == 'true';
                $userRec->bUserAllowClient = @$_POST['chkUserAllowClient'] == 'true';
                $userRec->bUserAllowAuctions = @$_POST['chkUserAllowAuctions'] == 'true';
                $userRec->bUserAllowGrants = @$_POST['chkUserAllowGrants'] == 'true';
                $userRec->bUserAllowInventory = @$_POST['chkUserAllowInventory'] == 'true';
                $userRec->bUserVolManager = @$_POST['chkUserVolManager'] == 'true';
            }
        }
        $userRec->us_strPhone = xss_clean(trim($_POST['txtPhone']));
        $userRec->us_strCell = xss_clean(trim($_POST['txtCell']));
        $userRec->us_strEmail = xss_clean(trim($_POST['txtEmail']));
        $userRec->us_strAddr1 = xss_clean(trim($_POST['txtAddr1']));
        $userRec->us_strAddr2 = xss_clean(trim($_POST['txtAddr2']));
        $userRec->us_strCity = xss_clean(trim($_POST['txtCity']));
        $userRec->us_strState = xss_clean(trim($_POST['txtState']));
        $userRec->us_strCountry = xss_clean(trim($_POST['txtCountry']));
        $userRec->us_strZip = xss_clean(trim($_POST['txtZip']));
        $userRec->us_bInactive = 0;
        if ($bAsAdmin) {
            $userRec->us_strUserPWord = xss_clean(trim($_POST['txtPWord1']));
            $_SESSION[CS_NAMESPACE . 'user']->bDebugger = $userRec->us_bDebugger;
        } else {
            $userRec->us_strUserPWord = '';
        }
        if (!$bAsAdmin || $bSelfSame) {
            $_SESSION[CS_NAMESPACE . 'user']->enumDateFormat = $userRec->us_enumDateFormat;
            $_SESSION[CS_NAMESPACE . 'user']->enumMeasurePref = $userRec->us_enumMeasurePref;
            $_SESSION[CS_NAMESPACE . 'user']->strFirstName = $userRec->us_strFirstName;
            $_SESSION[CS_NAMESPACE . 'user']->strLastName = $userRec->us_strLastName;
            $_SESSION[CS_NAMESPACE . 'user']->strUserName = $userRec->us_strUserName;
            $_SESSION[CS_NAMESPACE . 'user']->strSafeName = htmlspecialchars($userRec->us_strFirstName . ' ' . $userRec->us_strLastName);
        }
        if ($bNew) {
            $lUserID = $local->clsUser->addUserAccount();
            $local->session->set_flashdata('msg', 'The new user was added');
        } else {
            $userRec->us_lKeyID = $lUserID;
            $local->clsUser->updateUserAccount();
            $local->session->set_flashdata('msg', 'The user account was updated');
        }
        if ($bAsAdmin) {
            redirect('admin/accts/view/' . $lUserID);
        } else {
            redirect_userAcct();
        }
    }
}
 function viewMeasurement($lClientID)
 {
     //---------------------------------------------------------------
     //
     //---------------------------------------------------------------
     global $gbMetric;
     $this->load->helper('dl_util/verify_id');
     verifyIDsViaType($this, CENUM_CONTEXT_CLIENT, $lClientID, true);
     $displayData = array();
     $displayData['lClientID'] = $lClientID;
     $displayData['js'] = '';
     /*------------------------------------------------
           models/libraries/helpers
       ------------------------------------------------*/
     $this->load->model('emr/mmeasurements', 'emrMeas');
     $this->load->model('img_docs/mimage_doc', 'clsImgDoc');
     $this->load->helper('img_docs/image_doc');
     $this->load->helper('img_docs/link_img_docs');
     $this->load->helper('emr/link_emr');
     $this->load->library('util/dl_date_time', '', 'clsDateTime');
     $this->load->model('emr/mpercentiles', 'percentiles');
     $this->load->model('clients/mclients', 'clsClients');
     $this->clsClients->loadClientsViaClientID($lClientID);
     $displayData['client'] = $client =& $this->clsClients->clients[0];
     /*-------------------------------------
           client summary
       -------------------------------------*/
     $params = array('enumStyle' => 'terse');
     $this->load->library('generic_rpt', $params, 'generic_rpt');
     $displayData['clsRpt'] = $this->generic_rpt;
     $displayData['contextSummary'] = $this->clsClients->strClientHTMLSummary(0);
     /*-------------------------------------
          stripes
       -------------------------------------*/
     $this->load->model('util/mbuild_on_ready', 'clsOnReady');
     $this->clsOnReady->addOnReadyTableStripes();
     $this->clsOnReady->closeOnReady();
     $displayData['js'] .= $this->clsOnReady->strOnReady;
     /*-------------------------------------
           measurements
       -------------------------------------*/
     $this->emrMeas->loadMeasurementViaClientID($lClientID);
     $displayData['lNumMeasure'] = $this->emrMeas->lNumMeasure;
     $displayData['measurements'] = $measurements =& $this->emrMeas->measurements;
     /* -------------------------------------
     echo('<font class="debug">'.substr(__FILE__, strrpos(__FILE__, '\\'))
        .': '.__LINE__.'<br>$displayData[measurements]   <pre>');
     echo(htmlspecialchars( print_r($displayData['measurements'], true))); echo('</pre></font><br>');
     // ------------------------------------- */
     /* -------------------------------------
     echo('<font class="debug">'.substr(__FILE__, strrpos(__FILE__, '\\'))
        .': '.__LINE__.'<br>$displayData   <pre>');
     echo(htmlspecialchars( print_r($displayData, true))); echo('</pre></font><br>');
     // ------------------------------------- */
     /*-------------------------------------
           percentiles
       -------------------------------------*/
     foreach ($measurements as $measure) {
         $measure->sngHeightP = null;
         $measure->sngWeightP = null;
         $measure->sngOFCP = null;
         $measure->sngBMIP = null;
     }
     /*--------------------------
          breadcrumbs
       --------------------------*/
     $displayData['pageTitle'] = anchor('main/menu/client', 'Clients', 'class="breadcrumb"') . ' | ' . anchor('clients/client_record/view/' . $lClientID, 'Client Record', 'class="breadcrumb"') . ' |  Measurements';
     $displayData['title'] = CS_PROGNAME . ' | Clients';
     $displayData['nav'] = $this->mnav_brain_jar->navData();
     $displayData['mainTemplate'] = 'emr/measurements_view';
     $this->load->vars($displayData);
     $this->load->view('template');
 }
 function remove($lClientID, $lStatRecID)
 {
     if (!bTestForURLHack('showClients')) {
         return;
     }
     $this->load->helper('dl_util/verify_id');
     verifyIDsViaType($this, CENUM_CONTEXT_CLIENT, $lClientID, true);
     verifyID($this, $lStatRecID, 'status entry ID');
     $lClientID = (int) $lClientID;
     $lStatRecID = (int) $lStatRecID;
     $this->load->model('clients/mclient_status', 'clsClientStat');
     $this->clsClientStat->removeClientStatusEntry($lStatRecID);
     $this->session->set_flashdata('msg', 'The client status entry was removed');
     redirect('clients/client_rec_stat/viewStatusHistory/' . $lClientID);
 }
 function removeRecord($lTableID, $lFID, $lRecID)
 {
     //-------------------------------------------------------------------------
     //
     //-------------------------------------------------------------------------
     $this->load->helper('dl_util/verify_id');
     if (!vid_bUserTableIDExists($this, $lTableID, $enumTabType)) {
         vid_bTestFail($this, false, 'user table ID', $lTableID);
     }
     verifyIDsViaType($this, $enumTabType, $lFID, false);
     $lEnrollID = 0;
     //-------------------------
     // models & helpers
     //-------------------------
     $this->load->model('personalization/muser_fields', 'clsUF');
     $this->load->model('personalization/muser_fields_display', 'clsUFD');
     $this->load->model('admin/mpermissions', 'perms');
     $this->load->helper('clients/client_program');
     $this->clsUFD->lTableID = $lTableID;
     $this->clsUFD->loadTableViaTableID();
     $utable =& $this->clsUFD->userTables[0];
     $enumTType = $utable->enumTType;
     $bCProg = bTypeIsClientProg($enumTType);
     $bEnrollment = $enumTType == CENUM_CONTEXT_CPROGENROLL;
     // if deleting an enrollment record, we must also delete
     // any associated attendance records
     if ($bCProg) {
         $this->load->model('client_features/mcprograms', 'cprograms');
         if ($bEnrollment) {
             $this->cprograms->loadClientProgramsViaETableID($lTableID);
             $cprog =& $this->cprograms->cprogs[0];
             $strATable = $cprog->strAttendanceTable;
             $strATableFNPre = $cprog->strATableFNPrefix;
             $this->cprograms->deleteATableRecsViaEnrollRecID($strATable, $strATableFNPre, $lRecID);
         } else {
             // load the enrollment record to provide the proper return path
             $this->cprograms->loadClientProgramsViaATableID($lTableID);
             $cprog =& $this->cprograms->cprogs[0];
             $this->cprograms->loadBaseARecViaARecID($cprog, $lRecID, $lNumARecs, $arecs);
             $lEnrollID = $arecs[0]->lEnrollID;
         }
         $strTableLabel = 'An ' . ($bEnrollment ? 'enrollment' : 'attendance') . ' record was removed from client program <b>' . htmlspecialchars($cprog->strProgramName) . '</b>.';
     } else {
         $strTableLabel = 'The selected record was removed from ' . 'table <b>' . htmlspecialchars($utable->strUserTableName) . '</b>';
     }
     $this->clsUFD->removeMRRecord($lRecID);
     $this->session->set_flashdata('msg', $strTableLabel);
     redirect('admin/uf_multirecord_view/viewMRViaFID/' . $lTableID . '/' . $lFID . '/' . $lEnrollID);
 }
 function remove($lReportID, $lTermID)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     $this->load->helper('dl_util/verify_id');
     verifyID($this, $lReportID, 'custom report ID');
     verifyIDsViaType($this, CENUM_CONTEXT_CUSTOMREPORTTERM, $lTermID, false);
     //-------------------------
     // models & helpers
     //-------------------------
     $this->load->helper('reports/search');
     $this->load->helper('dl_util/context');
     $this->load->helper('creports/creport_field');
     $this->load->helper('reports/creport_util');
     $this->load->model('admin/madmin_aco');
     $this->load->model('creports/mcreports');
     $this->load->model('creports/mcrpt_search_terms', 'crptTerms');
     $this->crptTerms->removeTerm($lTermID);
     $this->session->set_flashdata('msg', 'The search term was removed.');
     redirect('creports/custom_directory/viewRec/' . $lReportID);
 }
 function userAddEdit($lTableID, $lForeignID, $lEditFieldID)
 {
     //-----------------------------------------------------------------------------
     //
     //-----------------------------------------------------------------------------
     global $gbDateFormatUS;
     $this->load->helper('dl_util/verify_id');
     if (!vid_bUserTableIDExists($this, $lTableID, $enumTabType)) {
         vid_bTestFail($this, false, 'user table ID', $lTableID);
     }
     verifyIDsViaType($this, $enumTabType, $lForeignID, false);
     if (!is_numeric($lEditFieldID)) {
         vid_bTestFail($this, false, 'user field ID', $lEditFieldID);
     }
     $displayData = array();
     $displayData['lTableID'] = $lTableID = (int) $lTableID;
     $displayData['lForeignID'] = $lForeignID = (int) $lForeignID;
     $displayData['lEditFieldID'] = $lEditFieldID = (int) $lEditFieldID;
     //-----------------------
     // load table info
     //-----------------------
     $bEditMode = $lEditFieldID > 0;
     $this->load->model('personalization/muser_fields', 'clsUF');
     $this->load->model('personalization/muser_fields_display', 'clsUFD');
     $this->load->model('admin/mpermissions', 'perms');
     $this->load->library('util/dl_date_time', '', 'clsDateTime');
     $params = array('enumStyle' => 'enpRptC');
     $this->load->library('generic_rpt', $params);
     $this->load->model('admin/madmin_aco');
     $this->load->helper('dl_util/time_date');
     $this->load->helper('dl_util/context');
     $this->clsUFD->lTableID = $lTableID;
     $this->clsUFD->lForeignID = $lForeignID;
     $this->clsUFD->loadTableViaTableID();
     $enumTType = $this->clsUFD->userTables[0]->enumTType;
     loadSupportModels($enumTType, $lForeignID);
     // validation rules
     $this->form_validation->set_error_delimiters('<div class="formError">', '</div>');
     $this->form_validation->set_rules('txtxxxx');
     // dummy
     if ($bEditMode) {
         $this->clsUFD->loadSingleField($lEditFieldID);
         $enumFType = $this->clsUFD->fields[0]->enumFieldType;
         $strFName = 'var' . $lEditFieldID;
         if ($enumFType == CS_FT_DATE) {
             $this->form_validation->set_rules($strFName, 'Date Field', 'trim|callback_ufFieldVerifyDateValid');
         }
         if ($enumFType == CS_FT_INTEGER) {
             $this->form_validation->set_rules($strFName, 'Number Field', 'trim|required|callback_stripCommas|integer');
         }
         if ($enumFType == CS_FT_CURRENCY) {
             $this->form_validation->set_rules($strFName, 'Currency Field', 'trim|required|callback_stripCommas|numeric');
         }
     }
     if ($this->form_validation->run() == FALSE) {
         //------------------------------------------------------
         // set form validation based on field type being edited
         //------------------------------------------------------
         if ($bEditMode) {
             $this->load->helper('dl_util/web_layout');
         }
         $displayData['title'] = CS_PROGNAME . ' | Personalized Fields';
         $displayData['pageTitle'] = $this->clsUFD->strBreadcrumbsTableDisplay(0);
         $displayData['nav'] = $this->mnav_brain_jar->navData();
         $displayData['strTableDisplay'] = $this->clsUFD->strEditUserTableEntries($lEditFieldID);
         $displayData['strHTMLSummary'] = $this->clsUFD->strHTMLSummary;
         $displayData['mainTemplate'] = 'admin/user_table_add_edit_view';
         $this->load->vars($displayData);
         $this->load->view('template');
     } else {
         $this->clsUFD->loadSingleField($lEditFieldID);
         $enumType = $this->clsUFD->fields[0]->enumFieldType;
         $strFieldID = 'var' . $lEditFieldID;
         switch ($enumType) {
             case CS_FT_CHECKBOX:
                 $varUserVal = @$_POST[$strFieldID] == 'TRUE';
                 break;
             case CS_FT_DATE:
                 $varUserVal = trim($_POST[$strFieldID]);
                 if ($varUserVal == '') {
                     $varUserVal = ' null ';
                 } else {
                     MDY_ViaUserForm($varUserVal, $lMon, $lDay, $lYear, $gbDateFormatUS);
                     $varUserVal = ' "' . strMoDaYr2MySQLDate($lMon, $lDay, $lYear) . '" ';
                 }
                 break;
             case CS_FT_DATETIME:
                 break;
             case CS_FT_TEXTLONG:
             case CS_FT_TEXT255:
             case CS_FT_TEXT80:
             case CS_FT_TEXT20:
                 $varUserVal = trim($_POST[$strFieldID]);
                 break;
             case CS_FT_INTEGER:
                 $varUserVal = (int) $_POST[$strFieldID];
                 break;
             case CS_FT_CURRENCY:
                 $varUserVal = number_format($_POST[$strFieldID], 2, '.', '');
                 break;
             case CS_FT_DDL:
                 $varUserVal = (int) $_POST[$strFieldID];
                 break;
             default:
                 screamForHelp($enumType . ': invalid field type<br>error on line ' . __LINE__ . ',<br>file ' . __FILE__ . ',<br>function ' . __FUNCTION__);
                 break;
         }
         $this->clsUFD->updateUserField($varUserVal);
         redirect('admin/uf_user_edit/userAddEdit/' . $lTableID . '/' . $lForeignID . '/0');
     }
 }
 function viewViaObject($enumRemType, $lFID)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     global $gbDateFormatUS, $gdteNow, $glUserID, $genumDateFormat;
     if (!bTestForURLHack('notVolunteer')) {
         return;
     }
     $this->load->helper('dl_util/verify_id');
     verifyIDsViaType($this, $enumRemType, $lFID, false);
     $displayData = array();
     $displayData['enumRemType'] = $enumRemType;
     $displayData['lFID'] = $lFID = (int) $lFID;
     //--------------------------
     // models & helpers
     //--------------------------
     $this->load->model('admin/madmin_aco', 'clsACO');
     $this->load->model('admin/muser_accts');
     $this->load->model('clients/mclients');
     $this->load->model('people/mpeople');
     $this->load->model('donations/mdonations');
     $this->load->library('util/dl_date_time', '', 'clsDateTime');
     $this->load->model('sponsorship/msponsorship', 'clsSpon');
     $this->load->model('biz/mbiz', 'clsBiz');
     //      $this->load->helper('dl_util/email_web');
     $this->load->helper('dl_util/web_layout');
     $this->load->helper('dl_util/time_date');
     $this->load->helper('dl_util/page_title');
     $this->load->helper('dl_util/reminder');
     $params = array('enumStyle' => 'enpRptC');
     $this->load->library('generic_rpt', $params);
     $clsRpt = new generic_rpt($params);
     $this->load->model('reminders/mreminders', 'clsRem');
     $this->clsRem->enumSort = 'currentFirst';
     configRemRecViewViaType($enumRemType, $lFID, $displayData);
     $bUserReminder = $enumRemType == CENUM_CONTEXT_USER;
     if ($bUserReminder) {
         $this->clsRem->enumLookupType = 'CurrentViaEnumRemTypeUserID';
     } else {
         $this->clsRem->enumLookupType = 'ViaEnumRemTypeFID';
     }
     $this->clsRem->loadEnumTypeList($enumRemType);
     $strRemRpt = '';
     $lTotRems = 0;
     $this->clsRem->lFID = $lFID;
     foreach ($this->clsRem->enumRemTypeList as $enumRT) {
         $this->clsRem->enumRemType = $enumRT;
         $strRT = strtoupper(substr($enumRT, 0, 1)) . substr($enumRT, 1);
         $this->clsRem->loadReminders();
         $lTotRems += $this->clsRem->lNumReminders;
         if ($this->clsRem->lNumReminders > 0) {
             $strRemRpt .= $clsRpt->openReport(550);
             if ($bUserReminder) {
                 $strRemRpt .= $clsRpt->openRow(false);
                 $strRemRpt .= $clsRpt->writeTitle($strRT . ' Reminders', '', '', 8);
                 $strRemRpt .= $clsRpt->closeRow();
             }
             $strRemRpt .= $clsRpt->openRow(false);
             $strRemRpt .= $clsRpt->writeLabel('Reminder Dates', '160pt');
             $strRemRpt .= $clsRpt->writeLabel('Reminder', '');
             //            $strRemRpt .= $clsRpt->writeLabel('&nbsp;', '');
             $strRemRpt .= $clsRpt->closeRow();
             foreach ($this->clsRem->reminders as $clsSingleRem) {
                 if ($this->clsRem->bOKToView($clsSingleRem, $glUserID)) {
                     $lRemID = $clsSingleRem->lKeyID;
                     $strRemRpt .= $clsRpt->openRow(true);
                     $strRemLogLabel = '';
                     $lNumPast = $this->clsRem->lNumPast($clsSingleRem, $gdteNow, $lIdxLastPast);
                     $lNumFuture = $this->clsRem->lNumFuture($clsSingleRem, $gdteNow, $lIdxFirstFuture);
                     $lCurDateIdx = $this->clsRem->lCurrentRemIdx($clsSingleRem, $gdteNow);
                     //-------------------------------------------------------
                     // it's the little things that make a house a home....
                     //-------------------------------------------------------
                     if ($lNumPast > 0) {
                         $strRemLogLabel .= ' / ' . $lNumPast . ' past reminder' . ($lNumPast == 1 ? '' : 's');
                     }
                     if ($lNumFuture > 0) {
                         $strRemLogLabel .= ' / ' . $lNumFuture . ' future reminder' . ($lNumFuture == 1 ? '' : 's');
                     }
                     if ($strRemLogLabel != '') {
                         $strRemLogLabel = '<br><small>' . substr($strRemLogLabel, 3) . '</small>';
                     }
                     if ($bUserReminder) {
                         $strRemLink = '<br><i>' . $this->clsRem->strHTMLOneLineLink($clsSingleRem) . '</i>';
                     } else {
                         $strRemLink = '';
                     }
                     //---------------------------------------------------------------------------
                     // if reminder is not current, indicate next reminder; if no next reminder,
                     // indicate most recent reminder
                     //---------------------------------------------------------------------------
                     $bCurrent = !is_null($lCurDateIdx);
                     if (!$bCurrent) {
                         $strRemStyle = 'color: #999999;';
                         if ($lNumFuture > 0) {
                             $strRemDate = '<i>next reminder: ' . date($genumDateFormat, $clsSingleRem->dates[$lIdxFirstFuture]->dteDisplayStart) . '</i>';
                         } else {
                             $strRemDate = '<i>reminded on: ' . date($genumDateFormat, $clsSingleRem->dates[$lIdxLastPast]->dteDisplayStart) . '</i>';
                         }
                     } else {
                         $strRemStyle = '';
                         $strRemDate = date($genumDateFormat, $clsSingleRem->dates[$lCurDateIdx]->dteDisplayStart);
                     }
                     //--------------------------
                     // reminder title/note
                     //--------------------------
                     $strReminder = '<b>' . htmlspecialchars($clsSingleRem->strTitle) . '</b>' . $strRemLink;
                     if ($clsSingleRem->strTitle != '') {
                         $strReminder .= '<br>' . nl2br(htmlspecialchars($clsSingleRem->strReminderNote));
                     }
                     //--------------------------
                     // follow-up notes
                     //--------------------------
                     if ($clsSingleRem->lNumFollowUps > 0) {
                         $strReminder .= '<small><br><br><b>Follow-up notes:</b><br>';
                         foreach ($clsSingleRem->followUpNotes as $clsFollow) {
                             $strReminder .= '<i>' . date($genumDateFormat, $clsFollow->dteOfNote) . ' by ' . $clsFollow->strSafeName . '</i><br>' . nl2br(htmlspecialchars($clsFollow->strFollowUpNote)) . '<br><br>';
                         }
                         $strReminder .= '</small>';
                     }
                     //--------------------------
                     // follow-up note form
                     //--------------------------
                     $clsNav = new stdClass();
                     $clsNav->strKey02 = 'RID';
                     $clsNav->lKey02 = $lRemID;
                     $attributes = array('name' => 'frmFollowUp' . $lRemID);
                     $strReminder .= form_open('reminders/rem_add_edit/addReminderFollup/' . $enumRemType . '/' . $lFID . '/' . $lRemID, $attributes) . '<br>
                   <i>add follow-up note:</i>
                     <input type="submit" name="cmdSubmit" value="Save"
                          style="font-size: 7pt; height: 13pt; vertical-align: center;"
                          onclick="this.disabled=1; this.form.submit();"
                          class="btn"
                             onmouseover="this.className=\'btn btnhov\'"
                             onmouseout="this.className=\'btn\'"><br>
                     <textarea name="txtFollowUp" rows="1" cols="45"></textarea><br>
                     </form>';
                     $strRemRpt .= $clsRpt->writeCell($strRemDate . $strRemLogLabel . '<br><br>' . strLinkRem_Reminder($lRemID, $lFID, $enumRemType, 'Remove reminder', true, true));
                     $strRemRpt .= $clsRpt->writeCell($strReminder, '', $strRemStyle);
                     /*
                                    $strRemRpt .= $clsRpt->writeCell(strLinkRem_Reminder($lRemID, $lFID, $enumRemType,
                                                        'Remove reminder', true, true), '', $strRemStyle);
                     */
                     $strRemRpt .= $clsRpt->closeRow();
                 }
             }
             $strRemRpt .= $clsRpt->closeReport('<br>');
         }
     }
     if ($lTotRems == 0) {
         $strRemRpt = '<br><i>There are no reminders for this user.</i><br><br>';
     }
     $displayData['strRemRpt'] = $strRemRpt;
     //--------------------------
     // breadcrumbs
     //--------------------------
     $displayData['title'] = CS_PROGNAME . ' | People';
     $displayData['nav'] = $this->mnav_brain_jar->navData();
     $displayData['mainTemplate'] = 'reminders/view_reminder_record_view';
     $this->load->vars($displayData);
     $this->load->view('template');
 }
 function add_edit($lCRptID = 0)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     $this->load->helper('dl_util/verify_id');
     verifyIDsViaType($this, CENUM_CONTEXT_CUSTOMREPORT, $lCRptID, false);
     $displayData = array();
     $displayData['bNew'] = $bNew = $lCRptID <= 0;
     $displayData['lReportID'] = (int) $lCRptID;
     $displayData['js'] = '';
     //-------------------------
     // models & helpers
     //-------------------------
     $params = array('enumStyle' => 'terse');
     $this->load->library('generic_rpt', $params);
     $this->load->model('admin/madmin_aco');
     $this->load->model('creports/mcreports', 'clsCReports');
     $this->load->helper('dl_util/web_layout');
     $this->load->helper('reports/creport_util');
     $cRptTypes = loadCReportTypeArray();
     $this->clsCReports->loadReportViaID($lCRptID, false);
     $report =& $this->clsCReports->reports[0];
     $this->load->helper('js/div_hide_show');
     $displayData['js'] .= showHideDiv();
     //-------------------------
     // validation rules
     //-------------------------
     $this->form_validation->set_error_delimiters('<div class="formError">', '</div>');
     $this->form_validation->set_rules('txtName', 'Report Name', 'trim|required|callback_cRptNameDupTest[' . $lCRptID . ']');
     $this->form_validation->set_rules('txtNotes', 'Notes', 'trim');
     if ($this->form_validation->run() == FALSE) {
         $displayData['formData'] = new stdClass();
         $this->load->library('generic_form');
         if (!$bNew) {
             $displayData['formData']->strRptType = $report->strXlatedRptType;
         }
         // first time displayed, no user data entry errors
         if (validation_errors() == '') {
             $displayData['formData']->strName = $report->strName;
             $displayData['formData']->strNotes = $report->strNotes;
             $displayData['formData']->bPrivate = $report->bPrivate;
             if ($bNew) {
                 $displayData['formData']->strCRptTypeDDL = strCRptTypesDDL($cRptTypes, false, $report->enumRptType);
             }
         } else {
             setOnFormError($displayData);
             $displayData['formData']->strName = set_value('txtName');
             $displayData['formData']->strNotes = set_value('txtNotes');
             $displayData['formData']->bPrivate = @$_POST['chkPrivate'] == 'TRUE';
             if ($bNew) {
                 $displayData['formData']->strCRptTypeDDL = strCRptTypesDDL($cRptTypes, false, @$_POST['ddlCRpt']);
             }
         }
         //--------------------------
         // breadcrumbs
         //--------------------------
         $displayData['pageTitle'] = anchor('main/menu/reports', 'Reports', 'class="breadcrumb"') . ' | ' . ($bNew ? 'Add' : 'Edit') . ' Custom Report';
         $displayData['title'] = CS_PROGNAME . ' | Custom Reports';
         $displayData['nav'] = $this->mnav_brain_jar->navData();
         $displayData['mainTemplate'] = 'creports/add_edit_view';
         $this->load->vars($displayData);
         $this->load->view('template');
     } else {
         $report->strName = trim($_POST['txtName']);
         $report->strNotes = trim($_POST['txtNotes']);
         $report->bPrivate = @$_POST['chkPrivate'] == 'TRUE';
         if ($bNew) {
             $report->enumRptType = trim($_POST['ddlCRpt']);
         }
         //------------------------------------
         // update db tables and return
         //------------------------------------
         if ($bNew) {
             $lCRptID = $this->clsCReports->addNewCReport();
             $this->session->set_flashdata('msg', 'Custom report added');
             redirect('creports/view_fields/view/' . $lCRptID . '/true');
         } else {
             $this->clsCReports->updateCReport($lCRptID);
             $this->session->set_flashdata('msg', 'Custom report updated');
             redirect('creports/custom_directory/viewRec/' . $lCRptID);
         }
     }
 }
 function view($lHouseholdID, $lPID)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     $this->load->helper('dl_util/verify_id');
     verifyID($this, $lHouseholdID, 'household ID');
     verifyIDsViaType($this, CENUM_CONTEXT_PEOPLE, $lPID, true);
     $displayData = array();
     $displayData['lHouseholdID'] = $lHouseholdID = (int) $lHouseholdID;
     $displayData['lPID'] = $lPID = (int) $lPID;
     //------------------------------------------------
     // stripes
     //------------------------------------------------
     $this->load->model('util/mbuild_on_ready', 'clsOnReady');
     $this->clsOnReady->addOnReadyTableStripes();
     $this->clsOnReady->closeOnReady();
     $displayData['js'] = $this->clsOnReady->strOnReady;
     //------------------------------------------------
     // libraries and utilities
     //------------------------------------------------
     $params = array('enumStyle' => 'terse');
     $this->load->library('generic_rpt', $params);
     $this->load->library('util/dl_date_time', '', 'clsDateTime');
     $this->load->model('people/mpeople', 'clsPeople');
     $this->load->model('admin/madmin_aco', 'clsACO');
     $this->load->model('sponsorship/msponsorship');
     $this->load->model('donations/mdonations');
     //      $this->load->helper ('dl_util/email_web');
     $this->load->helper('dl_util/record_view');
     $this->load->helper('img_docs/link_img_docs');
     $this->clsPeople->lHouseholdID = $lHouseholdID;
     $displayData['strHouseholdName'] = $this->clsPeople->strHouseholdNameViaHID($lHouseholdID);
     $this->clsPeople->loadPIDsViaHouseholdHID();
     $displayData['lNumInHousehold'] = $lNumInHousehold = $this->clsPeople->lNumInHousehold;
     $displayData['households'] = $this->clsPeople->arrHouseholds;
     if ($lPID <= 0) {
         $displayData['lPID'] = $lPID = $this->clsPeople->arrHouseholds[0]->PID;
     }
     $this->clsPeople->loadPeopleViaPIDs($lPID, true, true);
     $displayData['contextSummary'] = $this->clsPeople->peopleHTMLSummary(0);
     //------------------------------------------------
     // donation summaries
     //------------------------------------------------
     $idx = 0;
     $this->mdonations->bUseDateRange = false;
     $this->mdonations->cumulativeOpts = new stdClass();
     $this->mdonations->cumulativeOpts->enumCumulativeSource = 'people';
     if ($lNumInHousehold > 0) {
         foreach ($displayData['households'] as $contact) {
             $lPID = $contact->PID;
             $this->mdonations->lPeopleID = $lPID;
             $this->mdonations->cumulativeOpts->enumMoneySet = 'all';
             $this->mdonations->cumulativeOpts->bSoft = false;
             $this->mdonations->cumulativeDonation($this->clsACO, $lNumHard);
             $displayData['households'][$idx]->lNumACODonationGroups_hard = $this->mdonations->lNumCumulative;
             $displayData['households'][$idx]->donationsViaACO_hard = $this->mdonations->cumulative;
             $this->mdonations->cumulativeOpts->bSoft = true;
             $this->mdonations->cumulativeDonation($this->clsACO, $lNumSoft);
             $displayData['households'][$idx]->lNumACODonationGroups_soft = $this->mdonations->lNumCumulative;
             $displayData['households'][$idx]->donationsViaACO_soft = $this->mdonations->cumulative;
             ++$idx;
         }
     }
     //------------------------------------------------
     // breadcrumbs / page setup
     //------------------------------------------------
     $displayData['mainTemplate'] = array('people/household');
     $displayData['pageTitle'] = anchor('main/menu/people', 'People', 'class="breadcrumb"') . ' | Household';
     $displayData['title'] = CS_PROGNAME . ' | People';
     $displayData['nav'] = $this->mnav_brain_jar->navData();
     $this->load->vars($displayData);
     $this->load->view('template');
 }