function entireEventInfo($lEventID, &$lNumEvents, &$events)
 {
     /*-----------------------------------------------------------------------
           $lEventID can be a single event ID or an array of event IDs
     
           returns an array that has event info, dates, shifts, and vols
     
           $this->load->model('vols/mvol_events',                  'clsVolEvents');
           $this->load->model('vols/mvol_event_dates',             'clsVolEventDates');
           $this->load->model('vols/mvol_event_dates_shifts',      'clsShifts');
           $this->load->model('vols/mvol_event_dates_shifts_vols', 'clsSV');
     
        -----------------------------------------------------------------------*/
     $clsVolEventDates = new mvol_event_dates();
     $clsShifts = new mvol_event_dates_shifts();
     $clsSV = new mvol_event_dates_shifts_vols();
     $this->loadEventsViaEID($lEventID);
     $lNumEvents = $this->lNumEvents;
     $events = arrayCopy($this->events);
     foreach ($events as $event) {
         $lEID = $event->lKeyID;
         $clsVolEventDates->loadEventDates($lEID);
         $event->lNumDates = $lNumDates = $clsVolEventDates->lNumDates;
         if ($lNumDates > 0) {
             $event->dates = arrayCopy($clsVolEventDates->dates);
             foreach ($event->dates as $edate) {
                 $lEventDateID = $edate->lKeyID;
                 if ($edate->lNumShifts > 0) {
                     $clsShifts->loadShiftsViaEventDateID($lEventDateID);
                     $edate->shifts = arrayCopy($clsShifts->shifts);
                     foreach ($edate->shifts as $shift) {
                         $lShiftID = $shift->lKeyID;
                         $clsSV->loadVolsViaShiftID($lShiftID);
                         $shift->lNumVols = $lNumVols = $clsSV->lNumVols;
                         if ($lNumVols > 0) {
                             $shift->vols = arrayCopy($clsSV->vols);
                         }
                     }
                 }
             }
         }
     }
 }
 public function cloneShift($lEventShiftID, $lDateID, $bCloneVols)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     $this->loadShiftsViaEventShiftID($lEventShiftID);
     $clsES =& $this->shifts[0];
     $clsES->lEventDateID = $lDateID;
     $lNewShiftID = $this->lAddNewEventShift();
     $clsSV = new mvol_event_dates_shifts_vols();
     if ($bCloneVols) {
         $clsSV->loadVolsViaShiftID($lEventShiftID);
         $lNumVols = $clsSV->lNumVols;
         if ($lNumVols > 0) {
             foreach ($clsSV->vols as $vol) {
                 $clsSV->lAddVolToShift($lNewShiftID, $vol->lVolID, '');
             }
         }
     }
 }