function strDisplayUserTableSingle(&$clsUserTable)
    {
        //---------------------------------------------------------------------
        //
        //---------------------------------------------------------------------
        global $genumDateFormat, $gbDateFormatUS;
        $clsACO = new madmin_aco();
        $strOut = '';
        $lTableID = $clsUserTable->lKeyID;
        $bCollapsibleHeadings = $clsUserTable->bCollapsibleHeadings;
        $bCollapseDefaultHide = $clsUserTable->bCollapseDefaultHide;
        $strSafeTableName = htmlspecialchars($clsUserTable->strUserTableName);
        $strOut .= $this->strBeginCollapsibleHeading($lTableID, $strSafeTableName, true);
        $this->loadSingleDataRecord($lTableID, $this->lForeignID, $recInfo);
        $lRecID = $recInfo->lRecID;
        $enumTType = $clsUserTable->enumTType;
        $strOut .= '<fieldset class="enpFS" style="width: ' . $this->lFieldSetWidth . 'pt; align: left;">
              <legend class="enpLegend">
                 <b><i>' . $strSafeTableName . '</b></i> ' . strLinkView_UFMFRecordViaRecID($lTableID, $this->lForeignID, $lRecID, 'View record', true, ' id="viewSingle_' . $lTableID . '" ') . '&nbsp;&nbsp;' . "\n" . strLinkEdit_UFMultiRecEntry($enumTType, $lTableID, $this->lForeignID, $lRecID, true, 'Edit table entries', ' id="editSingle_' . $lTableID . '" ') . '&nbsp;&nbsp;' . ($recInfo->bRecordEntered ? '' : '(not written) ') . '

              </legend>';
        $strOut .= '<table class="enpRpt">';
        for ($idx = 0; $idx < $this->lNumFields; ++$idx) {
            $uf =& $this->fields[$idx];
            $enumType = $uf->enumFieldType;
            $userValue = $uf->userValue;
            $lFieldID = $uf->pff_lKeyID;
            if ($enumType == CS_FT_HEADING) {
                $strOut .= '
                  <tr>
                     <td colspan="2" class="enpRptLabel">' . htmlspecialchars($this->fields[$idx]->pff_strFieldNameUser) . '
                     </td>
                  </tr>';
            } else {
                $strOut .= '
                  <tr>
                     <td width="' . $this->lLabelWidth . '" class="enpRptLabel">' . htmlspecialchars($this->fields[$idx]->pff_strFieldNameUser) . '
                     </td>
                     <td class="enpRpt" width="' . $this->lFieldValWidth . '" valign="center">' . "\n";
                if (is_null($userValue) && !($enumType == CS_FT_LOG || $enumType == CS_FT_DDLMULTI)) {
                    $strOut .= '&nbsp';
                } else {
                    switch ($enumType) {
                        case CS_FT_CHECKBOX:
                            $strOut .= (bool) $userValue ? 'Yes' : 'No';
                            break;
                        case CS_FT_DATE:
                            $strOut .= strNumericDateViaMysqlDate($userValue, $gbDateFormatUS);
                            break;
                            //                  case CS_FT_DATETIME:
                            //                     echoT(strNumericDateViaMysqlDate($userValue, $gbDateFormatUS)   date($genumDateFormat.' H:i:s', $userValue));
                            //                     break;
                        //                  case CS_FT_DATETIME:
                        //                     echoT(strNumericDateViaMysqlDate($userValue, $gbDateFormatUS)   date($genumDateFormat.' H:i:s', $userValue));
                        //                     break;
                        case CS_FT_TEXTLONG:
                            $strOut .= nl2br(htmlspecialchars($userValue)) . '&nbsp;';
                            break;
                        case CS_FT_TEXT255:
                        case CS_FT_TEXT80:
                        case CS_FT_TEXT20:
                            $strOut .= htmlspecialchars($userValue) . '&nbsp;';
                            break;
                        case CS_FT_CLIENTID:
                        case CS_FT_INTEGER:
                            $strOut .= number_format($userValue);
                            break;
                        case CS_FT_CURRENCY:
                            $clsACO->loadCountries(false, false, true, $this->fields[$idx]->pff_lCurrencyACO);
                            $strOut .= $clsACO->countries[0]->strCurrencySymbol . ' ' . number_format($userValue, 2) . '&nbsp;' . $clsACO->countries[0]->strFlagImg;
                            break;
                        case CS_FT_DDL:
                            $strOut .= htmlspecialchars($this->strDDLValue($userValue));
                            break;
                        case CS_FT_DDL:
                            $strOut .= htmlspecialchars($this->strDDLValue($userValue));
                            break;
                        case CS_FT_LOG:
                            $strOut .= $this->logDisplay($enumTType, $lFieldID, $lTableID, $this->lForeignID, 5);
                            break;
                        case CS_FT_DDLMULTI:
                            $strDDLMultiFN = $uf->strFieldNameInternal . '_ddlMulti';
                            $this->loadMultiDDLSelects($lTableID, $lFieldID, $lRecID, $uf->{$strDDLMultiFN});
                            $strOut .= $this->strMultiDDLUL($uf->{$strDDLMultiFN});
                            break;
                        default:
                            screamForHelp($enumType . ': invalid field type<br>error on line ' . __LINE__ . ',<br>file ' . __FILE__ . ',<br>function ' . __FUNCTION__);
                            break;
                    }
                }
            }
        }
        $strOut .= '
            </table>' . "\n";
        $strOut .= '
         </fieldset><br>' . "\n";
        //      if ($bCollapsibleHeadings)
        $strOut .= $this->strEndCollapsibleHeading();
        return $strOut;
    }
 function addEditVolTraining($lTrainingID, $lVolID)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     global $glVolID, $gbVolMgr, $gbDateFormatUS, $glChapterID;
     $this->load->helper('dl_util/verify_id');
     verifyID($glChapterID, $lVolID, 'volunteer ID');
     if ((int) $lTrainingID > 0) {
         verifyID($glChapterID, $lTrainingID, 'vol training ID');
     }
     $displayData = array();
     $displayData['formData'] = new stdClass();
     $displayData['lTrainingID'] = $lTrainingID = (int) $lTrainingID;
     $displayData['lVolID'] = $lVolID = (int) $lVolID;
     $displayData['bNew'] = $bNew = $lTrainingID <= 0;
     //-------------------------------------
     // models / helpers / libraries
     //-------------------------------------
     $this->load->model('vols/mvol', 'clsVol');
     $this->load->model('vols/mvol_training', 'cvt');
     $this->load->model('util/mlist_generic', 'clsList');
     $this->load->helper('dl_util/time_date');
     // for date verification
     $this->load->helper('hospice/link_hospice');
     $this->load->helper('hospice/patient_visit');
     $params = array('enumStyle' => 'terse');
     $this->load->library('generic_rpt', $params);
     $this->load->helper('dl_util/web_layout');
     //--------------------------
     // load training record
     //--------------------------
     $this->cvt->loadVolTrainingViaTID($lTrainingID, $lNumTraining, $training);
     $train =& $training[0];
     $this->clsVol->loadVolRecsViaVolID($lVolID, true);
     $displayData['volRec'] = $volRec =& $this->clsVol->volRecs[0];
     //-------------------------
     // validation rules
     //-------------------------
     $this->form_validation->set_error_delimiters('<div class="formError">', '</div>');
     $this->form_validation->set_rules('ddlDuration', 'Duration', 'trim|callback_vtVerifyDuration');
     $this->form_validation->set_rules('ddlTraining', 'Training', 'trim|callback_vtVerifyType');
     $this->form_validation->set_rules('ddlTrainingBy', 'Conducted By', 'trim|callback_vtVerifyTrainingBy');
     $this->form_validation->set_rules('txtDate', 'Date of Training', 'trim|required' . '|callback_verifyDateValid');
     $this->form_validation->set_rules('txtNotes', 'Notes', 'trim');
     if ($this->form_validation->run() == FALSE) {
         //         $this->clsVol->loadVolRecsViaVolID($lVolID, true);
         $displayData['contextSummary'] = $this->clsVol->volHTMLSummary(0);
         $displayData['volRec'] =& $this->clsVol->volRecs[0];
         $displayData['formData'] = new stdClass();
         $this->load->library('generic_form');
         // first time displayed, no user data entry errors
         if (validation_errors() == '') {
             if (is_null($train->dteTraining)) {
                 $displayData['formData']->txtDate = '';
             } else {
                 $displayData['formData']->txtDate = strNumericDateViaMysqlDate($train->mysqlDteTrain, $gbDateFormatUS);
             }
             $displayData['formData']->strNotes = htmlspecialchars($train->strNotes);
             $displayData['formData']->ddlDuration = pvisit\strDurationDDL($train->lDuration, true, 'ddlDuration', 'dur');
             // training type generic list
             $this->clsList->strBlankDDLName = '&nbsp;';
             $this->clsList->enumListType = CENUM_LISTTYPE_VOLTRAINING;
             $displayData['formData']->strTrainingType = $this->clsList->strLoadListDDL($glChapterID, 'ddlTraining', true, $train->lTrainingID);
             // training conducted by generic list
             $this->clsList->enumListType = CENUM_LISTTYPE_VOLTRAININGBY;
             $displayData['formData']->strTrainingBy = $this->clsList->strLoadListDDL($glChapterID, 'ddlTrainingBy', true, $train->lTrainingByID);
         } else {
             setOnFormError($displayData);
             $displayData['formData']->txtDate = set_value('txtDate');
             $displayData['formData']->strNotes = set_value('txtNotes');
             $displayData['formData']->ddlDuration = pvisit\strDurationDDL(set_value('ddlDuration'), true, 'ddlDuration', 'dur');
             // training type generic list
             $this->clsList->strBlankDDLName = '&nbsp;';
             $this->clsList->enumListType = CENUM_LISTTYPE_VOLTRAINING;
             $displayData['formData']->strTrainingType = $this->clsList->strLoadListDDL($glChapterID, 'ddlTraining', true, set_value('ddlTraining'));
             // training conducted by generic list
             $this->clsList->enumListType = CENUM_LISTTYPE_VOLTRAININGBY;
             $displayData['formData']->strTrainingBy = $this->clsList->strLoadListDDL($glChapterID, 'ddlTrainingBy', true, set_value('ddlTrainingBy'));
         }
         //--------------------------
         // breadcrumbs
         //--------------------------
         $displayData['pageTitle'] = 'Log Volunteer Training';
         $displayData['title'] = CS_PROGNAME . ' | Volunteers';
         $displayData['nav'] = $this->mnav_brain_jar->navData();
         $displayData['mainTemplate'] = 'hospice/vols/training_add_edit_view';
         $this->load->vars($displayData);
         $this->load->view('template');
     } else {
         $train->lVolID = $lVolID;
         $train->strNotes = trim($_POST['txtNotes']);
         $train->lTrainingID = (int) trim($_POST['ddlTraining']);
         $train->lTrainingByID = (int) trim($_POST['ddlTrainingBy']);
         $train->lDuration = (int) trim($_POST['ddlDuration']);
         $strDate = trim($_POST['txtDate']);
         MDY_ViaUserForm($strDate, $lMon, $lDay, $lYear, $gbDateFormatUS);
         $train->mysqlDteTrain = strMoDaYr2MySQLDate($lMon, $lDay, $lYear);
         //------------------------------------
         // update db tables and return
         //------------------------------------
         if ($bNew) {
             $lTrainingID = $this->cvt->lAddVolTraining($training[0]);
             $this->session->set_flashdata('msg', 'Volunteer training was recorded for ' . $volRec->strSafeNameFL . '.');
         } else {
             $this->cvt->updateVolTraining($lTrainingID, $training[0]);
             $this->session->set_flashdata('msg', 'Training record updated');
         }
         redirect('hospice/vols/vol_training/volTrainingLog/' . $lVolID);
         //         redirect('hospice/vols/vol_directory/view/false/'.strtoupper(substr($volRec->strLName, 0, 1)));
     }
 }
function strSimpleValueViaType($vVal, $enumType)
{
    //---------------------------------------------------------------------
    //
    //---------------------------------------------------------------------
    global $gbDateFormatUS;
    switch ($enumType) {
        case CS_FT_CHECKBOX:
            $strOut = $vVal ? 'Yes' : 'No';
            break;
        case CS_FT_DATE:
            if ($vVal . '' == '') {
                $strOut = '';
            } else {
                $strOut = strNumericDateViaMysqlDate($vVal, $gbDateFormatUS);
            }
            break;
        case CS_FT_LOG:
        case CS_FT_HEADING:
        case CS_FT_DDL:
        case CS_FT_DDL_SPECIAL:
        case CS_FT_DDLMULTI:
        case CS_FT_TEXT80:
        case CS_FT_TEXT255:
        case CS_FT_TEXT20:
        case CS_FT_TEXT:
        case CS_FT_TEXTLONG:
            $strOut = $vVal;
            break;
        case CS_FT_ID:
            $strOut = str_pad($vVal, 5, '0', STR_PAD_LEFT);
            break;
        case CS_FT_INTEGER:
            if ($vVal . '' == '') {
                $strOut = '';
            } else {
                $strOut = number_format($vVal, 0);
            }
            break;
        case CS_FT_CURRENCY:
            if ($vVal . '' == '') {
                $strOut = '';
            } else {
                $strOut = number_format($vVal, 2);
            }
            break;
        default:
            screamForHelp($enumType . ': unexpected field type<br>error on line <b> -- ' . __LINE__ . ' --</b>,<br>file ' . __FILE__ . ',<br>function ' . __FUNCTION__);
            break;
    }
    return $strOut;
}
 function addEditPRec($lPatientID)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     global $gbVolMgr, $glChapterID, $gstrFormatDatePicker, $gbDateFormatUS;
     if (!bTestForURLHack('volMgr')) {
         return;
     }
     $this->load->helper('dl_util/verify_id');
     if ((int) $lPatientID > 0) {
         verifyID($glChapterID, $lPatientID, 'patient ID');
     }
     $displayData = array();
     $displayData['lPatientID'] = $lPatientID = (int) $lPatientID;
     $displayData['bNew'] = $bNew = $lPatientID <= 0;
     $displayData['js'] = '';
     $displayData['formData'] = new stdClass();
     //------------------------------------------------
     // models, libraries and utilities
     //------------------------------------------------
     $this->load->model('patients/mpatients', 'cPatients');
     $this->load->helper('dl_util/web_layout');
     $this->load->helper('dl_util/time_date');
     $this->load->library('util/dl_date_time', '', 'clsDateTime');
     // load patient record
     $this->cPatients->loadPatientsViaPatientID($lPatientID);
     $displayData['patient'] = $pRec =& $this->cPatients->patients[0];
     // validation rules
     $this->form_validation->set_error_delimiters('<div class="formError">', '</div>');
     $this->form_validation->set_rules('txtTitle', '<b>Title</b>', 'trim');
     $this->form_validation->set_rules('txtFName', '<b>First Name</b>', 'trim|required');
     $this->form_validation->set_rules('txtMName', '<b>Middle Name</b>', 'trim');
     $this->form_validation->set_rules('txtLName', '<b>Last Name</b>', 'trim|required');
     $this->form_validation->set_rules('txtBDate', '<b>Date of Birth</b>', 'trim|required|callback_patientRecVerifyBDateValid' . '|callback_patientRecVerifyBDatePast');
     $this->form_validation->set_rules('txtPhone', 'Phone', 'trim');
     $this->form_validation->set_rules('txtCell', 'Cell', 'trim');
     $this->form_validation->set_rules('txtEmail', '<b>EMail</b>', 'trim|valid_email');
     $this->form_validation->set_rules('txtAddr1', '', 'trim');
     $this->form_validation->set_rules('txtAddr2', '', 'trim');
     $this->form_validation->set_rules('txtCity', '', 'trim');
     $this->form_validation->set_rules('txtState', '', 'trim');
     $this->form_validation->set_rules('txtZip', '', 'trim');
     $this->form_validation->set_rules('txtCountry', '', 'trim');
     $this->form_validation->set_rules('txtNotes', '', 'trim');
     if ($this->form_validation->run() == FALSE) {
         $this->load->library('generic_form');
         if (validation_errors() == '') {
             if (is_null($pRec->dteBirth)) {
                 $displayData['formData']->txtBDate = '';
             } else {
                 $displayData['formData']->txtBDate = strNumericDateViaMysqlDate($pRec->dteBirth, $gbDateFormatUS);
             }
             if ($bNew) {
                 $displayData['formData']->txtTitle = $displayData['formData']->txtFName = $displayData['formData']->txtMName = $displayData['formData']->txtLName = '';
                 $displayData['formData']->txtPhone = $displayData['formData']->txtCell = $displayData['formData']->txtEmail = '';
                 $displayData['formData']->txtAddr1 = $displayData['formData']->txtAddr2 = $displayData['formData']->txtCity = $displayData['formData']->txtState = $displayData['formData']->txtZip = $displayData['formData']->txtCountry = '';
                 $displayData['formData']->txtNotes = '';
             } else {
                 $displayData['formData']->txtTitle = htmlspecialchars($pRec->strTitle);
                 $displayData['formData']->txtFName = htmlspecialchars($pRec->strFName);
                 $displayData['formData']->txtMName = htmlspecialchars($pRec->strMName);
                 $displayData['formData']->txtLName = htmlspecialchars($pRec->strLName);
                 $displayData['formData']->txtPhone = htmlspecialchars($pRec->strPhone);
                 $displayData['formData']->txtCell = htmlspecialchars($pRec->strCell);
                 $displayData['formData']->txtEmail = htmlspecialchars($pRec->strEmail);
                 $displayData['formData']->txtAddr1 = htmlspecialchars($pRec->strAddr1);
                 $displayData['formData']->txtAddr2 = htmlspecialchars($pRec->strAddr2);
                 $displayData['formData']->txtCity = htmlspecialchars($pRec->strCity);
                 $displayData['formData']->txtState = htmlspecialchars($pRec->strState);
                 $displayData['formData']->txtZip = htmlspecialchars($pRec->strZip);
                 $displayData['formData']->txtCountry = htmlspecialchars($pRec->strCountry);
                 $displayData['formData']->txtNotes = htmlspecialchars($pRec->strBio);
             }
         } else {
             setOnFormError($displayData);
             $displayData['formData']->txtTitle = set_value('txtTitle');
             $displayData['formData']->txtFName = set_value('txtFName');
             $displayData['formData']->txtMName = set_value('txtMName');
             $displayData['formData']->txtLName = set_value('txtLName');
             $displayData['formData']->txtBDate = set_value('txtBDate');
             $displayData['formData']->txtPhone = set_value('txtPhone');
             $displayData['formData']->txtCell = set_value('txtCell');
             $displayData['formData']->txtEmail = set_value('txtEmail');
             $displayData['formData']->txtAddr1 = set_value('txtAddr1');
             $displayData['formData']->txtAddr2 = set_value('txtAddr2');
             $displayData['formData']->txtCity = set_value('txtCity');
             $displayData['formData']->txtState = set_value('txtState');
             $displayData['formData']->txtZip = set_value('txtZip');
             $displayData['formData']->txtCountry = set_value('txtCountry');
             $displayData['formData']->txtNotes = set_value('txtNotes');
         }
         //--------------------------
         // breadcrumbs
         //--------------------------
         $params = array('enumStyle' => 'terse');
         $this->load->library('generic_rpt', $params, 'generic_rpt');
         $displayData['pageTitle'] = ' Patient Record';
         $displayData['title'] = CS_PROGNAME . ' | Patient';
         $displayData['nav'] = $this->mnav_brain_jar->navData();
         $displayData['mainTemplate'] = 'hospice/patients/patient_add_edit_view';
         $this->load->vars($displayData);
         $this->load->view('template');
     } else {
         $strBDate = trim($_POST['txtBDate']);
         MDY_ViaUserForm($strBDate, $lMon, $lDay, $lYear, $gbDateFormatUS);
         $pRec->dteBirth = strMoDaYr2MySQLDate($lMon, $lDay, $lYear);
         $pRec->strTitle = $_POST['txtTitle'];
         $pRec->strFName = $_POST['txtFName'];
         $pRec->strMName = $_POST['txtMName'];
         $pRec->strLName = $_POST['txtLName'];
         $pRec->strAddr1 = $_POST['txtAddr1'];
         $pRec->strAddr2 = $_POST['txtAddr2'];
         $pRec->strCity = $_POST['txtCity'];
         $pRec->strState = $_POST['txtState'];
         $pRec->strCountry = $_POST['txtCountry'];
         $pRec->strZip = $_POST['txtZip'];
         $pRec->strPhone = $_POST['txtPhone'];
         $pRec->strCell = $_POST['txtCell'];
         $pRec->strEmail = $_POST['txtEmail'];
         $pRec->strBio = $_POST['txtNotes'];
         if ($bNew) {
             $lPatientID = $this->cPatients->lAddNewPatient($pRec);
             $this->session->set_flashdata('msg', 'The patient record was added.');
         } else {
             $this->cPatients->updatePatient($lPatientID, $pRec);
             $this->session->set_flashdata('msg', 'The patient record was updated.');
         }
         redirect('hospice/patients/patient_rec/viewRec/' . $lPatientID);
     }
 }
 private function addEditActivityCommon($bAsVol, $lVolID, $lActivityID)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     global $gbDateFormatUS;
     $this->load->helper('dl_util/verify_id');
     verifyID($this, $lVolID, 'volunteer ID');
     $displayData = array();
     $displayData['lVolID'] = $lVolID = (int) $lVolID;
     $displayData['lActivityID'] = $lActivityID = (int) $lActivityID;
     $displayData['bNew'] = $bNew = $lActivityID <= 0;
     $displayData['bAsVol'] = $bAsVol;
     //-------------------------
     // models & helpers
     //-------------------------
     $this->load->model('vols/mvol_event_hours', 'clsVolHours');
     $this->load->model('vols/mvol', 'clsVol');
     $this->load->model('people/mpeople', 'clsPeople');
     $this->load->model('util/mlist_generic', 'clsList');
     $this->load->helper('dl_util/time_date');
     // for date verification
     $params = array('enumStyle' => 'terse');
     $this->load->library('generic_rpt', $params);
     $this->load->helper('dl_util/web_layout');
     $this->clsVolHours->loadVolActivitiesViaID($lActivityID);
     $act =& $this->clsVolHours->unActivity[0];
     //-------------------------
     // validation rules
     //-------------------------
     $this->form_validation->set_error_delimiters('<div class="formError">', '</div>');
     $this->form_validation->set_rules('ddlStart', 'Start Time', 'trim|callback_vactVerifyStart');
     $this->form_validation->set_rules('ddlDuration', 'Duration', 'trim|callback_vactVerifyDuration');
     $this->form_validation->set_rules('ddlActivity', 'Activity', 'trim|callback_vactVerifyAct');
     $this->form_validation->set_rules('ddlJobCode', 'Job Code', 'trim');
     $this->form_validation->set_rules('txtDate', 'Date of Volunteer Activity', 'trim|required' . '|callback_verifyUnDateValid');
     $this->form_validation->set_rules('txtNotes', 'Notes', 'trim');
     if ($this->form_validation->run() == FALSE) {
         $displayData['formData'] = new stdClass();
         $this->load->library('generic_form');
         // first time displayed, no user data entry errors
         if (validation_errors() == '') {
             if (is_null($act->dteActivityDate)) {
                 $displayData['formData']->txtDate = '';
                 $displayData['formData']->lStartTime = strDisplayTimeDDL(null, true, true);
             } else {
                 $displayData['formData']->txtDate = strNumericDateViaMysqlDate($act->mysqlActivityDate, $gbDateFormatUS);
                 $displayData['formData']->lStartTime = strDisplayTimeDDL($act->dteActivityDate, true, true);
             }
             $displayData['formData']->strNotes = $act->strNotes;
             $displayData['formData']->enumDuration = strDurationDDL(true, false, lDurationHrsToQuarters($act->dHoursWorked), true);
             // activity generic list
             $this->clsList->strBlankDDLName = '&nbsp;';
             $this->clsList->enumListType = CENUM_LISTTYPE_VOLACT;
             $displayData['formData']->strVolActivity = $this->clsList->strLoadListDDL('ddlActivity', true, $act->lActivityID);
             // job code generic list
             $this->clsList->enumListType = CENUM_LISTTYPE_VOLJOBCODES;
             $this->clsList->strBlankDDLName = '(no job code)';
             $displayData['strDDLJobCode'] = $this->clsList->strLoadListDDL('ddlJobCode', true, $act->lJobCode);
         } else {
             setOnFormError($displayData);
             $displayData['formData']->txtDate = set_value('txtDate');
             $displayData['formData']->lStartTime = $lStartTime = strDisplayTimeDDL(set_value('ddlStart'), true, true);
             $displayData['formData']->strNotes = set_value('txtNotes');
             $displayData['formData']->enumDuration = strDurationDDL(true, false, set_value('ddlDuration'), true);
             // activity generic list
             $this->clsList->strBlankDDLName = '&nbsp;';
             $this->clsList->enumListType = CENUM_LISTTYPE_VOLACT;
             $displayData['formData']->strVolActivity = $this->clsList->strLoadListDDL('ddlActivity', true, set_value('ddlActivity'));
             // job code generic list
             $this->clsList->enumListType = CENUM_LISTTYPE_VOLJOBCODES;
             $this->clsList->strBlankDDLName = '(no job code)';
             $displayData['strDDLJobCode'] = $this->clsList->strLoadListDDL('ddlJobCode', true, set_value('ddlJobCode'));
         }
         $this->clsVol->loadVolRecsViaVolID($lVolID, true);
         $displayData['contextSummary'] = $this->clsVol->volHTMLSummary(0);
         //--------------------------
         // breadcrumbs
         //--------------------------
         if ($bAsVol) {
             $displayData['pageTitle'] = 'Log volunteer hours';
         } else {
             $displayData['pageTitle'] = anchor('main/menu/vols', 'Volunteers', 'class="breadcrumb"') . ' | ' . anchor('/volunteers/vol_record/volRecordView/' . $lVolID, 'Record', 'class="breadcrumb"') . ' | Log volunteer hours';
         }
         $displayData['title'] = CS_PROGNAME . ' | Volunteers';
         $displayData['nav'] = $this->mnav_brain_jar->navData();
         $displayData['mainTemplate'] = 'vols/hrs_unscheduled_add_edit_view';
         $this->load->vars($displayData);
         $this->load->view('template');
     } else {
         $act->lVolID = $lVolID;
         $act->strNotes = trim($_POST['txtNotes']);
         $act->lActivityID = (int) trim($_POST['ddlActivity']);
         $act->dHoursWorked = (int) trim($_POST['ddlDuration']) / 4;
         $strDate = trim($_POST['txtDate']);
         MDY_ViaUserForm($strDate, $lMon, $lDay, $lYear, $gbDateFormatUS);
         $lDDLStart = (int) $_POST['ddlStart'];
         quartersToHrsMin($lDDLStart, $lHours, $lMinutes);
         $act->dteActivityDate = mktime($lHours, $lMinutes, 0, $lMon, $lDay, $lYear);
         $act->lJobCode = (int) $_POST['ddlJobCode'];
         if ($act->lJobCode <= 0) {
             $act->lJobCode = null;
         }
         //------------------------------------
         // update db tables and return
         //------------------------------------
         if ($bNew) {
             $lActivityID = $this->clsVolHours->addUnscheduledHrs();
             $this->session->set_flashdata('msg', 'Volunteer hours were recorded.');
         } else {
             $this->clsVolHours->updateUnscheduledHrs($lActivityID);
             $this->session->set_flashdata('msg', 'Record updated');
         }
         if ($bAsVol) {
             redirect('vol_reg/vol_hours/view');
         } else {
             redirect('reports/pre_vol_hours/viaVolID/' . $lVolID . '/false');
         }
     }
 }
 function addEditDate($lEventID, $lDateID)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     global $gdteNow, $gbDateFormatUS;
     $this->load->helper('dl_util/verify_id');
     verifyID($this, $lEventID, 'event ID');
     if ($lDateID . '' != '0') {
         verifyID($this, $lDateID, 'event date ID');
     }
     $displayData = array();
     $displayData['lEventID'] = $lEventID = (int) $lEventID;
     $displayData['lDateID'] = $lDateID = (int) $lDateID;
     $this->load->model('vols/mvol_event_dates', 'clsVolEventDates');
     $this->load->helper('dl_util/time_date');
     $this->load->helper('dl_util/web_layout');
     $this->clsVolEventDates->loadEventDateViaDateID($lDateID);
     $displayData['bNew'] = $bNew = $lDateID <= 0;
     $displayData['edate'] = $edate = $this->clsVolEventDates->dates[0];
     // validation rules
     $this->form_validation->set_error_delimiters('<div class="formError">', '</div>');
     $this->form_validation->set_rules('txtEDate', 'Event date', 'trim|required|callback_edateVerifyDateValid');
     if ($this->form_validation->run() == FALSE) {
         $displayData['formData'] = new stdClass();
         $params = array('enumStyle' => 'terse');
         $this->load->library('generic_rpt', $params);
         $this->load->model('vols/mvol_events', 'clsVolEvents');
         $this->clsVolEvents->loadEventsViaEID($lEventID);
         $displayData['contextSummary'] = $this->clsVolEvents->volEventHTMLSummary(0);
         $this->load->library('generic_form');
         if (validation_errors() == '') {
             if (is_null($edate->dteEvent)) {
                 $displayData['formData']->txtEDate = '';
             } else {
                 $displayData['formData']->txtEDate = strNumericDateViaMysqlDate($edate->mDteEvent, $gbDateFormatUS);
             }
         } else {
             setOnFormError($displayData);
             $displayData['formData']->txtEDate = set_value('txtEDate');
         }
         //--------------------------
         // breadcrumbs
         //--------------------------
         $displayData['pageTitle'] = anchor('main/menu/vols', 'Volunteers', 'class="breadcrumb"') . ' | ' . anchor('volunteers/events_schedule/viewEventsList', 'Event List', 'class="breadcrumb"') . ' | ' . anchor('volunteers/events_record/viewEvent/' . $lEventID, 'Event', 'class="breadcrumb"');
         if (!$bNew) {
             $displayData['pageTitle'] .= ' | ' . anchor('volunteers/event_dates_view/viewDates/' . $lDateID, 'Event Date', 'class="breadcrumb"');
         }
         $displayData['pageTitle'] .= ' | ' . ($bNew ? 'Add New' : 'Edit') . ' Event Date';
         $displayData['title'] = CS_PROGNAME . ' | Volunteers';
         $displayData['nav'] = $this->mnav_brain_jar->navData();
         $displayData['mainTemplate'] = 'vols/vol_event_date_add_edit_view';
         $this->load->vars($displayData);
         $this->load->view('template');
     } else {
         $strEDate = trim($_POST['txtEDate']);
         MDY_ViaUserForm($strEDate, $lMon, $lDay, $lYear, $gbDateFormatUS);
         $strEDate = strMoDaYr2MySQLDate($lMon, $lDay, $lYear);
         if ($bNew) {
             $lDateID = $this->clsVolEventDates->lInsertEventDate($lEventID, $strEDate, true);
         } else {
             $this->clsVolEventDates->updateEventDate($lDateID, $strEDate, true);
         }
         $this->session->set_flashdata('msg', 'The event date was ' . ($bNew ? 'added' : 'updated'));
         redirect('volunteers/event_dates_view/viewDates/' . $lDateID);
     }
 }
 function addEditGift($lGiftID, $lFID = 0)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     global $gdteNow, $gclsChapterACO, $gbDateFormatUS;
     if (!bTestForURLHack('dataEntryGifts')) {
         return '';
     }
     $this->load->helper('dl_util/verify_id');
     if ($lGiftID . '' != '0') {
         verifyID($this, $lGiftID, 'donation ID');
     }
     if ($lFID . '' != '0') {
         verifyID($this, $lFID, 'people/business ID');
     }
     $displayData = array();
     $displayData['lGiftID'] = $lGiftID = (int) $lGiftID;
     $displayData['lFID'] = $lFID = (int) $lFID;
     $displayData['js'] = '';
     $displayData['bNew'] = $bNew = $lGiftID <= 0;
     if ($bNew) {
         if (!bTestForURLHack('dataEntryGifts')) {
             return;
         }
     } else {
         if (!bTestForURLHack('editGifts')) {
             return;
         }
     }
     // load models
     $params = array('enumStyle' => 'terse');
     $this->load->library('generic_rpt', $params);
     $this->load->library('js_build/ajax_support');
     $this->load->helper('dl_util/web_layout');
     //      $this->load->helper ('dl_util/email_web');
     $this->load->helper('dl_util/time_date');
     $this->load->model('admin/madmin_aco', 'clsACO');
     $this->load->model('util/mlist_generic', 'clsList');
     $this->load->model('people/mpeople', 'clsPeople');
     $this->load->model('biz/mbiz', 'clsBiz');
     $this->load->model('donations/maccts_camps', 'clsAC');
     $this->load->model('donations/mdonations', 'clsGift');
     $this->clsGift->loadGiftViaGID($lGiftID);
     $gifts =& $this->clsGift->gifts[0];
     if ($bNew) {
         $bPeople = !$this->clsPeople->bBizRec($lFID);
         $gifts->ga_lKeyID = -1;
         $gifts->gi_dteDonation = $gdteNow;
         //         $gifts->lACOID           = $gclsChapterACO->lKeyID;
         $gifts->gi_curAmnt = 0.0;
         if ($bPeople) {
             $this->clsPeople->loadPeopleViaPIDs($lFID, false, false);
             $gifts->lACOID = $this->clsPeople->people[0]->lACO;
         } else {
             $this->clsBiz->loadBizRecsViaBID($lFID);
             $gifts->lACOID = $this->clsBiz->bizRecs[0]->lACO;
         }
     } else {
         $lFID = $this->clsGift->gifts[0]->gi_lForeignID;
         $bPeople = !$this->clsGift->gifts[0]->pe_bBiz;
     }
     $this->clsAC->loadAccounts(false, false, null);
     // validation rules
     $this->form_validation->set_error_delimiters('<div class="formError">', '</div>');
     $this->form_validation->set_rules('txtAmount', 'Donation Amount', 'trim|required|callback_stripCommas|numeric');
     $this->form_validation->set_rules('rdoACO', 'Accounting Country', 'trim|required');
     $this->form_validation->set_rules('ddlAccount', 'Account', 'trim|required|callback_giftVerifyAccountValid');
     $this->form_validation->set_rules('ddlCamps', 'Campaign', 'trim|callback_giftVerifyCampValid');
     $this->form_validation->set_rules('ddlInKind', 'In-Kind', 'trim');
     $this->form_validation->set_rules('ddlPayType', 'Payment Type', 'trim|callback_giftVerifyPayType');
     $this->form_validation->set_rules('ddlGiftCat', 'Gift Category', 'trim');
     $this->form_validation->set_rules('ddlAttrib', 'Attributed To', 'trim');
     $this->form_validation->set_rules('txtCheck', 'Check #', 'trim');
     $this->form_validation->set_rules('txtDDate', 'Donation date', 'trim|required|callback_giftVerifyDDateValid');
     $this->form_validation->set_rules('txtNotes', 'Notes', 'trim');
     if ($this->form_validation->run() == FALSE) {
         $displayData['formData'] = new stdClass();
         $lSponID = $this->clsGift->gifts[0]->gi_lSponsorID;
         $displayData['bSponPayment'] = $bSponPayment = !is_null($lSponID);
         //-------------------------------
         // Acct/Camp and ajax interface
         //-------------------------------
         if ($bSponPayment) {
             redirect('sponsors/payments/addEditPayment/' . $lSponID . '/' . $lFID . '/' . $lGiftID);
         } else {
             $clsAjax = new ajax_support();
             $displayData['js'] .= $clsAjax->showCreateXmlHTTPObject();
             $displayData['js'] .= $clsAjax->showCampaignLoadViaAcctID();
         }
         $this->load->library('generic_form');
         $displayData['js'] .= strDatePicker('datepickerFuture', true);
         $displayData['formData']->strStaffCFName = $gifts->strStaffCFName;
         $displayData['formData']->strStaffCLName = $gifts->strStaffCLName;
         $displayData['formData']->dteOrigin = $gifts->dteOrigin;
         $displayData['formData']->strStaffLFName = $gifts->strStaffLFName;
         $displayData['formData']->strStaffLLName = $gifts->strStaffLLName;
         $displayData['formData']->dteLastUpdate = $gifts->dteLastUpdate;
         // first time displayed, no user data entry errors
         if (validation_errors() == '') {
             $this->clsAC->loadCampaigns(false, true, $gifts->ga_lKeyID, false, null);
             $displayData['formData']->txtAmount = number_format($gifts->gi_curAmnt, 2);
             $displayData['formData']->strACORadio = $this->clsACO->strACO_Radios($gifts->lACOID, 'rdoACO');
             if (!$bSponPayment) {
                 $displayData['formData']->strDDLAccts = $this->clsAC->strDDLAccts($gifts->ga_lKeyID, true, true);
                 $displayData['formData']->strDDLCamps = $this->clsAC->strDDLCampaigns($gifts->gc_lKeyID, false);
             }
             $displayData['formData']->strNotes = htmlspecialchars($gifts->strNotes);
             $displayData['formData']->strCheckNum = htmlspecialchars($gifts->gi_strCheckNum);
             if (is_null($gifts->mdteDonation)) {
                 $displayData['formData']->txtDDate = '';
             } else {
                 $displayData['formData']->txtDDate = strNumericDateViaMysqlDate($gifts->mdteDonation, $gbDateFormatUS);
             }
             $this->clsList->strBlankDDLName = 'n/a';
             $this->clsList->enumListType = CENUM_LISTTYPE_INKIND;
             $displayData['formData']->strDDLGIK = $this->clsList->strLoadListDDL('ddlInKind', true, $gifts->gi_lGIK_ID);
             $this->clsList->strBlankDDLName = '&nbsp;';
             $this->clsList->enumListType = CENUM_LISTTYPE_GIFTPAYTYPE;
             $displayData['formData']->strDDLPayType = $this->clsList->strLoadListDDL('ddlPayType', true, $gifts->gi_lPaymentType);
             $this->clsList->enumListType = CENUM_LISTTYPE_MAJORGIFTCAT;
             $displayData['formData']->strDDLMajGiftType = $this->clsList->strLoadListDDL('ddlGiftCat', true, $gifts->gi_lMajorGiftCat);
             $this->clsList->enumListType = CENUM_LISTTYPE_ATTRIB;
             $displayData['formData']->strDDLAttrib = $this->clsList->strLoadListDDL('ddlAttrib', true, $gifts->gi_lAttributedTo);
         } else {
             setOnFormError($displayData);
             $this->clsAC->loadCampaigns(false, true, set_value('ddlAccount'), false, null);
             $displayData['formData']->txtDDate = set_value('txtDDate');
             $displayData['formData']->txtAmount = set_value('txtAmount');
             $displayData['formData']->strACORadio = $this->clsACO->strACO_Radios(set_value('rdoACO'), 'rdoACO');
             if (!$bSponPayment) {
                 $displayData['formData']->strDDLAccts = $this->clsAC->strDDLAccts(set_value('ddlAccount'), true, true);
                 $displayData['formData']->strDDLCamps = $this->clsAC->strDDLCampaigns(set_value('ddlCamps'), false);
             }
             $displayData['formData']->strNotes = set_value('txtNotes');
             $displayData['formData']->strCheckNum = set_value('txtCheck');
             $this->clsList->strBlankDDLName = 'n/a';
             $this->clsList->enumListType = CENUM_LISTTYPE_INKIND;
             $displayData['formData']->strDDLGIK = $this->clsList->strLoadListDDL('ddlInKind', true, set_value('ddlInKind'));
             $this->clsList->strBlankDDLName = '&nbsp;';
             $this->clsList->enumListType = CENUM_LISTTYPE_GIFTPAYTYPE;
             $displayData['formData']->strDDLPayType = $this->clsList->strLoadListDDL('ddlPayType', true, set_value('ddlPayType'));
             $this->clsList->enumListType = CENUM_LISTTYPE_MAJORGIFTCAT;
             $displayData['formData']->strDDLMajGiftType = $this->clsList->strLoadListDDL('ddlGiftCat', true, set_value('ddlGiftCat'));
             $this->clsList->enumListType = CENUM_LISTTYPE_ATTRIB;
             $displayData['formData']->strDDLAttrib = $this->clsList->strLoadListDDL('ddlAttrib', true, set_value('ddlAttrib'));
         }
         $displayData['gift'] =& $gifts;
         //--------------------------
         // breadcrumbs
         //--------------------------
         if ($bPeople) {
             $displayData['pageTitle'] = anchor('main/menu/people', 'People', 'class="breadcrumb"') . ' | ' . anchor('people/people_record/view/' . $lFID, 'Record', 'class="breadcrumb"') . ' | ' . ($bNew ? 'Add New' : 'Edit') . ' Donation Record';
             $displayData['mainTemplate'] = array('donations/gift_add_edit_view');
             $this->clsPeople->loadPeopleViaPIDs($lFID, false, false);
             $displayData['contextSummary'] = $this->clsPeople->peopleHTMLSummary(0);
         } else {
             $displayData['pageTitle'] = anchor('main/menu/biz', 'Businesses/Organizations', 'class="breadcrumb"') . ' | ' . anchor('biz/biz_record/view/' . $lFID, 'Record', 'class="breadcrumb"') . ' | ' . ($bNew ? 'Add New' : 'Edit') . ' Donation Record';
             $displayData['mainTemplate'] = array('donations/gift_add_edit_view');
             $this->clsBiz->loadBizRecsViaBID($lFID);
             $displayData['contextSummary'] = $this->clsBiz->strBizHTMLSummary(0);
         }
         $displayData['title'] = CS_PROGNAME . ' | Donations';
         $displayData['nav'] = $this->mnav_brain_jar->navData();
         $this->load->vars($displayData);
         $this->load->view('template');
     } else {
         $this->load->model('personalization/muser_fields', 'clsUF');
         $this->load->model('personalization/muser_fields_create', 'clsUFC');
         $this->load->model('admin/mpermissions', 'perms');
         $this->load->helper('dl_util/util_db');
         $gifts->gi_curAmnt = (double) trim($_POST['txtAmount']);
         $gifts->gc_lKeyID = trim((int) $_POST['ddlCamps']);
         $gifts->gi_lSponsorID = null;
         $gifts->lACOID = (int) trim($_POST['rdoACO']);
         $gifts->strNotes = trim($_POST['txtNotes']);
         $gifts->gi_strCheckNum = trim($_POST['txtCheck']);
         $gifts->gi_lAttributedTo = (int) trim($_POST['ddlAttrib']);
         $gifts->gi_lGIK_ID = (int) trim($_POST['ddlInKind']);
         $gifts->gi_lPaymentType = (int) trim($_POST['ddlPayType']);
         $gifts->gi_lMajorGiftCat = (int) trim($_POST['ddlGiftCat']);
         $gifts->gi_lForeignID = $lFID;
         if ($gifts->gi_lAttributedTo <= 0) {
             $gifts->gi_lAttributedTo = null;
         }
         if ($gifts->gi_lGIK_ID <= 0) {
             $gifts->gi_lGIK_ID = null;
         }
         $gifts->gi_bGIK = !is_null($gifts->gi_lGIK_ID);
         $strDate = trim($_POST['txtDDate']);
         MDY_ViaUserForm($strDate, $lMon, $lDay, $lYear, $gbDateFormatUS);
         $gifts->mdteDonation = strMoDaYr2MySQLDate($lMon, $lDay, $lYear);
         //------------------------------------
         // update db tables and return
         //------------------------------------
         if ($bNew) {
             $lGiftID = $this->clsGift->lAddNewGiftRecord();
             $this->session->set_flashdata('msg', 'Gift added');
         } else {
             $this->clsGift->updateGiftRecord();
             $this->session->set_flashdata('msg', 'Gift record updated');
         }
         redirect('donations/gift_record/view/' . $lGiftID);
     }
 }
 function addEdit($lPledgeID, $lFID = '0')
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     global $gdteNow, $gclsChapterACO, $gbDateFormatUS;
     $this->load->helper('dl_util/verify_id');
     if ($lPledgeID . '' != '0') {
         verifyID($this, $lPledgeID, 'pledge ID');
     }
     if ($lFID . '' != '0') {
         verifyID($this, $lFID, 'people/business ID');
     }
     $displayData = array();
     $displayData['lPledgeID'] = $lPledgeID = (int) $lPledgeID;
     $displayData['lFID'] = $lFID = (int) $lFID;
     $displayData['js'] = '';
     $displayData['bNew'] = $bNew = $lPledgeID <= 0;
     if ($bNew) {
         if (!bTestForURLHack('dataEntryGifts')) {
             return;
         }
     } else {
         if (!bTestForURLHack('editGifts')) {
             return;
         }
     }
     // load models
     $params = array('enumStyle' => 'terse');
     $this->load->library('generic_rpt', $params);
     $this->load->library('js_build/ajax_support');
     $this->load->helper('dl_util/web_layout');
     //      $this->load->helper ('dl_util/email_web');
     $this->load->helper('dl_util/time_date');
     $this->load->model('admin/madmin_aco', 'clsACO');
     $this->load->model('util/mlist_generic', 'clsList');
     $this->load->model('people/mpeople', 'clsPeople');
     $this->load->model('biz/mbiz', 'clsBiz');
     $this->load->model('donations/maccts_camps', 'clsAC');
     //      $this->load->model  ('donations/mdonations',   'clsGift');
     $this->load->model('donations/mpledges', 'clsPledges');
     $this->clsPledges->loadPledgeViaPledgeID($lPledgeID);
     $pledge =& $this->clsPledges->pledges[0];
     if ($bNew) {
         $bPeople = !$this->clsPeople->bBizRec($lFID);
         $pledge->lAccountID = -1;
         $pledge->dteStart = $gdteNow;
         $pledge->curCommitment = 0.0;
         if ($bPeople) {
             $this->clsPeople->loadPeopleViaPIDs($lFID, false, false);
             $pledge->lACOID = $this->clsPeople->people[0]->lACO;
         } else {
             $this->clsBiz->loadBizRecsViaBID($lFID);
             $pledge->lACOID = $this->clsBiz->bizRecs[0]->lACO;
         }
     } else {
         $lFID = $pledge->lForeignID;
         $bPeople = !$pledge->bBiz;
         if ($bPeople) {
             $this->clsPeople->loadPeopleViaPIDs($lFID, false, false);
         } else {
             $this->clsBiz->loadBizRecsViaBID($lFID);
         }
     }
     $this->clsAC->loadAccounts(false, false, null);
     // validation rules
     $this->form_validation->set_error_delimiters('<div class="formError">', '</div>');
     $this->form_validation->set_rules('txtCommit', 'Commitment Amount', 'trim|required|callback_stripCommas|numeric|callback_pledgeVerifyCommitment');
     $this->form_validation->set_rules('txtNumPay', 'Number of Payments', 'trim|required|callback_stripCommas|numeric|greater_than[0]');
     $this->form_validation->set_rules('rdoACO', 'Accounting Country', 'trim|required');
     $this->form_validation->set_rules('ddlAccount', 'Account', 'trim|required|callback_pledgeVerifyAccountValid');
     $this->form_validation->set_rules('ddlCamps', 'Campaign', 'trim|callback_pledgeVerifyCampValid');
     $this->form_validation->set_rules('ddlAttrib', 'Attributed To', 'trim');
     $this->form_validation->set_rules('ddlFreq', 'Payment Frequency', 'trim|callback_pledgeFreqValid');
     $this->form_validation->set_rules('txtStartDate', 'Start date', 'trim|required|callback_pledgeVerifyDateValid');
     $this->form_validation->set_rules('txtNotes', 'Notes', 'trim');
     if ($this->form_validation->run() == FALSE) {
         $displayData['formData'] = new stdClass();
         //-------------------------------
         // Acct/Camp and ajax interface
         //-------------------------------
         $clsAjax = new ajax_support();
         $displayData['js'] .= $clsAjax->showCreateXmlHTTPObject();
         $displayData['js'] .= $clsAjax->showCampaignLoadViaAcctID();
         $this->load->library('generic_form');
         $displayData['js'] .= strDatePicker('datepickerFuture', true);
         $displayData['formData']->strStaffCFName = $pledge->strStaffCFName;
         $displayData['formData']->strStaffCLName = $pledge->strStaffCLName;
         $displayData['formData']->dteOrigin = $pledge->dteOrigin;
         $displayData['formData']->strStaffLFName = $pledge->strStaffLFName;
         $displayData['formData']->strStaffLLName = $pledge->strStaffLLName;
         $displayData['formData']->dteLastUpdate = $pledge->dteLastUpdate;
         // first time displayed, no user data entry errors
         if (validation_errors() == '') {
             $this->clsAC->loadCampaigns(false, true, $pledge->lAccountID, false, null);
             $displayData['formData']->txtCommit = number_format($pledge->curCommitment, 2);
             $displayData['formData']->strACORadio = $this->clsACO->strACO_Radios($pledge->lACOID, 'rdoACO');
             $displayData['formData']->strDDLAccts = $this->clsAC->strDDLAccts($pledge->lAccountID, true, true);
             $displayData['formData']->strDDLCamps = $this->clsAC->strDDLCampaigns($pledge->lCampaignID, false);
             $displayData['formData']->strDDLFreq = $this->clsPledges->strDDLPledgeFrequecy('ddlFreq', $pledge->enumFreq, true);
             $displayData['formData']->txtNumPay = $pledge->lNumCommit;
             $displayData['formData']->strNotes = htmlspecialchars($pledge->strNotes);
             if (is_null($pledge->mdteStart)) {
                 $displayData['formData']->txtStartDate = '';
             } else {
                 $displayData['formData']->txtStartDate = strNumericDateViaMysqlDate($pledge->mdteStart, $gbDateFormatUS);
             }
             $this->clsList->strBlankDDLName = 'n/a';
             $this->clsList->enumListType = CENUM_LISTTYPE_ATTRIB;
             $displayData['formData']->strDDLAttrib = $this->clsList->strLoadListDDL('ddlAttrib', true, $pledge->lAttributedTo);
         } else {
             setOnFormError($displayData);
             $this->clsAC->loadCampaigns(false, true, set_value('ddlAccount'), false, null);
             $displayData['formData']->txtStartDate = set_value('txtStartDate');
             $displayData['formData']->txtCommit = set_value('txtCommit');
             $displayData['formData']->txtNumPay = set_value('txtNumPay');
             $displayData['formData']->strACORadio = $this->clsACO->strACO_Radios(set_value('rdoACO'), 'rdoACO');
             $displayData['formData']->strDDLAccts = $this->clsAC->strDDLAccts(set_value('ddlAccount'), true, true);
             $displayData['formData']->strDDLCamps = $this->clsAC->strDDLCampaigns(set_value('ddlCamps'), false);
             $displayData['formData']->strNotes = set_value('txtNotes');
             $this->clsList->strBlankDDLName = '&nbsp;';
             $this->clsList->enumListType = CENUM_LISTTYPE_ATTRIB;
             $displayData['formData']->strDDLAttrib = $this->clsList->strLoadListDDL('ddlAttrib', true, set_value('ddlAttrib'));
             $displayData['formData']->strDDLFreq = $this->clsPledges->strDDLPledgeFrequecy('ddlFreq', set_value('ddlFreq'), true);
         }
         //--------------------------
         // breadcrumbs
         //--------------------------
         $displayData['mainTemplate'] = 'donations/pledge_add_edit_view';
         if ($bPeople) {
             $displayData['pageTitle'] = anchor('main/menu/people', 'People', 'class="breadcrumb"') . ' | ' . anchor('people/people_record/view/' . $lFID, 'Record', 'class="breadcrumb"') . ' | ' . ($bNew ? 'Add New' : 'Edit') . ' Pledge Record';
             $this->clsPeople->loadPeopleViaPIDs($lFID, false, false);
             $displayData['contextSummary'] = $this->clsPeople->peopleHTMLSummary(0);
         } else {
             $displayData['pageTitle'] = anchor('main/menu/biz', 'Businesses/Organizations', 'class="breadcrumb"') . ' | ' . anchor('biz/biz_record/view/' . $lFID, 'Record', 'class="breadcrumb"') . ' | ' . ($bNew ? 'Add New' : 'Edit') . ' Pledge Record';
             $this->clsBiz->loadBizRecsViaBID($lFID);
             $displayData['contextSummary'] = $this->clsBiz->strBizHTMLSummary(0);
         }
         $displayData['title'] = CS_PROGNAME . ' | Pledges';
         $displayData['nav'] = $this->mnav_brain_jar->navData();
         $this->load->vars($displayData);
         $this->load->view('template');
     } else {
         $pledge->curCommitment = (double) trim($_POST['txtCommit']);
         $pledge->lNumCommit = (int) trim($_POST['txtNumPay']);
         $pledge->enumFreq = trim($_POST['ddlFreq']);
         $pledge->lCampaignID = (int) trim($_POST['ddlCamps']);
         $pledge->lForeignID = $lFID;
         $pledge->lACOID = (int) trim($_POST['rdoACO']);
         $pledge->strNotes = trim($_POST['txtNotes']);
         $pledge->lAttributedTo = (int) trim($_POST['ddlAttrib']);
         if ($pledge->lAttributedTo <= 0) {
             $pledge->lAttributedTo = null;
         }
         $strDate = trim($_POST['txtStartDate']);
         MDY_ViaUserForm($strDate, $lMon, $lDay, $lYear, $gbDateFormatUS);
         $pledge->mdteStart = strMoDaYr2MySQLDate($lMon, $lDay, $lYear);
         //------------------------------------
         // update db tables and return
         //------------------------------------
         if ($bNew) {
             $lPledgeID = $this->clsPledges->lAddNewPledgeRecord();
             $this->session->set_flashdata('msg', 'Pledge added');
         } else {
             $this->clsPledges->updatePledgeRecord($pledge->lKeyID);
             $this->session->set_flashdata('msg', 'Pledge record updated');
         }
         redirect('donations/pledge_record/view/' . $lPledgeID);
     }
 }
 function addEditAuction($lAuctionID)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     global $gdteNow, $gbDateFormatUS, $gclsChapterACO;
     if (!bTestForURLHack('showAuctions')) {
         return;
     }
     $this->load->helper('dl_util/verify_id');
     if ($lAuctionID . '' != '0') {
         verifyID($this, $lAuctionID, 'auction ID');
     }
     $displayData = array();
     $displayData['formData'] = new stdClass();
     $displayData['lAuctionID'] = $lAuctionID = (int) $lAuctionID;
     $displayData['bNew'] = $bNew = $lAuctionID <= 0;
     $displayData['js'] = '';
     //-------------------------
     // models & helpers
     //-------------------------
     $this->load->helper('dl_util/time_date');
     $this->load->helper('dl_util/link_auction');
     $this->load->helper('auctions/auction');
     $this->load->model('auctions/mauctions', 'cAuction');
     $this->load->model('auctions/mbid_sheets', 'cBidSheets');
     $this->load->model('admin/madmin_aco', 'clsACO');
     $this->load->model('donations/maccts_camps', 'clsAC');
     $this->load->helper('dl_util/web_layout');
     $this->load->library('js_build/ajax_support');
     $this->cAuction->loadAuctionByAucID($lAuctionID);
     $auction = $this->cAuction->auctions[0];
     //-------------------------
     // validation rules
     //-------------------------
     $this->form_validation->set_error_delimiters('<div class="formError">', '</div>');
     $this->form_validation->set_rules('txtAuctionName', 'Auction Name', 'trim|required|' . 'callback_verifyUniqueAuction[' . $lAuctionID . ']');
     $this->form_validation->set_rules('txtContact', 'Contact', 'trim');
     $this->form_validation->set_rules('txtDescription', 'Description', 'trim');
     $this->form_validation->set_rules('txtLocation', 'Location', 'trim');
     $this->form_validation->set_rules('txtEmail', 'Email', 'trim');
     $this->form_validation->set_rules('txtPhone', 'Phone', 'trim');
     $this->form_validation->set_rules('rdoACO', 'Accounting Country', 'trim');
     $this->form_validation->set_rules('ddlDefBS', 'Default Bid Sheet', 'trim');
     $this->form_validation->set_rules('txtADate', 'Auction Date', 'trim|required|callback_auctionDateValid');
     $this->form_validation->set_rules('ddlAccount', 'Account', 'trim|required|callback_auctionVerifyAccountValid');
     $this->form_validation->set_rules('ddlCamps', 'Campaign', 'trim|callback_auctionVerifyCampValid');
     if ($this->form_validation->run() == FALSE) {
         $displayData['formData'] = new stdClass();
         $this->load->library('generic_form');
         $displayData['js'] .= strDatePicker('datepickerFuture', true);
         $this->clsAC->loadAccounts(false, false, null);
         $clsAjax = new ajax_support();
         $displayData['js'] .= $clsAjax->showCreateXmlHTTPObject();
         $displayData['js'] .= $clsAjax->showCampaignLoadViaAcctID();
         // first time displayed, no user data entry errors
         if (validation_errors() == '') {
             //echo(__FILE__.' '.__LINE__.'<br>'."\n"); die;
             if ($bNew) {
                 $auction->lACOID = $gclsChapterACO->lKeyID;
                 $displayData['formData']->txtADate = '';
                 $auction->lAccountID = -1;
                 $displayData['lNumBidSheets'] = 0;
             } else {
                 $displayData['ddlDefBidSheet'] = $this->cBidSheets->strBidSheetListDDL($auction->lKeyID, $auction->lBidsheetID, 'ddlDefBS', true, $displayData['lNumBidSheets']);
                 $displayData['formData']->txtADate = strNumericDateViaMysqlDate($auction->mdteAuction, $gbDateFormatUS);
             }
             $this->clsAC->loadCampaigns(false, true, $auction->lAccountID, false, null);
             $displayData['formData']->strDDLAccts = $this->clsAC->strDDLAccts($auction->lAccountID, true, true);
             $displayData['formData']->strDDLCamps = $this->clsAC->strDDLCampaigns($auction->lCampaignID, false);
             $displayData['formData']->txtAuctionName = htmlspecialchars($auction->strAuctionName);
             $displayData['formData']->txtDescription = htmlspecialchars($auction->strDescription);
             $displayData['formData']->txtLocation = htmlspecialchars($auction->strLocation);
             $displayData['formData']->txtContact = htmlspecialchars($auction->strContact);
             $displayData['formData']->txtEmail = htmlspecialchars($auction->strEmail);
             $displayData['formData']->txtPhone = htmlspecialchars($auction->strPhone);
             $displayData['formData']->strACORadio = $this->clsACO->strACO_Radios($auction->lACOID, 'rdoACO');
         } else {
             setOnFormError($displayData);
             $displayData['formData']->txtAuctionName = set_value('txtAuctionName');
             $displayData['formData']->txtDescription = set_value('txtDescription');
             $displayData['formData']->txtLocation = set_value('txtLocation');
             $displayData['formData']->txtContact = set_value('txtContact');
             $displayData['formData']->txtEmail = set_value('txtEmail');
             $displayData['formData']->txtPhone = set_value('txtPhone');
             $displayData['formData']->txtADate = set_value('txtADate');
             $displayData['formData']->strACORadio = $this->clsACO->strACO_Radios(set_value('rdoACO'), 'rdoACO');
             if ($bNew) {
                 $displayData['lNumBidSheets'] = 0;
             } else {
                 $displayData['ddlDefBidSheet'] = $this->cBidSheets->strBidSheetListDDL($auction->lKeyID, set_value('ddlDefBS'), 'ddlDefBS', true, $displayData['lNumBidSheets']);
             }
             $this->clsAC->loadCampaigns(false, true, set_value('ddlAccount'), false, null);
             $displayData['formData']->strDDLAccts = $this->clsAC->strDDLAccts(set_value('ddlAccount'), true, true);
             $displayData['formData']->strDDLCamps = $this->clsAC->strDDLCampaigns(set_value('ddlCamps'), false);
         }
         //--------------------------
         // breadcrumbs
         //--------------------------
         $displayData['pageTitle'] = GSTR_AUCTIONTOPLEVEL . ' | ' . anchor('auctions/auctions/auctionEvents', 'Silent Auctions', 'class="breadcrumb"') . ' | ' . ($bNew ? 'Add New' : 'Edit') . '  Auction';
         $displayData['title'] = CS_PROGNAME . ' | Silent Auctions';
         $displayData['nav'] = $this->mnav_brain_jar->navData();
         $displayData['mainTemplate'] = 'auctions/add_edit_auction_view';
         $this->load->vars($displayData);
         $this->load->view('template');
     } else {
         $strDate = trim($_POST['txtADate']);
         MDY_ViaUserForm($strDate, $lMon, $lDay, $lYear, $gbDateFormatUS);
         $auction->mdteAuction = strMoDaYr2MySQLDate($lMon, $lDay, $lYear);
         $auction->strAuctionName = trim($_POST['txtAuctionName']);
         $auction->strDescription = trim($_POST['txtDescription']);
         $auction->lACOID = trim($_POST['txtADate']);
         $auction->strLocation = trim($_POST['txtLocation']);
         $auction->strContact = trim($_POST['txtContact']);
         $auction->strPhone = trim($_POST['txtPhone']);
         $auction->strEmail = trim($_POST['txtEmail']);
         $auction->lACOID = (int) trim($_POST['rdoACO']);
         $auction->lCampaignID = (int) trim($_POST['ddlCamps']);
         $auction->lDefaultBidSheet = (int) trim(@$_POST['ddlDefBS']);
         if ($auction->lDefaultBidSheet <= 0) {
             $auction->lDefaultBidSheet = null;
         }
         //------------------------------------
         // update db tables and return
         //------------------------------------
         if ($bNew) {
             $lAuctionID = $this->cAuction->addNewAuction();
             $this->session->set_flashdata('msg', 'Auction record added');
         } else {
             $this->cAuction->updateAuction($lAuctionID);
             $this->session->set_flashdata('msg', 'Auction record updated');
         }
         redirect('auctions/auctions/viewAuctionRecord/' . $lAuctionID);
     }
 }
 function addEditAuctionItem($lPackageID, $lItemID, $lDonorID = null)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     global $gbDateFormatUS;
     if (!bTestForURLHack('showAuctions')) {
         return;
     }
     $this->load->helper('dl_util/verify_id');
     verifyID($this, $lPackageID, 'package ID');
     if ($lItemID . '' != '0') {
         verifyID($this, $lItemID, 'auction item ID');
     }
     if (!is_null($lDonorID)) {
         verifyID($this, $lDonorID, 'people/business ID');
     }
     $displayData = array();
     $displayData['js'] = '';
     $displayData['formData'] = new stdClass();
     //-------------------------
     // models & helpers
     //-------------------------
     $this->load->helper('dl_util/time_date');
     $this->load->model('auctions/mauctions', 'cAuction');
     $this->load->model('auctions/mpackages', 'cPackages');
     $this->load->model('auctions/mitems', 'cItems');
     $this->load->model('admin/madmin_aco', 'clsACO');
     $this->load->model('img_docs/mimage_doc', 'clsImgDoc');
     $this->load->helper('dl_util/web_layout');
     $this->load->helper('dl_util/link_auction');
     $this->load->helper('auctions/auction');
     $params = array('enumStyle' => 'terse');
     $this->load->library('generic_rpt', $params);
     $this->load->library('generic_form');
     //-----------------------------------------
     // load package and associated auction
     //-----------------------------------------
     setPackageContext($lPackageID, $lAuctionID, $displayData);
     $displayData['lAuctionID'] = $lAuctionID = (int) $lAuctionID;
     $displayData['lPackageID'] = $lPackageID = (int) $lPackageID;
     $displayData['lItemID'] = $lItemID = (int) $lItemID;
     $displayData['lDonorID'] = $lDonorID;
     $displayData['bNew'] = $bNew = $lItemID <= 0;
     $this->cItems->loadItemViaItemID($lItemID);
     $displayData['item'] = $item =& $this->cItems->items[0];
     //-------------------------
     // validation rules
     //-------------------------
     $this->form_validation->set_error_delimiters('<div class="formError">', '</div>');
     $this->form_validation->set_rules('txtItemName', 'Item Name', 'trim|required');
     $this->form_validation->set_rules('txtDonorAck', 'Donor Acknowledgement', 'trim|required');
     $this->form_validation->set_rules('txtPublicNotes', 'Public Notes', 'trim');
     $this->form_validation->set_rules('txtPrivateNotes', 'Private Notes', 'trim');
     $this->form_validation->set_rules('txtODate', 'Date Item Obtained', 'trim|required|callback_obtainedDateValid');
     $this->form_validation->set_rules('txtEstValue', 'Estimated Value', 'trim|required|callback_stripCommas|numeric|callback_minPackageAmnt[0.01]');
     $this->form_validation->set_rules('txtOutOfPocket', 'Out of Pocket Expenses', 'trim|required|callback_stripCommas|numeric|callback_minPackageAmnt[0.00]');
     if ($this->form_validation->run() == FALSE) {
         $displayData['js'] .= strDatePicker('datepickerFuture', true);
         if (is_null($lDonorID)) {
             $lHoldDonorID = $item->lItemDonorID;
             $bBiz = $item->itemDonor_bBiz;
             $displayData['formData']->txtItemDonor = $item->itemDonor_safeName;
             $strTempAck = 'Anonymous';
         } else {
             $lHoldDonorID = $lDonorID;
             $this->load->model('people/mpeople', 'clsPeople');
             $this->clsPeople->peopleBizInfoViaPID($lDonorID, $pbInfo);
             $bBiz = $pbInfo->bBiz;
             $displayData['formData']->txtItemDonor = $strTempAck = $pbInfo->strSafeNameFL;
         }
         if ($bBiz) {
             $displayData['formData']->txtItemDonor .= ' <i>(business)</i>' . strLinkView_BizRecord($lHoldDonorID, 'View business record', true);
         } else {
             $displayData['formData']->txtItemDonor .= ' ' . strLinkView_PeopleRecord($lHoldDonorID, 'View people record', true);
         }
         // first time displayed, no user data entry errors
         if (validation_errors() == '') {
             if ($bNew) {
                 $displayData['formData']->txtODate = '';
             } else {
                 $displayData['formData']->txtODate = strNumericDateViaMysqlDate($item->mdteItemObtained, $gbDateFormatUS);
             }
             $displayData['formData']->txtItemName = htmlspecialchars($item->strItemName);
             if ($item->strDonorAck . '' == '') {
                 $displayData['formData']->txtDonorAck = $strTempAck;
             } else {
                 $displayData['formData']->txtDonorAck = htmlspecialchars($item->strDonorAck);
             }
             $displayData['formData']->txtPublicNotes = htmlspecialchars($item->strDescription);
             $displayData['formData']->txtPrivateNotes = htmlspecialchars($item->strInternalNotes);
             $displayData['formData']->txtEstValue = number_format($item->curEstAmnt, 2);
             $displayData['formData']->txtOutOfPocket = number_format($item->curOutOfPocket, 2);
         } else {
             setOnFormError($displayData);
             $displayData['formData']->txtItemName = set_value('txtItemName');
             $displayData['formData']->txtDonorAck = set_value('txtDonorAck');
             $displayData['formData']->txtPublicNotes = set_value('txtPublicNotes');
             $displayData['formData']->txtPrivateNotes = set_value('txtPrivateNotes');
             $displayData['formData']->txtODate = set_value('txtODate');
             $displayData['formData']->txtEstValue = set_value('txtEstValue');
             $displayData['formData']->txtOutOfPocket = set_value('txtOutOfPocket');
         }
         //--------------------------
         // breadcrumbs
         //--------------------------
         $displayData['pageTitle'] = GSTR_AUCTIONTOPLEVEL . ' | ' . anchor('auctions/auctions/auctionEvents', 'Silent Auctions', 'class="breadcrumb"') . ' | ' . anchor('auctions/auctions/viewAuctionRecord/' . $lAuctionID, 'Auction', 'class="breadcrumb"') . ' | ' . anchor('auctions/packages/viewPackageRecord/' . $lPackageID, 'Auction Package', 'class="breadcrumb"') . ' | ' . ($bNew ? 'Add New' : 'Edit') . '  Item';
         $displayData['title'] = CS_PROGNAME . ' | Silent Auctions';
         $displayData['nav'] = $this->mnav_brain_jar->navData();
         $displayData['mainTemplate'] = 'auctions/add_edit_item_view';
         $this->load->vars($displayData);
         $this->load->view('template');
     } else {
         $strDate = trim($_POST['txtODate']);
         MDY_ViaUserForm($strDate, $lMon, $lDay, $lYear, $gbDateFormatUS);
         $item->mdteItemObtained = strMoDaYr2MySQLDate($lMon, $lDay, $lYear);
         $item->lPackageID = $lPackageID;
         $item->strItemName = trim($_POST['txtItemName']);
         $item->strDonorAck = trim($_POST['txtDonorAck']);
         $item->strDescription = trim($_POST['txtPublicNotes']);
         $item->strInternalNotes = trim($_POST['txtPrivateNotes']);
         $item->curEstAmnt = (double) trim($_POST['txtEstValue']);
         $item->curOutOfPocket = (double) trim($_POST['txtOutOfPocket']);
         //------------------------------------
         // update db tables and return
         //------------------------------------
         if ($bNew) {
             $lItemID = $this->cItems->addNewItem($lDonorID, $lPackageID);
             $this->session->set_flashdata('msg', 'Auction item record added');
         } else {
             $this->cItems->updateItem($lItemID);
             $this->session->set_flashdata('msg', 'Auction item record updated');
         }
         redirect('auctions/items/viewItemRecord/' . $lItemID);
     }
 }
 function addEditClient($lClientID, $clsClients)
 {
     //---------------------------------------------------------------
     //
     //---------------------------------------------------------------
     global $gbDateFormatUS, $gstrFormatDatePicker, $gdteNow, $glChapterID;
     global $gstrDuplicateWarning;
     if (!bTestForURLHack('showClients')) {
         return;
     }
     $displayData = array();
     $gstrDuplicateWarning = '';
     $displayData['lClientID'] = $lClientID = (int) $lClientID;
     $displayData['bNew'] = $bNew = $lClientID <= 0;
     $displayData['client'] = $client = $clsClients->clients[0];
     if (is_null($client->lLocationID)) {
         $client->lLocationID = (int) $_POST['lLocationID'];
         $client->lStatusCatID = (int) $_POST['lStatusCatID'];
         $client->lVocID = (int) $_POST['lVocID'];
     }
     //--------------------------------------------
     // models associated with the client record
     //--------------------------------------------
     $this->load->model('clients/mclient_locations', 'clsLocation');
     $this->load->model('sponsorship/msponsorship_programs', 'clsSponProg');
     $this->load->model('clients/mclient_status', 'clsClientStat');
     $this->load->model('clients/mclient_vocabulary', 'clsClientV');
     $this->load->helper('dl_util/time_date');
     $this->load->helper('dl_util/web_layout');
     if ($bNew) {
         $this->load->model('util/mdup_checker', 'cDupChecker');
         $this->load->model('admin/mpermissions', 'perms');
         $this->load->model('personalization/muser_fields', 'clsUF');
         $this->load->model('personalization/muser_schema', 'cUFSchema');
         $this->load->model('client_features/mcprograms', 'cprograms');
     }
     // validation rules
     $this->form_validation->set_error_delimiters('<div class="formError">', '</div>');
     $this->form_validation->set_rules('txtFName', 'Client\'s First Name', 'trim|required');
     $this->form_validation->set_rules('txtMName', 'Client\'s Middle Name', 'trim');
     $this->form_validation->set_rules('txtLName', 'Client\'s Last Name', 'trim');
     $this->form_validation->set_rules('txtBDate', 'Birth date', 'trim|required|callback_clientRecVerifyBDateValid' . '|callback_clientRecVerifyBDatePast');
     $this->form_validation->set_rules('txtPEntryDate', 'Enrollment date', 'trim|required|callback_clientRecVerifyEDateValid' . '|callback_clientRecVerifyEDatePast');
     $this->form_validation->set_rules('txtMaxSpon', 'Max # of Sponsors', 'trim|required|is_natural');
     $this->form_validation->set_rules('rdoGender', 'Gender', 'required');
     $this->form_validation->set_rules('txtBio', 'Bio', 'trim');
     $this->form_validation->set_rules('ddlAttrib', 'Attributed to');
     $this->form_validation->set_rules('txtAddr1', '', 'trim');
     $this->form_validation->set_rules('txtAddr2', '', 'trim');
     $this->form_validation->set_rules('txtCity', '', 'trim');
     $this->form_validation->set_rules('txtState', '', 'trim');
     $this->form_validation->set_rules('txtZip', '', 'trim');
     $this->form_validation->set_rules('txtCountry', '', 'trim');
     $this->form_validation->set_rules('txtEmail', 'Email', 'trim|valid_email');
     $this->form_validation->set_rules('txtPhone', '', 'trim');
     $this->form_validation->set_rules('txtCell', '', 'trim');
     // test for duplicate clients
     if ($bNew) {
         $this->form_validation->set_rules('hiddenTestDup', 'dummy', 'callback_verifyNoDups');
         $this->form_validation->set_rules('ddlStatus', '', 'required|callback_clientRecVerifyInitStat');
         $displayData['bHiddenNewTestDup'] = true;
     }
     if ($this->form_validation->run() == FALSE) {
         $this->load->model('util/mlist_generic', 'clsList');
         $this->clsList->enumListType = CENUM_LISTTYPE_ATTRIB;
         $displayData['formData'] = new stdClass();
         $displayData['lLocationID'] = $lLocationID = $this->clsLocation->cl_lKeyID = $client->lLocationID;
         $this->clsLocation->loadLocationRec($lLocationID);
         $displayData['lVocID'] = $lVocID = $this->clsClientV->lVocID = $client->lVocID;
         $this->clsClientV->loadClientVocabulary(true, false);
         $displayData['clsClientV'] = $this->clsClientV;
         $displayData['clsLocation'] = $this->clsLocation;
         $this->clsSponProg->loadSponProgsViaLocID($lLocationID);
         $displayData['clsSponProg'] = $this->clsSponProg;
         $displayData['clsClientStat'] = $this->clsClientStat;
         $lSCID = $client->lStatusCatID;
         $this->clsClientStat->loadClientStatCatsEntries(true, $lSCID, false, null, true, false);
         $strMessage = '<font color="red">One or more client status entries must be established before
                          adding clients.</font>';
         $displayData['bNoStatEntries'] = $bNoStatEntries = $this->clsClientStat->bTestNoStatEntries($lSCID, true, $strMessage, $displayData['strNoStatErrMsg']);
         $this->load->library('generic_form');
         $displayData['strDuplicateWarning'] = $gstrDuplicateWarning;
         if (validation_errors() == '') {
             $displayData['formData']->txtFName = htmlspecialchars($client->strFName);
             $displayData['formData']->txtMName = htmlspecialchars($client->strMName);
             $displayData['formData']->txtLName = htmlspecialchars($client->strLName);
             $displayData['strAttribDDL'] = $this->clsList->strLoadListDDL($glChapterID, 'ddlAttrib', true, $client->lAttribID);
             if (is_null($client->dteBirth)) {
                 $displayData['formData']->txtBDate = '';
             } else {
                 $displayData['formData']->txtBDate = strNumericDateViaMysqlDate($client->dteBirth, $gbDateFormatUS);
             }
             if (is_null($client->dteEnrollment)) {
                 $displayData['formData']->txtPEntryDate = '';
             } else {
                 $displayData['formData']->txtPEntryDate = date($gstrFormatDatePicker, $client->dteEnrollment);
             }
             if ($bNew) {
                 $displayData['formData']->lInitStatID = -1;
             }
             if ($this->clsSponProg->lNumSponPrograms > 0) {
                 foreach ($this->clsSponProg->sponProgs as $clsLocSP) {
                     $lSCID = $clsLocSP->lKeyID;
                     $clsLocSP->bSupported = $this->clsSponProg->bClientInSponProgram($lClientID, $lSCID, $lcsp_lKeyID);
                 }
             }
             $displayData['formData']->txtMaxSpon = $client->lMaxSponsors;
             $displayData['formData']->rdoGender = $client->enumGender;
             $displayData['formData']->txtBio = htmlspecialchars($client->strBio);
             $displayData['formData']->txtAddr1 = htmlspecialchars($client->strAddr1);
             $displayData['formData']->txtAddr2 = htmlspecialchars($client->strAddr2);
             $displayData['formData']->txtCity = htmlspecialchars($client->strCity);
             $displayData['formData']->txtState = htmlspecialchars($client->strState);
             $displayData['formData']->txtZip = htmlspecialchars($client->strZip);
             $displayData['formData']->txtCountry = htmlspecialchars($client->strCountry);
             $displayData['formData']->txtEmail = htmlspecialchars($client->strEmail);
             $displayData['formData']->txtPhone = htmlspecialchars($client->strPhone);
             $displayData['formData']->txtCell = htmlspecialchars($client->strCell);
         } else {
             setOnFormError($displayData);
             $displayData['strAttribDDL'] = $this->clsList->strLoadListDDL($glChapterID, 'ddlAttrib', true, set_value('ddlAttrib'));
             $displayData['formData']->txtFName = set_value('txtFName');
             $displayData['formData']->txtMName = set_value('txtMName');
             $displayData['formData']->txtLName = set_value('txtLName');
             $displayData['formData']->txtBDate = set_value('txtBDate');
             $displayData['formData']->txtPEntryDate = set_value('txtPEntryDate');
             if ($bNew) {
                 $displayData['formData']->lInitStatID = set_value('ddlStatus');
             }
             // couldn't find a ci form validation way to do this....
             if ($this->clsSponProg->lNumSponPrograms > 0) {
                 if (isset($_POST['chkSP'])) {
                     foreach ($this->clsSponProg->sponProgs as $clsLocSP) {
                         $lSCID = $clsLocSP->lKeyID;
                         $clsLocSP->bSupported = in_array($lSCID, $_POST['chkSP']);
                     }
                 }
             }
             $displayData['formData']->txtMaxSpon = set_value('txtMaxSpon');
             $displayData['formData']->rdoGender = set_value('rdoGender');
             $displayData['formData']->txtBio = set_value('txtBio');
             $displayData['formData']->txtAddr1 = set_value('txtAddr1');
             $displayData['formData']->txtAddr2 = set_value('txtAddr2');
             $displayData['formData']->txtCity = set_value('txtCity');
             $displayData['formData']->txtState = set_value('txtState');
             $displayData['formData']->txtZip = set_value('txtZip');
             $displayData['formData']->txtCountry = set_value('txtCountry');
             $displayData['formData']->txtEmail = set_value('txtEmail');
             $displayData['formData']->txtPhone = set_value('txtPhone');
             $displayData['formData']->txtCell = set_value('txtCell');
         }
         //--------------------------
         // breadcrumbs
         //--------------------------
         if ($lClientID > 0) {
             $displayData['pageTitle'] = anchor('main/menu/client', 'Clients', 'class="breadcrumb"') . ' | ' . anchor('clients/client_record/view/' . $lClientID, 'Client Record', 'class="breadcrumb"') . ' | Edit Client Record';
         } else {
             $displayData['pageTitle'] = anchor('main/menu/client', 'Clients', 'class="breadcrumb"') . ' | Add New Client Record';
         }
         $displayData['title'] = CS_PROGNAME . ' | Clients';
         $displayData['nav'] = $this->mnav_brain_jar->navData();
         $displayData['mainTemplate'] = 'client/client_add_edit_view';
         $this->load->vars($displayData);
         $this->load->view('template');
     } else {
         $strBDate = trim($_POST['txtBDate']);
         MDY_ViaUserForm($strBDate, $lMon, $lDay, $lYear, $gbDateFormatUS);
         $client->dteBirth = strMoDaYr2MySQLDate($lMon, $lDay, $lYear);
         $strEnrollDate = trim($_POST['txtPEntryDate']);
         MDY_ViaUserForm($strEnrollDate, $lMon, $lDay, $lYear, $gbDateFormatUS);
         $client->dteEnrollment = strtotime($lMon . '/' . $lDay . '/' . $lYear);
         $client->strFName = trim($_POST['txtFName']);
         $client->strMName = trim($_POST['txtMName']);
         $client->strLName = trim($_POST['txtLName']);
         $client->strBio = trim($_POST['txtBio']);
         $client->enumGender = trim($_POST['rdoGender']);
         $client->lMaxSponsors = (int) trim($_POST['txtMaxSpon']);
         $client->strAddr1 = trim($_POST['txtAddr1']);
         $client->strAddr2 = trim($_POST['txtAddr2']);
         $client->strCity = trim($_POST['txtCity']);
         $client->strState = trim($_POST['txtState']);
         $client->strZip = trim($_POST['txtZip']);
         $client->strCountry = trim($_POST['txtCountry']);
         $client->strEmail = trim($_POST['txtEmail']);
         $client->strPhone = trim($_POST['txtPhone']);
         $client->strCell = trim($_POST['txtCell']);
         $lAttrib = (int) $_REQUEST['ddlAttrib'];
         if ($lAttrib <= 0) {
             $client->lAttribID = null;
         } else {
             $client->lAttribID = $lAttrib;
         }
         if ($bNew) {
             $this->load->model('personalization/muser_fields', 'clsUF');
             $this->load->model('personalization/muser_fields_create', 'clsUFC');
             $this->load->model('admin/mpermissions', 'perms');
             $lClientID = $this->clsClients->lAddNewClient();
             $this->clsClientStat->clientStatus = array();
             $status = $this->clsClientStat->clientStatus[0] = new stdClass();
             $status->lClientID = $lClientID;
             $status->lStatusID = (int) trim($_POST['ddlStatus']);
             $status->bIncludeNotesInPacket = false;
             $status->dteStatus = $gdteNow;
             $status->strStatusTxt = 'Initial status';
             $this->clsClientStat->lInsertClientStatus();
             $this->session->set_flashdata('msg', 'The client record was added');
         } else {
             $clsClients->updateClientRec();
             $this->session->set_flashdata('msg', 'The client record was updated');
         }
         //----------------------------------------
         // update supported sponsor categories
         //----------------------------------------
         $this->clsSponProg->clearClientSponPrograms($lClientID);
         if (isset($_POST['chkSP'])) {
             foreach ($_POST['chkSP'] as $lSCID) {
                 $this->clsSponProg->setClientSponProgram($lClientID, (int) $lSCID);
             }
         }
         redirect('clients/client_record/view/' . $client->lKeyID);
     }
 }
function displayField(&$mrec, &$ufield)
{
    //---------------------------------------------------------------------
    //
    //---------------------------------------------------------------------
    global $gbDateFormatUS;
    $strOut = $vVal = '';
    $enumType = $ufield->enumFieldType;
    $strFN = $ufield->strFieldNameInternal;
    if (!($enumType == CS_FT_HEADING || $enumType == CS_FT_LOG)) {
        $vVal = $mrec->{$strFN};
    }
    switch ($enumType) {
        case CS_FT_CHECKBOX:
            $strOut = '
               <td class="enpRpt" style="text-align: center; width: 60pt;">' . ($vVal ? 'Yes' : 'No') . '
               </td>';
            break;
        case CS_FT_DATE:
            if ($vVal . '' == '') {
                $strOut = '
                   <td class="enpRpt" style="text-align: center; width: 100pt;">&nbsp;</td>';
            } else {
                $strOut = '
                  <td class="enpRpt" style="text-align: center; width: 100pt;">' . strNumericDateViaMysqlDate($vVal, $gbDateFormatUS) . '
                  </td>';
            }
            break;
        case CS_FT_TEXT255:
            $strOut = '
               <td class="enpRpt"  style="width: 140pt;">' . htmlspecialchars($vVal) . '
               </td>';
            break;
        case CS_FT_TEXT80:
            $strOut = '
               <td class="enpRpt"  style="width: 100pt;">' . htmlspecialchars($vVal) . '
               </td>';
            break;
        case CS_FT_TEXT20:
            $strOut = '
               <td class="enpRpt"  style="width: 80pt;">' . htmlspecialchars($vVal) . '
               </td>';
            break;
        case CS_FT_HEADING:
        case CS_FT_LOG:
            break;
        case CS_FT_TEXTLONG:
            $strOut = '
               <td class="enpRpt"  style="width: 220pt;">' . nl2br(htmlspecialchars($vVal)) . '
               </td>';
            break;
        case CS_FT_CLIENTID:
        case CS_FT_INTEGER:
            if ($vVal . '' == '') {
                $strOut = '
                   <td class="enpRpt" style="text-align: center; width: 80pt;">&nbsp;</td>';
            } else {
                $strOut = '
                  <td class="enpRpt" style="text-align: right; width: 80pt;">' . number_format($vVal, 0) . '
                  </td>';
            }
            break;
        case CS_FT_CURRENCY:
            if ($vVal . '' == '') {
                $strOut = '
                   <td class="enpRpt" style="text-align: center; width: 80pt;">&nbsp;</td>';
            } else {
                $strOut = '
                  <td class="enpRpt" style="text-align: right; width: 80pt;">' . number_format($vVal, 2) . '
                  </td>';
            }
            break;
        case CS_FT_DDL:
            $strDDLTextFN = $strFN . '_ddlText';
            $strDDLVal = $mrec->{$strDDLTextFN};
            if ($strDDLVal == '') {
                $strDDLVal = '&nbsp;';
            } else {
                $strDDLVal = htmlspecialchars($strDDLVal);
            }
            $strOut = '
               <td class="enpRpt" style="width: 140pt;">' . $strDDLVal . '
               </td>';
            break;
        case CS_FT_DDLMULTI:
            $strDDLTextFN = $strFN . '_ddlMulti';
            $md = $mrec->{$strDDLTextFN};
            $strOut = '
               <td class="enpRpt" style="width: 140pt;">' . $md->strUL . '
               </td>';
            break;
        default:
            screamForHelp($enumType . ': unexpected field type<br>error on line <b> -- ' . __LINE__ . ' --</b>,<br>file ' . __FILE__ . ',<br>function ' . __FUNCTION__);
            break;
    }
    echoT($strOut);
}
 public function addEdit($lCProgID = '', $lCloneSourceID = 0)
 {
     //-------------------------------------------------------------------------
     //
     //-------------------------------------------------------------------------
     global $gstrFormatDatePicker, $gbDateFormatUS;
     if (!bTestForURLHack('adminOnly')) {
         return;
     }
     $this->load->helper('dl_util/verify_id');
     if ($lCProgID . '' != '0') {
         verifyID($this, $lCProgID, 'client program ID');
     }
     $displayData = array();
     $displayData['js'] = '';
     $displayData['lCProgID'] = $lCProgID = (int) $lCProgID;
     $displayData['bNew'] = $bNew = $lCProgID <= 0;
     $displayData['lCloneSourceID'] = $lCloneSourceID = (int) $lCloneSourceID;
     $displayData['bClone'] = $bClone = $lCloneSourceID > 0;
     //-------------------------
     // models & helpers
     //-------------------------
     $this->load->model('client_features/mcprograms', 'cprograms');
     $this->load->model('personalization/muser_fields', 'clsUF');
     $this->load->model('personalization/muser_schema', 'cUFSchema');
     $this->load->model('admin/mpermissions', 'perms');
     $this->load->helper('dl_util/time_date');
     // for date verification
     $this->load->helper('dl_util/util_db');
     $this->load->helper('personalization/validate_custom_verification');
     $params = array('enumStyle' => 'terse');
     $this->load->library('generic_rpt', $params);
     $this->load->helper('dl_util/web_layout');
     // load the client program
     if ($bClone) {
         $this->cprograms->loadClientProgramsViaCPID($lCloneSourceID);
         $displayData['strSourceProgName'] = $this->cprograms->cprogs[0]->strProgramName;
         $strBlockLabel = 'Clone Client Program';
     } else {
         $this->cprograms->loadClientProgramsViaCPID($lCProgID);
         $strBlockLabel = ($bNew ? 'Add New' : 'Update') . ' Client Program';
     }
     $displayData['strBlockLabel'] = $strBlockLabel;
     $cprog =& $this->cprograms->cprogs[0];
     //-------------------------
     // validation rules
     //-------------------------
     $this->form_validation->set_error_delimiters('<div class="formError">', '</div>');
     $this->form_validation->set_rules('txtProgramName', 'Program Name', 'trim|required|callback_verifyUniqueClientProg[' . $lCProgID . ']');
     $this->form_validation->set_rules('txtEnrollLabel', 'Enrollment Label', 'trim|required');
     $this->form_validation->set_rules('txtAttendLabel', 'Attendance Label', 'trim|required');
     $this->form_validation->set_rules('txtDescription', 'Description', 'trim');
     $this->form_validation->set_rules('chkHidden', 'Hidden', 'trim');
     $this->form_validation->set_rules('chkETableReadOnly', 'ETable Read Only', 'trim');
     $this->form_validation->set_rules('chkATableReadOnly', 'ATable Read Only', 'trim');
     $this->form_validation->set_rules('txtStartDate', 'Starting Date', 'trim|required' . '|callback_verifyDateValid');
     $this->form_validation->set_rules('txtEndDate', 'Ending Date', 'trim|required' . '|callback_verifyDateValid|callback_verifyCBH');
     $this->form_validation->set_rules('chkMentorMentee', 'Mentor/Mentee', 'trim');
     $this->form_validation->set_rules('txtE_VerificationModule', 'Enrollment Validation File', 'callback_verifyEVerMod');
     $this->form_validation->set_rules('txtE_VModEntryPoint', 'Enrollment Validation Entry Point', 'callback_verifyEVModEntry');
     $this->form_validation->set_rules('txtA_VerificationModule', 'Attendance Validation File', 'callback_verifyAVerMod');
     $this->form_validation->set_rules('txtA_VModEntryPoint', 'Attendance Validation Entry Point', 'callback_verifyAVModEntry');
     if ($this->form_validation->run() == FALSE) {
         $displayData['formData'] = new stdClass();
         $this->load->library('generic_form');
         // first time displayed, no user data entry errors
         if (validation_errors() == '') {
             if ($bClone) {
                 $cprog->strProgramName .= ' (clone)';
             }
             $displayData['formData']->txtProgramName = htmlspecialchars($cprog->strProgramName . '');
             $displayData['formData']->txtEnrollLabel = htmlspecialchars($cprog->strEnrollmentLabel . '');
             $displayData['formData']->txtAttendLabel = htmlspecialchars($cprog->strAttendanceLabel . '');
             $displayData['formData']->txtDescription = htmlspecialchars($cprog->strDescription . '');
             $displayData['formData']->bHidden = $cprog->bHidden;
             $displayData['formData']->bETableReadOnly = $cprog->bETableReadOnly;
             $displayData['formData']->bATableReadOnly = $cprog->bATableReadOnly;
             $displayData['formData']->txtE_VerificationModule = htmlspecialchars($cprog->strE_VerificationModule . '');
             $displayData['formData']->txtE_VModEntryPoint = htmlspecialchars($cprog->strE_VModEntryPoint . '');
             $displayData['formData']->txtA_VerificationModule = htmlspecialchars($cprog->strA_VerificationModule . '');
             $displayData['formData']->txtA_VModEntryPoint = htmlspecialchars($cprog->strA_VModEntryPoint . '');
             // mentor support
             $displayData['formData']->bMentorMentee = $cprog->bMentorMentee;
             if (is_null($cprog->dteMysqlStart)) {
                 $displayData['formData']->txtStartDate = '';
             } else {
                 $displayData['formData']->txtStartDate = strNumericDateViaMysqlDate($cprog->dteMysqlStart, $gbDateFormatUS);
             }
             if (is_null($cprog->dteMysqlEnd)) {
                 $displayData['formData']->txtEndDate = '';
             } else {
                 $displayData['formData']->txtEndDate = strNumericDateViaMysqlDate($cprog->dteMysqlEnd, $gbDateFormatUS);
             }
         } else {
             setOnFormError($displayData);
             $displayData['formData']->txtProgramName = set_value('txtProgramName');
             $displayData['formData']->txtDescription = set_value('txtDescription');
             $displayData['formData']->txtEnrollLabel = set_value('txtEnrollLabel');
             $displayData['formData']->txtAttendLabel = set_value('txtAttendLabel');
             $displayData['formData']->txtStartDate = set_value('txtStartDate');
             $displayData['formData']->txtEndDate = set_value('txtEndDate');
             $displayData['formData']->bHidden = set_value('chkHidden') == 'true';
             $displayData['formData']->bETableReadOnly = set_value('chkETableReadOnly') == 'true';
             $displayData['formData']->bATableReadOnly = set_value('chkATableReadOnly') == 'true';
             $displayData['formData']->txtE_VerificationModule = set_value('txtE_VerificationModule');
             $displayData['formData']->txtE_VModEntryPoint = set_value('txtE_VModEntryPoint');
             $displayData['formData']->txtA_VerificationModule = set_value('txtA_VerificationModule');
             $displayData['formData']->txtA_VModEntryPoint = set_value('txtA_VModEntryPoint');
             $displayData['formData']->bMentorMentee = set_value('chkMentorMentee') == 'true';
         }
         //--------------------------
         // breadcrumbs
         //--------------------------
         $displayData['pageTitle'] = anchor('main/menu/admin', 'Admin', 'class="breadcrumb"') . ' | ' . anchor('cprograms/cprograms/overview', 'Client Programs', 'class="breadcrumb"') . ' | ' . $strBlockLabel;
         $displayData['title'] = CS_PROGNAME . ' | Client Program';
         $displayData['nav'] = $this->mnav_brain_jar->navData();
         $displayData['mainTemplate'] = 'cprograms/cprog_add_edit_view';
         $this->load->vars($displayData);
         $this->load->view('template');
     } else {
         $cprog->strProgramName = trim($_POST['txtProgramName']);
         $cprog->strEnrollmentLabel = trim($_POST['txtEnrollLabel']);
         $cprog->strAttendanceLabel = trim($_POST['txtAttendLabel']);
         $cprog->strDescription = trim($_POST['txtDescription']);
         $cprog->bHidden = trim(@$_POST['chkHidden']) == 'true';
         $cprog->bETableReadOnly = trim(@$_POST['chkETableReadOnly']) == 'true';
         $cprog->bATableReadOnly = trim(@$_POST['chkATableReadOnly']) == 'true';
         $cprog->bMentorMentee = trim(@$_POST['chkMentorMentee']) == 'true';
         $cprog->strE_VerificationModule = trim($_POST['txtE_VerificationModule']);
         $cprog->strE_VModEntryPoint = trim($_POST['txtE_VModEntryPoint']);
         $cprog->strA_VerificationModule = trim($_POST['txtA_VerificationModule']);
         $cprog->strA_VModEntryPoint = trim($_POST['txtA_VModEntryPoint']);
         $strDate = trim($_POST['txtStartDate']);
         MDY_ViaUserForm($strDate, $lMon, $lDay, $lYear, $gbDateFormatUS);
         $cprog->dteMysqlStart = strMoDaYr2MySQLDate($lMon, $lDay, $lYear);
         $strDate = trim($_POST['txtEndDate']);
         MDY_ViaUserForm($strDate, $lMon, $lDay, $lYear, $gbDateFormatUS);
         $cprog->dteMysqlEnd = strMoDaYr2MySQLDate($lMon, $lDay, $lYear);
         //------------------------------------
         // update db tables and return
         //------------------------------------
         if ($bNew) {
             $this->load->model('personalization/muser_fields', 'clsUF');
             $this->load->model('personalization/muser_fields_create', 'clsUFC');
             $lCProgID = $this->cprograms->addNewCProgram();
             if ($bClone) {
                 $this->load->model('personalization/muser_fields', 'clsUF');
                 $this->load->model('personalization/muser_fields_create', 'clsUFC');
                 $this->load->model('personalization/muser_clone', 'cUFClone');
                 $this->cUFClone->cloneCProgram($lCloneSourceID, $lCProgID);
                 $this->session->set_flashdata('msg', 'Client program cloned');
             } else {
                 $this->session->set_flashdata('msg', 'New client program added');
             }
         } else {
             $this->cprograms->updateCProgram($lCProgID);
             $this->session->set_flashdata('msg', 'Client program record updated');
         }
         redirect('cprograms/cprog_record/view/' . $lCProgID);
     }
 }
 public function contact($lPID = '', $lHID = 0)
 {
     //-------------------------------------------------------------------------
     //
     //-------------------------------------------------------------------------
     global $gclsChapterACO, $gbDateFormatUS, $gbVolLogin, $gVolPerms, $glVolPeopleID, $glUserID;
     global $gstrDuplicateWarning;
     $gstrDuplicateWarning = '';
     if ($gbVolLogin) {
         $lPID = $glVolPeopleID;
     }
     $this->load->helper('dl_util/verify_id');
     if ($lPID . '' != '0') {
         verifyID($this, $lPID, 'people ID');
     }
     if ($lHID . '' != '0') {
         verifyID($this, $lHID, 'household ID');
     }
     $displayData = array();
     $displayData['formData'] = new stdClass();
     $displayData['lPID'] = $lPID = (int) $lPID;
     $displayData['bNew'] = $bNew = $lPID <= 0;
     $bExistingHousehold = $lHID > 0;
     if ($bNew) {
         if (!bTestForURLHack('dataEntryPeopleBizVol')) {
             return;
         }
     } else {
         $bOkayToEdit = bAllowAccess('dataEntryPeopleBizVol') || bAllowAccess('volEditContact');
         if (!$bOkayToEdit) {
             bTestForURLHack('forceFail');
             return;
         }
     }
     // models associated with the people record
     $this->load->model('people/mpeople', 'clsPeople');
     $this->load->model('admin/madmin_aco', 'clsACO');
     if (!$gbVolLogin) {
         $this->load->model('sponsorship/msponsorship', 'clsSpon');
         $this->load->model('donations/mdonations', 'clsGifts');
     }
     if ($bNew) {
         $this->load->model('util/mdup_checker', 'cDupChecker');
     }
     $this->load->helper('dl_util/time_date');
     $this->load->helper('dl_util/web_layout');
     //      $this->load->helper('dl_util/email_web');
     $this->load->library('util/dl_date_time', '', 'clsDateTime');
     //--------------------------
     // load people record
     //--------------------------
     $this->clsPeople->sqlWhereExtra = " AND pe_lKeyID = {$lPID} ";
     if ($gbVolLogin) {
         $this->clsPeople->loadPeople(false, false, true);
     } else {
         $this->clsPeople->loadPeople(true, true, true);
     }
     $people = $this->clsPeople->people[0];
     // validation rules
     $this->form_validation->set_error_delimiters('<div class="formError">', '</div>');
     $this->form_validation->set_rules('txtFName', 'First Name', 'trim|required');
     $this->form_validation->set_rules('txtTitle', '', 'trim');
     $this->form_validation->set_rules('txtMName', '', 'trim');
     $this->form_validation->set_rules('txtLName', 'Last Name', 'trim|required');
     $this->form_validation->set_rules('txtPName', '', 'trim');
     $this->form_validation->set_rules('txtSal', '', 'trim');
     $this->form_validation->set_rules('txtAddr1', '', 'trim');
     $this->form_validation->set_rules('txtAddr2', '', 'trim');
     $this->form_validation->set_rules('txtCity', '', 'trim');
     $this->form_validation->set_rules('txtState', '', 'trim');
     $this->form_validation->set_rules('txtZip', '', 'trim');
     $this->form_validation->set_rules('txtCountry', '', 'trim');
     $this->form_validation->set_rules('txtNotes', '', 'trim');
     $this->form_validation->set_rules('txtPhone', '', 'trim');
     $this->form_validation->set_rules('txtCell', '', 'trim');
     $this->form_validation->set_rules('rdoGender', '', 'trim');
     $this->form_validation->set_rules('txtBDate', '', 'trim|callback_peopleRecVerifyBDateValid' . '|callback_peopleRecVerifyBDatePast');
     if ($gbVolLogin) {
         $this->form_validation->set_rules('txtEmail', 'Email', 'trim|required|valid_email|callback_verifyUniqueUserID');
     } else {
         $this->form_validation->set_rules('txtEmail', 'Email', 'trim|valid_email');
         $this->form_validation->set_rules('rdoACO', '', 'trim');
         $this->form_validation->set_rules('ddlAttrib', 'Attributed to');
     }
     // test for duplicate people
     if ($bNew) {
         $this->form_validation->set_rules('hiddenTestDup', 'dummy', 'callback_verifyNoDups');
         $displayData['bHiddenNewTestDup'] = true;
     }
     if ($bNew) {
         $people->lHouseholdID = $lHID;
         if ($lHID <= 0) {
             $people->strHouseholdName = '<i>new</i>';
         } else {
             $people->strHouseholdName = $this->clsPeople->strHouseholdNameViaHID($lHID);
         }
     }
     if ($this->form_validation->run() == FALSE) {
         $displayData['js'] = '';
         $this->load->library('generic_form');
         $this->load->model('util/mlist_generic', 'clsList');
         $this->clsList->enumListType = CENUM_LISTTYPE_ATTRIB;
         $displayData['strDuplicateWarning'] = $gstrDuplicateWarning;
         if (validation_errors() == '') {
             if ($bNew) {
                 $displayData['formData']->strBDay = $displayData['formData']->txtTitle = $displayData['formData']->txtFName = $displayData['formData']->txtMName = $displayData['formData']->txtLName = $displayData['formData']->txtPName = $displayData['formData']->txtSal = $displayData['formData']->txtNotes = $displayData['formData']->txtEmail = $displayData['formData']->txtCell = '';
                 $displayData['formData']->enumGender = 'Unknown';
                 $displayData['formData']->dteMysqlBirthDate = '';
                 if ($bExistingHousehold) {
                     $clsHouse = new mpeople();
                     $clsHouse->loadPeopleViaPIDs($lHID, false, false);
                     $house = $clsHouse->people[0];
                     $displayData['formData']->txtAddr1 = htmlspecialchars($house->strAddr1);
                     $displayData['formData']->txtAddr2 = htmlspecialchars($house->strAddr2);
                     $displayData['formData']->txtCity = htmlspecialchars($house->strCity);
                     $displayData['formData']->txtState = htmlspecialchars($house->strState);
                     $displayData['formData']->txtZip = htmlspecialchars($house->strZip);
                     $displayData['formData']->txtCountry = htmlspecialchars($house->strCountry);
                     $displayData['formData']->txtPhone = htmlspecialchars($house->strPhone);
                     $lACO = $house->lACO;
                 } else {
                     $displayData['formData']->txtAddr1 = $displayData['formData']->txtAddr2 = $displayData['formData']->txtCity = $displayData['formData']->txtState = $displayData['formData']->txtZip = $displayData['formData']->txtCountry = $displayData['formData']->txtPhone = '';
                     $lACO = $gclsChapterACO->lKeyID;
                 }
                 if (!$gbVolLogin) {
                     $displayData['formData']->rdoACO = $this->clsACO->strACO_Radios($lACO, 'rdoACO');
                     $displayData['strAttribDDL'] = $this->clsList->strLoadListDDL('ddlAttrib', true, -1);
                 }
             } else {
                 $displayData['formData']->txtTitle = $people->strTitle;
                 $displayData['formData']->txtFName = htmlspecialchars($people->strFName);
                 $displayData['formData']->txtMName = htmlspecialchars($people->strMName);
                 $displayData['formData']->txtLName = htmlspecialchars($people->strLName);
                 $displayData['formData']->txtPName = htmlspecialchars($people->strPreferredName);
                 $displayData['formData']->txtSal = htmlspecialchars($people->strSalutation);
                 $displayData['formData']->txtNotes = htmlspecialchars($people->strNotes);
                 $displayData['formData']->txtAddr1 = htmlspecialchars($people->strAddr1);
                 $displayData['formData']->txtAddr2 = htmlspecialchars($people->strAddr2);
                 $displayData['formData']->txtCity = htmlspecialchars($people->strCity);
                 $displayData['formData']->txtState = htmlspecialchars($people->strState);
                 $displayData['formData']->txtZip = htmlspecialchars($people->strZip);
                 $displayData['formData']->txtCountry = htmlspecialchars($people->strCountry);
                 $displayData['formData']->txtEmail = htmlspecialchars($people->strEmail);
                 $displayData['formData']->txtPhone = htmlspecialchars($people->strPhone);
                 $displayData['formData']->txtCell = htmlspecialchars($people->strCell);
                 $displayData['formData']->enumGender = $people->enumGender;
                 if (is_null($people->dteMysqlBirthDate)) {
                     $displayData['formData']->strBDay = '';
                 } else {
                     $displayData['formData']->strBDay = strNumericDateViaMysqlDate($people->dteMysqlBirthDate, $gbDateFormatUS);
                 }
                 if (!$gbVolLogin) {
                     $displayData['formData']->rdoACO = $this->clsACO->strACO_Radios($people->lACO, 'rdoACO');
                     $displayData['strAttribDDL'] = $this->clsList->strLoadListDDL('ddlAttrib', true, $people->lAttributedTo);
                 }
             }
         } else {
             setOnFormError($displayData);
             $displayData['formData']->txtTitle = set_value('txtTitle');
             $displayData['formData']->txtFName = set_value('txtFName');
             $displayData['formData']->txtMName = set_value('txtMName');
             $displayData['formData']->txtLName = set_value('txtLName');
             $displayData['formData']->txtPName = set_value('txtPName');
             $displayData['formData']->txtSal = set_value('txtSal');
             $displayData['formData']->txtNotes = set_value('txtNotes');
             $displayData['formData']->txtAddr1 = set_value('txtAddr1');
             $displayData['formData']->txtAddr2 = set_value('txtAddr2');
             $displayData['formData']->txtCity = set_value('txtCity');
             $displayData['formData']->txtState = set_value('txtState');
             $displayData['formData']->txtZip = set_value('txtZip');
             $displayData['formData']->txtCountry = set_value('txtCountry');
             $displayData['formData']->txtEmail = set_value('txtEmail');
             $displayData['formData']->txtPhone = set_value('txtPhone');
             $displayData['formData']->txtCell = set_value('txtCell');
             $displayData['formData']->enumGender = set_value('rdoGender');
             $displayData['formData']->strBDay = set_value('txtBDate');
             if (!$gbVolLogin) {
                 $displayData['formData']->rdoACO = $this->clsACO->strACO_Radios(set_value('rdoACO'), 'rdoACO');
                 $displayData['strAttribDDL'] = $this->clsList->strLoadListDDL('ddlAttrib', true, set_value('ddlAttrib'));
             }
         }
         $displayData['people'] = $people;
         //--------------------------
         // breadcrumbs
         //--------------------------
         if ($gbVolLogin) {
             $displayData['pageTitle'] = anchor('people/people_record/view/' . $lPID, 'Record', 'class="breadcrumb"') . ' | Edit';
         } else {
             $displayData['pageTitle'] = anchor('main/menu/people', 'People', 'class="breadcrumb"') . ' | ' . ($bNew ? 'Record' : anchor('people/people_record/view/' . $lPID, 'Record', 'class="breadcrumb"')) . ' | ' . ($bNew ? 'Add New' : 'Edit');
         }
         $displayData['title'] = CS_PROGNAME . ' | People';
         $displayData['nav'] = $this->mnav_brain_jar->navData();
         $displayData['mainTemplate'] = 'people/people_add_edit_view';
         $this->load->vars($displayData);
         $this->load->view('template');
     } else {
         $this->load->model('personalization/muser_fields', 'clsUF');
         $this->load->model('personalization/muser_fields_create', 'clsUFC');
         $this->load->model('admin/mpermissions', 'perms');
         $this->load->helper('dl_util/util_db');
         $people =& $this->clsPeople->people[0];
         $people->lHouseholdID = (int) $lHID;
         $people->strTitle = trim($_POST['txtTitle']);
         $people->strFName = trim($_POST['txtFName']);
         $people->strMName = trim($_POST['txtMName']);
         $people->strLName = trim($_POST['txtLName']);
         $people->strPreferredName = trim($_POST['txtPName']);
         $people->strSalutation = trim($_POST['txtSal']);
         $people->strNotes = trim($_POST['txtNotes']);
         if ($people->strPreferredName == '') {
             $people->strPreferredName = $people->strFName;
         }
         if ($people->strSalutation == '') {
             $people->strSalutation = $people->strFName;
         }
         $people->strAddr1 = trim($_POST['txtAddr1']);
         $people->strAddr2 = trim($_POST['txtAddr2']);
         $people->strCity = trim($_POST['txtCity']);
         $people->strState = trim($_POST['txtState']);
         $people->strZip = trim($_POST['txtZip']);
         $people->strCountry = trim($_POST['txtCountry']);
         if ($gbVolLogin) {
             $strOriginalEmail = $people->strEmail;
         }
         $people->strEmail = trim($_POST['txtEmail']);
         $people->strPhone = trim($_POST['txtPhone']);
         $people->strCell = trim($_POST['txtCell']);
         $people->enumGender = trim($_POST['rdoGender']);
         if ($gbVolLogin) {
             $this->load->model('admin/muser_accts', 'clsUser');
             $this->clsUser->updateUserAcctViaPeopleInfo($glUserID, $people);
         }
         if (!$gbVolLogin) {
             $people->lACO = (int) $_POST['rdoACO'];
             $lAttrib = (int) $_REQUEST['ddlAttrib'];
             if ($lAttrib <= 0) {
                 $people->lAttributedTo = null;
             } else {
                 $people->lAttributedTo = $lAttrib;
             }
         }
         $strBDate = trim($_POST['txtBDate']);
         if ($strBDate == '') {
             $people->dteMysqlBirthDate = null;
         } else {
             MDY_ViaUserForm($strBDate, $lMon, $lDay, $lYear, $gbDateFormatUS);
             $people->dteMysqlBirthDate = strMoDaYr2MySQLDate($lMon, $lDay, $lYear);
         }
         if ($bNew) {
             $people->dteExpire = $people->dteMysqlDeath = null;
             $lPID = $this->clsPeople->lCreateNewPeopleRec();
             $this->session->set_flashdata('msg', 'The people record was added');
         } else {
             $this->clsPeople->updatePeopleRec($lPID);
             if ($gbVolLogin) {
                 $this->session->set_flashdata('msg', 'Your contact information was updated.');
             } else {
                 $this->session->set_flashdata('msg', 'The people record was updated');
             }
         }
         redirect('people/people_record/view/' . $lPID);
     }
 }
 function addEditVol($lVolID = '0')
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     global $gbVolMgr, $gbDateFormatUS, $glChapterID, $glUserID;
     global $gbVolLogin;
     if ($gbVolLogin) {
         $this->load->model('admin/mpermissions', 'perms');
         $this->load->model('admin/muser_accts', 'cusers');
         if ($lVolID != $this->cusers->lVolIDViaUserID($glUserID)) {
             bTestForURLHack('forceFail');
             return;
         }
     } elseif (!bTestForURLHack('volMgr')) {
         return;
     }
     $this->load->helper('dl_util/verify_id');
     if ($lVolID != '0') {
         verifyID($glChapterID, $lVolID, 'volunteer ID');
     }
     $displayData = array();
     $displayData['js'] = '';
     $displayData['formData'] = new stdClass();
     $displayData['lVolID'] = $lVolID = (int) $lVolID;
     $displayData['bNew'] = $bNew = $lVolID <= 0;
     //------------------------------------------------
     // models, libraries and utilities
     //------------------------------------------------
     $this->load->model('vols/mvol', 'cVol');
     $this->load->model('admin/mpermissions', 'perms');
     $this->load->model('admin/muser_accts', 'cusers');
     $this->load->helper('dl_util/time_date');
     $this->load->helper('dl_util/web_layout');
     $this->load->library('util/dl_date_time', '', 'clsDateTime');
     // load volunteer record
     $this->cVol->loadVolRecsViaVolID($lVolID, true);
     $vRec =& $this->cVol->volRecs[0];
     // account ID
     if ($bNew) {
         $lAcctID = -1;
     } else {
         $lAcctID = $this->cusers->lUserIDViaUserName($vRec->strEmail);
     }
     // validation rules
     $this->form_validation->set_error_delimiters('<div class="formError">', '</div>');
     $this->form_validation->set_rules('txtFName', 'First Name', 'trim|required');
     $this->form_validation->set_rules('txtTitle', '', 'trim');
     $this->form_validation->set_rules('txtMName', '', 'trim');
     $this->form_validation->set_rules('txtLName', 'Last Name', 'trim|required');
     $this->form_validation->set_rules('txtPName', '', 'trim');
     $this->form_validation->set_rules('txtSal', '', 'trim');
     $this->form_validation->set_rules('txtAddr1', '', 'trim');
     $this->form_validation->set_rules('txtAddr2', '', 'trim');
     $this->form_validation->set_rules('txtCity', '', 'trim');
     $this->form_validation->set_rules('txtState', '', 'trim');
     $this->form_validation->set_rules('txtZip', '', 'trim');
     $this->form_validation->set_rules('txtCountry', '', 'trim');
     $this->form_validation->set_rules('txtNotes', '', 'trim');
     $this->form_validation->set_rules('txtPhone', '', 'trim');
     $this->form_validation->set_rules('txtCell', '', 'trim');
     //      $this->form_validation->set_rules('rdoGender',      '',  'trim');
     $this->form_validation->set_rules('txtBDate', '', 'trim|callback_peopleRecVerifyBDateValid' . '|callback_peopleRecVerifyBDatePast');
     $this->form_validation->set_rules('txtEmail', 'Email', 'trim|required|valid_email|callback_verifyUniqueAcct[' . $lAcctID . ']');
     $this->form_validation->set_rules('rdoACO', '', 'trim');
     $this->form_validation->set_rules('ddlAttrib', 'Attributed to');
     if ($bNew) {
         $this->form_validation->set_rules('txtPWord1', 'Password', 'trim|required');
         $this->form_validation->set_rules('txtPWord2', 'Password (again)', 'trim|required|callback_verifyPWordMatch');
     }
     if ($this->form_validation->run() == FALSE) {
         $displayData['js'] = '';
         $this->load->library('generic_form');
         $this->load->model('util/mlist_generic', 'clsList');
         $this->clsList->enumListType = CENUM_LISTTYPE_ATTRIB;
         if (validation_errors() == '') {
             if (!isset($vRec->mdteBirthDate)) {
                 $vRec->mdteBirthDate = null;
             }
             if (is_null($vRec->mdteBirthDate)) {
                 $displayData['formData']->txtBDate = '';
             } else {
                 $displayData['formData']->txtBDate = strNumericDateViaMysqlDate($vRec->mdteBirthDate, $gbDateFormatUS);
             }
             if ($bNew) {
                 $displayData['formData']->strBDay = $displayData['formData']->txtTitle = $displayData['formData']->txtFName = $displayData['formData']->txtMName = $displayData['formData']->txtLName = $displayData['formData']->txtPName = $displayData['formData']->txtSal = $displayData['formData']->txtNotes = $displayData['formData']->txtEmail = $displayData['formData']->txtCell = '';
                 //               $displayData['formData']->dteMysqlBirthDate = '';
                 $displayData['formData']->txtAddr1 = $displayData['formData']->txtAddr2 = $displayData['formData']->txtCity = $displayData['formData']->txtState = $displayData['formData']->txtZip = $displayData['formData']->txtCountry = $displayData['formData']->txtPhone = '';
                 $displayData['strAttribDDL'] = $this->clsList->strLoadListDDL($glChapterID, 'ddlAttrib', true, -1);
                 $displayData['formData']->txtPWord1 = $displayData['formData']->txtPWord2 = $displayData['formData']->txtAcct = '';
             } else {
                 $displayData['formData']->strBDay = htmlspecialchars($vRec->mdteBirthDate);
                 $displayData['formData']->txtTitle = htmlspecialchars($vRec->strTitle);
                 $displayData['formData']->txtFName = htmlspecialchars($vRec->strFName);
                 $displayData['formData']->txtMName = htmlspecialchars($vRec->strMName);
                 $displayData['formData']->txtLName = htmlspecialchars($vRec->strLName);
                 $displayData['formData']->txtPName = htmlspecialchars($vRec->strPreferred);
                 $displayData['formData']->txtNotes = htmlspecialchars($vRec->strNotes);
                 $displayData['formData']->txtEmail = htmlspecialchars($vRec->strEmail);
                 $displayData['formData']->txtCell = htmlspecialchars($vRec->strCell);
                 $displayData['formData']->txtPhone = htmlspecialchars($vRec->strPhone);
                 $displayData['formData']->txtAddr1 = htmlspecialchars($vRec->strAddr1);
                 $displayData['formData']->txtAddr2 = htmlspecialchars($vRec->strAddr2);
                 $displayData['formData']->txtCity = htmlspecialchars($vRec->strCity);
                 $displayData['formData']->txtState = htmlspecialchars($vRec->strState);
                 $displayData['formData']->txtZip = htmlspecialchars($vRec->strZip);
                 $displayData['formData']->txtCountry = htmlspecialchars($vRec->strCountry);
                 $displayData['strAttribDDL'] = $this->clsList->strLoadListDDL($glChapterID, 'ddlAttrib', true, $vRec->lAttributedTo);
             }
         } else {
             setOnFormError($displayData);
             $displayData['formData']->txtTitle = set_value('txtTitle');
             $displayData['formData']->txtFName = set_value('txtFName');
             $displayData['formData']->txtMName = set_value('txtMName');
             $displayData['formData']->txtLName = set_value('txtLName');
             $displayData['formData']->txtPName = set_value('txtPName');
             $displayData['formData']->txtSal = set_value('txtSal');
             $displayData['formData']->txtNotes = set_value('txtNotes');
             $displayData['formData']->txtAddr1 = set_value('txtAddr1');
             $displayData['formData']->txtAddr2 = set_value('txtAddr2');
             $displayData['formData']->txtCity = set_value('txtCity');
             $displayData['formData']->txtState = set_value('txtState');
             $displayData['formData']->txtZip = set_value('txtZip');
             $displayData['formData']->txtCountry = set_value('txtCountry');
             $displayData['formData']->txtEmail = set_value('txtEmail');
             $displayData['formData']->txtPhone = set_value('txtPhone');
             $displayData['formData']->txtCell = set_value('txtCell');
             //            $displayData['formData']->enumGender        = set_value('rdoGender');
             $displayData['formData']->txtBDate = set_value('txtBDate');
             $displayData['strAttribDDL'] = $this->clsList->strLoadListDDL($glChapterID, 'ddlAttrib', true, set_value('ddlAttrib'));
             $displayData['formData']->txtPWord1 = set_value('txtPWord1');
             $displayData['formData']->txtPWord2 = set_value('txtPWord2');
             $displayData['formData']->txtAcct = set_value('txtAcct');
         }
         //--------------------------
         // breadcrumbs
         //--------------------------
         $displayData['pageTitle'] = ($bNew ? 'Add New' : 'Update') . ' Volunteer Record';
         $displayData['title'] = CS_PROGNAME . ' | Volunteers';
         $displayData['nav'] = $this->mnav_brain_jar->navData();
         $displayData['mainTemplate'] = 'hospice/vols/vol_add_edit_view';
         $this->load->vars($displayData);
         $this->load->view('template');
     } else {
         $this->load->model('admin/mpermissions', 'perms');
         $this->load->model('admin/muser_accts', 'cusers');
         $this->load->helper('dl_util/util_db');
         $vRec->strTitle = trim($_POST['txtTitle']);
         $vRec->strFName = trim($_POST['txtFName']);
         $vRec->strMName = trim($_POST['txtMName']);
         $vRec->strLName = trim($_POST['txtLName']);
         $vRec->strPreferredName = trim($_POST['txtPName']);
         $vRec->strNotes = trim($_POST['txtNotes']);
         if ($vRec->strPreferredName == '') {
             $vRec->strPreferredName = $vRec->strFName;
         }
         $vRec->strAddr1 = trim($_POST['txtAddr1']);
         $vRec->strAddr2 = trim($_POST['txtAddr2']);
         $vRec->strCity = trim($_POST['txtCity']);
         $vRec->strState = trim($_POST['txtState']);
         $vRec->strZip = trim($_POST['txtZip']);
         $vRec->strCountry = trim($_POST['txtCountry']);
         $vRec->strEmail = trim($_POST['txtEmail']);
         $vRec->strPhone = trim($_POST['txtPhone']);
         $vRec->strCell = trim($_POST['txtCell']);
         //         $vRec->enumGender      = trim($_POST['rdoGender']);
         $lAttrib = (int) $_REQUEST['ddlAttrib'];
         if ($lAttrib <= 0) {
             $vRec->lAttributedTo = null;
         } else {
             $vRec->lAttributedTo = $lAttrib;
         }
         $strBDate = trim($_POST['txtBDate']);
         if ($strBDate == '') {
             $vRec->dteMysqlBirthDate = null;
         } else {
             MDY_ViaUserForm($strBDate, $lMon, $lDay, $lYear, $gbDateFormatUS);
             $vRec->dteMysqlBirthDate = strMoDaYr2MySQLDate($lMon, $lDay, $lYear);
         }
         if ($bNew) {
             $lVolID = $this->cVol->lAddNewVolunteer();
             $this->addVolAcct($lVolID, $vRec);
         } else {
             $this->cVol->updateVolunteerRec($lVolID);
             $this->cusers->updateUserNameViaID($lAcctID, $vRec->strEmail);
         }
         $this->session->set_flashdata('msg', 'The volunteer record was ' . ($bNew ? 'added' : 'updated'));
         redirect('hospice/vols/vol_record/viewRec/' . $lVolID);
     }
 }
function displayMRField(&$clsRpt, &$ufield, &$mRec, $bCollapseHeadings, $bCollapseDefaultHide, $clientNames)
{
    //---------------------------------------------------------------------
    //
    //---------------------------------------------------------------------
    global $gbDateFormatUS;
    $enumType = $ufield->enumFieldType;
    $strFN = $ufield->strFieldNameInternal;
    if ($enumType == CS_FT_HEADING) {
        echoT($clsRpt->openDivBlock(htmlspecialchars($ufield->pff_strFieldNameUser), $bCollapseHeadings, $bCollapseDefaultHide, $strFN, $strFN . 'Img', null));
        return;
    }
    $vValue = @$mRec->{$strFN};
    $strCell = '';
    switch ($enumType) {
        case CS_FT_CHECKBOX:
            $strCell = '<img src="' . ($vValue ? IMGLINK_CHECKON : IMGLINK_CHECKOFF) . '">';
            break;
        case CS_FT_DATE:
            if ($vValue == '') {
                $strCell = 'n/a';
            } else {
                $strCell = strNumericDateViaMysqlDate($vValue, $gbDateFormatUS);
            }
            break;
        case CS_FT_TEXTLONG:
            $strCell = nl2br(htmlspecialchars($vValue));
            break;
        case CS_FT_TEXT255:
        case CS_FT_TEXT80:
        case CS_FT_TEXT20:
            $strCell = htmlspecialchars($vValue);
            break;
        case CS_FT_CLIENTID:
            if ($vValue == '') {
                $strCell = '&nbsp;';
            } else {
                $lClientID = (int) $vValue;
                if ($lClientID > 0) {
                    $strCell = number_format($vValue) . '&nbsp;' . strLinkView_ClientRecord($lClientID, 'View client record', true) . '&nbsp;' . htmlspecialchars($clientNames[$lClientID]);
                } else {
                    $strCell = '&nbsp;';
                }
            }
            break;
        case CS_FT_INTEGER:
            if ($vValue == '') {
                $strCell = '&nbsp;';
            } else {
                $strCell = number_format($vValue);
            }
            break;
        case CS_FT_HEADING:
            break;
        case CS_FT_CURRENCY:
            if ($vValue == '') {
                $strCell = '&nbsp;';
            } else {
                $strCell = number_format($vValue, 2);
            }
            break;
        case CS_FT_DDL:
            $strFNDDL = $strFN . '_ddlText';
            $strCell = htmlspecialchars($mRec->{$strFNDDL});
            break;
        case CS_FT_DDLMULTI:
            $strDDLTextFN = $strFN . '_ddlMulti';
            $md = $mRec->{$strDDLTextFN};
            $strCell = $md->strUL;
            break;
        case CS_FT_LOG:
            $strCell = nl2br(htmlspecialchars($vValue));
            break;
        default:
            screamForHelp($enumType . ': invalid field type<br>error on line ' . __LINE__ . ',<br>file ' . __FILE__ . ',<br>function ' . __FUNCTION__);
            break;
    }
    echoT($clsRpt->openRow() . $clsRpt->writeLabel(htmlspecialchars($ufield->pff_strFieldNameUser) . ':') . $clsRpt->writeCell($strCell) . $clsRpt->closeRow());
}
 function setDateOptions(&$term)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     global $gbDateFormatUS;
     $term->strDteCompVal = strNumericDateViaMysqlDate($term->mdteCompVal, $gbDateFormatUS);
     $term->ddlCompare = array();
     $term->ddlCompare[0] = new stdClass();
     $term->ddlCompare[0]->name = CS_SRCH_DEQ;
     $term->ddlCompare[0]->bSel = $term->lCompareOpt == CL_SRCH_DEQ;
     $term->ddlCompare[0]->optVal = CL_SRCH_DEQ;
     $term->ddlCompare[1] = new stdClass();
     $term->ddlCompare[1]->name = CS_SRCH_DNEQ;
     $term->ddlCompare[1]->bSel = $term->lCompareOpt == CL_SRCH_DNEQ;
     $term->ddlCompare[1]->optVal = CL_SRCH_DNEQ;
     $term->ddlCompare[2] = new stdClass();
     $term->ddlCompare[2]->name = CS_SRCH_DGT;
     $term->ddlCompare[2]->bSel = $term->lCompareOpt == CL_SRCH_DGT;
     $term->ddlCompare[2]->optVal = CL_SRCH_DGT;
     $term->ddlCompare[3] = new stdClass();
     $term->ddlCompare[3]->name = CS_SRCH_DGE;
     $term->ddlCompare[3]->bSel = $term->lCompareOpt == CL_SRCH_DGE;
     $term->ddlCompare[3]->optVal = CL_SRCH_DGE;
     $term->ddlCompare[4] = new stdClass();
     $term->ddlCompare[4]->name = CS_SRCH_DLT;
     $term->ddlCompare[4]->bSel = $term->lCompareOpt == CL_SRCH_DLT;
     $term->ddlCompare[4]->optVal = CL_SRCH_DLT;
     $term->ddlCompare[5] = new stdClass();
     $term->ddlCompare[5]->name = CS_SRCH_DLE;
     $term->ddlCompare[5]->bSel = $term->lCompareOpt == CL_SRCH_DLE;
     $term->ddlCompare[5]->optVal = CL_SRCH_DLE;
 }
 public function addEditPatientVisit($lVolID, $lPVRecID = 0, $lPatientID = 0)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     global $glChapterID, $gbVolMgr, $gbDateFormatUS, $gstrFormatDatePicker;
     $this->load->helper('dl_util/verify_id');
     verifyID($glChapterID, $lPatientID, 'patient ID');
     verifyID($glChapterID, $lVolID, 'volunteer ID');
     if ($lPVRecID != 0) {
         verifyID($glChapterID, $lPVRecID, 'patientVisit ID');
     }
     $displayData = array();
     $displayData['formData'] = new stdClass();
     $displayData['lVolID'] = $lVolID = (int) $lVolID;
     $displayData['lPVRecID'] = $lPVRecID = (int) $lPVRecID;
     $displayData['lPatientID'] = $lPatientID = (int) $lPatientID;
     $displayData['bNew'] = $bNew = $lPVRecID <= 0;
     //----------------------------------------------
     // models / helpers
     //----------------------------------------------
     $this->load->library('util/dl_date_time', '', 'clsDateTime');
     $this->load->model('patients/mpatients', 'cPatients');
     $this->load->model('vols/mvol', 'cVol');
     $this->load->model('util/mlist_generic', 'cList');
     $this->load->model('hospice/mhospice_pvisit', 'cPVisit');
     $this->load->helper('dl_util/web_layout');
     $this->load->helper('dl_util/time_date');
     $this->load->helper('hospice/patient_visit');
     $this->load->helper('hospice/hospice_util');
     $this->cVol->loadVolClientAssocViaVolID($lVolID, $volClients, false);
     if (!hospiceUtil\bVerifyVolClientAssoc($lVolID, $lPatientID, $volClients, $lVCIDX)) {
         $this->session->set_flashdata('error', 'Invalid volunteer/patient association. Please contact your volunteer manager.');
         redirect('hospice/hospice_error/error');
         return;
     }
     // load patient record
     $this->cPatients->loadPatientsViaPatientID($lPatientID);
     $displayData['patient'] =& $this->cPatients->patients[0];
     // load volunteer record
     $this->cVol->loadVolRecsViaVolID($lVolID, false);
     $displayData['volRec'] = $volRec =& $this->cVol->volRecs[0];
     // load patient visit record
     $this->cPVisit->loadPVisitsViaVisitID($lPVRecID, $lNumPVRecs, $pVisits);
     $displayData['pVisit'] = $pVisit =& $pVisits[0];
     // validation rules
     $this->form_validation->set_error_delimiters('<div class="formError">', '</div>');
     $this->form_validation->set_rules('txtMedRecNum', '<b>Medical Record Number</b>', 'trim|required');
     $this->form_validation->set_rules('ddlDuration', '', 'trim|callback_verifyDurationDDL');
     $this->form_validation->set_rules('ddlStart', '', 'trim|callback_verifyStartTimeDDL');
     $this->form_validation->set_rules('txtDateOfVisit', '<b>Visit Date</b>', 'trim|required|callback_verifyVisitDate');
     // person served
     $this->form_validation->set_rules('chkPS_Patient');
     $this->form_validation->set_rules('chkPS_Caregiver');
     $this->form_validation->set_rules('chkPS_Bereaved');
     $this->form_validation->set_rules('chkPS_Other');
     $this->form_validation->set_rules('txtPS_Notes', '', 'trim|callback_verifyPS');
     // location
     $this->form_validation->set_rules('ddlLocation', '', 'trim|callback_verifyLocation');
     $this->form_validation->set_rules('txtLocationNotes', '', 'trim|callback_verifyLocationNotes');
     // Activity
     $this->form_validation->set_rules('ddlActivity', '', 'trim|callback_verifyActivity');
     $this->form_validation->set_rules('txtActivityNotes', '', 'trim|callback_verifyActivityNotes');
     // Interventions
     $this->form_validation->set_rules('chkI_Companionship');
     $this->form_validation->set_rules('chkI_CaregiverRelief');
     $this->form_validation->set_rules('chkI_EmotionalSupport');
     $this->form_validation->set_rules('chkI_Socialization');
     $this->form_validation->set_rules('chkI_Bereavement');
     $this->form_validation->set_rules('chkI_TelephoneCall');
     $this->form_validation->set_rules('chkI_ExcursionErrands');
     $this->form_validation->set_rules('chkI_MusicPetArtSupport');
     $this->form_validation->set_rules('chkI_FoodPreparation');
     $this->form_validation->set_rules('chkI_HouseholdChores');
     $this->form_validation->set_rules('chkI_OtherIntervention');
     $this->form_validation->set_rules('txtI_Notes', '', 'trim|callback_verifyIntervention');
     // Visit Info
     $this->form_validation->set_rules('ddlM_PatientStatus', '', 'callback_verifyPatientStatus');
     $this->form_validation->set_rules('ddlM_VisitTasks', '', 'callback_verifyVisitTasks');
     $this->form_validation->set_rules('txtVisitNotes', '', 'trim|callback_verifyVisitNotes');
     $this->form_validation->set_rules('chkTSK_Visitors');
     $this->form_validation->set_rules('txtTSKPatientComfort', '<b>Patient Comfort</b>', 'trim|required');
     $this->form_validation->set_rules('txtTSKPatientPain');
     $this->form_validation->set_rules('txtTSKPatientConcerns');
     if ($this->form_validation->run() == FALSE) {
         $matchIDs_PStatus = array();
         $matchIDs_VTasks = array();
         $displayData['js'] = '';
         $this->load->library('generic_form');
         if (validation_errors() == '') {
             if ($bNew) {
                 $displayData['formData']->txtDateOfVisit = $displayData['formData']->txtMedRecNum = '';
                 $displayData['formData']->ddlDuration = pvisit\strDurationDDL(-1, true, 'ddlDuration', 'dur');
                 $displayData['formData']->ddlStart = pvisit\strTimeDDL(-1, true, 'ddlStart', 'start');
                 // person served
                 $displayData['formData']->ps_bPatient = $displayData['formData']->ps_bCaregiver = $displayData['formData']->ps_bBereaved = $displayData['formData']->ps_bOther = false;
                 $displayData['formData']->ps_txtNotes = '';
                 // location
                 $this->cList->enumListType = CENUM_LISTTYPE_PV_LOCATIONS;
                 $displayData['formData']->ddlLocation = $this->cList->strLoadListDDL($glChapterID, 'ddlLocation', true, -1);
                 $displayData['formData']->txtLocationNotes = '';
                 // Activity
                 $this->cList->enumListType = CENUM_LISTTYPE_PV_ACTIVITIES;
                 $displayData['formData']->ddlActivity = $this->cList->strLoadListDDL($glChapterID, 'ddlActivity', true, -1);
                 $displayData['formData']->txtActivityNotes = '';
                 // Interventions
                 $displayData['formData']->i_bCompanionship = $displayData['formData']->i_bCaregiverRelief = $displayData['formData']->i_bEmotionalSupport = $displayData['formData']->i_bSocialization = $displayData['formData']->i_bBereavement = $displayData['formData']->i_bTelephoneCall = $displayData['formData']->i_bExcursionErrands = $displayData['formData']->i_bMusicPetArtSupport = $displayData['formData']->i_bFoodPreparation = $displayData['formData']->i_bHouseholdChores = $displayData['formData']->i_bOtherIntervention = false;
                 $displayData['formData']->txtI_Notes = '';
                 // Visit Info
                 $this->cList->enumListType = CENUM_LISTTYPE_PV_PSTATUS;
                 $displayData['formData']->ddlM_PatientStatus = $this->cList->strLoadListMultiDDL($glChapterID, 'ddlM_PatientStatus', 5, true, $matchIDs_PStatus);
                 $this->cList->enumListType = CENUM_LISTTYPE_PV_VISITTASKS;
                 $displayData['formData']->ddlM_VisitTasks = $this->cList->strLoadListMultiDDL($glChapterID, 'ddlM_VisitTasks', 5, true, $matchIDs_VTasks);
                 $displayData['formData']->txtVisitNotes = '';
                 $displayData['formData']->TSK_bVisitors = false;
                 $displayData['formData']->txtTSKPatientComfort = '';
                 $displayData['formData']->txtTSKPatientPain = '';
                 $displayData['formData']->txtTSKPatientConcerns = '';
             } else {
                 $displayData['formData']->txtDateOfVisit = strNumericDateViaMysqlDate($pVisit->mdteVisit, $gbDateFormatUS);
                 $displayData['formData']->txtMedRecNum = htmlspecialchars($pVisit->strMedRec);
                 $displayData['formData']->ddlDuration = pvisit\strDurationDDL($pVisit->lDuration, true, 'ddlDuration', 'dur');
                 $displayData['formData']->ddlStart = pvisit\strTimeDDL($pVisit->lStartTime, true, 'ddlStart', 'start');
                 // person served
                 $displayData['formData']->ps_bPatient = $pVisit->ps_bPatient;
                 $displayData['formData']->ps_bCaregiver = $pVisit->ps_bCaregiver;
                 $displayData['formData']->ps_bBereaved = $pVisit->ps_bBereaved;
                 $displayData['formData']->ps_bOther = $pVisit->ps_bOther;
                 $displayData['formData']->ps_txtNotes = htmlspecialchars($pVisit->ps_strNotes);
                 // location
                 $this->cList->enumListType = CENUM_LISTTYPE_PV_LOCATIONS;
                 $displayData['formData']->ddlLocation = $this->cList->strLoadListDDL($glChapterID, 'ddlLocation', true, $pVisit->loc_lLocationID);
                 $displayData['formData']->txtLocationNotes = htmlspecialchars($pVisit->loc_strNotes);
                 // Activity
                 $this->cList->enumListType = CENUM_LISTTYPE_PV_ACTIVITIES;
                 $displayData['formData']->ddlActivity = $this->cList->strLoadListDDL($glChapterID, 'ddlActivity', true, $pVisit->act_lActivityID);
                 $displayData['formData']->txtActivityNotes = htmlspecialchars($pVisit->act_strNotes);
                 // Interventions
                 $displayData['formData']->i_bCompanionship = $pVisit->in_bCompanionship;
                 $displayData['formData']->i_bCaregiverRelief = $pVisit->in_bCaregiverRelief;
                 $displayData['formData']->i_bEmotionalSupport = $pVisit->in_bEmotionalSupport;
                 $displayData['formData']->i_bSocialization = $pVisit->in_bSocialization;
                 $displayData['formData']->i_bBereavement = $pVisit->in_bBereavement;
                 $displayData['formData']->i_bTelephoneCall = $pVisit->in_bTelephoneCall;
                 $displayData['formData']->i_bExcursionErrands = $pVisit->in_bExcursionErrands;
                 $displayData['formData']->i_bMusicPetArtSupport = $pVisit->in_bMusicPetArt;
                 $displayData['formData']->i_bFoodPreparation = $pVisit->in_bFoodPrep;
                 $displayData['formData']->i_bHouseholdChores = $pVisit->in_bHouseholdChores;
                 $displayData['formData']->i_bOtherIntervention = $pVisit->in_bOther;
                 $displayData['formData']->txtI_Notes = htmlspecialchars($pVisit->in_strNotes);
                 // Visit Info
                 $this->cList->enumListType = CENUM_LISTTYPE_PV_PSTATUS;
                 $displayData['formData']->ddlM_PatientStatus = $this->cList->strLoadListMultiDDL($glChapterID, 'ddlM_PatientStatus', 5, true, $pVisit->status->IDs);
                 $this->cList->enumListType = CENUM_LISTTYPE_PV_VISITTASKS;
                 $displayData['formData']->ddlM_VisitTasks = $this->cList->strLoadListMultiDDL($glChapterID, 'ddlM_VisitTasks', 5, true, $pVisit->tasks->IDs);
                 $displayData['formData']->txtVisitNotes = htmlspecialchars($pVisit->tsk_strOtherNotes);
                 $displayData['formData']->TSK_bVisitors = $pVisit->tsk_bVisitors;
                 $displayData['formData']->txtTSKPatientComfort = htmlspecialchars($pVisit->tsk_strPatientComfort);
                 $displayData['formData']->txtTSKPatientPain = htmlspecialchars($pVisit->tsk_strPatientPain);
                 $displayData['formData']->txtTSKPatientConcerns = htmlspecialchars($pVisit->tsk_strChangesConcerns);
             }
         } else {
             setOnFormError($displayData);
             $displayData['formData']->txtDateOfVisit = set_value('txtDateOfVisit');
             $displayData['formData']->txtMedRecNum = set_value('txtMedRecNum');
             $displayData['formData']->ddlDuration = pvisit\strDurationDDL(set_value('ddlDuration'), true, 'ddlDuration', 'dur');
             $displayData['formData']->ddlStart = pvisit\strTimeDDL(set_value('ddlStart'), true, 'ddlStart', 'start');
             // person served
             $displayData['formData']->ps_bPatient = set_value('chkPS_Patient') == 'TRUE';
             $displayData['formData']->ps_bCaregiver = set_value('chkPS_Caregiver') == 'TRUE';
             $displayData['formData']->ps_bBereaved = set_value('chkPS_Bereaved') == 'TRUE';
             $displayData['formData']->ps_bOther = set_value('chkPS_Other') == 'TRUE';
             $displayData['formData']->ps_txtNotes = set_value('txtPS_Notes');
             // location
             $this->cList->enumListType = CENUM_LISTTYPE_PV_LOCATIONS;
             $displayData['formData']->ddlLocation = $this->cList->strLoadListDDL($glChapterID, 'ddlLocation', true, (int) @$_POST['ddlLocation']);
             $displayData['formData']->txtLocationNotes = set_value('txtLocationNotes');
             // Activity
             $this->cList->enumListType = CENUM_LISTTYPE_PV_ACTIVITIES;
             $displayData['formData']->ddlActivity = $this->cList->strLoadListDDL($glChapterID, 'ddlActivity', true, (int) @$_POST['ddlActivity']);
             $displayData['formData']->txtActivityNotes = set_value('txtActivityNotes');
             // Interventions
             $displayData['formData']->i_bCompanionship = set_value('chkI_Companionship') == 'TRUE';
             $displayData['formData']->i_bCaregiverRelief = set_value('chkI_CaregiverRelief') == 'TRUE';
             $displayData['formData']->i_bEmotionalSupport = set_value('chkI_EmotionalSupport') == 'TRUE';
             $displayData['formData']->i_bSocialization = set_value('chkI_Socialization') == 'TRUE';
             $displayData['formData']->i_bBereavement = set_value('chkI_Bereavement') == 'TRUE';
             $displayData['formData']->i_bTelephoneCall = set_value('chkI_TelephoneCall') == 'TRUE';
             $displayData['formData']->i_bExcursionErrands = set_value('chkI_ExcursionErrands') == 'TRUE';
             $displayData['formData']->i_bMusicPetArtSupport = set_value('chkI_MusicPetArtSupport') == 'TRUE';
             $displayData['formData']->i_bFoodPreparation = set_value('chkI_FoodPreparation') == 'TRUE';
             $displayData['formData']->i_bHouseholdChores = set_value('chkI_HouseholdChores') == 'TRUE';
             $displayData['formData']->i_bOtherIntervention = set_value('chkI_OtherIntervention') == 'TRUE';
             $displayData['formData']->txtI_Notes = set_value('txtI_Notes');
             // Visit Info
             $this->cList->enumListType = CENUM_LISTTYPE_PV_PSTATUS;
             $this->loadMultiIDs('ddlM_PatientStatus', $matchIDs_PStatus);
             $displayData['formData']->ddlM_PatientStatus = $this->cList->strLoadListMultiDDL($glChapterID, 'ddlM_PatientStatus', 5, true, $matchIDs_PStatus);
             $this->cList->enumListType = CENUM_LISTTYPE_PV_VISITTASKS;
             $this->loadMultiIDs('ddlM_VisitTasks', $matchIDs_VTasks);
             $displayData['formData']->ddlM_VisitTasks = $this->cList->strLoadListMultiDDL($glChapterID, 'ddlM_VisitTasks', 5, true, $matchIDs_VTasks);
             $displayData['formData']->txtVisitNotes = set_value('txtVisitNotes');
             $displayData['formData']->TSK_bVisitors = set_value('chkTSK_Visitors') == 'TRUE';
             $displayData['formData']->txtTSKPatientComfort = set_value('txtTSKPatientComfort');
             $displayData['formData']->txtTSKPatientPain = set_value('txtTSKPatientPain');
             $displayData['formData']->txtTSKPatientConcerns = set_value('txtTSKPatientConcerns');
         }
         //--------------------------
         // breadcrumbs
         //--------------------------
         $displayData['pageTitle'] = ' Patient Visit';
         $displayData['title'] = CS_PROGNAME . ' | Patient Visit';
         $displayData['nav'] = $this->mnav_brain_jar->navData();
         $displayData['mainTemplate'] = 'hospice/patient_visit_add_edit_view';
         $this->load->vars($displayData);
         $this->load->view('template');
     } else {
         $pVisit->lChapterID = $glChapterID;
         $pVisit->lPatientID = $lPatientID;
         $pVisit->lVolID = $lVolID;
         $strDate = trim($_POST['txtDateOfVisit']);
         MDY_ViaUserForm($strDate, $lMon, $lDay, $lYear, $gbDateFormatUS);
         $pVisit->dteVisit = mktime(0, 0, 0, $lMon, $lDay, $lYear);
         $pVisit->lStartTime = (int) $_POST['ddlStart'];
         $pVisit->lDuration = (int) $_POST['ddlDuration'];
         $pVisit->strMedRec = $_POST['txtMedRecNum'];
         $pVisit->ps_bPatient = @$_POST['chkPS_Patient'] == 'TRUE';
         $pVisit->ps_bCaregiver = @$_POST['chkPS_Caregiver'] == 'TRUE';
         $pVisit->ps_bBereaved = @$_POST['chkPS_Bereaved'] == 'TRUE';
         $pVisit->ps_bOther = @$_POST['chkPS_Other'] == 'TRUE';
         $pVisit->ps_strNotes = $_POST['txtPS_Notes'];
         $pVisit->act_lActivityID = (int) $_POST['ddlActivity'];
         $pVisit->act_strNotes = $_POST['txtActivityNotes'];
         $pVisit->loc_lLocationID = (int) $_POST['ddlLocation'];
         $pVisit->loc_strNotes = $_POST['txtLocationNotes'];
         $pVisit->in_bCompanionship = @$_POST['chkI_Companionship'] == 'TRUE';
         $pVisit->in_bCaregiverRelief = @$_POST['chkI_CaregiverRelief'] == 'TRUE';
         $pVisit->in_bEmotionalSupport = @$_POST['chkI_EmotionalSupport'] == 'TRUE';
         $pVisit->in_bSocialization = @$_POST['chkI_Socialization'] == 'TRUE';
         $pVisit->in_bBereavement = @$_POST['chkI_Bereavement'] == 'TRUE';
         $pVisit->in_bTelephoneCall = @$_POST['chkI_TelephoneCall'] == 'TRUE';
         $pVisit->in_bExcursionErrands = @$_POST['chkI_ExcursionErrands'] == 'TRUE';
         $pVisit->in_bMusicPetArt = @$_POST['chkI_MusicPetArtSupport'] == 'TRUE';
         $pVisit->in_bFoodPrep = @$_POST['chkI_FoodPreparation'] == 'TRUE';
         $pVisit->in_bHouseholdChores = @$_POST['chkI_HouseholdChores'] == 'TRUE';
         $pVisit->in_bOther = @$_POST['chkI_OtherIntervention'] == 'TRUE';
         $pVisit->in_strNotes = $_POST['txtI_Notes'];
         $pVisit->tsk_strOtherNotes = $_POST['txtVisitNotes'];
         $pVisit->tsk_bVisitors = @$_POST['chkTSK_Visitors'] == 'TRUE';
         $pVisit->tsk_strPatientComfort = $_POST['txtTSKPatientComfort'];
         $pVisit->tsk_strPatientPain = $_POST['txtTSKPatientPain'];
         $pVisit->tsk_strChangesConcerns = $_POST['txtTSKPatientConcerns'];
         // multi-select DDLs
         $pVisit->status = new stdClass();
         $pVisit->status->IDs = arrayCopy($_POST['ddlM_PatientStatus']);
         $pVisit->status->lNumInList = count($pVisit->status->IDs);
         $pVisit->tasks = new stdClass();
         $pVisit->tasks->IDs = arrayCopy($_POST['ddlM_VisitTasks']);
         $pVisit->tasks->lNumInList = count($pVisit->tasks->IDs);
         if ($bNew) {
             $lPVRecID = $this->cPVisit->lAddNewPVisit($pVisit);
             $this->session->set_flashdata('msg', 'The patient visit record was added.');
         } else {
             $this->cPVisit->updatePVisit($lPVRecID, $pVisit);
             $this->session->set_flashdata('msg', 'The patient visit record was updated.');
         }
         redirect('hospice/patient_visit/visitRecView/' . $lPVRecID);
     }
 }
 function initUTableDates(&$js, &$utable, $bNew, &$mRec)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     global $gbDateFormatUS;
     if ($utable->lNumEditableFields > 0) {
         foreach ($utable->ufields as $ufield) {
             $enumType = $ufield->enumFieldType;
             if ($enumType == CS_FT_DATE) {
                 $strFN = $ufield->strFieldNameInternal;
                 $js .= strDatePicker($strFN, true);
                 if ($bNew && !isset($mRec->{$strFN})) {
                     $ufield->txtValue = '';
                 } else {
                     $vDateVal = $mRec->{$strFN};
                     if (is_null($vDateVal)) {
                         $ufield->txtValue = '';
                     } else {
                         $ufield->txtValue = strNumericDateViaMysqlDate($vDateVal, $gbDateFormatUS);
                     }
                 }
             }
         }
     }
 }
function populateCustomTables($lNumTables, &$utables, $lFID)
{
    //---------------------------------------------------------------------
    //
    //---------------------------------------------------------------------
    global $gbDateFormatUS;
    if ($lNumTables == 0) {
        return;
    }
    $CI =& get_instance();
    foreach ($utables as $utable) {
        $lTableID = $utable->lTableID;
        if ($utable->lNumFields > 0) {
            if ($utable->bMultiEntry) {
                populateCustomTableViaDefault($utable);
            } else {
                $CI->clsUF->loadSingleDataRecord($lTableID, $lFID, $recInfo);
                $dataFields =& $CI->clsUF->fields;
                foreach ($utable->ufields as $ufield) {
                    $enumType = $ufield->enumFieldType;
                    $strFN = $ufield->strFieldNameInternal;
                    switch ($enumType) {
                        case CS_FT_CHECKBOX:
                            $ufield->bChecked = getCheckStateViaFName($dataFields, $strFN);
                            break;
                        case CS_FT_DATE:
                            $vVal = getUserValueViaFName($dataFields, $strFN);
                            if (is_null($vVal)) {
                                $ufield->txtValue = '';
                            } else {
                                $ufield->txtValue = strNumericDateViaMysqlDate($vVal, $gbDateFormatUS);
                            }
                            break;
                        case CS_FT_TEXT255:
                        case CS_FT_TEXT80:
                        case CS_FT_TEXT20:
                        case CS_FT_TEXTLONG:
                            $ufield->txtValue = htmlspecialchars(getUserValueViaFName($dataFields, $strFN));
                            break;
                        case CS_FT_LOG:
                        case CS_FT_HEADING:
                            break;
                        case CS_FT_INTEGER:
                            $ufield->txtValue = (int) getUserValueViaFName($dataFields, $strFN);
                            break;
                        case CS_FT_CURRENCY:
                            $ufield->txtValue = number_format((double) getUserValueViaFName($dataFields, $strFN), 2);
                            break;
                        case CS_FT_DDL:
                            $ufield->lMatch = (int) getUserValueViaFName($dataFields, $strFN);
                            break;
                        case CS_FT_DDLMULTI:
                            $CI->clsUF->loadMultiIDs($ufield->lFieldID, $lTableID, $recInfo->lRecID, $lNumEntries, $ufield->lMatch);
                            break;
                        default:
                            screamForHelp($enumType . ': unexpected field type<br>error on line <b> -- ' . __LINE__ . ' --</b>,<br>file ' . __FILE__ . ',<br>function ' . __FUNCTION__);
                            break;
                    }
                }
            }
        }
    }
}
 function strComparitor(&$term)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     global $gbDateFormatUS;
     switch ($term->enumFieldType) {
         case CS_FT_CHECKBOX:
             $strOut = $term->bCompareBool ? CS_SRCH_CHK_YES : CS_SRCH_CHK_NO;
             break;
         case CS_FT_ID:
         case CS_FT_INTEGER:
             $strOut = number_format($term->lCompVal);
             break;
         case CS_FT_CURRENCY:
             $strOut = $term->ACO->strFlagImg . '&nbsp;' . number_format($term->curCompVal, 2);
             break;
         case CS_FT_DDL:
         case CS_FT_DDLMULTI:
             $cuf = new muser_fields();
             $strOut = '"' . htmlspecialchars($cuf->strDDLValue($term->lCompVal)) . '"';
             break;
         case CS_FT_DDL_SPECIAL:
             $strOut = '"' . htmlspecialchars(sddl\loadSpecialDDLValue($term->strFieldID, $term->strCompVal)) . '"';
             break;
         case CS_FT_DATE:
             $strOut = strNumericDateViaMysqlDate($term->mdteCompVal, $gbDateFormatUS);
             break;
         case CS_FT_TEXTLONG:
         case CS_FT_TEXT255:
         case CS_FT_TEXT80:
         case CS_FT_TEXT20:
         case CS_FT_TEXT:
             $strOut = '"' . htmlspecialchars($term->strCompVal) . '"';
             break;
         default:
             screamForHelp($term->enumFieldType . ': unsupported field type<br>error on line  <b> -- ' . __LINE__ . ' --</b>,<br>file ' . __FILE__ . ',<br>function ' . __FUNCTION__);
             break;
     }
     return $strOut;
 }