/**
  * Displays the form
  *
  * @param   string  $tpl  - The tmpl
  *
  * @return  mixed|object
  */
 public function display($tpl = null)
 {
     $params = JComponentHelper::getParams('com_matukio');
     $menuitemid = JFactory::getApplication()->input->get('Itemid');
     if ($menuitemid) {
         $site = new JSite();
         $menu = $site->getMenu();
         $menuparams = $menu->getParams($menuitemid);
         $params->merge($menuparams);
     }
     // Hardcode in Dirk's matukio-mvc.php task
     $art = JFactory::getApplication()->input->getInt('art', 0);
     $order_by = $params->get("orderby", "a.begin");
     $database = JFactory::getDBO();
     $dateid = JFactory::getApplication()->input->getInt('dateid', 1);
     $catid = JFactory::getApplication()->input->getInt('catid', 0);
     $uuid = JFactory::getApplication()->input->get('uuid', '', 'string');
     if (empty($catid)) {
         $catid = $params->get('startcat', 0);
     }
     $search = JFactory::getApplication()->input->get('search', '', 'string');
     $search = str_replace("'", "", $search);
     $search = str_replace("\"", "", $search);
     $limit = JFactory::getApplication()->input->getInt('limit', MatukioHelperSettings::getSettings('event_showanzahl', 10));
     $limitstart = JFactory::getApplication()->input->getInt('limitstart', 0);
     $my = JFactory::getuser();
     $groups = implode(',', $my->getAuthorisedViewLevels());
     if ($art == 1) {
         if ($my->id == 0 && empty($uuid)) {
             JError::raiseError("403", JTEXT::_('COM_MATUKIO_NOT_LOGGED_IN'));
         }
     }
     // Check if user is logged in and allowed to edit his OWN events
     if ($art == 2) {
         if (!JFactory::getUser()->authorise('core.edit.own', 'com_matukio')) {
             return JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR'));
         }
     }
     switch ($art) {
         default:
         case "0":
             $navioben = explode(" ", MatukioHelperSettings::getSettings('frontend_topnavshowmodules', 'SEM_NUMBER SEM_SEARCH SEM_CATEGORIES SEM_RESET'));
             break;
         case "1":
             $navioben = explode(" ", MatukioHelperSettings::getSettings('frontend_topnavbookingmodules', 'SEM_NUMBER SEM_SEARCH SEM_TYPES SEM_RESET'));
             break;
         case "2":
             $navioben = explode(" ", MatukioHelperSettings::getSettings('frontend_topnavoffermodules', 'SEM_NUMBER SEM_SEARCH SEM_TYPES SEM_RESET'));
             break;
     }
     // Old event form
     if ($this->getLayout() != "modern" || $my->id == 0) {
         $ret = MatukioHelperUtilsEvents::getEventList($art, $search, $dateid, $catid, $order_by, $my, $navioben, $limitstart, $limit, "old");
         $events = $ret[0];
         $total = $ret[1];
         switch ($art) {
             case "0":
                 $anztyp = array(JTEXT::_('COM_MATUKIO_EVENTS'), 0);
                 break;
             case "1":
                 // Show booked events
                 $anztyp = array(JTEXT::_('COM_MATUKIO_MY_BOOKINGS'), 1);
                 break;
             case "2":
                 // Show offered events
                 $anztyp = array(JTEXT::_('COM_MATUKIO_MY_OFFERS'), 2);
                 break;
         }
         $pageNav = MatukioHelperUtilsEvents::cleanSiteNavigation($total, $limit, $limitstart);
         $this->rows = $events;
         $this->pageNav = $pageNav;
     }
     // Modern Layout - merge that someday :/
     if ($this->getLayout() == "modern") {
         // Tabs
         if ($my->id > 0) {
             // Just set it to the default
             $anztyp = array(JTEXT::_('COM_MATUKIO_EVENTS'), 0);
             // Normal events view
             $ret = MatukioHelperUtilsEvents::getEventList(0, $search, $dateid, $catid, $order_by, $my, $navioben, $limitstart, $limit, "modern");
             $allEvents = $ret[0];
             $total = $ret[1];
             $this->pageNavAllEvents = MatukioHelperUtilsEvents::cleanSiteNavigation($total, $limit, $limitstart);
             $this->allEvents = $allEvents;
             // My Bookings
             $bookedEvents = MatukioHelperUtilsEvents::getEventList(1, $search, $dateid, $catid, $order_by, $my, $navioben, 0, 1000, "modern");
             $this->mybookedEvents = $bookedEvents[0];
             // My offers
             if (JFactory::getUser()->authorise('core.edit.own', 'com_matukio')) {
                 $editEvents = MatukioHelperUtilsEvents::getEventList(2, $search, $dateid, $catid, $order_by, $my, $navioben, 0, 1000, "modern");
                 $this->myofferEvents = $editEvents[0];
             }
         } else {
             // Not logged in user - we can take rows from above
             $this->allEvents = $events;
             $this->pageNavAllEvents = $pageNav;
         }
     }
     // Kursauswahl erstellen
     $allekurse = array();
     $allekurse[] = JHTML::_('select.option', '0', JTEXT::_('COM_MATUKIO_ALL_EVENTS'));
     $allekurse[] = JHTML::_('select.option', '1', JTEXT::_('COM_MATUKIO_CURRENT_EVENTS'));
     $allekurse[] = JHTML::_('select.option', '2', JTEXT::_('COM_MATUKIO_OLD_EVENTS'));
     $selectclass = $this->getLayout() == "modern" ? "mat_inputbox" : "sem_inputbox22";
     $datelist = JHTML::_('select.genericlist', $allekurse, "dateid", "class=\"" . $selectclass . " chzn-single\" size=\"1\"\r\n                onchange=\"changeStatus();\"", "value", "text", $dateid);
     $categories[] = JHTML::_('select.option', '0', JTEXT::_('COM_MATUKIO_ALL_CATS'));
     $database->setQuery("SELECT id AS value, title AS text FROM #__categories WHERE extension='" . JFactory::getApplication()->input->get('option') . "' AND access in (" . $groups . ") AND published = 1 ORDER BY lft");
     $categs = array_merge($categories, (array) $database->loadObjectList());
     $clist = JHTML::_('select.genericlist', $categs, "catid", "class=\"" . $selectclass . " chzn-single\" size=\"1\"\r\n                onchange=\"changeCategoryEventlist();\" style=\"width: 180px;\"", "value", "text", $catid);
     $listen = array($datelist, $dateid, $clist, $catid);
     // Navigationspfad erweitern
     MatukioHelperUtilsBasic::expandPathway($anztyp[0], JRoute::_("index.php?option=com_matukio&view=eventlist"));
     $ue_title = $params->get('title', 'COM_MATUKIO_EVENTS_OVERVIEW');
     $this->art = $art;
     $this->search = $search;
     $this->limit = $limit;
     $this->limitstart = $limitstart;
     $this->total = $total;
     $this->datelist = $datelist;
     $this->dateid = $dateid;
     $this->clist = $clist;
     $this->catid = $catid;
     $this->title = $ue_title;
     $this->order_by = $order_by;
     parent::display($tpl);
 }