function edit()
 {
     $mainframe = JFactory::getApplication();
     $option = JRequest::getCmd('option');
     $filter_vid = $mainframe->getUserStateFromRequest("{$option}.filter_vid", 'filter_vid', 0, 'var');
     $filter_sid = $mainframe->getUserStateFromRequest("{$option}.filter_sid", 'filter_sid', 0, 'int');
     $filter_gid = $mainframe->getUserStateFromRequest("{$option}.filter_gid", 'filter_gid', 0, 'int');
     $db = JFactory::getDBO();
     $user = JFactory::getUser();
     $task = JRequest::getVar('task');
     $cid = JRequest::getVar('cid', array(0), '', 'array');
     $section = JRequest::getVar('section');
     JArrayHelper::toInteger($cid, array(0));
     $row = JTable::getInstance('ranglisten', 'TableCLM');
     $vname = "";
     $gname = "";
     $sname = "";
     if ($task == 'edit') {
         // illegaler Einbruchversuch über URL !
         // evtl. mitschneiden !?!
         $saison = JTable::getInstance('saisons', 'TableCLM');
         $saison->load($row->sid);
         if ($saison->archiv == "1") {
             // AND clm_core::$access->getType() !== 'admin') {
             JError::raiseWarning(500, JText::_('RANGLISTE_ARCHIV'));
             $mainframe->redirect('index.php?option=' . $option . '&section=vereine', $msg);
         }
         if ($cid[0] == "" and $task == 'edit') {
             JError::raiseWarning(500, JText::_('RANGLISTE_FALSCH'));
             $mainframe->redirect('index.php?option=' . $option . '&section=vereine', $msg);
         }
         // load the row from the db table
         $row->load($cid[0]);
         $sql = " SELECT Vereinname as vname FROM #__clm_dwz_vereine " . " WHERE ZPS ='" . $row->zps . "'" . " AND sid =" . $row->sid;
         $db->setQuery($sql);
         $vid = $db->loadObjectList();
         $vname = $vid[0]->vname;
         $sql = " SELECT Gruppe as gname FROM #__clm_rangliste_name " . " WHERE id =" . $row->gid . " AND sid =" . $row->sid;
         $db->setQuery($sql);
         $gruppe = $db->loadObjectList();
         $gname = $gruppe[0]->gname;
         $sql = " SELECT name as sname FROM #__clm_saison " . " WHERE id =" . $row->sid;
         $db->setQuery($sql);
         $saison = $db->loadObjectList();
         $sname = $saison[0]->sname;
     }
     // Prüfen ob die gewählte Liste bereits existiert
     if ($filter_gid and $filter_vid and $filter_sid) {
         $sql = " SELECT id FROM #__clm_rangliste_id " . " WHERE gid =" . intval($filter_gid) . " AND sid = " . intval($filter_sid) . " AND zps = '{$filter_vid}'";
         $db->setQuery($sql);
         $gid_check = $db->loadObjectList();
         if (count($gid_check) == 0) {
             $exist = 0;
         } else {
             $exist = $gid_check[0]->id;
         }
     } else {
         $exist = 0;
     }
     // Prüfen ob Gruppe existiert
     if ($filter_gid and $filter_sid) {
         $sql = " SELECT id FROM #__clm_rangliste_name " . " WHERE sid = " . intval($filter_sid);
         $db->setQuery($sql);
         $gid_id = $db->loadObjectList();
         $gid_exist = $gid_id[0]->id;
     } else {
         $gid_exist = 0;
     }
     // Rangliste in Abhängigkeit der Auswahl von vid,lid,sid ausgeben
     if ($task == 'edit') {
         $sql = " ALTER TABLE #__clm_rangliste_spieler order by sid desc,gruppe asc,zps asc,man_nr asc,Rang asc ";
         $db->setQuery($sql);
         $db->query();
         $sql = " SELECT Meldeschluss, geschlecht, alter_grenze, `alter` " . " FROM #__clm_rangliste_name" . " WHERE id =" . $row->gid . " AND sid = " . $row->sid;
         $sql_zps = $row->zps;
         $sql_gid = $row->gid;
         $sql_sid = $row->sid;
     } else {
         $sql = " SELECT Meldeschluss, geschlecht, alter_grenze, `alter` " . " FROM #__clm_rangliste_name" . " WHERE id =" . intval($filter_gid) . " AND sid = " . intval($filter_sid);
         $sql_zps = $filter_vid;
         $sql_gid = intval($filter_gid);
         $sql_sid = intval($filter_sid);
     }
     $db->setQuery($sql);
     $gid = $db->loadObjectList();
     $ges = "";
     $geb = "";
     if ($gid) {
         $melde = explode("-", $gid[0]->Meldeschluss);
         $jahr = $melde[0];
         if ($gid[0]->alter_grenze == "1") {
             $geb = " AND a.Geburtsjahr < " . ($jahr - $gid[0]->alter);
         }
         if ($gid[0]->alter_grenze == "2") {
             $geb = " AND a.Geburtsjahr > " . ($jahr - ($gid[0]->alter + 1));
         }
         if ($gid[0]->geschlecht == 1) {
             $ges = " AND a.Geschlecht = 'W' ";
         }
         if ($gid[0]->geschlecht == 2) {
             $ges = " AND a.Geschlecht = 'M' ";
         }
     }
     if ($task == 'edit') {
         $sql = " SELECT r.Rang, r.man_nr, a.sid,a.ZPS,a.Mgl_Nr,a.PKZ, a.DWZ," . " a.DWZ_Index,a.Geburtsjahr,a.Spielername" . " FROM #__clm_dwz_spieler as a" . " LEFT JOIN #__clm_rangliste_id as i ON i.sid = a.sid AND i.zps = a.ZPS " . " LEFT JOIN #__clm_rangliste_spieler as r ON r.sid = a.sid AND r.ZPS = a.ZPS AND r.Mgl_Nr = a.Mgl_Nr AND r.Gruppe = i.gid " . " WHERE a.ZPS = '{$sql_zps}'" . " AND i.id = " . $cid[0] . $geb . $ges . " ORDER BY r.man_nr,r.Rang ASC, a.DWZ DESC, a.DWZ_Index ASC, a.Spielername ASC ";
     } else {
         $sql = " SELECT a.sid,a.ZPS,a.Mgl_Nr,a.PKZ,a.DWZ,a.DWZ_Index,a.Geburtsjahr,a.Spielername" . " FROM #__clm_dwz_spieler as a" . " WHERE a.ZPS = '{$sql_zps}'" . " AND sid =" . $sql_sid . $geb . $ges . " ORDER BY a.DWZ DESC, a.DWZ_Index ASC, a.Spielername ASC ";
     }
     $db->setQuery($sql);
     $spieler = $db->loadObjectList();
     // Anzahl Einträge zählen
     $sql = " SELECT COUNT(ZPS) as ZPS FROM #__clm_rangliste_spieler " . " WHERE Gruppe =" . $sql_gid . " AND sid = " . $sql_sid . " AND zps = '{$sql_zps}'";
     $db->setQuery($sql);
     $count_id = $db->loadObjectList();
     $count = $count_id[0]->ZPS;
     if (isset($row->liga)) {
         $sql = " SELECT sl FROM #__clm_liga " . " WHERE id =" . $row->liga;
         $db->setQuery($sql);
         $lid = $db->loadObjectList();
     } else {
         $lid = 0;
     }
     $clmAccess = clm_core::$access;
     if ($clmAccess->access('BE_club_edit_ranking') === false and $task == 'edit') {
         JError::raiseWarning(500, JText::_('RANGLISTE_STAFFEL'));
         $link = 'index.php?option=' . $option . '&section=' . $section;
         $mainframe->redirect($link);
     }
     if ($task == 'edit') {
         // do stuff for existing records
         $row->checkout($user->get('id'));
     } else {
         // do stuff for new records
         $row->published = 0;
     }
     $lists['published'] = JHtml::_('select.booleanlist', 'published', 'class="inputbox"', $row->published);
     // Saisonliste //
     $sql = "SELECT id, name FROM #__clm_saison WHERE archiv =0";
     $db->setQuery($sql);
     $saisonlist[] = JHtml::_('select.option', '0', JText::_('RANGLISTE_SAISON_WAE'), 'id', 'name');
     $saisonlist = array_merge($saisonlist, $db->loadObjectList());
     $lists['sid'] = JHtml::_('select.genericlist', $saisonlist, 'filter_sid', 'class="inputbox" size="1" onchange="javascript:edit();"', 'id', 'name', intval($filter_sid));
     if ($filter_sid == 0) {
         $filter_sid = clm_core::$access->getSeason();
     }
     // Gruppenliste //
     $sql = "SELECT id as gid, Gruppe FROM #__clm_rangliste_name" . " WHERE sid =" . intval($filter_sid) . " AND published = 1";
     $db->setQuery($sql);
     if (!$db->query()) {
         $this->setRedirect('index.php?option=' . $option . '&section=' . $section);
         return JError::raiseWarning(500, $db->getErrorMsg());
     }
     $gruppenlist[] = JHtml::_('select.option', '0', JText::_('RANGLISTE_GRUPPE_AUS'), 'gid', 'Gruppe');
     $gruppenlist = array_merge($gruppenlist, $db->loadObjectList());
     $lists['gruppe'] = JHtml::_('select.genericlist', $gruppenlist, 'filter_gid', 'class="inputbox" size="1" onchange="javascript:edit();"', 'gid', 'Gruppe', intval($filter_gid));
     // Vereinliste
     // Vereinefilter laden
     $vereinlist = CLMFilterVerein::vereine_filter(0);
     $lists['vid'] = JHtml::_('select.genericlist', $vereinlist, 'filter_vid', 'class="inputbox" size="1" onchange="javascript:edit();"', 'zps', 'name', $filter_vid);
     require_once JPATH_COMPONENT . DS . 'views' . DS . 'ranglisten.php';
     $jid = 0;
     CLMViewRanglisten::Rangliste($spieler, $row, $lists, $option, $jid, $vname, $gname, $sname, $cid, $exist, $count, $gid_exist);
 }