/**
  * Loads and caches events of a specified type
  * Can only load 100 events at a time to avoid slowdowns - more will be loaded as a 'bottomless page' type thing
  * @param int $eventType Event type - see SWG constants
  */
 private function loadEvents($eventType)
 {
     // Get the parameters set
     $factory = SWG::eventFactory($eventType);
     $startDate = $this->paramDateToValue(JRequest::getInt("startDateType"), JRequest::getString("startDateSpecify"));
     $endDate = $this->paramDateToValue(JRequest::getInt("endDateType"), JRequest::getString("endDateSpecify"));
     $factory->reset();
     // Set specific factory parameters
     if ($eventType == Event::TypeSocial) {
         $factory->getNormal = true;
         $factory->getNewMember = true;
     }
     if ($eventType == Event::TypeWalk) {
         if (JRequest::getInt("walkProgramme") != 0) {
             switch (JRequest::getInt("walkProgramme")) {
                 case 1:
                     // Current published
                     $factory->walkProgramme = WalkProgramme::getCurrentProgrammeID();
                     break;
                 case 2:
                     $factory->walkProgramme = WalkProgramme::getNextProgrammeID();
                     break;
                 case 3:
                     // Specify
                     $factory->walkProgramme = JRequest::getInt("walkProgrammeSpecify");
                     break;
             }
         }
     }
     // Set standard/shared factory parameters
     $factory->startDate = $startDate;
     $factory->endDate = $endDate;
     $factory->limit = 100;
     $factory->offset = JRequest::getInt("offset", 0);
     $factory->reverse = JRequest::getBool("order");
     $factory->showUnpublished = JRequest::getBool("unpublished", false);
     $factory->includeAttendees = true;
     $factory->includeAttendedBy = Jfactory::getUser()->id;
     if (JRequest::getBool("diaryMode", false)) {
         // Default is the current logged in user.
         // TODO: Allow view access to other people's diaries
         $factory->addAttendee(JFactory::getUser()->id);
     }
     // Get events from factories
     switch ($eventType) {
         case Event::TypeWalk:
             $this->numWalks = $factory->numEvents();
             $this->walks = $factory->get();
             break;
         case Event::TypeSocial:
             $this->numSocials = $factory->numEvents();
             $this->socials = $factory->get();
             break;
         case Event::TypeWeekend:
             $this->numWeekends = $factory->numEvents();
             $this->weekends = $factory->get();
             break;
     }
 }