function showHours($clsRpt, $attributes, $lMonth, $lYear, $sngHrsMins, $sngNonPVHrs)
{
    //---------------------------------------------------------------------
    //
    //---------------------------------------------------------------------
    $attributes->bCloseDiv = false;
    $attributes->divID = 'hrsDiv';
    $attributes->divImageID = 'hrsDivImg';
    openBlock('Volunteer Hours', '', $attributes);
    echoT($clsRpt->openReport());
    // patient visit hours
    echoT($clsRpt->openRow() . $clsRpt->writeLabel('Patient Visit Hours:') . $clsRpt->writeCell(number_format($sngHrsMins, 2) . ' hours ' . strLinkView_VMgrRptVolHrsPVViaMonth($lMonth, $lYear, 'View details', true)) . $clsRpt->closeRow());
    // non-patient visit hours
    echoT($clsRpt->openRow() . $clsRpt->writeLabel('Other Volunteer Hours:') . $clsRpt->writeCell(number_format($sngNonPVHrs, 2) . ' hours' . strLinkView_VMgrRptVolHrsNonPVViaMonth($lMonth, $lYear, 'View details', true)) . $clsRpt->closeRow());
    // total volunteer hours
    echoT($clsRpt->openRow() . $clsRpt->writeLabel('Total Volunteer Hours:') . $clsRpt->writeCell('<b>' . number_format($sngNonPVHrs + $sngHrsMins, 2) . ' hours</b>') . $clsRpt->closeRow());
    echoT($clsRpt->closeReport());
    $attributes->bCloseDiv = true;
    closeBlock($attributes);
}
 function strHTMLCalendar($lYear, $bPatientVisit, $strTitle, &$calYear)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     $lMoPerRow = 3;
     $strOut = '<table style="" border="0">
         <tr>
            <td colspan="' . $lMoPerRow . '" style="text-align:center; font-size: 16pt;">' . $strTitle . '
            </td>
         </tr>';
     $colIDX = 1;
     for ($lMonth = 1; $lMonth <= 12; ++$lMonth) {
         $calMonth =& $calYear[$lMonth];
         $lNumVol = $this->lCountInMonth($calMonth);
         if ($lNumVol > 0) {
             if ($bPatientVisit) {
                 $strLink = '&nbsp;' . strLinkView_VMgrRptVolHrsPVViaMonth($lMonth, $lYear, 'View', true);
             } else {
                 $strLink = '&nbsp;' . strLinkView_VMgrRptVolHrsNonPVViaMonth($lMonth, $lYear, 'View', true);
             }
         } else {
             $strLink = '';
         }
         if ($lMonth % $lMoPerRow == 1) {
             $strOut .= '<tr>' . "\n";
         }
         $strOut .= '<td style="padding: 10px; vertical-align: top;">
               <table class="enpRpt" style="margin-bottom: 25pt;">
                  <tr>
                     <td colspan="7" style="text-align: center; background-color: #9aa; font-size: 15pt;"><b>' . $calMonth->strMonth . ' ' . $lYear . $strLink . '
                     </td>
                  </tr>';
         $lDayWidth = '34px';
         $strOut .= '<tr>
           <td class="calendarLabel">Sun</td>
           <td class="calendarLabel">Mon</td>
           <td class="calendarLabel">Tue</td>
           <td class="calendarLabel">Wed</td>
           <td class="calendarLabel">Thu</td>
           <td class="calendarLabel">Fri</td>
           <td class="calendarLabel">Sat</td>
         </tr>';
         // blanks for the empty days on first row
         $lDOWIDX = 1;
         if ($calMonth->lFirstDayOfMonth > 0) {
             for ($blkIdx = 0; $blkIdx < $calMonth->lFirstDayOfMonth; ++$blkIdx) {
                 $strOut .= '<td style="background-color: #e3e8ef;">&nbsp;</td>' . "\n";
                 ++$lDOWIDX;
             }
         }
         // the monthly days
         for ($dIdx = 1; $dIdx <= $calMonth->daysInMonth; ++$dIdx) {
             $lNumActivity = $calMonth->dayCount[$dIdx];
             if ($lNumActivity > 0) {
                 $strAct = '<br><span style="font-size: 11pt; color: red;"><b>(' . $lNumActivity . ')</span>';
             } else {
                 $strAct = '';
             }
             $strOut .= '<td class="calendarDay">' . $dIdx . $strAct . '</td>' . "\n";
             if ($lDOWIDX == 7) {
                 $strOut .= '</tr>' . "\n";
                 if ($dIdx != $calMonth->daysInMonth) {
                     $strOut .= '<tr>' . "\n";
                 }
                 $lDOWIDX = 0;
             }
             ++$lDOWIDX;
         }
         // blanks for the empty days at the end
         if ($lDOWIDX != 1) {
             for ($blkIdx = $lDOWIDX; $blkIdx <= 7; ++$blkIdx) {
                 $strOut .= '<td style="background-color: #e3e8ef;">&nbsp;</td>' . "\n";
             }
         }
         $strOut .= "</table>\n</td>\n";
         ++$colIDX;
         if ($lMonth % $lMoPerRow == 0) {
             $strOut .= '</tr>' . "\n";
         }
     }
     $strOut .= '</table>' . "\n";
     return $strOut;
 }