function AA_rankinglist_Combined($category, $formaction, $break, $cover, $sepu23, $cover_timing = false, $date = '%', $disc_nr, $catFrom, $catTo)
 {
     require './lib/cl_gui_page.lib.php';
     require './lib/cl_print_page.lib.php';
     require './lib/cl_export_page.lib.php';
     require './lib/common.lib.php';
     require './lib/results.lib.php';
     if (AA_connectToDB() == FALSE) {
         // invalid DB connection
         return;
         // abort
     }
     if (AA_checkMeetingID() == FALSE) {
         // no meeting selected
         return;
         // abort
     }
     $contestcat = " ";
     if (!empty($category)) {
         // show every category
         $contestcat = " AND w.xKategorie = {$category}";
     }
     if ($catFrom > 0) {
         $getSortCat = AA_getSortCat($catFrom, $catTo);
         if ($getSortCat[0]) {
             if ($catTo > 0) {
                 $contestcat = " AND k.Anzeige >=" . $getSortCat[$catFrom] . " AND k.Anzeige <=" . $getSortCat[$catTo] . " ";
             } else {
                 $contestcat = " AND k.Anzeige =" . $getSortCat[$catFrom] . " ";
             }
         }
     }
     $dCode = 0;
     // get athlete info per contest category
     $results = mysql_query("\r\n\tSELECT DISTINCT \r\n\t\ta.xAnmeldung\r\n\t\t, at.Name\r\n\t\t, at.Vorname\r\n\t\t, at.Jahrgang\r\n\t\t, k.Name\r\n\t\t, IF(a.Vereinsinfo = '', v.Name, a.Vereinsinfo)\r\n\t\t, IF(at.xRegion = 0, at.Land, re.Anzeige)\r\n\t\t, w.Mehrkampfcode\r\n\t\t, d.Name\r\n\t\t, w.xKategorie\r\n\t\t, ka.Code\r\n\t\t, ka.Name\r\n\t\t, ka.Alterslimite \r\n        , d.Code             \r\n\tFROM\r\n\t\tanmeldung AS a\r\n\t\t, athlet AS at\r\n\t\t, verein AS v\r\n\t\t, kategorie AS k\r\n\t\t, kategorie AS ka\r\n\t\t, start as st\r\n\t\t, wettkampf as w\r\n\t\t, disziplin as d\r\n\t\tLEFT JOIN region as re ON at.xRegion = re.xRegion\r\n\tWHERE a.xMeeting = " . $_COOKIE['meeting_id'] . "\r\n\t" . $contestcat . "\r\n\tAND at.xAthlet = a.xAthlet\r\n\tAND v.xVerein = at.xVerein\r\n\tAND k.xKategorie = w.xKategorie\r\n\tAND st.xAnmeldung = a.xAnmeldung\r\n\tAND w.xWettkampf = st.xWettkampf  \r\n\tAND w.Mehrkampfcode = d.Code  \r\n\tAND w.Mehrkampfcode > 0\r\n\tAND ka.xKategorie = a.xKategorie \r\n    AND st.anwesend = 0 \t\r\n\tORDER BY    \t \r\n\t\tk.Anzeige\r\n\t\t, w.Mehrkampfcode\r\n\t\t, ka.Alterslimite DESC\r\n");
     /*        
        $results= mysql_query("SELECT  
             a.xAnmeldung
             , at.Name
             , at.Vorname
             , at.Jahrgang
             , k.Name
             , IF(a.Vereinsinfo = '', v.Name, a.Vereinsinfo)
             , IF(at.xRegion = 0, at.Land, re.Anzeige)
             , w.Mehrkampfcode
             , d.Name
             , w.xKategorie
             , ka.Code
             , ka.Name
             , ka.Alterslimite
         FROM
             anmeldung AS a
             LEFT JOIN athlet AS at USING (xAthlet) 
             LEFT JOIN verein AS v USING (xVerein)
             LEFT JOIN kategorie AS k ON (w.xKategorie = k.xKategorie)
             LEFT JOIN kategorie AS ka ON (ka.xKategorie = a.xKategorie) 
             LEFT JOIN start as st  ON (st.xAnmeldung = a.xAnmeldung)
             LEFT JOIN wettkampf as w On (w.xWettkampf = st.xWettkampf)
             LEFT JOIN disziplin as d ON (w.Mehrkampfcode = d.Code) 
             LEFT JOIN region as re ON at.xRegion = re.xRegion
         WHERE a.xMeeting = " . $_COOKIE['meeting_id'] ." 
          " . $contestcat . "   
         AND w.Mehrkampfcode > 0 
         GROUP BY
             a.xAnmeldung
         ORDER BY
             w.xKategorie
             , w.Mehrkampfcode
             , ka.Alterslimite DESC
             ");     
     */
     if (mysql_errno() > 0) {
         // DB error
         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
     } else {
         $cat = '';
         $catEntry = '';
         $catEntryLimit = "";
         $u23name = "";
         $comb = 0;
         // hold combined type
         $combName = "";
         $lastTime = "";
         // hold start time of last event for print list
         $a = 0;
         $info = '';
         $points = 0;
         $sep = '';
         $rFrom = 0;
         $rTo = 0;
         $limitRank = false;
         if ($_GET['limitRank'] == "yes" && substr($formaction, 0, 6) == "export") {
             // check if ranks are limited
             if (!empty($_GET['limitRankFrom']) && !empty($_GET['limitRankTo'])) {
                 $limitRank = true;
                 $rFrom = $_GET['limitRankFrom'];
                 $rTo = $_GET['limitRankTo'];
             }
         }
         // start a new HTML display page
         if ($formaction == 'view') {
             // display page for speaker
             $list = new GUI_CombinedRankingList($_COOKIE['meeting']);
             $list->printPageTitle("{$strRankingLists} " . $_COOKIE['meeting']);
         } elseif ($formaction == "print") {
             $list = new PRINT_CombinedRankingList($_COOKIE['meeting']);
             if ($cover == true) {
                 // print cover page
                 $list->printCover($GLOBALS['strResults'], $cover_timing);
             }
         } elseif ($formaction == "exportpress") {
             $list = new EXPORT_CombinedRankingListPress($_COOKIE['meeting'], 'txt');
         } elseif ($formaction == "exportdiplom") {
             $list = new EXPORT_CombinedRankingListDiplom($_COOKIE['meeting'], 'csv');
         }
         while ($row = mysql_fetch_row($results)) {
             $dCode = $row[13];
             // store previous before processing new athlete
             if ($a != $row[0] && $a > 0) {
                 $points_arr[] = $points;
                 if ($dCode_keep == 403) {
                     // Athletic Cup
                     $points_arr_max_disc[$xKat][] = $points_disc;
                 } else {
                     $points_arr_max_disc[$xKat][] = AA_get_MaxPointDisc($points_disc);
                 }
                 $points_arr_more_disc[$xKat][] = AA_get_MoreBestPointDisc($points_disc);
                 $points_arr_more_disc_all[$row[9]][] = $points_disc;
                 $name_arr[] = $name;
                 $year_arr[] = $year;
                 $club_arr[] = $club;
                 $info_arr[] = $info;
                 $ioc_arr[] = $ioc;
                 $x_arr[] = $a;
                 $rank_arr[] = $rank;
                 $info = '';
                 $points = 0;
                 $sep = '';
             }
             // print previous before processing new category
             if (!empty($cat) && ($row[4] != $cat || $row[7] != $comb || ($comb == 410 || $comb == 400) && $catEntry != $row[10] && $row[12] < 23 && !$bU23 && $sepu23)) {
                 $bU23 = false;
                 // set the separate flag! else it will be separated by each category
                 if (($comb == 410 || $comb == 400) && $catEntry != $row[10] && $row[12] < 23) {
                     $bU23 = true;
                 }
                 $u23name = '';
                 // set the addition for the title if this is the separated cat
                 if (($comb == 410 || $comb == 400) && $catEntryLimit < 23 && $sepu23) {
                     $u23name = " (U 23)";
                 }
                 $list->endList();
                 $list->printSubTitle($cat . "{$u23name}, " . $combName, "", "");
                 $list->startList();
                 $list->printHeaderLine($lastTime);
                 arsort($points_arr, SORT_NUMERIC);
                 // sort descending by points
                 $rank = 1;
                 // initialize rank
                 $r = 0;
                 // start value for ranking
                 $p = 0;
                 $no_rank = 999999;
                 $max_rank = $no_rank;
                 foreach ($points_arr as $key => $val) {
                     $r++;
                     if ($limitRank && ($r < $rFrom || $r > $rTo)) {
                         // limit ranks if set (export)
                         continue;
                     }
                     if ($p != $val) {
                         // not same points as previous team
                         $rank = $r;
                         // next rank
                     }
                     // not set rank for invalid results
                     if (preg_match("@\\(-[1]{1}@", $info_arr[$key])) {
                         $rank = $max_rank;
                         $max_rank += 1;
                         $r--;
                     }
                     $rank_arr[$key] = $rank;
                     $p = $val;
                     // keep current points
                 }
                 asort($rank_arr, SORT_NUMERIC);
                 // sort descending by rank
                 $rank_keep = 0;
                 foreach ($rank_arr as $key => $v) {
                     $val = $points_arr[$key];
                     $rank = $v;
                     if ($rank == $rank_keep) {
                         if ($dCode_keep == 403) {
                             // Athletic Cup
                             $c = 0;
                             $c_max_disc1 = 0;
                             $c_max_disc2 = 0;
                             for ($i = 0; $i < 3; $i++) {
                                 if ($points_arr_max_disc[$xKat][$key_keep][$i] > $points_arr_max_disc[$xKat][$key][$i]) {
                                     $c_max_disc1++;
                                 }
                                 if ($points_arr_max_disc[$xKat][$key_keep][$i] < $points_arr_max_disc[$xKat][$key][$i]) {
                                     $c_max_disc2++;
                                 }
                             }
                             if ($c_max_disc1 == 2 && $c_max_disc2 == 1) {
                                 // two disciplines more points
                                 $rank_arr[$key]++;
                             } elseif ($c_max_disc1 == 1 && $c_max_disc2 == 2) {
                                 // two disciplines more points
                                 $rank_arr[$key_keep]++;
                             } elseif ($c_max_disc1 == 1 && $c_max_disc2 == 1) {
                                 // one discipline same points and total same points
                                 $k = AA_get_BestPointDisc($points_arr_max_disc[$xKat][$key_keep], $points_arr_max_disc[$xKat][$key], $key_keep, $key);
                                 $rank_arr[$k]++;
                             }
                         } else {
                             // other combined events
                             if ($points_arr_more_disc[$xKat][$key_keep] < $points_arr_more_disc[$xKat][$key]) {
                                 $rank_arr[$key_keep]++;
                             } elseif ($points_arr_more_disc[$xKat][$key_keep] > $points_arr_more_disc[$xKat][$key]) {
                                 $rank_arr[$key]++;
                             } else {
                                 // always same points --> check
                                 $max_key = AA_get_BestPointDisc($points_arr_more_disc_all[$xKat][$key_keep], $points_arr_more_disc_all[$xKat][$key], $key_keep, $key);
                                 $rank_arr[$max_key]++;
                             }
                         }
                     }
                     $rank_keep = $rank;
                     $key_keep = $key;
                 }
                 asort($rank_arr, SORT_NUMERIC);
                 // sort descending by rank
                 foreach ($rank_arr as $key => $v) {
                     $val = $points_arr[$key];
                     $rank = $v;
                     if ($rank >= $no_rank) {
                         $rank = '';
                     }
                     $list->printLine($rank, $name_arr[$key], $year_arr[$key], $club_arr[$key], $val, $ioc_arr[$key]);
                     $list->printInfo($info_arr[$key]);
                     // insert points into combined top performance of entry
                     mysql_query("UPDATE anmeldung SET BestleistungMK = {$val} WHERE xAnmeldung = " . $x_arr[$key]);
                 }
                 unset($points_arr);
                 unset($name_arr);
                 unset($year_arr);
                 unset($club_arr);
                 unset($info_arr);
                 unset($ioc_arr);
                 unset($x_arr);
                 unset($rank_arr);
                 if (is_a($list, "PRINT_CombinedRankingList") && $break == 'category') {
                     // page break after category
                     $list->insertPageBreak();
                 }
             }
             $cat = $row[4];
             // keep current category
             $xKat = $row[9];
             $catEntry = $row[10];
             $catEntryLimit = $row[12];
             $comb = $row[7];
             $combName = $row[8];
             // events
             $res = mysql_query("\r\n            SELECT\r\n                d.Kurzname\r\n                , d.Typ\r\n              , MAX(IF ((r.Info='-') && (d.Typ = 6) ,0,r.Leistung)) \r\n                , r.Info\r\n                , MAX(IF ((r.Info='-') && (d.Typ = 6),0,r.Punkte)) AS pts    \r\n                , s.Wind\r\n                , w.Windmessung\r\n                , st.xStart\r\n                , CONCAT(DATE_FORMAT(ru.Datum,'{$cfgDBdateFormat}'), ' ', TIME_FORMAT(ru.Startzeit, '{$cfgDBtimeFormat}'))\r\n                , w.Mehrkampfreihenfolge \r\n                , ss.Bemerkung\r\n                , w.info\r\n            FROM\r\n                start AS st USE INDEX (Anmeldung)\r\n                , serienstart AS ss \r\n                , resultat AS r \r\n                , serie AS s \r\n                , runde AS ru \r\n                , wettkampf AS w\r\n                , disziplin AS d \r\n            WHERE st.xAnmeldung = {$row['0']}\r\n            AND ss.xStart = st.xStart\r\n            AND r.xSerienstart = ss.xSerienstart\r\n            AND s.xSerie = ss.xSerie\r\n            AND ru.xRunde = s.xRunde\r\n            AND w.xWettkampf = st.xWettkampf\r\n            AND d.xDisziplin = w.xDisziplin\r\n            AND ( (r.Info = '" . $cfgResultsHighOut . "' && d.Typ = 6 && r.Leistung < 0)  OR  (r.Info !=  '" . $cfgResultsHighOut . "') )                                                                                \r\n            AND w.xKategorie = {$row['9']}\r\n            AND w.Mehrkampfcode = {$row['7']}\r\n            GROUP BY\r\n                st.xStart\r\n            ORDER BY\r\n                w.Mehrkampfreihenfolge ASC\r\n                , ru.Datum\r\n                , ru.Startzeit\r\n        ");
             /*  
             		$res = mysql_query("
             			SELECT
             				d.Kurzname
             				, d.Typ
             				, MAX(r.Leistung)
             				, r.Info
             				, MAX(r.Punkte) AS pts
             				, s.Wind
             				, w.Windmessung
             				, st.xStart
             				, CONCAT(DATE_FORMAT(ru.Datum,'$cfgDBdateFormat'), ' ', TIME_FORMAT(ru.Startzeit, '$cfgDBtimeFormat'))
             			FROM
             				start as st USE INDEX (Anmeldung)
             				, wettkampf as w
             				, runde as ru
             				, disziplin as d
             				LEFT JOIN serie AS s ON s.xRunde = ru.xRunde
             				LEFT JOIN serienstart AS ss ON ss.xSerie = s.xSerie AND ss.xStart = st.xStart
             				LEFT JOIN resultat AS r ON (r.xSerienstart = ss.xSerienstart AND r.Info != '" . $cfgResultsHighOut . "')
             				
             			WHERE st.xAnmeldung = $row[0]
             			AND w.xKategorie = $row[9]
             			AND w.Mehrkampfcode = $row[7]   
             			AND w.xWettkampf = st.xWettkampf   
                   AND d.xDisziplin = w.xDisziplin  
             			AND ru.xWettkampf = w.xWettkampf
             			AND ru.Datum LIKE '".$date."'
             			GROUP BY
             				st.xStart
             			ORDER BY
             				w.Mehrkampfreihenfolge ASC
             				, ru.Datum
             				, ru.Startzeit
             		");   
             */
             if (mysql_errno() > 0) {
                 // DB error
                 AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
             } else {
                 $count_disc = 0;
                 $remark = '';
                 $points_disc = array();
                 while ($pt_row = mysql_fetch_row($res)) {
                     $remark = $pt_row[10];
                     $lastTime = $pt_row[8];
                     if ($pt_row[1] == $cfgDisciplineType[$strDiscTypeJump]) {
                         $res2 = mysql_query("SELECT r.Info FROM \r\n\t\t\t\t\t\t\t\tresultat as r\r\n\t\t\t\t\t\t\t\tLEFT JOIN serienstart as ss USING(xSerienstart)\r\n\t\t\t\t\t\t\tWHERE\r\n\t\t\t\t\t\t\t\tss.xStart = {$pt_row['7']}\r\n\t\t\t\t\t\t\tAND\tr.Punkte = {$pt_row['4']}");
                         $row2 = mysql_fetch_array($res2);
                         $pt_row[3] = $row2[0];
                     }
                     // set wind, if required
                     if ($pt_row[6] == 1) {
                         if ($pt_row[1] == $cfgDisciplineType[$strDiscTypeTrack]) {
                             $wind = " / " . $pt_row[5];
                         } else {
                             if ($pt_row[1] == $cfgDisciplineType[$strDiscTypeJump]) {
                                 $wind = " / " . $pt_row[3];
                             }
                         }
                     } else {
                         $wind = '';
                     }
                     // format output
                     if ($pt_row[1] == $cfgDisciplineType[$strDiscTypeJump] || $pt_row[1] == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $pt_row[1] == $cfgDisciplineType[$strDiscTypeThrow] || $pt_row[1] == $cfgDisciplineType[$strDiscTypeHigh]) {
                         $perf = AA_formatResultMeter($pt_row[2]);
                     } else {
                         $perf = AA_formatResultTime($pt_row[2], true);
                     }
                     // show only points for number of choosed disciplines if the diszipline is done
                     $count_disc++;
                     if ($count_disc <= $disc_nr) {
                         if (!empty($pt_row[11])) {
                             $pt_row[11] = " ({$pt_row['11']})";
                         }
                         if ($pt_row[4] > 0) {
                             // any points for this event
                             $points = $points + $pt_row[4];
                             // calculate points
                             if ($dCode == 403) {
                                 // Athletic Cup
                                 switch ($pt_row[1]) {
                                     case 1:
                                     case 2:
                                         $c = 0;
                                         // track
                                         break;
                                     case 4:
                                     case 6:
                                         $c = 1;
                                         // jump and high
                                         break;
                                     case 8:
                                         $c = 2;
                                         // throw
                                         break;
                                     default:
                                         $c = 0;
                                         break;
                                 }
                                 $points_disc[$c] = $pt_row[4];
                             } else {
                                 $points_disc[$pt_row[9]] = $pt_row[4];
                             }
                             $info = $info . $sep . $pt_row[0] . $pt_row[11] . "&nbsp;(" . $perf . $wind . ", {$pt_row['4']})";
                             $sep = ", ";
                         } elseif ($pt_row[4] == 0 && $pt_row[2] >= 0) {
                             //  athlete with 0 points
                             $info = $info . $sep . $pt_row[0] . $pt_row[11] . "&nbsp;(" . $perf . $wind . ", {$pt_row['4']})";
                             $sep = ", ";
                         } else {
                             $count_disc--;
                             $pointTxt = "";
                             foreach ($cfgInvalidResult as $value) {
                                 if ($value['code'] == $perf) {
                                     $pointTxt = $value['short'];
                                 }
                             }
                             $info = $info . $sep . $pt_row[0] . $pt_row[11] . "&nbsp;(" . $perf . $wind . ", {$pointTxt})";
                             $sep = ", ";
                         }
                     }
                 }
                 // END WHILE combined events
                 mysql_free_result($res);
             }
             $a = $row[0];
             $name = $row[1] . " " . $row[2];
             $year = AA_formatYearOfBirth($row[3]);
             $club = $row[5];
             $ioc = $row[6];
             $remark_arr[] = $remark;
             $xKat = $row[9];
             $points_disc_keep = $points_disc;
             $dCode_keep = $dCode;
         }
         // END WHILE athlete per category
         if (!empty($a)) {
             $points_arr[] = $points;
             if ($dCode == 403) {
                 $points_arr_max_disc[$xKat][] = $points_disc;
             } else {
                 $points_arr_max_disc[$xKat][] = AA_get_MaxPointDisc($points_disc);
             }
             $points_arr_more_disc[$xKat][] = AA_get_MoreBestPointDisc($points_disc);
             $points_arr_more_disc_all[$xKat][] = $points_disc;
             $name_arr[] = $name;
             $year_arr[] = $year;
             $club_arr[] = $club;
             $info_arr[] = $info;
             $ioc_arr[] = $ioc;
             $x_arr[] = $a;
             $remark_arr[] = $remark;
             $rank_arr[] = $rank;
         }
         if (!empty($cat)) {
             $u23name = '';
             if (($comb == 410 || $comb == 400) && $catEntryLimit < 23 && $sepu23) {
                 $u23name = " (U 23)";
             }
             $list->endList();
             $list->printSubTitle($cat . "{$u23name}, " . $combName, "", "");
             $list->startList();
             $list->printHeaderLine($lastTime);
             arsort($points_arr, SORT_NUMERIC);
             // sort descending by points
             $rank = 1;
             // initialize rank
             $r = 0;
             // start value for ranking
             $p = 0;
             $k = 0;
             $no_rank = 999999;
             $max_rank = $no_rank;
             foreach ($points_arr as $key => $val) {
                 $r++;
                 if ($limitRank && ($r < $rFrom || $r > $rTo)) {
                     // limit ranks if set (export)
                     continue;
                 }
                 if ($p != $val) {
                     // not same points as previous athlete
                     $rank = $r;
                     // next rank
                 } else {
                     if ($dCode == 403) {
                         // Athletic Cup
                         if ($points_arr_max_disc[$xkat][$key] > $points_arr_max_disc[$xKat][$k]) {
                             $rank_arr[$k] = $r;
                         }
                     }
                 }
                 // not set rank for invalid results
                 if (preg_match("@\\(-[1]{1}@", $info_arr[$key])) {
                     $rank = $max_rank;
                     $max_rank += 1;
                     $r--;
                 }
                 $p = $val;
                 // keep current points
                 $k = $key;
                 // keep current key
                 $rank_arr[$key] = $rank;
             }
             asort($rank_arr, SORT_NUMERIC);
             // sort descending by rank
             $rank_keep = 0;
             foreach ($rank_arr as $key => $v) {
                 $val = $points_arr[$key];
                 $rank = $v;
                 if ($rank == $rank_keep) {
                     if ($dCode == 403) {
                         // Athletic Cup
                         $c = 0;
                         $c_max_disc1 = 0;
                         $c_max_disc2 = 0;
                         for ($i = 0; $i < 3; $i++) {
                             if ($points_arr_max_disc[$xKat][$key_keep][$i] > $points_arr_max_disc[$xKat][$key][$i]) {
                                 $c_max_disc1++;
                             }
                             if ($points_arr_max_disc[$xKat][$key_keep][$i] < $points_arr_max_disc[$xKat][$key][$i]) {
                                 $c_max_disc2++;
                             }
                         }
                         if ($c_max_disc1 == 2 && $c_max_disc2 == 1) {
                             // two disciplines more points
                             $rank_arr[$key]++;
                         } elseif ($c_max_disc1 == 1 && $c_max_disc2 == 2) {
                             // two disciplines more points
                             $rank_arr[$key_keep]++;
                         } elseif ($c_max_disc1 == 1 && $c_max_disc2 == 1) {
                             // one discipline same points and total same points
                             $k = AA_get_BestPointDisc($points_arr_max_disc[$xKat][$key_keep], $points_arr_max_disc[$xKat][$key], $key_keep, $key);
                             $rank_arr[$k]++;
                         }
                     } else {
                         // other combined events
                         if ($points_arr_more_disc[$xKat][$key_keep] < $points_arr_more_disc[$xKat][$key]) {
                             $rank_arr[$key_keep]++;
                         } elseif ($points_arr_more_disc[$xKat][$key_keep] > $points_arr_more_disc[$xKat][$key]) {
                             $rank_arr[$key]++;
                         } else {
                             // always same points --> check
                             $max_key = AA_get_BestPointDisc($points_arr_more_disc_all[$xKat][$key_keep], $points_arr_more_disc_all[$xKat][$key], $key_keep, $key);
                             $rank_arr[$max_key]++;
                         }
                     }
                 }
                 $rank_keep = $rank;
                 $key_keep = $key;
             }
             asort($rank_arr, SORT_NUMERIC);
             // sort descending by rank
             foreach ($rank_arr as $key => $v) {
                 $val = $points_arr[$key];
                 $rank = $v;
                 if ($rank >= $no_rank) {
                     $rank = '';
                 }
                 $list->printLine($rank, $name_arr[$key], $year_arr[$key], $club_arr[$key], $val, $ioc_arr[$key]);
                 $list->printInfo($info_arr[$key]);
                 // insert points into combined top performance of entry
                 mysql_query("UPDATE anmeldung SET BestleistungMK = {$val} WHERE xAnmeldung = " . $x_arr[$key]);
             }
         }
         mysql_free_result($results);
         $list->endList();
         $list->endPage();
         // end HTML page for printing
     }
     // ET DB error all teams
 }
Пример #2
0
					<th class='dialog' colspan="3"><?php 
            echo $strSB_long;
            ?>
</th>
				</tr>

				<?php 
        }
        if ($row_perf['Typ'] == $cfgDisciplineType[$strDiscTypeJump] || $row_perf['Typ'] == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $row_perf['Typ'] == $cfgDisciplineType[$strDiscTypeThrow] || $row_perf['Typ'] == $cfgDisciplineType[$strDiscTypeHigh]) {
            if (strlen($row_perf['season_effort']) > 0) {
                $sb_perf = AA_formatResultMeter(str_replace(".", "", $row_perf['season_effort']));
            } else {
                $sb_perf = '';
            }
            if (strlen($row_perf['best_effort']) > 0) {
                $pb_perf = AA_formatResultMeter(str_replace(".", "", $row_perf['best_effort']));
            } else {
                $pb_perf = '';
            }
        } else {
            //convert performance-time to milliseconds
            $timepices = explode(":", $row_perf['season_effort']);
            $season_effort = $timepices[0] * 360 * 1000 + $timepices[1] * 60 * 1000 + $timepices[2] * 1000 + $timepices[3];
            $timepices = explode(":", $row_perf['best_effort']);
            $best_effort = $timepices[0] * 360 * 1000 + $timepices[1] * 60 * 1000 + $timepices[2] * 1000 + $timepices[3];
            if ($row_perf['Typ'] == $cfgDisciplineType[$strDiscTypeTrack] || $row_perf['Typ'] == $cfgDisciplineType[$strDiscTypeTrackNoWind]) {
                if ($season_effort != 0) {
                    $sb_perf = AA_formatResultTime($season_effort, true, true);
                } else {
                    $sb_perf = '';
                }
Пример #3
0
     $cat = $row[5];
     if (empty($row[8])) {
         // not assigned to a team
         $club = $row[7];
         // use club name
     } else {
         $club = $row[8];
         // use team name
     }
     $ioc = $row[13];
     $mkcode = $row[23];
 }
 if ($row[11] == $cfgDisciplineType[$strDiscTypeTrack] || $row[11] == $cfgDisciplineType[$strDiscTypeTrackNoWind] || $row[11] == $cfgDisciplineType[$strDiscTypeRelay] || $row[11] == $cfgDisciplineType[$strDiscTypeDistance]) {
     $perf = AA_formatResultTime($row[12]);
 } else {
     $perf = AA_formatResultMeter($row[12]);
 }
 if (!is_a($doc, "PRINT_CatDiscEntryPage") && !is_a($doc, "GUI_CatDiscEntryPage") && !is_a($doc, "PRINT_ClubCatDiscEntryPage") && !is_a($doc, "GUI_ClubCatDiscEntryPage")) {
     // 403 = UBS Kids Cup
     // 799 = ...kampf
     // show all disziplines (also if performance is 0) by UBS Kids Cup and ...kampf
     if ($perf == 0 && $row[23] != 408 && $row[23] != 799 || $row[23] > 0 && $row[23] != 408 && $row[23] != 799 && isset($cfgCombinedDef[$row[23]]) && $perf > 0) {
         //$Info = ($row[17]!="") ? ' ('.$row[17].')' : '';
         $Info = $row[18] != "" ? ' (' . $row[18] . ')' : '';
         $noFee = false;
         if ($row[18] != "" && $m != $row[19]) {
             if ($row[23] > 0 && isset($cfgCombinedDef[$row[23]])) {
                 // normal combined
                 $disc = $disc . $sep . $row[19] . $Info;
                 // add combined
             } else {
Пример #4
0
         $pf = $row[10];
         // best effort by choosed combined disziplin
     } else {
         $pf = $row[5];
         // best MK
     }
 } else {
     $pf = $row[5];
     // best effort
 }
 if ($pf == 9999999) {
     $pf = 0;
 }
 // show top performance of athletes
 if ($row[6] == $cfgDisciplineType[$strDiscTypeJump] || $row[6] == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $row[6] == $cfgDisciplineType[$strDiscTypeThrow] || $row[6] == $cfgDisciplineType[$strDiscTypeHigh]) {
     $perf = AA_formatResultMeter($pf);
     //$perf = AA_formatResultMeter($row[5]);
 } else {
     if ($row[6] == $cfgDisciplineType[$strDiscTypeTrack] || $row[6] == $cfgDisciplineType[$strDiscTypeTrackNoWind]) {
         // $perf = AA_formatResultTime($row[5], true, true);
         $perf = AA_formatResultTime($pf, true, true);
     } else {
         //$perf = AA_formatResultTime($row[5], true);
         $perf = AA_formatResultTime($pf, true);
     }
 }
 if ($combined) {
     if ($_GET['event'] == 0) {
         // the whole combined event
         $perf = $pf;
         // points
    function AA_speaker_High($event, $round, $layout)
    {
        require './lib/cl_gui_resulttable.lib.php';
        require './config.inc.php';
        require './lib/common.lib.php';
        require './lib/results.lib.php';
        $status = AA_getRoundStatus($round);
        $svm = AA_checkSVM(0, $round);
        // decide whether to show club or team name
        $mergedMain = AA_checkMainRound($round);
        if ($mergedMain != 1) {
            // No action yet
            if ($status == $cfgRoundStatus['open'] || $status == $cfgRoundStatus['enrolement_done'] || $status == $cfgRoundStatus['heats_in_progress']) {
                AA_printWarningMsg($strHeatsNotDone);
            } else {
                if ($status == $cfgRoundStatus['enrolement_pending']) {
                    AA_printWarningMsg($strEnrolementNotDone);
                } else {
                    if ($status >= $cfgRoundStatus['heats_done']) {
                        // show link to rankinglist if results done
                        if ($status == $cfgRoundStatus['results_done']) {
                            $menu = new GUI_Menulist();
                            $menu->addButton("print_rankinglist.php?event={$event}&round={$round}&type=single&formaction=speaker", $GLOBALS['strRankingList']);
                            $menu->addButton("print_rankinglist.php?event={$event}&round={$round}&type=single&formaction=speaker&show_efforts=sb_pb", $GLOBALS['strRankingListEfforts']);
                            $menu->printMenu();
                            echo "<p/>";
                        }
                        $prog_mode = AA_results_getProgramMode();
                        // display all athletes
                        $sql = "\r\n            SELECT\r\n                rt.Name\r\n                , rt.Typ\r\n                , s.xSerie\r\n                , s.Bezeichnung\r\n                , s.Status\r\n                , ss.xSerienstart\r\n                , ss.Position\r\n                , ss.Rang\r\n                , a.Startnummer\r\n                , at.Name\r\n                , at.Vorname\r\n                , at.Jahrgang\r\n                , if('" . $svm . "', te.Name, IF(a.Vereinsinfo = '', v.Name, a.Vereinsinfo))   \r\n                , LPAD(s.Bezeichnung,5,'0') as heatid\r\n                , st.Bestleistung\r\n                , at.xAthlet\r\n                , at.Land\r\n                , r.Status\r\n                , ss.Starthoehe\r\n            FROM\r\n                runde AS r\r\n                LEFT JOIN serie AS s ON (s.xRunde = r.xRunde)\r\n                LEFT JOIN serienstart AS ss ON (ss.xSerie = s.xSerie)\r\n                LEFT JOIN start AS st ON (st.xStart = ss.xStart)\r\n                LEFT JOIN anmeldung AS a ON (a.xAnmeldung = st.xAnmeldung)\r\n                LEFT JOIN athlet AS at ON (at.xAthlet = a.xAthlet)\r\n                LEFT JOIN team AS te ON(a.xTeam = te.xTeam) \r\n                LEFT JOIN verein AS v ON (v.xVerein = at.xVerein)\r\n                LEFT JOIN rundentyp_" . $_COOKIE['language'] . " AS rt ON rt.xRundentyp = r.xRundentyp\r\n            WHERE \r\n                r.xRunde = {$round}   \r\n            ORDER BY\r\n                heatid\r\n                , ss.Position";
                        $result = mysql_query($sql);
                        if (mysql_errno() > 0) {
                            // DB error
                            AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                        } else {
                            // initialize variables
                            $h = 0;
                            $i = 0;
                            $current_athlete = false;
                            $curr_class = '';
                            $resTable = new GUI_HighResultTable($round, $layout, $status);
                            while ($row = mysql_fetch_row($result)) {
                                /*
                                 *  Heat headerline
                                 */
                                if ($h != $row[2]) {
                                    $h = $row[2];
                                    // keep heat ID
                                    if (is_null($row[0])) {
                                        // only one round
                                        $title = "{$strFinalround}  {$row['3']}";
                                    } else {
                                        // more than one round
                                        $title = "{$row['0']}: {$row['1']}{$row['3']}";
                                    }
                                    $c = 0;
                                    if ($status == $cfgRoundStatus['results_done']) {
                                        $c = 1;
                                        // increment colspan to include ranking
                                    }
                                    $resTable->printHeatTitle($row[2], $row[3], $title, $row[4]);
                                    $resTable->printAthleteHeader('', $round, $row[17]);
                                }
                                // ET new heat
                                /*
                                 * Athlete data lines
                                 */
                                $rank = '';
                                $perfs = array();
                                $res = mysql_query("\r\n\t\t\t\t\tSELECT\r\n\t\t\t\t\t\tr.Leistung\r\n\t\t\t\t\t\t, r.Info\r\n\t\t\t\t\tFROM\r\n\t\t\t\t\t\tresultat as r\r\n\t\t\t\t\tWHERE r.xSerienstart = {$row['5']}\r\n\t\t\t\t\tORDER BY\r\n\t\t\t\t\t\tr.xResultat DESC\r\n\t\t\t\t");
                                if (mysql_errno() > 0) {
                                    // DB error
                                    AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                } else {
                                    if ($status == $cfgRoundStatus['results_done']) {
                                        $rank = $row[7];
                                    }
                                    while ($resrow = mysql_fetch_row($res)) {
                                        $perf = AA_formatResultMeter($resrow[0]);
                                        $info = $resrow[1];
                                        $perfs[] = "{$perf} ( {$info} )";
                                    }
                                    // end loop every tech result acc. programm mode
                                    mysql_free_result($res);
                                }
                                $heatStart = AA_getCurrAthlete($row[2]);
                                if ($heatStart > 0) {
                                    if ($row[5] == $heatStart) {
                                        $curr_class = "active";
                                    }
                                } else {
                                    if (empty($perfs) && !$current_athlete) {
                                        $current_athlete = true;
                                        $curr_class = "active";
                                    }
                                }
                                $resTable->printAthleteLine($row[6], $row[8], "{$row['9']} {$row['10']}", AA_formatYearOfBirth($row[11]), $row[12], AA_formatResultMeter($row[14]), $perfs, $fett, $rank, $row[16], $row[15], $curr_class, '', $row[17], $row[18]);
                                $curr_class = "";
                            }
                            $resTable->endTable();
                            mysql_free_result($result);
                        }
                        // ET DB error
                    }
                }
            }
            // ET heat seeding done
        } else {
            AA_printErrorMsg($strErrMergedRoundSpeaker);
        }
        ?>
 
    
   <script type="text/javascript">
<!--
    window.setTimeout("updatePage()", <?php 
        echo $cfgMonitorReload * 1000;
        ?>
);

   

    function updatePage()
    {
        window.open("speaker_results.php?round=<?php 
        echo $round;
        ?>
", "main");
    }

    
</script> 
    
    
    <?php 
    }
Пример #6
0
     // increment line count
     $athletes = '';
     $sql = "SELECT a.xAnmeldung\r\n                                , a.Startnummer\r\n                                , at.Name\r\n                                , at.Vorname\r\n                                , at.Jahrgang \r\n                                , s.Bestleistung\r\n                                , d.Typ \r\n                                , d.xDisziplin \r\n                           FROM anmeldung AS a \r\n                      LEFT JOIN teamsmathlet AS sma ON(a.xAnmeldung = sma.xAnmeldung) \r\n                      LEFT JOIN athlet AS at ON(a.xAthlet = at.xAthlet) \r\n                      LEFT JOIN start AS s ON(s.xAnmeldung = a.xAnmeldung) \r\n                      LEFT JOIN wettkampf AS w ON (w.xWettkampf = s.xWettkampf) \r\n                      LEFT JOIN disziplin_" . $_COOKIE['language'] . " AS d ON (d.xDisziplin = w.xDisziplin)    \r\n                            WHERE sma.xTeamsm = " . $s . " \r\n                       ORDER BY at.Name\r\n                                   , at.Vorname";
     $res = mysql_query($sql);
     if (mysql_errno() > 0) {
         // DB error
         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
     } else {
         $sep = "";
         while ($ath_row = mysql_fetch_row($res)) {
             if ($disc_keep != $ath_row[7]) {
                 continue;
             }
             $perf = 0;
             if ($ath_row[6] == $cfgDisciplineType[$strDiscTypeJump] || $ath_row[6] == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $ath_row[6] == $cfgDisciplineType[$strDiscTypeThrow] || $ath_row[6] == $cfgDisciplineType[$strDiscTypeHigh]) {
                 $perf = AA_formatResultMeter($ath_row[5]);
             } else {
                 if ($ath_row[6] == $cfgDisciplineType[$strDiscTypeTrack] || $ath_row[6] == $cfgDisciplineType[$strDiscTypeTrackNoWind]) {
                     $perf = AA_formatResultTime($ath_row[5], true, true);
                 } else {
                     $perf = AA_formatResultTime($ath_row[5], true);
                 }
             }
             $athletes = $athletes . $sep . $ath_row[1] . ". " . $ath_row[2] . " " . $ath_row[3] . " (" . $perf . ") ";
             $sep = ", ";
         }
         mysql_free_result($res);
     }
     $doc->printAthletes($athletes, true);
 }
 printf("</table>\n");
Пример #7
0
     $span = "<span class='highlight_red'>";
     $span_end = "</span>";
 } else {
     $span = "";
     $span_end = "";
 }
 if ($event_row[2] == $cfgDisciplineType[$strDiscTypeTrack] || $event_row[2] == $cfgDisciplineType[$strDiscTypeTrackNoWind] || $event_row[2] == $cfgDisciplineType[$strDiscTypeRelay] || $event_row[2] == $cfgDisciplineType[$strDiscTypeDistance]) {
     $class = 'time';
     if ($event_row[2] == $cfgDisciplineType[$strDiscTypeDistance]) {
         $perf = AA_formatResultTime($start_row[1]);
     } else {
         $perf = AA_formatResultTime($start_row[1], false, true);
     }
 } else {
     $class = 'meter';
     $perf = AA_formatResultMeter($start_row[1]);
 }
 //
 // merge the disciplines for a combined event
 //
 if ($event_row[10] == $cfgEventType[$strEventTypeSingleCombined]) {
     if (!$comb_start) {
         echo "</tr>";
     }
     $comb_start = true;
     $d = 1;
     // check if one of the combined events is selected
     $start_comb = false;
     $resStartComb = mysql_query("SELECT xStart FROM\r\n                                    start as s\r\n                                    , wettkampf as w\r\n                                WHERE\r\n                                    w.xKategorie = {$event_row['8']}\r\n                                AND    w.Mehrkampfcode = {$event_row['9']}\r\n                                AND    s.xWettkampf = w.xWettkampf\r\n                                AND    s.xAnmeldung = {$row['0']}");
     if (mysql_num_rows($resStartComb) > 0) {
         $start_comb = true;
Пример #8
0
 function AA_regie_High($event, $round, $layout, $cat, $disc)
 {
     require './lib/cl_gui_resulttable.lib.php';
     require './config.inc.php';
     require './lib/common.lib.php';
     require './lib/results.lib.php';
     $status = AA_getRoundStatus($round);
     mysql_query("\r\n                LOCK TABLES\r\n                    resultat READ\r\n                    , serie READ\r\n                    , start READ                    \r\n                    , serienstart READ\r\n                    , serienstart READ                   \r\n                    , serie AS S READ\r\n                    , start AS ST READ                      \r\n                    , serienstart AS SS READ\r\n                    , anmeldung AS A READ \r\n                    , athlet as at READ \r\n                    , verein as vREAD \r\n                    , rundentyp as rt READ   \r\n                    , tempHigh WRITE\r\n            ");
     mysql_query("TRUNCATE TABLE tempHigh");
     // if this is a combined event, rank all rounds togheter
     $roundSQL = "";
     if ($combined) {
         $roundSQL = "AND serie.xRunde IN (";
         $res_c = mysql_query("SELECT xRunde FROM runde WHERE xWettkampf = " . $presets['event']);
         while ($row_c = mysql_fetch_array($res_c)) {
             $roundSQL .= $row_c[0] . ",";
         }
         $roundSQL = substr($roundSQL, 0, -1) . ")";
     } else {
         $roundSQL = "AND serie.xRunde = {$round}";
     }
     // read all valid results (per athlet)
     $result = mysql_query("\r\n                    SELECT\r\n                        resultat.Leistung\r\n                        , resultat.Info\r\n                        , serienstart.xSerienstart\r\n                        , serienstart.xSerie\r\n                    FROM\r\n                        resultat\r\n                        , serienstart\r\n                        , serie\r\n                    WHERE resultat.xSerienstart = serienstart.xSerienstart\r\n                    AND serienstart.xSerie = serie.xSerie\r\n                    {$roundSQL}\r\n                    AND resultat.Leistung != 0\r\n                    ORDER BY\r\n                        serienstart.xSerienstart\r\n                        ,resultat.Leistung DESC\r\n                ");
     if (mysql_errno() > 0) {
         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
     } else {
         // initialize variables
         $leistung = 0;
         $serienstart = 0;
         $serie = 0;
         $topX = 0;
         $totX = 0;
         $ss = 0;
         // athlete's ID
         $tt = FALSE;
         // top result check
         // process every result
         while ($row = mysql_fetch_row($result)) {
             // new athlete: save last athlete's data
             if ($ss != $row[2] && $ss != 0) {
                 if ($leistung != 0) {
                     // add one row per athlete to temp High table
                     mysql_query("\r\n                                    INSERT INTO tempHigh\r\n                                    VALUES(\r\n                                        {$serienstart}\r\n                                        , {$serie}\r\n                                        , {$leistung}\r\n                                        , {$topX}\r\n                                        , {$totX}\r\n                                        , 0)\r\n                                ");
                     if (mysql_errno() > 0) {
                         // DB error
                         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                     }
                 }
                 // initialize variables
                 $leistung = 0;
                 $serienstart = 0;
                 $serie = 0;
                 $totX = 0;
                 $topX = 0;
                 $tt = FALSE;
             }
             // save data of current athlete's top result
             if ($tt == FALSE && strstr($row[1], 'O')) {
                 $leistung = $row[0];
                 $serienstart = $row[2];
                 $serie = $row[3];
                 $topX = substr_count($row[1], 'X');
                 $tt = TRUE;
             }
             // count total invalid attempts
             $totX = $totX + substr_count($row[1], 'X');
             $ss = $row[2];
             // keep athlete's ID
         }
         mysql_free_result($result);
         // insert last pending data in tempHigh table
         if ($ss != 0 && $leistung != 0) {
             mysql_query("\r\n                            INSERT INTO tempHigh\r\n                            VALUES(\r\n                                {$serienstart}\r\n                                , {$serie}\r\n                                , {$leistung}\r\n                                , {$topX}\r\n                                , {$totX}\r\n                                , 0)\r\n                        ");
             if (mysql_errno() > 0) {
                 // DB error
                 AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
             }
         }
     }
     if ($eval == $cfgEvalType[$strEvalTypeHeat]) {
         // eval per heat
         $order = "xSerie ,";
     } else {
         // default: rank results from all heats together
         $order = "";
     }
     // Read rows from temporary table ordered by performance,
     // nbr of invalid attempts for top performance and
     // total nbr of invalid attempts to determine ranking.
     $result = mysql_query("\r\n                    SELECT\r\n                        xSerienstart\r\n                        , xSerie\r\n                        , Leistung\r\n                        , TopX\r\n                        , TotalX\r\n                    FROM\r\n                        tempHigh\r\n                    ORDER BY\r\n                        {$order}\r\n                        Leistung DESC\r\n                        ,TopX ASC\r\n                        ,TotalX ASC\r\n                ");
     if (mysql_errno() > 0) {
         // DB error
         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
     } else {
         // initialize variables
         $heat = 0;
         $perf = 0;
         $topX = 0;
         $totalX = 0;
         $i = 0;
         $rank = 0;
         // set rank for every athlete
         while ($row = mysql_fetch_row($result)) {
             if ($eval == $cfgEvalType[$strEvalTypeHeat] && $heat != $row[1]) {
                 $i = 0;
                 // restart ranking
                 $perf = 0;
                 $topX = 0;
                 $totalX = 0;
             }
             $j++;
             // increment ranking
             if ($perf != $row[2] || $topX != $row[3] || $totalX != $row[4]) {
                 $rank = $j;
                 // next rank (only if not same performance)
             }
             mysql_query("\r\n                            UPDATE tempHigh SET\r\n                                rang = {$rank}\r\n                            WHERE xSerienstart = {$row['0']}\r\n                        ");
             if (mysql_errno() > 0) {
                 AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
             }
             $heat = $row[1];
             // keep current heat ID
             $perf = $row[2];
             $topX = $row[3];
             $totalX = $row[4];
         }
         mysql_free_result($result);
     }
     $arg = isset($_GET['arg1']) ? $_GET['arg1'] : (isset($_COOKIE['sort_speakres']) ? $_COOKIE['sort_speakres'] : 'pos');
     setcookie('sort_speakres', $arg1, time() + 2419200);
     // display all athletes
     if ($arg == "pos") {
         $argument = "ss.Position";
         $img_pos = "img/sort_act.gif";
     } else {
         if ($arg == "rang") {
             $argument = "orderRang, ss.Position";
             $img_rang = "img/sort_act.gif";
         } else {
             if ($relay == FALSE) {
                 // single event
                 $argument = "ss.Position";
                 $img_pos = "img/sort_act.gif";
             }
         }
     }
     $result = mysql_query("\r\n\t\t\tSELECT\r\n\t\t\t\trt.Name\r\n\t\t\t\t, rt.Typ\r\n\t\t\t\t, s.xSerie\r\n\t\t\t\t, s.Bezeichnung\r\n\t\t\t\t, s.Status\r\n\t\t\t\t, ss.xSerienstart\r\n\t\t\t\t, ss.Position\r\n\t\t\t\t, ss.Rang\r\n\t\t\t\t, a.Startnummer\r\n\t\t\t\t, at.Name\r\n\t\t\t\t, at.Vorname\r\n\t\t\t\t, at.Jahrgang\r\n\t\t\t\t, v.Name\r\n\t\t\t\t, LPAD(s.Bezeichnung,5,'0') as heatid\r\n\t\t\t\t, st.Bestleistung\r\n\t\t\t\t, at.xAthlet\r\n\t\t\t\t, at.Land                  \r\n                , if (t.rang > 0,  t.rang, 999999) as orderRang \r\n\t\t\tFROM\r\n\t\t\t\trunde AS r\r\n\t\t\t\tLEFT JOIN serie AS s ON (s.xRunde = r.xRunde )\r\n\t\t\t\tLEFT JOIN serienstart AS ss ON (ss.xSerie = s.xSerie)\r\n\t\t\t\tLEFT JOIN start AS st ON (st.xStart = ss.xStart)\r\n\t\t\t\tLEFT JOIN anmeldung AS a ON (a.xAnmeldung = st.xAnmeldung)\r\n\t\t\t\tLEFT JOIN athlet AS at ON (at.xAthlet = a.xAthlet)\r\n\t\t\t\tLEFT JOIN verein AS v ON (v.xVerein = at.xVerein)\r\n                LEFT JOIN tempHigh AS t ON (t.xSerienstart = ss.xSerienstart)    \r\n\t\t\t    LEFT JOIN rundentyp AS rt ON (rt.xRundentyp = r.xRundentyp)\r\n\t\t\tWHERE r.xRunde = {$round}   \t\t\t\r\n\t\t\tORDER BY                     \r\n\t\t\t\theatid ,\r\n\t\t\t\t" . $argument);
     if (mysql_errno() > 0) {
         // DB error
         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
     } else {
         // initialize variables
         $h = 0;
         $i = 0;
         $current_athlete = false;
         $curr_class = '';
         $resTable = new GUI_HighResultTable($round, $layout, $status);
         $resTable->printHeatTitleRegie($cat, $disc);
         while ($row = mysql_fetch_row($result)) {
             /*
              *  Heat headerline
              */
             if ($h != $row[2]) {
                 $h = $row[2];
                 // keep heat ID
                 if (is_null($row[0])) {
                     // only one round
                     $title = "{$strFinalround}  {$row['3']}";
                 } else {
                     // more than one round
                     $title = "{$row['0']}: {$row['1']}{$row['3']}";
                 }
                 $c = 0;
                 if ($status == $cfgRoundStatus['results_done']) {
                     $c = 1;
                     // increment colspan to include ranking
                 }
                 $resTable->printHeatTitle($row[2], $row[3], $title, $row[4], 'regie');
                 $resTable->printAthleteHeader('regie');
             }
             // ET new heat
             /*
              * Athlete data lines
              */
             $rank = '';
             $perfs = array();
             $res = mysql_query("\r\n\t\t\t\t\tSELECT\r\n\t\t\t\t\t\tr.Leistung\r\n\t\t\t\t\t\t, r.Info\r\n\t\t\t\t\tFROM\r\n\t\t\t\t\t\tresultat as r\r\n\t\t\t\t\tWHERE r.xSerienstart = {$row['5']}\r\n\t\t\t\t\tORDER BY\r\n\t\t\t\t\t\tr.xResultat DESC\r\n\t\t\t\t");
             if (mysql_errno() > 0) {
                 // DB error
                 AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
             } else {
                 if ($status == $cfgRoundStatus['results_done']) {
                     $rank = $row[7];
                 } else {
                     $rank = $row[17];
                 }
                 while ($resrow = mysql_fetch_row($res)) {
                     $perf = AA_formatResultMeter($resrow[0]);
                     $info = $resrow[1];
                     $perfs[] = "{$perf} ( {$info} )";
                 }
                 // end loop every tech result acc. programm mode
                 mysql_free_result($res);
             }
             $heatStart = AA_getCurrAthlete($row[2]);
             if ($heatStart > 0) {
                 if ($row[5] == $heatStart) {
                     $curr_class = "active";
                 }
             } else {
                 if (empty($perfs) && !$current_athlete) {
                     $current_athlete = true;
                     $curr_class = "active";
                 }
             }
             if ($rank == 999999) {
                 $rank = '';
             }
             $resTable->printAthleteLine($row[6], $row[8], "{$row['9']} {$row['10']}", '', '', AA_formatResultMeter($row[14]), $perfs, $fett, $rank, '', $row[15], $curr_class, 'regie');
             $curr_class = "";
         }
         $resTable->endTable();
         mysql_free_result($result);
     }
     // ET DB error
     mysql_query("UNLOCK TABLES");
 }
Пример #9
0
 function AA_sheets_processCombined($xCategory, $category, $wTyp)
 {
     require './config.inc.php';
     // get athlete info per category and team
     $sql = "\r\n        SELECT\r\n            DISTINCT(a.xAnmeldung)\r\n            , at.Name\r\n            , at.Vorname\r\n            , at.Jahrgang\r\n            , t.xTeam\r\n            , t.Name\r\n            , v.Name\r\n            , IF(at.xRegion = 0, at.Land, re.Anzeige) AS Land  \r\n        FROM\r\n            anmeldung AS a\r\n            LEFT JOIN athlet AS at ON (at.xAthlet = a.xAthlet)\r\n            INNER JOIN team AS t ON (t.xTeam = a.xTeam   )\r\n            LEFT JOIN verein AS v ON (v.xVerein = t.xVerein)\r\n            LEFT JOIN start as st ON (st.xAnmeldung = a.xAnmeldung  )\r\n            LEFT JOIN wettkampf as w ON (w.xWettkampf = st.xWettkampf)\r\n            LEFT JOIN region AS re ON (at.xRegion = re.xRegion)    \r\n        WHERE \r\n            a.xMeeting = " . $_COOKIE['meeting_id'] . "  \r\n            AND w.xKategorie = {$xCategory}\r\n            AND w.Typ = {$wTyp}\r\n        ORDER BY\r\n            t.xTeam\r\n    ";
     $results = mysql_query($sql);
     if (mysql_errno() > 0) {
         // DB error
         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
     } else {
         $evaluation = 5;
         // nbr of athletes included in total result
         $a = 0;
         $club = '';
         $info = '';
         $name = '';
         $points = 0;
         $team = '';
         $sep = '';
         $tm = '';
         $year = '';
         $country = '';
         while ($row = mysql_fetch_row($results)) {
             // store previous athlete before processing new athlete
             if ($a != $row[0] && $a > 0) {
                 $athleteList[] = array("points" => $points, "name" => $name, "year" => $year, "info" => $info, "country" => $country);
                 $points = 0;
                 $info = '';
                 $sep = '';
             }
             // store previous team before processing new team
             if ($tm != $row[4] && $tm > 0) {
                 usort($athleteList, "AA_sheets_cmp");
                 // sort athletes by points
                 // nbr of athletes to include in team result
                 $total = 0;
                 for ($i = 0; $i < $evaluation; $i++) {
                     $total = $total + $athleteList[$i]['points'];
                 }
                 $teamList[] = array("points" => $total, "name" => $team, "club" => $club, "athletes" => $athleteList);
                 $team = '';
                 $club = '';
                 unset($athleteList);
                 $sep = '';
             }
             $tm = $row[4];
             // keep current team
             // events
             $sql = "\r\n                SELECT\r\n                    d.Kurzname\r\n                    , d.Typ\r\n                    , MAX(r.Leistung)\r\n                    , r.Info\r\n                    , MAX(r.Punkte) AS pts\r\n                    , s.Wind\r\n                    , w.Windmessung\r\n                FROM\r\n                    start AS st USE INDEX (Anmeldung)\r\n                    LEFT JOIN serienstart AS ss ON (ss.xStart = st.xStart)\r\n                    LEFT JOIN resultat AS r ON (r.xSerienstart = ss.xSerienstart)\r\n                    LEFT JOIN serie AS s ON (s.xSerie = ss.xSerie) \r\n                    LEFT JOIN runde AS ru ON (ru.xRunde = s.xRunde)\r\n                    LEFT JOIN wettkampf AS w  ON (w.xWettkampf = st.xWettkampf)\r\n                    LEFT JOIN disziplin_" . $_COOKIE['language'] . " AS d ON (d.xDisziplin = w.xDisziplin)\r\n                WHERE \r\n                    st.xAnmeldung = {$row['0']}                 \r\n                    AND w.Typ = " . $cfgEventType[$strEventTypeClubCombined] . "  \r\n                    AND r.Info != '" . $cfgResultsHighOut . "'\r\n                GROUP BY\r\n                    st.xStart\r\n                ORDER BY\r\n                    ru.Datum\r\n                    , ru.Startzeit\r\n            ";
             $res = mysql_query($sql);
             if (mysql_errno() > 0) {
                 // DB error
                 AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
             } else {
                 while ($pt_row = mysql_fetch_row($res)) {
                     // set wind, if required
                     if ($pt_row[6] == 1) {
                         if ($pt_row[1] == $cfgDisciplineType[$strDiscTypeTrack]) {
                             $wind = " / " . $pt_row[5];
                         } else {
                             if ($pt_row[1] == $cfgDisciplineType[$strDiscTypeJump]) {
                                 $wind = " / " . $pt_row[3];
                             }
                         }
                     } else {
                         $wind = '';
                     }
                     // format output
                     if ($pt_row[1] == $cfgDisciplineType[$strDiscTypeJump] || $pt_row[1] == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $pt_row[1] == $cfgDisciplineType[$strDiscTypeThrow] || $pt_row[1] == $cfgDisciplineType[$strDiscTypeHigh]) {
                         $perf = AA_formatResultMeter($pt_row[2], true);
                     } else {
                         $perf = AA_formatResultTime($pt_row[2], true);
                     }
                     // calculate points
                     $points = $points + $pt_row[4];
                     // accumulate points
                     if ($pt_row[4] > 0) {
                         // any points for this event
                         $info = $info . $sep . $pt_row[0] . "&nbsp;(" . $perf . $wind . ")";
                         $sep = ", ";
                     }
                 }
                 // END WHILE combined events
                 mysql_free_result($res);
             }
             $a = $row[0];
             $name = $row[1] . " " . $row[2];
             $year = AA_formatYearOfBirth($row[3]);
             $team = $row[5];
             $club = $row[6];
             $country = $row[7];
         }
         // END WHILE athlete per category
         mysql_free_result($results);
         if (!empty($tm)) {
             // last athlete
             $athleteList[] = array("points" => $points, "name" => $name, "year" => $year, "info" => $info, "country" => $country);
             // last team
             usort($athleteList, "AA_sheets_cmp");
             // sort athletes by points
             $total = 0;
             for ($i = 0; $i < $evaluation; $i++) {
                 $total = $total + $athleteList[$i]['points'];
             }
             $teamList[] = array("points" => $total, "name" => $team, "club" => $club, "athletes" => $athleteList);
         }
         // print team sheets
         usort($teamList, "AA_sheets_cmp");
         foreach ($teamList as $team) {
             if (is_a($GLOBALS[$list], "PRINT_TeamSheet")) {
                 // page for printing
                 // page break after each team
                 if ($GLOBALS['AA_TC'] > 0) {
                     // not first team
                     $GLOBALS[$list]->insertPageBreak();
                 }
                 $GLOBALS['AA_TC']++;
                 // team counter
                 // set up list of other competitors
                 $sep = '';
                 $competitors = '';
                 foreach ($teamList as $comp) {
                     if ($comp['name'] != $team['name']) {
                         $competitors = $competitors . $sep . $comp['club'];
                         // club
                         $sep = ', ';
                     }
                 }
                 $GLOBALS[$list]->printHeader($team['club'] . " (" . $team['name'] . ")", $category, $competitors);
             } else {
                 $GLOBALS[$list]->printHeaderCombined($team['club'] . " (" . $team['name'] . ")", $category);
             }
             $i = 0;
             foreach ($team['athletes'] as $athlete) {
                 if ($i >= $evaluation) {
                     // show only athletes included in end result
                     break;
                 }
                 $i++;
                 $GLOBALS[$list]->printLineCombined($athlete['name'], $athlete['year'], $athlete['points'], $athlete['country']);
                 $GLOBALS[$list]->printDisciplinesCombined($athlete['info']);
             }
             if (is_a($GLOBALS[$list], "PRINT_TeamSheet")) {
                 // page for printing
                 $GLOBALS[$list]->printTotal($team['points']);
                 $GLOBALS[$list]->printFooter();
             } else {
                 $GLOBALS[$list]->printTotalCombined($team['points']);
             }
         }
         // FOREACH team
     }
     // ET DB error all teams
 }
Пример #10
0
 function AA_speaker_High($event, $round, $layout)
 {
     require './lib/cl_gui_resulttable.lib.php';
     require './config.inc.php';
     require './lib/common.lib.php';
     require './lib/results.lib.php';
     $status = AA_getRoundStatus($round);
     // No action yet
     if ($status == $cfgRoundStatus['open'] || $status == $cfgRoundStatus['enrolement_done'] || $status == $cfgRoundStatus['heats_in_progress']) {
         AA_printWarningMsg($strHeatsNotDone);
     } else {
         if ($status == $cfgRoundStatus['enrolement_pending']) {
             AA_printWarningMsg($strEnrolementNotDone);
         } else {
             if ($status >= $cfgRoundStatus['heats_done']) {
                 // show link to rankinglist if results done
                 if ($status == $cfgRoundStatus['results_done']) {
                     $menu = new GUI_Menulist();
                     $menu->addButton("print_rankinglist.php?round={$round}&type=single&formaction=speaker", $GLOBALS['strRankingList']);
                     $menu->addButton("print_rankinglist.php?round={$round}&type=single&formaction=speaker&show_efforts=sb_pb", $GLOBALS['strRankingListEfforts']);
                     $menu->printMenu();
                     echo "<p/>";
                 }
                 $prog_mode = AA_results_getProgramMode();
                 // display all athletes
                 $result = mysql_query("\r\n\t\t\tSELECT\r\n\t\t\t\trt.Name\r\n\t\t\t\t, rt.Typ\r\n\t\t\t\t, s.xSerie\r\n\t\t\t\t, s.Bezeichnung\r\n\t\t\t\t, s.Status\r\n\t\t\t\t, ss.xSerienstart\r\n\t\t\t\t, ss.Position\r\n\t\t\t\t, ss.Rang\r\n\t\t\t\t, a.Startnummer\r\n\t\t\t\t, at.Name\r\n\t\t\t\t, at.Vorname\r\n\t\t\t\t, at.Jahrgang\r\n\t\t\t\t, v.Name\r\n\t\t\t\t, LPAD(s.Bezeichnung,5,'0') as heatid\r\n\t\t\t\t, st.Bestleistung\r\n\t\t\t\t, at.xAthlet\r\n\t\t\t\t, at.Land\r\n\t\t\tFROM\r\n\t\t\t\trunde AS r\r\n\t\t\t\t, serie AS s\r\n\t\t\t\t, serienstart AS ss\r\n\t\t\t\t, start AS st\r\n\t\t\t\t, anmeldung AS a\r\n\t\t\t\t, athlet AS at\r\n\t\t\t\t, verein AS v\r\n\t\t\tLEFT JOIN rundentyp AS rt\r\n\t\t\t\tON rt.xRundentyp = r.xRundentyp\r\n\t\t\tWHERE r.xRunde = {$round}\r\n\t\t\tAND s.xRunde = r.xRunde\r\n\t\t\tAND ss.xSerie = s.xSerie\r\n\t\t\tAND st.xStart = ss.xStart\r\n\t\t\tAND a.xAnmeldung = st.xAnmeldung\r\n\t\t\tAND at.xAthlet = a.xAthlet\r\n\t\t\tAND v.xVerein = at.xVerein\r\n\t\t\tORDER BY\r\n\t\t\t\theatid\r\n\t\t\t\t, ss.Position\r\n\t\t");
                 if (mysql_errno() > 0) {
                     // DB error
                     AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                 } else {
                     // initialize variables
                     $h = 0;
                     $i = 0;
                     $resTable = new GUI_HighResultTable($round, $layout, $status);
                     while ($row = mysql_fetch_row($result)) {
                         /*
                          *  Heat headerline
                          */
                         if ($h != $row[2]) {
                             $h = $row[2];
                             // keep heat ID
                             if (is_null($row[0])) {
                                 // only one round
                                 $title = "{$strFinalround}  {$row['3']}";
                             } else {
                                 // more than one round
                                 $title = "{$row['0']}: {$row['1']}{$row['3']}";
                             }
                             $c = 0;
                             if ($status == $cfgRoundStatus['results_done']) {
                                 $c = 1;
                                 // increment colspan to include ranking
                             }
                             $resTable->printHeatTitle($row[2], $row[3], $title, $row[4]);
                             $resTable->printAthleteHeader();
                         }
                         // ET new heat
                         /*
                          * Athlete data lines
                          */
                         $rank = '';
                         $perfs = array();
                         $res = mysql_query("\r\n\t\t\t\t\tSELECT\r\n\t\t\t\t\t\tr.Leistung\r\n\t\t\t\t\t\t, r.Info\r\n\t\t\t\t\tFROM\r\n\t\t\t\t\t\tresultat as r\r\n\t\t\t\t\tWHERE r.xSerienstart = {$row['5']}\r\n\t\t\t\t\tORDER BY\r\n\t\t\t\t\t\tr.xResultat DESC\r\n\t\t\t\t");
                         if (mysql_errno() > 0) {
                             // DB error
                             AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                         } else {
                             if ($status == $cfgRoundStatus['results_done']) {
                                 $rank = $row[7];
                             }
                             while ($resrow = mysql_fetch_row($res)) {
                                 $perf = AA_formatResultMeter($resrow[0]);
                                 $info = $resrow[1];
                                 $perfs[] = "{$perf} ( {$info} )";
                             }
                             // end loop every tech result acc. programm mode
                             mysql_free_result($res);
                         }
                         $resTable->printAthleteLine($row[6], $row[8], "{$row['9']} {$row['10']}", AA_formatYearOfBirth($row[11]), $row[12], AA_formatResultMeter($row[14]), $perfs, $fett, $rank, $row[16], $row[15]);
                     }
                     $resTable->endTable();
                     mysql_free_result($result);
                 }
                 // ET DB error
             }
         }
     }
     // ET heat seeding done
 }
Пример #11
0
 function gen_result_xml_UKC_CM($file, $meeting_nr)
 {
     //function returns containing number of results in xml-file
     $nbr_effort_ukc = 0;
     global $cfgDisciplineType, $cfgEventType, $strEventTypeSingleCombined, $strEventTypeClubCombined, $strDiscTypeTrack, $strDiscTypeTrackNoWind, $strDiscTypeRelay, $strDiscTypeDistance, $cfgRoundStatus, $strDiscTypeJump, $strDiscTypeJumpNoWind, $strDiscTypeThrow, $strDiscTypeHigh, $cfgCombinedWO, $cfgCombinedDef, $cfgUKC_disc;
     $this->gzip_open($file);
     // begin xml
     $this->write_xml_open("kidDataset", array('version' => date('y-m-d')));
     $this->write_xml_open("event");
     //
     // output contest data
     //
     $indoor = '0';
     $query = "\r\n            SELECT\r\n                m.*\r\n                , s.Name as Stadion\r\n                , s.Ueber1000m\r\n                , s.Halle\r\n            FROM \r\n                meeting as m \r\n                LEFT JOIN stadion as s ON m.xStadion = s.xStadion \r\n            WHERE xMeeting = " . $_COOKIE['meeting_id'];
     $res = mysql_query($query);
     if (mysql_errno() > 0) {
         echo mysql_errno() . ": " . mysql_error();
     } else {
         $row = mysql_fetch_assoc($res);
         mysql_free_result($res);
         if (empty($meeting_nr)) {
             $this->write_xml_finished("eventNumber", $row['Nummer']);
             // not xControl for UBS kidscup
         } else {
             $this->write_xml_finished("eventNumber", $meeting_nr);
         }
         $this->write_xml_finished("name", str_replace('&', '&amp;', $row['Name']));
         $this->write_xml_finished("eventStart", $row['DatumVon']);
         $this->write_xml_finished("eventEnd", $row['DatumBis']);
         $this->write_xml_finished("location", $row['Ort']);
         $this->write_xml_finished("stadium", $row['Stadion']);
         $this->write_xml_finished("amountSpectators", " ");
         $this->write_xml_open("athletes");
         if ($row['Ueber1000m'] == 'y') {
             $global_rankadd = "A";
         }
         if ($row['Saison'] == 'I') {
             $indoor = "1";
         }
         // 1 = indoor , 0 = outdoor
     }
     // get enrolement per athlete
     $checkyear = date('Y') - 16;
     $sql = "SELECT DISTINCT \r\n                a.xAnmeldung\r\n                , at.Name\r\n                , at.Vorname\r\n                , at.Jahrgang\r\n                \r\n                , IF(a.Vereinsinfo = '', v.Name, a.Vereinsinfo)\r\n                , IF(at.xRegion = 0, at.Land, re.Anzeige)\r\n                , 0\r\n                , d.Name\r\n               \r\n                \r\n                \r\n                , ka.Alterslimite \r\n                , d.Code \r\n                , at.xAthlet\r\n                , at.Geschlecht               \r\n            FROM\r\n                anmeldung AS a\r\n                LEFT JOIN athlet AS at ON (at.xAthlet = a.xAthlet )\r\n                LEFT JOIN verein AS v  ON (v.xVerein = at.xVerein  )\r\n                LEFT JOIN start as st ON (st.xAnmeldung = a.xAnmeldung ) \r\n                LEFT JOIN wettkampf as w  ON (w.xWettkampf = st.xWettkampf) \r\n                LEFT JOIN disziplin_" . $_COOKIE['language'] . " as d ON (w.xDisziplin = d.xDisziplin)\r\n                LEFT JOIN kategorie AS k ON (k.xKategorie = w.xKategorie)\r\n                LEFT JOIN kategorie AS ka ON (ka.xKategorie = a.xKategorie)     \r\n                LEFT JOIN region as re ON (at.xRegion = re.xRegion) \r\n            WHERE a.xMeeting = " . $_COOKIE['meeting_id'] . "             \r\n            AND at.Jahrgang > {$checkyear} AND (d.Code = " . $cfgUKC_disc[0] . " || d.Code = " . $cfgUKC_disc[1] . " || d.Code = " . $cfgUKC_disc[2] . ")\r\n            AND st.anwesend = 0 \r\n            ORDER BY at.Geschlecht, at.Jahrgang,  at.Name, at.Vorname,  d.Anzeige";
     $results = mysql_query($sql);
     if (mysql_errno() > 0) {
         // DB error
         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
     } else {
         while ($row = mysql_fetch_row($results)) {
             if ($roundsUkc[$row[10]] == "") {
                 $roundsUkc[$row[10]] = 0;
             }
             $roundsUkc[$row[10]]++;
         }
     }
     //
     // get all disciplines
     //
     $selection = " (d.Code = " . $cfgUKC_disc[0] . " || d.Code = " . $cfgUKC_disc[1] . " || d.Code = " . $cfgUKC_disc[2] . ") AND ";
     $sql = "  SELECT                        \r\n                    w.Typ,\r\n                    w.Windmessung,\r\n                    d.Typ,\r\n                    d.Code,\r\n                    k.Code,\r\n                    w.xWettkampf,\r\n                    d.Kurzname,\r\n                    w.Mehrkampfcode,\r\n                    0,\r\n                    d.Staffellaeufer,  \r\n                    r.xRunde,\r\n                    w.info  \r\n                FROM \r\n                    wettkampf as w \r\n                    LEFT JOIN runde as r ON (w.xWettkampf = r.xWettkampf)  \r\n                LEFT JOIN\r\n                    disziplin_" . $_COOKIE['language'] . " as d ON d.xDisziplin = w.xDisziplin\r\n                LEFT JOIN\r\n                    kategorie as k ON k.xKategorie = w.xKategorie     \r\n                WHERE {$selection} r.xRunde > 0 AND  \r\n                   \r\n                    w.xMeeting = " . $_COOKIE['meeting_id'] . "                  \r\n                ORDER BY\r\n                    k.Code                      \r\n                    , w.info\r\n                    , w.xKategorie\r\n                    , d.Anzeige";
     // the order "k.Code, w.xKategorie" makes sense if there are multiple self made categories (without any code)
     $res = mysql_query($sql);
     if (mysql_errno() > 0) {
         echo mysql_errno() . ": " . mysql_error();
     } else {
         $current_type = "";
         $combined = "";
         $current_cat = "";
         $current_xcat = 0;
         $GLOBALS['rounds'] = array();
         $combined = array();
         $fetched_events = array();
         while ($row = mysql_fetch_array($res)) {
             //
             // generate results for combined events
             //
             //
             // first of all, print all single results (athletes and relays)
             //
             $order_perf = "";
             $valid_result = "";
             if ($row[2] == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $row[2] == $cfgDisciplineType[$strDiscTypeThrow]) {
                 $order_perf = "DESC";
             } else {
                 if ($row[2] == $cfgDisciplineType[$strDiscTypeJump]) {
                     if ($row[1] == 1) {
                         // with wind
                         $order_perf = "DESC";
                     } else {
                         // without wind
                         $order_perf = "DESC";
                     }
                 } else {
                     if ($row[2] == $cfgDisciplineType[$strDiscTypeHigh]) {
                         $order_perf = "DESC";
                         $valid_result = " AND (r.Info LIKE '%O%') ";
                     } else {
                         $order_perf = "ASC";
                     }
                 }
             }
             // check if merged rounds
             $sqlEvents = AA_getMergedEventsFromEvent($row[5]);
             if (empty($sqlEvents)) {
                 $sqlSeparate = "ru.xRunde = " . $row[10];
             } else {
                 $sqlSeparate = "ss.RundeZusammen = " . $row[10];
             }
             $checkyear = date('Y') - 16;
             $selection = " at.Jahrgang > {$checkyear} AND ";
             // by merged rounds the result must be uploded separate
             $query = "\r\n                        SELECT\r\n                            ss.xSerienstart\r\n                            , ss.Rang\r\n                            , ss.Qualifikation\r\n                            , r.Leistung\r\n                            , r.Info\r\n                            , s.Bezeichnung\r\n                            , s.Wind\r\n                            , r.Punkte\r\n                            , v.Name\r\n                            , at.Name\r\n                            , at.Vorname\r\n                            , at.Jahrgang\r\n                            , at.Land\r\n                            , at.xAthlet\r\n                            , at.Lizenznummer\r\n                            , ru.Datum\r\n                            , rt.Code as Typ\r\n                            , at.Bezahlt\r\n                            , at.Geburtstag\r\n                            , at.Geschlecht\r\n                            , v.xCode as Vereincode\r\n                            , k.Code as Katathlet\r\n                            , ru.xRunde\r\n                            , s.Handgestoppt\r\n                            , at.Lizenztyp\r\n                            , a.Vereinsinfo\r\n                            , rt.Typ\r\n                            \r\n                            , if (ss.RundeZusammen > 0,ss.RundeZusammen,ru.xRunde) as spezRound     \r\n                            , a.kidID\r\n                            , at.Adresse\r\n                            , at.Plz\r\n                            , at.Ort\r\n                            , at.Email  \r\n                            , re.Anzeige as Kanton   \r\n                            , v.Name as Vereinname\r\n                            , a.xAnmeldung\r\n                        FROM\r\n                            runde as ru\r\n                            LEFT JOIN serie AS s ON (ru.xRunde = s.xRunde)\r\n                            LEFT JOIN serienstart AS ss ON (ss.xSerie = s.xSerie)\r\n                            LEFT JOIN resultat AS r ON (r.xSerienstart = ss.xSerienstart)\r\n                            LEFT JOIN start AS st ON (st.xStart = ss.xStart)\r\n                            LEFT JOIN anmeldung AS a ON (a.xAnmeldung = st.xAnmeldung)\r\n                            LEFT JOIN athlet AS at ON (at.xAthlet = a.xAthlet)\r\n                            LEFT JOIN verein AS v  ON (v.xVerein = at.xVerein  )\r\n                            LEFT JOIN rundentyp_" . $_COOKIE['language'] . " AS rt ON (ru.xRundentyp = rt.xRundentyp)\r\n                            LEFT JOIN kategorie AS k ON (a.xKategorie = k.xKategorie)                             \r\n                            LEFT JOIN region AS re ON (re.xRegion = at.xRegion) \r\n                        WHERE {$selection} {$sqlSeparate}\r\n                        AND ru.Status = " . $cfgRoundStatus['results_done'] . "\r\n                        AND ru.StatusUploadUKC = 0\r\n                        AND r.Leistung >= " . $GLOBALS['cfgInvalidResult']['DNS']['code'] . "\r\n                        \r\n                        {$valid_result}\r\n                        ORDER BY \r\n                            at.Jahrgang\r\n                            , at.xAthlet\r\n                            , ru.xRunde\r\n                            , r.Leistung " . $order_perf;
             $res_results = mysql_query($query);
             if (mysql_errno() > 0) {
                 echo mysql_Error();
             } else {
                 $id = 0;
                 // athletes id
                 $ru = 0;
                 // round id
                 while ($row_results = mysql_fetch_assoc($res_results)) {
                     // store round ids for later purpose
                     $GLOBALS['rounds'][] = $row_results['xRunde'];
                     //
                     // athlete results
                     //
                     if ($ru == $row_results['xRunde'] && $id == $row_results['xAthlet']) {
                         continue;
                     }
                     $ru = $row_results['xRunde'];
                     if ($id != $row_results['xAthlet']) {
                         // new athlete
                         $id = $row_results['xAthlet'];
                         if (empty($row_results['Lizenznummer']) && empty($row_results['kidID'])) {
                             $inMasterData = 1;
                             $licensePaid = 1;
                         } else {
                             $inMasterData = 0;
                             if ($row_results['Bezahlt'] == 'y') {
                                 $licensePaid = 1;
                             } else {
                                 $licensePaid = 0;
                             }
                         }
                     }
                     $perf = 0;
                     // result for alabus
                     $wind = "";
                     $perfRounded = 0;
                     // result for combined detail text
                     // add effort parameters
                     $wind = "";
                     if ($row[2] == $cfgDisciplineType[$strDiscTypeJump] || $row[2] == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $row[2] == $cfgDisciplineType[$strDiscTypeThrow] || $row[2] == $cfgDisciplineType[$strDiscTypeHigh]) {
                         $perf = AA_alabusDistance($row_results['Leistung']);
                         $perfRounded = AA_formatResultMeter($row_results['Leistung']);
                         $wind = strtr($row_results['Info'], ",", ".");
                     } else {
                         $perf = AA_alabusTime($row_results['Leistung']);
                         $perfRounded = AA_formatResultTime($row_results['Leistung'], true);
                         $wind = strtr($row_results['Wind'], ",", ".");
                     }
                     if ($row[1] == 0 || $wind == "-" || $wind == "") {
                         $wind = " ";
                     }
                     if (is_numeric($row_results['Bezeichnung'])) {
                         $row_results['Bezeichnung'] = sprintf("%02s", $row_results['Bezeichnung']);
                     } else {
                         if (strlen($row_results['Bezeichnung']) == 1) {
                             $row_results['Bezeichnung'] .= "_";
                         }
                     }
                     $rank = " ";
                     $row_results['Bezeichnung'] = " ";
                     //
                     //add points for combined contests
                     if ($combined[$row_results['xAthlet']][$row[3]]['points'] < $row_results['Punkte']) {
                         $license = $row_results['Lizenznummer'];
                         if ($row_results['Lizenznummer'] == 0) {
                             $license = '';
                         }
                         $kidsID_upload = $row_results['kidID'];
                         if ($row_results['kidID'] == 0) {
                             $kidsID_upload = '';
                         }
                         if ($row[3] == 30) {
                             $perfRounded = "r" . $perfRounded;
                             // r = run
                         }
                         if ($row[3] == 331) {
                             $perfRounded = "j" . $perfRounded;
                             // j = jump
                         }
                         if ($row[3] == 386) {
                             $perfRounded = "t" . $perfRounded;
                             // t = throw
                         }
                         $combined[$row_results['xAthlet']][$row[3]] = array('wind' => $wind, 'kindOfLap' => " " . $row_results['Typ'], 'lap' => $row_results['Bezeichnung'], 'placeAddon' => $rankadd, 'indoor' => $indoor, 'points' => $row_results['Punkte'], 'effort' => $perfRounded, 'discipline' => $row[6], 'license' => $license, 'kidID' => $kidsID_upload, 'inMasterData' => $inMasterData, 'licensePaid' => $licensePaid, 'DateOfEffort' => $row_results['Datum'], 'lastName' => htmlspecialchars($row_results['Name']), 'firstName' => htmlspecialchars($row_results['Vorname']), 'birthDate' => $row_results['Jahrgang'], 'sex' => strtoupper($row_results['Geschlecht']), 'nationality' => $row_results['Land'], 'adress' => htmlspecialchars($row_results['Adresse']), 'plz' => $row_results['Plz'], 'city' => htmlspecialchars($row_results['Ort']), 'email' => $row_results['Email'], 'canton' => $row_results['Kanton'], 'accountName' => htmlspecialchars($row_results['Vereinname']), 'priority' => $combinedPriority, 'licenseType' => $row_results['Lizenztyp'], 'dCode' => $row_results['dCode'], 'xAnmeldung' => $row_results['xAnmeldung'], 'xSerienstart' => $row_results['xSerienstart'], 'Leistung' => $row_results['Leistung'], 'xathlete' => $row_results['xAthlet']);
                         // category of athlete, used for calculating the rankings
                         $combined[$row_results['xAthlet']]['catathlete'] = $row_results['Jahrgang'];
                     }
                     // check on relevant for bestlist
                     $relevant = 1;
                     if ($row_results['Typ'] == '0') {
                         // (ohne)
                         $row_results['Bezeichnung'] = '';
                     }
                     // output result data
                     if ($wind > "2" && $row[2] == $cfgDisciplineType[$strDiscTypeJump]) {
                         // since we get only the best result per xSerienstart,
                         // here we'll get the next with valid wind
                         $res_wind = mysql_query("\r\n                                        SELECT Info, Leistung FROM\r\n                                            resultat\r\n                                        WHERE\r\n                                            xSerienstart = " . $row_results['xSerienstart'] . "\r\n                                        ORDER BY\r\n                                            Leistung DESC");
                         if (mysql_errno() > 0) {
                             // DB error
                             AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                         } else {
                             while ($row_wind = mysql_fetch_array($res_wind)) {
                                 if ($row_wind[0] <= 2) {
                                     $perf = AA_alabusDistance($row_wind[1]);
                                     if ($perf == -98) {
                                         // -98 = Fehlversuch
                                         break;
                                     }
                                     $nbr_effort_ukc++;
                                     break;
                                 }
                             }
                         }
                     }
                     // end if wind > 2
                 }
                 // end while res_results
             }
         }
         $min_age = date('Y') - 7;
         // check on last combined event
         if (!empty($combined) && $combined_dis < 9000) {
             // combined codes 9000 and above are self made disciplines
             // calc points
             foreach ($combined as $xathlet => $disc) {
                 $points = 0;
                 $eDetails = "";
                 foreach ($disc as $xdisc => $tmp) {
                     if ($xdisc == "catathlete") {
                         continue;
                     }
                     $pointsUKC = AA_utils_calcPointsUKC(0, $tmp['Leistung'], 0, $tmp['sex'], $tmp['xSerienstart'], $xathlet, $tmp['xAnmeldung'], $xdisc);
                     $points += $pointsUKC;
                     mysql_query("UPDATE resultat SET\r\n                                                    Punkte = {$pointsUKC}\r\n                                              WHERE\r\n                                                    xSerienstart = " . $tmp['xSerienstart']);
                     if (mysql_errno() > 0) {
                         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                     }
                     AA_StatusChanged(0, 0, $tmp['xSerienstart']);
                     if ($tmp['wind'] == " ") {
                         $tmp['wind'] = "";
                     } else {
                         if ($tmp['wind'] >= 0) {
                             $tmp['wind'] = "+" . $tmp['wind'];
                         } else {
                             $tmp['wind'] = $tmp['wind'];
                         }
                     }
                     $eDetails .= $tmp['effort'] . $tmp['wind'] . "/";
                     $birthDate = $tmp['birthDate'];
                     $sex = $tmp['sex'];
                     $tmp_xathlete = $tmp['xathlete'];
                 }
                 $eDetails = substr($eDetails, 0, -1);
                 $points = sprintf("%05d", $points);
                 $combined[$xathlet]['points'] = $points;
                 $combined[$xathlet]['edetails'] = $eDetails;
                 if ($birthDate > $min_age) {
                     $birthDate = $min_age;
                 }
                 $combined[$xathlet]['birthDate'] = $sex . $birthDate;
                 // need for sort in combination
                 $combined[$xathlet]['xathlete'] = $tmp_xathlete;
             }
             // sort for points
             array_sort($combined, '!birthDate', '!points');
             // write
             $cRank = 0;
             // rank counter
             $lp = 0;
             // remembers points of last athlete
             foreach ($combined as $xathlet => $disc) {
                 if ($roundsUkc[$disc['xathlete']] != 3) {
                     // enrolement for 3 kids cup disciplines
                     continue;
                 }
                 if ($disc['birthDate'] != $birthDate_keep) {
                     // in combination sex and birthdate
                     $cRank = 0;
                 }
                 $cRank++;
                 if ($lp != $disc['points'] || $disc['points'] == 0) {
                     $lp = $disc['points'];
                     $combined[$xathlet]['rank'] = $cRank;
                 } else {
                     // same total points
                     $c = 0;
                     $keep_c = 0;
                     for ($i = 0; $i < sizeof($cfgUKC_disc); $i++) {
                         if ($disc_keep[$cfgUKC_disc[$i]]['points'] > $disc[$cfgUKC_disc[$i]]['points']) {
                             $keep_c++;
                         } else {
                             $c++;
                         }
                     }
                     $more = ceil(sizeof($cfgUKC_disc) / 2);
                     if (sizeof($cfgUKC_disc) % 2 == 0) {
                         // combined with even number discs
                         $more++;
                     }
                     if ($keep_c >= $more && $keep_c > $c) {
                         $lp = $disc['points'];
                         $combined[$xathlet]['rank'] = $cRank;
                     } else {
                         if ($c >= $more && $c > $keep_c) {
                             $combined[$xathlet_keep]['rank'] = $cRank;
                             $combined[$xathlet]['rank'] = $cRank - 1;
                         }
                     }
                 }
                 // get information for athlete
                 $tmp = $disc;
                 $tmp['points'] = null;
                 $tmp['edetails'] = null;
                 $tmp['birthDate'] = substr($tmp['birthDate'], 1, 4);
                 $tmp['catathlete'] = null;
                 $tmp = array_values($tmp);
                 usort($tmp, array($this, "sort_perdate"));
                 $tmp = $tmp[0];
                 $run = '';
                 $jump = '';
                 $throw = '';
                 list($perf1, $perf2, $perf3) = split('[/]', $disc['edetails']);
                 if (substr($perf1, 0, 1) == 'r') {
                     $run = substr($perf1, 1);
                 } elseif (substr($perf1, 0, 1) == 'j') {
                     $jump = substr($perf1, 1);
                 } elseif (substr($perf1, 0, 1) == 't') {
                     $throw = substr($perf1, 1);
                 }
                 if (substr($perf2, 0, 1) == 'r') {
                     $run = substr($perf2, 1);
                 } elseif (substr($perf2, 0, 1) == 'j') {
                     $jump = substr($perf2, 1);
                 } elseif (substr($perf2, 0, 1) == 't') {
                     $throw = substr($perf2, 1);
                 }
                 if (substr($perf3, 0, 1) == 'r') {
                     $run = substr($perf3, 1);
                 } elseif (substr($perf3, 0, 1) == 'j') {
                     $jump = substr($perf3, 1);
                 } elseif (substr($perf3, 0, 1) == 't') {
                     $throw = substr($perf3, 1);
                 }
                 if ($run == -1 || $jump == -1 || $throw == -1) {
                     $cRank = $cRank - 1;
                     continue;
                 }
                 $xathlet_keep = $xathlet;
                 $disc_keep = $disc;
                 $birthDate_keep = $disc['birthDate'];
             }
             foreach ($combined as $xathlet => $disc) {
                 if ($roundsUkc[$disc['xathlete']] != 3) {
                     // enrolement for 3 kids cup disciplines
                     continue;
                 }
                 // get information for athlete
                 $tmp = $disc;
                 $tmp['points'] = null;
                 $tmp['edetails'] = null;
                 $tmp['birthDate'] = substr($tmp['birthDate'], 1, 4);
                 $tmp['catathlete'] = null;
                 $tmp = array_values($tmp);
                 // usort($tmp, array($this, "sort_perdate"));
                 $tmp = $tmp[0];
                 $run = '';
                 $jump = '';
                 $throw = '';
                 list($perf1, $perf2, $perf3) = split('[/]', $disc['edetails']);
                 if (substr($perf1, 0, 1) == 'r') {
                     $run = substr($perf1, 1);
                 } elseif (substr($perf1, 0, 1) == 'j') {
                     $jump = substr($perf1, 1);
                 } elseif (substr($perf1, 0, 1) == 't') {
                     $throw = substr($perf1, 1);
                 }
                 if (substr($perf2, 0, 1) == 'r') {
                     $run = substr($perf2, 1);
                 } elseif (substr($perf2, 0, 1) == 'j') {
                     $jump = substr($perf2, 1);
                 } elseif (substr($perf2, 0, 1) == 't') {
                     $throw = substr($perf2, 1);
                 }
                 if (substr($perf3, 0, 1) == 'r') {
                     $run = substr($perf3, 1);
                 } elseif (substr($perf3, 0, 1) == 'j') {
                     $jump = substr($perf3, 1);
                 } elseif (substr($perf3, 0, 1) == 't') {
                     $throw = substr($perf3, 1);
                 }
                 if ($run == -1 || $jump == -1 || $throw == -1) {
                     continue;
                 }
                 $this->write_xml_open("athlete", array('license' => $tmp['license'], 'kidID' => $tmp['kidID']));
                 $this->write_xml_open("efforts");
                 $this->write_xml_finished("run", $run);
                 $this->write_xml_finished("throw", $throw);
                 $this->write_xml_finished("jump", $jump);
                 $this->write_xml_finished("totalPoints", AA_alabusScore($disc['points']));
                 $this->write_xml_finished("position", $disc['rank']);
                 $this->write_xml_close("efforts");
                 if (empty($tmp['license']) && empty($tmp['kidID'])) {
                     $this->write_xml_open("personalData");
                     $this->write_xml_finished("lastName", $tmp['lastName']);
                     $this->write_xml_finished("firstName", $tmp['firstName']);
                     $this->write_xml_finished("ageGroup", $tmp['birthDate']);
                     $this->write_xml_finished("sex", $tmp['sex']);
                     $this->write_xml_finished("street", $tmp['adress']);
                     $this->write_xml_finished("zipCode", $tmp['plz']);
                     $this->write_xml_finished("city", $tmp['city']);
                     $this->write_xml_finished("club", $tmp['accountName']);
                     $this->write_xml_finished("email", $tmp['email']);
                     $this->write_xml_finished("canton", $tmp['canton']);
                     $this->write_xml_close("personalData");
                 }
                 $this->write_xml_close("athlete");
                 $nbr_effort_ukc++;
                 $birthDate_keep = $disc['birthDate'];
             }
         }
         $combined = array();
         // get the svm results
         mysql_free_result($res);
         $res = mysql_query("\r\n                SELECT\r\n                    w.Typ,\r\n                    w.Windmessung,\r\n                    d.Typ,\r\n                    d.Code,\r\n                    k.Code,\r\n                    w.xWettkampf,\r\n                    d.Kurzname,\r\n                    w.Mehrkampfcode,\r\n                    w.xKategorie,\r\n                    ks.Code,\r\n                    MAX(r.Datum)\r\n                FROM \r\n                    runde as r\r\n                LEFT JOIN \r\n                    wettkampf as w USING(xWettkampf) \r\n                LEFT JOIN\r\n                    disziplin_" . $_COOKIE['language'] . " as d ON d.xDisziplin = w.xDisziplin\r\n                LEFT JOIN\r\n                    kategorie as k ON k.xKategorie = w.xKategorie\r\n                LEFT JOIN\r\n                    kategorie_svm as ks ON ks.xKategorie_svm = w.xKategorie_svm\r\n                WHERE    xMeeting = " . $_COOKIE['meeting_id'] . "\r\n                GROUP BY w.xKategorie\r\n                ORDER BY\r\n                    w.xWettkampf\r\n            ");
         if (mysql_errno() > 0) {
             echo mysql_errno() . ": " . mysql_error();
         } else {
             while ($row = mysql_fetch_array($res)) {
                 //
                 // open rankinlist_team lib for calculating the svm points
                 //
                 if ($row[0] > $cfgEventType[$strEventTypeSingleCombined]) {
                     $this->write_xml_open("discipline", array('sportDiscipline' => $row[9], 'licenseCategory' => $row[4]));
                     $this->write_xml_open("teams");
                     $GLOBALS['doe'] = $row[10];
                     // date of team effort (last round date)
                     $GLOBALS['rankadd'] = $global_rankadd;
                     AA_rankinglist_Team($row[8], 'xml', "", false, $this);
                 }
             }
         }
         // close last tags
         $this->close_open_tags();
     }
     $this->gzip_close();
     return $nbr_effort_ukc;
 }
Пример #12
0
    function AA_speaker_Tech($event, $round, $layout)
    {
        require './lib/cl_gui_resulttable.lib.php';
        require './config.inc.php';
        require './lib/common.lib.php';
        require './lib/results.lib.php';
        $status = AA_getRoundStatus($round);
        $mergedMain = AA_checkMainRound($round);
        if ($mergedMain != 1) {
            // No action yet
            if ($status == $cfgRoundStatus['open'] || $status == $cfgRoundStatus['enrolement_done'] || $status == $cfgRoundStatus['heats_in_progress']) {
                AA_printWarningMsg($strHeatsNotDone);
            } else {
                if ($status == $cfgRoundStatus['enrolement_pending']) {
                    AA_printWarningMsg($strEnrolementNotDone);
                } else {
                    if ($status >= $cfgRoundStatus['heats_done']) {
                        $temp = mysql_query("\r\n\t\t\tCREATE TABLE `temp` (\r\n  `id` int(10) NOT NULL auto_increment,\r\n  `athlet` int(10) NOT NULL default '0',\r\n  `leistung` int(11) NOT NULL default '0',\r\n  `rang` int(10) NOT NULL default '0',\r\n  PRIMARY KEY  (`id`)\r\n) TYPE=MyISAM AUTO_INCREMENT=1\r\n\t\t");
                        if (mysql_errno() > 0) {
                            // DB error
                            AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                        }
                        $sql = "\r\n            SELECT\r\n                rt.Name\r\n                , rt.Typ\r\n                , s.xSerie\r\n                , s.Bezeichnung\r\n                , s.Wind\r\n                , s.Status\r\n                , ss.xSerienstart\r\n                , ss.Position\r\n                , ss.Rang\r\n                , a.Startnummer\r\n                , at.Name\r\n                , at.Vorname\r\n                , at.Jahrgang\r\n                , v.Name\r\n                , LPAD(s.Bezeichnung,5,'0') as heatid\r\n                , w.Windmessung\r\n                , at.xAthlet\r\n                , at.Land\r\n            FROM\r\n                runde AS r\r\n                LEFT JOIN serie AS s ON (s.xRunde = r.xRunde )\r\n                LEFT JOIN serienstart AS ss ON (ss.xSerie = s.xSerie)\r\n                LEFT JOIN start AS st ON (st.xStart = ss.xStart)\r\n                LEFT JOIN anmeldung AS a ON (a.xAnmeldung = st.xAnmeldung)\r\n                LEFT JOIN athlet AS at ON (at.xAthlet = a.xAthlet)\r\n                LEFT JOIN verein AS v ON (v.xVerein = at.xVerein)\r\n                LEFT JOIN wettkampf AS w ON (w.xWettkampf = r.xWettkampf)\r\n                LEFT JOIN rundentyp_" . $_COOKIE['language'] . " AS rt ON rt.xRundentyp = r.xRundentyp\r\n            WHERE \r\n                r.xRunde = {$round}   \r\n            ORDER BY\r\n                heatid\r\n                , ss.Position\r\n        ";
                        $temp = mysql_query($sql);
                        if (mysql_errno() > 0) {
                            // DB error
                            AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                        } else {
                            while ($row = mysql_fetch_row($temp)) {
                                $tempsql = "SELECT\r\n\t\t\t\t\t\tMAX(r.Leistung) As maxLeistung\r\n\t\t\t\t\t\t\tFROM\r\n\t\t\t\t\t\tresultat AS r\r\n\t\t\t\t\tWHERE r.xSerienstart = {$row['6']}";
                                $tempres = mysql_query($tempsql);
                                if (mysql_errno() > 0) {
                                    // DB error
                                    AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                } else {
                                    while ($restemp = mysql_fetch_row($tempres)) {
                                        if (!empty($restemp[0])) {
                                            mysql_query("INSERT INTO `temp` (  `athlet` , `leistung` , `rang`) \r\n\t\t\t\t                        VALUES ({$row['6']}, {$restemp['0']} , 1);");
                                            if (mysql_errno() > 0) {
                                                // DB error
                                                AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                            }
                                        }
                                    }
                                }
                                mysql_free_result($tempres);
                            }
                            mysql_free_result($temp);
                        }
                        $xrang = 1;
                        $templeistung = 0;
                        $temprang = mysql_query("SELECT * FROM temp ORDER BY leistung DESC");
                        while ($rowrang = mysql_fetch_row($temprang)) {
                            if ($rowrang[2] == $templeistung) {
                                $rangieren = mysql_query("UPDATE temp SET rang = {$yrang} WHERE id={$rowrang['0']}");
                            } else {
                                $rangieren = mysql_query("UPDATE temp SET rang = {$xrang} WHERE id={$rowrang['0']}");
                                $yrang = $xrang;
                            }
                            $templeistung = $rowrang[2];
                            $xrang = $xrang + 1;
                        }
                        // if this is a combined event, rank all rounds togheter
                        $roundSQL = "";
                        if ($combined) {
                            $roundSQL = "AND s.xRunde IN (";
                            $res_c = mysql_query("SELECT xRunde FROM runde WHERE xWettkampf = " . $event);
                            while ($row_c = mysql_fetch_array($res_c)) {
                                $roundSQL .= $row_c[0] . ",";
                            }
                            $roundSQL = substr($roundSQL, 0, -1) . ")";
                        } else {
                            $roundSQL = "AND s.xRunde = {$round}";
                        }
                        $countAthlete = 0;
                        $sql_at = "SELECT \r\n                       Count(*)\r\n                 FROM \r\n                        start AS s                      \r\n                 WHERE   \r\n                        s.xWettkampf = " . $event;
                        $result_at = mysql_query($sql_at);
                        if (mysql_errno() > 0) {
                            // DB error
                            AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                        }
                        $row_at = mysql_fetch_row($result_at);
                        if (mysql_num_rows($result_at) > 0) {
                            $countAthlete = $row_at[0];
                        }
                        // show link to rankinglist if results done
                        if ($status == $cfgRoundStatus['results_done']) {
                            $menu = new GUI_Menulist();
                            $menu->addButton("print_rankinglist.php?event={$event}&round={$round}&type=single&formaction=speaker", $GLOBALS['strRankingList']);
                            $menu->addButton("print_rankinglist.php?event={$event}&round={$round}&type=single&formaction=speaker&show_efforts=sb_pb", $GLOBALS['strRankingListEfforts']);
                            $menu->printMenu();
                            echo "<p/>";
                        }
                        $svm = AA_checkSVM(0, $round);
                        // decide whether to show club or team name
                        $prog_mode = AA_results_getProgramMode();
                        // find current athlete (show yellow) when more than one attempt
                        $roundSQL_C = substr($roundSQL, 4);
                        $sql_curr = "SELECT \r\n                    count( * ) , \r\n                    ss.xSerienstart,\r\n                    if (ss.Position2 > 0, if (ss.Position3 > 0, ss.Position3, ss.Position2) , ss.Position ) as posOrder,\r\n                    s.MaxAthlet,\r\n                    ss.Position2,\r\n                    ss.Position3\r\n              FROM \r\n                    resultat as r \r\n                    LEFT JOIN serienstart AS ss ON ( r.xSerienstart = ss.xSerienstart)\r\n                    LEFT JOIN serie AS s ON (ss.xSerie = s.xSerie )\r\n              WHERE                     \r\n                    {$roundSQL_C}  \r\n              GROUP BY ss.xSerienstart\r\n              ORDER BY posOrder ";
                        $res_curr = mysql_query($sql_curr);
                        if (mysql_errno() > 0) {
                            AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                        } else {
                            $ss = 0;
                            $keep_ss = 0;
                            // current athlete to show yellow
                            $keep_ss_first = 0;
                            // first athlete is current when all have same count of attempts
                            $c = 0;
                            $z = 0;
                            $maxAthlete = 0;
                            while ($row_curr = mysql_fetch_row($res_curr)) {
                                if ($z > 0 && $z == $maxAthlete) {
                                    break;
                                }
                                if ($c > 0) {
                                    if ($row_curr[0] < $c) {
                                        $keep_ss_save = $keep_ss;
                                        $keep_ss = $row_curr[1];
                                        break;
                                    }
                                }
                                $c = $row_curr[0];
                                $ss = $row_curr[1];
                                if ($z == 0) {
                                    $keep_ss_first = $row_curr[1];
                                    if ($row_curr[4] > 0 || $row_curr[5] > 0) {
                                        $maxAthlete = $row_curr[3];
                                    }
                                }
                                $z++;
                            }
                        }
                        if ($prog_mode == 0) {
                            if ($keep_ss == 0 && $r < $r_attempts) {
                                $keep_ss = $keep_ss_first;
                            } else {
                                if ($r < $r_attempts) {
                                    $keep_ss = $keep_ss_save;
                                }
                            }
                        } else {
                            if ($keep_ss == 0 && $z % $countAthlete == 0) {
                                $keep_ss = $keep_ss_first;
                            }
                        }
                        $arg = isset($_GET['arg']) ? $_GET['arg'] : (isset($_COOKIE['sort_speaker']) ? $_COOKIE['sort_speaker'] : 'pos');
                        setcookie('sort_speaker', $arg, time() + 2419200);
                        // display all athletes
                        if ($arg == "nbr" && !$relay) {
                            $argument = "a.Startnummer";
                            $img_nbr = "img/sort_act.gif";
                        } else {
                            if ($arg == "pos") {
                                $argument = "ss.Position";
                                $img_pos = "img/sort_act.gif";
                            } else {
                                if ($arg == "name") {
                                    $argument = "at.Name, at.Vorname";
                                    $img_name = "img/sort_act.gif";
                                } else {
                                    if ($arg == "club") {
                                        if ($svm) {
                                            $argument = "te.Name, a.Startnummer";
                                        } else {
                                            $argument = "v.Name, a.Startnummer";
                                        }
                                        $img_club = "img/sort_act.gif";
                                    } else {
                                        if ($arg == "perf") {
                                            $argument = "st.Bestleistung, ss.Position";
                                            $img_perf = "img/sort_act.gif";
                                        } else {
                                            if ($arg == "rang") {
                                                $argument = "t.rang, ss.Position";
                                                $img_rang = "img/sort_act.gif";
                                            } else {
                                                if ($relay == FALSE) {
                                                    // single event
                                                    $argument = "ss.Position";
                                                    $img_pos = "img/sort_act.gif";
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        $sql = "\r\n            SELECT\r\n                rt.Name\r\n                , rt.Typ\r\n                , s.xSerie\r\n                , s.Bezeichnung\r\n                , s.Wind\r\n                , s.Status\r\n                , ss.xSerienstart\r\n                , ss.Position\r\n                , ss.Rang\r\n                , a.Startnummer\r\n                , at.Name\r\n                , at.Vorname\r\n                , at.Jahrgang\r\n                , if('" . $svm . "', te.Name, IF(a.Vereinsinfo = '', v.Name, a.Vereinsinfo))   \r\n                , LPAD(s.Bezeichnung,5,'0') as heatid\r\n                , w.Windmessung\r\n                , st.Bestleistung\r\n                , at.xAthlet\r\n                , at.Land\r\n                , t.rang\r\n                , r.xRunde\r\n            FROM\r\n                runde AS r\r\n                LEFT JOIN serie AS s ON (s.xRunde = r.xRunde     )\r\n                LEFT JOIN serienstart AS ss ON (ss.xSerie = s.xSerie)\r\n                LEFT JOIN start AS st ON (st.xStart = ss.xStart)\r\n                LEFT JOIN anmeldung AS a ON (a.xAnmeldung = st.xAnmeldung)\r\n                LEFT JOIN athlet AS at ON (at.xAthlet = a.xAthlet)\r\n                LEFT JOIN verein AS v ON (v.xVerein = at.xVerein)\r\n                LEFT JOIN team AS te ON(a.xTeam = te.xTeam) \r\n                LEFT JOIN wettkampf AS w ON (w.xWettkampf = r.xWettkampf)\r\n                LEFT JOIN temp AS t ON (t.athlet = ss.xSerienstart)\r\n                LEFT JOIN rundentyp_" . $_COOKIE['language'] . " AS rt ON rt.xRundentyp = r.xRundentyp\r\n            WHERE \r\n                r.xRunde = {$round}  \r\n            ORDER BY s.xSerie, \r\n                " . $argument . "\r\n        ";
                        $result = mysql_query($sql);
                        if (mysql_errno() > 0) {
                            // DB error
                            AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                        } else {
                            // initialize variables
                            $h = 0;
                            $i = 0;
                            $r = 0;
                            $resTable = new GUI_TechResultTable($round, $layout, $status);
                            while ($row = mysql_fetch_row($result)) {
                                /*
                                 *  Heat headerline
                                 */
                                if ($h != $row[2]) {
                                    $h = $row[2];
                                    // keep heat ID
                                    if (is_null($row[0])) {
                                        // only one round
                                        $title = "{$strFinalround} {$row['3']}";
                                    } else {
                                        // more than one round
                                        $title = "{$row['0']}: {$row['1']}{$row['3']}";
                                    }
                                    $c = 0;
                                    $c++;
                                    // increment colspan to include ranking
                                    $resTable->printHeatTitle($row[2], $row[3], $title, $row[5]);
                                    $resTable->printAthleteHeader('', $row[20]);
                                }
                                // ET new heat
                                /*
                                 * Athlete data lines
                                 */
                                $perfs = array();
                                $fett = array();
                                $sql = "SELECT\r\n\t\t\t\t\t\tr.Leistung\r\n\t\t\t\t\t\t, r.Info\r\n\t\t\t\t\tFROM\r\n\t\t\t\t\t\tresultat AS r\r\n\t\t\t\t\tWHERE r.xSerienstart = {$row['6']}\r\n\t\t\t\t\tORDER BY\r\n\t\t\t\t\tr.xResultat";
                                $res = mysql_query($sql);
                                if (mysql_errno() > 0) {
                                    // DB error
                                    AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                } else {
                                    while ($resrow = mysql_fetch_row($res)) {
                                        $sql2 = "SELECT\r\n\t\t\t\t\t\tleistung\r\n\t\t\t\t\t\t\tFROM\r\n\t\t\t\t\t\ttemp\r\n\t\t\t\t\t\tWHERE athlet = {$row['6']}";
                                        $res2 = mysql_query($sql2);
                                        while ($row2 = mysql_fetch_row($res2)) {
                                            if ($row2[0] == $resrow[0]) {
                                                $fett[] = 1;
                                            } else {
                                                $fett[] = 0;
                                            }
                                            $perf = AA_formatResultMeter($resrow[0]);
                                            if ($row[15] == 1) {
                                                // with wind
                                                $info = $resrow[1];
                                                $perfs[] = "{$perf} ( {$info} )";
                                            } else {
                                                $perfs[] = "{$perf}";
                                            }
                                        }
                                    }
                                    // end loop every tech result acc. programm mode
                                    mysql_free_result($res);
                                }
                                //print_r($perfs);
                                if ($keep_ss > 0) {
                                    if ($keep_ss == $row[6]) {
                                        $curr_class = "active";
                                    }
                                } else {
                                    if (empty($perfs) && !$current_athlete) {
                                        $current_athlete = true;
                                        $curr_class = "active";
                                    }
                                }
                                $resTable->printAthleteLine($row[7], $row[9], "{$row['10']} {$row['11']}", AA_formatYearOfBirth($row[12]), $row[13], AA_formatResultMeter($row[16]), $perfs, $fett, $row[19], $row[18], $row[17], $curr_class);
                                $curr_class = "";
                            }
                            $resTable->endTable();
                            mysql_free_result($result);
                        }
                        // ET DB error
                    }
                }
            }
            // ET heat seeding done
            $temp = mysql_query("\r\n\t\tDROP TABLE IF EXISTS `temp`\r\n\t");
        } else {
            AA_printErrorMsg($strErrMergedRoundSpeaker);
        }
        ?>
 
    
   <script type="text/javascript">
<!--
    window.setTimeout("updatePage()", <?php 
        echo $cfgMonitorReload * 1000;
        ?>
);

   

    function updatePage()
    {
        window.open("speaker_results.php?round=<?php 
        echo $round;
        ?>
", "main");
    }

    
</script> 
    
    
    <?php 
    }
Пример #13
0
 function AA_speaker_Tech($event, $round, $layout)
 {
     require './lib/cl_gui_resulttable.lib.php';
     require './config.inc.php';
     require './lib/common.lib.php';
     require './lib/results.lib.php';
     $status = AA_getRoundStatus($round);
     // No action yet
     if ($status == $cfgRoundStatus['open'] || $status == $cfgRoundStatus['enrolement_done'] || $status == $cfgRoundStatus['heats_in_progress']) {
         AA_printWarningMsg($strHeatsNotDone);
     } else {
         if ($status == $cfgRoundStatus['enrolement_pending']) {
             AA_printWarningMsg($strEnrolementNotDone);
         } else {
             if ($status >= $cfgRoundStatus['heats_done']) {
                 $temp = mysql_query("\r\n\t\t\tCREATE TABLE `temp` (\r\n  `id` int(10) NOT NULL auto_increment,\r\n  `athlet` int(10) NOT NULL default '0',\r\n  `leistung` int(11) NOT NULL default '0',\r\n  `rang` int(10) NOT NULL default '0',\r\n  PRIMARY KEY  (`id`)\r\n) TYPE=MyISAM AUTO_INCREMENT=1\r\n\t\t");
                 if (mysql_errno() > 0) {
                     // DB error
                     AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                 }
                 $temp = mysql_query("\r\n\t\t\tSELECT\r\n\t\t\t\trt.Name\r\n\t\t\t\t, rt.Typ\r\n\t\t\t\t, s.xSerie\r\n\t\t\t\t, s.Bezeichnung\r\n\t\t\t\t, s.Wind\r\n\t\t\t\t, s.Status\r\n\t\t\t\t, ss.xSerienstart\r\n\t\t\t\t, ss.Position\r\n\t\t\t\t, ss.Rang\r\n\t\t\t\t, a.Startnummer\r\n\t\t\t\t, at.Name\r\n\t\t\t\t, at.Vorname\r\n\t\t\t\t, at.Jahrgang\r\n\t\t\t\t, v.Name\r\n\t\t\t\t, LPAD(s.Bezeichnung,5,'0') as heatid\r\n\t\t\t\t, w.Windmessung\r\n\t\t\t\t, at.xAthlet\r\n\t\t\t\t, at.Land\r\n\t\t\tFROM\r\n\t\t\t\trunde AS r\r\n\t\t\t\t, serie AS s\r\n\t\t\t\t, serienstart AS ss\r\n\t\t\t\t, start AS st\r\n\t\t\t\t, anmeldung AS a\r\n\t\t\t\t, athlet AS at\r\n\t\t\t\t, verein AS v\r\n\t\t\t\t, wettkampf AS w\r\n\t\t\tLEFT JOIN rundentyp AS rt\r\n\t\t\t\tON rt.xRundentyp = r.xRundentyp\r\n\t\t\tWHERE r.xRunde = {$round}\r\n\t\t\tAND w.xWettkampf = r.xWettkampf\r\n\t\t\tAND s.xRunde = r.xRunde\r\n\t\t\tAND ss.xSerie = s.xSerie\r\n\t\t\tAND st.xStart = ss.xStart\r\n\t\t\tAND a.xAnmeldung = st.xAnmeldung\r\n\t\t\tAND at.xAthlet = a.xAthlet\r\n\t\t\tAND v.xVerein = at.xVerein\r\n\t\t\tORDER BY\r\n\t\t\t\theatid\r\n\t\t\t\t, ss.Position\r\n\t\t");
                 if (mysql_errno() > 0) {
                     // DB error
                     AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                 } else {
                     while ($row = mysql_fetch_row($temp)) {
                         $tempsql = "SELECT\r\n\t\t\t\t\t\tMAX(r.Leistung) As maxLeistung\r\n\t\t\t\t\t\t\tFROM\r\n\t\t\t\t\t\tresultat AS r\r\n\t\t\t\t\tWHERE r.xSerienstart = {$row['6']}";
                         $tempres = mysql_query($tempsql);
                         if (mysql_errno() > 0) {
                             // DB error
                             AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                         } else {
                             while ($restemp = mysql_fetch_row($tempres)) {
                                 mysql_query("INSERT INTO `temp` ( `id` , `athlet` , `leistung` , `rang`) \r\n\t\t\t\tVALUES ('', '{$row['6']}', '{$restemp['0']}' , '1');");
                             }
                         }
                         mysql_free_result($tempres);
                     }
                     mysql_free_result($temp);
                 }
                 $xrang = 1;
                 $templeistung = 0;
                 $temprang = mysql_query("SELECT * FROM temp ORDER BY leistung DESC");
                 while ($rowrang = mysql_fetch_row($temprang)) {
                     if ($rowrang[2] == $templeistung) {
                         $rangieren = mysql_query("UPDATE temp SET rang = {$yrang} WHERE id={$rowrang['0']}");
                     } else {
                         $rangieren = mysql_query("UPDATE temp SET rang = {$xrang} WHERE id={$rowrang['0']}");
                         $yrang = $xrang;
                     }
                     $templeistung = $rowrang[2];
                     $xrang = $xrang + 1;
                 }
                 // show link to rankinglist if results done
                 if ($status == $cfgRoundStatus['results_done']) {
                     $menu = new GUI_Menulist();
                     $menu->addButton("print_rankinglist.php?round={$round}&type=single&formaction=speaker", $GLOBALS['strRankingList']);
                     $menu->addButton("print_rankinglist.php?round={$round}&type=single&formaction=speaker&show_efforts=sb_pb", $GLOBALS['strRankingListEfforts']);
                     $menu->printMenu();
                     echo "<p/>";
                 }
                 $prog_mode = AA_results_getProgramMode();
                 $arg = isset($_GET['arg']) ? $_GET['arg'] : (isset($_COOKIE['sort_speakres']) ? $_COOKIE['sort_speakres'] : 'pos');
                 setcookie('sort_speakres', $arg, time() + 2419200);
                 // display all athletes
                 if ($arg == "nbr" && !$relay) {
                     $argument = "a.Startnummer";
                     $img_nbr = "img/sort_act.gif";
                 } else {
                     if ($arg == "pos") {
                         $argument = "ss.Position";
                         $img_pos = "img/sort_act.gif";
                     } else {
                         if ($arg == "name") {
                             $argument = "at.Name, at.Vorname";
                             $img_name = "img/sort_act.gif";
                         } else {
                             if ($arg == "club") {
                                 $argument = "v.Name, a.Startnummer";
                                 $img_club = "img/sort_act.gif";
                             } else {
                                 if ($arg == "perf") {
                                     $argument = "st.Bestleistung, ss.Position";
                                     $img_perf = "img/sort_act.gif";
                                 } else {
                                     if ($arg == "rang") {
                                         $argument = "t.rang, ss.Position";
                                         $img_rang = "img/sort_act.gif";
                                     } else {
                                         if ($relay == FALSE) {
                                             // single event
                                             $argument = "ss.Position";
                                             $img_pos = "img/sort_act.gif";
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
                 $result = mysql_query("\r\n\t\t\tSELECT\r\n\t\t\t\trt.Name\r\n\t\t\t\t, rt.Typ\r\n\t\t\t\t, s.xSerie\r\n\t\t\t\t, s.Bezeichnung\r\n\t\t\t\t, s.Wind\r\n\t\t\t\t, s.Status\r\n\t\t\t\t, ss.xSerienstart\r\n\t\t\t\t, ss.Position\r\n\t\t\t\t, ss.Rang\r\n\t\t\t\t, a.Startnummer\r\n\t\t\t\t, at.Name\r\n\t\t\t\t, at.Vorname\r\n\t\t\t\t, at.Jahrgang\r\n\t\t\t\t, v.Name\r\n\t\t\t\t, LPAD(s.Bezeichnung,5,'0') as heatid\r\n\t\t\t\t, w.Windmessung\r\n\t\t\t\t, st.Bestleistung\r\n\t\t\t\t, at.xAthlet\r\n\t\t\t\t, at.Land\r\n\t\t\t\t, t.rang\r\n\t\t\tFROM\r\n\t\t\t\trunde AS r\r\n\t\t\t\t, serie AS s\r\n\t\t\t\t, serienstart AS ss\r\n\t\t\t\t, start AS st\r\n\t\t\t\t, anmeldung AS a\r\n\t\t\t\t, athlet AS at\r\n\t\t\t\t, verein AS v\r\n\t\t\t\t, wettkampf AS w\r\n\t\t\t\t, temp AS t\r\n\t\t\tLEFT JOIN rundentyp AS rt\r\n\t\t\t\tON rt.xRundentyp = r.xRundentyp\r\n\t\t\tWHERE r.xRunde = {$round}\r\n\t\t\tAND w.xWettkampf = r.xWettkampf\r\n\t\t\tAND s.xRunde = r.xRunde\r\n\t\t\tAND ss.xSerie = s.xSerie\r\n\t\t\tAND st.xStart = ss.xStart\r\n\t\t\tAND a.xAnmeldung = st.xAnmeldung\r\n\t\t\tAND at.xAthlet = a.xAthlet\r\n\t\t\tAND v.xVerein = at.xVerein\r\n\t\t\tAND t.athlet = ss.xSerienstart\r\n\t\t\tORDER BY s.xSerie, \r\n\t\t\t\t" . $argument . "\r\n\t\t");
                 if (mysql_errno() > 0) {
                     // DB error
                     AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                 } else {
                     // initialize variables
                     $h = 0;
                     $i = 0;
                     $r = 0;
                     $resTable = new GUI_TechResultTable($round, $layout, $status);
                     while ($row = mysql_fetch_row($result)) {
                         /*
                          *  Heat headerline
                          */
                         if ($h != $row[2]) {
                             $h = $row[2];
                             // keep heat ID
                             if (is_null($row[0])) {
                                 // only one round
                                 $title = "{$strFinalround} {$row['3']}";
                             } else {
                                 // more than one round
                                 $title = "{$row['0']}: {$row['1']}{$row['3']}";
                             }
                             $c = 0;
                             $c++;
                             // increment colspan to include ranking
                             $resTable->printHeatTitle($row[2], $row[3], $title, $row[5]);
                             $resTable->printAthleteHeader();
                         }
                         // ET new heat
                         /*
                          * Athlete data lines
                          */
                         $perfs = array();
                         $fett = array();
                         $sql = "SELECT\r\n\t\t\t\t\t\tr.Leistung\r\n\t\t\t\t\t\t, r.Info\r\n\t\t\t\t\tFROM\r\n\t\t\t\t\t\tresultat AS r\r\n\t\t\t\t\tWHERE r.xSerienstart = {$row['6']}\r\n\t\t\t\t\tORDER BY\r\n\t\t\t\t\tr.xResultat";
                         $res = mysql_query($sql);
                         //echo $sql;
                         if (mysql_errno() > 0) {
                             // DB error
                             AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                         } else {
                             while ($resrow = mysql_fetch_row($res)) {
                                 $sql2 = "SELECT\r\n\t\t\t\t\t\tleistung\r\n\t\t\t\t\t\t\tFROM\r\n\t\t\t\t\t\ttemp\r\n\t\t\t\t\t\tWHERE athlet = {$row['6']}";
                                 $res2 = mysql_query($sql2);
                                 while ($row2 = mysql_fetch_row($res2)) {
                                     if ($row2[0] == $resrow[0]) {
                                         $fett[] = 1;
                                     } else {
                                         $fett[] = 0;
                                     }
                                     $perf = AA_formatResultMeter($resrow[0]);
                                     if ($row[15] == 1) {
                                         // with wind
                                         $info = $resrow[1];
                                         $perfs[] = "{$perf} ( {$info} )";
                                     } else {
                                         $perfs[] = "{$perf}";
                                     }
                                 }
                             }
                             // end loop every tech result acc. programm mode
                             mysql_free_result($res);
                         }
                         //print_r($perfs);
                         $resTable->printAthleteLine($row[7], $row[9], "{$row['10']} {$row['11']}", AA_formatYearOfBirth($row[12]), $row[13], AA_formatResultMeter($row[16]), $perfs, $fett, $row[19], $row[18], $row[17]);
                     }
                     $resTable->endTable();
                     mysql_free_result($result);
                 }
                 // ET DB error
             }
         }
     }
     // ET heat seeding done
     $temp = mysql_query("\r\n\t\t\tDROP TABLE IF EXISTS `temp`\r\n\t\t");
 }
Пример #14
0
 function gen_result_xml($file)
 {
     //global	$opentags;
     global $cfgDisciplineType, $cfgEventType, $strEventTypeSingleCombined, $strEventTypeClubCombined, $strDiscTypeTrack, $strDiscTypeTrackNoWind, $strDiscTypeRelay, $strDiscTypeDistance, $cfgRoundStatus, $strDiscTypeJump, $strDiscTypeJumpNoWind, $strDiscTypeThrow, $strDiscTypeHigh, $cfgCombinedWO, $cfgCombinedDef;
     $this->gzip_open($file);
     // begin xml
     $this->write_xml_open("watDataset", array('version' => date('y-m-d')));
     $this->write_xml_open("event");
     //
     // output contest data
     //
     $global_rankadd = "";
     $query = "\r\n\t\t\tSELECT\r\n\t\t\t\tm.*\r\n\t\t\t\t, s.Name as Stadion\r\n\t\t\t\t, s.Ueber1000m\r\n\t\t\t\t, s.Halle\r\n\t\t\tFROM \r\n\t\t\t\tmeeting as m LEFT JOIN stadion as s ON m.xStadion = s.xStadion \r\n\t\t\tWHERE xMeeting = " . $_COOKIE['meeting_id'];
     $res = mysql_query($query);
     if (mysql_errno() > 0) {
         echo mysql_errno() . ": " . mysql_error();
     } else {
         $row = mysql_fetch_assoc($res);
         mysql_free_result($res);
         $this->write_xml_finished("eventNumber", $row['xControl']);
         $this->write_xml_finished("name", str_replace('&', '&amp;', $row['Name']));
         $this->write_xml_finished("eventStart", $row['DatumVon']);
         $this->write_xml_finished("eventEnd", $row['DatumBis']);
         $this->write_xml_finished("location", $row['Ort']);
         $this->write_xml_finished("stadium", $row['Stadion']);
         $this->write_xml_finished("amountSpectators", " ");
         if ($row['Ueber1000m'] == 'y') {
             $global_rankadd = "A";
         }
         //if($row['Halle'] == 'y'){ $global_rankadd .= "i"; }
         if ($row['Saison'] == 'I') {
             $global_rankadd .= "i";
         }
     }
     //
     // output all athletica generated teams (relays, svm)
     //
     $this->write_xml_open("accounts");
     $query = "\r\n\t\t\tSELECT \r\n\t\t\t\ts.xStaffel\r\n\t\t\t\t, s.Name\r\n\t\t\t\t, v.xCode as Verein\r\n\t\t\t\t, k.Code as Kat\r\n\t\t\t\t, d.Code as Dis\r\n\t\t\tFROM\r\n\t\t\t\tstaffel as s\r\n\t\t\t\t, verein as v \r\n\t\t\t\t, kategorie as k\r\n\t\t\t\t, start as st\r\n\t\t\t\t, wettkampf as w\r\n\t\t\t\t, disziplin as d\r\n\t\t\tWHERE Athleticagen = 'y'\r\n\t\t\tAND s.xVerein = v.xVerein \r\n\t\t\tAND k.xKategorie = s.xKategorie\r\n\t\t\tAND st.xStaffel = s.xStaffel\r\n\t\t\tAND w.xWettkampf = st.xWettkampf\r\n\t\t\tAND d.xDisziplin = w.xDisziplin\r\n\t\t\tAND s.xMeeting = " . $_COOKIE['meeting_id'] . "\r\n\t\t\tORDER BY \r\n\t\t\t\tv.xVerein";
     $res_teams = mysql_query($query);
     if (mysql_errno() > 0) {
         echo mysql_errno() . ": " . mysql_error();
     } else {
         $account = 0;
         while ($row_teams = mysql_fetch_assoc($res_teams)) {
             if (empty($row_teams['Verein']) || $row_teams['Verein'] == '999999') {
                 continue;
             }
             if ($account != $row_teams['Verein']) {
                 $this->close_open_tags("accounts");
                 $this->write_xml_open("account");
                 $this->write_xml_finished("accountCode", $row_teams['Verein']);
                 $this->write_xml_open("relays");
             }
             //$licenseCategory = ($row_teams['Kat']=='MASM' || $row_teams['Kat']=='MASW') ? '' : $row_teams['Kat'];
             $licenseCategory = $row_teams['Kat'];
             $this->write_xml_open("relay", array('id' => $row_teams['xStaffel'], 'isAthleticaGenerated' => '1'));
             $this->write_xml_finished("relayName", $row_teams['Name']);
             $this->write_xml_finished("licenseCategory", $licenseCategory);
             $this->write_xml_finished("sportDiscipline", $row_teams['Dis']);
             $this->close_open_tags("relays");
         }
     }
     $query = "\r\n\t\t\tSELECT \r\n\t\t\t\tt.xTeam\r\n\t\t\t\t, t.Name\r\n\t\t\t\t, v.xCode as Verein\r\n\t\t\t\t, k.Code as Kat\r\n\t\t\tFROM\r\n\t\t\t\tteam as t\r\n\t\t\t\t, verein as v \r\n\t\t\t\t, kategorie_svm as k\r\n\t\t\t\t, wettkampf as w\r\n\t\t\tWHERE Athleticagen = 'y'\r\n\t\t\tAND t.xVerein = v.xVerein\r\n\t\t\tAND t.xKategorie = w.xKategorie\r\n\t\t\tAND w.xKategorie_svm = k.xKategorie_svm\r\n\t\t\tAND w.xMeeting = " . $_COOKIE['meeting_id'] . "\r\n\t\t\tGROUP BY\r\n\t\t\t\tt.xTeam\r\n\t\t\tORDER BY \r\n\t\t\t\tv.xVerein";
     $res_teams = mysql_query($query);
     if (mysql_errno() > 0) {
         echo mysql_errno() . ": " . mysql_error();
     } else {
         $account = 0;
         while ($row_teams = mysql_fetch_assoc($res_teams)) {
             if (empty($row_teams['Verein']) || $row_teams['Verein'] == '999999') {
                 continue;
             }
             if ($account != $row_teams['Verein']) {
                 $this->close_open_tags("accounts");
                 $this->write_xml_open("account");
                 $this->write_xml_finished("accountCode", $row_teams['Verein']);
                 $this->write_xml_open("svms");
             }
             $this->write_xml_open("svm", array('id' => $row_teams['xTeam'], 'isAthleticaGenerated' => '1'));
             $this->write_xml_finished("svmName", $row_teams['Name']);
             $this->write_xml_finished("svmCategory", $row_teams['Kat']);
             $this->close_open_tags("svms");
         }
     }
     $this->close_open_tags("event");
     //
     // get all disciplines
     //
     $this->write_xml_open("disciplines");
     $res = mysql_query("\r\n\t\t\t\tSELECT\r\n\t\t\t\t\tw.Typ,\r\n\t\t\t\t\tw.Windmessung,\r\n\t\t\t\t\td.Typ,\r\n\t\t\t\t\td.Code,\r\n\t\t\t\t\tk.Code,\r\n\t\t\t\t\tw.xWettkampf,\r\n\t\t\t\t\td.Kurzname,\r\n\t\t\t\t\tw.Mehrkampfcode,\r\n\t\t\t\t\tw.xKategorie,\r\n\t\t\t\t\td.Staffellaeufer\r\n\t\t\t\tFROM \r\n\t\t\t\t\twettkampf as w \r\n\t\t\t\t\r\n\t\t\t\tLEFT JOIN\r\n\t\t\t\t\tdisziplin as d ON d.xDisziplin = w.xDisziplin\r\n\t\t\t\tLEFT JOIN\r\n\t\t\t\t\tkategorie as k ON k.xKategorie = w.xKategorie\r\n\t\t\t\t\r\n\t\t\t\tWHERE\txMeeting = " . $_COOKIE['meeting_id'] . "\r\n\t\t\t\t\r\n\t\t\t\tORDER BY\r\n\t\t\t\t\tk.Code\r\n\t\t\t\t\t, w.xKategorie\r\n\t\t\t\t\t, w.Mehrkampfcode\r\n\t\t\t\t\t, w.Mehrkampfreihenfolge\r\n\t\t\t");
     // the order "k.Code, w.xKategorie" makes sense if there are multiple self made categories (without any code)
     if (mysql_errno() > 0) {
         echo mysql_errno() . ": " . mysql_error();
     } else {
         $current_type = "";
         $combined = "";
         $current_cat = "";
         $current_xcat = 0;
         $fetched_events = array();
         // used for combined events
         // if an athlete has no result for one discipline of a combined event,
         // the detail text has to include a 'null' result
         $GLOBALS['rounds'] = array();
         while ($row = mysql_fetch_array($res)) {
             /*if(empty($row[3]) || empty($row[4])){
             			// self made discipline or category
             			continue;
             		}*/
             if (empty($row[3])) {
                 // self made discipline
                 continue;
             }
             if (empty($row[4])) {
                 // self made category
                 $row[4] = "";
             }
             //
             // generate results for combined events
             //
             if ($current_xcat != $row[8] || $combined_dis != $row[7]) {
                 // cat or combcode changed, print combined results
                 if (!empty($combined) && $combined_dis < 9000) {
                     // combined codes 9000 and above are self made disciplines
                     $this->write_xml_open("discipline", array('sportDiscipline' => $combined_dis, 'licenseCategory' => $combined_cat));
                     $this->write_xml_open("athletes");
                     // calc points
                     foreach ($combined as $xathlet => $disc) {
                         $points = 0;
                         $eDetails = "";
                         $tmp_fe = $fetched_events;
                         // temp array for fetched events
                         foreach ($disc as $xdisc => $tmp) {
                             if ($xdisc == "catathlete") {
                                 continue;
                             }
                             // check if there are events missing for the current athlete and add 'null' entries
                             while ($tmp_fe[0][3] != $xdisc) {
                                 //$eDetails .= $tmp_fe[0][6]." (0); ";
                                 $eDetails .= "0/";
                                 array_shift($tmp_fe);
                             }
                             array_shift($tmp_fe);
                             $points += $tmp['points'];
                             if ($tmp['wind'] == " ") {
                                 $tmp['wind'] = "";
                             } else {
                                 if ($tmp['wind'] >= 0) {
                                     $tmp['wind'] = "+" . $tmp['wind'];
                                 } else {
                                     $tmp['wind'] = $tmp['wind'];
                                 }
                             }
                             //$eDetails .= $tmp['discipline']." (".$tmp['effort'].$tmp['wind']."); ";
                             $eDetails .= $tmp['discipline'] . ' ' . $tmp['effort'] . $tmp['wind'] . "/";
                         }
                         // check if last events are missing
                         while (isset($tmp_fe[0][3])) {
                             $eDetails .= "0/";
                             array_shift($tmp_fe);
                         }
                         $eDetails = substr($eDetails, 0, -1);
                         $combined[$xathlet]['points'] = $points;
                         $combined[$xathlet]['edetails'] = $eDetails;
                     }
                     // sort for points
                     usort($combined, array($this, "sort_combined"));
                     // write
                     //$rank = array();
                     //$curr_athlete_cat = "";
                     $rank = 0;
                     // athletes rank
                     $cRank = 0;
                     // rank counter
                     $lp = 0;
                     // remembers points of last athlete
                     foreach ($combined as $xathlet => $disc) {
                         $this->close_open_tags("athletes");
                         // count place for each athlete category
                         /*$curr_athlete_cat = $combined[$xathlet]['catathlete'];
                         		if(!isset($rank[$curr_athlete_cat])){
                         			$rank[$curr_athlete_cat] = 1;
                         		}else{
                         			$rank[$curr_athlete_cat]++;
                         		}*/
                         $cRank++;
                         if ($lp != $disc['points']) {
                             $rank = $cRank;
                             $lp = $disc['points'];
                         }
                         // get information for athlete, remove not needed information and sort per DateOfEffort
                         $tmp = $disc;
                         $tmp['points'] = null;
                         $tmp['edetails'] = null;
                         $tmp['catathlete'] = null;
                         $tmp = array_values($tmp);
                         usort($tmp, array($this, "sort_perdate"));
                         $tmp = $tmp[0];
                         // filter athletes not from switzerland and athletes without license
                         if ($tmp['accountCode'] == '' || $tmp['accountCode'] == '999999' || $tmp['licenseType'] == 3) {
                             continue;
                         }
                         $this->write_xml_open("athlete", array('license' => $tmp['license'], 'licensePaid' => $tmp['licensePaid'], 'licenseCat' => '', 'inMasterData' => $tmp['inMasterData']));
                         if (!$tmp['inMasterData']) {
                             $this->write_xml_finished("lastName", $tmp['lastName']);
                             $this->write_xml_finished("firstName", $tmp['firstName']);
                             $this->write_xml_finished("birthDate", $tmp['birthDate']);
                             $this->write_xml_finished("sex", $tmp['sex']);
                             $this->write_xml_finished("nationality", $tmp['nationality']);
                             $this->write_xml_finished("accountCode", $tmp['accountCode']);
                             $this->write_xml_finished("secondaccountCode", " ");
                         }
                         $this->write_xml_open("efforts");
                         $this->write_xml_open("effort");
                         $this->write_xml_finished("DateOfEffort", $tmp['DateOfEffort']);
                         $this->write_xml_finished("scoreResult", AA_alabusScore($disc['points']));
                         $this->write_xml_finished("wind", " ");
                         $this->write_xml_finished("kindOfLap", " ");
                         // round type combined (D)
                         $this->write_xml_finished("lap", " ");
                         // heat name (A_, B_, 01, 02 ..)
                         //$this->write_xml_finished("place",$rank[$curr_athlete_cat]);
                         $this->write_xml_finished("place", $rank);
                         $this->write_xml_finished("placeAddon", $tmp['placeAddon']);
                         $this->write_xml_finished("relevant", "1");
                         $this->write_xml_finished("effortDetails", $disc['edetails']);
                         $this->write_xml_close("effort");
                     }
                     $this->close_open_tags("disciplines");
                 }
                 $combined = array();
                 $fetched_events = array();
                 $combined_dis = $row[7];
                 $combined_cat = $row[4];
                 $current_cat = $row[4];
                 $current_xcat = $row[8];
             }
             // keep events rows of combined events to check on missing results after
             if ($row[0] == $cfgEventType[$strEventTypeSingleCombined]) {
                 $fetched_events[] = $row;
             }
             //
             // first of all, print all single results (athletes and relays)
             //
             $relay = AA_checkRelay($row[5]);
             // check, if this is a relay event
             $order_perf = "";
             $valid_result = "";
             $best_perf = "";
             //$highjump = false;
             if ($row[2] == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $row[2] == $cfgDisciplineType[$strDiscTypeThrow]) {
                 $order_perf = "DESC";
                 $best_perf = ", max(r.Leistung) as Leistung";
             } else {
                 if ($row[2] == $cfgDisciplineType[$strDiscTypeJump]) {
                     if ($row[1] == 1) {
                         // with wind
                         //$order_perf = "DESC, r.Info ASC";
                         $order_perf = "DESC";
                     } else {
                         // without wind
                         $order_perf = "DESC";
                     }
                     $best_perf = ", max(r.Leistung) as Leistung";
                 } else {
                     if ($row[2] == $cfgDisciplineType[$strDiscTypeHigh]) {
                         $order_perf = "DESC";
                         $valid_result = " AND (r.Info LIKE '%O%') ";
                         //$highjump = true;
                         $best_perf = ", max(r.Leistung) as Leistung";
                     } else {
                         $order_perf = "ASC";
                         $best_perf = ", min(r.Leistung) as Leistung";
                     }
                 }
             }
             if ($relay == FALSE) {
                 $query = "\r\n\t\t\t\t\t\tSELECT\r\n\t\t\t\t\t\t\tss.xSerienstart\r\n\t\t\t\t\t\t\t, ss.Rang\r\n\t\t\t\t\t\t\t, ss.Qualifikation\r\n\t\t\t\t\t\t\t, r.Leistung\r\n\t\t\t\t\t\t\t, r.Info\r\n\t\t\t\t\t\t\t, s.Bezeichnung\r\n\t\t\t\t\t\t\t, s.Wind\r\n\t\t\t\t\t\t\t, r.Punkte\r\n\t\t\t\t\t\t\t, v.Name\r\n\t\t\t\t\t\t\t, at.Name\r\n\t\t\t\t\t\t\t, at.Vorname\r\n\t\t\t\t\t\t\t, at.Jahrgang\r\n\t\t\t\t\t\t\t, at.Land\r\n\t\t\t\t\t\t\t, at.xAthlet\r\n\t\t\t\t\t\t\t, at.Lizenznummer\r\n\t\t\t\t\t\t\t, ru.Datum\r\n\t\t\t\t\t\t\t, rt.Code as Typ\r\n\t\t\t\t\t\t\t, at.Bezahlt\r\n\t\t\t\t\t\t\t, at.Geburtstag\r\n\t\t\t\t\t\t\t, at.Geschlecht\r\n\t\t\t\t\t\t\t, v.xCode as Vereincode\r\n\t\t\t\t\t\t\t, k.Code as Katathlet\r\n\t\t\t\t\t\t\t, ru.xRunde\r\n\t\t\t\t\t\t\t, s.Handgestoppt\r\n\t\t\t\t\t\t\t, at.Lizenztyp\r\n\t\t\t\t\t\t\t, a.Vereinsinfo\r\n                            , rt.Typ\r\n                            , ba.license_paid    \r\n\t\t\t\t\t\tFROM\r\n\t\t\t\t\t\t\trunde as ru\r\n\t\t\t\t\t\t\t, serie AS s USE INDEX (Runde)\r\n\t\t\t\t\t\t\t, serienstart AS ss\r\n\t\t\t\t\t\t\t, resultat AS r\r\n\t\t\t\t\t\t\t, start AS st\r\n\t\t\t\t\t\t\t, anmeldung AS a\r\n\t\t\t\t\t\t\t, athlet AS at\r\n\t\t\t\t\t\t\t, verein AS v\r\n\t\t\t\t\t\t\t, rundentyp AS rt\r\n\t\t\t\t\t\t\t, kategorie AS k\r\n                            LEFT JOIN base_athlete AS ba ON (ba.license = at.Lizenznummer)\r\n\t\t\t\t\t\tWHERE ru.xWettkampf = {$row['5']}\r\n\t\t\t\t\t\tAND s.xRunde = ru.xRunde\r\n\t\t\t\t\t\tAND ss.xSerie = s.xSerie\r\n\t\t\t\t\t\tAND r.xSerienstart = ss.xSerienstart\r\n\t\t\t\t\t\tAND st.xStart = ss.xStart\r\n\t\t\t\t\t\tAND a.xAnmeldung = st.xAnmeldung\r\n\t\t\t\t\t\tAND at.xAthlet = a.xAthlet\r\n\t\t\t\t\t\tAND v.xVerein = at.xVerein\r\n\t\t\t\t\t\tAND ru.xRundentyp = rt.xRundentyp\r\n\t\t\t\t\t\tAND a.xKategorie = k.xKategorie\r\n\t\t\t\t\t\tAND ru.Status = " . $cfgRoundStatus['results_done'] . "\r\n\t\t\t\t\t\tAND ru.StatusUpload = 0\r\n\t\t\t\t\t\tAND r.Leistung > 0\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{$valid_result}\r\n\t\t\t\t\t\tORDER BY\r\n\t\t\t\t\t\t\tat.xAthlet\r\n\t\t\t\t\t\t\t, ru.xRunde\r\n\t\t\t\t\t\t\t, r.Leistung " . $order_perf;
             } else {
                 // relay event
                 $query = "\r\n\t\t\t\t\t\tSELECT\r\n\t\t\t\t\t\t\tss.xSerienstart\r\n\t\t\t\t\t\t\t, ss.Rang\r\n\t\t\t\t\t\t\t, ss.Qualifikation\r\n\t\t\t\t\t\t\t, r.Leistung\r\n\t\t\t\t\t\t\t, r.Info\r\n\t\t\t\t\t\t\t, s.Bezeichnung\r\n\t\t\t\t\t\t\t, s.Wind\r\n\t\t\t\t\t\t\t, r.Punkte\r\n\t\t\t\t\t\t\t, v.Name\r\n\t\t\t\t\t\t\t, sf.Name\r\n\t\t\t\t\t\t\t, sf.xStaffel\r\n\t\t\t\t\t\t\t, ru.Datum\r\n\t\t\t\t\t\t\t, rt.Code as Typ\r\n\t\t\t\t\t\t\t, st.xStart\r\n\t\t\t\t\t\t\t, ru.xRunde\r\n\t\t\t\t\t\t\t, s.Handgestoppt\r\n\t\t\t\t\t\tFROM\r\n\t\t\t\t\t\t\trunde as ru\r\n\t\t\t\t\t\t\t, serie AS s USE INDEX (Runde)\r\n\t\t\t\t\t\t\t, serienstart AS ss\r\n\t\t\t\t\t\t\t, resultat AS r\r\n\t\t\t\t\t\t\t, start AS st\r\n\t\t\t\t\t\t\t, staffel AS sf\r\n\t\t\t\t\t\t\t, verein AS v\r\n\t\t\t\t\t\t\t, rundentyp as rt\r\n\t\t\t\t\t\tWHERE ru.xWettkampf = {$row['5']}\r\n\t\t\t\t\t\tAND s.xRunde = ru.xRunde\r\n\t\t\t\t\t\tAND ss.xSerie = s.xSerie\r\n\t\t\t\t\t\tAND r.xSerienstart = ss.xSerienstart\r\n\t\t\t\t\t\tAND st.xStart = ss.xStart\r\n\t\t\t\t\t\tAND sf.xStaffel = st.xStaffel\r\n\t\t\t\t\t\tAND v.xVerein = sf.xVerein\r\n\t\t\t\t\t\tAND ru.xRundentyp = rt.xRundentyp\r\n\t\t\t\t\t\tAND ru.Status = " . $cfgRoundStatus['results_done'] . "\r\n\t\t\t\t\t\tAND ru.StatusUpload = 0\r\n\t\t\t\t\t\tAND r.Leistung > 0\r\n\t\t\t\t\t\tAND v.xCode != ''\r\n\t\t\t\t\t\tAND v.xCode != '999999'\r\n\t\t\t\t\t\t{$valid_result}\r\n\t\t\t\t\t\tGROUP BY\r\n\t\t\t\t\t\t\tr.xSerienstart\r\n\t\t\t\t\t\tORDER BY\r\n\t\t\t\t\t\t\tst.xStaffel\r\n\t\t\t\t\t\t\t, ss.Rang\r\n\t\t\t\t\t\t\t " . $order_perf;
             }
             $res_results = mysql_query($query);
             if (mysql_errno() > 0) {
                 echo mysql_Error();
             } else {
                 if (mysql_num_rows($res_results) > 0) {
                     $this->write_xml_open("discipline", array('sportDiscipline' => $row[3], 'licenseCategory' => $row[4]));
                     if ($relay) {
                         $this->write_xml_open("teams");
                     } else {
                         $this->write_xml_open("athletes");
                     }
                 }
                 $id = 0;
                 // athletes id
                 $ru = 0;
                 // round id
                 while ($row_results = mysql_fetch_assoc($res_results)) {
                     // store round ids for later purpose
                     $GLOBALS['rounds'][] = $row_results['xRunde'];
                     // set "rangzusatz"
                     /*switch($row_results['Typ']){
                     			case "D":
                     			break;
                     			case "S":
                     			$rankadd = "r";
                     			break;
                     			case "V":
                     			$rankadd = "h";
                     			break;
                     			case "Z":
                     			$rankadd = "qf";
                     			break;
                     			case "X":
                     			$rankadd = "sf";
                     			break;
                     			case "Q":
                     			$rankadd = "Q";
                     			break;
                     			case "F":
                     			$rankadd = "A";
                     			break;
                     			default:
                     			$rankadd = " ";
                     		}*/
                     $season = $_SESSION['meeting_infos']['Saison'];
                     if ($saison == '') {
                         $saison = "O";
                         //if no saison is set take outdoor
                     }
                     $rankadd = " ";
                     // set "no wind" flag if not measured or wind is equal "-"
                     if ($season == 'O') {
                         // only outdoor  (indoor: never a '*' )
                         if ($row[2] == $cfgDisciplineType[$strDiscTypeJump]) {
                             if ($row[1] == 0 || $row_results['Info'] == "-" || $row_results['Info'] == "") {
                                 $rankadd .= "*";
                             }
                         }
                         if ($row[2] == $cfgDisciplineType[$strDiscTypeTrack]) {
                             if ($row[1] == 0 || $row_results['Wind'] == "-" || $row_results['Wind'] == "") {
                                 $rankadd .= "*";
                             }
                         }
                     }
                     // set "hand stopped" flag if set
                     if ($row[2] == $cfgDisciplineType[$strDiscTypeNone] || $row[2] == $cfgDisciplineType[$strDiscTypeTrack] || $row[2] == $cfgDisciplineType[$strDiscTypeTrackNoWind] || $row[2] == $cfgDisciplineType[$strDiscTypeDistance] || $row[2] == $cfgDisciplineType[$strDiscTypeRelay]) {
                         if ($row_results['Handgestoppt'] == 1) {
                             $rankadd .= "m";
                         }
                     }
                     $rankadd .= $global_rankadd;
                     if ($relay) {
                         //
                         // relay results
                         //
                         if ($id != $row_results['xStaffel']) {
                             // new relay
                             $id = $row_results['xStaffel'];
                             $this->close_open_tags("teams");
                             $this->write_xml_open("team", array('teamCode' => 'S'));
                             $this->write_xml_finished("relayId", $id);
                             // staffel id
                             $this->write_xml_open("efforts");
                         }
                         $this->write_xml_open("effort");
                         // add effort parameters
                         $this->write_xml_finished("DateOfEffort", $row_results['Datum']);
                         if ($row[2] == $cfgDisciplineType[$strDiscTypeJump] || $row[2] == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $row[2] == $cfgDisciplineType[$strDiscTypeThrow] || $row[2] == $cfgDisciplineType[$strDiscTypeHigh]) {
                             $perf = AA_alabusDistance($row_results['Leistung']);
                             $this->write_xml_finished("distanceResult", $perf);
                         } else {
                             $perf = AA_alabusTime($row_results['Leistung']);
                             $this->write_xml_finished("timeResult", $perf);
                         }
                         $wind = "";
                         if ($row[1] == 1) {
                             $wind = strtr($row_results['Wind'], ",", ".");
                         } else {
                             $wind = " ";
                         }
                         if (is_numeric($row_results['Bezeichnung'])) {
                             $row_results['Bezeichnung'] = sprintf("%02s", $row_results['Bezeichnung']);
                         } else {
                             if (strlen($row_results['Bezeichnung']) == 1) {
                                 $row_results['Bezeichnung'] .= "_";
                             }
                         }
                         // check on relevant for bestlist
                         $relevant = 1;
                         if ($wind > "2") {
                             //$relevant = 0;
                         }
                         if ($row_results['Typ'] == '0') {
                             // (ohne)
                             $row_results['Bezeichnung'] = '';
                         }
                         //$this->write_xml_finished("timeResult"," ");
                         //$this->write_xml_finished("distanceResult"," ");
                         //$this->write_xml_finished("scoreResult"," ");
                         $this->write_xml_finished("wind", $wind);
                         $this->write_xml_finished("kindOfLap", " " . $row_results['Typ']);
                         // round type
                         $this->write_xml_finished("lap", $row_results['Bezeichnung']);
                         // heat name (A_, B_, 01, 02 ..)
                         $this->write_xml_finished("place", $row_results['Rang']);
                         $this->write_xml_finished("placeAddon", $rankadd);
                         $this->write_xml_finished("relevant", $relevant);
                         // get athletes for effort details
                         $cRelayAt = 4;
                         if ($row[9] > 0) {
                             // staffelläufer count of discipline
                             $cRelayAt = $row[9];
                         }
                         $query = "\r\n\t\t\t\t\t\t\t\tSELECT at.Name, at.Vorname, st.Position FROM\r\n\t\t\t\t\t\t\t\t\tstaffelathlet as st\r\n\t\t\t\t\t\t\t\t\t, start as s\r\n\t\t\t\t\t\t\t\t\t, anmeldung as a\r\n\t\t\t\t\t\t\t\t\t, athlet as at\r\n\t\t\t\t\t\t\t\tWHERE st.xStaffelstart = " . $row_results['xStart'] . "\r\n\t\t\t\t\t\t\t\tAND st.xRunde = " . $row_results['xRunde'] . "\r\n\t\t\t\t\t\t\t\tAND st.xAthletenstart = s.xStart\r\n\t\t\t\t\t\t\t\tAND s.xAnmeldung = a.xAnmeldung\r\n\t\t\t\t\t\t\t\tAND a.xAthlet = at.xAthlet\r\n\t\t\t\t\t\t\t\tORDER BY\r\n\t\t\t\t\t\t\t\t\tst.Position ASC\r\n\t\t\t\t\t\t\t\tLIMIT {$cRelayAt}";
                         $res_relayat = mysql_query($query);
                         if (mysql_errno() > 0) {
                             echo mysql_error();
                         } else {
                             $eDetails = "";
                             while ($row_relayat = mysql_fetch_assoc($res_relayat)) {
                                 $eDetails .= trim($row_relayat['Name']) . " " . trim($row_relayat['Vorname']) . " / ";
                             }
                             $eDetails = substr($eDetails, 0, strlen($eDetails) - 3);
                             $this->write_xml_finished("effortDetails", $eDetails);
                         }
                         $this->write_xml_close("effort");
                     } else {
                         //
                         // athlete results
                         //
                         if ($ru == $row_results['xRunde'] && $id == $row_results['xAthlet']) {
                             continue;
                         }
                         $ru = $row_results['xRunde'];
                         // array for ordering (order after WO) combined events
                         $combinedPriority = 0;
                         /*$combinedPrio = $cfgCombinedWO[$cfgCombinedDef[$row[7]]];
                         		$combinedPriority = array_keys($combinedPrio, $row[3]);
                         		if(count($combinedPriority) > 0){
                         			$combinedPriority = $combinedPriority[0];
                         		}else{
                         			$combinedPriority = 999; // not a official discipline for this combined event
                         		}*/
                         if ($id != $row_results['xAthlet']) {
                             // new athlete
                             $id = $row_results['xAthlet'];
                             $this->close_open_tags("athletes");
                             // if athlete is not from switzerland filter him but add to combined array for correct ranking
                             // the same for athletes without license (type 3)
                             // these rules have also to be present in the parsing section of combined events (before and after result loop)
                             /*if($row_results['Vereincode'] == '' || $row_results['Vereincode'] == '999999'
                             		|| $row_results['Lizenztyp'] == 3){*/
                             if ($row_results['Lizenztyp'] == 3) {
                                 if ($row[0] == $cfgEventType[$strEventTypeSingleCombined]) {
                                     $rank = " ";
                                     $row_results['Bezeichnung'] = " ";
                                     //
                                     //add points for combined contests
                                     if ($combined[$row_results['xAthlet']][$row[3]]['points'] < $row_results['Punkte']) {
                                         $combined[$row_results['xAthlet']][$row[3]] = array('kindOfLap' => " " . $row_results['Typ'], 'lap' => $row_results['Bezeichnung'], 'placeAddon' => $rankadd, 'points' => $row_results['Punkte'], 'discipline' => $row[6], 'license' => $row_results['Lizenznummer'], 'DateOfEffort' => $row_results['Datum'], 'lastName' => $row_results['Name'], 'firstName' => $row_results['Vorname'], 'birthDate' => $birthday, 'sex' => $row_results['Geschlecht'], 'nationality' => $row_results['Land'], 'accountCode' => $row_results['Vereincode'], 'priority' => $combinedPriority, 'licenseType' => $row_results['Lizenztyp']);
                                         // category of athlete, used for calculating the rankings
                                         $combined[$row_results['xAthlet']]['catathlete'] = $row_results['Katathlet'];
                                     }
                                 }
                                 $id = 0;
                                 // if this is not set, results for the skipped athlete will be written
                                 continue;
                                 // next result/athlete
                             }
                             // license_paid = license printed (information from basa data)
                             // only upload results from athletes with license available (=license printed)
                             if ($row_results['Lizenztyp'] <= 1 && $row_results['license_paid'] == 'n') {
                                 $id = 0;
                                 // if this is not set, results for the skipped athlete will be written
                                 continue;
                                 // next result/athlete
                             }
                             if (!empty($row_results['Lizenznummer'])) {
                                 $inMasterData = 1;
                                 $licensePaid = 1;
                             } else {
                                 $inMasterData = 0;
                                 if ($row_results['Bezahlt'] == 'y') {
                                     $licensePaid = 1;
                                 } else {
                                     $licensePaid = 0;
                                 }
                             }
                             //$this->close_open_tags("athletes");
                             $this->write_xml_open("athlete", array('license' => $row_results['Lizenznummer'], 'licensePaid' => $licensePaid, 'licenseCat' => '', 'inMasterData' => $inMasterData));
                             // write athletes data if athletica generated
                             //
                             if (!$inMasterData) {
                                 if ($row_results['Land'] == "-") {
                                     $row_results['Land'] = " ";
                                 }
                                 $this->write_xml_finished("lastName", $row_results['Name']);
                                 $this->write_xml_finished("firstName", $row_results['Vorname']);
                                 $birthday = $row_results['Geburtstag'];
                                 if ($birthday == "0000-00-00") {
                                     $birthday = $row_results['Jahrgang'] . "-01-01";
                                 }
                                 $this->write_xml_finished("birthDate", $birthday);
                                 $this->write_xml_finished("sex", $row_results['Geschlecht']);
                                 $this->write_xml_finished("nationality", $row_results['Land']);
                                 $this->write_xml_finished("accountCode", $row_results['Vereincode']);
                                 $this->write_xml_finished("secondaccountCode", " ");
                             }
                             $this->write_xml_open("efforts");
                         }
                         $perf = 0;
                         // result for alabus
                         $wind = "";
                         $perfRounded = 0;
                         // result for combined detail text
                         $this->write_xml_open("effort");
                         // add effort parameters
                         $this->write_xml_finished("DateOfEffort", $row_results['Datum']);
                         $wind = "";
                         if ($row[2] == $cfgDisciplineType[$strDiscTypeJump] || $row[2] == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $row[2] == $cfgDisciplineType[$strDiscTypeThrow] || $row[2] == $cfgDisciplineType[$strDiscTypeHigh]) {
                             $perf = AA_alabusDistance($row_results['Leistung']);
                             $perfRounded = AA_formatResultMeter($row_results['Leistung']);
                             $this->write_xml_finished("distanceResult", $perf);
                             $wind = strtr($row_results['Info'], ",", ".");
                         } else {
                             $perf = AA_alabusTime($row_results['Leistung']);
                             $perfRounded = AA_formatResultTime($row_results['Leistung'], true);
                             $this->write_xml_finished("timeResult", $perf);
                             $wind = strtr($row_results['Wind'], ",", ".");
                         }
                         if ($row[1] == 0 || $wind == "-" || $wind == "") {
                             $wind = " ";
                         }
                         if (is_numeric($row_results['Bezeichnung'])) {
                             $row_results['Bezeichnung'] = sprintf("%02s", $row_results['Bezeichnung']);
                         } else {
                             if (strlen($row_results['Bezeichnung']) == 1) {
                                 $row_results['Bezeichnung'] .= "_";
                             }
                         }
                         if ($row[0] == $cfgEventType[$strEventTypeSingleCombined]) {
                             //$rankadd = "D)".$rankadd;
                             if ($wind > 4) {
                                 // if any result has a wind of over 4 m/s, the combined result gets a flag 'w'
                                 $rankadd .= "w";
                             }
                             $rank = " ";
                             $row_results['Bezeichnung'] = " ";
                             //
                             //add points for combined contests
                             if ($combined[$row_results['xAthlet']][$row[3]]['points'] < $row_results['Punkte']) {
                                 $combined[$row_results['xAthlet']][$row[3]] = array('wind' => $wind, 'kindOfLap' => " " . $row_results['Typ'], 'lap' => $row_results['Bezeichnung'], 'placeAddon' => $rankadd, 'points' => $row_results['Punkte'], 'effort' => $perfRounded, 'discipline' => $row[6], 'license' => $row_results['Lizenznummer'], 'inMasterData' => $inMasterData, 'licensePaid' => $licensePaid, 'DateOfEffort' => $row_results['Datum'], 'lastName' => $row_results['Name'], 'firstName' => $row_results['Vorname'], 'birthDate' => $birthday, 'sex' => $row_results['Geschlecht'], 'nationality' => $row_results['Land'], 'accountCode' => $row_results['Vereincode'], 'priority' => $combinedPriority, 'licenseType' => $row_results['Lizenztyp']);
                                 // category of athlete, used for calculating the rankings
                                 $combined[$row_results['xAthlet']]['catathlete'] = $row_results['Katathlet'];
                             }
                         } else {
                             $rank = $row_results['Rang'];
                         }
                         // check on relevant for bestlist
                         $relevant = 1;
                         if ($row_results['Typ'] == '0') {
                             // (ohne)
                             $row_results['Bezeichnung'] = '';
                         }
                         // output result data
                         $this->write_xml_finished("wind", $wind);
                         $this->write_xml_finished("kindOfLap", " " . $row_results['Typ']);
                         // round type
                         $this->write_xml_finished("lap", $row_results['Bezeichnung']);
                         // heat name (A_, B_, 01, 02 ..)
                         $this->write_xml_finished("place", $rank);
                         $this->write_xml_finished("placeAddon", $rankadd);
                         $this->write_xml_finished("relevant", $relevant);
                         $this->write_xml_finished("effortDetails", " ");
                         $this->write_xml_finished("accountinfo", " " . $row_results['Vereinsinfo']);
                         $this->write_xml_finished("homologate", "1");
                         // not yet implemented -> TODO
                         $this->write_xml_close("effort");
                         if ($wind > "2" && $row[2] == $cfgDisciplineType[$strDiscTypeJump]) {
                             // since we get only the best result per xSerienstart,
                             // here we'll get the next with valid wind
                             $res_wind = mysql_query("\r\n\t\t\t\t\t\t\t\t\t\tSELECT Info, Leistung FROM\r\n\t\t\t\t\t\t\t\t\t\t\tresultat\r\n\t\t\t\t\t\t\t\t\t\tWHERE\r\n\t\t\t\t\t\t\t\t\t\t\txSerienstart = " . $row_results['xSerienstart'] . "\r\n\t\t\t\t\t\t\t\t\t\tORDER BY\r\n\t\t\t\t\t\t\t\t\t\t\tLeistung DESC");
                             if (mysql_errno() > 0) {
                                 // DB error
                                 AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                             } else {
                                 while ($row_wind = mysql_fetch_array($res_wind)) {
                                     if ($row_wind[0] <= 2) {
                                         $perf = AA_alabusDistance($row_wind[1]);
                                         if ($perf == -98) {
                                             // -98 = Fehlversuch
                                             break;
                                         }
                                         $this->write_xml_open("effort");
                                         $this->write_xml_finished("DateOfEffort", $row_results['Datum']);
                                         $this->write_xml_finished("distanceResult", $perf);
                                         $wind = strtr($row_wind[0], ",", ".");
                                         if ($wind == "-") {
                                             $wind = " ";
                                         }
                                         $this->write_xml_finished("wind", $wind);
                                         $this->write_xml_finished("kindOfLap", " " . $row_results['Typ']);
                                         // round type
                                         $this->write_xml_finished("lap", $row_results['Bezeichnung']);
                                         // heat name (A_, B_, 01, 02 ..)
                                         $this->write_xml_finished("place", " ");
                                         $this->write_xml_finished("placeAddon", $rankadd);
                                         $this->write_xml_finished("relevant", $relevant);
                                         $this->write_xml_finished("effortDetails", " ");
                                         $this->write_xml_close("effort");
                                         break;
                                     }
                                 }
                             }
                         }
                         // end if wind > 2
                     }
                     // end if relay or athlete
                 }
                 // end while res_results
             }
             $this->close_open_tags("disciplines");
         }
         // check on last combined event
         if (!empty($combined) && $combined_dis < 9000) {
             // combined codes 9000 and above are self made disciplines
             $this->write_xml_open("discipline", array('sportDiscipline' => $combined_dis, 'licenseCategory' => $combined_cat));
             $this->write_xml_open("athletes");
             // calc points
             foreach ($combined as $xathlet => $disc) {
                 $points = 0;
                 $eDetails = "";
                 $tmp_fe = $fetched_events;
                 foreach ($disc as $xdisc => $tmp) {
                     if ($xdisc == "catathlete") {
                         continue;
                     }
                     // check if there are events missing for the current athlete and add 'null' entries
                     while ($tmp_fe[0][3] != $xdisc) {
                         //$eDetails .= $tmp_fe[0][6]." (0); ";
                         $eDetails .= "0/";
                         array_shift($tmp_fe);
                     }
                     array_shift($tmp_fe);
                     $points += $tmp['points'];
                     if ($tmp['wind'] == " ") {
                         $tmp['wind'] = "";
                     } else {
                         //$tmp['wind'] = " / ".$tmp['wind'];
                         if ($tmp['wind'] >= 0) {
                             $tmp['wind'] = "+" . $tmp['wind'];
                         } else {
                             $tmp['wind'] = $tmp['wind'];
                         }
                     }
                     //$eDetails .= $tmp['discipline']." (".$tmp['effort'].$tmp['wind']."); ";
                     $eDetails .= $tmp['effort'] . $tmp['wind'] . "/";
                 }
                 // check if last events are missing
                 while (isset($tmp_fe[0][3])) {
                     $eDetails .= "0/";
                     array_shift($tmp_fe);
                 }
                 $eDetails = substr($eDetails, 0, -1);
                 $combined[$xathlet]['points'] = $points;
                 $combined[$xathlet]['edetails'] = $eDetails;
             }
             // sort for points
             usort($combined, array($this, "sort_combined"));
             // write
             //$rank = array();
             //$curr_athlete_cat = "";
             $rank = 0;
             // athletes rank
             $cRank = 0;
             // rank counter
             $lp = 0;
             // remembers points of last athlete
             foreach ($combined as $xathlet => $disc) {
                 $this->close_open_tags("athletes");
                 // count place for each athlete category
                 /*$curr_athlete_cat = $combined[$xathlet]['catathlete'];
                 		if(!isset($rank[$curr_athlete_cat])){
                 			$rank[$curr_athlete_cat] = 1;
                 		}else{
                 			$rank[$curr_athlete_cat]++;
                 		}*/
                 $cRank++;
                 if ($lp != $disc['points']) {
                     $rank = $cRank;
                     $lp = $disc['points'];
                 }
                 // get information for athlete
                 $tmp = $disc;
                 $tmp['points'] = null;
                 $tmp['edetails'] = null;
                 $tmp['catathlete'] = null;
                 $tmp = array_values($tmp);
                 usort($tmp, array($this, "sort_perdate"));
                 $tmp = $tmp[0];
                 // filter athletes not from switzerland and athletes without license
                 if ($tmp['accountCode'] == '' || $tmp['accountCode'] == '999999' || $tmp['licenseType'] == 3) {
                     continue;
                 }
                 $this->write_xml_open("athlete", array('license' => $tmp['license'], 'licensePaid' => $tmp['licensePaid'], 'licenseCat' => '', 'inMasterData' => $tmp['inMasterData']));
                 if (!$tmp['inMasterData']) {
                     $this->write_xml_finished("lastName", $tmp['lastName']);
                     $this->write_xml_finished("firstName", $tmp['firstName']);
                     $this->write_xml_finished("birthDate", $tmp['birthDate']);
                     $this->write_xml_finished("sex", $tmp['sex']);
                     $this->write_xml_finished("nationality", $tmp['nationality']);
                     $this->write_xml_finished("accountCode", $tmp['accountCode']);
                     $this->write_xml_finished("secondaccountCode", " ");
                 }
                 $this->write_xml_open("efforts");
                 $this->write_xml_open("effort");
                 $this->write_xml_finished("DateOfEffort", $tmp['DateOfEffort']);
                 $this->write_xml_finished("scoreResult", AA_alabusScore($disc['points']));
                 $this->write_xml_finished("wind", " ");
                 $this->write_xml_finished("kindOfLap", " ");
                 // round type combined (D)
                 $this->write_xml_finished("lap", " ");
                 // heat name (A_, B_, 01, 02 ..)
                 //$this->write_xml_finished("place",$rank[$curr_athlete_cat]);
                 $this->write_xml_finished("place", $rank);
                 $this->write_xml_finished("placeAddon", $tmp['placeAddon']);
                 $this->write_xml_finished("relevant", "1");
                 $this->write_xml_finished("effortDetails", $disc['edetails']);
                 $this->write_xml_close("effort");
             }
             $this->close_open_tags("disciplines");
         }
         $combined = array();
         // get the svm results
         mysql_free_result($res);
         $res = mysql_query("\r\n\t\t\t\tSELECT\r\n\t\t\t\t\tw.Typ,\r\n\t\t\t\t\tw.Windmessung,\r\n\t\t\t\t\td.Typ,\r\n\t\t\t\t\td.Code,\r\n\t\t\t\t\tk.Code,\r\n\t\t\t\t\tw.xWettkampf,\r\n\t\t\t\t\td.Kurzname,\r\n\t\t\t\t\tw.Mehrkampfcode,\r\n\t\t\t\t\tw.xKategorie,\r\n\t\t\t\t\tks.Code,\r\n\t\t\t\t\tMAX(r.Datum)\r\n\t\t\t\tFROM \r\n\t\t\t\t\trunde as r\r\n\t\t\t\tLEFT JOIN \r\n\t\t\t\t\twettkampf as w USING(xWettkampf) \r\n\t\t\t\tLEFT JOIN\r\n\t\t\t\t\tdisziplin as d ON d.xDisziplin = w.xDisziplin\r\n\t\t\t\tLEFT JOIN\r\n\t\t\t\t\tkategorie as k ON k.xKategorie = w.xKategorie\r\n\t\t\t\tLEFT JOIN\r\n\t\t\t\t\tkategorie_svm as ks ON ks.xKategorie_svm = w.xKategorie_svm\r\n\t\t\t\tWHERE\txMeeting = " . $_COOKIE['meeting_id'] . "\r\n\t\t\t\tGROUP BY w.xKategorie\r\n\t\t\t\tORDER BY\r\n\t\t\t\t\tw.xWettkampf\r\n\t\t\t");
         if (mysql_errno() > 0) {
             echo mysql_errno() . ": " . mysql_error();
         } else {
             while ($row = mysql_fetch_array($res)) {
                 //
                 // open rankinlist_team lib for calculating the svm points
                 //
                 if ($row[0] > $cfgEventType[$strEventTypeSingleCombined]) {
                     $this->write_xml_open("discipline", array('sportDiscipline' => $row[9], 'licenseCategory' => $row[4]));
                     $this->write_xml_open("teams");
                     $GLOBALS['doe'] = $row[10];
                     // date of team effort (last round date)
                     $GLOBALS['rankadd'] = $global_rankadd;
                     AA_rankinglist_Team($row[8], 'xml', "", false, $this);
                     $this->close_open_tags("disciplines");
                 }
             }
         }
         // close last tags
         $this->close_open_tags();
     }
     $this->gzip_close();
 }
Пример #15
0
 function getNextHeight($heat, $curr_perf)
 {
     require './lib/common.lib.php';
     $result = mysql_query("\r\n        SELECT DISTINCT\r\n            r.Leistung\r\n        FROM\r\n            resultat AS r\r\n            , serienstart AS ss\r\n        WHERE r.xSerienstart = ss.xSerienstart\r\n        AND ss.xSerie = {$heat}\r\n        AND r.Leistung > {$curr_perf}\r\n        ORDER BY\r\n            r.Leistung ASC\r\n    ");
     if (mysql_errno() > 0) {
         // DB error
         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
     } else {
         $row = mysql_fetch_row($result);
         $new_perf = AA_formatResultMeter($row[0]);
         mysql_free_result($result);
     }
     return $new_perf;
 }
Пример #16
0
    function AA_results_Tech($round, $layout)
    {
        require './lib/cl_gui_button.lib.php';
        require './config.inc.php';
        require './lib/common.lib.php';
        require './lib/heats.lib.php';
        require './lib/results.lib.php';
        require './lib/utils.lib.php';
        require './lib/cl_wind.lib.php';
        $presets = AA_results_getPresets($round);
        // read GET/POST variables
        $nextRound = AA_getNextRound($presets['event'], $round);
        $svm = AA_checkSVM(0, $round);
        // decide whether to show club or team name
        $prog_mode = AA_results_getProgramMode();
        //
        // terminate result processing
        //
        if ($_GET['arg'] == 'results_done' || $prog_mode == 2 && $_GET['arg'] != 'change_results' && $_GET['arg'] != 'del_results') {
            $eval = AA_results_getEvaluationType($round);
            $combined = AA_checkCombined(0, $round);
            mysql_query("LOCK TABLES r READ, s READ, ss READ, runde READ");
            // if this is a combined event, rank all rounds togheter
            $roundSQL = "";
            $roundSQL2 = "";
            if ($combined) {
                $roundSQL = " s.xRunde IN (";
                $roundSQL2 = " s.xRunde IN (";
                $res_c = mysql_query("SELECT xRunde FROM runde WHERE xWettkampf = " . $presets['event']);
                while ($row_c = mysql_fetch_array($res_c)) {
                    $roundSQL .= $row_c[0] . ",";
                    $roundSQL2 .= $row_c[0] . ",";
                }
                $roundSQL = substr($roundSQL, 0, -1) . ")";
                $roundSQL2 = substr($roundSQL2, 0, -1) . ")";
            } else {
                $roundSQL = " s.xRunde = {$round}";
                $roundSQL2 = " s.xRunde = {$round}";
            }
            // number of athletes
            $sql = "SELECT \r\n                    ss.xSerienstart  \r\n             FROM \r\n                    runde AS r\r\n                    LEFT JOIN serie AS s ON (s.xRunde = r.xRunde)\r\n                    LEFT JOIN serienstart AS ss ON (ss.xSerie = s.xSerie)\r\n                    LEFT JOIN start AS st ON (st.xStart = ss.xStart)\r\n                    LEFT JOIN anmeldung AS a ON (a.xAnmeldung = st.xAnmeldung)\r\n                    LEFT JOIN athlet AS at ON (at.xAthlet = a.xAthlet)\r\n             WHERE r.xRunde = " . $round . "\r\n                   ";
            $res = mysql_query($sql);
            if (mysql_errno() > 0) {
                // DB error
                AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
            } else {
                $count_athlete = mysql_num_rows($res);
            }
            // evaluate max. nbr of results entered
            $r = 0;
            if ($prog_mode == 2) {
                // create array for calculate field focus
                $sql_r = "SELECT                                      \r\n                ru.Versuche, \r\n                LPAD(s.Bezeichnung,5,'0') as heatid,  \r\n                if (ss.Position2 > 0, if (ss.Position3 > 0, ss.Position3, ss.Position2) , ss.Position ) as posOrder \r\n                , ss.Position\r\n                , ss.Position2\r\n                , ss.Position3 \r\n                , ss.xSerienstart\r\n                , ss.Rang\r\n                , s.MaxAthlet\r\n                , s.xSerie \r\n                , r.Leistung \r\n          FROM \r\n                resultat AS r\r\n                LEFT JOIN serienstart AS ss ON (r.xSerienstart = ss.xSerienstart)\r\n                LEFT JOIN serie AS s ON (ss.xSerie = s.xSerie )\r\n                LEFT JOIN runde AS ru ON (s.xRunde = ru.xRunde) \r\n          WHERE " . $roundSQL2 . "  \r\n          ORDER BY posOrder, r.xResultat ";
                $result_r = mysql_query($sql_r);
                $heatStart = '';
                $arr_perfAthlete = array();
                $arr_perfAthleteValids = array();
                $c = 0;
                $h = 0;
                $pos2 = 0;
                // calculate attempts of athletes
                while ($row_r = mysql_fetch_row($result_r)) {
                    if ($heatStart != $row_r[6]) {
                        // new heat start
                        if (!empty($heatStart)) {
                            $arr_perfAthlete[$h] = $c;
                            if ($c > 0) {
                                $arr_perfAthleteValids[$h] = $c;
                            }
                            $h++;
                            if ($h >= $row_r[8] && $row_r[4] > 0) {
                                // maxAthlete reached by second/third Position
                                break;
                            }
                        }
                        $c = 0;
                        if ($row_r[10] > 0 || $row_r[10] < $cfgInvalidResult['DSQ']['code']) {
                            $c++;
                        } elseif ($row_r[10] == $cfgInvalidResult['DNS']['code']) {
                            $c = $cfgInvalidResult['DNS']['code'];
                        } elseif ($row_r[10] == $cfgInvalidResult['DNF']['code']) {
                            $c = $cfgInvalidResult['DNF']['code'];
                        } elseif ($row_r[10] == $cfgInvalidResult['DSQ']['code']) {
                            $c = $cfgInvalidResult['DSQ']['code'];
                        }
                    } else {
                        if ($row_r[10] > 0 || $row_r[10] < $cfgInvalidResult['DSQ']['code']) {
                            $c++;
                        } elseif ($row_r[10] == $cfgInvalidResult['DNS']['code']) {
                            $c = $cfgInvalidResult['DNS']['code'];
                        } elseif ($row_r[10] == $cfgInvalidResult['DNF']['code']) {
                            $c = $cfgInvalidResult['DNF']['code'];
                        } elseif ($row_r[10] == $cfgInvalidResult['DSQ']['code']) {
                            $c = $cfgInvalidResult['DSQ']['code'];
                        }
                    }
                    $heatStart = $row_r[6];
                    $maxAthlete = $row_r[8];
                    $pos2 = $row_r[4];
                }
                // last athlete
                if ($h >= $maxAthlete && $pos2 > 0) {
                } else {
                    $arr_perfAthlete[$h] = $c;
                    if ($c > 0) {
                        $arr_perfAthleteValids[$h] = $c;
                    }
                }
                $p1 = 0;
                $p2 = 0;
                //calculate doing new position
                foreach ($arr_perfAthlete as $key => $val) {
                    if ($val == 3 || $val < 0) {
                        $p1++;
                    } elseif ($val == 5 || $val < 0) {
                        $p2++;
                    }
                }
                if (count($arr_perfAthlete) == $p1) {
                    AA_rankingForNewPosition($round, 2);
                    AA_newPosition($round, 2);
                } elseif (count($arr_perfAthlete) == $p2) {
                    AA_rankingForNewPosition($round, 3);
                    AA_newPosition($round, 3);
                }
                $sql = "SELECT \r\n                COUNT(*),                  \r\n                ru.Versuche, \r\n                LPAD(s.Bezeichnung,5,'0') as heatid,  \r\n                if (ss.Position2 > 0, if (ss.Position3 > 0, ss.Position3, ss.Position2) , ss.Position ) as posOrder \r\n                , ss.Position\r\n                , ss.Position2\r\n                , ss.Position3 \r\n                , ss.xSerienstart\r\n                , ss.Rang\r\n                , s.MaxAthlet\r\n                , s.xSerie \r\n                , r.Leistung\r\n                \r\n          FROM \r\n                resultat AS r\r\n                LEFT JOIN serienstart AS ss ON (r.xSerienstart = ss.xSerienstart)\r\n                LEFT JOIN serie AS s ON (ss.xSerie = s.xSerie )\r\n                LEFT JOIN runde AS ru ON (s.xRunde = ru.xRunde) \r\n          WHERE " . $roundSQL2 . "                       \r\n          GROUP BY r.xSerienstart\r\n          ORDER BY posOrder ";
                $result = mysql_query($sql);
            } else {
                $result = mysql_query("SELECT COUNT(*), ru.Versuche" . " FROM resultat AS r" . " LEFT JOIN serienstart AS ss ON (r.xSerienstart = ss.xSerienstart)" . " LEFT JOIN serie AS s ON (ss.xSerie = s.xSerie)" . " LEFT JOIN runde AS ru ON (s.xRunde = ru.xRunde)" . " WHERE " . " {$roundSQL2} " . " GROUP BY r.xSerienstart" . " ORDER BY 1 DESC");
            }
            if (mysql_errno() > 0) {
                // DB error
                AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
            } else {
                if ($prog_mode == 2) {
                    // decentral with ranking
                    $z = 0;
                    $pass = 0;
                    $arr_attAthlete = array();
                    $maxAthlete = 0;
                    while ($row = mysql_fetch_row($result)) {
                        if ($z == 0) {
                            // first row
                            $maxatt = $row[1];
                            $maxAthlete = $row[9];
                            $xSerie = $row[10];
                        }
                        if ($row[11] != $cfgInvalidResult['DNS']['code']) {
                            $arr_attAthlete[] = $row[0];
                        }
                        $keep_rank = $row[8];
                        $z++;
                    }
                    if ($count_athlete < $maxAthlete) {
                        $maxAthlete = $count_athlete;
                        // update max athlete in serie
                        AA_setMaxAthlete($xSerie, $maxAthlete);
                    }
                    $maxAthleteAtt = max($arr_attAthlete);
                    $minAthleteAtt = min($arr_attAthlete);
                    $onlyMaxAthlete = false;
                    if ($count_athlete > $cfgMaxAthlete) {
                        if ($maxAthleteAtt == $minAthleteAtt && $minAthleteAtt == $cfgAfterAttempts1) {
                            $onlyMaxAthlete = true;
                        } elseif ($maxAthleteAtt > $cfgAfterAttempts1) {
                            $onlyMaxAthlete = true;
                        }
                    }
                    if ($onlyMaxAthlete && $count_athlete > $cfgMaxAthlete) {
                        $c = 0;
                        $arr_attAthlete_new = array();
                        foreach ($arr_attAthlete as $key => $val) {
                            $c++;
                            $arr_attAthlete_new[] = $val;
                            if ($c >= $maxAthlete) {
                                break;
                            }
                        }
                        $arr_attAthlete = $arr_attAthlete_new;
                        $maxAthleteAtt = max($arr_attAthlete);
                        $minAthleteAtt = min($arr_attAthlete);
                    }
                    $r = $maxAthleteAtt;
                    $first_row = false;
                    $maxAthleteAtt = max($arr_perfAthleteValids);
                    $minAthleteAtt = min($arr_perfAthleteValids);
                    if ($maxAthleteAtt == $cfgAfterAttempts1 && $maxAthleteAtt == $minAthleteAtt) {
                        $pass = 2;
                    } elseif ($maxAthleteAtt == $cfgAfterAttempts2 && $maxAthleteAtt == $minAthleteAtt) {
                        $pass = 3;
                    } elseif ($maxAthleteAtt > $cfgAfterAttempts1 && $maxAthleteAtt < $cfgAfterAttempts2 + 1) {
                        $pass = 2;
                    } elseif ($maxAthleteAtt == $cfgAfterAttempts2 + 1) {
                        $pass = 3;
                    } elseif ($maxAthleteAtt == $minAthleteAtt && $z == $count_athlete) {
                        $first_row = true;
                        $maxAthleteAtt++;
                    }
                    $fieldFocus = 1;
                } else {
                    $row = mysql_fetch_row($result);
                    $r = $row[0];
                }
                mysql_free_result($result);
            }
            $minPerfAthl = min($arr_perfAthleteValids);
            $maxPerfAthl = max($arr_perfAthleteValids);
            $keep_val = '';
            $keep_key = '';
            foreach ($arr_perfAthlete as $key => $val) {
                if (empty($keep_val) && !empty($val)) {
                    $fieldFocus = $maxatt + 1 + $maxPerfAthl;
                }
                $keep_key = $key;
                if ($keep_val > $val) {
                    if ($val == $cfgInvalidResult['DNS']['code'] || $val == $cfgInvalidResult['DNF']['code'] || $val == $cfgInvalidResult['DSQ']['code']) {
                        continue;
                    }
                    $fieldFocus = $key * ($maxatt + 1) + $maxPerfAthl;
                    break;
                }
                $keep_val = $val;
            }
            if ($pos2 == 0) {
                if ($count_athlete > count($arr_perfAthlete)) {
                    $fieldFocus = ($keep_key + 1) * ($maxatt + 1) + $maxPerfAthl;
                } elseif ($count_athlete == count($arr_perfAthlete) && $minPerfAthl == $maxPerfAthl) {
                    $fieldFocus = $maxPerfAthl + 1;
                }
            } else {
                if ($minPerfAthl == $maxPerfAthl) {
                    $fieldFocus = $maxPerfAthl + 1;
                }
            }
            if ($r > 0) {
                mysql_query("DROP TABLE IF EXISTS tempresult");
                // temporary table
                if (mysql_errno() > 0) {
                    // DB error
                    AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                } else {
                    mysql_query("\r\n                LOCK TABLES\r\n                    resultat READ\r\n                    , serie READ\r\n                    , wettkampf READ\r\n                    , serienstart WRITE\r\n                    , tempresult WRITE\r\n            ");
                    // Set up a temporary table to hold all results for ranking.
                    // The number of result columns varies according to the maximum
                    // number of results per athlete.
                    $qry = "\r\n                CREATE TABLE tempresult (\r\n                    xSerienstart int(11)\r\n                    , xSerie int(11)";
                    for ($i = 1; $i <= $r; $i++) {
                        $qry = $qry . ", Res" . $i . " int(9) default '0'";
                        $qry = $qry . ", Wind" . $i . " char(5) default '0'";
                    }
                    $qry = $qry . ") TYPE=HEAP";
                    mysql_query($qry);
                    // create temporary table
                    if (mysql_errno() > 0) {
                        // DB error
                        AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                    } else {
                        // reset rank to 0  first
                        $sql = " SELECT\r\n                        r.Leistung\r\n                        , r.Info\r\n                        , ss.xSerienstart\r\n                        , ss.xSerie\r\n                    FROM\r\n                        resultat as r\r\n                        LEFT JOIN serienstart as ss ON (r.xSerienstart = ss.xSerienstart)\r\n                        LEFT JOIN serie AS s ON (ss.xSerie = s.xSerie)\r\n                    WHERE   \r\n                    {$roundSQL}\r\n                    AND r.Leistung <= 0\r\n                    ORDER BY\r\n                        ss.xSerienstart\r\n                        ,r.Leistung DESC";
                        $result = mysql_query($sql);
                        if (mysql_errno() > 0) {
                            // DB error
                            AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                        } else {
                            while ($row = mysql_fetch_row($result)) {
                                mysql_query("\r\n                            UPDATE serienstart SET\r\n                                Rang = 0\r\n                            WHERE xSerienstart = {$row['2']}\r\n                        ");
                                if (mysql_errno() > 0) {
                                    AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                }
                            }
                        }
                        $result = mysql_query("\r\n                    SELECT\r\n                        r.Leistung\r\n                        , r.Info\r\n                        , ss.xSerienstart\r\n                        , ss.xSerie\r\n                    FROM\r\n                       resultat as r\r\n                        LEFT JOIN serienstart as ss ON (r.xSerienstart = ss.xSerienstart)\r\n                        LEFT JOIN serie AS s ON (ss.xSerie = s.xSerie)\r\n                    WHERE \r\n                    {$roundSQL}\r\n                    AND r.Leistung >= 0\r\n                    ORDER BY\r\n                        ss.xSerienstart\r\n                        ,r.Leistung DESC\r\n                ");
                        if (mysql_errno() > 0) {
                            // DB error
                            AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                        } else {
                            // initialize variables
                            $ss = 0;
                            $i = 0;
                            // process every result
                            while ($row = mysql_fetch_row($result)) {
                                if ($ss != $row[2]) {
                                    // add one row per athlete to temp table
                                    if ($ss != 0) {
                                        for (; $i < $r; $i++) {
                                            // fill remaining result cols.
                                            $qry = $qry . ",0,''";
                                        }
                                        mysql_query($qry . ")");
                                        if (mysql_errno() > 0) {
                                            // DB error
                                            AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                        }
                                    }
                                    // (re)set SQL statement
                                    $qry = "INSERT INTO tempresult VALUES({$row['2']},{$row['3']}";
                                    $i = 0;
                                }
                                $qry = $qry . ",{$row['0']},'{$row['1']}'";
                                // add current result to query
                                $ss = $row[2];
                                // keep athlete's ID
                                $i++;
                                // count nbr of results
                            }
                            mysql_free_result($result);
                            // insert last pending data in temp table
                            if ($ss != 0) {
                                for (; $i < $r; $i++) {
                                    // fill remaining result cols.
                                    $qry = $qry . ",0,''";
                                }
                                mysql_query($qry . ")");
                                if (mysql_errno() > 0) {
                                    // DB error
                                    AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                }
                            }
                        }
                        if ($eval == $cfgEvalType[$strEvalTypeHeat]) {
                            // eval per heat
                            $qry = "\r\n                        SELECT\r\n                            *\r\n                        FROM\r\n                            tempresult\r\n                        ORDER BY\r\n                            xSerie";
                            for ($i = 1; $i <= $r; $i++) {
                                $qry = $qry . ", Res" . $i . " DESC";
                            }
                        } else {
                            // default: rank results from all heats together
                            $qry = "\r\n                        SELECT\r\n                            *\r\n                        FROM\r\n                            tempresult\r\n                        ORDER BY ";
                            $comma = "";
                            // order by available result columns
                            for ($i = 1; $i <= $r; $i++) {
                                $qry = $qry . $comma . "Res" . $i . " DESC";
                                $comma = ", ";
                            }
                        }
                        $result = mysql_query($qry);
                        if (mysql_errno() > 0) {
                            // DB error
                            AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                        } else {
                            // initialize variables
                            $heat = 0;
                            $perf_old[] = '';
                            $j = 0;
                            $rank = 0;
                            // set rank for every athlete
                            while ($row = mysql_fetch_row($result)) {
                                for ($i = 0; $i <= $r; $i++) {
                                    $perf[$i] = $row[2 * $i + 2];
                                    $wind[$i] = $row[2 * $i + 3];
                                }
                                if ($eval == $cfgEvalType[$strEvalTypeHeat] && $heat != $row[1]) {
                                    $j = 0;
                                    // restart ranking
                                    $perf_old[] = '';
                                }
                                $j++;
                                // increment ranking
                                if ($perf_old != $perf) {
                                    // compare performances
                                    $rank = $j;
                                    // next rank (only if not same performance)
                                }
                                mysql_query("\r\n                            UPDATE serienstart SET\r\n                                Rang = {$rank}\r\n                            WHERE xSerienstart = {$row['0']}\r\n                        ");
                                if (mysql_errno() > 0) {
                                    AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                }
                                $heat = $row[1];
                                // keep current heat ID
                                $perf_old = $perf;
                            }
                            mysql_free_result($result);
                        }
                        mysql_query("DROP TABLE IF EXISTS tempresult");
                        if (mysql_errno() > 0) {
                            // DB error
                            AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                        }
                    }
                    // ET DB error (create temp table)
                    mysql_query("UNLOCK TABLES");
                }
                // ET DB error (drop temp table)
            }
            // ET any results found
            AA_results_setNotStarted($round);
            // update athletes with no result
            if ($_GET['arg'] == 'results_done') {
                AA_utils_changeRoundStatus($round, $cfgRoundStatus['results_done']);
            }
            if (!empty($GLOBALS['AA_ERROR'])) {
                AA_printErrorMsg($GLOBALS['AA_ERROR']);
            }
            AA_results_resetQualification($round);
        }
        //
        // calculate ranking points if needed
        //
        if ($_GET['arg'] == 'results_done' || $_POST['arg'] == 'save_rank' || $prog_mode == 2 && $_GET['arg'] != 'change_results' && $_GET['arg'] != 'del_results') {
            AA_utils_calcRankingPoints($round);
        }
        //
        // Qualify athletes after ranks are set
        //
        if ($_GET['arg'] == 'results_done' || $_POST['arg'] == 'save_rank' || $_POST['arg'] == 'set_qual' || $prog_mode == 2 && $_GET['arg'] != 'change_results' && $_GET['arg'] != 'del_results') {
            // read qualification criteria
            $qual_top = 0;
            $qual_perf = 0;
            $result = mysql_query("SELECT QualifikationSieger" . ", QualifikationLeistung" . " FROM runde" . " WHERE xRunde = " . $round);
            if (mysql_errno() > 0) {
                // DB error
                AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
            } else {
                if (($row = mysql_fetch_row($result)) == TRUE) {
                }
                $qual_top = $row[0];
                $qual_perf = $row[1];
                mysql_free_result($result);
            }
            // ET DB error
            // qualify top athletes for next round
            if ($qual_top > 0) {
                mysql_query("LOCK TABLES serie READ, serienstart WRITE");
                // get athletes by qualifying rank (random order if same rank)
                $result = mysql_query("SELECT serienstart.xSerienstart" . ", serienstart.xSerie" . ", serienstart.Rang" . " FROM serienstart" . ", serie" . " WHERE serienstart.Rang > 0" . " AND serienstart.xSerie = serie.xSerie" . " AND serie.xRunde = " . $round . " AND serienstart.Qualifikation = 0" . " ORDER BY serienstart.xSerie" . ", serienstart.Rang ASC" . ", RAND()");
                if (mysql_errno() > 0) {
                    AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                } else {
                    $h = 0;
                    unset($heats);
                    // clear array containing heats
                    while ($row = mysql_fetch_row($result)) {
                        if ($h != $row[1]) {
                            // new heat
                            if (count($starts) > 0) {
                                // count athletes
                                $heats[] = $starts;
                                // keep athletes per heat
                            }
                            unset($starts);
                            $c = 0;
                        }
                        $starts[$row[0]] = $row[2];
                        // keep athlete's rank
                        $h = $row[1];
                        // keep heat
                    }
                    $heats[] = $starts;
                    // keep remaining athletes
                    mysql_free_result($result);
                    foreach ($heats as $starts) {
                        $rankcount = array_count_values($starts);
                        // count athletes/rank
                        $q = 0;
                        foreach ($starts as $id => $rank) {
                            // check if more athletes per rank than qualifying spots
                            if ($rankcount[$rank] > $qual_top - $rank + 1) {
                                $qual = $cfgQualificationType['top_rand']['code'];
                            } else {
                                $qual = $cfgQualificationType['top']['code'];
                            }
                            if ($q < $qual_top) {
                                mysql_query("UPDATE serienstart SET" . " Qualifikation = " . $qual . " WHERE xSerienstart = " . $id);
                                if (mysql_errno() > 0) {
                                    AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                }
                                $q++;
                                // count nbr of qualified athletes
                            }
                        }
                    }
                    // END loop every heat
                }
                // ET DB error
                mysql_query("UNLOCK TABLES");
            }
            // ET top athletes
            // qualify top performing athletes for next round
            if ($qual_perf > 0) {
                mysql_query("LOCK TABLES resultat READ, serie READ, serienstart WRITE");
                // get remaining athletes by performance (random order if equal performance)
                /* other possible criteria to order equal performances:
                 * - ranking within heat (not implemented)
                 * - wind (not implemented)
                 */
                $result = mysql_query("SELECT serienstart.xSerienstart" . ", resultat.Leistung" . ", serienstart.Qualifikation" . " FROM resultat" . ", serienstart" . ", serie" . " WHERE resultat.xSerienstart = serienstart.xSerienstart" . " AND resultat.Leistung > 0" . " AND (serienstart.Qualifikation = 0 " . " OR serienstart.Qualifikation = " . $cfgQualificationType['waived']['code'] . ")" . " AND serienstart.xSerie = serie.xSerie" . " AND serie.xRunde = " . $round . " ORDER BY resultat.Leistung DESC" . ", RAND()");
                if (mysql_errno() > 0) {
                    AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                } else {
                    $i = 1;
                    $perf = 0;
                    $cWaived = 0;
                    while ($row = mysql_fetch_row($result)) {
                        // count waived qualifyings
                        if ($row[2] == $cfgQualificationType['waived']['code']) {
                            $cWaived++;
                            continue;
                        }
                        if ($i > $qual_perf) {
                            // terminate if enough top performers found
                            if ($perf != $row[1]) {
                                // last perf. worse than last qualified
                                $perf = 0;
                            }
                            break;
                        }
                        // if athletes waived on qualifying, set random code for next best athletes
                        $code = $cfgQualificationType['perf']['code'];
                        if ($i + $cWaived > $qual_perf) {
                            $code = $cfgQualificationType['perf_rand']['code'];
                        }
                        mysql_query("UPDATE serienstart SET" . " Qualifikation = " . $code . " WHERE xSerienstart = " . $row[0]);
                        if (mysql_errno() > 0) {
                            AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                        }
                        $i++;
                        $perf = $row[1];
                        // keep performance
                    }
                    // reset performance if enough qualifing spots
                    if (mysql_num_rows($result) <= $qual_perf) {
                        $perf = 0;
                    }
                    mysql_free_result($result);
                    // Change qualification type to "perf_rand" for athletes with same
                    // performance as the 1st unqualified athlete
                    if ($perf != 0) {
                        $result = mysql_query("SELECT serienstart.xSerienstart" . " FROM resultat" . ", serienstart" . ", serie" . " WHERE resultat.xSerienstart = serienstart.xSerienstart" . " AND resultat.Leistung = " . $perf . " AND serienstart.Qualifikation > 0" . " AND serienstart.xSerie = serie.xSerie" . " AND serie.xRunde = " . $round);
                        if (mysql_errno() > 0) {
                            AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                        } else {
                            while ($row = mysql_fetch_row($result)) {
                                mysql_query("UPDATE serienstart SET" . " Qualifikation = " . $cfgQualificationType['perf_rand']['code'] . " WHERE xSerienstart = " . $row[0]);
                                if (mysql_errno() > 0) {
                                    AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                }
                            }
                            mysql_free_result($result);
                        }
                    }
                    // ET unqualified athlete
                }
                // ET DB error qualified by performance
                mysql_query("UNLOCK TABLES");
            }
            // ET top performances
        }
        //
        // print HTML page header
        //
        AA_results_printHeader($presets['category'], $presets['event'], $round);
        $mergedMain = AA_checkMainRound($round);
        if ($mergedMain != 1) {
            // read round data
            if ($round > 0) {
                $status = AA_getRoundStatus($round);
                // No action yet
                if ($status == $cfgRoundStatus['open'] || $status == $cfgRoundStatus['enrolement_done'] || $status == $cfgRoundStatus['heats_in_progress']) {
                    AA_printWarningMsg($strHeatsNotDone);
                } else {
                    if ($status == $cfgRoundStatus['enrolement_pending']) {
                        AA_printWarningMsg($strEnrolementNotDone);
                    } else {
                        if ($status >= $cfgRoundStatus['heats_done']) {
                            // get program mode
                            $prog_mode = AA_results_getProgramMode();
                            AA_heats_printNewStart($presets['event'], $round, "event_results.php");
                            if ($pass == 2) {
                                $fieldPos = "ss.Position2";
                                $order = "posOrder";
                            } elseif ($pass == 3) {
                                $fieldPos = "ss.Position3";
                                $order = "ss.Rang DESC";
                            } else {
                                $fieldPos = "ss.Position";
                                $order = "posOrder";
                            }
                            // display all athletes
                            $sql = "SELECT rt.Name" . ", rt.Typ" . ", s.xSerie" . ", s.Bezeichnung" . ", s.Wind" . ", an.Bezeichnung" . ", ss.xSerienstart" . ", ss.Position" . ", ss.Rang" . ", a.Startnummer" . ", at.Name" . ", at.Vorname" . ", at.Jahrgang" . ", if('" . $svm . "', t.Name, IF(a.Vereinsinfo = '', v.Name, a.Vereinsinfo))" . ", LPAD(s.Bezeichnung,5,'0') as heatid" . ", r.Versuche" . ", ss.Qualifikation" . ", at.Land" . ", r.nurBestesResultat" . ", ss.Bemerkung" . ", at.xAthlet" . ",  if (ss.Position2 > 0, if (ss.Position3 > 0, ss.Position3, ss.Position2) , ss.Position ) as posOrder  " . " FROM runde AS r" . ", serie AS s" . ", serienstart AS ss" . ", start AS st" . ", anmeldung AS a" . ", athlet AS at" . ", verein AS v" . " LEFT JOIN team AS t ON(a.xTeam = t.xTeam)" . " LEFT JOIN rundentyp AS rt" . " ON rt.xRundentyp = r.xRundentyp" . " LEFT JOIN anlage AS an" . " ON an.xAnlage = s.xAnlage" . " WHERE r.xRunde = " . $round . " AND s.xRunde = r.xRunde" . " AND ss.xSerie = s.xSerie" . " AND st.xStart = ss.xStart" . " AND a.xAnmeldung = st.xAnmeldung" . " AND at.xAthlet = a.xAthlet" . " AND v.xVerein = at.xVerein" . " ORDER BY heatid, posOrder";
                            $result = mysql_query($sql);
                            if (mysql_errno() > 0) {
                                // DB error
                                AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                            } else {
                                $sum_athlet = mysql_num_rows($result);
                                AA_results_printMenu($round, $status, $prog_mode, 'tech');
                                // initialize variables
                                $h = 0;
                                $i = 0;
                                $r = 0;
                                $rowclass = 'odd';
                                $r_rem = 0;
                                $nextRound = AA_getNextRound($presets['event'], $round);
                                // show qualification form if another round follows
                                if ($nextRound > 0) {
                                    // next round
                                    $sql = "SELECT QualifikationSieger, \r\n                               QualifikationLeistung \r\n                          FROM runde \r\n                         WHERE xRunde = " . $round . ";";
                                    $result2 = mysql_query($sql);
                                    if (mysql_errno() > 0) {
                                        // DB error
                                        AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                    } else {
                                        $row2 = mysql_fetch_row($result2);
                                        if ($row2 == true) {
                                            // round found
                                            ?>
                        <p/>
                            <form name="qualification" action="event_results.php" method="post">
                                <input type="hidden" name="arg" value="set_qual"/>
                                <input type="hidden" name="round" value="<?php 
                                            echo $round;
                                            ?>
"/>
                                <table class="dialog">
                                    <tr>
                                        <td class="dialog"><?php 
                                            echo $strQualification;
                                            ?>
 <?php 
                                            echo $strQualifyTop;
                                            ?>
</td>
                                        <td class="dialog"><input type="text" name="qual_top" class="nbr" maxlength="4" value="<?php 
                                            echo $row2[0];
                                            ?>
"/></td>
                                        <td class='dialog'><?php 
                                            echo $strQualification;
                                            ?>
 <?php 
                                            echo $strQualifyPerformance;
                                            ?>
</td>
                                        <td class='dialog'><input type="text" name="qual_perf" class="nbr" maxlength="4" value="<?php 
                                            echo $row2[1];
                                            ?>
"/></td>
                                        <td><button type="submit"><?php 
                                            echo $strChange;
                                            ?>
</button></td>
                                    </tr>
                                </table>
                            </form>
                            
                            <form name="frmQual" action="event_results.php" method="post">
                                <input type="hidden" name="arg" value="change_qual"/>
                                <input type="hidden" name="round" value="<?php 
                                            echo $round;
                                            ?>
"/>
                                <input type="hidden" name="focus" value="qual_0"/>
                                <input type="hidden" name="item" value="0"/>
                                <input type="hidden" name="oldqual" value="0"/>
                                <input type="hidden" name="heat" value="0"/>
                                <input type="hidden" name="qual" value="0"/>
                            </form>
                            <script type="text/javascript">
                                function changequal(valFocus, valItem, valOldQual, valHeat, valQual){
                                    var obj = document.frmQual;
                                    
                                    obj.focus.value = valFocus;
                                    obj.item.value = valItem;
                                    obj.oldqual.value = valOldQual;
                                    obj.heat.value = valHeat;
                                    obj.qual.value = valQual;
                                    obj.submit();
                                }
                            </script>
                        <p/>
                        <?php 
                                        }
                                        // ET round found
                                    }
                                    // ET DB error
                                }
                                // ET next round
                                ?>
<p/>
<table class='dialog'>
<?php 
                                $btn = new GUI_Button('', '');
                                // create button object
                                while ($row = mysql_fetch_row($result)) {
                                    //
                                    // get entered number of attempts
                                    //
                                    $maxatt = $row[15];
                                    if ($maxatt != 0) {
                                        $cfgProgramMode[$prog_mode]['tech_res'] = $maxatt;
                                    }
                                    /*
                                     *  Heat headerline
                                     */
                                    if ($h != $row[2]) {
                                        $h = $row[2];
                                        // keep heat ID
                                        if (is_null($row[0])) {
                                            // only one round
                                            $title = "{$strFinalround}";
                                        } else {
                                            // more than one round
                                            $title = "{$row['0']}";
                                        }
                                        $c = 0;
                                        if ($status == $cfgRoundStatus['results_done'] || $prog_mode == 2) {
                                            $c++;
                                            // increment colspan to include ranking
                                        }
                                        ?>
    <tr>
        <form action='event_results.php#heat_<?php 
                                        echo $row[3];
                                        ?>
' method='post'
            name='heat_id_<?php 
                                        echo $h;
                                        ?>
'>

        <th class='dialog' colspan='
<?php 
                                        echo 5 + $cfgProgramMode[$prog_mode]['tech_res'] + $c;
                                        ?>
'>
            <?php 
                                        echo $title;
                                        ?>
            <input type='hidden' name='arg' value='change_heat_name' />
            <input type='hidden' name='round' value='<?php 
                                        echo $round;
                                        ?>
' />
            <input type='hidden' name='item' value='<?php 
                                        echo $row[2];
                                        ?>
' />
            <input class='nbr' type='text' name='id' maxlength='2'
                value='<?php 
                                        echo $row[3];
                                        ?>
'
                onChange='document.heat_id_<?php 
                                        echo $h;
                                        ?>
.submit()' />
                <a name='heat_<?php 
                                        echo $row[3];
                                        ?>
' />
        </th>
        </form>
    </tr>

    <tr>
        <th class='dialog'><?php 
                                        echo $strPositionShort;
                                        ?>
</th>
        <th class='dialog' colspan='2'><?php 
                                        echo $strAthlete;
                                        ?>
</th>
        <th class='dialog'><?php 
                                        echo $strYearShort;
                                        ?>
</th>
        <th class='dialog'><?php 
                                        echo $strCountry;
                                        ?>
</th>
        <th class='dialog'><?php 
                                        if ($svm) {
                                            echo $strTeam;
                                        } else {
                                            echo $strClub;
                                        }
                                        ?>
</th>
<?php 
                                        if ($status == $cfgRoundStatus['results_done'] || $prog_mode == 2) {
                                            ?>
        <th class='dialog'><?php 
                                            echo $strRank;
                                            ?>
</th>
<?php 
                                            if ($nextRound > 0) {
                                                ?>
        <th class='dialog'><?php 
                                                echo $strQualification;
                                                ?>
</th>
<?php 
                                            }
                                        }
                                        if ($cfgProgramMode[$prog_mode]['tech_res'] <= 1) {
                                            ?>
        <th class='dialog'><?php 
                                            echo $strPerformance;
                                            ?>
</th>
<?php 
                                        } else {
                                            for ($c = 1; $c <= $cfgProgramMode[$prog_mode]['tech_res']; $c++) {
                                                ?>
        <th class='dialog'><?php 
                                                echo $c . ".";
                                                ?>
</th>
<?php 
                                            }
                                            ?>
 
                    <th class='dialog'><?php 
                                            echo $strResultRemark;
                                            ?>
</th> 
<?php 
                                        }
                                        ?>
    </tr>
<?php 
                                    }
                                    // ET new heat
                                    /*
                                     * Athlete data lines
                                     */
                                    $i++;
                                    if ($row[7] % 2 == 0) {
                                        // even row numer
                                        $rowclass = 'odd';
                                    } else {
                                        // odd row number
                                        $rowclass = 'even';
                                    }
                                    ?>
    <tr class='<?php 
                                    echo $rowclass;
                                    ?>
'>
        <td class='forms_right'><?php 
                                    echo $row[7];
                                    /* position */
                                    ?>
</td>
        <td class='forms_right'><?php 
                                    echo $row[9];
                                    /* start nbr */
                                    ?>
</td>
        <td nowrap><?php 
                                    echo $row[10] . " " . $row[11];
                                    /* name */
                                    ?>
</td>
        <td class='forms_ctr'><?php 
                                    echo AA_formatYearOfBirth($row[12]);
                                    ?>
</td>
        <td><?php 
                                    echo $row[17] != '' && $row[17] != '-' ? $row[17] : '&nbsp;';
                                    ?>
</td>
        <td nowrap><?php 
                                    echo $row[13];
                                    /* club */
                                    ?>
</td>
<?php 
                                    $res = mysql_query("SELECT rs.xResultat" . ", rs.Leistung" . ", rs.Info" . " FROM resultat AS rs" . " WHERE rs.xSerienstart = " . $row[6] . "\r\n                    ORDER BY rs.xResultat");
                                    if (mysql_errno() > 0) {
                                        // DB error
                                        AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                    } else {
                                        // Show rank
                                        if ($status == $cfgRoundStatus['results_done'] || $prog_mode == 2) {
                                            $disField = ($maxatt + 1) * $maxAthlete;
                                            // attempts * 8 (first 8 athletes)
                                            if ($pass >= 2 && $r + 1 > $disField) {
                                                $dis = 'disabled=" disabled"';
                                            } else {
                                                $dis = '';
                                            }
                                            ?>
        <form action='event_results.php' method='post'
            name='rank_<?php 
                                            echo $r;
                                            ?>
'>
        <td>
            <input type='hidden' name='arg' value='save_rank' />
            <input type='hidden' name='round' value='<?php 
                                            echo $round;
                                            ?>
' />
            <input type='hidden' name='item' value='<?php 
                                            echo $row[6];
                                            ?>
' />
            <input type='hidden' name='focus' value='rank_<?php 
                                            echo $r;
                                            ?>
' />
            <input class='nbr' type='text' name='rank' maxlength='3'   <?php 
                                            echo $dis;
                                            ?>
   
                value='<?php 
                                            echo $row[8];
                                            ?>
' onChange='document.rank_<?php 
                                            echo $r;
                                            ?>
.submit()' />
        </td>
        <?php 
                                            if ($status == $cfgRoundStatus['results_done'] || $prog_mode == 2) {
                                                if ($nextRound > 0) {
                                                    ?>
                            <form name="qual_<?php 
                                                    echo $i;
                                                    ?>
" action="event_results.php" method="post">
                                <td>
                                    <input type="hidden" name="arg" value="change_qual"/>
                                    <input type="hidden" name="round" value="<?php 
                                                    echo $round;
                                                    ?>
"/>
                                    <input type="hidden" name="focus" value="qual_<?php 
                                                    echo $i;
                                                    ?>
"/>
                                    <input type="hidden" name="item" value="<?php 
                                                    echo $row[6];
                                                    ?>
"/>
                                    <input type="hidden" name="oldqual" value="<?php 
                                                    echo $row[16];
                                                    ?>
"/>
                                    <input type="hidden" name="heat" value="<?php 
                                                    echo $row[2];
                                                    ?>
"/>
                                    <?php 
                                                    $dropdown = new GUI_Select('qual', 1, 'changequal("qual_' . $i . '", ' . $row[6] . ', ' . $row[16] . ', ' . $row[2] . ', this.value)');
                                                    $dropdown->addOptionNone();
                                                    foreach ($cfgQualificationType as $type) {
                                                        $dropdown->addOption($type['text'], $type['code']);
                                                        if ($type['code'] == $row[16]) {
                                                            $dropdown->selectOption($type['code']);
                                                        }
                                                    }
                                                    $dropdown->printList();
                                                    ?>
                                </td>
                            </form>
                            <?php 
                                                    $i++;
                                                    // next element
                                                }
                                                // qualification info
                                            } else {
                                                // no rank
                                                ?>
        <td />
<?php 
                                                if ($nextRound > 0) {
                                                    ?>
        <td />
<?php 
                                                }
                                            }
                                            // ET valid rank
                                            ?>
        </form>
<?php 
                                        }
                                        $disField = ($maxatt + 1) * $maxAthlete;
                                        // attempts * 8 (first 8 athletes)
                                        for ($c = 1; $c <= $cfgProgramMode[$prog_mode]['tech_res']; $c++) {
                                            // Result focus:
                                            // - Backoffice mode: same athlete, next result
                                            // - Field mode: next athlete, same result
                                            $r++;
                                            // increment result form counter
                                            if ($cfgProgramMode[$prog_mode]['name'] == $strProgramModeBackoffice) {
                                                if ($row[18] == 'y') {
                                                    // only best result --> focus next line
                                                    $focus = "perf_" . ($r + $cfgProgramMode[$prog_mode]['tech_res'] + 1);
                                                    if (mysql_num_rows($result) == $i) {
                                                        // no more athletes
                                                        if ($c == $cfgProgramMode[$prog_mode]['tech_res']) {
                                                            // last result
                                                            $focus = "perf_" . ($r + 1);
                                                            // keep focus on this athlete
                                                        } else {
                                                            $focus = "perf_" . ($c + 1);
                                                            // focus to next result of first athlete
                                                        }
                                                    }
                                                } else {
                                                    if ($c == $cfgProgramMode[$prog_mode]['tech_res']) {
                                                        // last result of this line
                                                        if (mysql_num_rows($result) == $i) {
                                                            // no more athletes
                                                            $focus = "perf_" . $r;
                                                            // keep focus on last athlete
                                                        } else {
                                                            $focus = "perf_" . ($r + 2);
                                                            // focus to next line result
                                                        }
                                                    } else {
                                                        $focus = "perf_" . ($r + 1);
                                                        // focus to next result
                                                    }
                                                }
                                            } else {
                                                // field mode
                                                $focus = "perf_" . ($r + $cfgProgramMode[$prog_mode]['tech_res'] + 1);
                                                if (mysql_num_rows($result) == $i) {
                                                    // no more athletes
                                                    if ($c == $cfgProgramMode[$prog_mode]['tech_res']) {
                                                        // last result
                                                        $focus = "perf_" . $r;
                                                        // keep focus on this athlete
                                                    } else {
                                                        $focus = "perf_" . ($c + 1);
                                                        // focus to next result of first athlete
                                                    }
                                                }
                                            }
                                            // ET program mode
                                            $item = '';
                                            $perf = '';
                                            $info = '';
                                            if ($resrow = mysql_fetch_row($res)) {
                                                $item = $resrow[0];
                                                $perf = AA_formatResultMeter($resrow[1]);
                                                $info = $resrow[2];
                                            }
                                            if ($status != $cfgRoundStatus['results_done'] || $prog_mode == 2) {
                                                ?>
        <form action='controller.php' method='post'
            name='perf_<?php 
                                                echo $r;
                                                ?>
' target='controller'>
        <td nowrap>
            <input type='hidden' name='act' value='saveResult' />
            <input type='hidden' name='obj' value='perf_<?php 
                                                echo $r;
                                                ?>
' />
            <input type='hidden' name='type' value='<?php 
                                                echo $layout;
                                                ?>
' />
            <input type='hidden' name='round' value='<?php 
                                                echo $round;
                                                ?>
' />
            <input type='hidden' name='start' value='<?php 
                                                echo $row[6];
                                                ?>
' />
            <input type='hidden' name='item' value='<?php 
                                                echo $item;
                                                ?>
' />  
            <input type='hidden' name='row_col' value='<?php 
                                                echo $r . "_" . $c;
                                                ?>
' />  
            <input type='hidden' name='maxatt' value='<?php 
                                                echo $maxatt;
                                                ?>
' />   
             <input type='hidden' name='heat' value='<?php 
                                                echo $row[2];
                                                ?>
' />         
            
<?php 
                                                // technical disciplines with wind
                                                if ($layout == $cfgDisciplineType[$strDiscTypeJump]) {
                                                    ?>
            <input class='perfmeter' type='text' id='perf_<?php 
                                                    echo $r;
                                                    ?>
' name='perf' maxlength='6'  <?php 
                                                    echo $dis;
                                                    ?>
 
                value='<?php 
                                                    echo $perf;
                                                    ?>
'
                onChange='checkSubmit(document.perf_<?php 
                                                    echo $r;
                                                    ?>
, <?php 
                                                    echo $focus;
                                                    ?>
)' />
            <input class='nbr' type='text' name='wind' maxlength='5'
                value='<?php 
                                                    echo $info;
                                                    ?>
'
                onChange='submitResult(document.perf_<?php 
                                                    echo $r;
                                                    ?>
, <?php 
                                                    echo $focus;
                                                    ?>
)' />
<?php 
                                                } else {
                                                    ?>
            <input class='perfmeter' type='text' id='perf_<?php 
                                                    echo $r;
                                                    ?>
'  name='perf' maxlength='6'  <?php 
                                                    echo $dis;
                                                    ?>
                value='<?php 
                                                    echo $perf;
                                                    ?>
'
                onChange='submitResult(document.perf_<?php 
                                                    echo $r;
                                                    ?>
, <?php 
                                                    echo $focus;
                                                    ?>
)' />
            
<?php 
                                                }
                                                ?>
        </td>
        </form>    
<?php 
                                                if ($c == $cfgProgramMode[$prog_mode]['tech_res']) {
                                                    $r++;
                                                    if (mysql_num_rows($result) != $i) {
                                                        //  more athletes
                                                        $focus = "perf_" . ($c + $r + 1);
                                                    } else {
                                                        $focus = "perf_" . $r;
                                                    }
                                                    ?>
                            
       <form action='controller.php' method='post'  
            name='perf_<?php 
                                                    echo $r;
                                                    ?>
' target='controller'>   
        <td>
        <input type='hidden' name='act' value='saveResult' />
            <input type='hidden' name='obj' value='perf_<?php 
                                                    echo $r;
                                                    ?>
' />
            <input type='hidden' name='type' value='<?php 
                                                    echo $layout;
                                                    ?>
' />
            <input type='hidden' name='round' value='<?php 
                                                    echo $round;
                                                    ?>
' />
            <input type='hidden' name='start' value='<?php 
                                                    echo $row[6];
                                                    ?>
' />
            <input type='hidden' name='item' value='<?php 
                                                    echo $item;
                                                    ?>
' />
            <input type='hidden' name='xAthlete' value='<?php 
                                                    echo $row[20];
                                                    ?>
' /> 
             
        <input class='textshort' type='text' name='remark' maxlength='5'   <?php 
                                                    echo $dis;
                                                    ?>
   
                value='<?php 
                                                    echo $row[19];
                                                    ?>
'
                onChange='submitResult(document.perf_<?php 
                                                    echo $r;
                                                    ?>
, <?php 
                                                    echo $focus;
                                                    ?>
)' />
                </td>
        </form>    
<?php 
                                                }
                                                ?>
        
        
<?php 
                                            } else {
                                                // results done
                                                ?>
        <td nowrap>
<?php 
                                                // technical disciplines with wind
                                                if ($layout == $cfgDisciplineType[$strDiscTypeJump]) {
                                                    echo "{$perf} ( {$info} )";
                                                } else {
                                                    echo "{$perf}";
                                                }
                                                ?>
        </td>
<?php 
                                                if ($c == $cfgProgramMode[$prog_mode]['tech_res']) {
                                                    ?>
  
                                <td nowrap><?php 
                                                    echo $row[19];
                                                    ?>
</td>
<?php 
                                                }
                                            }
                                            // ET results done
                                        }
                                        // end loop every tech result acc. programm mode
                                        ?>
  
          
        <td>
<?php 
                                        $btn->set("event_results.php?arg=del_start&item={$row['6']}&round={$round}", $strDelete);
                                        $btn->printButton();
                                        ?>
        </td>
<?php 
                                    }
                                    // ET DB error
                                }
                                ?>
</table>
<?php 
                                mysql_free_result($result);
                            }
                            // ET DB error
                        }
                    }
                }
            }
            // ET round selected
            if (!empty($presets['focus'])) {
                ?>
<script type="text/javascript">
<!--
    if(document.<?php 
                echo $presets['focus'];
                ?>
) {
        document.<?php 
                echo $presets['focus'];
                ?>
.rank.focus();
        document.<?php 
                echo $presets['focus'];
                ?>
.rank.select();
        window.scrollBy(0,200);
    }
//-->
</script>
<?php 
            } else {
                ?>
    <script type="text/javascript">
<!--
      
      document.perf_<?php 
                echo $fieldFocus;
                ?>
.elements['perf_<?php 
                echo $fieldFocus;
                ?>
'].focus();
//-->
</script>
<?php 
            }
            ?>

</body>
</html>

<?php 
        } else {
            AA_printErrorMsg($strErrMergedRound);
        }
    }
Пример #17
0
 if ($_GET['list'] == 'team') {
     $disc = '';
     // list of disciplines
     $sql = "SELECT\r\n                            d.Kurzname, d.Typ, s.Bestleistung\r\n                        FROM\r\n                            disziplin_" . $_COOKIE['language'] . " AS d\r\n                            LEFT JOIN wettkampf AS w ON (w.xDisziplin = d.xDisziplin )   \r\n                            LEFT JOIN start AS s ON (s.xWettkampf = w.xWettkampf)  \r\n                        WHERE \r\n                            s.xAnmeldung = {$list_row['0']}                        \r\n                        ORDER BY\r\n                            d.Anzeige";
     $disc_res = mysql_query($sql);
     if (mysql_errno() > 0) {
         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
     } else {
         $sep = '';
         while ($disc_row = mysql_fetch_row($disc_res)) {
             $disc = $disc . $sep . $disc_row[0];
             // add discipline
             if ($disc_row[1] == $cfgDisciplineType[$strDiscTypeTrack] || $disc_row[1] == $cfgDisciplineType[$strDiscTypeTrackNoWind] || $disc_row[1] == $cfgDisciplineType[$strDiscTypeRelay] || $disc_row[1] == $cfgDisciplineType[$strDiscTypeDistance]) {
                 $perf = AA_formatResultTime($disc_row[2]);
             } else {
                 $perf = AA_formatResultMeter($disc_row[2]);
             }
             if ($perf > 0) {
                 $disc = $disc . "(" . $perf . ")";
             }
             $sep = ", ";
         }
         mysql_free_result($disc_res);
     }
     // ET DB error
     $doc->printLine($list_row[1], $list_row[2] . " " . $list_row[3], AA_formatYearOfBirth($list_row[4]), $disc);
 } else {
     $disc = '';
     if ($list_row[0] != $d) {
         $disc = $list_row[0];
     }
Пример #18
0
 function processCombined($xCategory, $category, $type)
 {
     global $rFrom, $rTo, $limitRank;
     require './config.inc.php';
     // get athlete info per category and team
     $results = mysql_query("\r\n\t\tSELECT\r\n\t\t\tDISTINCT(a.xAnmeldung)\r\n\t\t\t, at.Name\r\n\t\t\t, at.Vorname\r\n\t\t\t, at.Jahrgang\r\n\t\t\t, t.xTeam\r\n\t\t\t, t.Name\r\n\t\t\t, v.Name\r\n            , IF(at.xRegion = 0, at.Land, re.Anzeige) AS Land\r\n\t\tFROM\r\n\t\t\tanmeldung AS a\r\n\t\t\t, athlet AS at\r\n\t\t\t, team AS t\r\n\t\t\t, verein AS v\r\n\t\t\t, start as st\r\n\t\t\t, wettkampf as w\r\n            LEFT JOIN region AS re ON (at.xRegion = re.xRegion) \r\n\t\tWHERE a.xMeeting = " . $_COOKIE['meeting_id'] . "\r\n\t\tAND at.xAthlet = a.xAthlet\r\n\t\tAND t.xTeam = a.xTeam\r\n\t\tAND v.xVerein = t.xVerein\r\n\t\tAND st.xAnmeldung = a.xAnmeldung\r\n\t\tAND w.xWettkampf = st.xWettkampf\r\n\t\tAND w.xKategorie = {$xCategory}\r\n\t\tORDER BY\r\n\t\t\tt.xTeam\r\n\t");
     if (mysql_errno() > 0) {
         // DB error
         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
     } else {
         $evaluationPt = 5;
         //  nbr of athletes fot calcualte points
         if ($type == 'teamAll') {
             $evaluation = 99999999;
         } else {
             $evaluation = 5;
         }
         // nbr of athletes included in total result
         $a = 0;
         $club = '';
         $info = '';
         $name = '';
         $points = 0;
         $team = '';
         $sep = '';
         $tm = '';
         $year = '';
         $country = '';
         while ($row = mysql_fetch_row($results)) {
             // store previous athlete before processing new athlete
             if ($a != $row[0] && $a > 0) {
                 $athleteList[] = array("points" => $points, "name" => $name, "year" => $year, "info" => $info, "country" => $country);
                 $points = 0;
                 $info = '';
                 $sep = '';
             }
             // store previous team before processing new team
             if ($tm != $row[4] && $tm > 0) {
                 usort($athleteList, "cmp");
                 // sort athletes by points
                 // nbr of athletes to include in team result
                 $total = 0;
                 for ($i = 0; $i < $evaluationPt; $i++) {
                     $total = $total + $athleteList[$i]['points'];
                 }
                 $teamList[] = array("points" => $total, "team" => $team, "club" => $club, "athletes" => $athleteList, "id" => $tm);
                 $team = '';
                 $club = '';
                 unset($athleteList);
                 $sep = '';
             }
             $tm = $row[4];
             // keep current team
             // events
             $res = mysql_query("\r\n\t\t\t\tSELECT\r\n\t\t\t\t\td.Kurzname\r\n\t\t\t\t\t, d.Typ\r\n\t\t\t\t\t, MAX(r.Leistung)\r\n\t\t\t\t\t, r.Info\r\n\t\t\t\t\t, MAX(r.Punkte) AS pts\r\n\t\t\t\t\t, s.Wind\r\n\t\t\t\t\t, w.Windmessung\r\n                    , st.xAnmeldung  \r\n\t\t\t\tFROM\r\n\t\t\t\t\tstart AS st USE INDEX (Anmeldung)\r\n\t\t\t\t\t, serienstart AS ss \r\n\t\t\t\t\t, resultat AS r \r\n\t\t\t\t\t, serie AS s \r\n\t\t\t\t\t, runde AS ru \r\n\t\t\t\t\t, wettkampf AS w\r\n\t\t\t\t\t, disziplin AS d \r\n\t\t\t\tWHERE st.xAnmeldung = {$row['0']}\r\n\t\t\t\tAND ss.xStart = st.xStart\r\n\t\t\t\tAND r.xSerienstart = ss.xSerienstart\r\n\t\t\t\tAND s.xSerie = ss.xSerie\r\n\t\t\t\tAND ru.xRunde = s.xRunde\r\n\t\t\t\tAND w.xWettkampf = st.xWettkampf\r\n\t\t\t\tAND w.Typ = " . $cfgEventType[$strEventTypeClubCombined] . "\r\n\t\t\t\tAND d.xDisziplin = w.xDisziplin\r\n\t\t\t\tAND r.Info != '" . $cfgResultsHighOut . "' \r\n\t\t\t\tGROUP BY\r\n\t\t\t\t\tst.xStart\r\n\t\t\t\tORDER BY\r\n\t\t\t\t\tru.Datum\r\n\t\t\t\t\t, ru.Startzeit\r\n\t\t\t");
             if (mysql_errno() > 0) {
                 // DB error
                 AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
             } else {
                 while ($pt_row = mysql_fetch_row($res)) {
                     // set wind, if required
                     if ($pt_row[6] == 1) {
                         if ($pt_row[1] == $cfgDisciplineType[$strDiscTypeTrack]) {
                             $wind = " / " . $pt_row[5];
                         } else {
                             if ($pt_row[1] == $cfgDisciplineType[$strDiscTypeJump]) {
                                 $wind = " / " . $pt_row[3];
                             }
                         }
                     } else {
                         $wind = '';
                     }
                     // format output
                     if ($pt_row[1] == $cfgDisciplineType[$strDiscTypeJump] || $pt_row[1] == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $pt_row[1] == $cfgDisciplineType[$strDiscTypeThrow] || $pt_row[1] == $cfgDisciplineType[$strDiscTypeHigh]) {
                         $perf = AA_formatResultMeter($pt_row[2]);
                     } else {
                         $perf = $pt_row[2];
                         $perf = $perf / 1000;
                         list($sec, $mili) = explode(".", $perf);
                         list($hour, $rest) = explode(".", $sec / 3600);
                         list($min, $rest) = explode(".", ($sec - $hour * 3600) / 60);
                         list($sec, $rest) = explode(".", $sec - $hour * 3600 - $min * 60);
                         // round up to hundredth  (examples: 651 --> 660 and 650 --> 650)
                         $mili = ceil(sprintf("%-03s", $mili) / 10);
                         list($a, $mili) = explode(".", $mili / 100);
                         $sec += $a;
                         // display milli (two decimal after point without 0 in front)
                         $time = '';
                         if ($hour > 0) {
                             $time = sprintf("%02d", $hour) . ":" . sprintf("%02d", $min) . ":" . sprintf("%02d", $sec) . "." . sprintf("%-02s", $mili);
                         } elseif ($min > 0) {
                             $time = sprintf("%02d", $min) . ":" . sprintf("%02d", $sec) . "." . sprintf("%-02s", $mili);
                         } else {
                             $time = $sec . "." . sprintf("%-02s", $mili);
                         }
                         $perf = $time;
                     }
                     // calculate points
                     $points = $points + $pt_row[4];
                     // accumulate points
                     if ($perf != $cfgInvalidResult['DNS']['code']) {
                         if ($perf < 0) {
                             foreach ($cfgInvalidResult as $value) {
                                 if ($value['code'] == $perf) {
                                     $perf = $value['short'];
                                 }
                             }
                         }
                         $info = $info . $sep . $pt_row[0] . "&nbsp;(" . $perf . $wind . "/ " . $pt_row[4] . ")";
                         $sep = ", ";
                     }
                 }
                 // END WHILE combined events
                 mysql_free_result($res);
             }
             $a = $row[0];
             $name = $row[1] . " " . $row[2];
             $year = AA_formatYearOfBirth($row[3]);
             $team = $row[5];
             $club = $row[6];
             $country = $row[7];
         }
         // END WHILE athlete per category
         mysql_free_result($results);
         if (!empty($tm)) {
             // last athlete
             $athleteList[] = array("points" => $points, "name" => $name, "year" => $year, "info" => $info, "country" => $country);
             // last team
             usort($athleteList, "cmp");
             // sort athletes by points
             $total = 0;
             for ($i = 0; $i < $evaluationPt; $i++) {
                 $total = $total + $athleteList[$i]['points'];
             }
             $teamList[] = array("points" => $total, "team" => $team, "club" => $club, "athletes" => $athleteList, "id" => $tm);
         }
         $GLOBALS[$list]->printSubTitle("{$category}", "", "");
         $GLOBALS[$list]->startList();
         $GLOBALS[$list]->printHeaderLine();
         usort($teamList, "cmp");
         $rank = 1;
         // initialize rank
         $r = 0;
         // start value for ranking
         $p = 0;
         $tp = 0;
         foreach ($teamList as $team) {
             $r++;
             if ($limitRank && ($r < $rFrom || $r > $rTo)) {
                 // limit ranks if set (export)
                 continue;
             }
             if ($p != $team['points']) {
                 // not same points as previous team
                 $rank = $r;
                 // next rank
             }
             if ($GLOBALS['xmladdon']) {
                 $GLOBALS[$list]->printLine($rank, $team['team'], $team['club'], $team['points'], $team['id']);
             } else {
                 $GLOBALS[$list]->printLine($rank, $team['team'], $team['club'], $team['points']);
             }
             $p = $team['points'];
             // keep current points
             $i = 0;
             $xmlinfo = "";
             foreach ($team['athletes'] as $athlete) {
                 if ($i >= $evaluation) {
                     // show only athletes included in end result
                     break;
                 }
                 $i++;
                 $GLOBALS[$list]->printAthleteLine($athlete['name'], $athlete['year'], $athlete['points'], $athlete['country']);
                 if ($GLOBALS['xmladdon']) {
                     $xmlinfo .= $athlete['name'] . " (" . $athlete['points'] . ") / ";
                 } else {
                     $GLOBALS[$list]->printInfo($athlete['info']);
                 }
             }
             if ($GLOBALS['xmladdon']) {
                 $GLOBALS[$list]->printInfo(substr($xmlinfo, 0, strlen($xmlinfo) - 2));
             }
         }
         $GLOBALS[$list]->endList();
     }
     // ET DB error all teams
 }
Пример #19
0
 function AA_rankinglist_Combined($category, $formaction, $break, $cover, $sepu23, $cover_timing = false, $date = '%', $disc_nr, $catFrom, $catTo, $ukc)
 {
     require './lib/cl_gui_page.lib.php';
     require './lib/cl_print_page.lib.php';
     require './lib/cl_export_page.lib.php';
     require './lib/common.lib.php';
     require './lib/results.lib.php';
     require './config.inc.php';
     if (AA_connectToDB() == FALSE) {
         // invalid DB connection
         return;
         // abort
     }
     if (AA_checkMeetingID() == FALSE) {
         // no meeting selected
         return;
         // abort
     }
     $contestcat = " ";
     if (!empty($category)) {
         // show every category
         $contestcat = " AND w.xKategorie = {$category}";
     }
     if ($catFrom > 0) {
         $getSortCat = AA_getSortCat($catFrom, $catTo);
         if ($getSortCat[0]) {
             if ($catTo > 0) {
                 $contestcat = " AND k.Anzeige >=" . $getSortCat[$catFrom] . " AND k.Anzeige <=" . $getSortCat[$catTo] . " ";
             } else {
                 $contestcat = " AND k.Anzeige =" . $getSortCat[$catFrom] . " ";
             }
         }
     }
     $GroupByUkc = "";
     if ($ukc) {
         $checkyear = date('Y') - 16;
         $min_age = date('Y') - 7;
         $selection = " AND at.Jahrgang > {$checkyear} AND (d.Code = " . $cfgUKC_disc[0] . " || d.Code = " . $cfgUKC_disc[1] . " || d.Code = " . $cfgUKC_disc[2] . ") ";
         $sql_leftjoin = " LEFT JOIN disziplin_" . $_COOKIE['language'] . " as d ON (w.xDisziplin = d.xDisziplin) ";
         $order = " at.Geschlecht, at.Jahrgang,  at.Name, at.Vorname,  d.Anzeige";
         $disc_nr = 3;
     } else {
         $selection = " AND w.Mehrkampfcode > 0 ";
         $sql_leftjoin = " LEFT JOIN disziplin_" . $_COOKIE['language'] . " as d ON (w.Mehrkampfcode = d.Code)";
         $order = " k.Anzeige , w.Mehrkampfcode , ka.Alterslimite DESC";
     }
     $dCode = 0;
     if ($ukc) {
         $mk = ",0";
     } else {
         $mk = ",w.Mehrkampfcode";
     }
     // get athlete info per contest category
     $sql1 = "SELECT DISTINCT \r\n        a.xAnmeldung\r\n        , at.Name\r\n        , at.Vorname\r\n        , at.Jahrgang\r\n        , k.Name\r\n        , IF(a.Vereinsinfo = '', v.Name, a.Vereinsinfo)\r\n        , IF(at.xRegion = 0, at.Land, re.Anzeige)";
     $sql2 = ", d.Name\r\n        , w.xKategorie\r\n        , ka.Code\r\n        , ka.Name\r\n        , ka.Alterslimite \r\n        , d.Code \r\n        , at.xAthlet\r\n        , at.Geschlecht               \r\n    FROM\r\n        anmeldung AS a\r\n        LEFT JOIN athlet AS at ON (at.xAthlet = a.xAthlet )\r\n        LEFT JOIN verein AS v  ON (v.xVerein = at.xVerein  )\r\n        LEFT JOIN start as st ON (st.xAnmeldung = a.xAnmeldung ) \r\n        LEFT JOIN wettkampf as w  ON (w.xWettkampf = st.xWettkampf) " . $sql_leftjoin . "\r\n        LEFT JOIN kategorie AS k ON (k.xKategorie = w.xKategorie)\r\n        LEFT JOIN kategorie AS ka ON (ka.xKategorie = a.xKategorie)     \r\n        LEFT JOIN region as re ON (at.xRegion = re.xRegion) \r\n    WHERE a.xMeeting = " . $_COOKIE['meeting_id'] . "\r\n    " . $contestcat . " \r\n     " . $selection . " \r\n    AND st.anwesend = 0 ";
     $sqlOrder = " ORDER BY " . $order;
     $sql = $sql1 . $mk . $sql2 . $sqlOrder;
     $results = mysql_query($sql);
     if (mysql_errno() > 0) {
         // DB error
         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
     } else {
         $cat = '';
         $catEntry = '';
         $catEntryLimit = "";
         $u23name = "";
         $comb = 0;
         // hold combined type
         $combName = "";
         $lastTime = "";
         // hold start time of last event for print list
         $a = 0;
         $info = '';
         $points = 0;
         $sep = '';
         $rFrom = 0;
         $rTo = 0;
         $limitRank = false;
         if ($_GET['limitRank'] == "yes" && substr($formaction, 0, 6) == "export") {
             // check if ranks are limited
             if (!empty($_GET['limitRankFrom']) && !empty($_GET['limitRankTo'])) {
                 $limitRank = true;
                 $rFrom = $_GET['limitRankFrom'];
                 $rTo = $_GET['limitRankTo'];
             }
         }
         // start a new HTML display page
         if ($formaction == 'view') {
             // display page for speaker
             $list = new GUI_CombinedRankingList($_COOKIE['meeting']);
             $list->printPageTitle("{$strRankingLists} " . $_COOKIE['meeting']);
         } elseif ($formaction == "print") {
             $list = new PRINT_CombinedRankingList($_COOKIE['meeting']);
             if ($cover == true) {
                 // print cover page
                 $list->printCover($GLOBALS['strResults'], $cover_timing);
             }
         } elseif ($formaction == "exportpress") {
             $list = new EXPORT_CombinedRankingListPress($_COOKIE['meeting'], 'txt');
         } elseif ($formaction == "exportdiplom") {
             $list = new EXPORT_CombinedRankingListDiplom($_COOKIE['meeting'], 'csv');
         }
         if ($ukc) {
             while ($row = mysql_fetch_row($results)) {
                 if ($roundsUkc[$row[4]][$row[14]] == "") {
                     $roundsUkc[$row[4]][$row[14]] = 0;
                 }
                 $roundsUkc[$row[4]][$row[14]]++;
             }
             $GroupByUkc = " GROUP BY at.xAthlet ";
             $mk = ",w.Mehrkampfcode";
             $sql = $sql1 . $mk . $sql2 . $GroupByUkc . $sqlOrder;
             $results = mysql_query($sql);
         }
         while ($row = mysql_fetch_row($results)) {
             $dCode = $row[13];
             $row3_tmp = $row[3];
             if ($row3_tmp > $min_age) {
                 $row3_tmp = $min_age;
             }
             if ($ukc) {
                 if ($roundsUkc[$row[4]][$row[14]] != 3) {
                     continue;
                 }
             }
             // store previous before processing new athlete
             if ($a != $row[0] && $a > 0) {
                 $points_arr[] = $points;
                 if ($ukc) {
                     $xKatUKC = AA_getCatUkc($birthDate, $sex, true);
                     $points_arr_more_disc_all[$xKatUKC][] = $points_disc;
                 } else {
                     $points_arr_more_disc_all[$row[9]][] = $points_disc;
                 }
                 $name_arr[] = $name;
                 $year_arr[] = $year;
                 $club_arr[] = $club;
                 $info_arr[] = $info;
                 $ioc_arr[] = $ioc;
                 $x_arr[] = $a;
                 if (isset($points_disc_keep) && sizeof($points_disc_keep) < 3 && $ukc) {
                     $rank_arr[] = 0;
                 } else {
                     $rank_arr[] = $rank;
                 }
                 $info = '';
                 $points = 0;
                 $sep = '';
             }
             // print previous before processing new category
             if (!empty($cat) && (($row[4] != $cat || $row[7] != $comb) && $ukc == false || $ukc == true && $row3_tmp != $age || ($comb == 410 || $comb == 400) && $catEntry != $row[10] && $row[12] < 23 && !$bU23 && $sepu23)) {
                 $bU23 = false;
                 // set the separate flag! else it will be separated by each category
                 if (($comb == 410 || $comb == 400) && $catEntry != $row[10] && $row[12] < 23) {
                     $bU23 = true;
                 }
                 $u23name = '';
                 // set the addition for the title if this is the separated cat
                 if (($comb == 410 || $comb == 400) && $catEntryLimit < 23 && $sepu23) {
                     $u23name = " (U 23)";
                 }
                 $list->endList();
                 if ($ukc) {
                     $list->printSubTitle($catUKC . ", " . $cfgUKC_Name);
                 } else {
                     $list->printSubTitle($cat . "{$u23name}, " . $combName, "", "");
                 }
                 $list->startList();
                 $list->printHeaderLine($lastTime);
                 arsort($points_arr, SORT_NUMERIC);
                 // sort descending by points
                 $rank = 1;
                 // initialize rank
                 $r = 0;
                 // start value for ranking
                 $p = 0;
                 $no_rank = 999999;
                 $max_rank = $no_rank;
                 foreach ($points_arr as $key => $val) {
                     $r++;
                     if ($limitRank && ($r < $rFrom || $r > $rTo)) {
                         // limit ranks if set (export)
                         continue;
                     }
                     if ($p != $val) {
                         // not same points as previous team
                         $rank = $r;
                         // next rank
                     }
                     // not set rank for invalid results
                     if (preg_match("@\\(-[1]{1}@", $info_arr[$key])) {
                         $rank = $max_rank;
                         $max_rank += 1;
                         $r--;
                     }
                     $rank_arr[$key] = $rank;
                     $p = $val;
                     // keep current points
                 }
                 asort($rank_arr, SORT_NUMERIC);
                 // sort descending by rank
                 $rank_keep = 0;
                 $key_keep = '';
                 foreach ($rank_arr as $key => $v) {
                     $val = $points_arr[$key];
                     $rank = $v;
                     if ($rank == $rank_keep) {
                         $c = 0;
                         $keep_c = 0;
                         // first rule
                         for ($i = 1; $i <= sizeof($points_disc); $i++) {
                             if ($points_arr_more_disc_all[$xKat][$key_keep][$i] > $points_arr_more_disc_all[$xKat][$key][$i]) {
                                 $keep_c++;
                             } else {
                                 $c++;
                             }
                         }
                         $more = ceil(sizeof($points_disc) / 2);
                         if (sizeof($points_disc) % 2 == 0) {
                             // combined with even number discs
                             $more++;
                         }
                         if ($keep_c >= $more && $keep_c > $c) {
                             $rank_arr[$key]++;
                         } else {
                             if ($c >= $more && $c > $keep_c) {
                                 $rank_arr[$key_keep]++;
                             } else {
                                 // second rule
                                 // check the best points of the highest points of discipline
                                 $k = AA_get_AthletBestPointDisc($points_arr_more_disc_all[$xKat][$key_keep], $points_arr_more_disc_all[$xKat][$key], $key_keep, $key);
                                 if ($k != 0) {
                                     $rank_arr[$k]++;
                                 }
                                 // if $k is 0, all points of diszipline are the same -->   athletes with same rank
                             }
                         }
                     }
                     $rank_keep = $rank;
                     $key_keep = $key;
                 }
                 asort($rank_arr, SORT_NUMERIC);
                 // sort descending by rank
                 foreach ($rank_arr as $key => $v) {
                     $val = $points_arr[$key];
                     $rank = $v;
                     if ($rank >= $no_rank) {
                         $rank = '';
                     }
                     $list->printLine($rank, $name_arr[$key], $year_arr[$key], $club_arr[$key], $val, $ioc_arr[$key]);
                     $list->printInfo($info_arr[$key]);
                     // insert points into combined top performance of entry
                     mysql_query("UPDATE anmeldung SET BestleistungMK = {$val} WHERE xAnmeldung = " . $x_arr[$key]);
                 }
                 unset($points_arr);
                 unset($name_arr);
                 unset($year_arr);
                 unset($club_arr);
                 unset($info_arr);
                 unset($ioc_arr);
                 unset($x_arr);
                 unset($rank_arr);
                 if (is_a($list, "PRINT_CombinedRankingList") && $break == 'category') {
                     // page break after category
                     $list->insertPageBreak();
                 }
             }
             $cat = $row[4];
             // keep current category
             $age = $row3_tmp;
             if ($ukc) {
                 $catUKC = AA_getCatUkc($row[3], $row[15], false);
                 $xKat = AA_getCatUkc($row[3], $row[15], true);
             } else {
                 $xKat = $row[9];
             }
             $catEntry = $row[10];
             $catEntryLimit = $row[12];
             $comb = $row[7];
             $combName = $row[8];
             if ($ukc) {
                 $order = " d.Anzeige, ru.Datum, ru.Startzeit";
                 $selectionDisc = " AND (d.Code = " . $cfgUKC_disc[0] . " || d.Code = " . $cfgUKC_disc[1] . " || d.Code = " . $cfgUKC_disc[2] . ") ";
                 $selectionMk = '';
             } else {
                 $order = " w.Mehrkampfreihenfolge ASC, ru.Datum, ru.Startzeit";
                 $selectionMk = " AND w.Mehrkampfcode = " . $row[7];
                 $selectionDisc = '';
             }
             // events
             $query = "SELECT\r\n                d.Kurzname\r\n                , d.Typ\r\n                , MAX(IF ((r.Info='-') && (d.Typ = 6) ,0,r.Leistung)) \r\n                , r.Info\r\n                , MAX(IF ((r.Info='-') && (d.Typ = 6),0,r.Punkte)) AS pts    \r\n                , s.Wind\r\n                , w.Windmessung\r\n                , st.xStart\r\n                , CONCAT(DATE_FORMAT(ru.Datum,'{$cfgDBdateFormat}'), ' ', TIME_FORMAT(ru.Startzeit, '{$cfgDBtimeFormat}'))\r\n                , w.Mehrkampfreihenfolge \r\n                , ss.Bemerkung\r\n                , w.info\r\n                , ss.xSerienstart \r\n                , d.Code\r\n            FROM\r\n                start AS st USE INDEX (Anmeldung)\r\n                LEFT JOIN serienstart AS ss ON (ss.xStart = st.xStart )\r\n                LEFT JOIN resultat AS r ON (r.xSerienstart = ss.xSerienstart) \r\n                LEFT JOIN serie AS s ON (s.xSerie = ss.xSerie)\r\n                LEFT JOIN runde AS ru ON (ru.xRunde = s.xRunde)\r\n                LEFT JOIN wettkampf AS w ON (w.xWettkampf = st.xWettkampf)\r\n                LEFT JOIN disziplin_" . $_COOKIE['language'] . " AS d ON (d.xDisziplin = w.xDisziplin)\r\n            WHERE st.xAnmeldung = {$row['0']}  \r\n                {$selectionDisc} \r\n                AND ( (r.Info = '" . $cfgResultsHighOut . "' && d.Typ = 6 && r.Leistung < 0)  OR  (d.Typ = 6 && (r.Info !=  '" . $cfgResultsHighOut . "' && r.Info !=  '" . $cfgResultsHighOut1 . "' \r\n                                                 && r.Info !=  '" . $cfgResultsHighOut2 . "'  && r.Info !=  '" . $cfgResultsHighOut3 . "'  && r.Info !=  '" . $cfgResultsHighOut4 . "'\r\n                                                 && r.Info !=  '" . $cfgResultsHighOut5 . "' && r.Info !=  '" . $cfgResultsHighOut6 . "' && r.Info !=  '" . $cfgResultsHighOut7 . "' && r.Info !=  '" . $cfgResultsHighOut7 . "'))\r\n                      OR (d.Typ != 6 ) )   \r\n                \r\n               AND w.xKategorie = {$row['9']}\r\n                {$selectionMk}   \r\n                AND ru.Status = " . $cfgRoundStatus['results_done'] . "   \r\n            GROUP BY\r\n                st.xStart\r\n            ORDER BY\r\n                {$order}";
             $res = mysql_query($query);
             if (mysql_errno() > 0) {
                 // DB error
                 AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
             } else {
                 $count_disc = 0;
                 $remark = '';
                 $points_disc = array();
                 while ($pt_row = mysql_fetch_row($res)) {
                     $remark = $pt_row[10];
                     $lastTime = $pt_row[8];
                     if ($pt_row[1] == $cfgDisciplineType[$strDiscTypeJump]) {
                         $res2 = mysql_query("SELECT r.Info FROM \r\n\t\t\t\t\t\t\t\tresultat as r\r\n\t\t\t\t\t\t\t\tLEFT JOIN serienstart as ss USING(xSerienstart)\r\n\t\t\t\t\t\t\tWHERE\r\n\t\t\t\t\t\t\t\tss.xStart = {$pt_row['7']}\r\n\t\t\t\t\t\t\tAND\tr.Punkte = {$pt_row['4']}");
                         $row2 = mysql_fetch_array($res2);
                         $pt_row[3] = $row2[0];
                     }
                     // set wind, if required
                     if ($pt_row[6] == 1) {
                         if ($pt_row[1] == $cfgDisciplineType[$strDiscTypeTrack]) {
                             $wind = " / " . $pt_row[5];
                         } else {
                             if ($pt_row[1] == $cfgDisciplineType[$strDiscTypeJump]) {
                                 $wind = " / " . $pt_row[3];
                             }
                         }
                     } else {
                         $wind = '';
                     }
                     // format output
                     if ($pt_row[1] == $cfgDisciplineType[$strDiscTypeJump] || $pt_row[1] == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $pt_row[1] == $cfgDisciplineType[$strDiscTypeThrow] || $pt_row[1] == $cfgDisciplineType[$strDiscTypeHigh]) {
                         $perf = AA_formatResultMeter($pt_row[2]);
                     } else {
                         $perf = AA_formatResultTime($pt_row[2], true);
                     }
                     // show only points for number of choosed disciplines if the diszipline is done
                     $count_disc++;
                     if ($count_disc <= $disc_nr) {
                         if ($pt_row[4] > 0 || $ukc) {
                             // any points for this event
                             if ($ukc) {
                                 $pointsUKC = AA_utils_calcPointsUKC(0, $pt_row[2], 0, $row[16], $pt_row[12], $row[14], $row[0], $pt_row[13]);
                                 $points = $points + $pointsUKC;
                                 // calculate points
                                 mysql_query("UPDATE resultat SET\r\n                                                    Punkte = {$pointsUKC}\r\n                                              WHERE\r\n                                                    xSerienstart = {$pt_row['12']}");
                                 if (mysql_errno() > 0) {
                                     AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                 }
                                 AA_StatusChanged(0, 0, $pt_row[12]);
                             } else {
                                 $points = $points + $pt_row[4];
                                 // calculate points
                             }
                             if ($dCode == 408) {
                                 // UBS Kids Cup
                                 switch ($pt_row[1]) {
                                     case 1:
                                     case 2:
                                         $c = 1;
                                         // track
                                         break;
                                     case 4:
                                     case 5:
                                     case 6:
                                         $c = 2;
                                         // jump and high
                                         break;
                                     case 8:
                                         $c = 3;
                                         // throw
                                         break;
                                     default:
                                         $c = 0;
                                         break;
                                 }
                                 $points_disc[$c] = $pt_row[4];
                             } else {
                                 if ($ukc) {
                                     switch ($pt_row[1]) {
                                         case 1:
                                         case 2:
                                             $c = 1;
                                             // track
                                             break;
                                         case 4:
                                         case 5:
                                         case 6:
                                             $c = 2;
                                             // jump and high
                                             break;
                                         case 8:
                                             $c = 3;
                                             // throw
                                             break;
                                         default:
                                             $c = 0;
                                             break;
                                     }
                                     $points_disc[$c] = $pointsUKC;
                                 } else {
                                     $points_disc[$row[9]] = $pt_row[4];
                                 }
                             }
                             if ($ukc) {
                                 $info = $info . $sep . $pt_row[0] . " " . "&nbsp;(" . $perf . $wind . ", {$pointsUKC})";
                             } else {
                                 $info = $info . $sep . $pt_row[0] . " " . "&nbsp;(" . $perf . $wind . ", {$pt_row['4']})";
                             }
                             $sep = ", ";
                         } elseif ($pt_row[4] == 0 && $pt_row[2] >= 0) {
                             //  athlete with 0 points
                             $info = $info . $sep . $pt_row[0] . " " . "&nbsp;(" . $perf . $wind . ", {$pt_row['4']})";
                             $sep = ", ";
                         } else {
                             $count_disc--;
                             $pointTxt = "";
                             foreach ($cfgInvalidResult as $value) {
                                 if ($value['code'] == $perf) {
                                     $pointTxt = $value['short'];
                                 }
                             }
                             $info = $info . $sep . $pt_row[0] . $pt_row[11] . "&nbsp;(" . $perf . $wind . ", {$pointTxt})";
                             $sep = ", ";
                         }
                     }
                 }
                 // END WHILE combined events
                 mysql_free_result($res);
             }
             $a = $row[0];
             $name = $row[1] . " " . $row[2];
             $year = AA_formatYearOfBirth($row[3]);
             $birthDate = $row[3];
             $sex = $row[15];
             $club = $row[5];
             $ioc = $row[6];
             $remark_arr[] = $remark;
             if ($ukc) {
                 $xKat = AA_getCatUkc($row[3], $row[15], true);
             } else {
                 $xKat = $row[9];
             }
             $points_disc_keep = $points_disc;
             $dCode_keep = $dCode;
         }
         // END WHILE athlete per category
         if (!empty($a)) {
             $points_arr[] = $points;
             $points_arr_more_disc_all[$xKat][] = $points_disc;
             $name_arr[] = $name;
             $year_arr[] = $year;
             $club_arr[] = $club;
             $info_arr[] = $info;
             $ioc_arr[] = $ioc;
             $x_arr[] = $a;
             $remark_arr[] = $remark;
             $rank_arr[] = $rank;
         }
         if (!empty($cat)) {
             $u23name = '';
             if (($comb == 410 || $comb == 400) && $catEntryLimit < 23 && $sepu23) {
                 $u23name = " (U 23)";
             }
             $list->endList();
             if ($ukc) {
                 $list->printSubTitle($catUKC . ", " . $cfgUKC_Name);
             } else {
                 $list->printSubTitle($cat . "{$u23name}, " . $combName, "", "");
             }
             $list->startList();
             $list->printHeaderLine($lastTime);
             arsort($points_arr, SORT_NUMERIC);
             // sort descending by points
             $rank = 1;
             // initialize rank
             $r = 0;
             // start value for ranking
             $p = 0;
             $k = 0;
             $no_rank = 999999;
             $max_rank = $no_rank;
             foreach ($points_arr as $key => $val) {
                 $r++;
                 if ($limitRank && ($r < $rFrom || $r > $rTo)) {
                     // limit ranks if set (export)
                     continue;
                 }
                 if ($p != $val) {
                     // not same points as previous athlete
                     $rank = $r;
                     // next rank
                 }
                 // not set rank for invalid results
                 if (preg_match("@\\(-[1]{1}@", $info_arr[$key])) {
                     $rank = $max_rank;
                     $max_rank += 1;
                     $r--;
                 }
                 $p = $val;
                 // keep current points
                 $k = $key;
                 // keep current key
                 $rank_arr[$key] = $rank;
             }
             asort($rank_arr, SORT_NUMERIC);
             // sort descending by rank
             $rank_keep = 0;
             foreach ($rank_arr as $key => $v) {
                 $val = $points_arr[$key];
                 $rank = $v;
                 if ($rank == $rank_keep) {
                     $c = 0;
                     $keep_c = 0;
                     // first rule
                     for ($i = 1; $i <= sizeof($points_disc); $i++) {
                         if ($points_arr_more_disc_all[$xKat][$key_keep][$i] > $points_arr_more_disc_all[$xKat][$key][$i]) {
                             $keep_c++;
                         } else {
                             $c++;
                         }
                     }
                     $more = ceil(sizeof($points_disc) / 2);
                     if (sizeof($points_disc) % 2 == 0) {
                         // combined with even number discs
                         $more++;
                     }
                     if ($keep_c >= $more && $keep_c > $c) {
                         $rank_arr[$key]++;
                     } else {
                         if ($c >= $more && $c > $keep_c) {
                             $rank_arr[$key_keep]++;
                         } else {
                             // second rule
                             // check the best points of the highest points of discipline
                             $k = AA_get_AthletBestPointDisc($points_arr_more_disc_all[$xKat][$key_keep], $points_arr_more_disc_all[$xKat][$key], $key_keep, $key);
                             if ($k != 0) {
                                 $rank_arr[$k]++;
                             }
                             // if $k is 0, all points of diszipline are the same -->   athletes with same rank
                         }
                     }
                 }
                 $rank_keep = $rank;
                 $key_keep = $key;
             }
             asort($rank_arr, SORT_NUMERIC);
             // sort descending by rank
             foreach ($rank_arr as $key => $v) {
                 $val = $points_arr[$key];
                 $rank = $v;
                 if ($rank >= $no_rank) {
                     $rank = '';
                 }
                 $list->printLine($rank, $name_arr[$key], $year_arr[$key], $club_arr[$key], $val, $ioc_arr[$key]);
                 $list->printInfo($info_arr[$key]);
                 // insert points into combined top performance of entry
                 mysql_query("UPDATE anmeldung SET BestleistungMK = {$val} WHERE xAnmeldung = " . $x_arr[$key]);
             }
         }
         mysql_free_result($results);
         $list->endList();
         $list->endPage();
         // end HTML page for printing
     }
     // ET DB error all teams
 }
Пример #20
0
        function update()
        {
            require './lib/utils.lib.php';
            require './lib/cl_result.lib.php';
            // update result ID
            // ----------------
            if ($this->reply->getAction() == RES_ACT_INSERT || $this->reply->getAction() == RES_ACT_DELETE) {
                $item = '';
                if ($this->reply->getAction() == RES_ACT_INSERT) {
                    $item = $this->reply->getKey();
                }
                ?>
<script type="text/javascript">
<!--
	parent.frames[1].document.<?php 
                echo $_POST['obj'];
                ?>
.item.value="<?php 
                echo $item;
                ?>
";
//-->
</script>
<?php 
            }
            // update page with formatted result, info
            // ---------------------------------------
            // after insert, update action
            if ($this->reply->getAction() == RES_ACT_UPDATE || $this->reply->getAction() == RES_ACT_INSERT) {
                // track disciplines, with or without wind
                if ($this->type == $GLOBALS['cfgDisciplineType'][$GLOBALS['strDiscTypeNone']] || $this->type == $GLOBALS['cfgDisciplineType'][$GLOBALS['strDiscTypeTrack']] || $this->type == $GLOBALS['cfgDisciplineType'][$GLOBALS['strDiscTypeTrackNoWind']] || $this->type == $GLOBALS['cfgDisciplineType'][$GLOBALS['strDiscTypeDistance']] || $this->type == $GLOBALS['cfgDisciplineType'][$GLOBALS['strDiscTypeRelay']]) {
                    $perf = AA_formatResultTime($this->reply->getPerformance());
                } else {
                    $perf = AA_formatResultMeter($this->reply->getPerformance());
                }
                ?>
<script type="text/javascript">
<!--
	parent.frames[1].document.<?php 
                echo $_POST['obj'];
                ?>
.perf.value="<?php 
                echo $perf;
                ?>
";
//-->
</script>
<?php 
                // technical disciplines: update wind
                if ($this->type == $GLOBALS['cfgDisciplineType'][$GLOBALS['strDiscTypeJump']]) {
                    ?>
<script type="text/javascript">
<!--
	parent.frames[1].document.<?php 
                    echo $_POST['obj'];
                    ?>
.wind.value="<?php 
                    echo $this->reply->getInfo();
                    ?>
";
//-->
</script>
<?php 
                } else {
                    if ($this->type == $GLOBALS['cfgDisciplineType'][$GLOBALS['strDiscTypeHigh']]) {
                        ?>
<script type="text/javascript">
<!--
	parent.frames[1].document.<?php 
                        echo $_POST['obj'];
                        ?>
.attempts.value="<?php 
                        echo $this->reply->getInfo();
                        ?>
";
//-->
</script>
<?php 
                    }
                }
            } else {
                if ($this->reply->getAction() == RES_ACT_DELETE) {
                    // technical disciplines: clear wind
                    if ($this->type == $GLOBALS['cfgDisciplineType'][$GLOBALS['strDiscTypeJump']]) {
                        ?>
<script type="text/javascript">
<!--
	parent.frames[1].document.<?php 
                        echo $_POST['obj'];
                        ?>
.wind.value="";
//-->
</script>
<?php 
                    } else {
                        if ($this->type == $GLOBALS['cfgDisciplineType'][$GLOBALS['strDiscTypeHigh']]) {
                            ?>
<script type="text/javascript">
<!--
	parent.frames[1].document.<?php 
                            echo $_POST['obj'];
                            ?>
.attempts.value="";
//-->
</script>
<?php 
                        }
                    }
                }
            }
            // ET insert/update, delete
        }
Пример #21
0
 function AA_rankinglist_Single($category, $event, $round, $formaction, $break, $cover, $biglist = false, $cover_timing = false, $date = '%', $show_efforts = 'none', $heatSeparate, $catFrom, $catTo, $discFrom, $discTo, $heatFrom, $heatTo, $athleteCat, $content_navi)
 {
     require './lib/cl_gui_page.lib.php';
     require './lib/common.lib.php';
     require './config.inc.php';
     require './config.inc.end.php';
     if (AA_connectToDB() == FALSE) {
         // invalid DB connection
         return;
         // abort
     }
     if (AA_checkMeetingID() == FALSE) {
         // no meeting selected
         return;
         // abort
     }
     $p = "./tmp";
     $fp = @fopen($p . "/live" . $round . ".html", 'w');
     if (!$fp) {
         AA_printErrorMsg($GLOBALS['strErrFileOpenFailed']);
         return;
     }
     // set up ranking list selection
     $selection = '';
     $eventMerged = false;
     $catMerged = false;
     $flagSubtitle = false;
     $flagInfoLine1 = false;
     $flagInfoLine2 = false;
     $selectionHeats = '';
     $orderAthleteCat = '';
     $saison = $_SESSION['meeting_infos']['Saison'];
     if ($saison == '') {
         $saison = "O";
         //if no saison is set take outdoor
     }
     if ($round > 0) {
         // show a specific round
         $eventMerged = false;
         $sqlEvents = AA_getMergedEventsFromEvent($event);
         if ($sqlEvents != '') {
             $selection = "w.xWettkampf IN " . $sqlEvents . " AND ";
             $eventMerged = true;
         } else {
             $selection = "w.xWettkampf =" . $event . " AND ";
         }
     } else {
         if ($category == 0) {
             // show all disciplines for every category
             $catMerged = true;
         } else {
             if ($event == 0) {
                 // show all disciplines for a specific category
                 $catMerged = false;
                 $mergedCat = AA_mergedCat($category);
                 if ($mergedCat != '') {
                     $selection = "w.xKategorie =" . $category . " AND ";
                     $catMerged = true;
                 } else {
                     $selection = "w.xKategorie =" . $category . " AND ";
                 }
             } else {
                 if ($round == 0) {
                     // show all rounds for a specific event
                     $eventMerged = false;
                     $sqlEvents = AA_getMergedEventsFromEvent($event);
                     if ($sqlEvents != '') {
                         $selection = "w.xWettkampf IN " . $sqlEvents . " AND ";
                         $eventMerged = true;
                     } else {
                         $selection = "w.xWettkampf =" . $event . " AND ";
                     }
                 }
             }
         }
     }
     if ($catFrom > 0) {
         //
         $getSortCat = AA_getSortCat($catFrom, $catTo);
         if ($getSortCat[0]) {
             if ($catTo > 0) {
                 $selection = "k.Anzeige >=" . $getSortCat[$catFrom] . " AND k.Anzeige <=" . $getSortCat[$catTo] . " AND ";
             } else {
                 $selection = "k.Anzeige =" . $getSortCat[$catFrom] . " AND ";
             }
         }
     }
     if ($discFrom > 0) {
         //
         $getSortDisc = AA_getSortDisc($discFrom, $discTo);
         if ($getSortDisc[0]) {
             if ($discTo > 0) {
                 $selection .= "d.Anzeige >=" . $getSortDisc[$discFrom] . " AND d.Anzeige <=" . $getSortDisc[$discTo] . " AND ";
             } else {
                 $selection .= "d.Anzeige =" . $getSortDisc[$discFrom] . " AND ";
             }
         }
     }
     if ($heatFrom > 0) {
         $selectionHeats = ' AND s.xSerie >= ' . $heatFrom . ' AND s.xSerie <= ' . $heatTo . ' ';
     }
     if ($athleteCat) {
         $orderAthleteCat = ' k1.Anzeige, ';
     }
     if ($catMerged & !$heatSeparate || $eventMerged & !$heatSeparate) {
         // get event rounds from DB
         $results = mysql_query("\r\n\tSELECT \r\n\t\tr.xRunde\r\n\t\t, k.Name\r\n\t\t, d.Name\r\n\t\t, d.Typ\r\n\t\t, w.xWettkampf\r\n\t\t, r.QualifikationSieger\r\n\t\t, r.QualifikationLeistung\r\n\t\t, w.Punkteformel\r\n\t\t, w.Windmessung\r\n\t\t, r.Speakerstatus\r\n\t\t, d.Staffellaeufer\r\n\t\t, CONCAT(DATE_FORMAT(r.Datum,'{$cfgDBdateFormat}'), ' ', TIME_FORMAT(r.Startzeit, '{$cfgDBtimeFormat}'))\r\n\t\t, w.xDisziplin  \r\n\tFROM\r\n\t\tathletica.wettkampf AS w\r\n\t\tLEFT JOIN athletica.kategorie AS k ON (k.xKategorie = w.xKategorie)\r\n  \t\tLEFT JOIN athletica.disziplin_" . $_COOKIE['language'] . " as d ON (d.xDisziplin = w.xDisziplin) \r\n  \t\tLEFT JOIN athletica.runde AS r ON (r.xWettkampf = w.xWettkampf) \r\n\tWHERE " . $selection . "\r\n\tw.xMeeting = " . $_COOKIE['meeting_id'] . " \t\r\n\tAND  (r.Status = " . $cfgRoundStatus['results_done'] . " OR r.Status = " . $cfgRoundStatus['results_in_progress'] . ") \r\n\tAND r.Datum LIKE '" . $date . "'\r\n\tORDER BY\r\n\t\tk.Anzeige\r\n\t\t, d.Anzeige\r\n\t\t, r.Datum\r\n\t\t, r.Startzeit\r\n");
     } else {
         // heats separate
         $results = mysql_query("\r\n            SELECT DISTINCT \r\n                r.xRunde , \r\n                k.Name , \r\n                d.Name , \r\n                d.Typ , \r\n                w.xWettkampf , \r\n                r.QualifikationSieger , \r\n                r.QualifikationLeistung , \r\n                w.Punkteformel , \r\n                w.Windmessung , \r\n                r.Speakerstatus , \r\n                d.Staffellaeufer , \r\n                CONCAT(DATE_FORMAT(r.Datum,'%d.%m.%y'), \r\n                ' ', \r\n                TIME_FORMAT(r.Startzeit, '%H:%i')) ,\r\n                w.xDisziplin ,  \r\n                rs.Hauptrunde     \r\n            FROM \r\n                athletica.wettkampf AS w \r\n                LEFT JOIN athletica.kategorie AS k ON (k.xKategorie = w.xKategorie) \r\n                LEFT JOIN athletica.disziplin_" . $_COOKIE['language'] . " as d ON (d.xDisziplin = w.xDisziplin) \r\n                LEFT JOIN athletica.runde AS r ON (r.xWettkampf = w.xWettkampf) \r\n                LEFT JOIN athletica.rundenset as rs ON (r.xRunde=rs.xRunde )           \r\n            WHERE \r\n                " . $selection . "  \r\n                w.xMeeting  = " . $_COOKIE['meeting_id'] . " \r\n                AND  (r.Status = " . $cfgRoundStatus['results_done'] . " OR r.Status = " . $cfgRoundStatus['results_in_progress'] . ")  \r\n                AND r.Datum LIKE '%' \r\n            ORDER BY\r\n                k.Anzeige\r\n                , d.Anzeige\r\n                , r.Datum\r\n                , r.Startzeit\r\n   ");
     }
     if (mysql_errno() > 0) {
         // DB error
         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
     } else {
         $limitRankSQL = "";
         $limitRank = false;
         if ($_GET['limitRank'] == "yes") {
             // check if ranks are limited, but limitRankSQL will set only if export is pressed
             if (!empty($_GET['limitRankFrom']) && !empty($_GET['limitRankTo'])) {
                 $limitRank = true;
             }
         }
         // get url
         $url = '';
         $result = mysql_query("\r\n            SELECT\r\n                url\r\n            FROM\r\n                athletica_liveResultate.config");
         if (mysql_errno() > 0) {
             AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
         } else {
             $row = mysql_fetch_row($result);
             $url = $row[0];
         }
         // start a new HTML display page
         if ($formaction == 'view' || $formaction == 'speaker') {
             // display page
             $list = new GUI_RankingList($_COOKIE['meeting']);
             $list->content = $cfgHtmlStart1;
             if (empty($GLOBALS['cfgDir'])) {
                 $list->content .= "<meta http-equiv='refresh' content='" . $GLOBALS['cfgMonitorReload'] . "; url=http://" . $url . "/live" . $round . ".html'>";
             } else {
                 $list->content .= "<meta http-equiv='refresh' content='" . $GLOBALS['cfgMonitorReload'] . "; url=http://" . $url . "/" . $GLOBALS['cfgDir'] . "/live" . $round . ".html'>";
             }
             $list->content .= $cfgHtmlStart2;
             $list->content .= $content_navi;
             $list->content .= "</div ><div id='content_pc'><div id='content_pda'>";
             $list->printPageTitle("{$strRankingLists} " . $_COOKIE['meeting']);
         } elseif ($formaction == "print") {
             $list = new PRINT_RankingList($_COOKIE['meeting']);
             if ($cover == true) {
                 // print cover page
                 $list->printCover($GLOBALS['strResults'], $cover_timing);
             }
         } elseif ($formaction == "exportpress") {
             $list = new EXPORT_RankingListPress($_COOKIE['meeting'], 'txt');
             if ($limitRank) {
                 $limitRankSQL = " AND ss.Rang <= " . $_GET['limitRankTo'] . " AND ss.Rang >= " . $_GET['limitRankFrom'] . " ";
             }
         } elseif ($formaction == "exportdiplom") {
             $list = new EXPORT_RankingListDiplom($_COOKIE['meeting'], 'csv');
             if ($limitRank) {
                 $limitRankSQL = " AND ss.Rang <= " . $_GET['limitRankTo'] . " AND ss.Rang >= " . $_GET['limitRankFrom'] . " ";
             }
         }
         // initialize variables
         $cat = '';
         $evnt = 0;
         while ($row = mysql_fetch_row($results)) {
             // for a combined event, the rounds are merged, so jump until the next event
             if ($cRounds > 1) {
                 $cRounds--;
                 continue;
             }
             $roundSQL = "s.xRunde = {$row['0']}";
             $cRounds = 0;
             // check page  break
             if (is_a($list, "PRINT_RankingList") && $cat != '' && ($break == 'discipline' || $break == 'category' && $row[1] != $cat)) {
                 $list->insertPageBreak();
             }
             if ($row[3] == $cfgDisciplineType[$strDiscTypeTrackTrack] || $row[3] == $cfgDisciplineType[$strDiscTypeTrackNoWind] || $row[3] == $cfgDisciplineType[$strDiscTypeRelay]) {
                 $eval = $cfgEvalType[$strEvalTypeHeat];
             } else {
                 $eval = $cfgEvalType[$strEvalTypeAll];
             }
             $roundName = '';
             $type = '';
             $res = mysql_query("\r\n\t\t\tSELECT\r\n                rt.Name\r\n                , rt.Typ\r\n                , rt.Wertung\r\n            FROM\r\n                athletica.runde\r\n                LEFT JOIN athletica.rundentyp_" . $_COOKIE['language'] . " AS rt ON (rt.xRundentyp = runde.xRundentyp)\r\n            WHERE \r\n                runde.xRunde = {$row['0']}             \r\n\t\t");
             if (mysql_errno() > 0) {
                 AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
             } else {
                 if (mysql_num_rows($res) > 0) {
                     $row_rt = mysql_fetch_row($res);
                     if ($row_rt[1] == '0') {
                         $type = " ";
                         $row_rt[0] = '';
                     } else {
                         $type = $row_rt[0] . " ";
                     }
                     $eval = $row_rt[2];
                     if ($round != 0) {
                         // specific round selected
                         $roundName = $row_rt[0];
                     }
                 }
                 mysql_free_result($res);
             }
             if ($evnt != $row[4]) {
                 // if this is a combined event, dont fragment list by rounds
                 $combined = AA_checkCombined($row[4]);
                 // not selectet a specific round
                 if ($round == 0 && $combined) {
                     $res_c = mysql_query("SELECT \r\n\t\t\t\t\t\t\t\tr.xRunde\r\n\t\t\t\t\t\t\tFROM\r\n\t\t\t\t\t\t\t\tathletica.wettkampf as w\r\n\t\t\t\t\t\t\t\t LEFT JOIN athletica.runde as r ON (r.xWettkampf = w.xWettkampf)\r\n\t\t\t\t\t\t\tWHERE\tw.xWettkampf = " . $row[4]);
                     if (mysql_errno() > 0) {
                         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                     } else {
                         $cRounds = mysql_num_rows($res_c);
                         $roundSQL = "s.xRunde IN (";
                         while ($row_c = mysql_Fetch_array($res_c)) {
                             $roundSQL .= $row_c[0] . ",";
                         }
                         $roundSQL = substr($roundSQL, 0, -1) . ")";
                     }
                 }
                 // set up category and discipline title information
                 $flagSubtitle = true;
                 // set flag to print the subtitle later
                 if ($formaction == 'speaker' && AA_getNextRound($row[4], $row[0]) == 0) {
                     // last round: show ceremony status
                     $list->printCeremonyStatus($row[0], $row[9]);
                 }
                 // print qualification mode if round selected
                 $info = '';
                 if ($round > 0 && ($row[5] > 0 || $row[6] > 0)) {
                     //$info = $GLOBALS['strQualification'] .": "
                     //			. $row[5] . " &nbsp;" . $GLOBALS['$strQualifyTop'] .", "
                     //			. $row[6] . " &nbsp;" . $GLOBALS['strQualifyPerformance'];
                     $info = "{$strQualification}: " . $row[5] . " {$strQualifyTop}, " . $row[6] . " {$strQualifyPerformance}";
                     $flagInfoLine1 = true;
                     // set flag to print later the qualification mode if round selected
                     $info_save1 = $info;
                     //$list->printInfoLine($info);
                     $qual_mode = TRUE;
                 }
                 // print qualification descriptions if required
                 $info = '';
                 if ($row[5] > 0 || $row[6] > 0) {
                     //foreach($GLOBALS['cfgQualificationType'] as $qt)
                     foreach ($cfgQualificationType as $qt) {
                         $info = $info . $qt['token'] . " =" . $qt['text'] . "&nbsp;&nbsp;&nbsp;";
                     }
                     $flagInfoLine2 = true;
                     // set flag to print later the qualification descriptions if required
                     $info_save2 = $info;
                     //$list->printInfoLine($info);
                     $qual_mode = TRUE;
                 }
                 $evnt = $row[4];
                 // keep event ID
                 //$roundM = $row[13];
             }
             // ET new event
             //else {
             //	if ($roundM!=$row[13]){      // set up subtitle when merged round are separated
             //		  $flagSubtitle=true;       // set flag to print the subtitle later
             //	}
             //}
             $relay = AA_checkRelay($row[4]);
             // check, if this is a relay event
             $svm = AA_checkSVM($row[4]);
             // If round evaluated per heat, group results accordingly
             $order_heat = "";
             if ($eval == $cfgEvalType[$strEvalTypeHeat]) {
                 // eval per heat
                 $order_heat = "heatid, ";
             }
             $valid_result = "";
             // Order performance depending on discipline type
             if ($row[3] == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $row[3] == $cfgDisciplineType[$strDiscTypeThrow]) {
                 $order_perf = "DESC";
             } else {
                 if ($row[3] == $cfgDisciplineType[$strDiscTypeJump]) {
                     if ($row[8] == 1) {
                         // with wind
                         $order_perf = "DESC, r.Info ASC";
                     } else {
                         // without wind
                         $order_perf = "DESC";
                     }
                 } else {
                     if ($row[3] == $cfgDisciplineType[$strDiscTypeHigh]) {
                         $order_perf = "DESC";
                         $valid_result = " AND (r.Info LIKE '%O%'" . " OR r.Leistung < 0)";
                     } else {
                         $order_perf = "ASC";
                     }
                 }
             }
             $sqlSeparate = '';
             if (($catMerged || $eventMerged) & $heatSeparate) {
                 if ($row[0] > 0 && $row[13] != NULL) {
                     $roundSQL = '';
                     if (empty($limitRankSQL) && empty($valid_result)) {
                         $sqlSeparate = " ss.RundeZusammen = " . $row[0];
                     } else {
                         if (empty($limitRankSQL)) {
                             $valid_result = substr($valid_result, 4, strlen($valid_result));
                         } elseif (empty($valid_result)) {
                             $limitRankSQL = substr($limitRankSQL, 4, strlen($limitRankSQL));
                         }
                         $sqlSeparate = " AND ss.RundeZusammen = " . $row[0];
                     }
                 }
             }
             // get all results ordered by ranking; for invalid results (Rang=0), the
             // rank is set to max_rank to put them to the end of the list.
             $max_rank = 999999999;
             $sql_leistung = $order_perf == 'ASC' ? "r.Leistung" : "IF(r.Leistung<0, (If(r.Leistung = -99, -9, (If (r.Leistung = -98, -8,r.Leistung))) * -1), r.Leistung)";
             $order = $order_heat;
             if ($relay == FALSE) {
                 if ($athleteCat) {
                     $order = $orderAthleteCat . $order_heat;
                 }
                 $query = "SELECT ss.xSerienstart, \r\n\t\t\t\t\t\t\t IF(ss.Rang=0, {$max_rank}, ss.Rang) AS rank, \r\n\t\t\t\t\t\t\t ss.Qualifikation, \r\n\t\t\t\t\t\t\t " . $sql_leistung . " AS leistung_neu, \r\n\t\t\t\t\t\t\t r.Info, \r\n\t\t\t\t\t\t\t s.Bezeichnung, \r\n\t\t\t\t\t\t\t s.Wind, \r\n\t\t\t\t\t\t\t r.Punkte, \r\n\t\t\t\t\t\t\t IF('" . $svm . "', t.Name, IF(a.Vereinsinfo = '', v.Name, a.Vereinsinfo)), \r\n\t\t\t\t\t\t\t at.Name, \r\n\t\t\t\t\t\t\t at.Vorname, \r\n\t\t\t\t\t\t\t at.Jahrgang, \r\n\t\t\t\t\t\t\t LPAD(s.Bezeichnung, 5, '0') AS heatid, \r\n\t\t\t\t\t\t\t IF(at.xRegion = 0, at.Land, re.Anzeige) AS Land, \r\n\t\t\t\t\t\t\t at.xAthlet, \r\n\t\t\t\t\t\t\t ru.Datum, \r\n\t\t\t\t\t\t\t ru.Startzeit ,\r\n\t\t\t\t\t\t\t ss.RundeZusammen,\r\n\t\t\t\t\t\t\t ru.xRunde,  \r\n\t\t\t\t\t\t\t k.Name , \r\n\t\t\t\t\t\t\t k1.Name , \t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t k1.Anzeige ,\r\n                             ss.Bemerkung ,\r\n                              w.Punkteformel,\r\n                             w.info,\r\n                             a.Startnummer   \r\n\t\t\t\t\t\tFROM athletica.serie AS s USE INDEX(Runde)\r\n\t\t\t\t   LEFT JOIN athletica.serienstart AS ss USING(xSerie) \r\n\t\t\t\t   LEFT JOIN athletica.resultat AS r USING(xSerienstart) \r\n\t\t\t\t   LEFT JOIN athletica.start AS st ON(ss.xStart = st.xStart) \r\n\t\t\t\t   LEFT JOIN athletica.anmeldung AS a USING(xAnmeldung) \r\n\t\t\t\t   LEFT JOIN athletica.athlet AS at USING(xAthlet) \r\n\t\t\t\t   LEFT JOIN athletica.verein AS v USING(xVerein) \r\n\t\t\t\t   LEFT JOIN athletica.region AS re ON(at.xRegion = re.xRegion) \r\n\t\t\t\t   LEFT JOIN athletica.team AS t ON(a.xTeam = t.xTeam) \r\n\t\t\t\t   LEFT JOIN athletica.runde AS ru ON(s.xRunde = ru.xRunde) \r\n\t\t\t\t   LEFT JOIN athletica.wettkampf AS w On (w.xWettkampf= st.xWettkampf)   \r\n\t\t\t\t   LEFT JOIN athletica.kategorie AS k On (w.xKategorie= k.xKategorie)\r\n\t\t\t\t   LEFT JOIN athletica.kategorie AS k1 ON (a.xKategorie = k1.xKategorie)   \r\n\t\t\t\t\t   WHERE " . $roundSQL . " \r\n\t\t\t\t\t   " . $limitRankSQL . " \r\n\t\t\t\t\t   " . $valid_result . " \r\n\t\t\t\t\t   " . $sqlSeparate . " \r\n\t\t\t\t\t   " . $selectionHeats . "  \r\n\t\t\t\t\tORDER BY " . $order . "   \t\t\t\t\t         \r\n\t\t\t\t\t\t\t rank, \r\n\t\t\t\t\t\t\t at.Name, \r\n\t\t\t\t\t\t\t at.Vorname,\r\n\t\t\t\t\t\t\t leistung_neu " . $order_perf;
             } else {
                 // relay event
                 $query = "SELECT ss.xSerienstart,           \t\t\t\t\t\t\r\n\t\t\t\t\t\t\t IF(r.Leistung < 0 , {$max_rank}, if (ss.Rang=0, {$max_rank}-1, ss.Rang)) AS rank, \r\n\t\t\t\t\t\t\t ss.Qualifikation, \r\n\t\t\t\t\t\t\t " . $sql_leistung . " AS leistung_neu, \r\n\t\t\t\t\t\t\t r.Info, \r\n\t\t\t\t\t\t\t s.Bezeichnung, \r\n\t\t\t\t\t\t\t s.Wind, \r\n\t\t\t\t\t\t\t r.Punkte, \r\n\t\t\t\t\t\t\t IF('" . $svm . "', t.Name, v.Name), \r\n\t\t\t\t\t\t\t sf.Name, \r\n\t\t\t\t\t\t\t LPAD(s.Bezeichnung, 5, '0') AS heatid, \r\n\t\t\t\t\t\t\t st.xStart, \r\n\t\t\t\t\t\t\t ru.Datum, \r\n\t\t\t\t\t\t\t ru.Startzeit, \r\n\t\t\t\t\t\t\t ss.RundeZusammen,\r\n\t\t\t\t\t\t\t ru.xRunde,\r\n\t\t\t\t\t\t\t k.Name ,\r\n                             ss.Bemerkung    \r\n\t\t\t\t\t\tFROM athletica.serie AS s USE INDEX(Runde) \r\n\t\t\t\t   LEFT JOIN athletica.serienstart AS ss USING(xSerie) \r\n\t\t\t\t   LEFT JOIN athletica.resultat AS r USING(xSerienstart) \r\n\t\t\t\t   LEFT JOIN athletica.start AS st ON(ss.xStart = st.xStart) \r\n\t\t\t\t   LEFT JOIN athletica.staffel AS sf USING(xStaffel) \r\n\t\t\t\t   LEFT JOIN athletica.verein AS v USING(xVerein) \r\n\t\t\t\t   LEFT JOIN athletica.team AS t ON(sf.xTeam = t.xTeam) \r\n\t\t\t\t   LEFT JOIN athletica.runde AS ru ON(s.xRunde = ru.xRunde) \r\n\t\t\t\t   LEFT JOIN athletica.wettkampf AS w On (w.xWettkampf= st.xWettkampf)   \r\n\t\t\t\t   LEFT JOIN athletica.kategorie AS k On (w.xKategorie= k.xKategorie) \r\n\t\t\t\t\t    WHERE " . $roundSQL . "  \r\n\t\t\t\t\t  " . $limitRankSQL . " \r\n\t\t\t\t\t  " . $valid_result . " \r\n\t\t\t\t\t  " . $sqlSeparate . "  \r\n\t\t\t\t\tGROUP BY r.xSerienstart \r\n\t\t\t\t\tORDER BY " . $order . " \r\n\t\t\t\t\t\t\t rank, \r\n\t\t\t\t\t\t\t r.Leistung \r\n\t\t\t\t\t\t\t " . $order_perf . ", \r\n\t\t\t\t\t\t\t sf.Name;";
             }
             $res = mysql_query($query);
             if (mysql_errno() > 0) {
                 // DB error
                 AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
             } else {
                 if (mysql_num_rows($res) == 0) {
                     continue;
                 }
                 // initialize variables
                 $heat = '';
                 $h = 0;
                 $info = '';
                 $id = '';
                 $r = '';
                 $count_rank = 0;
                 $perf_save = '';
                 //$list->startList();
                 $nr = 0;
                 $atCat = '';
                 // process every result
                 while ($row_res = mysql_fetch_array($res)) {
                     if ($flagSubtitle) {
                         $nr = 0;
                         if ($heatSeparate) {
                             if ($relay) {
                                 $list->printSubTitle($row_res[16], $row[2], $roundName);
                             } else {
                                 if (!$athleteCat) {
                                     $list->printSubTitle($row_res[19], $row[2], $roundName);
                                 }
                             }
                         } else {
                             if (!$athleteCat) {
                                 $list->printSubTitle($row[1], $row[2], $roundName);
                             }
                         }
                         $flagSubtitle = false;
                     }
                     if (!$athleteCat) {
                         if ($flagInfoLine1) {
                             $list->printInfoLine($info_save1);
                             $flagInfoLine1 = false;
                         }
                     }
                     if (!$athleteCat) {
                         if ($flagInfoLine2) {
                             $list->printInfoLine($info_save2);
                             $flagInfoLine2 = false;
                         }
                     }
                     $row_res[3] = $row_res[3] == 1 || $row_res[3] == 2 || $row_res[3] == 3 || $row_res[3] == 4 ? $row_res[3] * -1 : ($row_res[3] == 9 ? -99 : $row_res[3]);
                     if ($row_res[0] != $id) {
                         if ($h == 0 || $row_res[5] != $heat && $eval == $cfgEvalType[$strEvalTypeHeat] || $athleteCat && $row_res[21] != $atCat) {
                             $count_rank = 0;
                             $nr = 0;
                             // heat name
                             if ($eval == $cfgEvalType[$strEvalTypeHeat]) {
                                 if (empty($type)) {
                                     // no round type defined
                                     $type = $strFinalround . " ";
                                 }
                                 $title = $type . $row_res[5];
                                 // heat name with nbr.
                             } else {
                                 $title = $type;
                                 // heat name withour nbr.
                             }
                             $title = trim($title);
                             // wind per heat
                             if ($row[3] == $cfgDisciplineType[$strDiscTypeTrack] && $row[8] == 1 && $eval == $cfgEvalType[$strEvalTypeHeat]) {
                                 $heatwind = $row_res[6];
                                 // wind per heat
                             } else {
                                 $heatwind = '';
                                 // no wind
                             }
                             $wind = FALSE;
                             if ($row[8] == 1 && $row[3] == $cfgDisciplineType[$strDiscTypeJump] || $row[3] == $cfgDisciplineType[$strDiscTypeTrack] && $eval == $cfgEvalType[$strEvalTypeAll]) {
                                 $wind = TRUE;
                             }
                             // add column header 'points' if required
                             $points = FALSE;
                             if ($row[7] != '0') {
                                 $points = TRUE;
                             }
                             if ($show_efforts == 'sb_pb') {
                                 $base_perf = true;
                             }
                             if ($athleteCat && !$relay) {
                                 if ($formaction == 'print') {
                                     if ($row_res[20] != $atCatName) {
                                         $list->printSubTitle($row_res[20], $row[2], $roundName, $row_res[24]);
                                         $atCatName_keep = $atCatName;
                                         if ($flagInfoLine1) {
                                             $list->printInfoLine($info_save1);
                                             $flagInfoLine1 = false;
                                         }
                                         if ($flagInfoLine2) {
                                             $list->printInfoLine($info_save2);
                                             $flagInfoLine2 = false;
                                         }
                                     }
                                 }
                             }
                             $list->startList();
                             $list->printHeaderLine($title, $relay, $points, $wind, $heatwind, $row[11], $svm, $base_perf, $qual_mode);
                             if ($athleteCat && !$relay) {
                                 if ($formaction == 'view') {
                                     if ($row_res[20] != $atCatName) {
                                         $list->printSubTitle($row_res[20], $row[2], $roundName, $row_res[24]);
                                         $atCatName_keep = $atCatName;
                                         if ($flagInfoLine1) {
                                             $list->printInfoLine($info_save1, $athleteCat);
                                             $flagInfoLine1 = false;
                                         }
                                         if ($flagInfoLine2) {
                                             $list->printInfoLine($info_save2, $athleteCat);
                                             $flagInfoLine2 = false;
                                         }
                                     }
                                 }
                             }
                             $heat = $row_res[5];
                             // keep heat description
                             $atCat = $row_res[21];
                             // keep athlete category
                             $h++;
                             // increment if evaluation per heat
                         }
                         $count_rank++;
                         // rank
                         if ($row_res[1] == $max_rank || $row_res[1] == $max_rank - 1 || $r == $row_res[1] && $heat_keep == $row_res[5]) {
                             // same rank as previous
                             $rank = '';
                         } else {
                             $rank = $row_res[1];
                         }
                         $r = $row_res[1];
                         // keep rank
                         $heat_keep = $row_res[5];
                         // keep rank
                         $atCatName = $row_res[20];
                         // keep athlete category name
                         // name
                         $name = $row_res[9];
                         if ($relay == FALSE) {
                             $name = $name . " " . $row_res[10];
                         }
                         // year of birth
                         if ($relay == FALSE) {
                             $year = AA_formatYearOfBirth($row_res[11]);
                         } else {
                             $year = '';
                         }
                         // year of birth
                         if ($relay == FALSE) {
                             $land = $row_res[13] != '' && $row_res[13] != '-' ? $row_res[13] : '';
                         } else {
                             $year = '';
                         }
                         // performance
                         if ($row_res[3] < 0) {
                             // invalid result
                             foreach ($cfgInvalidResult as $value) {
                                 if ($value['code'] == $row_res[3]) {
                                     $perf = $value['short'];
                                 }
                             }
                         } else {
                             if ($row[3] == $cfgDisciplineType[$strDiscTypeJump] || $row[3] == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $row[3] == $cfgDisciplineType[$strDiscTypeThrow] || $row[3] == $cfgDisciplineType[$strDiscTypeHigh]) {
                                 $perf = AA_formatResultMeter($row_res[3]);
                             } else {
                                 if ($row[3] == $cfgDisciplineType[$strDiscTypeTrack] || $row[3] == $cfgDisciplineType[$strDiscTypeTrackNoWind]) {
                                     $perf = AA_formatResultTime($row_res[3], true, true);
                                 } else {
                                     $perf = AA_formatResultTime($row_res[3], true);
                                 }
                             }
                         }
                         $qual = '';
                         if ($row_res[2] > 0) {
                             // Athlete qualified
                             foreach ($cfgQualificationType as $qtype) {
                                 if ($qtype['code'] == $row_res[2]) {
                                     $qual = $qtype['token'];
                                 }
                             }
                         }
                         // ET athlete qualified
                         // points for performance
                         $points = '';
                         if ($row[7] != '0') {
                             $points = $row_res[7];
                         }
                         // wind info
                         $wind = '';
                         $secondResult = false;
                         if ($r != $max_rank) {
                             if ($row[3] == $cfgDisciplineType[$strDiscTypeJump] && $row[8] == 1) {
                                 $wind = $row_res[4];
                                 //
                                 // if wind bigger than max wind (2.0) show the next best result without wind too
                                 //
                                 if ($wind > 2) {
                                     $res_wind = mysql_query("\r\n\t\t\t\t\t\t\t\t\t\tSELECT Info, Leistung FROM\r\n\t\t\t\t\t\t\t\t\t\t\tresultat\r\n\t\t\t\t\t\t\t\t\t\tWHERE\r\n\t\t\t\t\t\t\t\t\t\t\txSerienstart = {$row_res['0']}\r\n\t\t\t\t\t\t\t\t\t\tORDER BY\r\n\t\t\t\t\t\t\t\t\t\t\tLeistung ASC");
                                     if (mysql_errno() > 0) {
                                         // DB error
                                         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                     } else {
                                         while ($row_wind = mysql_fetch_array($res_wind)) {
                                             if ($row_wind[0] <= 2) {
                                                 $secondResult = true;
                                                 $wind2 = $row_wind[0] . ")";
                                                 $perf2 = "(" . AA_formatResultMeter($row_wind[1]);
                                             }
                                         }
                                     }
                                 }
                             } else {
                                 if ($row[3] == $cfgDisciplineType[$strDiscTypeTrack] && $row[8] == 1 && $eval == $cfgEvalType[$strEvalTypeAll]) {
                                     $wind = $row_res[6];
                                 }
                             }
                         }
                         // ioc country code
                         $ioc = '';
                         if ($relay == false) {
                             $ioc = $row_res[13];
                         }
                         //show performances from base
                         if ($show_efforts == 'sb_pb' && $relay == false) {
                             $saison = $_SESSION['meeting_infos']['Saison'];
                             if ($saison == '') {
                                 $saison = "O";
                                 //if no saison is set take outdoor
                             }
                             $sql = "SELECT \r\n\t\t\t\t\t\t\t\t\tseason_effort\r\n\t\t\t\t\t\t\t\t\t, DATE_FORMAT(season_effort_date, '%d.%m.%Y') AS sb_date\r\n\t\t\t\t\t\t\t\t\t, season_effort_event\r\n\t\t\t\t\t\t\t\t\t, best_effort\r\n\t\t\t\t\t\t\t\t\t, DATE_FORMAT(best_effort_date, '%d.%m.%Y') AS pb_date\r\n\t\t\t\t\t\t\t\t\t, best_effort_event\r\n\t\t\t\t\t\t\t\t\t, season\r\n\t\t\t\t\t\t\t\t\t, xAnmeldung\r\n\t\t\t\t\t\tFROM \r\n\t\t\t\t\t\t\tathletica.base_performance\r\n\t\t\t\t\t\tLEFT JOIN \r\n\t\t\t\t\t\t\tathletica.base_athlete USING (id_athlete)\r\n\t\t\t\t\t\tLEFT JOIN \r\n\t\t\t\t\t\t\tathletica.disziplin_" . $_COOKIE['language'] . " ON (discipline = Code)\r\n\t\t\t\t\t\tLEFT JOIN \r\n\t\t\t\t\t\t\tathletica.athlet ON (license = Lizenznummer)\r\n\t\t\t\t\t\tLEFT JOIN\r\n\t\t\t\t\t\t\tathletica.anmeldung USING(xAthlet) \r\n\t\t\t\t\t\tWHERE \r\n\t\t\t\t\t\t\tathlet.xAthlet = {$row_res['14']}\r\n\t\t\t\t\t\t\tAND xDisziplin = {$row['12']}\r\n\t\t\t\t\t\t\tAND season = '{$saison}' \r\n\t\t\t\t\t\t\tAND xMeeting = " . $_COOKIE['meeting_id'] . ";";
                             $res_perf = mysql_query($sql);
                             if (mysql_errno() > 0) {
                                 // DB error
                                 AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                             } else {
                                 if ($res_perf) {
                                     $row_perf = mysql_fetch_array($res_perf);
                                     $is_jump = $row[3] == $cfgDisciplineType[$strDiscTypeJump] || $row[3] == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $row[3] == $cfgDisciplineType[$strDiscTypeThrow] || $row[3] == $cfgDisciplineType[$strDiscTypeHigh];
                                     $order = $is_jump ? 'DESC' : 'ASC';
                                     $best_previous = '';
                                     $previous_date = '';
                                     if ($row_perf !== false) {
                                         $best_previous = AA_getBestPrevious($row[12], $row_perf['xAnmeldung'], $order, $row_res['Datum'], $row_res['Startzeit'], &$previous_date);
                                     }
                                     if ($is_jump) {
                                         $sb_perf = AA_formatResultMeter(str_replace(".", "", $row_perf['season_effort']));
                                         $pb_perf = AA_formatResultMeter(str_replace(".", "", $row_perf['best_effort']));
                                         $bp_perf = AA_formatResultMeter(str_replace(".", "", $best_previous));
                                         if ($bp_perf > 0 && $bp_perf > $sb_perf) {
                                             $sb_perf = $bp_perf;
                                             $row_perf['season_effort_event'] = $_SESSION['meeting_infos']['Name'];
                                             $row_perf['sb_date'] = date('d.m.Y', strtotime($previous_date));
                                         }
                                         if ($bp_perf > 0 && $bp_perf > $pb_perf) {
                                             $pb_perf = $bp_perf;
                                             $row_perf['best_effort_event'] = $_SESSION['meeting_infos']['Name'];
                                             $row_perf['pb_date'] = date('d.m.Y', strtotime($previous_date));
                                         }
                                         //highlight sb or pb if new performance is better
                                         if (is_numeric($perf)) {
                                             //prevent special-codes (disq, n.a. usw)
                                             if ($formaction != 'print') {
                                                 if ($pb_perf != '' && $perf > $pb_perf) {
                                                     $perf = "<b>PB {$perf}</b> ";
                                                 } else {
                                                     if ($sb_perf != '' && $perf > $sb_perf) {
                                                         $perf = "<b>SB {$perf}</b>";
                                                     }
                                                 }
                                             } else {
                                                 if ($pb_perf != '' && $perf > $pb_perf) {
                                                     $perf = "<b>PB</b> {$perf}";
                                                 } else {
                                                     if ($sb_perf != '' && $perf > $sb_perf) {
                                                         $perf = "<b>SB</b> {$perf}";
                                                     }
                                                 }
                                             }
                                         }
                                     } else {
                                         //convert performance-time to milliseconds
                                         $timepices = explode(":", $row_perf['season_effort']);
                                         $season_effort = $timepices[0] * 360 * 1000 + $timepices[1] * 60 * 1000 + $timepices[2] * 1000 + $timepices[3];
                                         $timepices = explode(":", $row_perf['best_effort']);
                                         $best_effort = $timepices[0] * 360 * 1000 + $timepices[1] * 60 * 1000 + $timepices[2] * 1000 + $timepices[3];
                                         $previous_effort = intval($best_previous);
                                         if ($previous_effort > 0 && $previous_effort < $season_effort) {
                                             $season_effort = $previous_effort;
                                             $row_perf['season_effort_event'] = $_SESSION['meeting_infos']['Name'];
                                             $row_perf['sb_date'] = date('d.m.Y', strtotime($previous_date));
                                         }
                                         if ($previous_effort > 0 && $previous_effort < $best_effort) {
                                             $best_effort = $previous_effort;
                                             $row_perf['best_effort_event'] = $_SESSION['meeting_infos']['Name'];
                                             $row_perf['pb_date'] = date('d.m.Y', strtotime($previous_date));
                                         }
                                         if ($row[3] == $cfgDisciplineType[$strDiscTypeTrack] || $row[3] == $cfgDisciplineType[$strDiscTypeTrackNoWind]) {
                                             $sb_perf = AA_formatResultTime($season_effort, true, true);
                                             $pb_perf = AA_formatResultTime($best_effort, true, true);
                                         } else {
                                             $sb_perf = AA_formatResultTime($season_effort, true);
                                             $pb_perf = AA_formatResultTime($best_effort, true);
                                         }
                                         if ($formaction != 'print') {
                                             //highlight sb or pb if new performance is better
                                             if ($pb_perf != '' && $perf < $pb_perf) {
                                                 $perf = "<b>PB {$perf}</b>";
                                             } else {
                                                 if ($sb_perf != '' && $perf < $sb_perf) {
                                                     $perf = "<b>SB {$perf}</b>";
                                                 }
                                             }
                                         } else {
                                             if ($pb_perf != '' && $perf < $pb_perf) {
                                                 $perf = "<b>PB</b> {$perf}";
                                             } else {
                                                 if ($sb_perf != '' && $perf < $sb_perf) {
                                                     $perf = "<b>SB</b> {$perf}";
                                                 }
                                             }
                                         }
                                     }
                                     if (!empty($row_perf['season_effort'])) {
                                         $sb = "<a href=\"#\" class=\"info\">{$sb_perf}<span>{$row_perf['sb_date']}<br>{$row_perf['season_effort_event']}</span></a>";
                                     } else {
                                         $sb = "&nbsp;";
                                     }
                                     if (!empty($row_perf['best_effort'])) {
                                         $pb = "<a href=\"#\" class=\"info\">{$pb_perf}<span>{$row_perf['pb_date']}<br>{$row_perf['best_effort_event']}</span></a>";
                                     } else {
                                         $pb = "&nbsp;";
                                     }
                                 }
                             }
                         }
                         if ($heatSeparate) {
                             $rank = $count_rank;
                             if ($perf == $perf_save || $row_res[3] < 0) {
                                 // same rank or invalid result
                                 $rank = '';
                             }
                         }
                         if ($athleteCat && !$relay) {
                             $nr++;
                             if ($rank != '') {
                                 if ($formaction == "print") {
                                     $rank = $nr . ". (" . $rank . ")";
                                 } else {
                                     $rank = $nr . " (" . $rank . ")";
                                 }
                             }
                         } else {
                             if ($formaction == "print") {
                                 if ($rank != '') {
                                     $rank .= ".";
                                 }
                             }
                         }
                         if ($relay) {
                             $remark = $row_res[17];
                         } else {
                             $remark = $row_res[22];
                         }
                         $list->printLine($rank, $name, $year, $row_res[8], $perf, $wind, $points, $qual, $ioc, $sb, $pb, $qual_mode, $athleteCat, $remark);
                         if ($secondResult) {
                             $list->printLine("", "", "", "", $perf2, $wind2, "", "", "", "", "", $qual_mode);
                         }
                         $perf_save = $perf;
                         // keep performance
                         //
                         // if relay, show started ahtletes in right order under the result
                         //
                         if ($relay) {
                             if ($row_res[14] > 0) {
                                 $sqlRound = $row_res[14];
                             } else {
                                 $sqlRound = $row[0];
                             }
                             $res_at = mysql_query("\r\n\t\t\t\t\t\t\t\tSELECT at.Vorname, at.Name, at.Jahrgang FROM\r\n\t\t\t\t\t\t\t\t\tathletica.staffelathlet as sfat\r\n\t\t\t\t\t\t\t\t\tLEFT JOIN athletica.start as st ON sfat.xAthletenstart = st.xStart\r\n\t\t\t\t\t\t\t\t\tLEFT JOIN athletica.anmeldung as a USING(xAnmeldung)\r\n\t\t\t\t\t\t\t\t\tLEFT JOIN athletica.athlet as at USING(xAthlet)\r\n\t\t\t\t\t\t\t\tWHERE\r\n\t\t\t\t\t\t\t\t\tsfat.xStaffelstart = {$row_res['11']}\r\n\t\t\t\t\t\t\t\tAND\tsfat.xRunde = {$sqlRound} \r\n\t\t\t\t\t\t\t\tORDER BY\r\n\t\t\t\t\t\t\t\t\tsfat.Position\r\n\t\t\t\t\t\t\t\tLIMIT {$row['10']}\r\n\t\t\t\t\t\t");
                             if (mysql_errno() > 0) {
                                 // DB error
                                 AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                             } else {
                                 $text_at = "";
                                 while ($row_at = mysql_fetch_array($res_at)) {
                                     $text_at .= $row_at[1] . " " . $row_at[0] . " " . AA_formatYearOfBirth($row_at[2]) . " / ";
                                 }
                                 $text_at = substr($text_at, 0, strlen($text_at) - 2);
                                 $text_at = trim($text_at) != '' ? '(' . $text_at . ')' : '';
                                 $list->printAthletesLine($text_at);
                             }
                         }
                         //
                         // if biglist, show all attempts
                         //
                         if ($biglist) {
                             if ($row[3] == $cfgDisciplineType[$strDiscTypeJump] || $row[3] == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $row[3] == $cfgDisciplineType[$strDiscTypeThrow] || $row[3] == $cfgDisciplineType[$strDiscTypeHigh]) {
                                 $query_sort = $row[3] == $cfgDisciplineType[$strDiscTypeHigh] ? "ORDER BY Leistung ASC" : "";
                                 $res_att = mysql_query("\r\n\t\t\t\t\t\t\t\tSELECT * FROM \r\n\t\t\t\t\t\t\t\t\tathletica.resultat \r\n\t\t\t\t\t\t\t\tWHERE xSerienstart = {$row_res['0']}\r\n\t\t\t\t\t\t\t\t" . $query_sort . "\r\n\t\t\t\t\t\t\t\t");
                                 if (mysql_errno() > 0) {
                                     // DB error
                                     AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                 } else {
                                     $text_att = "";
                                     while ($row_att = mysql_fetch_array($res_att)) {
                                         if ($row_att['Leistung'] < 0) {
                                             $perf3 = $row_att['Leistung'];
                                             if ($perf3 == $GLOBALS['cfgMissedAttempt']['db']) {
                                                 // $perf3 = '-';
                                                 $perf3 = $GLOBALS['cfgMissedAttempt']['code'];
                                             } elseif ($perf3 == $GLOBALS['cfgMissedAttempt']['dbx']) {
                                                 $perf3 = $GLOBALS['cfgMissedAttempt']['codeX'];
                                             }
                                             foreach ($cfgInvalidResult as $value) {
                                                 if ($value['code'] == $perf3) {
                                                     $text_att .= $value['short'];
                                                 }
                                             }
                                             $text_att .= " / ";
                                         } else {
                                             $text_att .= $row_att['Leistung'] == '-' ? '-' : AA_formatResultMeter($row_att['Leistung']);
                                             if ($saison == "O" || $saison == "I" && $row[3] != $cfgDisciplineType[$strDiscTypeJump]) {
                                                 // outdoor  or (indoor and not jump)
                                                 if ($row_att['Info'] != "-" && !empty($row_att['Info']) && $row[3] != $cfgDisciplineType[$strDiscTypeThrow]) {
                                                     if ($row[3] == $cfgDisciplineType[$strDiscTypeHigh]) {
                                                         $text_att .= " , " . $row_att['Info'];
                                                     } else {
                                                         if ($row[8] != 0) {
                                                             $text_att .= " , " . $row_att['Info'];
                                                         }
                                                     }
                                                 } elseif ($row_att['Info'] == "-" && $row[3] != $cfgDisciplineType[$strDiscTypeThrow] && $row_att['Leistung'] > 0) {
                                                     $text_att .= " , " . $row_att['Info'];
                                                 }
                                             }
                                             $text_att .= " / ";
                                         }
                                     }
                                     $text_att = substr($text_att, 0, strlen($text_att) - 2);
                                     $list->printAthletesLine("{$strAttempts}: ( {$text_att} )");
                                 }
                             }
                         }
                     }
                     // ET athlete processed
                     $id = $row_res[0];
                     // keep current athletes ID
                     if ($relay) {
                         $catM = $row_res[16];
                     } else {
                         $catM = $row_res[19];
                     }
                     // keep merged category
                 }
                 // END WHILE result lines
                 mysql_free_result($res);
                 $list->endList();
             }
             // ET DB error result rows
             $cat = $row[1];
             // keep category
         }
         // END WHILE event rounds
         mysql_free_result($results);
         $list->endPage();
         // end HTML page for printing
         $list->content .= $cfgHtmlFooter;
         $list->content .= " </div ></div>";
         $list->content .= $cfgHtmlEnd;
         if (!fwrite($fp, $list->content)) {
             AA_printErrorMsg($GLOBALS['strErrFileWriteFailed']);
             return;
         }
         fclose($fp);
     }
     // ET DB error event rounds
     // will not be uploaded the next time per ftp
     AA_UpdateStatusChanged($round);
 }
Пример #22
0
 function processDiscipline($event, $disctype, $catname, $discname, $windmeas, $list)
 {
     global $rFrom, $rTo, $limitRank, $date;
     require 'config.inc.php';
     $teams = array();
     // team array
     $countRes = 3;
     // results per team counting
     $order_perf = "";
     $order_perf_sort = "";
     $valid_result = "";
     if ($disctype == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $disctype == $cfgDisciplineType[$strDiscTypeThrow]) {
         $order_perf = "DESC";
         $order_perf_sort = "DESC";
     } else {
         if ($disctype == $cfgDisciplineType[$strDiscTypeJump]) {
             if ($windmeas == 1) {
                 // with wind
                 $order_perf = "DESC, r.Info ASC";
                 $order_perf_sort = "DESC";
             } else {
                 // without wind
                 $order_perf = "DESC";
                 $order_perf_sort = "DESC";
             }
         } else {
             if ($disctype == $cfgDisciplineType[$strDiscTypeHigh]) {
                 $order_perf = "DESC";
                 $order_perf_sort = "DESC";
                 $valid_result = " AND (r.Info LIKE '%O%' OR r.Leistung < 0)";
             } else {
                 $order_perf = "ASC";
                 $order_perf_sort = "ASC";
             }
         }
     }
     $sql_leistung = $order_perf == 'ASC' ? "r.Leistung" : "IF(r.Leistung<0, (If(r.Leistung = -99, -9, r.Leistung) * -1), r.Leistung)";
     $sql = "\r\n        SELECT\r\n            ts.xTeamsm\r\n            , ts.Name\r\n            , v.Name\r\n            , at.Name\r\n            , at.Vorname\r\n            , a.Startnummer\r\n            , " . $sql_leistung . " AS leistung_neu\r\n            , at.xAthlet\r\n            , r.Leistung \r\n            , ss.Rang\r\n        FROM\r\n            teamsm AS ts\r\n            LEFT JOIN verein AS v ON (v.xVerein = ts.xVerein)\r\n            LEFT JOIN teamsmathlet AS tsa ON (tsa.xTeamsm = ts.xTeamsm)\r\n            LEFT JOIN anmeldung AS a ON (a.xAnmeldung = tsa.xAnmeldung)\r\n            LEFT JOIN athlet AS at ON (at.xAthlet = a.xAthlet)\r\n            LEFT jOIN start AS st ON (st.xAnmeldung = tsa.xAnmeldung)\r\n            LEFT JOIN serienstart AS ss ON (ss.xStart = st.xStart )\r\n            LEFT JOIN resultat AS r ON ( r.xSerienstart = ss.xSerienstart)\r\n            LEFT JOIN serie AS se ON (ss.xSerie = se.xSerie)\r\n            LEFT JOIN runde as ru ON (se.xRunde = ru.xRunde)  \r\n        WHERE\r\n            ts.xWettkampf = {$event}       \r\n            AND st.xWettkampf = {$event}  \r\n            AND ru.Datum LIKE '" . $date . "'  \r\n            {$valid_result}    \r\n        ORDER BY\r\n            ts.xTeamsm\r\n            , leistung_neu {$order_perf}\r\n    ";
     $res = mysql_query($sql);
     if (mysql_errno() > 0) {
         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
     } else {
         $team = 0;
         // current team
         $c = 0;
         // count results
         $athletes = array();
         $teams_notValid = array();
         // team array
         while ($row = mysql_fetch_array($res)) {
             $row_res[6] = $row_res[6] == 1 || $row_res[6] == 2 || $row_res[6] == 3 || $row_res[6] == 4 ? $row_res[6] * -1 : ($row_res[6] == 9 ? -99 : $row_res[6]);
             if (isset($athletes[$row[7]])) {
                 continue;
             } else {
                 $athletes[$row[7]] = 1;
             }
             if ($team != $row[0]) {
                 if ($team > 0) {
                     $countAthl = count($teams[$team]['athletes']);
                     if ($countAthl < $countRes) {
                         $teams[$team]['perf'] = 0;
                         $teams[$team]['perfTot'] = 0;
                         $teams[$team]['rankTot'] = 0;
                         $teams[$team]['perfBest'] = 0;
                         $teams[$team]['rankBest'] = 0;
                         $teams[$team]['perfNotValid'] = 0;
                         $teams_notValid[$team]['club'] = $teams[$team]['club'];
                         $teams_notValid[$team]['name'] = $teams[$team]['name'];
                         $teams_notValid[$team]['perf'] = 0;
                         $teams_notValid[$team]['athletes'] = $teams[$team]['athletes'];
                     } else {
                         $notValidPerf = false;
                         $countNotValid = 0;
                         foreach ($teams[$team]['athletes'] as $key => $val) {
                             if ($pos = strpos($val, "-1") || ($pos = strpos($val, "-2") || ($pos = strpos($val, "-3") || ($pos = strpos($val, "-4"))))) {
                                 $notValidPerf = true;
                                 $countNotValid++;
                             }
                         }
                         if (!$notValidPerf) {
                             $teams[$team]['perf'] /= $countRes;
                         } else {
                             $countValid = $countRes - $countNotValid;
                             if (isset($teams[$team]['athletes'][3])) {
                                 if ($pos = strpos($teams[$team]['athletes'][0], "-1") || ($pos = strpos($teams[$team]['athletes'][0], "-2") || ($pos = strpos($teams[$team]['athletes'][0], "-3") || ($pos = strpos($teams[$team]['athletes'][0], "-4"))))) {
                                     $tmp_at = $teams[$team]['athletes'][0];
                                     $teams[$team]['athletes'][0] = substr($teams[$team]['athletes'][3], 1, -1);
                                     list($at, $atPerf) = split('[,]', $teams[$team]['athletes'][0]);
                                     $teams[$team]['athletes'][3] = "[" . $tmp_at . "]";
                                 } elseif ($pos = strpos($teams[$team]['athletes'][1], "-1") || ($pos = strpos($teams[$team]['athletes'][1], "-2") || ($pos = strpos($teams[$team]['athletes'][1], "-3") || ($pos = strpos($teams[$team]['athletes'][1], "-4"))))) {
                                     $tmp_at = $teams[$team]['athletes'][1];
                                     $teams[$team]['athletes'][1] = substr($teams[$team]['athletes'][3], 1, -1);
                                     list($at, $atPerf) = split('[,]', $teams[$team]['athletes'][1]);
                                     $teams[$team]['athletes'][3] = "[" . $tmp_at . "]";
                                 } elseif ($pos = strpos($teams[$team]['athletes'][2], "-1") || ($pos = strpos($teams[$team]['athletes'][2], "-2") || ($pos = strpos($teams[$team]['athletes'][2], "-3") || ($pos = strpos($teams[$team]['athletes'][2], "-4"))))) {
                                     $tmp_at = $teams[$team]['athletes'][2];
                                     $teams[$team]['athletes'][2] = substr($teams[$team]['athletes'][3], 1, -1);
                                     list($at, $atPerf) = split('[,]', $teams[$team]['athletes'][2]);
                                     $teams[$team]['athletes'][3] = "[" . $tmp_at . "]";
                                 }
                                 if ($disctype == $GLOBALS['cfgDisciplineType'][$GLOBALS['strDiscTypeNone']] || $disctype == $GLOBALS['cfgDisciplineType'][$GLOBALS['strDiscTypeTrack']] || $disctype == $GLOBALS['cfgDisciplineType'][$GLOBALS['strDiscTypeTrackNoWind']] || $disctype == $GLOBALS['cfgDisciplineType'][$GLOBALS['strDiscTypeDistance']] || $disctype == $GLOBALS['cfgDisciplineType'][$GLOBALS['strDiscTypeRelay']]) {
                                     $perf = new PerformanceTime($atPerf, $secFlag);
                                     $atPerf = $perf->getPerformance();
                                 } else {
                                     if ($disctype == $GLOBALS['cfgDisciplineType'][$GLOBALS['strDiscTypeJump']] || $disctype == $GLOBALS['cfgDisciplineType'][$GLOBALS['strDiscTypeJumpNoWind']] || $disctype == $GLOBALS['cfgDisciplineType'][$GLOBALS['strDiscTypeThrow']] || $disctype == $GLOBALS['cfgDisciplineType'][$GLOBALS['strDiscTypeHigh']]) {
                                         $perf = new PerformanceAttempt($performance);
                                         $atPerf = $perf->getPerformance();
                                     }
                                 }
                                 if ($countNotValid == 2) {
                                     $teams[$team]['perf'] += $atPerf;
                                     $teams[$team]['perf'] = $teams[$team]['perf'] / $countNotValid;
                                 } elseif ($countNotValid == 1) {
                                     $teams[$team]['perf'] += $atPerf;
                                     $teams[$team]['perf'] = $teams[$team]['perf'] / $countRes;
                                     $notValidPerf = false;
                                 } elseif ($countNotValid == 3) {
                                     $teams[$team]['perf'] += $atPerf;
                                 }
                             }
                         }
                         if ($order_perf == 'ASC') {
                             if ($notValidPerf) {
                                 $teams[$team]['perfNotValid'] = $teams[$team]['perf'];
                                 $teams[$team]['perf'] = 99999999;
                             }
                         } else {
                             if ($notValidPerf) {
                                 $teams[$team]['perfNotValid'] = $teams[$team]['perf'];
                             }
                         }
                     }
                 }
                 $team = $row[0];
                 $teams[$team]['club'] = $row[2];
                 $teams[$team]['name'] = $row[1];
                 $c = 0;
             }
             $perf = 0;
             $perf_print = 0;
             $rank = 0;
             $asc = true;
             if ($disctype == $cfgDisciplineType[$strDiscTypeJump] || $disctype == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $disctype == $cfgDisciplineType[$strDiscTypeThrow] || $disctype == $cfgDisciplineType[$strDiscTypeHigh]) {
                 $perf = $row[6];
                 $asc = false;
                 if ($row[8] >= 0) {
                     $perf_print = AA_formatResultMeter($row[6]);
                 } else {
                     $perf_print = $perf * -1;
                 }
             } else {
                 $perf = ceil($row[6] / 10) * 10;
                 // round up 1000
                 $asc = true;
                 if ($disctype == $cfgDisciplineType[$strDiscTypeTrack] || $disctype == $cfgDisciplineType[$strDiscTypeTrackNoWind]) {
                     $perf_print = AA_formatResultTime($row[6], true, true);
                 } else {
                     $perf_print = AA_formatResultTime($row[6], true);
                 }
             }
             $rank = $row[9];
             if ($c < $countRes) {
                 $teams[$team]['perf'] += $perf;
                 $teams[$team]['perfTot'] += $perf;
                 $teams[$team]['rankTot'] += $rank;
                 if ($asc) {
                     if ($perf < $teams[$team]['perfBest'] || $teams[$team]['perfBest'] == 0) {
                         $teams[$team]['perfBest'] = $perf;
                         $teams[$team]['rankBest'] = $rank;
                     }
                 } else {
                     if ($perf > $teams[$team]['perfBest']) {
                         $teams[$team]['perfBest'] = $perf;
                         $teams[$team]['rankBest'] = $rank;
                     }
                 }
                 $teams[$team]['athletes'][] = "{$row['3']} {$row['4']}, {$perf_print}";
             } else {
                 $teams[$team]['athletes'][] = "[{$row['3']} {$row['4']}, {$perf_print}]";
             }
             $c++;
         }
         if ($team > 0) {
             // calc last team
             $countAthl = count($teams[$team]['athletes']);
             if ($countAthl < $countRes) {
                 $teams[$team]['perf'] = 0;
                 $teams[$team]['perfNotValid'] = 0;
                 $teams_notValid[$team]['club'] = $teams[$team]['club'];
                 $teams_notValid[$team]['name'] = $teams[$team]['name'];
                 $teams_notValid[$team]['perf'] = 0;
                 $teams_notValid[$team]['athletes'] = $teams[$team]['athletes'];
             } else {
                 $notValidPerf = false;
                 $countNotValid = 0;
                 foreach ($teams[$team]['athletes'] as $key => $val) {
                     if ($pos = strpos($val, "-1") || ($pos = strpos($val, "-2") || ($pos = strpos($val, "-3") || ($pos = strpos($val, "-4"))))) {
                         $notValidPerf = true;
                         $countNotValid++;
                     }
                 }
                 if (!$notValidPerf) {
                     $teams[$team]['perf'] /= $countRes;
                 } else {
                     $countValid = $countRes - $countNotValid;
                     if (isset($teams[$team]['athletes'][3])) {
                         if ($pos = strpos($teams[$team]['athletes'][0], "-1") || ($pos = strpos($teams[$team]['athletes'][0], "-2") || ($pos = strpos($teams[$team]['athletes'][0], "-3") || ($pos = strpos($teams[$team]['athletes'][0], "-4"))))) {
                             $tmp_at = $teams[$team]['athletes'][0];
                             $teams[$team]['athletes'][0] = substr($teams[$team]['athletes'][3], 1, -1);
                             list($at, $atPerf) = split('[,]', $teams[$team]['athletes'][0]);
                             $teams[$team]['athletes'][3] = "[" . $tmp_at . "]";
                         } elseif ($pos = strpos($teams[$team]['athletes'][1], "-1") || ($pos = strpos($teams[$team]['athletes'][1], "-2") || ($pos = strpos($teams[$team]['athletes'][1], "-3") || ($pos = strpos($teams[$team]['athletes'][1], "-4"))))) {
                             $tmp_at = $teams[$team]['athletes'][1];
                             $teams[$team]['athletes'][1] = substr($teams[$team]['athletes'][3], 1, -1);
                             list($at, $atPerf) = split('[,]', $teams[$team]['athletes'][1]);
                             $teams[$team]['athletes'][3] = "[" . $tmp_at . "]";
                         } elseif ($pos = strpos($teams[$team]['athletes'][2], "-1") || ($pos = strpos($teams[$team]['athletes'][2], "-2") || ($pos = strpos($teams[$team]['athletes'][2], "-3") || ($pos = strpos($teams[$team]['athletes'][2], "-4"))))) {
                             $tmp_at = $teams[$team]['athletes'][2];
                             $teams[$team]['athletes'][2] = substr($teams[$team]['athletes'][3], 1, -1);
                             list($at, $atPerf) = split('[,]', $teams[$team]['athletes'][2]);
                             $teams[$team]['athletes'][3] = "[" . $tmp_at . "]";
                         }
                         if ($disctype == $GLOBALS['cfgDisciplineType'][$GLOBALS['strDiscTypeNone']] || $disctype == $GLOBALS['cfgDisciplineType'][$GLOBALS['strDiscTypeTrack']] || $disctype == $GLOBALS['cfgDisciplineType'][$GLOBALS['strDiscTypeTrackNoWind']] || $disctype == $GLOBALS['cfgDisciplineType'][$GLOBALS['strDiscTypeDistance']] || $disctype == $GLOBALS['cfgDisciplineType'][$GLOBALS['strDiscTypeRelay']]) {
                             $perf = new PerformanceTime($atPerf, $secFlag);
                             $atPerf = $perf->getPerformance();
                         } else {
                             if ($disctype == $GLOBALS['cfgDisciplineType'][$GLOBALS['strDiscTypeJump']] || $disctype == $GLOBALS['cfgDisciplineType'][$GLOBALS['strDiscTypeJumpNoWind']] || $disctype == $GLOBALS['cfgDisciplineType'][$GLOBALS['strDiscTypeThrow']] || $disctype == $GLOBALS['cfgDisciplineType'][$GLOBALS['strDiscTypeHigh']]) {
                                 $perf = new PerformanceAttempt($performance);
                                 $atPerf = $perf->getPerformance();
                             }
                         }
                         if ($countNotValid == 2) {
                             $teams[$team]['perf'] += $atPerf;
                             $teams[$team]['perf'] = $teams[$team]['perf'] / $countNotValid;
                         } elseif ($countNotValid == 1) {
                             $teams[$team]['perf'] += $atPerf;
                             $teams[$team]['perf'] = $teams[$team]['perf'] / $countRes;
                             $notValidPerf = false;
                         } elseif ($countNotValid == 3) {
                             $teams[$team]['perf'] += $atPerf;
                         }
                     }
                 }
                 if ($order_perf == 'ASC') {
                     if ($notValidPerf) {
                         $teams[$team]['perfNotValid'] = $teams[$team]['perf'];
                         $teams[$team]['perf'] = 99999999;
                     }
                 } else {
                     if ($notValidPerf) {
                         $teams[$team]['perfNotValid'] = $teams[$team]['perf'];
                     }
                 }
             }
         }
         $teams_valid = array();
         foreach ($teams as $k => $arr_team) {
             if (!isset($teams_notValid[$k]['name'])) {
                 $teams_valid[$k]['name'] = $teams[$k]['name'];
                 $teams_valid[$k]['club'] = $teams[$k]['club'];
                 $teams_valid[$k]['perf'] = $teams[$k]['perf'];
                 $teams_valid[$k]['perfTot'] = $teams[$k]['perfTot'];
                 $teams_valid[$k]['rankTot'] = $teams[$k]['rankTot'];
                 $teams_valid[$k]['perfBest'] = $teams[$k]['perfBest'];
                 $teams_valid[$k]['rankBest'] = $teams[$k]['rankBest'];
                 $teams_valid[$k]['perfNotValid'] = $teams[$k]['perfNotValid'];
                 $teams_valid[$k]['athletes'] = $teams[$k]['athletes'];
             }
         }
         $teams = $teams_valid;
         //
         // print team ranking
         //
         if (count($teams) > 0) {
             $list->printSubTitle($catname, $discname, "");
             $list->startList();
             $list->printHeaderLine();
             usort($teams, "cmp_{$order_perf_sort}");
             // sort by performance
             $teams = array_merge($teams, $teams_notValid);
             $rank = 1;
             // initialize rank
             $r = 0;
             // start value for ranking
             $p = 0;
             foreach ($teams as $team) {
                 $r++;
                 if ($limitRank && ($r < $rFrom || $r > $rTo)) {
                     // limit ranks if set (export)
                     continue;
                 }
                 if ($team['perf'] > 0) {
                     $rank = $r;
                 } else {
                     $rank = '';
                 }
                 if ($team['perf'] == 99999999) {
                     $team['perf'] = $team['perfNotValid'];
                 }
                 $perf = 0;
                 if ($disctype == $cfgDisciplineType[$strDiscTypeJump] || $disctype == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $disctype == $cfgDisciplineType[$strDiscTypeThrow] || $disctype == $cfgDisciplineType[$strDiscTypeHigh]) {
                     $perf = AA_formatResultMeter($team['perf']);
                 } else {
                     if ($disctype == $cfgDisciplineType[$strDiscTypeTrack] || $disctype == $cfgDisciplineType[$strDiscTypeTrackNoWind]) {
                         $perf = AA_formatResultTime($team['perf'], true, true);
                     } else {
                         $perf = AA_formatResultTime($team['perf'], true);
                     }
                 }
                 if ($perf == 0 || !empty($team['perfNotValid'])) {
                     $rank = '';
                 }
                 $list->printLine($rank, $team['name'], $team['club'], $perf);
                 // print each athlete with result for team
                 $tmp = "";
                 foreach ($team['athletes'] as $athlete) {
                     $end = "";
                     list($name, $perfNotValid) = split(',', $athlete);
                     if (strpos($perfNotValid, "]")) {
                         $perfNotValid = substr($perfNotValid, 0, -1);
                         $end = "]";
                     }
                     if ($perfNotValid == $cfgInvalidResult['DNS']['code']) {
                         $perfNotValid = $cfgInvalidResult['DNS']['short'];
                         $athlete = $name . ', ' . $perfNotValid . $end;
                     } elseif ($perfNotValid == $cfgInvalidResult['DNF']['code']) {
                         $perfNotValid = $cfgInvalidResult['DNF']['short'];
                         $athlete = $name . ', ' . $perfNotValid . $end;
                     } elseif ($perfNotValid == $cfgInvalidResult['DSQ']['code']) {
                         $perfNotValid = $cfgInvalidResult['DSQ']['short'];
                         $athlete = $name . ', ' . $perfNotValid . $end;
                     } elseif ($perfNotValid == $cfgInvalidResult['NRS']['code']) {
                         $perfNotValid = $cfgInvalidResult['NRS']['short'];
                         $athlete = $name . ', ' . $perfNotValid . $end;
                     }
                     //$list->printInfo($athlete);
                     $tmp .= $athlete . " / ";
                 }
                 $list->printInfo(substr($tmp, 0, -2));
                 $p = $team['perf'];
                 // keep current performance
                 $keep_team = $team;
                 // keep current performance
             }
             $list->endList();
         }
     }
 }
Пример #23
0
    function AA_results_High($round, $layout, $singleRound, $content_navi, $cat, $disc, $rtyp)
    {
        require './config.inc.php';
        require './config.inc.end.php';
        require './lib/common.lib.php';
        require './lib/heats.lib.php';
        require './lib/utils.lib.php';
        $p = "./tmp";
        $fp = @fopen($p . "/live" . $round . ".html", 'w');
        if (!$fp) {
            AA_printErrorMsg($GLOBALS['strErrFileOpenFailed']);
            return;
        }
        $svm = AA_checkSVM(0, $round);
        // decide whether to show club or team name
        if ($singleRound > 0) {
            $single_svm = AA_checkSVM(0, $singleRound);
            // decide whether to show club or team name
        }
        $mergedMain = AA_checkMainRound($round);
        if ($mergedMain == 1) {
            $round = AA_getMainRound($round);
        }
        // get url
        $url = '';
        $result = mysql_query("\r\n            SELECT\r\n                url\r\n            FROM\r\n                athletica_liveResultate.config");
        if (mysql_errno() > 0) {
            AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
        } else {
            $row = mysql_fetch_row($result);
            $url = $row[0];
        }
        // read round data
        if ($round > 0) {
            $status = AA_getRoundStatus($round);
            $content = $cfgHtmlStart1;
            if (empty($GLOBALS['cfgDir'])) {
                $content .= "<meta http-equiv='refresh' content='" . $GLOBALS['cfgMonitorReload'] . "; url=http://" . $url . "/live" . $round . ".html'>";
            } else {
                $content .= "<meta http-equiv='refresh' content='" . $GLOBALS['cfgMonitorReload'] . "; url=http://" . $url . "/" . $GLOBALS['cfgDir'] . "/live" . $round . ".html'>";
            }
            $content .= $cfgHtmlStart2;
            $content .= $content_navi;
            $content .= "</div ><div id='content_pc'><div id='content_pda'>";
            $content .= "<h1>{$strStartlist} " . $_COOKIE['meeting'] . "</h1>";
            // title
            if (!empty($rtyp)) {
                $content .= "<h2>{$cat} {$disc}, {$rtyp}</h2>";
            } else {
                $content .= "<h2>{$cat} {$disc}</h2>";
            }
            $content .= "<table class='dialog'>";
            // display all athletes
            $result = mysql_query("\r\n\t\t\tSELECT rt.Name\r\n\t\t\t\t, rt.Typ\r\n\t\t\t\t, s.xSerie\r\n\t\t\t\t, s.Bezeichnung\r\n\t\t\t\t, ss.xSerienstart\r\n\t\t\t\t, ss.Position\r\n\t\t\t\t, ss.Rang\r\n\t\t\t\t, a.Startnummer\r\n\t\t\t\t, at.Name\r\n\t\t\t\t, at.Vorname\r\n\t\t\t\t, at.Jahrgang\r\n\t\t\t\t, if('" . $svm . "', t.Name, IF(a.Vereinsinfo = '', v.Name, a.Vereinsinfo))   \r\n\t\t\t\t, LPAD(s.Bezeichnung,5,'0') as heatid\r\n\t\t\t\t, rs.xResultat\r\n\t\t\t\t, rs.Leistung\r\n\t\t\t\t, rs.Info\r\n\t\t\t\t, at.Land\r\n                , ss.Bemerkung\r\n                , at.xAthlet\r\n                , r.xRunde \r\n                , ss.RundeZusammen  \r\n\t\t\tFROM\r\n\t\t\t\tathletica.runde AS r\r\n\t\t\t\tLEFT JOIN athletica.serie AS s ON (s.xRunde = r.xRunde )\r\n\t\t\t\tLEFT JOIN athletica.serienstart AS ss ON (ss.xSerie = s.xSerie)\r\n\t\t\t\tLEFT JOIN athletica.start AS st ON (st.xStart = ss.xStart)\r\n\t\t\t\tLEFT JOIN athletica.anmeldung AS a ON (a.xAnmeldung = st.xAnmeldung)\r\n\t\t\t\tLEFT JOIN athletica.athlet AS at ON (at.xAthlet = a.xAthlet)\r\n\t\t\t\tLEFT JOIN athletica.verein AS v ON (v.xVerein = at.xVerein)\r\n            LEFT JOIN athletica.team AS t ON(a.xTeam = t.xTeam) \r\n\t\t\tLEFT JOIN athletica.rundentyp_" . $_COOKIE['language'] . " AS rt\r\n\t\t\t\tON rt.xRundentyp = r.xRundentyp\r\n\t\t\tLEFT JOIN athletica.resultat AS rs\r\n\t\t\t\tON rs.xSerienstart = ss.xSerienstart\r\n\t\t\tWHERE r.xRunde = {$round}  \r\n\t\t\tORDER BY\r\n\t\t\t\theatid\r\n\t\t\t\t, ss.Position\r\n\t\t\t\t, rs.xResultat DESC\r\n\t\t");
            if (mysql_errno() > 0) {
                // DB error
                AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
            } else {
                // initialize variables
                $a = 0;
                $h = 0;
                $c_results = 0;
                $rowclass = 'odd';
                while ($row = mysql_fetch_row($result)) {
                    if ($row[20] > 0) {
                        $singleRound = $row[20];
                    } else {
                        $singleRound = $row[19];
                    }
                    /*
                     *  Heat headerline
                     */
                    if ($h != $row[2]) {
                        $h = $row[2];
                        // keep heat ID
                        if (is_null($row[0])) {
                            // only one round
                            $title = "{$strFinalround}";
                        } else {
                            // more than one round
                            if ($row[1] == '0') {
                                $title = "";
                            } else {
                                $title = "{$row['0']}";
                            }
                        }
                        $content .= "</table><table class='dialog'>";
                        if ($title != '') {
                            $content .= "<tr>";
                            $content .= "<th class='dialog' colspan='6' />" . $title . " " . $row[3] . "</th> ";
                            $content .= "</tr>";
                        }
                        $content .= "<tr>";
                        $content .= "<th class='dialog'>" . $strPositionShort . "</th>";
                        $content .= "<th class='dialog'>" . $strStartnumber . "</th>";
                        $content .= "<th class='dialog'>" . $strAthlete . "</th>";
                        $content .= "<th class='dialog_pc'>" . $strYearShort . "</th>";
                        $content .= "<th class='dialog_pc'>" . $strCountry . "</th>";
                        $content .= "<th class='dialog_pc'>";
                        if ($svm) {
                            $content .= $strTeam;
                        } else {
                            $content .= $strClub;
                        }
                        $content .= "</th>";
                        $content .= "<th class='dialog'>" . $strPerformance . "</th>";
                        $content .= "</tr>";
                    }
                    // ET new heat
                    /*
                     * Athlete data lines
                     */
                    if ($a != $row[4]) {
                        $c_results = 0;
                        $a = $row[4];
                        // keep athlete ID
                        $l = 0;
                        // reset result counter
                        if ($row[5] % 2 == 0) {
                            // even row numer
                            $rowclass = 'even';
                        } else {
                            // odd row number
                            $rowclass = 'odd';
                        }
                        $content .= "<tr class='" . $rowclass . "' >";
                        $content .= "<td class='forms_right'>" . $row[5] . "</td>";
                        $content .= "<td class='forms_right'>" . $row[7] . "</td>";
                        /* start nbr */
                        $content .= "<td nowrap>" . $row[8] . " " . $row[9] . "</td>";
                        /* name */
                        $content .= "<td class='forms_ctr_pc'>" . AA_formatYearOfBirth($row[10]) . "</td>";
                        $content .= "<td class='forms_pc'>";
                        if ($row[16] != '' && $row[16] != '-') {
                            $content .= $row[16];
                        } else {
                            $content .= " ";
                        }
                        $content .= "</td>";
                        $content .= "<td class='forms_pc' nowrap>" . $row[11] . "</td>";
                        /* club */
                    }
                    // ET new athlete
                    $perf = '';
                    if (is_null($row[14]) == false) {
                        $c_results++;
                        if ($c_results > 4) {
                            $content .= "<tr><td colspan='6'></td>";
                            $c_results = 0;
                        }
                        $perf = $row[14];
                        if ($perf == $cfgMissedAttempt['dbx']) {
                            $perf = $cfgMissedAttempt['codeX'];
                        }
                        $content .= "<td colspan='2' nowrap>" . AA_formatResultMeter($perf) . "({$row['15']})</td>";
                    }
                }
                mysql_free_result($result);
                $content .= "</table>";
                $content .= $cfgHtmlFooter;
                $content .= "</div ></div>";
                $content .= $cfgHtmlEnd;
                if (!fwrite($fp, $content)) {
                    AA_printErrorMsg($GLOBALS['strErrFileWriteFailed']);
                    return;
                }
                fclose($fp);
            }
            // ET DB error
        }
        // ET round selected
        AA_UpdateStatusChanged($round);
        ?>
    

</body>
</html>

<?php 
    }
Пример #24
0
 function AA_regie_Tech($event, $round, $layout, $cat, $disc)
 {
     require './lib/cl_gui_resulttable.lib.php';
     require './config.inc.php';
     require './lib/common.lib.php';
     require './lib/results.lib.php';
     require './lib/cl_gui_page.lib.php';
     require './lib/cl_gui_menulist.lib.php';
     $status = AA_getRoundStatus($round);
     $eval = AA_results_getEvaluationType($round);
     $combined = AA_checkCombined(0, $round);
     $prog_mode = AA_results_getProgramMode();
     // if this is a combined event, rank all rounds togheter
     $roundSQL = "";
     $roundSQL2 = "";
     if ($combined) {
         $roundSQL = "AND s.xRunde IN (";
         $roundSQL2 = "AND s.xRunde IN (";
         $res_c = mysql_query("SELECT xRunde FROM runde WHERE xWettkampf = " . $event);
         while ($row_c = mysql_fetch_array($res_c)) {
             $roundSQL .= $row_c[0] . ",";
             $roundSQL2 .= $row_c[0] . ",";
         }
         $roundSQL = substr($roundSQL, 0, -1) . ")";
         $roundSQL2 = substr($roundSQL2, 0, -1) . ")";
     } else {
         $roundSQL = "AND s.xRunde = {$round}";
         $roundSQL2 = "AND s.xRunde = {$round}";
     }
     $result = mysql_query("SELECT COUNT(*), ru.Versuche" . " FROM resultat AS r" . ", serienstart AS ss" . ", serie AS s" . ", runde AS ru" . " WHERE r.xSerienstart = ss.xSerienstart" . " AND ss.xSerie = s.xSerie" . " AND s.xRunde = ru.xRunde" . " {$roundSQL2} " . " GROUP BY r.xSerienstart" . " ORDER BY 1 DESC");
     $row = mysql_fetch_row($result);
     $r = $row[0];
     // max. attempts
     mysql_query("\r\n                LOCK TABLES\r\n                    resultat READ\r\n                    , serie READ\r\n                    , start READ \r\n                    , resultat as r READ\r\n                    , serie as s READ\r\n                    , start as st READ \r\n                    , serienstart as ss READ   \r\n                    , wettkampf as w READ\r\n                    , serienstart READ\r\n                    , anmeldung as a READ \r\n                    , athlet as at READ \r\n                    , verein as v READ \r\n                    , rundentyp as rt READ   \r\n                    , tempTech WRITE\r\n                    , tempTech as t READ  \r\n            ");
     mysql_query("DROP TABLE IF EXISTS `tempTech`");
     // temporary table
     // Set up a temporary table to hold all results for ranking.
     // The number of result columns varies according to the maximum
     // number of results per athlete.
     $qry = "\r\n                CREATE TEMPORARY TABLE IF NOT EXISTS tempTech (\r\n                    xSerienstart int(11)\r\n                    , xSerie int(11)\r\n                    , rang int(11)\r\n                     , position int(11)";
     for ($i = 1; $i <= $r; $i++) {
         $qry = $qry . ", Res" . $i . " int(9) default '0'";
         $qry = $qry . ", Wind" . $i . " char(5) default '0'";
     }
     $qry = $qry . ") TYPE=HEAP";
     mysql_query($qry);
     // create temporary table
     if (mysql_errno() > 0) {
         // DB error
         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
     } else {
         $result = mysql_query("\r\n                    SELECT\r\n                        r.Leistung\r\n                        , r.Info\r\n                        , ss.xSerienstart\r\n                        , ss.xSerie\r\n                        , ss.Position\r\n                    FROM\r\n                        resultat AS r\r\n                        LEFT JOIN serienstart AS ss ON (r.xSerienstart = ss.xSerienstart)\r\n                        LEFT JOIN serie AS s On (ss.xSerie = s.xSerie)\r\n                    WHERE    \r\n                        r.Leistung >= 0\r\n                        {$roundSQL} \r\n                    ORDER BY                             \r\n                        ss.xSerienstart\r\n                        ,r.Leistung DESC\r\n                ");
         if (mysql_errno() > 0) {
             // DB error
             AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
         } else {
             // initialize variables
             $ss = 0;
             $i = 0;
             // process every result
             while ($row = mysql_fetch_row($result)) {
                 if ($ss != $row[2]) {
                     // add one row per athlete to temp table
                     if ($ss != 0) {
                         for (; $i < $r; $i++) {
                             // fill remaining result cols.
                             $qry = $qry . ",0,''";
                         }
                         mysql_query($qry . ")");
                         if (mysql_errno() > 0) {
                             // DB error
                             AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                         }
                     }
                     // (re)set SQL statement
                     $qry = "INSERT INTO tempTech VALUES({$row['2']},{$row['3']}, 0, {$row['4']}";
                     $i = 0;
                 }
                 $qry = $qry . ",{$row['0']},'{$row['1']}'";
                 // add current result to query
                 $ss = $row[2];
                 // keep athlete's ID
                 $i++;
                 // count nbr of results
             }
             mysql_free_result($result);
             // insert last pending data in temp table
             if ($ss != 0) {
                 for (; $i < $r; $i++) {
                     // fill remaining result cols.
                     $qry = $qry . ",0,''";
                 }
                 mysql_query($qry . ")");
                 if (mysql_errno() > 0) {
                     // DB error
                     AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                 }
             }
         }
         if ($eval == $cfgEvalType[$strEvalTypeHeat]) {
             // eval per heat
             $qry = "\r\n                        SELECT\r\n                            *\r\n                        FROM\r\n                            tempTech\r\n                        ORDER BY\r\n                            xSerie";
             for ($i = 1; $i <= $r; $i++) {
                 $qry = $qry . ", Res" . $i . " DESC";
             }
         } else {
             // default: rank results from all heats together
             $qry = "\r\n                        SELECT\r\n                            *\r\n                        FROM\r\n                            tempTech\r\n                        ORDER BY ";
             $comma = "";
             // order by available result columns
             for ($i = 1; $i <= $r; $i++) {
                 $qry = $qry . $comma . "Res" . $i . " DESC";
                 $comma = ", ";
             }
         }
         $result = mysql_query($qry);
         if (mysql_errno() > 0) {
             // DB error
             AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
         } else {
             // initialize variables
             $heat = 0;
             $perf_old[] = '';
             $j = 0;
             $rank = 0;
             // set rank for every athlete
             while ($row = mysql_fetch_row($result)) {
                 for ($i = 0; $i <= $r; $i++) {
                     $perf[$i] = $row[2 * $i + 3];
                     $wind[$i] = $row[2 * $i + 4];
                 }
                 if ($eval == $cfgEvalType[$strEvalTypeHeat] && $heat != $row[1]) {
                     $j = 0;
                     // restart ranking
                     $perf_old[] = '';
                 }
                 $j++;
                 // increment ranking
                 if ($perf_old != $perf) {
                     // compare performances
                     $rank = $j;
                     // next rank (only if not same performance)
                 }
                 mysql_query("\r\n                            UPDATE tempTech SET\r\n                                rang = {$rank}\r\n                            WHERE xSerienstart = {$row['0']}\r\n                        ");
                 if (mysql_errno() > 0) {
                     AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                 }
                 $heat = $row[1];
                 // keep current heat ID
                 $perf_old = $perf;
             }
             mysql_free_result($result);
         }
     }
     // find current athlete (show yellow) when more than one attempt
     $roundSQL_C = substr($roundSQL, 4);
     $sql_curr = "SELECT \r\n                    count( * ) , \r\n                    ss.xSerienstart,\r\n                    if (ss.Position2 > 0, if (ss.Position3 > 0, ss.Position3, ss.Position2) , ss.Position ) as posOrder,\r\n                    s.MaxAthlet,\r\n                    ss.Position2,\r\n                    ss.Position3\r\n              FROM \r\n                    resultat as r \r\n                    LEFT JOIN serienstart AS ss ON ( r.xSerienstart = ss.xSerienstart)\r\n                    LEFT JOIN serie AS s ON (ss.xSerie = s.xSerie )\r\n              WHERE                     \r\n                    {$roundSQL_C}  \r\n              GROUP BY ss.xSerienstart\r\n              ORDER BY posOrder ";
     $res_curr = mysql_query($sql_curr);
     if (mysql_errno() > 0) {
         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
     } else {
         $ss = 0;
         $keep_ss = 0;
         // current athlete to show yellow
         $keep_ss_first = 0;
         // first athlete is current when all have same count of attempts
         $c = 0;
         $z = 0;
         $maxAthlete = 0;
         while ($row_curr = mysql_fetch_row($res_curr)) {
             if ($z > 0 && $z == $maxAthlete) {
                 break;
             }
             if ($c > 0) {
                 if ($row_curr[0] < $c) {
                     $keep_ss = $row_curr[1];
                     break;
                 }
             }
             $c = $row_curr[0];
             $ss = $row_curr[1];
             if ($z == 0) {
                 $keep_ss_first = $row_curr[1];
                 if ($row_curr[4] > 0 || $row_curr[5] > 0) {
                     $maxAthlete = $row_curr[3];
                 }
             }
             $z++;
         }
     }
     $arg = isset($_GET['arg1']) ? $_GET['arg1'] : (isset($_COOKIE['sort_speakres']) ? $_COOKIE['sort_speakres'] : 'pos');
     setcookie('sort_speakres', $arg1, time() + 2419200);
     // display all athletes
     if ($arg == "nbr" && !$relay) {
         $argument = "a.Startnummer";
         $img_nbr = "img/sort_act.gif";
     } else {
         if ($arg == "pos") {
             $argument = "ss.Position";
             $img_pos = "img/sort_act.gif";
         } else {
             if ($arg == "name") {
                 $argument = "at.Name, at.Vorname";
                 $img_name = "img/sort_act.gif";
             } else {
                 if ($arg == "club") {
                     $argument = "v.Name, a.Startnummer";
                     $img_club = "img/sort_act.gif";
                 } else {
                     if ($arg == "perf") {
                         $argument = "st.Bestleistung, ss.Position";
                         $img_perf = "img/sort_act.gif";
                     } else {
                         if ($arg == "rang") {
                             $argument = "orderRang, ss.Position";
                             $img_rang = "img/sort_act.gif";
                         } else {
                             if ($relay == FALSE) {
                                 // single event
                                 $argument = "ss.Position";
                                 $img_pos = "img/sort_act.gif";
                             }
                         }
                     }
                 }
             }
         }
     }
     $result = mysql_query("\r\n\t\t\tSELECT\r\n\t\t\t\trt.Name\r\n\t\t\t\t, rt.Typ\r\n\t\t\t\t, s.xSerie\r\n\t\t\t\t, s.Bezeichnung\r\n\t\t\t\t, s.Wind\r\n\t\t\t\t, s.Status\r\n\t\t\t\t, ss.xSerienstart\r\n\t\t\t\t, ss.Position\r\n\t\t\t\t, ss.Rang\r\n\t\t\t\t, a.Startnummer\r\n\t\t\t\t, at.Name\r\n\t\t\t\t, at.Vorname\r\n\t\t\t\t, at.Jahrgang\r\n\t\t\t\t, v.Name\r\n\t\t\t\t, LPAD(s.Bezeichnung,5,'0') as heatid\r\n\t\t\t\t, w.Windmessung\r\n\t\t\t\t, st.Bestleistung\r\n\t\t\t\t, at.xAthlet\r\n\t\t\t\t, at.Land\r\n\t\t\t\t, t.rang\r\n                , if (t.rang > 0,  t.rang, 999999) as orderRang\r\n\t\t\tFROM\r\n            runde AS r\r\n                LEFT JOIN serie AS s ON (s.xRunde = r.xRunde)\r\n                LEFT JOIN serienstart AS ss ON (ss.xSerie = s.xSerie) \r\n                LEFT JOIN start AS st ON (st.xStart = ss.xStart) \r\n                LEFT JOIN anmeldung AS a ON (a.xAnmeldung = st.xAnmeldung) \r\n                LEFT JOIN athlet AS at ON (at.xAthlet = a.xAthlet) \r\n                LEFT JOIN verein AS v ON (v.xVerein = at.xVerein) \r\n                LEFT JOIN wettkampf AS w ON (w.xWettkampf = r.xWettkampf)  \r\n\t\t\t\tLEFT JOIN tempTech AS t ON (t.xSerienstart = ss.xSerienstart)\r\n\t\t\t    LEFT JOIN rundentyp AS rt ON rt.xRundentyp = r.xRundentyp\r\n\t\t\tWHERE r.xRunde = {$round}     \r\n\t\t\tORDER BY s.xSerie, \r\n\t\t\t\t" . $argument . "\r\n\t\t");
     if (mysql_errno() > 0) {
         // DB error
         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
     } else {
         // initialize variables
         $h = 0;
         $i = 0;
         $r = 0;
         $current_athlete = false;
         $curr_class = '';
         $resTable = new GUI_TechResultTable($round, $layout, $status);
         $resTable->printHeatTitleRegie($cat, $disc);
         if ($maxAthlete > 0) {
             $c_athl = $maxAthlete;
             // maximum of athletes for next attempts
         } else {
             $c_athl = mysql_num_rows($result);
             // number of all athletes
         }
         if ($z == $c_athl && $keep_ss == 0) {
             // all athletes same count of attempts then show first as current athlete
             $keep_ss = $keep_ss_first;
         }
         while ($row = mysql_fetch_row($result)) {
             /*
              *  Heat headerline
              */
             if ($h != $row[2]) {
                 $current_athlete = false;
                 $h = $row[2];
                 // keep heat ID
                 if (is_null($row[0])) {
                     // only one round
                     $title = "{$strFinalround} {$row['3']}";
                 } else {
                     // more than one round
                     $title = "{$row['0']}: {$row['1']}{$row['3']}";
                 }
                 $c = 0;
                 $c++;
                 // increment colspan to include ranking
                 $resTable->printHeatTitle($row[2], $row[3], $title, $row[5], 'regie');
                 $resTable->printAthleteHeader('regie', $round);
             }
             // ET new heat
             /*
              * Athlete data lines
              */
             $perfs = array();
             $fett = array();
             $sql = "SELECT\r\n\t\t\t\t\t\t    r.Leistung\r\n\t\t\t\t\t\t    , r.Info\r\n                            , r.xSerienstart\r\n\t\t\t\t        FROM\r\n\t\t\t\t\t\t    resultat AS r\r\n\t\t\t\t\t    WHERE \r\n                            r.xSerienstart = {$row['6']}\r\n\t\t\t\t\t    ORDER BY\r\n\t\t\t\t\t        r.xResultat";
             $res = mysql_query($sql);
             if (mysql_errno() > 0) {
                 // DB error
                 AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
             } else {
                 while ($resrow = mysql_fetch_row($res)) {
                     $sql2 = "SELECT\r\n\t\t\t\t\t\t                max(r.Leistung)\r\n\t\t\t\t\t\t         FROM\r\n\t\t\t\t\t\t                resultat AS r \r\n\t\t\t\t\t\t         WHERE \r\n                                        r.xSerienstart = {$row['6']}";
                     $res2 = mysql_query($sql2);
                     $row2 = mysql_fetch_row($res2);
                     if ($row2[0] == $resrow[0]) {
                         $fett[] = 1;
                     } else {
                         $fett[] = 0;
                     }
                     $perf = AA_formatResultMeter($resrow[0]);
                     if ($row[15] == 1) {
                         // with wind
                         $info = $resrow[1];
                         $perfs[] = "{$perf} ( {$info} )";
                     } else {
                         $perfs[] = "{$perf}";
                     }
                 }
                 // end loop every tech result acc. programm mode
                 mysql_free_result($res);
             }
             //print_r($perfs);
             if ($row[19] == 0) {
                 $row[19] = '';
             }
             if ($prog_mode == 2) {
                 if ($keep_ss > 0) {
                     if ($keep_ss == $row[6]) {
                         $curr_class = "active";
                     }
                 } else {
                     if (empty($perfs) && !$current_athlete) {
                         $current_athlete = true;
                         $curr_class = "active";
                     }
                 }
             }
             $resTable->printAthleteLine($row[7], $row[9], "{$row['10']} {$row['11']}", '', '', AA_formatResultMeter($row[16]), $perfs, $fett, $row[19], '', $row[17], $curr_class, 'regie');
             $curr_class = "";
         }
         $resTable->endTable();
         mysql_free_result($result);
     }
     // ET DB error
     mysql_query("UNLOCK TABLES");
     $temp = mysql_query("DROP TABLE IF EXISTS `tempTech` ");
 }
            ?>
			<tr>
				<td class='dialog'><?php 
            echo $curr[4];
            ?>
</td>
				<td class='dialog'><?php 
            echo $curr[1] . " " . $curr[2];
            ?>
</td>
				<td class='dialog'><?php 
            echo AA_formatResultMeter($curr['pole']);
            ?>
</td>
				<td class='dialog'><?php 
            echo AA_formatResultMeter($curr['high']);
            ?>
</td>
				<!--<td class='dialog'><?php 
            echo $curr[8];
            ?>
</td>-->
				<td class='forms'><input type="text" size="1" maxlength="2" name="groups[<?php 
            echo $curr[0];
            ?>
]" value="<?php 
            echo $curr[3];
            ?>
"></td>
			</tr>
			<?php 
Пример #26
0
 function AA_rankinglist_Single($category, $event, $round, $formaction, $break, $cover, $biglist = false, $cover_timing = false, $date = '%', $show_efforts = 'none', $heatSeparate, $catFrom, $catTo, $discFrom, $discTo, $heatFrom, $heatTo, $athleteCat, $withStartnr, $ranklistAll, $ukc)
 {
     // anstead of remove the function "rankinglist ubs kids cup"", set $ukc for the moment false  --> later remove it perhaps
     // "rankinglist ubs kids cup" is solved in rankinglist_combined.lib.php
     $ukc = false;
     require './lib/cl_gui_page.lib.php';
     require './lib/cl_print_page.lib.php';
     require './lib/cl_export_page.lib.php';
     require './lib/common.lib.php';
     require './lib/results.lib.php';
     require './lib/utils.lib.php';
     if (AA_connectToDB() == FALSE) {
         // invalid DB connection
         return;
         // abort
     }
     if (AA_checkMeetingID() == FALSE) {
         // no meeting selected
         return;
         // abort
     }
     // check teamsm
     $teamsm = AA_checkTeamsm(0, 0);
     // set up ranking list selection
     $selection = '';
     $eventMerged = false;
     $catMerged = false;
     $flagSubtitle = false;
     $flagInfoLine1 = false;
     $flagInfoLine2 = false;
     $results_ukc = FALSE;
     $selectionHeats = '';
     $orderAthleteCat = '';
     $saison = $_SESSION['meeting_infos']['Saison'];
     if ($saison == '') {
         $saison = "O";
         //if no saison is set take outdoor
     }
     if ($round > 0) {
         // show a specific round
         $eventMerged = false;
         $sqlEvents = AA_getMergedEventsFromEvent($event);
         if ($sqlEvents != '') {
             $selection = "w.xWettkampf IN " . $sqlEvents . " AND ";
             $eventMerged = true;
         } else {
             $selection = "r.xRunde =" . $round . " AND ";
         }
     } elseif ($category == 0) {
         // show all disciplines for every category
         $catMerged = true;
     } elseif ($event == 0) {
         // show all disciplines for a specific category
         $catMerged = false;
         $mergedCat = AA_mergedCat($category);
         if ($mergedCat != '') {
             $selection = "w.xKategorie IN " . $mergedCat . " AND ";
             $catMerged = true;
         } else {
             $selection = "w.xKategorie =" . $category . " AND ";
         }
     } else {
         if ($round == 0) {
             // show all rounds for a specific event
             $eventMerged = false;
             $sqlEvents = AA_getMergedEventsFromEvent($event);
             if ($sqlEvents != '') {
                 $selection = "w.xWettkampf IN " . $sqlEvents . " AND ";
                 $eventMerged = true;
             } else {
                 $selection = "w.xWettkampf =" . $event . " AND ";
             }
         }
     }
     if ($catFrom > 0) {
         //
         $getSortCat = AA_getSortCat($catFrom, $catTo);
         if ($getSortCat[0]) {
             if ($catTo > 0) {
                 $selection = "k.Anzeige >=" . $getSortCat[$catFrom] . " AND k.Anzeige <=" . $getSortCat[$catTo] . " AND ";
             } else {
                 $selection = "k.Anzeige =" . $getSortCat[$catFrom] . " AND ";
             }
         }
     }
     if ($discFrom > 0) {
         //
         $getSortDisc = AA_getSortDisc($discFrom, $discTo);
         if ($getSortDisc[0]) {
             if ($discTo > 0) {
                 $selection .= "d.Anzeige >=" . $getSortDisc[$discFrom] . " AND d.Anzeige <=" . $getSortDisc[$discTo] . " AND ";
             } else {
                 $selection .= "d.Anzeige =" . $getSortDisc[$discFrom] . " AND ";
             }
         }
     }
     if ($heatFrom > 0) {
         $selectionHeats = ' AND s.xSerie >= ' . $heatFrom . ' AND s.xSerie <= ' . $heatTo . ' ';
     }
     if ($athleteCat) {
         $orderAthleteCat = ' k1.Anzeige, ';
     }
     if ($catMerged & !$heatSeparate || $eventMerged & !$heatSeparate) {
         // get event rounds from DB
         if ($ukc) {
             $selection = " (d.Code = " . $cfgUKC_disc[0] . " || d.Code = " . $cfgUKC_disc[1] . " || d.Code = " . $cfgUKC_disc[2] . ") AND ";
         }
         if ($teamsm) {
             $sql = "SELECT \r\n                    group_concat(r.xRunde)\r\n                    , k.Name\r\n                    , d.Name\r\n                    , d.Typ\r\n                    , w.xWettkampf\r\n                    , r.QualifikationSieger\r\n                    , r.QualifikationLeistung\r\n                    , w.Punkteformel\r\n                    , w.Windmessung\r\n                    , r.Speakerstatus\r\n                    , d.Staffellaeufer\r\n                    , CONCAT(DATE_FORMAT(r.Datum,'{$cfgDBdateFormat}'), ' ', TIME_FORMAT(r.Startzeit, '{$cfgDBtimeFormat}'))     \r\n                    , w.xDisziplin  \r\n                    , w.info         \r\n                FROM\r\n                    wettkampf AS w\r\n                    LEFT JOIN kategorie AS k ON (k.xKategorie = w.xKategorie)\r\n                      LEFT JOIN disziplin_" . $_COOKIE['language'] . " as d ON (d.xDisziplin = w.xDisziplin) \r\n                      LEFT JOIN runde AS r ON (r.xWettkampf = w.xWettkampf) \r\n                WHERE " . $selection . "\r\n                w.xMeeting = " . $_COOKIE['meeting_id'] . "     \r\n                AND r.Status = " . $cfgRoundStatus['results_done'] . " \r\n                AND r.Datum LIKE '" . $date . "'\r\n                GROUP BY w.xWettkampf\r\n                ORDER BY\r\n                    k.Anzeige\r\n                    , d.Anzeige\r\n                    , r.Datum\r\n                    , r.Startzeit";
             $results = mysql_query($sql);
         } else {
             $sql = "SELECT \r\n                r.xRunde\r\n                , k.Name\r\n                , d.Name\r\n                , d.Typ\r\n                , w.xWettkampf\r\n                , r.QualifikationSieger\r\n                , r.QualifikationLeistung\r\n                , w.Punkteformel\r\n                , w.Windmessung\r\n                , r.Speakerstatus\r\n                , d.Staffellaeufer\r\n                , CONCAT(DATE_FORMAT(r.Datum,'{$cfgDBdateFormat}'), ' ', TIME_FORMAT(r.Startzeit, '{$cfgDBtimeFormat}'))\r\n                , w.xDisziplin  \r\n                , w.info          \r\n            FROM\r\n                wettkampf AS w\r\n                LEFT JOIN kategorie AS k ON (k.xKategorie = w.xKategorie)\r\n                  LEFT JOIN disziplin_" . $_COOKIE['language'] . " as d ON (d.xDisziplin = w.xDisziplin) \r\n                  LEFT JOIN runde AS r ON (r.xWettkampf = w.xWettkampf) \r\n            WHERE " . $selection . "\r\n            w.xMeeting = " . $_COOKIE['meeting_id'] . "     \r\n            AND r.Status = " . $cfgRoundStatus['results_done'] . " \r\n            AND r.Datum LIKE '" . $date . "'\r\n            ORDER BY\r\n                k.Anzeige\r\n                , d.Anzeige\r\n                , r.Datum\r\n                , r.Startzeit";
             $results = mysql_query($sql);
         }
     } else {
         // heats separate
         $sql = "SELECT DISTINCT \r\n                r.xRunde , \r\n                k.Name , \r\n                d.Name , \r\n                d.Typ , \r\n                w.xWettkampf , \r\n                r.QualifikationSieger , \r\n                r.QualifikationLeistung , \r\n                w.Punkteformel , \r\n                w.Windmessung , \r\n                r.Speakerstatus , \r\n                d.Staffellaeufer , \r\n                CONCAT(DATE_FORMAT(r.Datum,'%d.%m.%y'), \r\n                ' ', \r\n                TIME_FORMAT(r.Startzeit, '%H:%i')) ,\r\n                w.xDisziplin ,  \r\n                rs.Hauptrunde,\r\n                w.info     \r\n            FROM \r\n                wettkampf AS w \r\n                LEFT JOIN kategorie AS k ON (k.xKategorie = w.xKategorie) \r\n                LEFT JOIN disziplin_" . $_COOKIE['language'] . " as d ON (d.xDisziplin = w.xDisziplin) \r\n                LEFT JOIN runde AS r ON (r.xWettkampf = w.xWettkampf) \r\n                LEFT JOIN rundenset as rs ON (r.xRunde=rs.xRunde )           \r\n            WHERE \r\n                " . $selection . "  \r\n                w.xMeeting  = " . $_COOKIE['meeting_id'] . " \r\n                AND r.Status = 4  \r\n                AND r.Datum LIKE '%' \r\n            ORDER BY\r\n                k.Anzeige\r\n                , d.Anzeige\r\n                , r.Datum\r\n                , r.Startzeit";
         $results = mysql_query($sql);
     }
     if (mysql_errno() > 0) {
         // DB error
         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
     } else {
         $limitRankSQL = "";
         $limitRank = false;
         if ($_GET['limitRank'] == "yes") {
             // check if ranks are limited, but limitRankSQL will set only if export is pressed
             if (!empty($_GET['limitRankFrom']) && !empty($_GET['limitRankTo'])) {
                 $limitRank = true;
             }
         }
         // start a new HTML display page
         if ($formaction == 'view' || $formaction == 'speaker') {
             // display page
             $list = new GUI_RankingList($_COOKIE['meeting']);
             $list->printPageTitle("{$strRankingLists} " . $_COOKIE['meeting']);
         } elseif ($formaction == "print") {
             $list = new PRINT_RankingList($_COOKIE['meeting']);
             if ($cover == true) {
                 // print cover page
                 $list->printCover($GLOBALS['strResults'], $cover_timing);
             }
         } elseif ($formaction == "exportpress") {
             $list = new EXPORT_RankingListPress($_COOKIE['meeting'], 'txt');
             if ($limitRank) {
                 $limitRankSQL = " AND ss.Rang <= " . $_GET['limitRankTo'] . " AND ss.Rang >= " . $_GET['limitRankFrom'] . " ";
             }
         } elseif ($formaction == "exportdiplom") {
             $list = new EXPORT_RankingListDiplom($_COOKIE['meeting'], 'csv');
             if ($limitRank) {
                 $limitRankSQL = " AND ss.Rang <= " . $_GET['limitRankTo'] . " AND ss.Rang >= " . $_GET['limitRankFrom'] . " ";
             }
         }
         // initialize variables
         $cat = '';
         $evnt = 0;
         if (mysql_num_rows($results) == 0) {
             echo "<br><br><b><blockquote>{$strErrNoResults}</blockquote></b>";
         }
         $rounds = array();
         $catUkc = "";
         $roundsUkc = array();
         $discUkc = "";
         $roundsInfo = array();
         $mergedRounds = '';
         while ($row = mysql_fetch_row($results)) {
             if (!$teamsm) {
                 $mergedRounds = AA_getMergedRounds($row[0]);
             }
             if (!empty($mergedRounds)) {
                 if ($pos = strpos($mergedRounds, $row[0])) {
                     $rounds[$i] = $row[0];
                     if ($heatSeparate) {
                         if (!empty($row[14])) {
                             $roundsInfo[$row[0]] .= $row[14] . " / ";
                         }
                     } else {
                         if (!empty($row[13])) {
                             $roundsInfo[$row[0]] .= $row[13] . " / ";
                         }
                     }
                 } else {
                     if (!empty($row[13])) {
                         $roundsInfo[$row[0]] .= $row[13] . " / ";
                     }
                 }
             }
             if ($row[2] != $discUkc) {
                 $roundsUkc[$row[1]][] = $row[0];
             }
             $discUkc = $row[2];
         }
         $results = mysql_query($sql);
         if (mysql_errno() > 0) {
             AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
         }
         while ($row = mysql_fetch_row($results)) {
             // for a combined event, the rounds are merged, so jump until the next event
             if ($cRounds > 1) {
                 $cRounds--;
                 continue;
             }
             if ($ukc) {
                 $catUkc = $row[1];
                 $rounds_in = "";
                 for ($i = 0; $i < 3; $i++) {
                     if (!empty($roundsUkc[$catUkc][$i])) {
                         $rounds_in .= $roundsUkc[$catUkc][$i] . ",";
                     }
                 }
                 $rounds_in = substr($rounds_in, 0, strlen($rounds_in) - 1);
                 if (!empty($r1)) {
                 }
                 $roundSQL = "s.xRunde IN ({$rounds_in}) ";
                 $GroupByUkc = " Group By at.xAthlet, w.xDisziplin ";
             } else {
                 $roundSQL = "s.xRunde = {$row['0']}";
                 $GroupByUkc = "";
             }
             if ($teamsm) {
                 $roundSQL = "s.xRunde IN ({$row['0']}) ";
             }
             $cRounds = 0;
             // check page  break
             if (is_a($list, "PRINT_RankingList") && $cat != '' && ($break == 'discipline' || $break == 'category' && $row[1] != $cat)) {
                 $list->insertPageBreak();
             }
             if ($row[3] == $cfgDisciplineType[$strDiscTypeTrack] || $row[3] == $cfgDisciplineType[$strDiscTypeTrackNoWind] || $row[3] == $cfgDisciplineType[$strDiscTypeRelay]) {
                 $eval = $cfgEvalType[$strEvalTypeHeat];
             } else {
                 $eval = $cfgEvalType[$strEvalTypeAll];
             }
             $roundName = '';
             $type = '';
             if ($teamsm) {
                 $res = mysql_query("\r\n                SELECT\r\n                    rt.Name\r\n                    , rt.Typ\r\n                    , rt.Wertung\r\n                FROM\r\n                    runde\r\n                    LEFT JOIN rundentyp_" . $_COOKIE['language'] . " AS rt ON (rt.xRundentyp = runde.xRundentyp)\r\n                WHERE \r\n                    runde.xRunde IN ({$row['0']})             \r\n            ");
             } else {
                 $res = mysql_query("\r\n                SELECT\r\n                    rt.Name\r\n                    , rt.Typ\r\n                    , rt.Wertung\r\n                FROM\r\n                    runde\r\n                    LEFT JOIN rundentyp_" . $_COOKIE['language'] . " AS rt ON (rt.xRundentyp = runde.xRundentyp)\r\n                WHERE \r\n                    runde.xRunde = {$row['0']}             \r\n                    ");
             }
             if (mysql_errno() > 0) {
                 AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
             } else {
                 if (mysql_num_rows($res) > 0) {
                     $row_rt = mysql_fetch_row($res);
                     if ($row_rt[1] == '0') {
                         $type = " ";
                         $row_rt[0] = '';
                     } else {
                         $type = $row_rt[0] . " ";
                     }
                     $eval = $row_rt[2];
                     if ($round != 0) {
                         // specific round selected
                         $roundName = $row_rt[0];
                     }
                 }
                 mysql_free_result($res);
             }
             if ($evnt != $row[4]) {
                 // if this is a combined event, dont fragment list by rounds
                 $combined = AA_checkCombined($row[4]);
                 // not selectet a specific round
                 if ($round == 0 && $combined && !$ukc) {
                     $res_c = mysql_query("SELECT \r\n                                r.xRunde\r\n                            FROM\r\n                                wettkampf as w\r\n                                LEFT JOIN runde as r ON (r.xWettkampf = w.xWettkampf)\r\n                            WHERE    \r\n                                w.xWettkampf = {$row['4']}\r\n                                AND r.status = 4");
                     if (mysql_errno() > 0) {
                         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                     } else {
                         $cRounds = mysql_num_rows($res_c);
                         $roundSQL = "s.xRunde IN (";
                         while ($row_c = mysql_fetch_array($res_c)) {
                             $roundSQL .= $row_c[0] . ",";
                         }
                         $roundSQL = substr($roundSQL, 0, -1) . ")";
                     }
                 }
                 // set up category and discipline title information
                 $flagSubtitle = true;
                 // set flag to print the subtitle later
                 if ($formaction == 'speaker' && AA_getNextRound($row[4], $row[0]) == 0) {
                     // last round: show ceremony status
                     $list->printCeremonyStatus($row[0], $row[9]);
                 }
                 // print qualification mode if round selected
                 $info = '';
                 if ($round > 0 && ($row[5] > 0 || $row[6] > 0)) {
                     $info = "{$strQualification}: " . $row[5] . " {$strQualifyTop}, " . $row[6] . " {$strQualifyPerformance}";
                     $flagInfoLine1 = true;
                     // set flag to print later the qualification mode if round selected
                     $info_save1 = $info;
                     //$list->printInfoLine($info);
                     $qual_mode = TRUE;
                 }
                 // print qualification descriptions if required
                 $info = '';
                 if ($row[5] > 0 || $row[6] > 0) {
                     foreach ($cfgQualificationType as $qt) {
                         $info = $info . $qt['token'] . " =" . $qt['text'] . "&nbsp;&nbsp;&nbsp;";
                     }
                     $flagInfoLine2 = true;
                     // set flag to print later the qualification descriptions if required
                     $info_save2 = $info;
                     //$list->printInfoLine($info);
                     $qual_mode = TRUE;
                 }
                 $evnt = $row[4];
                 // keep event ID
             }
             // ET new event
             $relay = AA_checkRelay($row[4]);
             // check, if this is a relay event
             $svm = AA_checkSVM($row[4]);
             // If round evaluated per heat, group results accordingly
             $order_heat = "";
             if ($eval == $cfgEvalType[$strEvalTypeHeat]) {
                 // eval per heat
                 $order_heat = "heatid, ";
             }
             $valid_result = "";
             // Order performance depending on discipline type
             if ($row[3] == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $row[3] == $cfgDisciplineType[$strDiscTypeThrow]) {
                 $order_perf = "DESC";
                 $order_perf2 = "DESC";
             } else {
                 if ($row[3] == $cfgDisciplineType[$strDiscTypeJump]) {
                     if ($row[8] == 1) {
                         // with wind
                         $order_perf = "DESC, r.Info ASC";
                         $order_perf2 = "DESC , r.Info ASC";
                     } else {
                         // without wind
                         $order_perf = "DESC";
                         $order_perf2 = "DESC";
                     }
                 } else {
                     if ($row[3] == $cfgDisciplineType[$strDiscTypeHigh]) {
                         $order_perf = "DESC";
                         $order_perf2 = "DESC";
                         $valid_result = " AND (r.Info LIKE '%O%'" . " OR r.Leistung < 0)";
                     } else {
                         $order_perf = "ASC";
                         $order_perf1 = "ASC";
                     }
                 }
             }
             $sqlSeparate = '';
             if (($catMerged || $eventMerged) & $heatSeparate) {
                 if ($row[0] > 0 && $row[13] != NULL) {
                     $roundSQL = '';
                     if (empty($limitRankSQL) && empty($valid_result)) {
                         $sqlSeparate = " ss.RundeZusammen = " . $row[0];
                     } else {
                         if (empty($limitRankSQL)) {
                             $valid_result = substr($valid_result, 4, strlen($valid_result));
                         } elseif (empty($valid_result)) {
                             $limitRankSQL = substr($limitRankSQL, 4, strlen($limitRankSQL));
                         }
                         $sqlSeparate = " AND ss.RundeZusammen = " . $row[0];
                     }
                 }
             }
             // get all results ordered by ranking; for invalid results (Rang=0), the
             // rank is set to max_rank to put them to the end of the list.
             $oder2 = "";
             $max_rank = 999999999;
             if ($ukc) {
                 $order2 = " d.Anzeige, rank, at.Name, at.Vorname, leistung_neu ";
                 $sql_leistung = $order_perf == 'ASC' ? "max(r.Leistung)" : "IF(r.Leistung<0, (If(r.Leistung = -99, -9, (If (r.Leistung = -98, -8,max(r.Leistung)))) * -1), max(r.Leistung))";
             } else {
                 $order2 = " rank, at.Name, at.Vorname, leistung_neu ";
                 $sql_leistung = $order_perf == 'ASC' ? "r.Leistung" : "IF(r.Leistung<0, (If(r.Leistung = -99, -9, (If (r.Leistung = -98, -8,r.Leistung))) * -1), r.Leistung)";
             }
             $order = $order_heat;
             if ($ukc) {
                 if ($athleteCat) {
                     $order = $orderAthleteCat . $order_heat;
                 }
                 $selection2 = "";
                 $checkyear = date('Y') - 16;
                 $selection2 = " at.Jahrgang > {$checkyear} AND (d.Code = " . $cfgUKC_disc[0] . " || d.Code = " . $cfgUKC_disc[1] . " || d.Code = " . $cfgUKC_disc[2] . ") AND ";
                 $query = "SELECT ss.xSerienstart, \r\n                             IF(ss.Rang=0, {$max_rank}, ss.Rang) AS rank, \r\n                             ss.Qualifikation, \r\n                             " . $sql_leistung . " AS leistung_neu, \r\n                             r.Info, \r\n                             s.Bezeichnung, \r\n                             s.Wind, \r\n                             r.Punkte, \r\n                             IF('" . $svm . "', t.Name, IF(a.Vereinsinfo = '', v.Name, a.Vereinsinfo)), \r\n                             at.Name, \r\n                             at.Vorname, \r\n                             at.Jahrgang, \r\n                             LPAD(s.Bezeichnung, 5, '0') AS heatid, \r\n                             IF(at.xRegion = 0, at.Land, re.Anzeige) AS Land, \r\n                             at.xAthlet, \r\n                             ru.Datum, \r\n                             ru.Startzeit ,\r\n                             ss.RundeZusammen,\r\n                             ru.xRunde,  \r\n                             k.Name , \r\n                             k1.Name ,                             \r\n                             k1.Anzeige ,\r\n                             ss.Bemerkung,\r\n                             w.Punkteformel,\r\n                             w.info,\r\n                             a.Startnummer,\r\n                             w.xWettkampf,\r\n                             at.Geschlecht\r\n                             \r\n                        FROM serie AS s USE INDEX(Runde)\r\n                   LEFT JOIN serienstart AS ss USING(xSerie) \r\n                   LEFT JOIN resultat AS r USING(xSerienstart) \r\n                   LEFT JOIN start AS st ON(ss.xStart = st.xStart) \r\n                   LEFT JOIN anmeldung AS a USING(xAnmeldung) \r\n                   LEFT JOIN athlet AS at USING(xAthlet) \r\n                   LEFT JOIN verein AS v USING(xVerein) \r\n                   LEFT JOIN region AS re ON(at.xRegion = re.xRegion) \r\n                   LEFT JOIN team AS t ON(a.xTeam = t.xTeam) \r\n                   LEFT JOIN runde AS ru ON(s.xRunde = ru.xRunde) \r\n                   LEFT JOIN wettkampf AS w On (w.xWettkampf= st.xWettkampf)   \r\n                   LEFT JOIN kategorie AS k On (w.xKategorie= k.xKategorie)\r\n                   LEFT JOIN kategorie AS k1 ON (a.xKategorie = k1.xKategorie)   \r\n                   LEFT JOIN disziplin_" . $_COOKIE['language'] . " as d ON (d.xDisziplin = w.xDisziplin)   \r\n                       WHERE " . $selection2 . $roundSQL . " \r\n                       " . $limitRankSQL . " \r\n                       " . $valid_result . " \r\n                       " . $sqlSeparate . " \r\n                       " . $selectionHeats . " \r\n                     {$GroupByUkc} \r\n                    ORDER BY " . $order . $order2 . $order_perf1;
             } else {
                 if ($relay == FALSE) {
                     if ($athleteCat) {
                         $order = $orderAthleteCat . $order_heat;
                     }
                     $selection2 = "";
                     if ($ukc) {
                         $checkyear = date('Y') - 16;
                         $selection2 = " at.Jahrgang > {$checkyear} AND (d.Code = " . $cfgUKC_disc[0] . " || d.Code = " . $cfgUKC_disc[1] . " || d.Code = " . $cfgUKC_disc[2] . ") AND ";
                     }
                     if ($teamsm) {
                         $query = "SELECT ss.xSerienstart, \r\n                             IF(ss.Rang=0, {$max_rank}, ss.Rang) AS rank, \r\n                             ss.Qualifikation, \r\n                             " . $sql_leistung . " AS leistung_neu, \r\n                             r.Info, \r\n                             s.Bezeichnung, \r\n                             s.Wind, \r\n                             r.Punkte, \r\n                             t.Name, \r\n                             at.Name, \r\n                             at.Vorname, \r\n                             at.Jahrgang, \r\n                             LPAD(s.Bezeichnung, 5, '0') AS heatid, \r\n                             IF(at.xRegion = 0, at.Land, re.Anzeige) AS Land, \r\n                             at.xAthlet, \r\n                             ru.Datum, \r\n                             ru.Startzeit ,\r\n                             ss.RundeZusammen,\r\n                             ru.xRunde,  \r\n                             k.Name , \r\n                             k1.Name ,                             \r\n                             k1.Anzeige ,\r\n                             ss.Bemerkung,\r\n                             w.Punkteformel,\r\n                             w.info,\r\n                             a.Startnummer,\r\n                             w.xWettkampf,\r\n                             at.Geschlecht\r\n                             \r\n                        FROM serie AS s USE INDEX(Runde)\r\n                   LEFT JOIN serienstart AS ss USING(xSerie) \r\n                   LEFT JOIN resultat AS r USING(xSerienstart) \r\n                   LEFT JOIN start AS st ON(ss.xStart = st.xStart) \r\n                   LEFT JOIN anmeldung AS a USING(xAnmeldung) \r\n                   LEFT JOIN athlet AS at USING(xAthlet) \r\n                   LEFT JOIN verein AS v USING(xVerein) \r\n                   LEFT JOIN region AS re ON(at.xRegion = re.xRegion) \r\n                   INNER JOIN teamsmathlet AS tat ON(st.xAnmeldung = tat.xAnmeldung)\r\n                   LEFT JOIN teamsm as t ON (tat.xTeamsm = t.xTeamsm)                      \r\n                   LEFT JOIN runde AS ru ON(s.xRunde = ru.xRunde) \r\n                   LEFT JOIN wettkampf AS w On (w.xWettkampf= st.xWettkampf)   \r\n                   LEFT JOIN kategorie AS k On (w.xKategorie= k.xKategorie)\r\n                   LEFT JOIN kategorie AS k1 ON (a.xKategorie = k1.xKategorie)   \r\n                   LEFT JOIN disziplin_" . $_COOKIE['language'] . " as d ON (d.xDisziplin = w.xDisziplin)   \r\n                       WHERE " . $selection2 . $roundSQL . " \r\n                       " . $limitRankSQL . " \r\n                       " . $valid_result . " \r\n                       " . $sqlSeparate . " \r\n                       " . $selectionHeats . " \r\n                     {$GroupByUkc} \r\n                    ORDER BY " . $order . $order2 . $order_perf;
                     } else {
                         $query = "SELECT ss.xSerienstart, \r\n                             IF(ss.Rang=0, {$max_rank}, ss.Rang) AS rank, \r\n                             ss.Qualifikation, \r\n                             " . $sql_leistung . " AS leistung_neu, \r\n                             r.Info, \r\n                             s.Bezeichnung, \r\n                             s.Wind, \r\n                             r.Punkte, \r\n                             IF('" . $svm . "', t.Name, IF(a.Vereinsinfo = '', v.Name, a.Vereinsinfo)), \r\n                             at.Name, \r\n                             at.Vorname, \r\n                             at.Jahrgang, \r\n                             LPAD(s.Bezeichnung, 5, '0') AS heatid, \r\n                             IF(at.xRegion = 0, at.Land, re.Anzeige) AS Land, \r\n                             at.xAthlet, \r\n                             ru.Datum, \r\n                             ru.Startzeit ,\r\n                             ss.RundeZusammen,\r\n                             ru.xRunde,  \r\n                             k.Name , \r\n                             k1.Name ,                             \r\n                             k1.Anzeige ,\r\n                             ss.Bemerkung,\r\n                             w.Punkteformel,\r\n                             w.info,\r\n                             a.Startnummer,\r\n                             w.xWettkampf,\r\n                             at.Geschlecht\r\n                             \r\n                        FROM serie AS s USE INDEX(Runde)\r\n                   LEFT JOIN serienstart AS ss USING(xSerie) \r\n                   LEFT JOIN resultat AS r USING(xSerienstart) \r\n                   LEFT JOIN start AS st ON(ss.xStart = st.xStart) \r\n                   LEFT JOIN anmeldung AS a USING(xAnmeldung) \r\n                   LEFT JOIN athlet AS at USING(xAthlet) \r\n                   LEFT JOIN verein AS v USING(xVerein) \r\n                   LEFT JOIN region AS re ON(at.xRegion = re.xRegion) \r\n                   LEFT JOIN team AS t ON(a.xTeam = t.xTeam) \r\n                   LEFT JOIN runde AS ru ON(s.xRunde = ru.xRunde) \r\n                   LEFT JOIN wettkampf AS w On (w.xWettkampf= st.xWettkampf)   \r\n                   LEFT JOIN kategorie AS k On (w.xKategorie= k.xKategorie)\r\n                   LEFT JOIN kategorie AS k1 ON (a.xKategorie = k1.xKategorie)   \r\n                   LEFT JOIN disziplin_" . $_COOKIE['language'] . " as d ON (d.xDisziplin = w.xDisziplin)   \r\n                       WHERE " . $selection2 . $roundSQL . " \r\n                       " . $limitRankSQL . " \r\n                       " . $valid_result . " \r\n                       " . $sqlSeparate . " \r\n                       " . $selectionHeats . " \r\n                     {$GroupByUkc} \r\n                    ORDER BY " . $order . $order2 . $order_perf;
                     }
                 } else {
                     // relay event
                     $query = "SELECT ss.xSerienstart,                                   \r\n                             IF(r.Leistung < 0 , {$max_rank}, if (ss.Rang=0, {$max_rank}-1, ss.Rang)) AS rank, \r\n                             ss.Qualifikation, \r\n                             " . $sql_leistung . " AS leistung_neu, \r\n                             r.Info, \r\n                             s.Bezeichnung, \r\n                             s.Wind, \r\n                             r.Punkte, \r\n                             IF('" . $svm . "', t.Name, v.Name), \r\n                             sf.Name, \r\n                             LPAD(s.Bezeichnung, 5, '0') AS heatid, \r\n                             st.xStart, \r\n                             ru.Datum, \r\n                             ru.Startzeit, \r\n                             ss.RundeZusammen,\r\n                             ru.xRunde,\r\n                             k.Name ,\r\n                             ss.Bemerkung    \r\n                        FROM serie AS s USE INDEX(Runde) \r\n                   LEFT JOIN serienstart AS ss USING(xSerie) \r\n                   LEFT JOIN resultat AS r USING(xSerienstart) \r\n                   LEFT JOIN start AS st ON(ss.xStart = st.xStart) \r\n                   LEFT JOIN staffel AS sf USING(xStaffel) \r\n                   LEFT JOIN verein AS v USING(xVerein) \r\n                   LEFT JOIN team AS t ON(sf.xTeam = t.xTeam) \r\n                   LEFT JOIN runde AS ru ON(s.xRunde = ru.xRunde) \r\n                   LEFT JOIN wettkampf AS w On (w.xWettkampf= st.xWettkampf)   \r\n                   LEFT JOIN kategorie AS k On (w.xKategorie= k.xKategorie) \r\n                       WHERE " . $roundSQL . " \r\n                      " . $limitRankSQL . " \r\n                      " . $valid_result . " \r\n                      " . $sqlSeparate . "                         \r\n                    GROUP BY r.xSerienstart \r\n                    ORDER BY " . $order . " \r\n                             rank, \r\n                             r.Leistung \r\n                             " . $order_perf . ", \r\n                             sf.Name;";
                 }
             }
             $res = mysql_query($query);
             if (mysql_errno() > 0) {
                 // DB error
                 AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
             } else {
                 if (mysql_num_rows($res) == 0) {
                     continue;
                 }
                 // initialize variables
                 $heat = '';
                 $h = 0;
                 $info = '';
                 $id = '';
                 $r = '';
                 $count_rank = 0;
                 $perf_save = '';
                 //$list->startList();
                 $nr = 0;
                 $atCat = '';
                 if ($ukc) {
                     $arr_xAthlet = array();
                     while ($row_at = mysql_fetch_array($res)) {
                         if (array_key_exists($row_at[14], $arr_xAthlet)) {
                             $arr_xAthlet[$row_at[14]]++;
                         } else {
                             $arr_xAthlet[$row_at[14]] = 1;
                         }
                     }
                 }
                 $res = mysql_query($query);
                 // process every result
                 while ($row_res = mysql_fetch_array($res)) {
                     if ($ukc) {
                         if ($arr_xAthlet[$row_res[14]] < 3) {
                             $id = $row_res[0];
                             // keep current athletes ID
                             if ($relay) {
                                 $catM = $row_res[16];
                             } else {
                                 $catM = $row_res[19];
                             }
                             // keep merged category
                             continue;
                         }
                         if ($row[0] != $row_res[18]) {
                             $id = $row_res[0];
                             // keep current athletes ID
                             if ($relay) {
                                 $catM = $row_res[16];
                             } else {
                                 $catM = $row_res[19];
                             }
                             // keep merged category
                             continue;
                         }
                         $results_ukc = TRUE;
                         $pointsUKC = AA_utils_calcPointsUKC($row_res[26], $row_res[3], 0, $row_res[27], $row_res[0]);
                         mysql_query("UPDATE resultat SET\r\n                                    Punkte = {$pointsUKC}\r\n                                WHERE\r\n                                    xSerienstart = {$row_res['0']}");
                         if (mysql_errno() > 0) {
                             AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                         }
                         AA_StatusChanged(0, 0, $row_res[0]);
                     }
                     if ($flagSubtitle) {
                         $r_info = '';
                         $mainRound = '';
                         if (!$teamsm) {
                             $mainRound = AA_getMainRound($row[0]);
                         }
                         if ($mainRound > 0) {
                             if ($heatSeparate) {
                                 $r_info = $roundsInfo[$row[0]];
                                 $r_info = substr($r_info, 0, -3);
                             } else {
                                 $mergedRounds = AA_getMergedRounds($row[0]);
                                 $mRounds = split(',', substr($mergedRounds, 1, -1));
                                 foreach ($mRounds as $key => $val) {
                                     $r_info .= $roundsInfo[$val];
                                 }
                                 $r_info = substr($r_info, 0, -3);
                             }
                         } else {
                             $r_info = $row_res[24];
                         }
                         $nr = 0;
                         if ($heatSeparate) {
                             if ($relay) {
                                 $list->printSubTitle($row_res[16], $row[2], $roundName, $r_info);
                             } else {
                                 if (!$athleteCat) {
                                     $list->printSubTitle($row_res[19], $row[2], $roundName, $r_info);
                                 }
                             }
                         } else {
                             if (!$athleteCat) {
                                 $list->printSubTitle($row[1], $row[2], $roundName, $r_info, $heatFrom, $heatTo, $row_rt[2]);
                             }
                         }
                         $flagSubtitle = false;
                     }
                     if (!$athleteCat) {
                         if ($flagInfoLine1) {
                             $list->printInfoLine($info_save1);
                             $flagInfoLine1 = false;
                         }
                     }
                     if (!$athleteCat) {
                         if ($flagInfoLine2) {
                             $list->printInfoLine($info_save2);
                             $flagInfoLine2 = false;
                         }
                     }
                     $row_res[3] = $row_res[3] == 1 || $row_res[3] == 2 || $row_res[3] == 3 || $row_res[3] == 4 ? $row_res[3] * -1 : ($row_res[3] == 9 ? -99 : ($row_res[3] == 8 ? -98 : $row_res[3]));
                     if ($row_res[0] != $id) {
                         if ($h == 0 || $row_res[5] != $heat && $eval == $cfgEvalType[$strEvalTypeHeat] || $athleteCat && $row_res[21] != $atCat) {
                             $count_rank = 0;
                             $nr = 0;
                             // heat name
                             if ($eval == $cfgEvalType[$strEvalTypeHeat]) {
                                 if (empty($type)) {
                                     // no round type defined
                                     $type = $strFinalround . " ";
                                 }
                                 $title = $type . $row_res[5];
                                 // heat name with nbr.
                             } else {
                                 $title = $type;
                                 // heat name withour nbr.
                             }
                             $title = trim($title);
                             // wind per heat
                             if ($row[3] == $cfgDisciplineType[$strDiscTypeTrack] && $row[8] == 1 && $eval == $cfgEvalType[$strEvalTypeHeat]) {
                                 $heatwind = $row_res[6];
                                 // wind per heat
                             } else {
                                 $heatwind = '';
                                 // no wind
                             }
                             $wind = FALSE;
                             if ($row[8] == 1 && $row[3] == $cfgDisciplineType[$strDiscTypeJump] || $row[3] == $cfgDisciplineType[$strDiscTypeTrack] && $eval == $cfgEvalType[$strEvalTypeAll]) {
                                 $wind = TRUE;
                             }
                             // add column header 'points' if required
                             $points = FALSE;
                             if ($row[7] != '0' || $row_res[23] != '0') {
                                 $points = TRUE;
                             } elseif ($ukc) {
                                 $points = TRUE;
                             }
                             if ($show_efforts == 'sb_pb') {
                                 $base_perf = true;
                             }
                             if ($athleteCat && !$relay) {
                                 if ($formaction == 'print') {
                                     if ($row_res[20] . $row[2] != $atCatName) {
                                         $list->printSubTitle($row_res[20], $row[2], $roundName, $row_res[24]);
                                         $atCatName = $row_res[20] . $row[2];
                                         if ($flagInfoLine1) {
                                             $list->printInfoLine($info_save1);
                                             $flagInfoLine1 = false;
                                         }
                                         if ($flagInfoLine2) {
                                             $list->printInfoLine($info_save2);
                                             $flagInfoLine2 = false;
                                         }
                                     }
                                 }
                             }
                             $list->startList();
                             if ($saison == "I") {
                                 $heatwind = '';
                             }
                             if ($relay && !$svm) {
                                 $points = false;
                             }
                             $list->printHeaderLine($title, $relay, $points, $wind, $heatwind, $row[11], $svm, $base_perf, $qual_mode, $eval, $withStartnr, $teamsm);
                             if ($athleteCat && !$relay) {
                                 if ($formaction == 'view') {
                                     if ($row_res[20] . $row[2] != $atCatName) {
                                         $list->printSubTitle($row_res[20], $row[2], $roundName, $row_res[24]);
                                         $atCatName = $row_res[20] . $row[2];
                                         if ($flagInfoLine1) {
                                             $list->printInfoLine($info_save1, $athleteCat);
                                             $flagInfoLine1 = false;
                                         }
                                         if ($flagInfoLine2) {
                                             $list->printInfoLine($info_save2, $athleteCat);
                                             $flagInfoLine2 = false;
                                         }
                                     }
                                 }
                             }
                             $heat = $row_res[5];
                             // keep heat description
                             $atCat = $row_res[21];
                             // keep athlete category
                             $h++;
                             // increment if evaluation per heat
                         }
                         $count_rank++;
                         // rank
                         if ($teamsm) {
                             if ($perf_save != '') {
                                 if ($perf_save == $row_res[3]) {
                                     $count_rank--;
                                     $rank = '';
                                 } else {
                                     $rank = $count_rank;
                                 }
                             } else {
                                 $rank = $count_rank;
                             }
                         } else {
                             if ($heatSeparate) {
                                 if ($row_res[1] == $max_rank || $row_res[1] == $max_rank - 1) {
                                     // invalid result
                                     $rank = '';
                                 } elseif ($r == $row_res[1] && $heat_keep == $row_res[5]) {
                                     // same rank as previous
                                     $rank = $count_rank--;
                                 } else {
                                     if ($ukc) {
                                         $rank = $count_rank;
                                     } else {
                                         $rank = $row_res[1];
                                     }
                                 }
                             } else {
                                 if ($row_res[1] == $max_rank || $row_res[1] == $max_rank - 1 || $r == $row_res[1] && $heat_keep == $row_res[5]) {
                                     // same rank as previous
                                     $rank = '';
                                 } else {
                                     if ($ukc) {
                                         $rank = $count_rank;
                                     } else {
                                         $rank = $row_res[1];
                                     }
                                 }
                             }
                         }
                         $r = $row_res[1];
                         // keep rank
                         $heat_keep = $row_res[5];
                         // keep heat
                         // name
                         $name = $row_res[9];
                         if ($relay == FALSE) {
                             $name = $name . " " . $row_res[10];
                         }
                         // year of birth
                         if ($relay == FALSE) {
                             $year = AA_formatYearOfBirth($row_res[11]);
                         } else {
                             $year = '';
                         }
                         // year of birth
                         if ($relay == FALSE) {
                             $land = $row_res[13] != '' && $row_res[13] != '-' ? $row_res[13] : '';
                         } else {
                             $year = '';
                         }
                         // performance
                         if ($row_res[3] < 0) {
                             // invalid result
                             if ($row_res[3] == '-98') {
                                 if ($row[3] == $cfgDisciplineType[$strDiscTypeJump] || $row[3] == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $row[3] == $cfgDisciplineType[$strDiscTypeThrow]) {
                                     $perf = $cfgInvalidResult['NRS']['short'];
                                 } else {
                                     $perf = $cfgInvalidResult['NAA']['code'];
                                 }
                             } elseif ($row_res[3] == '-99') {
                                 $perf = $cfgInvalidResult['WAI']['short'];
                             } else {
                                 foreach ($cfgInvalidResult as $value) {
                                     if ($value['code'] == $row_res[3]) {
                                         $perf = $value['short'];
                                     }
                                 }
                             }
                         } else {
                             if ($row[3] == $cfgDisciplineType[$strDiscTypeJump] || $row[3] == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $row[3] == $cfgDisciplineType[$strDiscTypeThrow] || $row[3] == $cfgDisciplineType[$strDiscTypeHigh]) {
                                 $perf = AA_formatResultMeter($row_res[3]);
                             } else {
                                 if ($row[3] == $cfgDisciplineType[$strDiscTypeTrack] || $row[3] == $cfgDisciplineType[$strDiscTypeTrackNoWind]) {
                                     $perf = AA_formatResultTime($row_res[3], true, true);
                                 } else {
                                     $perf = AA_formatResultTime($row_res[3], true);
                                 }
                             }
                         }
                         $qual = '';
                         if ($row_res[2] > 0) {
                             // Athlete qualified
                             foreach ($cfgQualificationType as $qtype) {
                                 if ($qtype['code'] == $row_res[2]) {
                                     $qual = $qtype['token'];
                                 }
                             }
                         }
                         // ET athlete qualified
                         // points for performance
                         $points = '';
                         if ($row[7] != '0') {
                             $points = $row_res[7];
                         } else {
                             if ($row_res[23] != '0') {
                                 $points = $row_res[7];
                             }
                         }
                         // wind info
                         $wind = '';
                         $secondResult = false;
                         if ($r != $max_rank) {
                             if ($row[3] == $cfgDisciplineType[$strDiscTypeJump] && $row[8] == 1) {
                                 $wind = $row_res[4];
                                 if ($saison == 'I') {
                                     $wind = '';
                                     // indoor: never wind
                                 }
                                 //
                                 // if wind bigger than max wind (2.0) show the next best result without wind too
                                 //
                                 if ($wind > 2) {
                                     $res_wind = mysql_query("\r\n                                        SELECT Info, Leistung FROM\r\n                                            resultat\r\n                                        WHERE\r\n                                            xSerienstart = {$row_res['0']}\r\n                                        ORDER BY\r\n                                            Leistung ASC");
                                     if (mysql_errno() > 0) {
                                         // DB error
                                         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                     } else {
                                         while ($row_wind = mysql_fetch_array($res_wind)) {
                                             if ($row_wind[0] <= 2) {
                                                 $secondResult = true;
                                                 $wind2 = $row_wind[0] . ")";
                                                 $perf2 = "(" . AA_formatResultMeter($row_wind[1]);
                                             }
                                         }
                                     }
                                 }
                             } else {
                                 if ($row[3] == $cfgDisciplineType[$strDiscTypeTrack] && $row[8] == 1 && $eval == $cfgEvalType[$strEvalTypeAll]) {
                                     $wind = $row_res[6];
                                     if ($saison == 'I') {
                                         $wind = '';
                                         // indoor: never wind
                                     }
                                 }
                             }
                         }
                         // ioc country code
                         $ioc = '';
                         if ($relay == false) {
                             $ioc = $row_res[13];
                         }
                         //show performances from base
                         if ($show_efforts == 'sb_pb' && $relay == false) {
                             $sql = "SELECT \r\n                                    season_effort\r\n                                    , DATE_FORMAT(season_effort_date, '%d.%m.%Y') AS sb_date\r\n                                    , season_effort_event\r\n                                    , best_effort\r\n                                    , DATE_FORMAT(best_effort_date, '%d.%m.%Y') AS pb_date\r\n                                    , best_effort_event\r\n                                    , season\r\n                                    , xAnmeldung\r\n                        FROM \r\n                            base_performance\r\n                        LEFT JOIN \r\n                            base_athlete USING (id_athlete)\r\n                        LEFT JOIN \r\n                            disziplin_" . $_COOKIE['language'] . " ON (discipline = Code)\r\n                        LEFT JOIN \r\n                            athlet ON (license = Lizenznummer)\r\n                        LEFT JOIN\r\n                            anmeldung USING(xAthlet) \r\n                        WHERE \r\n                            athlet.xAthlet = {$row_res['14']}\r\n                            AND xDisziplin = {$row['12']}\r\n                            AND season = '{$saison}' \r\n                            AND xMeeting = " . $_COOKIE['meeting_id'] . ";";
                             $res_perf = mysql_query($sql);
                             if (mysql_errno() > 0) {
                                 // DB error
                                 AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                             } else {
                                 if ($res_perf) {
                                     $row_perf = mysql_fetch_array($res_perf);
                                     $is_jump = $row[3] == $cfgDisciplineType[$strDiscTypeJump] || $row[3] == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $row[3] == $cfgDisciplineType[$strDiscTypeThrow] || $row[3] == $cfgDisciplineType[$strDiscTypeHigh];
                                     $order = $is_jump ? 'DESC' : 'ASC';
                                     $best_previous = '';
                                     $previous_date = '';
                                     if ($row_perf !== false) {
                                         $best_previous = AA_getBestPrevious($row[12], $row_perf['xAnmeldung'], $order, $row_res['Datum'], $row_res['Startzeit'], &$previous_date);
                                     }
                                     if ($is_jump) {
                                         $sb_perf = AA_formatResultMeter(str_replace(".", "", $row_perf['season_effort']));
                                         $pb_perf = AA_formatResultMeter(str_replace(".", "", $row_perf['best_effort']));
                                         $bp_perf = AA_formatResultMeter(str_replace(".", "", $best_previous));
                                         if ($bp_perf > 0 && $bp_perf > $sb_perf) {
                                             $sb_perf = $bp_perf;
                                             $row_perf['season_effort_event'] = $_SESSION['meeting_infos']['Name'];
                                             $row_perf['sb_date'] = date('d.m.Y', strtotime($previous_date));
                                         }
                                         if ($bp_perf > 0 && $bp_perf > $pb_perf) {
                                             $pb_perf = $bp_perf;
                                             $row_perf['best_effort_event'] = $_SESSION['meeting_infos']['Name'];
                                             $row_perf['pb_date'] = date('d.m.Y', strtotime($previous_date));
                                         }
                                         //highlight sb or pb if new performance is better
                                         if (is_numeric($perf)) {
                                             //prevent special-codes (disq, n.a. usw)
                                             if ($formaction != 'print') {
                                                 if ($pb_perf != '' && $perf > $pb_perf) {
                                                     $perf = "<b>PB {$perf}</b> ";
                                                 } else {
                                                     if ($sb_perf != '' && $perf > $sb_perf) {
                                                         $perf = "<b>SB {$perf}</b>";
                                                     }
                                                 }
                                             } else {
                                                 if ($pb_perf != '' && $perf > $pb_perf) {
                                                     $perf = "<b>PB</b> {$perf}";
                                                 } else {
                                                     if ($sb_perf != '' && $perf > $sb_perf) {
                                                         $perf = "<b>SB</b> {$perf}";
                                                     }
                                                 }
                                             }
                                         }
                                     } else {
                                         //convert performance-time to milliseconds
                                         $timepices = explode(":", $row_perf['season_effort']);
                                         $season_effort = $timepices[0] * 360 * 1000 + $timepices[1] * 60 * 1000 + $timepices[2] * 1000 + $timepices[3];
                                         $timepices = explode(":", $row_perf['best_effort']);
                                         $best_effort = $timepices[0] * 360 * 1000 + $timepices[1] * 60 * 1000 + $timepices[2] * 1000 + $timepices[3];
                                         $previous_effort = intval($best_previous);
                                         if ($previous_effort > 0 && $previous_effort < $season_effort) {
                                             $season_effort = $previous_effort;
                                             $row_perf['season_effort_event'] = $_SESSION['meeting_infos']['Name'];
                                             $row_perf['sb_date'] = date('d.m.Y', strtotime($previous_date));
                                         }
                                         if ($previous_effort > 0 && $previous_effort < $best_effort) {
                                             $best_effort = $previous_effort;
                                             $row_perf['best_effort_event'] = $_SESSION['meeting_infos']['Name'];
                                             $row_perf['pb_date'] = date('d.m.Y', strtotime($previous_date));
                                         }
                                         if ($row[3] == $cfgDisciplineType[$strDiscTypeTrack] || $row[3] == $cfgDisciplineType[$strDiscTypeTrackNoWind]) {
                                             $sb_perf = AA_formatResultTime($season_effort, true, true);
                                             $pb_perf = AA_formatResultTime($best_effort, true, true);
                                         } else {
                                             $sb_perf = AA_formatResultTime($season_effort, true);
                                             $pb_perf = AA_formatResultTime($best_effort, true);
                                         }
                                         if ($formaction != 'print') {
                                             //highlight sb or pb if new performance is better
                                             if ($pb_perf != '' && $perf < $pb_perf) {
                                                 $perf = "<b>PB {$perf}</b>";
                                             } else {
                                                 if ($sb_perf != '' && $perf < $sb_perf) {
                                                     $perf = "<b>SB {$perf}</b>";
                                                 }
                                             }
                                         } else {
                                             if ($pb_perf != '' && $perf < $pb_perf) {
                                                 $perf = "<b>PB</b> {$perf}";
                                             } else {
                                                 if ($sb_perf != '' && $perf < $sb_perf) {
                                                     $perf = "<b>SB</b> {$perf}";
                                                 }
                                             }
                                         }
                                     }
                                     if (!empty($row_perf['season_effort'])) {
                                         $sb = "<a href=\"#\" class=\"info\">{$sb_perf}<span>{$row_perf['sb_date']}<br>{$row_perf['season_effort_event']}</span></a>";
                                     } else {
                                         $sb = "&nbsp;";
                                     }
                                     if (!empty($row_perf['best_effort'])) {
                                         $pb = "<a href=\"#\" class=\"info\">{$pb_perf}<span>{$row_perf['pb_date']}<br>{$row_perf['best_effort_event']}</span></a>";
                                     } else {
                                         $pb = "&nbsp;";
                                     }
                                 }
                             }
                         }
                         if ($heatSeparate && $row_res[17] > 0) {
                             $rank = $count_rank;
                             if ($row_res[3] < 0) {
                                 // invalid result
                                 $rank = '';
                             }
                         }
                         if ($athleteCat && !$relay) {
                             $nr++;
                             if ($rank != '') {
                                 if ($formaction == "print") {
                                     $rank = $nr . ". (" . $rank . ")";
                                 } else {
                                     $rank = $nr . " (" . $rank . ")";
                                 }
                             }
                         } else {
                             if ($formaction == "print") {
                                 if ($rank != '') {
                                     $rank .= ".";
                                 }
                             }
                         }
                         if ($relay) {
                             $remark = $row_res[17];
                         } else {
                             $remark = $row_res[22];
                         }
                         if ($wind == '-' && $perf == 0) {
                             $wind = '';
                         }
                         if ($ukc) {
                             $points = $pointsUKC;
                         }
                         $list->printLine($rank, $name, $year, $row_res[8], $perf, $wind, $points, $qual, $ioc, $sb, $pb, $qual_mode, $athleteCat, $remark, '', $withStartnr, $row_res[25]);
                         if ($secondResult) {
                             $list->printLine("", "", "", "", $perf2, $wind2, "", "", "", "", "", $qual_mode, "", "", $secondResult);
                         }
                         $perf_save = $row_res[3];
                         // keep performance
                         //
                         // if relay, show started ahtletes in right order under the result
                         //
                         if ($relay) {
                             if ($row_res[14] > 0) {
                                 $sqlRound = $row_res[14];
                             } else {
                                 $sqlRound = $row[0];
                             }
                             $res_at = mysql_query("\r\n                                SELECT at.Vorname, at.Name, at.Jahrgang FROM\r\n                                    staffelathlet as sfat\r\n                                    LEFT JOIN start as st ON sfat.xAthletenstart = st.xStart\r\n                                    LEFT JOIN anmeldung as a USING(xAnmeldung)\r\n                                    LEFT JOIN athlet as at USING(xAthlet)\r\n                                WHERE\r\n                                    sfat.xStaffelstart = {$row_res['11']}\r\n                                AND    sfat.xRunde = {$sqlRound} \r\n                                ORDER BY\r\n                                    sfat.Position\r\n                                LIMIT {$row['10']}\r\n                        ");
                             if (mysql_errno() > 0) {
                                 // DB error
                                 AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                             } else {
                                 $text_at = "";
                                 while ($row_at = mysql_fetch_array($res_at)) {
                                     $text_at .= $row_at[1] . " " . $row_at[0] . " " . AA_formatYearOfBirth($row_at[2]) . " / ";
                                 }
                                 $text_at = substr($text_at, 0, strlen($text_at) - 2);
                                 $text_at = trim($text_at) != '' ? '(' . $text_at . ')' : '';
                                 $list->printAthletesLine($text_at);
                             }
                         }
                         //
                         // if biglist, show all attempts
                         //
                         if ($biglist) {
                             if ($row[3] == $cfgDisciplineType[$strDiscTypeJump] || $row[3] == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $row[3] == $cfgDisciplineType[$strDiscTypeThrow] || $row[3] == $cfgDisciplineType[$strDiscTypeHigh]) {
                                 $query_sort = $row[3] == $cfgDisciplineType[$strDiscTypeHigh] ? "ORDER BY Leistung ASC" : "";
                                 $res_att = mysql_query("\r\n                                SELECT * FROM \r\n                                    resultat \r\n                                WHERE xSerienstart = {$row_res['0']}\r\n                                " . $query_sort . "\r\n                                ");
                                 if (mysql_errno() > 0) {
                                     // DB error
                                     AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                 } else {
                                     $text_att = "";
                                     while ($row_att = mysql_fetch_array($res_att)) {
                                         if ($row_att['Leistung'] < 0) {
                                             $perf3 = $row_att['Leistung'];
                                             if ($perf3 == $GLOBALS['cfgMissedAttempt']['db']) {
                                                 // $perf3 = '-';
                                                 $perf3 = $GLOBALS['cfgMissedAttempt']['code'];
                                             } elseif ($perf3 == $GLOBALS['cfgMissedAttempt']['dbx']) {
                                                 $perf3 = $GLOBALS['cfgMissedAttempt']['codeX'];
                                             }
                                             foreach ($cfgInvalidResult as $value) {
                                                 if ($value['code'] == $perf3) {
                                                     $text_att .= $value['short'];
                                                 }
                                             }
                                             $text_att .= " / ";
                                         } else {
                                             $text_att .= $row_att['Leistung'] == '-' ? '-' : AA_formatResultMeter($row_att['Leistung']);
                                             if ($saison == "O" || $saison == "I" && $row[3] != $cfgDisciplineType[$strDiscTypeJump]) {
                                                 // outdoor  or (indoor and not jump)
                                                 if ($row_att['Info'] != "-" && !empty($row_att['Info']) && $row[3] != $cfgDisciplineType[$strDiscTypeThrow]) {
                                                     if ($row[3] == $cfgDisciplineType[$strDiscTypeHigh]) {
                                                         $text_att .= " , " . $row_att['Info'];
                                                     } else {
                                                         if ($row[8] != 0) {
                                                             $text_att .= " , " . $row_att['Info'];
                                                         }
                                                     }
                                                 } elseif ($row_att['Info'] == "-" && $row[3] != $cfgDisciplineType[$strDiscTypeThrow] && $row_att['Leistung'] > 0) {
                                                     $text_att .= " , " . $row_att['Info'];
                                                 }
                                             }
                                             $text_att .= " / ";
                                         }
                                     }
                                     $text_att = substr($text_att, 0, strlen($text_att) - 2);
                                     $list->printAthletesLine("{$strAttempts}: ( {$text_att} )");
                                 }
                             }
                         }
                     }
                     // ET athlete processed
                     $id = $row_res[0];
                     // keep current athletes ID
                     if ($relay) {
                         $catM = $row_res[16];
                     } else {
                         $catM = $row_res[19];
                     }
                     // keep merged category
                 }
                 // END WHILE result lines
                 mysql_free_result($res);
                 $list->endList();
             }
             // ET DB error result rows
             $cat = $row[1];
             // keep category
             $round_keep = $row[0];
         }
         // END WHILE event rounds
         mysql_free_result($results);
         if ($ukc && !$results_ukc) {
             echo "<br><br><b><blockquote>{$strErrNoResults}</blockquote></b>";
         }
         //************** rankinglist over all series
         if ($ranklistAll) {
             if ($catMerged & !$heatSeparate || $eventMerged & !$heatSeparate) {
                 // get event rounds from DB
                 $results = mysql_query("\r\n                        SELECT \r\n                            r.xRunde\r\n                            , k.Name\r\n                            , d.Name\r\n                            , d.Typ\r\n                            , w.xWettkampf\r\n                            , r.QualifikationSieger\r\n                            , r.QualifikationLeistung\r\n                            , w.Punkteformel\r\n                            , w.Windmessung\r\n                            , r.Speakerstatus\r\n                            , d.Staffellaeufer\r\n                            , CONCAT(DATE_FORMAT(r.Datum,'{$cfgDBdateFormat}'), ' ', TIME_FORMAT(r.Startzeit, '{$cfgDBtimeFormat}'))\r\n                            , w.xDisziplin  \r\n                        FROM\r\n                            wettkampf AS w\r\n                            LEFT JOIN kategorie AS k ON (k.xKategorie = w.xKategorie)\r\n                              LEFT JOIN disziplin_" . $_COOKIE['language'] . " as d ON (d.xDisziplin = w.xDisziplin) \r\n                              LEFT JOIN runde AS r ON (r.xWettkampf = w.xWettkampf) \r\n                        WHERE " . $selection . "\r\n                        w.xMeeting = " . $_COOKIE['meeting_id'] . "     \r\n                        AND r.Status = " . $cfgRoundStatus['results_done'] . " \r\n                        AND r.Datum LIKE '" . $date . "'\r\n                        AND (d.Typ = " . $cfgDisciplineType[$strDiscTypeTrack] . " OR d.Typ = " . $cfgDisciplineType[$strDiscTypeTrackNoWind] . " \r\n                                OR d.Typ = " . $cfgDisciplineType[$strDiscTypeRelay] . " OR d.Typ = " . $cfgDisciplineType[$strDiscTypeDistance] . ")             \r\n                        ORDER BY\r\n                            k.Anzeige\r\n                            , d.Anzeige\r\n                            , r.Datum\r\n                            , r.Startzeit\r\n                    ");
             } else {
                 // heats separate
                 $results = mysql_query("\r\n                            SELECT DISTINCT \r\n                                r.xRunde , \r\n                                k.Name , \r\n                                d.Name , \r\n                                d.Typ , \r\n                                w.xWettkampf , \r\n                                r.QualifikationSieger , \r\n                                r.QualifikationLeistung , \r\n                                w.Punkteformel , \r\n                                w.Windmessung , \r\n                                r.Speakerstatus , \r\n                                d.Staffellaeufer , \r\n                                CONCAT(DATE_FORMAT(r.Datum,'%d.%m.%y'), \r\n                                ' ', \r\n                                TIME_FORMAT(r.Startzeit, '%H:%i')) ,\r\n                                w.xDisziplin ,  \r\n                                rs.Hauptrunde     \r\n                            FROM \r\n                                wettkampf AS w \r\n                                LEFT JOIN kategorie AS k ON (k.xKategorie = w.xKategorie) \r\n                                LEFT JOIN disziplin_" . $_COOKIE['language'] . " as d ON (d.xDisziplin = w.xDisziplin) \r\n                                LEFT JOIN runde AS r ON (r.xWettkampf = w.xWettkampf) \r\n                                LEFT JOIN rundenset as rs ON (r.xRunde=rs.xRunde )           \r\n                            WHERE \r\n                                " . $selection . "  \r\n                                w.xMeeting  = " . $_COOKIE['meeting_id'] . " \r\n                                AND r.Status = 4  \r\n                                AND r.Datum LIKE '%' \r\n                            ORDER BY\r\n                                k.Anzeige\r\n                                , d.Anzeige\r\n                                , r.Datum\r\n                                , r.Startzeit\r\n                ");
             }
             if (mysql_errno() > 0) {
                 // DB error
                 AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
             } else {
                 $limitRankSQL = "";
                 $limitRank = false;
                 if ($_GET['limitRank'] == "yes") {
                     // check if ranks are limited, but limitRankSQL will set only if export is pressed
                     if (!empty($_GET['limitRankFrom']) && !empty($_GET['limitRankTo'])) {
                         $limitRank = true;
                     }
                 }
                 // start a new HTML display page
                 if ($formaction == 'view' || $formaction == 'speaker') {
                     // display page
                     $list->printPageTitle("{$strRanklistAll} " . $_COOKIE['meeting']);
                 } elseif ($formaction == "print") {
                     $list->insertPageBreak();
                     $list->printPageTitle("{$strRanklistAll}");
                 }
                 // initialize variables
                 $cat = '';
                 $evnt = 0;
                 if (mysql_num_rows($results) == 0) {
                     echo "<br><br><b><blockquote>{$strErrNoResults}</blockquote></b>";
                 }
                 while ($row = mysql_fetch_row($results)) {
                     // for a combined event, the rounds are merged, so jump until the next event
                     if ($cRounds > 1) {
                         $cRounds--;
                         continue;
                     }
                     $roundSQL = "s.xRunde = {$row['0']}";
                     $cRounds = 0;
                     // check page  break
                     if (is_a($list, "PRINT_RankingList") && $cat != '' && ($break == 'discipline' || $break == 'category' && $row[1] != $cat)) {
                         $list->insertPageBreak();
                     }
                     if ($row[3] == $cfgDisciplineType[$strDiscTypeTrack] || $row[3] == $cfgDisciplineType[$strDiscTypeTrackNoWind] || $row[3] == $cfgDisciplineType[$strDiscTypeRelay]) {
                         $eval = $cfgEvalType[$strEvalTypeHeat];
                     } else {
                         $eval = $cfgEvalType[$strEvalTypeAll];
                     }
                     $roundName = '';
                     $type = '';
                     $res = mysql_query("\r\n            SELECT\r\n                rt.Name\r\n                , rt.Typ\r\n                , rt.Wertung\r\n            FROM\r\n                runde\r\n                LEFT JOIN rundentyp_" . $_COOKIE['language'] . " AS rt ON (rt.xRundentyp = runde.xRundentyp)\r\n            WHERE \r\n                runde.xRunde = {$row['0']}");
                     if (mysql_errno() > 0) {
                         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                     } else {
                         if (mysql_num_rows($res) > 0) {
                             $row_rt = mysql_fetch_row($res);
                             if ($row_rt[1] == '0') {
                                 $type = " ";
                                 $row_rt[0] = '';
                             } else {
                                 $type = $row_rt[0] . " ";
                             }
                             $eval = $row_rt[2];
                             if ($round != 0) {
                                 // specific round selected
                                 $roundName = $row_rt[0];
                             }
                         }
                         mysql_free_result($res);
                     }
                     $flagSubtitle = false;
                     // set flag to print the subtitle later
                     if ($evnt != $row[4]) {
                         // if this is a combined event, dont fragment list by rounds
                         $combined = AA_checkCombined($row[4]);
                         // not selectet a specific round
                         if ($round == 0 && $combined) {
                             $sql = "SELECT \r\n                                r.xRunde\r\n                            FROM\r\n                                wettkampf as w\r\n                                LEFT JOIN runde as r ON (r.xWettkampf = w.xWettkampf)\r\n                            WHERE    \r\n                                w.xWettkampf = {$row['4']}\r\n                                AND r.status = 4";
                             $res_c = mysql_query($sql);
                             if (mysql_errno() > 0) {
                                 AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                             } else {
                                 $cRounds = mysql_num_rows($res_c);
                                 $roundSQL = "s.xRunde IN (";
                                 while ($row_c = mysql_fetch_array($res_c)) {
                                     $roundSQL .= $row_c[0] . ",";
                                 }
                                 $roundSQL = substr($roundSQL, 0, -1) . ")";
                             }
                         }
                         // set up category and discipline title information
                         $flagSubtitle = true;
                         // set flag to print the subtitle later
                         if ($formaction == 'speaker' && AA_getNextRound($row[4], $row[0]) == 0) {
                             // last round: show ceremony status
                             $list->printCeremonyStatus($row[0], $row[9]);
                         }
                         // print qualification mode if round selected
                         $info = '';
                         if ($round > 0 && ($row[5] > 0 || $row[6] > 0)) {
                             $info = "{$strQualification}: " . $row[5] . " {$strQualifyTop}, " . $row[6] . " {$strQualifyPerformance}";
                             $flagInfoLine1 = true;
                             // set flag to print later the qualification mode if round selected
                             $info_save1 = $info;
                             //$list->printInfoLine($info);
                             $qual_mode = TRUE;
                         }
                         // print qualification descriptions if required
                         $info = '';
                         if ($row[5] > 0 || $row[6] > 0) {
                             foreach ($cfgQualificationType as $qt) {
                                 $info = $info . $qt['token'] . " =" . $qt['text'] . "&nbsp;&nbsp;&nbsp;";
                             }
                             $flagInfoLine2 = true;
                             // set flag to print later the qualification descriptions if required
                             $info_save2 = $info;
                             //$list->printInfoLine($info);
                             $qual_mode = TRUE;
                         }
                         $evnt = $row[4];
                         // keep event ID
                     }
                     // ET new event
                     $relay = AA_checkRelay($row[4]);
                     // check, if this is a relay event
                     $svm = AA_checkSVM($row[4]);
                     // If round evaluated per heat, group results accordingly
                     $order_heat = "";
                     if ($eval == $cfgEvalType[$strEvalTypeHeat]) {
                         // eval per heat
                         $order_heat = "heatid, ";
                     }
                     $valid_result = "";
                     // Order performance depending on discipline type
                     if ($row[3] == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $row[3] == $cfgDisciplineType[$strDiscTypeThrow]) {
                         $order_perf = "DESC";
                     } else {
                         if ($row[3] == $cfgDisciplineType[$strDiscTypeJump]) {
                             if ($row[8] == 1) {
                                 // with wind
                                 $order_perf = "DESC, r.Info ASC";
                             } else {
                                 // without wind
                                 $order_perf = "DESC";
                             }
                         } else {
                             if ($row[3] == $cfgDisciplineType[$strDiscTypeHigh]) {
                                 $order_perf = "DESC";
                                 $valid_result = " AND (r.Info LIKE '%O%'" . " OR r.Leistung < 0)";
                             } else {
                                 $order_perf = "ASC";
                             }
                         }
                     }
                     $sqlSeparate = '';
                     if (($catMerged || $eventMerged) & $heatSeparate) {
                         if ($row[0] > 0 && $row[13] != NULL) {
                             $roundSQL = '';
                             if (empty($limitRankSQL) && empty($valid_result)) {
                                 $sqlSeparate = " ss.RundeZusammen = " . $row[0];
                             } else {
                                 if (empty($limitRankSQL)) {
                                     $valid_result = substr($valid_result, 4, strlen($valid_result));
                                 } elseif (empty($valid_result)) {
                                     $limitRankSQL = substr($limitRankSQL, 4, strlen($limitRankSQL));
                                 }
                                 $sqlSeparate = " AND ss.RundeZusammen = " . $row[0];
                             }
                         }
                     }
                     // get all results ordered by ranking; for invalid results (Rang=0), the
                     // rank is set to max_rank to put them to the end of the list.
                     $max_rank = 999999999;
                     $sql_leistung = $order_perf == 'ASC' ? "r.Leistung" : "IF(r.Leistung<0, (If(r.Leistung = -99, -9, (If (r.Leistung = -98, -8,r.Leistung))) * -1), r.Leistung)";
                     $sql_leistung_order = "IF(r.Leistung is NULL, 999999999  , (IF (r.Leistung < 0,999999999 - r.Leistung,  r.Leistung )))";
                     $order = $order_heat;
                     if ($relay == FALSE) {
                         if ($athleteCat) {
                             $order = $orderAthleteCat . $order_heat;
                         }
                         $query = "SELECT ss.xSerienstart, \r\n                             IF(ss.Rang=0, {$max_rank}, ss.Rang) AS rank, \r\n                             ss.Qualifikation, \r\n                             " . $sql_leistung . " AS leistung_neu, \r\n                             r.Info, \r\n                             s.Bezeichnung, \r\n                             s.Wind, \r\n                             r.Punkte, \r\n                             IF('" . $svm . "', t.Name, IF(a.Vereinsinfo = '', v.Name, a.Vereinsinfo)), \r\n                             at.Name, \r\n                             at.Vorname, \r\n                             at.Jahrgang, \r\n                             LPAD(s.Bezeichnung, 5, '0') AS heatid, \r\n                             IF(at.xRegion = 0, at.Land, re.Anzeige) AS Land, \r\n                             at.xAthlet, \r\n                             ru.Datum, \r\n                             ru.Startzeit ,\r\n                             ss.RundeZusammen,\r\n                             ru.xRunde,  \r\n                             k.Name , \r\n                             k1.Name ,                             \r\n                             k1.Anzeige ,\r\n                             ss.Bemerkung,\r\n                             w.Punkteformel,\r\n                             w.info,\r\n                             a.Startnummer,\r\n                             " . $sql_leistung_order . " AS leistung_order, \r\n                             r.Leistung\r\n                        FROM serie AS s USE INDEX(Runde)\r\n                   LEFT JOIN serienstart AS ss USING(xSerie) \r\n                   LEFT JOIN resultat AS r USING(xSerienstart) \r\n                   LEFT JOIN start AS st ON(ss.xStart = st.xStart) \r\n                   LEFT JOIN anmeldung AS a USING(xAnmeldung) \r\n                   LEFT JOIN athlet AS at USING(xAthlet) \r\n                   LEFT JOIN verein AS v USING(xVerein) \r\n                   LEFT JOIN region AS re ON(at.xRegion = re.xRegion) \r\n                   LEFT JOIN team AS t ON(a.xTeam = t.xTeam) \r\n                   LEFT JOIN runde AS ru ON(s.xRunde = ru.xRunde) \r\n                   LEFT JOIN wettkampf AS w On (w.xWettkampf= st.xWettkampf)   \r\n                   LEFT JOIN kategorie AS k On (w.xKategorie= k.xKategorie)\r\n                   LEFT JOIN kategorie AS k1 ON (a.xKategorie = k1.xKategorie)   \r\n                       WHERE " . $roundSQL . " \r\n                       " . $limitRankSQL . " \r\n                       " . $valid_result . " \r\n                       " . $sqlSeparate . " \r\n                       " . $selectionHeats . "  \r\n                    ORDER BY leistung_order " . $order_perf;
                     } else {
                         // relay event
                         $query = "SELECT ss.xSerienstart,                                   \r\n                             IF(r.Leistung < 0 , {$max_rank}, if (ss.Rang=0, {$max_rank}-1, ss.Rang)) AS rank, \r\n                             ss.Qualifikation, \r\n                             " . $sql_leistung . " AS leistung_neu, \r\n                             r.Info, \r\n                             s.Bezeichnung, \r\n                             s.Wind, \r\n                             r.Punkte, \r\n                             IF('" . $svm . "', t.Name, v.Name), \r\n                             sf.Name, \r\n                             LPAD(s.Bezeichnung, 5, '0') AS heatid, \r\n                             st.xStart, \r\n                             ru.Datum, \r\n                             ru.Startzeit, \r\n                             ss.RundeZusammen,\r\n                             ru.xRunde,\r\n                             k.Name ,\r\n                             ss.Bemerkung    \r\n                        FROM serie AS s USE INDEX(Runde) \r\n                   LEFT JOIN serienstart AS ss USING(xSerie) \r\n                   LEFT JOIN resultat AS r USING(xSerienstart) \r\n                   LEFT JOIN start AS st ON(ss.xStart = st.xStart) \r\n                   LEFT JOIN staffel AS sf USING(xStaffel) \r\n                   LEFT JOIN verein AS v USING(xVerein) \r\n                   LEFT JOIN team AS t ON(sf.xTeam = t.xTeam) \r\n                   LEFT JOIN runde AS ru ON(s.xRunde = ru.xRunde) \r\n                   LEFT JOIN wettkampf AS w On (w.xWettkampf= st.xWettkampf)   \r\n                   LEFT JOIN kategorie AS k On (w.xKategorie= k.xKategorie) \r\n                       WHERE " . $roundSQL . " \r\n                      " . $limitRankSQL . " \r\n                      " . $valid_result . " \r\n                      " . $sqlSeparate . "                         \r\n                    GROUP BY r.xSerienstart \r\n                    ORDER BY " . $order . " \r\n                             rank, \r\n                             r.Leistung \r\n                             " . $order_perf . ", \r\n                             sf.Name;";
                     }
                     $res = mysql_query($query);
                     if (mysql_errno() > 0) {
                         // DB error
                         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                     } else {
                         if (mysql_num_rows($res) == 0) {
                             continue;
                         }
                         // initialize variables
                         $heat = '';
                         $h = 0;
                         $info = '';
                         $id = '';
                         $r = '';
                         $count_rank = 0;
                         $perf_save = '';
                         $nr = 0;
                         if ($formaction == 'view') {
                             $list->startList();
                         }
                         $atCat = '';
                         // process every result
                         while ($row_res = mysql_fetch_array($res)) {
                             if ($flagSubtitle) {
                                 $nr = 0;
                                 if ($heatSeparate) {
                                     if ($relay) {
                                         $list->printSubTitle($row_res[16], $row2_keep, $roundName, $row_res[24]);
                                     } else {
                                         if (!$athleteCat) {
                                             $list->printSubTitle($row_res[19], $row2_keep, $roundName, $row_res[24]);
                                         }
                                     }
                                 } else {
                                     if (!$athleteCat) {
                                         if ($formaction == 'print') {
                                             $list->printSubTitle($row[1], $row[2], $roundName, $row_res[24]);
                                         } else {
                                             $list->printSubTitle($row[1], $row[2], $roundName, $row_res[24]);
                                         }
                                     }
                                 }
                                 $flagSubtitle = false;
                                 if ($formaction == 'print') {
                                     $list->startList();
                                 }
                             }
                             /*
                                 if (!$athleteCat){ 
                                     if ($flagInfoLine1){   
                                         $list->printInfoLine($info_save1);
                                         $flagInfoLine1=false;  
                                     }
                                 }
                                 if (!$athleteCat){ 
                                      if ($flagInfoLine2){  
                                         $list->printInfoLine($info_save2);
                                         $flagInfoLine2=false;  
                                     }
                                 } 
                             */
                             $row_res[3] = $row_res[3] == 1 || $row_res[3] == 2 || $row_res[3] == 3 || $row_res[3] == 4 ? $row_res[3] * -1 : ($row_res[3] == 9 ? -99 : ($row_res[3] == 8 ? -98 : $row_res[3]));
                             $nr = 0;
                             $title = trim($title);
                             if ($row_res[0] != $id) {
                                 if ($h == 0) {
                                     $count_rank = 0;
                                     $nr = 0;
                                     // heat name
                                     if ($eval == $cfgEvalType[$strEvalTypeHeat]) {
                                         if (empty($type)) {
                                             // no round type defined
                                             $type = $strFinalround . " ";
                                         }
                                         $title = $type;
                                         // heat name withour nbr.
                                     } else {
                                         $title = $type;
                                         // heat name withour nbr.
                                     }
                                     $title = trim($title);
                                     // wind per heat
                                     if ($row[3] == $cfgDisciplineType[$strDiscTypeTrack] && $row[8] == 1 && $eval == $cfgEvalType[$strEvalTypeHeat]) {
                                         $heatwind = $row_res[6];
                                         // wind per heat
                                     } else {
                                         $heatwind = '';
                                         // no wind
                                     }
                                     $wind = FALSE;
                                     if ($row[8] == 1 && $row[3] == $cfgDisciplineType[$strDiscTypeJump] || $row[3] == $cfgDisciplineType[$strDiscTypeTrack] && $eval == $cfgEvalType[$strEvalTypeAll]) {
                                         $wind = TRUE;
                                     }
                                     // add column header 'points' if required
                                     $points = FALSE;
                                     if ($row[7] != '0' || $row_res[23] != '0') {
                                         $points = TRUE;
                                     }
                                     if ($show_efforts == 'sb_pb') {
                                         $base_perf = true;
                                     }
                                     if ($athleteCat && !$relay) {
                                         if ($formaction == 'print') {
                                             if ($row_res[20] . $row[2] != $atCatName) {
                                                 $list->printSubTitle($row_res[20], $row2_keep, $roundName, $row_res[24]);
                                                 $atCatName = $row_res[20] . $row[2];
                                                 if ($flagInfoLine1) {
                                                     $list->printInfoLine($info_save1);
                                                     $flagInfoLine1 = false;
                                                 }
                                                 if ($flagInfoLine2) {
                                                     $list->printInfoLine($info_save2);
                                                     $flagInfoLine2 = false;
                                                 }
                                             }
                                         }
                                     }
                                     //  $list->startList();
                                     if ($saison == "I") {
                                         $heatwind = '';
                                     }
                                     $list->printHeaderLine($title, $relay, $points, $wind, $heatwind, $row[11], $svm, $base_perf, $qual_mode, $eval, $withStartnr);
                                     if ($athleteCat && !$relay) {
                                         if ($formaction == 'view') {
                                             if ($row_res[20] . $row[2] != $atCatName) {
                                                 $list->printSubTitle($row_res[20], $row[2], $roundName, $row_res[24]);
                                                 $atCatName = $row_res[20] . $row[2];
                                                 if ($flagInfoLine1) {
                                                     $list->printInfoLine($info_save1, $athleteCat);
                                                     $flagInfoLine1 = false;
                                                 }
                                                 if ($flagInfoLine2) {
                                                     $list->printInfoLine($info_save2, $athleteCat);
                                                     $flagInfoLine2 = false;
                                                 }
                                             }
                                         }
                                     }
                                     $heat = $row_res[5];
                                     // keep heat description
                                     $atCat = $row_res[21];
                                     // keep athlete category
                                     $h++;
                                     // increment if evaluation per heat
                                 }
                                 $count_rank++;
                                 // rank
                                 if ($row_res[1] == $max_rank || $row_res[1] == $max_rank - 1 || $r == $row_res[1] && $heat_keep == $row_res[5]) {
                                     // same rank as previous
                                     $rank = '';
                                 } else {
                                     $rank = $row_res[1];
                                 }
                                 $r = $row_res[1];
                                 // keep rank
                                 $heat_keep = $row_res[5];
                                 // keep rank
                                 // name
                                 $name = $row_res[9];
                                 if ($relay == FALSE) {
                                     $name = $name . " " . $row_res[10];
                                 }
                                 // year of birth
                                 if ($relay == FALSE) {
                                     $year = AA_formatYearOfBirth($row_res[11]);
                                 } else {
                                     $year = '';
                                 }
                                 // year of birth
                                 if ($relay == FALSE) {
                                     $land = $row_res[13] != '' && $row_res[13] != '-' ? $row_res[13] : '';
                                 } else {
                                     $year = '';
                                 }
                                 // performance
                                 if ($row_res[3] < 0) {
                                     // invalid result
                                     if ($row_res[3] == '-98') {
                                         $perf = $cfgInvalidResult['NAA']['code'];
                                     } elseif ($row_res[3] == '-99') {
                                         $perf = $cfgInvalidResult['WAI']['short'];
                                     } else {
                                         foreach ($cfgInvalidResult as $value) {
                                             if ($value['code'] == $row_res[3]) {
                                                 $perf = $value['short'];
                                             }
                                         }
                                     }
                                 } else {
                                     if ($row[3] == $cfgDisciplineType[$strDiscTypeJump] || $row[3] == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $row[3] == $cfgDisciplineType[$strDiscTypeThrow] || $row[3] == $cfgDisciplineType[$strDiscTypeHigh]) {
                                         $perf = AA_formatResultMeter($row_res[3]);
                                     } else {
                                         if ($row[3] == $cfgDisciplineType[$strDiscTypeTrack] || $row[3] == $cfgDisciplineType[$strDiscTypeTrackNoWind]) {
                                             $perf = AA_formatResultTime($row_res[3], true, true);
                                         } else {
                                             $perf = AA_formatResultTime($row_res[3], true);
                                         }
                                     }
                                 }
                                 $qual = '';
                                 if ($row_res[2] > 0) {
                                     // Athlete qualified
                                     foreach ($cfgQualificationType as $qtype) {
                                         if ($qtype['code'] == $row_res[2]) {
                                             $qual = $qtype['token'];
                                         }
                                     }
                                 }
                                 // ET athlete qualified
                                 // points for performance
                                 $points = '';
                                 if ($row[7] != '0') {
                                     $points = $row_res[7];
                                 } else {
                                     if ($row_res[23] != '0') {
                                         $points = $row_res[7];
                                     }
                                 }
                                 // wind info
                                 $wind = '';
                                 $secondResult = false;
                                 if ($r != $max_rank) {
                                     if ($row[3] == $cfgDisciplineType[$strDiscTypeJump] && $row[8] == 1) {
                                         $wind = $row_res[4];
                                         if ($saison == 'I') {
                                             $wind = '';
                                             // indoor: never wind
                                         }
                                         //
                                         // if wind bigger than max wind (2.0) show the next best result without wind too
                                         //
                                         if ($wind > 2) {
                                             $res_wind = mysql_query("\r\n                                        SELECT Info, Leistung FROM\r\n                                            resultat\r\n                                        WHERE\r\n                                            xSerienstart = {$row_res['0']}\r\n                                        ORDER BY\r\n                                            Leistung ASC");
                                             if (mysql_errno() > 0) {
                                                 // DB error
                                                 AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                             } else {
                                                 while ($row_wind = mysql_fetch_array($res_wind)) {
                                                     if ($row_wind[0] <= 2) {
                                                         $secondResult = true;
                                                         $wind2 = $row_wind[0] . ")";
                                                         $perf2 = "(" . AA_formatResultMeter($row_wind[1]);
                                                     }
                                                 }
                                             }
                                         }
                                     } else {
                                         if ($row[3] == $cfgDisciplineType[$strDiscTypeTrack] && $row[8] == 1 && $eval == $cfgEvalType[$strEvalTypeAll]) {
                                             $wind = $row_res[6];
                                             if ($saison == 'I') {
                                                 $wind = '';
                                                 // indoor: never wind
                                             }
                                         }
                                     }
                                 }
                                 // ioc country code
                                 $ioc = '';
                                 if ($relay == false) {
                                     $ioc = $row_res[13];
                                 }
                                 //show performances from base
                                 if ($show_efforts == 'sb_pb' && $relay == false) {
                                     $sql = "SELECT \r\n                                    season_effort\r\n                                    , DATE_FORMAT(season_effort_date, '%d.%m.%Y') AS sb_date\r\n                                    , season_effort_event\r\n                                    , best_effort\r\n                                    , DATE_FORMAT(best_effort_date, '%d.%m.%Y') AS pb_date\r\n                                    , best_effort_event\r\n                                    , season\r\n                                    , xAnmeldung\r\n                        FROM \r\n                            base_performance\r\n                        LEFT JOIN \r\n                            base_athlete USING (id_athlete)\r\n                        LEFT JOIN \r\n                            disziplin_" . $_COOKIE['language'] . " ON (discipline = Code)\r\n                        LEFT JOIN \r\n                            athlet ON (license = Lizenznummer)\r\n                        LEFT JOIN\r\n                            anmeldung USING(xAthlet) \r\n                        WHERE \r\n                            athlet.xAthlet = {$row_res['14']}\r\n                            AND xDisziplin = {$row['12']}\r\n                            AND season = '{$saison}' \r\n                            AND xMeeting = " . $_COOKIE['meeting_id'] . ";";
                                     $res_perf = mysql_query($sql);
                                     if (mysql_errno() > 0) {
                                         // DB error
                                         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                     } else {
                                         if ($res_perf) {
                                             $row_perf = mysql_fetch_array($res_perf);
                                             $is_jump = $row[3] == $cfgDisciplineType[$strDiscTypeJump] || $row[3] == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $row[3] == $cfgDisciplineType[$strDiscTypeThrow] || $row[3] == $cfgDisciplineType[$strDiscTypeHigh];
                                             $order = $is_jump ? 'DESC' : 'ASC';
                                             $best_previous = '';
                                             $previous_date = '';
                                             if ($row_perf !== false) {
                                                 $best_previous = AA_getBestPrevious($row[12], $row_perf['xAnmeldung'], $order, $row_res['Datum'], $row_res['Startzeit'], &$previous_date);
                                             }
                                             if ($is_jump) {
                                                 $sb_perf = AA_formatResultMeter(str_replace(".", "", $row_perf['season_effort']));
                                                 $pb_perf = AA_formatResultMeter(str_replace(".", "", $row_perf['best_effort']));
                                                 $bp_perf = AA_formatResultMeter(str_replace(".", "", $best_previous));
                                                 if ($bp_perf > 0 && $bp_perf > $sb_perf) {
                                                     $sb_perf = $bp_perf;
                                                     $row_perf['season_effort_event'] = $_SESSION['meeting_infos']['Name'];
                                                     $row_perf['sb_date'] = date('d.m.Y', strtotime($previous_date));
                                                 }
                                                 if ($bp_perf > 0 && $bp_perf > $pb_perf) {
                                                     $pb_perf = $bp_perf;
                                                     $row_perf['best_effort_event'] = $_SESSION['meeting_infos']['Name'];
                                                     $row_perf['pb_date'] = date('d.m.Y', strtotime($previous_date));
                                                 }
                                                 //highlight sb or pb if new performance is better
                                                 if (is_numeric($perf)) {
                                                     //prevent special-codes (disq, n.a. usw)
                                                     if ($formaction != 'print') {
                                                         if ($pb_perf != '' && $perf > $pb_perf) {
                                                             $perf = "<b>PB {$perf}</b> ";
                                                         } else {
                                                             if ($sb_perf != '' && $perf > $sb_perf) {
                                                                 $perf = "<b>SB {$perf}</b>";
                                                             }
                                                         }
                                                     } else {
                                                         if ($pb_perf != '' && $perf > $pb_perf) {
                                                             $perf = "<b>PB</b> {$perf}";
                                                         } else {
                                                             if ($sb_perf != '' && $perf > $sb_perf) {
                                                                 $perf = "<b>SB</b> {$perf}";
                                                             }
                                                         }
                                                     }
                                                 }
                                             } else {
                                                 //convert performance-time to milliseconds
                                                 $timepices = explode(":", $row_perf['season_effort']);
                                                 $season_effort = $timepices[0] * 360 * 1000 + $timepices[1] * 60 * 1000 + $timepices[2] * 1000 + $timepices[3];
                                                 $timepices = explode(":", $row_perf['best_effort']);
                                                 $best_effort = $timepices[0] * 360 * 1000 + $timepices[1] * 60 * 1000 + $timepices[2] * 1000 + $timepices[3];
                                                 $previous_effort = intval($best_previous);
                                                 if ($previous_effort > 0 && $previous_effort < $season_effort) {
                                                     $season_effort = $previous_effort;
                                                     $row_perf['season_effort_event'] = $_SESSION['meeting_infos']['Name'];
                                                     $row_perf['sb_date'] = date('d.m.Y', strtotime($previous_date));
                                                 }
                                                 if ($previous_effort > 0 && $previous_effort < $best_effort) {
                                                     $best_effort = $previous_effort;
                                                     $row_perf['best_effort_event'] = $_SESSION['meeting_infos']['Name'];
                                                     $row_perf['pb_date'] = date('d.m.Y', strtotime($previous_date));
                                                 }
                                                 if ($row[3] == $cfgDisciplineType[$strDiscTypeTrack] || $row[3] == $cfgDisciplineType[$strDiscTypeTrackNoWind]) {
                                                     $sb_perf = AA_formatResultTime($season_effort, true, true);
                                                     $pb_perf = AA_formatResultTime($best_effort, true, true);
                                                 } else {
                                                     $sb_perf = AA_formatResultTime($season_effort, true);
                                                     $pb_perf = AA_formatResultTime($best_effort, true);
                                                 }
                                                 if ($formaction != 'print') {
                                                     //highlight sb or pb if new performance is better
                                                     if ($pb_perf != '' && $perf < $pb_perf) {
                                                         $perf = "<b>PB {$perf}</b>";
                                                     } else {
                                                         if ($sb_perf != '' && $perf < $sb_perf) {
                                                             $perf = "<b>SB {$perf}</b>";
                                                         }
                                                     }
                                                 } else {
                                                     if ($pb_perf != '' && $perf < $pb_perf) {
                                                         $perf = "<b>PB</b> {$perf}";
                                                     } else {
                                                         if ($sb_perf != '' && $perf < $sb_perf) {
                                                             $perf = "<b>SB</b> {$perf}";
                                                         }
                                                     }
                                                 }
                                             }
                                             if (!empty($row_perf['season_effort'])) {
                                                 $sb = "<a href=\"#\" class=\"info\">{$sb_perf}<span>{$row_perf['sb_date']}<br>{$row_perf['season_effort_event']}</span></a>";
                                             } else {
                                                 $sb = "&nbsp;";
                                             }
                                             if (!empty($row_perf['best_effort'])) {
                                                 $pb = "<a href=\"#\" class=\"info\">{$pb_perf}<span>{$row_perf['pb_date']}<br>{$row_perf['best_effort_event']}</span></a>";
                                             } else {
                                                 $pb = "&nbsp;";
                                             }
                                         }
                                     }
                                 }
                                 if ($heatSeparate && $row_res[17] > 0) {
                                     $rank = $count_rank;
                                     if ($row_res[3] < 0) {
                                         // invalid result
                                         $rank = '';
                                     }
                                 }
                                 if ($athleteCat && !$relay) {
                                     $nr++;
                                     if ($rank != '') {
                                         if ($formaction == "print") {
                                             $rank = $nr . ". (" . $rank . ")";
                                         } else {
                                             $rank = $nr . " (" . $rank . ")";
                                         }
                                     }
                                 } else {
                                     if ($formaction == "print") {
                                         if ($rank != '') {
                                             $rank .= ".";
                                         }
                                     }
                                 }
                                 if ($relay) {
                                     $remark = $row_res[17];
                                 } else {
                                     $remark = $row_res[22];
                                 }
                                 if ($wind == '-' && $perf == 0) {
                                     $wind = '';
                                 }
                                 if ($row_res[1] == 999999999) {
                                     $count_show = '';
                                 } else {
                                     $count_show = $count_rank;
                                 }
                                 $list->printLine($count_show, $name, $year, $row_res[8], $perf, $wind, $points, $qual, $ioc, $sb, $pb, $qual_mode, $athleteCat, $remark, '', $withStartnr, $row_res[25]);
                                 if ($secondResult) {
                                     $list->printLine("", "", "", "", $perf2, $wind2, "", "", "", "", "", $qual_mode, "", "", $secondResult);
                                 }
                                 $perf_save = $row_res[3];
                                 // keep performance
                                 //
                                 // if relay, show started ahtletes in right order under the result
                                 //
                                 if ($relay) {
                                     if ($row_res[14] > 0) {
                                         $sqlRound = $row_res[14];
                                     } else {
                                         $sqlRound = $row[0];
                                     }
                                     $res_at = mysql_query("\r\n                                SELECT at.Vorname, at.Name, at.Jahrgang FROM\r\n                                    staffelathlet as sfat\r\n                                    LEFT JOIN start as st ON sfat.xAthletenstart = st.xStart\r\n                                    LEFT JOIN anmeldung as a USING(xAnmeldung)\r\n                                    LEFT JOIN athlet as at USING(xAthlet)\r\n                                WHERE\r\n                                    sfat.xStaffelstart = {$row_res['11']}\r\n                                AND    sfat.xRunde = {$sqlRound} \r\n                                ORDER BY\r\n                                    sfat.Position\r\n                                LIMIT {$row['10']}\r\n                        ");
                                     if (mysql_errno() > 0) {
                                         // DB error
                                         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                     } else {
                                         $text_at = "";
                                         while ($row_at = mysql_fetch_array($res_at)) {
                                             $text_at .= $row_at[1] . " " . $row_at[0] . " " . AA_formatYearOfBirth($row_at[2]) . " / ";
                                         }
                                         $text_at = substr($text_at, 0, strlen($text_at) - 2);
                                         $text_at = trim($text_at) != '' ? '(' . $text_at . ')' : '';
                                         $list->printAthletesLine($text_at);
                                     }
                                 }
                                 //
                                 // if biglist, show all attempts
                                 //
                                 if ($biglist) {
                                     if ($row[3] == $cfgDisciplineType[$strDiscTypeJump] || $row[3] == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $row[3] == $cfgDisciplineType[$strDiscTypeThrow] || $row[3] == $cfgDisciplineType[$strDiscTypeHigh]) {
                                         $query_sort = $row[3] == $cfgDisciplineType[$strDiscTypeHigh] ? "ORDER BY Leistung ASC" : "";
                                         $res_att = mysql_query("\r\n                                SELECT * FROM \r\n                                    resultat \r\n                                WHERE xSerienstart = {$row_res['0']}\r\n                                " . $query_sort . "\r\n                                ");
                                         if (mysql_errno() > 0) {
                                             // DB error
                                             AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                         } else {
                                             $text_att = "";
                                             while ($row_att = mysql_fetch_array($res_att)) {
                                                 if ($row_att['Leistung'] < 0) {
                                                     $perf3 = $row_att['Leistung'];
                                                     if ($perf3 == $GLOBALS['cfgMissedAttempt']['db']) {
                                                         // $perf3 = '-';
                                                         $perf3 = $GLOBALS['cfgMissedAttempt']['code'];
                                                     } elseif ($perf3 == $GLOBALS['cfgMissedAttempt']['dbx']) {
                                                         $perf3 = $GLOBALS['cfgMissedAttempt']['codeX'];
                                                     }
                                                     foreach ($cfgInvalidResult as $value) {
                                                         if ($value['code'] == $perf3) {
                                                             $text_att .= $value['short'];
                                                         }
                                                     }
                                                     $text_att .= " / ";
                                                 } else {
                                                     $text_att .= $row_att['Leistung'] == '-' ? '-' : AA_formatResultMeter($row_att['Leistung']);
                                                     if ($saison == "O" || $saison == "I" && $row[3] != $cfgDisciplineType[$strDiscTypeJump]) {
                                                         // outdoor  or (indoor and not jump)
                                                         if ($row_att['Info'] != "-" && !empty($row_att['Info']) && $row[3] != $cfgDisciplineType[$strDiscTypeThrow]) {
                                                             if ($row[3] == $cfgDisciplineType[$strDiscTypeHigh]) {
                                                                 $text_att .= " , " . $row_att['Info'];
                                                             } else {
                                                                 if ($row[8] != 0) {
                                                                     $text_att .= " , " . $row_att['Info'];
                                                                 }
                                                             }
                                                         } elseif ($row_att['Info'] == "-" && $row[3] != $cfgDisciplineType[$strDiscTypeThrow] && $row_att['Leistung'] > 0) {
                                                             $text_att .= " , " . $row_att['Info'];
                                                         }
                                                     }
                                                     $text_att .= " / ";
                                                 }
                                             }
                                             $text_att = substr($text_att, 0, strlen($text_att) - 2);
                                             $list->printAthletesLine("{$strAttempts}: ( {$text_att} )");
                                         }
                                     }
                                 }
                             }
                             // ET athlete processed
                             $id = $row_res[0];
                             // keep current athletes ID
                             if ($relay) {
                                 $catM = $row_res[16];
                             } else {
                                 $catM = $row_res[19];
                             }
                             // keep merged category
                             $info_save1_keep = $info_save1;
                             $info_save2_keep = $info_save2;
                         }
                         // END WHILE result lines
                     }
                     $row1_keep = $row[1];
                     $row2_keep = $row[2];
                 }
             }
             $list->endList();
         }
         //*******************************
         if ($ukc) {
             AA_rankinglist_Combined($category, $formaction, $break, $cover, $sepu23, $cover_timing, $date, $disc_nr, $catFrom, $catTo, $ukc);
         }
         $list->endPage();
         // end HTML page for printing
     }
     // ET DB error event rounds
 }
Пример #27
0
        </td>
        
        
		<td>
<?php 
                            // show combined topperf if last combined discipline
                            if ($combined && $cLast == 1) {
                                $row[8] = $row[17];
                                echo $row[8];
                            } else {
                                if ($row[8] == 0) {
                                    // no top performance set
                                    echo "-";
                                } else {
                                    if ($disctype == $cfgDisciplineType[$strDiscTypeJump] || $disctype == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $disctype == $cfgDisciplineType[$strDiscTypeThrow] || $disctype == $cfgDisciplineType[$strDiscTypeHigh]) {
                                        echo AA_formatResultMeter($row[8]);
                                    } else {
                                        echo AA_formatResultTime($row[8]);
                                    }
                                }
                            }
                            ?>
		</td>
        
        
        
        
		<?php 
                            if ($disctype == $cfgDisciplineType[$strDiscTypeTrack] || $disctype == $cfgDisciplineType[$strDiscTypeTrackNoWind] || $disctype == $cfgDisciplineType[$strDiscTypeRelay] || $disctype == $cfgDisciplineType[$strDiscTypeDistance]) {
                                ?>
		<td colspan='2'><input type="text" id="newtrack" size="3" value="<?php 
Пример #28
0
 function processDiscipline($event, $disctype, $catname, $discname, $windmeas, $list)
 {
     global $rFrom, $rTo, $limitRank, $date;
     require 'config.inc.php';
     $teams = array();
     // team array
     $countRes = 3;
     // results per team counting
     $order_perf = "";
     $valid_result = "";
     if ($disctype == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $disctype == $cfgDisciplineType[$strDiscTypeThrow]) {
         $order_perf = "DESC";
     } else {
         if ($disctype == $cfgDisciplineType[$strDiscTypeJump]) {
             if ($windmeas == 1) {
                 // with wind
                 $order_perf = "DESC, r.Info ASC";
             } else {
                 // without wind
                 $order_perf = "DESC";
             }
         } else {
             if ($disctype == $cfgDisciplineType[$strDiscTypeHigh]) {
                 $order_perf = "DESC";
                 $valid_result = " AND (r.Info LIKE '%O%' OR r.Leistung < 0)";
             } else {
                 $order_perf = "ASC";
             }
         }
     }
     $sql_leistung = $order_perf == 'ASC' ? "r.Leistung" : "IF(r.Leistung<0, (If(r.Leistung = -99, -9, r.Leistung) * -1), r.Leistung)";
     $res = mysql_query("\r\n\t\tSELECT\r\n\t\t\tts.xTeamsm\r\n\t\t\t, ts.Name\r\n\t\t\t, v.Name\r\n\t\t\t, at.Name\r\n\t\t\t, at.Vorname\r\n\t\t\t, a.Startnummer\r\n\t\t\t, " . $sql_leistung . " AS leistung_neu\r\n\t\t\t, at.xAthlet\r\n\t\tFROM\r\n\t\t\tteamsm AS ts\r\n\t\t\t, verein AS v\r\n\t\t\t, teamsmathlet AS tsa\r\n\t\t\t, anmeldung AS a\r\n\t\t\t, athlet AS at\r\n\t\t\t, start AS st\r\n\t\t\t, serienstart AS ss\r\n\t\t\t, resultat AS r \r\n\t\t\t, serie AS se\r\n\t\t\t, runde as ru\r\n\t\tWHERE\r\n\t\t\tts.xWettkampf = {$event}\r\n\t\tAND\ttsa.xTeamsm = ts.xTeamsm\r\n\t\tAND\tv.xVerein = ts.xVerein\r\n\t\tAND\ta.xAnmeldung = tsa.xAnmeldung\r\n\t\tAND\tat.xAthlet = a.xAthlet\r\n\t\tAND\tst.xAnmeldung = tsa.xAnmeldung\r\n\t\tAND\tst.xWettkampf = {$event}\r\n\t\tAND\tss.xStart = st.xStart\r\n\t\tAND ss.xSerie = se.xSerie\r\n\t\tAND se.xRunde = ru.xRunde\r\n\t\tAND ru.Datum LIKE '" . $date . "'\r\n\t\t\r\n\t\tAND\tr.xSerienstart = ss.xSerienstart\r\n\t\t{$valid_result}\r\n\t\t\r\n\t\tORDER BY\r\n\t\t\tts.xTeamsm\r\n\t\t\t, leistung_neu {$order_perf}\r\n\t");
     if (mysql_errno() > 0) {
         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
     } else {
         $team = 0;
         // current team
         $c = 0;
         // count results
         $athletes = array();
         $teams_notValid = array();
         // team array
         while ($row = mysql_fetch_array($res)) {
             $row_res[6] = $row_res[6] == 1 || $row_res[6] == 2 || $row_res[6] == 3 || $row_res[6] == 4 ? $row_res[6] * -1 : ($row_res[6] == 9 ? -99 : $row_res[6]);
             if (isset($athletes[$row[7]])) {
                 continue;
             } else {
                 $athletes[$row[7]] = 1;
             }
             if ($team != $row[0]) {
                 if ($team > 0) {
                     $countAthl = count($teams[$team]['athletes']);
                     if ($countAthl < $countRes) {
                         $teams[$team]['perf'] = 0;
                         $teams_notValid[$team]['club'] = $teams[$team]['club'];
                         $teams_notValid[$team]['name'] = $teams[$team]['name'];
                         $teams_notValid[$team]['perf'] = 0;
                         $teams_notValid[$team]['athletes'] = $teams[$team]['athletes'];
                     } else {
                         $teams[$team]['perf'] /= $countRes;
                     }
                 }
                 $team = $row[0];
                 $teams[$team]['club'] = $row[2];
                 $teams[$team]['name'] = $row[1];
                 $c = 0;
             }
             $perf = 0;
             $perf_print = 0;
             if ($disctype == $cfgDisciplineType[$strDiscTypeJump] || $disctype == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $disctype == $cfgDisciplineType[$strDiscTypeThrow] || $disctype == $cfgDisciplineType[$strDiscTypeHigh]) {
                 $perf = $row[6];
                 $perf_print = AA_formatResultMeter($row[6]);
             } else {
                 $perf = ceil($row[6] / 10) * 10;
                 // round up 1000
                 if ($disctype == $cfgDisciplineType[$strDiscTypeTrack] || $disctype == $cfgDisciplineType[$strDiscTypeTrackNoWind]) {
                     $perf_print = AA_formatResultTime($row[6], true, true);
                 } else {
                     $perf_print = AA_formatResultTime($row[6], true);
                 }
             }
             if ($c < $countRes) {
                 $teams[$team]['perf'] += $perf;
                 $teams[$team]['athletes'][] = "{$row['3']} {$row['4']}, {$perf_print}";
             } else {
                 $teams[$team]['athletes'][] = "[{$row['3']} {$row['4']}, {$perf_print}]";
             }
             $c++;
         }
         if ($team > 0) {
             // calc last team
             $countAthl = count($teams[$team]['athletes']);
             if ($countAthl < $countRes) {
                 $teams[$team]['perf'] = 0;
                 $teams_notValid[$team]['club'] = $teams[$team]['club'];
                 $teams_notValid[$team]['name'] = $teams[$team]['name'];
                 $teams_notValid[$team]['perf'] = 0;
                 $teams_notValid[$team]['athletes'] = $teams[$team]['athletes'];
             } else {
                 $teams[$team]['perf'] /= $countRes;
             }
         }
         $teams_valid = array();
         foreach ($teams as $k => $arr_team) {
             if (!isset($teams_notValid[$k]['name'])) {
                 $teams_valid[$k]['name'] = $teams[$k]['name'];
                 $teams_valid[$k]['club'] = $teams[$k]['club'];
                 $teams_valid[$k]['perf'] = $teams[$k]['perf'];
                 $teams_valid[$k]['athletes'] = $teams[$k]['athletes'];
             }
         }
         $teams = $teams_valid;
         //
         // print team ranking
         //
         if (count($teams) > 0) {
             $list->printSubTitle($catname, $discname, "");
             $list->startList();
             $list->printHeaderLine();
             usort($teams, "cmp_{$order_perf}");
             // sort by performance
             $teams = array_merge($teams, $teams_notValid);
             $rank = 1;
             // initialize rank
             $r = 0;
             // start value for ranking
             $p = 0;
             foreach ($teams as $team) {
                 $r++;
                 if ($limitRank && ($r < $rFrom || $r > $rTo)) {
                     // limit ranks if set (export)
                     continue;
                 }
                 if ($p != $team['perf']) {
                     // not the same performance
                     $rank = $r;
                     // next rank
                 } else {
                     $rank = '';
                 }
                 $perf = 0;
                 if ($disctype == $cfgDisciplineType[$strDiscTypeJump] || $disctype == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $disctype == $cfgDisciplineType[$strDiscTypeThrow] || $disctype == $cfgDisciplineType[$strDiscTypeHigh]) {
                     $perf = AA_formatResultMeter($team['perf']);
                 } else {
                     if ($disctype == $cfgDisciplineType[$strDiscTypeTrack] || $disctype == $cfgDisciplineType[$strDiscTypeTrackNoWind]) {
                         $perf = AA_formatResultTime($team['perf'], true, true);
                     } else {
                         $perf = AA_formatResultTime($team['perf'], true);
                     }
                 }
                 if ($perf == 0) {
                     $rank = '';
                 }
                 $list->printLine($rank, $team['name'], $team['club'], $perf);
                 // print each athlete with result for team
                 $tmp = "";
                 foreach ($team['athletes'] as $athlete) {
                     //$list->printInfo($athlete);
                     $tmp .= $athlete . " / ";
                 }
                 $list->printInfo(substr($tmp, 0, -2));
                 $p = $team['perf'];
                 // keep current performance
             }
             $list->endList();
         }
     }
 }
Пример #29
0
 function processCombined($xCategory, $category, $type, $wTyp)
 {
     //global $rFrom, $rTo, $limitRank;
     $GLOBALS[$rFrom];
     $GLOBALS[$rTo];
     $GLOBALS[$limitRank];
     require './config.inc.php';
     $n = 0;
     // get athlete info per category and team
     $sql = "\r\n        SELECT\r\n            DISTINCT(a.xAnmeldung)\r\n            , at.Name\r\n            , at.Vorname\r\n            , at.Jahrgang\r\n            , t.xTeam\r\n            , t.Name\r\n            , v.Name \r\n            , IF(at.xRegion = 0, at.Land, re.Anzeige) AS Land\r\n            , v.xVerein\r\n        FROM\r\n            anmeldung AS a\r\n            LEFT JOIN athlet AS at ON (at.xAthlet = a.xAthlet)\r\n            INNER JOIN team AS t ON (t.xTeam = a.xTeam)\r\n            LEFT JOIN verein AS v ON (v.xVerein = t.xVerein)\r\n            LEFT JOIN start as st ON (st.xAnmeldung = a.xAnmeldung)\r\n            LEFT JOIN wettkampf as w ON (w.xWettkampf = st.xWettkampf)\r\n            LEFT JOIN region AS re ON (at.xRegion = re.xRegion) \r\n        WHERE \r\n            a.xMeeting = " . $_COOKIE['meeting_id'] . " \r\n            AND w.xKategorie = {$xCategory}\r\n            AND w.Typ = {$wTyp}    \r\n        ORDER BY\r\n            t.xTeam\r\n    ";
     $results = mysql_query($sql);
     if (mysql_errno() > 0) {
         // DB error
         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
     } else {
         $evaluationPt = 5;
         //  nbr of athletes fot calcualte points
         if ($type == 'teamAll') {
             $evaluation = 99999999;
         } else {
             $evaluation = 5;
         }
         // nbr of athletes included in total result
         $a = 0;
         $club = '';
         $info = '';
         $name = '';
         $points = 0;
         $team = '';
         $xTeam = 0;
         $sep = '';
         $tm = '';
         $year = '';
         $country = '';
         while ($row = mysql_fetch_row($results)) {
             // store previous athlete before processing new athlete
             if ($a != $row[0] && $a > 0) {
                 $athleteList[] = array("points" => $points, "name" => $name, "year" => $year, "info" => $info, "country" => $country, "club" => $club);
                 $points = 0;
                 $info = '';
                 $sep = '';
             }
             // store previous team before processing new team
             if ($tm != $row[4] && $tm > 0) {
                 usort($athleteList, "cmp");
                 // sort athletes by points
                 // nbr of athletes to include in team result
                 $total = 0;
                 for ($i = 0; $i < $evaluationPt; $i++) {
                     $total = $total + $athleteList[$i]['points'];
                 }
                 $teamList[] = array("points" => $total, "rank" => $n, "team" => $team, "teamNr" => $xTeam, "club" => $club, "athletes" => $athleteList, "id" => $tm);
                 $team = '';
                 $xTeam = 0;
                 $club = '';
                 unset($athleteList);
                 $sep = '';
             }
             if ($type != 'teamP') {
                 $tm = $row[4];
                 // keep current team
             }
             // events
             $sql = "\r\n                SELECT\r\n                    d.Kurzname\r\n                    , d.Typ\r\n                    , MAX(r.Leistung)\r\n                    , r.Info\r\n                    , MAX(r.Punkte) AS pts\r\n                    , s.Wind\r\n                    , w.Windmessung\r\n                    , st.xAnmeldung\r\n                    , d.xDisziplin\r\n                    , w.Typ \r\n                FROM\r\n                    start AS st USE INDEX (Anmeldung)\r\n                    LEFT JOIN serienstart AS ss ON (ss.xStart = st.xStart   )\r\n                    LEFT JOIN resultat AS r ON (r.xSerienstart = ss.xSerienstart) \r\n                    LEFT JOIN serie AS s ON (s.xSerie = ss.xSerie)\r\n                    LEFT JOIN runde AS ru ON (ru.xRunde = s.xRunde) \r\n                    LEFT JOIN wettkampf AS w ON (w.xWettkampf = st.xWettkampf)\r\n                    LEFT JOIN disziplin_" . $_COOKIE['language'] . " AS d ON (d.xDisziplin = w.xDisziplin) \r\n                WHERE \r\n                    st.xAnmeldung = {$row['0']}                    \r\n                    AND w.Typ = " . $cfgEventType[$strEventTypeClubCombined] . "                  \r\n                    AND \r\n                    ((d.Typ = 6 && (r.Info !=  '" . $cfgResultsHighOut . "' && r.Info !=  '" . $cfgResultsHighOut1 . "' \r\n                                                 && r.Info !=  '" . $cfgResultsHighOut2 . "'  && r.Info !=  '" . $cfgResultsHighOut3 . "'  && r.Info !=  '" . $cfgResultsHighOut4 . "'\r\n                                                 && r.Info !=  '" . $cfgResultsHighOut5 . "' && r.Info !=  '" . $cfgResultsHighOut6 . "' )\r\n                      OR (d.Typ != 6 ) ))\r\n                    \r\n                    \r\n                GROUP BY\r\n                    st.xStart\r\n                ORDER BY\r\n                    ru.Datum\r\n                    , ru.Startzeit\r\n            ";
             //r.Info != '" . $cfgResultsHighOut . "'
             $res = mysql_query($sql);
             if (mysql_errno() > 0) {
                 // DB error
                 AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
             } else {
                 while ($pt_row = mysql_fetch_row($res)) {
                     if ($row[8] != NULL && $pt_row[4] != NULL) {
                         $sql = "INSERT INTO tmp_team \r\n                                            VALUES (\r\n                                                 {$xCategory}   \r\n                                                , {$pt_row['8']}\r\n                                                , {$pt_row['4']} \r\n                                                , {$row['4']}\r\n                                                \r\n                                            )";
                         mysql_query($sql);
                         if (mysql_errno() > 0) {
                             // DB error
                             AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                         }
                     }
                     // set wind, if required
                     if ($pt_row[6] == 1) {
                         if ($pt_row[1] == $cfgDisciplineType[$strDiscTypeTrack]) {
                             $wind = " / " . $pt_row[5];
                         } else {
                             if ($pt_row[1] == $cfgDisciplineType[$strDiscTypeJump]) {
                                 $wind = " / " . $pt_row[3];
                             }
                         }
                     } else {
                         $wind = '';
                     }
                     // format output
                     if ($pt_row[1] == $cfgDisciplineType[$strDiscTypeJump] || $pt_row[1] == $cfgDisciplineType[$strDiscTypeJumpNoWind] || $pt_row[1] == $cfgDisciplineType[$strDiscTypeThrow] || $pt_row[1] == $cfgDisciplineType[$strDiscTypeHigh]) {
                         $perf = AA_formatResultMeter($pt_row[2]);
                     } else {
                         $perf = $pt_row[2];
                         $perf = $perf / 1000;
                         list($sec, $mili) = explode(".", $perf);
                         list($hour, $rest) = explode(".", $sec / 3600);
                         list($min, $rest) = explode(".", ($sec - $hour * 3600) / 60);
                         list($sec, $rest) = explode(".", $sec - $hour * 3600 - $min * 60);
                         // round up to hundredth  (examples: 651 --> 660 and 650 --> 650)
                         $mili = ceil(sprintf("%-03s", $mili) / 10);
                         list($a, $mili) = explode(".", $mili / 100);
                         $sec += $a;
                         // display milli (two decimal after point without 0 in front)
                         $time = '';
                         if ($hour > 0) {
                             $time = sprintf("%02d", $hour) . ":" . sprintf("%02d", $min) . ":" . sprintf("%02d", $sec) . "." . sprintf("%-02s", $mili);
                         } elseif ($min > 0) {
                             $time = sprintf("%02d", $min) . ":" . sprintf("%02d", $sec) . "." . sprintf("%-02s", $mili);
                         } else {
                             $time = $sec . "." . sprintf("%-02s", $mili);
                         }
                         $perf = $time;
                     }
                     // calculate points
                     $points = $points + $pt_row[4];
                     // accumulate points
                     if ($perf != $cfgInvalidResult['DNS']['code']) {
                         if ($perf < 0) {
                             foreach ($cfgInvalidResult as $value) {
                                 if ($value['code'] == $perf) {
                                     $perf = $value['short'];
                                 }
                             }
                         }
                         $info = $info . $sep . $pt_row[0] . "&nbsp;(" . $perf . $wind . "/ " . $pt_row[4] . ")";
                         $sep = ", ";
                     }
                 }
                 // END WHILE combined events
                 mysql_free_result($res);
             }
             $a = $row[0];
             $name = $row[1] . " " . $row[2];
             $year = AA_formatYearOfBirth($row[3]);
             $team = $row[5];
             $xTeam = $row[4];
             $club = $row[6];
             $country = $row[7];
         }
         // END WHILE athlete per category
         mysql_free_result($results);
         if (!empty($tm) || $type == 'teamP') {
             // last athlete
             $athleteList[] = array("points" => $points, "name" => $name, "year" => $year, "info" => $info, "country" => $country, "club" => $club);
             // last team
             usort($athleteList, "cmp");
             // sort athletes by points
             $total = 0;
             for ($i = 0; $i < $evaluationPt; $i++) {
                 $total = $total + $athleteList[$i]['points'];
             }
             $teamList[] = array("points" => $total, "rank" => $n, "team" => $team, "teamNr" => $xTeam, "club" => $club, "athletes" => $athleteList, "id" => $tm);
         }
         $GLOBALS[$list]->printSubTitle("{$category}", "", "");
         $GLOBALS[$list]->startList();
         $GLOBALS[$list]->printHeaderLine();
         usort($teamList, "cmp");
         $rank = 1;
         // initialize rank
         $r = 0;
         // start value for ranking
         $p = 0;
         $tp = 0;
         $t = 0;
         foreach ($teamList as $team) {
             if ($limitRank && ($r < $rFrom || $r > $rTo)) {
                 // limit ranks if set (export)
                 continue;
             }
             if ($p == $team['points']) {
                 // not same points as previous team
                 $rank = $t;
                 // next rank
                 $arr_same[] = $t;
             }
             $p = $team['points'];
             // keep current points
             $t++;
             $team['rank'] = $t;
         }
         $key_1 = array();
         $key_2 = array();
         $p = 0;
         $i = 0;
         foreach ($teamList as $team) {
             $r++;
             if ($limitRank && ($r < $rFrom || $r > $rTo)) {
                 // limit ranks if set (export)
                 continue;
             }
             if ($p != $team['points']) {
                 // not same points as previous team
                 $rank = $r;
                 // next rank
                 $teamList[$i]['rank'] = $rank;
             } else {
                 $teamList[$i]['rank'] = $r;
                 $arr_team = check_samePoints($xCategory);
                 if ($arr_team[$teamNr_keep] < $arr_team[$team['teamNr']]) {
                     //change ranking position
                     $key_1[] = $i - 1;
                     $key_2[] = $i;
                 }
             }
             $i++;
             $p = $team['points'];
             // keep current points
             $teamNr_keep = $team['teamNr'];
             // keep current xTeam
         }
         if (count($key_1) > 0) {
             foreach ($key_1 as $k) {
                 $teamList[$key_1[$k]][rank] = $r;
                 $teamList[$key_2[$k]][rank] = $r - 1;
             }
         }
         usort($teamList, "cmp_rank");
         if ($type == 'teamP') {
             // ranking athletes not depending on team
             usort($athleteList, "cmp");
             // sort athletes by points
             $xmlinfo = "";
             $rank = 0;
             $i = 0;
             foreach ($athleteList as $key => $athlete) {
                 if ($keep_points != $athlete['points']) {
                     $i++;
                     $rank = $i;
                 } else {
                     $rank = '';
                 }
                 $GLOBALS[$list]->printAthleteLine($athlete['name'], $athlete['year'], $athlete['points'], $athlete['country'], $athlete['club'], $rank, $type);
                 if ($GLOBALS['xmladdon']) {
                     $xmlinfo .= $athlete['name'] . " (" . $athlete['points'] . ") / ";
                 } else {
                     $GLOBALS[$list]->printInfo($athlete['info']);
                 }
                 $keep_points = $athlete['points'];
             }
             if ($GLOBALS['xmladdon']) {
                 $GLOBALS[$list]->printInfo(substr($xmlinfo, 0, strlen($xmlinfo) - 2));
             }
         } else {
             // ranking per team
             foreach ($teamList as $team) {
                 $r++;
                 if ($limitRank && ($r < $rFrom || $r > $rTo)) {
                     // limit ranks if set (export)
                     continue;
                 }
                 if ($GLOBALS['xmladdon']) {
                     $GLOBALS[$list]->printLine($team['rank'], $team['team'], $team['club'], $team['points'], $team['id']);
                 } else {
                     $GLOBALS[$list]->printLine($team['rank'], $team['team'], $team['club'], $team['points']);
                 }
                 $p = $team['points'];
                 // keep current points
                 $i = 0;
                 $xmlinfo = "";
                 foreach ($team['athletes'] as $athlete) {
                     if ($i >= $evaluation) {
                         // show only athletes included in end result
                         break;
                     }
                     $i++;
                     $GLOBALS[$list]->printAthleteLine($athlete['name'], $athlete['year'], $athlete['points'], $athlete['country']);
                     if ($GLOBALS['xmladdon']) {
                         $xmlinfo .= $athlete['name'] . " (" . $athlete['points'] . ") / ";
                     } else {
                         $GLOBALS[$list]->printInfo($athlete['info']);
                     }
                 }
                 if ($GLOBALS['xmladdon']) {
                     $GLOBALS[$list]->printInfo(substr($xmlinfo, 0, strlen($xmlinfo) - 2));
                 }
                 $club = $team['club'];
             }
         }
         $GLOBALS[$list]->endList();
     }
     // ET DB error all teams
 }
Пример #30
0
        function printAthleteLine($pos, $nbr, $name, $year, $club, $topperf, $perfs, $fett, $rank, $country = "", $athletID, $curr_class = '', $arg = '', $rStatus, $height)
        {
            ?>
	<tr class='<?php 
            if (empty($curr_class)) {
                echo $this->rowclass[0];
            } else {
                echo $curr_class;
            }
            ?>
' onClick='window.open("speaker_entry.php?item=<?php 
            echo $athletID;
            ?>
", "_self")' style="cursor: pointer;">   
		<td class='forms_right'><?php 
            echo $pos;
            ?>
</td>
		<td class='forms_right'><?php 
            echo $nbr;
            ?>
</td>
		<td nowrap><?php 
            echo $name;
            ?>
</td>
        <?php 
            if ($arg != 'regie') {
                ?>
            <td class='forms_ctr'><?php 
                echo $year;
                ?>
</td>
            <td class='forms_ctr'><?php 
                echo $country != '' && $country != '-' ? $country : '&nbsp;';
                ?>
</td>
           
            <?php 
            }
            if ($rank == 0) {
                $rank = '';
            }
            ?>
  	
         <td nowrap><?php 
            echo $club;
            ?>
</td>    	
		<td><?php 
            echo $topperf;
            ?>
</td>
        <?php 
            if ($rStatus == $GLOBALS['cfgRoundStatus']['results_live']) {
                ?>
             <td><?php 
                echo AA_formatResultMeter($height);
                ?>
</td>  
             <?php 
            }
            ?>
		<td class='forms_ctr'><?php 
            echo $rank;
            ?>
</td>
			<?php 
            if ($arg == 'regie') {
                ?>
            <td><nobr>
            <?php 
            }
            // show all results
            foreach ($perfs as $key => $perf) {
                if ($arg == 'regie') {
                    ?>
        <td><nobr> <?php 
                    if ($fett[$key] == 1) {
                        echo "<b>";
                    }
                    echo $perf;
                    ?>
 </nobr> </td>  
            <?php 
                } else {
                    ?>
		<td><?php 
                    if ($fett[$key] == 1) {
                        echo "<b>";
                    }
                    echo $perf;
                    ?>
</td>
			<?php 
                }
            }
            if ($arg == 'regie') {
                ?>
            </nobr> </td>
            <?php 
            }
            ?>
	
	</tr>
		<?php 
            $this->switchRowClass();
        }