Example #1
0
    function AA_results_Track($round, $layout, $autoRank = '')
    {
        require './lib/cl_gui_button.lib.php';
        require './lib/cl_gui_dropdown.lib.php';
        require './lib/cl_gui_select.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/timing.lib.php';
        $presets = AA_results_getPresets($round);
        // read GET/POST variables
        $relay = AA_checkRelay($presets['event']);
        // check, if this is a relay event
        $svm = AA_checkSVM(0, $round);
        // decide whether to show club or team name
        // $flagMain=AA_getMainRound($round);
        //   if ($flagMain) {
        //
        // terminate result processing
        //
        if ($_GET['arg'] == 'results_done') {
            $eval = AA_results_getEvaluationType($round);
            $combined = AA_checkCombined(0, $round);
            $eventType = AA_getEventTypes($round);
            mysql_query("\r\n\t\tLOCK TABLES\r\n\t\t\trundentyp READ\r\n\t\t\t, runde READ\r\n\t\t\t, serie READ\r\n\t\t\t, resultat READ\r\n\t\t\t, wettkampf READ\r\n\t\t\t, start WRITE\r\n\t\t\t, serienstart WRITE\r\n\t");
            if ($eval == $cfgEvalType[$strEvalTypeAll] || $eval == $cfgEvalType[$strEvalTypeHeat] && isset($eventType['club'])) {
                // eval all heats together
                $heatorder = "";
            } else {
                // default: rank results per heat
                $heatorder = "serie.xSerie, ";
            }
            $nextRound = AA_getNextRound($presets['event'], $round);
            // if this is a combined event, rank all rounds togheter
            $roundSQL = "";
            if ($combined) {
                $roundSQL = "WHERE 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 = "WHERE serie.xRunde = {$round}";
            }
            /*$result = mysql_query("
            		SELECT
            			resultat.Leistung
            			, serienstart.xSerienstart
            			, serienstart.xSerie
            			, serienstart.xStart
            			, serie.Wind
            		FROM
            			resultat
            			, serienstart
            			, serie
            		WHERE resultat.xSerienstart = serienstart.xSerienstart
            		
            		AND serienstart.xSerie = serie.xSerie
            		$roundSQL
            		ORDER BY
            			$heatorder
            			resultat.Leistung ASC
            	");  */
            $sql = "SELECT DISTINCT \r\n\t\t\t\t   resultat.Leistung, \r\n\t\t\t\t   serienstart.xSerienstart, \r\n\t\t\t\t   serienstart.xSerie, \r\n\t\t\t\t   serienstart.xStart, \r\n\t\t\t\t   serie.Wind \r\n\t\t\t  FROM resultat \r\n\t\t LEFT JOIN serienstart USING(xSerienstart) \r\n\t\t LEFT JOIN serie USING(xSerie) \r\n\t\t\t " . $roundSQL . " \r\n\t\t  ORDER BY " . $heatorder . "\r\n\t\t\t\t   resultat.Leistung ASC;";
            $result = mysql_query($sql);
            if (mysql_errno() > 0) {
                // DB error
                AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
            } else {
                $heat = 0;
                $perf = 0;
                $i = 0;
                $rank = 0;
                while ($row = mysql_fetch_row($result)) {
                    // check on codes < 0
                    if ($row[0] < 0) {
                        mysql_query("UPDATE serienstart SET" . " Rang = 0" . " WHERE xSerienstart = " . $row[1]);
                    } else {
                        if (!($eval == $cfgEvalType[$strEvalTypeHeat] && isset($eventType['club']))) {
                            if ($eval != $cfgEvalType[$strEvalTypeAll] && $heat != $row[2]) {
                                $i = 0;
                                // restart ranking   (not SVM with single heat)
                                $perf = 0;
                            }
                        }
                        $i++;
                        // increment ranking
                        if ($perf < $row[0]) {
                            // compare with previous performance
                            $rank = $i;
                            // next rank (only if not same performance)
                        }
                        mysql_query("UPDATE serienstart SET" . " Rang = " . $rank . " WHERE xSerienstart = " . $row[1]);
                        if (mysql_errno() > 0) {
                            AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                        }
                        // keep performance for information (heat seeding)
                        if ($nextRound > 0) {
                            mysql_query("\r\n\t\t\t\t\t\tUPDATE start SET\r\n\t\t\t\t\t\t\tstart.Bestleistung = {$row['0']}\r\n\t\t\t\t\t\tWHERE start.xStart = {$row['3']}\r\n\t\t\t\t\t");
                        }
                        if (mysql_errno() > 0) {
                            AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                        }
                        $heat = $row[2];
                        // keep current heat ID
                        $perf = $row[0];
                        // keep current performance
                    }
                }
                mysql_free_result($result);
            }
            mysql_query("UNLOCK TABLES");
            AA_results_setNotStarted($round);
            // update athletes with no result
            AA_utils_changeRoundStatus($round, $cfgRoundStatus['results_done']);
            if (!empty($GLOBALS['AA_ERROR'])) {
                AA_printErrorMsg($GLOBALS['AA_ERROR']);
            }
            AA_results_resetQualification($round);
        }
        // ET terminate results
        //
        // Qualify athletes after ranks are set
        //
        if ($_GET['arg'] == 'results_done' || $_POST['arg'] == 'save_rank' || $_POST['arg'] == 'set_qual') {
            // 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 ASC" . ", 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
        }
        //
        // calculate ranking points if needed
        //
        if ($_GET['arg'] == 'results_done' || $_POST['arg'] == 'save_rank') {
            AA_utils_calcRankingPoints($round);
            // only for SVM with heat single --> set back the ranks per heat
            if ($eval == $cfgEvalType[$strEvalTypeHeat] && isset($eventType['club'])) {
                mysql_query("\r\n\t\tLOCK TABLES\r\n\t\t\trundentyp READ\r\n\t\t\t, runde READ\r\n\t\t\t, serie READ\r\n\t\t\t, resultat READ   \r\n\t\t\t, serienstart WRITE\r\n\t");
                // if this is a combined event, rank all rounds togheter
                $heatorder = "serie.xSerie, ";
                $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}";
                }
                $result = mysql_query("\r\n\t\tSELECT \r\n\t\t\tresultat.Leistung\r\n\t\t\t, serienstart.xSerienstart\r\n\t\t\t, serienstart.xSerie\r\n\t\t\t, serienstart.xStart\r\n\t\t\t, serie.Wind\r\n\t\t\t, serienstart.Rang\t\t\t\r\n\t\tFROM\r\n\t\t\tresultat\r\n\t\t\t, serienstart\r\n\t\t\t, serie\r\n\t\tWHERE resultat.xSerienstart = serienstart.xSerienstart\r\n\t\t\r\n\t\tAND serienstart.xSerie = serie.xSerie\r\n\t\t{$roundSQL}\r\n\t\tORDER BY\r\n\t\t\t{$heatorder}\r\n\t\t\tresultat.Leistung ASC\r\n\t");
                if (mysql_errno() > 0) {
                    // DB error
                    AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                } else {
                    $heat = 0;
                    $perf = 0;
                    $i = 0;
                    $rank = 0;
                    while ($row = mysql_fetch_row($result)) {
                        // check on codes < 0
                        if ($row[0] < 0) {
                            mysql_query("UPDATE serienstart SET" . " Rang = 0" . " WHERE xSerienstart = " . $row[1]);
                        } else {
                            if ($eval != $cfgEvalType[$strEvalTypeAll] && $heat != $row[2]) {
                                $i = 0;
                                // restart ranking
                                $perf = 0;
                            }
                            if ($row[5] != 0) {
                                // rank
                                $i++;
                                // increment ranking
                                if ($perf < $row[0]) {
                                    // compare with previous performance
                                    $rank = $i;
                                    // next rank (only if not same performance)
                                }
                                mysql_query("UPDATE serienstart SET" . " Rang = " . $rank . " WHERE xSerienstart = " . $row[1]);
                                if (mysql_errno() > 0) {
                                    AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                }
                            }
                            $heat = $row[2];
                            // keep current heat ID
                            $perf = $row[0];
                            // keep current performance
                        }
                    }
                    mysql_free_result($result);
                }
                mysql_query("UNLOCK TABLES");
            }
            // end:   only for SVM with heat single --> set back the ranks per heat
        }
        if ($autoRank) {
            // automatic ranking returns to event monitor
            return;
        }
        //
        // get results from timing system
        //  - save directly in database
        //
        if ($_GET['arg'] == "time_measurement") {
            AA_timing_getResultsManual($round);
        }
        //
        // 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']) {
                            AA_heats_printNewStart($presets['event'], $round, "event_results.php");
                            $nextRound = AA_getNextRound($presets['event'], $round);
                            // show qualification form if another round follows
                            if ($nextRound > 0) {
                                $result = mysql_query("\r\n\t\t\t\tSELECT\r\n\t\t\t\t\tQualifikationSieger\r\n\t\t\t\t\t, QualifikationLeistung\r\n\t\t\t\tFROM\r\n\t\t\t\t\trunde\r\n\t\t\t\tWHERE xRunde = {$round}\r\n\t\t\t");
                                if (mysql_errno() > 0) {
                                    // DB error
                                    AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                } else {
                                    if (($row = mysql_fetch_row($result)) == TRUE) {
                                    }
                                    ?>
<p/>
<table class='dialog'>
	<tr>
	<form action='event_results.php' method='post' name='qualification'>
		<td class='dialog'>
			<input type='hidden' name='arg' value='set_qual' />
			<input type='hidden' name='round' value='<?php 
                                    echo $round;
                                    ?>
' />
			<?php 
                                    echo $strQualification . " " . $strQualifyTop;
                                    ?>
</td>
		<td class='dialog'>
			<input class='nbr' name='qual_top' type='text' maxlength='4'
				value='<?php 
                                    echo $row[0];
                                    ?>
' /></td>
		<td class='dialog'>
			<?php 
                                    echo $strQualification . " " . $strQualifyPerformance;
                                    ?>
</td>
		<td class='dialog'>
			<input class='nbr' name='qual_perf' type='text' maxlength='4'
				value='<?php 
                                    echo $row[1];
                                    ?>
' /></td>
		<td>
			<button type='submit'>
				<?php 
                                    echo $strChange;
                                    ?>
			</button>
		</td>
	</form>
	</tr>
</table>
<p/>
<?php 
                                    $printed = TRUE;
                                    // qualification parameters printed
                                    // ET round found
                                    mysql_free_result($result);
                                }
                                // ET DB error
                            }
                            // ET next round
                            // check if round is final
                            $sql_r = "SELECT \r\n                    rt.Typ\r\n                FROM\r\n                    runde as r\r\n                    LEFT JOIN rundentyp as rt USING (xRundentyp)\r\n                WHERE\r\n                    r.xRunde=" . $round;
                            $res_r = mysql_query($sql_r);
                            if (mysql_errno() > 0) {
                                // DB error
                                AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                            }
                            $order = "ASC";
                            if (mysql_num_rows($res_r) == 1) {
                                $row_r = mysql_fetch_row($res_r);
                                if ($row_r[0] == 'F') {
                                    $order = "DESC";
                                }
                            }
                            // display all athletes
                            if ($relay == FALSE) {
                                // single event
                                $query = "SELECT r.Bahnen" . ", rt.Name" . ", rt.Typ" . ", s.xSerie" . ", s.Bezeichnung" . ", s.Wind" . ", s.Film" . ", an.Bezeichnung" . ", ss.xSerienstart" . ", ss.Position" . ", ss.Rang" . ", ss.Qualifikation" . ", 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" . ", s.Handgestoppt" . ", at.Land" . ", ss.Bemerkung" . ", at.xAthlet" . " 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 " . $order . ", ss.Position";
                            } else {
                                // relay event
                                $query = "SELECT r.Bahnen" . ", rt.Name" . ", rt.Typ" . ", s.xSerie" . ", s.Bezeichnung" . ", s.Wind" . ", s.Film" . ", an.Bezeichnung" . ", ss.xSerienstart" . ", ss.Position" . ", ss.Rang" . ", ss.Qualifikation" . ", sf.Name" . ", if('" . $svm . "', t.Name, v.Name)" . ", LPAD(s.Bezeichnung,5,'0') as heatid" . ", s.Handgestoppt" . ", ss.Bemerkung" . " FROM runde AS r" . ", serie AS s" . ", serienstart AS ss" . ", start AS st" . ", staffel AS sf" . ", verein AS v" . " LEFT JOIN team AS t ON(sf.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 sf.xStaffel = st.xStaffel" . " AND v.xVerein = sf.xVerein" . " ORDER BY heatid " . $order . ", ss.Position";
                            }
                            $result = mysql_query($query);
                            if (mysql_errno() > 0) {
                                // DB error
                                AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                            } else {
                                AA_results_printMenu($round, $status, $prog_mode, 'track');
                                // initialize variables
                                $h = 0;
                                // heat counter
                                $p = 0;
                                // position counter (to evaluate empty heats
                                $i = 0;
                                // input counter (an individual id is assigned to each
                                // input field, focus is then moved to the next input
                                // field by calling $i+1)
                                $rowclass = 'odd';
                                $tracks = 0;
                                $btn = new GUI_Button('', '');
                                // create button object
                                ?>
<p/>
<table class='dialog'>
<?php 
                                while ($row = mysql_fetch_row($result)) {
                                    $p++;
                                    // increment position counter
                                    /*
                                     *  Heat headerline
                                     */
                                    if ($h != $row[3]) {
                                        $tracks = $row[0];
                                        // keep nbr of planned tracks
                                        // fill previous heat with empty tracks
                                        if ($p > 1) {
                                            printEmptyTracks($p, $tracks, 5 + $c);
                                        }
                                        $h = $row[3];
                                        // keep heat ID
                                        $p = 1;
                                        // start with track one
                                        if (is_null($row[1])) {
                                            // only one round
                                            $title = "{$strFinalround}";
                                        } else {
                                            // more than one round
                                            $title = "{$row['1']}";
                                        }
                                        // increment colspan to include ranking and qualification
                                        $c = 0;
                                        if ($status == $cfgRoundStatus['results_done']) {
                                            $c++;
                                            if ($nextRound > 0) {
                                                $c++;
                                            }
                                        }
                                        ?>
	<tr>
		<form action='event_results.php#heat_<?php 
                                        echo $row[4];
                                        ?>
' method='post'
			name='heat_id_<?php 
                                        echo $h;
                                        ?>
'>

		<th class='dialog' colspan='3'>
			<?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[3];
                                        ?>
' />
			<input class='nbr' type='text' name='id' maxlength='2'
				value='<?php 
                                        echo $row[4];
                                        ?>
'
				onChange='document.heat_id_<?php 
                                        echo $h;
                                        ?>
.submit()' />
				<a name='heat_<?php 
                                        echo $row[4];
                                        ?>
' />
		</th>
		</form>
<?php 
                                        if ($status != $cfgRoundStatus['results_done']) {
                                            ?>
		<form action='controller.php' method='post'
			name='filmheat_<?php 
                                            echo $row[4];
                                            ?>
' target='controller'>
		<th class='dialog' colspan='2'>
			<?php 
                                            echo $strFilm;
                                            ?>
			<input type='hidden' name='act' value='saveFilm' />
			<input type='hidden' name='round' value='<?php 
                                            echo $round;
                                            ?>
' />
			<input type='hidden' name='item' value='<?php 
                                            echo $row[3];
                                            ?>
' />
			<input class='nbr' type='text' name='film' id='in_<?php 
                                            echo $i;
                                            ?>
'
				maxlength='3' value='<?php 
                                            echo $row[6];
                                            ?>
'
				onChange="submitForm(document.filmheat_<?php 
                                            echo $row[4];
                                            ?>
, 'in_<?php 
                                            echo $i + 1;
                                            ?>
')" />
		</th>
		</form>
<?php 
                                            $i++;
                                            // next element
                                        } else {
                                            // results done
                                            ?>
		<th class='dialog' colspan='2'>
			<?php 
                                            echo $strFilm . " " . $row[6];
                                            ?>
		</th>
<?php 
                                        }
                                        // track discipline with wind
                                        if ($layout == $cfgDisciplineType[$strDiscTypeTrack]) {
                                            if ($status != $cfgRoundStatus['results_done']) {
                                                ?>
		<form action='controller.php' method='post'
			name='windheat_<?php 
                                                echo $row[4];
                                                ?>
' target='controller'>
		<th class='dialog' colspan='<?php 
                                                echo 1 + $c;
                                                ?>
'>
			<?php 
                                                echo $strWind;
                                                ?>
			<input type='hidden' name='act' value='saveWind' />
			<input type='hidden' name='obj' value='windheat_<?php 
                                                echo $row[4];
                                                ?>
' />
			<input type='hidden' name='round' value='<?php 
                                                echo $round;
                                                ?>
' />
			<input type='hidden' name='item' value='<?php 
                                                echo $row[3];
                                                ?>
' />
			<input class='nbr' type='text' name='wind'  id='in_<?php 
                                                echo $i;
                                                ?>
'
				maxlength='5' value='<?php 
                                                echo $row[5];
                                                ?>
'
				onChange="submitForm(document.windheat_<?php 
                                                echo $row[4];
                                                ?>
, 'in_<?php 
                                                echo $i + 1;
                                                ?>
')" />
		</th>
		</form>
<?php 
                                                $i++;
                                                // next element
                                            } else {
                                                // results done
                                                ?>
		<th class='dialog' colspan='2'>
			<?php 
                                                echo $strWind . " " . $row[5];
                                                ?>
		</th>
<?php 
                                            }
                                        } else {
                                            ?>
		<th class='dialog' colspan='<?php 
                                            echo 1 + $c;
                                            ?>
' />
<?php 
                                        }
                                        // ET track discipline with wind
                                        // can set "hand taken time"
                                        if ($row[18] == 1 && $relay == false) {
                                            $handstopped = "checked";
                                        } elseif ($row[15] == 1 && $relay == true) {
                                            $handstopped = "checked";
                                        } else {
                                            $handstopped = "";
                                        }
                                        if ($status != $cfgRoundStatus['results_done']) {
                                            ?>
		<form action='controller.php' method='post'
			name='handstopped_<?php 
                                            echo $row[4];
                                            ?>
' target='controller'>
		<th class='dialog'><?php 
                                            echo $strHandStopped;
                                            ?>
 
			<input type='hidden' name='act' value='saveHandStopped' />
			<input type='hidden' name='obj' value='handstopped_<?php 
                                            echo $row[4];
                                            ?>
' />
			<input type='hidden' name='round' value='<?php 
                                            echo $round;
                                            ?>
' />
			<input type='hidden' name='item' value='<?php 
                                            echo $row[3];
                                            ?>
' />
			<input type="checkbox" name="handstopped" id='in_<?php 
                                            echo $i;
                                            ?>
'
				onChange="submitForm(document.handstopped_<?php 
                                            echo $row[4];
                                            ?>
, 'in_<?php 
                                            echo $i + 1;
                                            ?>
')"
				<?php 
                                            echo $handstopped;
                                            ?>
 >
		</th>
		</form>
<?php 
                                            $i++;
                                            // next element
                                        } else {
                                            ?>
		<th class='dialog'><?php 
                                            echo $strHandStopped;
                                            ?>
			<input type="checkbox" name="handstopped" <?php 
                                            echo $handstopped;
                                            ?>
 disabled>
		</th>
<?php 
                                        }
                                        ?>
	</tr>
<?php 
                                        /*
                                         *  Column header
                                         */
                                        if ($relay == FALSE) {
                                            // athlete display
                                            ?>
	<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>
		<th class='dialog'><?php 
                                            echo $strPerformance;
                                            ?>
</th>
        
<?php 
                                        } else {
                                            // relay display
                                            ?>
	<tr>
		<th class='dialog'><?php 
                                            echo $strPositionShort;
                                            ?>
</th>
		<th class='dialog'><?php 
                                            echo $strRelay;
                                            ?>
</th>
		<th class='dialog'><?php 
                                            if ($svm) {
                                                echo $strTeam;
                                            } else {
                                                echo $strClub;
                                            }
                                            ?>
</th>
		<th class='dialog'><?php 
                                            echo $strPerformance;
                                            ?>
</th>
       
<?php 
                                        }
                                        if ($status == $cfgRoundStatus['results_done']) {
                                            ?>
		<th class='dialog'><?php 
                                            echo $strRank;
                                            ?>
</th>
<?php 
                                            if ($nextRound > 0) {
                                                ?>
		<th class='dialog'><?php 
                                                echo $strQualification;
                                                ?>
</th>
<?php 
                                            }
                                        }
                                        ?>
<th class='dialog'><?php 
                                        echo $strResultRemark;
                                        ?>
</th>     
	</tr>
<?php 
                                    }
                                    // ET new heat
                                    /*
                                     * Empty tracks
                                     */
                                    if ($layout == $cfgDisciplineType[$strDiscTypeTrack] || $layout == $cfgDisciplineType[$strDiscTypeTrackNoWind] || $layout == $cfgDisciplineType[$strDiscTypeRelay]) {
                                        // current track and athlete's position not identical
                                        if ($p < $row[9]) {
                                            $p = printEmptyTracks($p, $row[9] - 1, 5 + $c);
                                        }
                                    }
                                    // ET empty tracks
                                    /*
                                     * Athlete data lines
                                     */
                                    $p = $row[9];
                                    // keep position
                                    if ($p % 2 == 0) {
                                        // even row numer
                                        $rowclass = 'even';
                                    } else {
                                        // odd row number
                                        $rowclass = 'odd';
                                    }
                                    if ($relay == FALSE) {
                                        ?>
	<tr class='<?php 
                                        echo $rowclass;
                                        ?>
'>
		<td class='forms_right'><?php 
                                        echo $row[9];
                                        /* position */
                                        ?>
</td>
		<td class='forms_right'><?php 
                                        echo $row[12];
                                        /* start nbr */
                                        ?>
</td>
		<td><?php 
                                        echo $row[13] . " " . $row[14];
                                        /* name */
                                        ?>
</td>
		<td class='forms_ctr'><?php 
                                        echo AA_formatYearOfBirth($row[15]);
                                        ?>
</td>
		<td><?php 
                                        echo $row[19] != '' && $row[19] != '-' ? $row[19] : '&nbsp;';
                                        ?>
</td>
		<td><?php 
                                        echo $row[16];
                                        /* club */
                                        ?>
</td>
      
<?php 
                                    } else {
                                        // relay
                                        ?>
	<tr class='<?php 
                                        echo $rowclass;
                                        ?>
'>
		<td class='forms_right'><?php 
                                        echo $row[9];
                                        /* position */
                                        ?>
</td>
		<td><?php 
                                        echo $row[12];
                                        /* relay name */
                                        ?>
</td>
		<td><?php 
                                        echo $row[13];
                                        /* club */
                                        ?>
</td>
<?php 
                                    }
                                    $sql = "SELECT rs.xResultat, \r\n\t\t\t\t\t\t\t   rs.Leistung, \r\n\t\t\t\t\t\t\t   rs.Info, \r\n\t\t\t\t\t\t\t   d.Strecke \r\n\t\t\t\t\t\t  FROM resultat AS rs \r\n\t\t\t\t\t LEFT JOIN serienstart AS ss USING(xSerienstart) \r\n\t\t\t\t\t LEFT JOIN serie AS se USING(xSerie) \r\n\t\t\t\t\t LEFT JOIN runde AS ru USING(xRunde) \r\n\t\t\t\t\t LEFT JOIN wettkampf AS w USING(xWettkampf) \r\n\t\t\t\t\t LEFT JOIN disziplin AS d USING(xDisziplin) \r\n\t\t\t\t\t\t WHERE rs.xSerienstart = " . $row[8] . " \r\n\t\t\t\t\t  ORDER BY rs.Leistung ASC;";
                                    $res = mysql_query($sql);
                                    if (mysql_errno() > 0) {
                                        // DB error
                                        AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                    } else {
                                        $perf = '';
                                        $resrow = mysql_fetch_array($res);
                                        if ($resrow != NULL) {
                                            // result found
                                            /*$secflag = false;
                                            		if(substr($resrow[1],0,2) >= 60){
                                            			$secflag = true;
                                            		}*/
                                            $secflag = intval($resrow['Strecke']) <= 400;
                                            $perf = AA_formatResultTime($resrow[1], false, $secflag);
                                        }
                                        if ($status != $cfgRoundStatus['results_done']) {
                                            ?>
		<form action='controller.php' method='post'
			name='perf_<?php 
                                            echo $i;
                                            ?>
' target='controller'>
		<td>
			<input type='hidden' name='act' value='saveResult' />
			<input type='hidden' name='obj' value='perf_<?php 
                                            echo $i;
                                            ?>
' />
			<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[8];
                                            ?>
' />
			<input type='hidden' name='item' value='<?php 
                                            echo $resrow[0];
                                            ?>
' />
			<input class='perftime' type='text' name='perf' id='in_<?php 
                                            echo $i;
                                            ?>
'
				maxlength='12' value='<?php 
                                            echo $perf;
                                            ?>
'
				onChange="submitForm(document.perf_<?php 
                                            echo $i;
                                            ?>
, 'in_<?php 
                                            echo $i + 1;
                                            ?>
')" />
		</td>
		</form>
        
        <form action='controller.php' method='post'
            name='remark_<?php 
                                            echo $i;
                                            ?>
' target='controller'>
        <td>
            <input type='hidden' name='act' value='saveResult' />
            <input type='hidden' name='obj' value='perf_<?php 
                                            echo $i;
                                            ?>
' />
            <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[8];
                                            ?>
' />
            <input type='hidden' name='item' value='<?php 
                                            echo $resrow[0];
                                            ?>
' />
            <input type='hidden' name='xAthlete' value='<?php 
                                            echo $row[21];
                                            ?>
' />   
            <input class='textshort' type='text' name='remark' id='in_<?php 
                                            echo $i;
                                            ?>
'
                maxlength='5' value='<?php 
                                            if ($relay) {
                                                echo $row[16];
                                            } else {
                                                echo $row[20];
                                            }
                                            ?>
'
                onChange="submitForm(document.remark_<?php 
                                            echo $i;
                                            ?>
, 'in_<?php 
                                            echo $i + 1;
                                            ?>
')" />
        </td>
        </form>
        
       
<?php 
                                            $i++;
                                            // next element
                                        } else {
                                            // results done
                                            ?>
		<td class='forms_right'><?php 
                                            echo $perf;
                                            ?>
</td>
<?php 
                                        }
                                        mysql_free_result($res);
                                        if ($status == $cfgRoundStatus['results_done']) {
                                            if ($row[10] > 0) {
                                                ?>
		<form action='event_results.php' method='post'
			name='rank_<?php 
                                                echo $i;
                                                ?>
'>
		<td>
			<input type='hidden' name='arg' value='save_rank' />
			<input type='hidden' name='round' value='<?php 
                                                echo $round;
                                                ?>
' />
			<input type='hidden' name='focus' value='rank_<?php 
                                                echo $i;
                                                ?>
' />
			<input type='hidden' name='item' value='<?php 
                                                echo $row[8];
                                                ?>
' />
			<input class='nbr' type='text' name='rank' maxlength='3'
				value='<?php 
                                                echo $row[10];
                                                ?>
'
				onChange='document.rank_<?php 
                                                echo $i;
                                                ?>
.submit()' />
		</td>
		</form>     
        
       
<?php 
                                                $i++;
                                                // next element
                                                if ($nextRound > 0) {
                                                    ?>
		<form action='event_results.php' method='post'
			name='qual_<?php 
                                                    echo $i;
                                                    ?>
'>
		<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[8];
                                                    ?>
' />
			<input type='hidden' name='oldqual' value='<?php 
                                                    echo $row[11];
                                                    ?>
' />
			<input type='hidden' name='heat' value='<?php 
                                                    echo $row[3];
                                                    ?>
' />
<?php 
                                                    $dropdown = new GUI_Select('qual', 1, "document.qual_{$i}.submit()");
                                                    $dropdown->addOptionNone();
                                                    foreach ($cfgQualificationType as $type) {
                                                        $dropdown->addOption($type['text'], $type['code']);
                                                        if ($type['code'] == $row[11]) {
                                                            $dropdown->selectOption($type['code']);
                                                        }
                                                    }
                                                    $dropdown->printList();
                                                    ?>
		</td>
		</form>
<?php 
                                                    $i++;
                                                    // next element
                                                }
                                                // qualification info
                                            } else {
                                                // no rank
                                                ?>
                        <td /> 
                        
                        
<?php 
                                            }
                                            // ET no rank
                                            ?>
                        
                     <td class='perftime'><?php 
                                            if ($relay) {
                                                echo $row[16];
                                            } else {
                                                echo $row[20];
                                            }
                                            ?>
</td>      
<?php 
                                        }
                                        // ET 'results_done'
                                        ?>
		<td>
<?php 
                                        $btn->set("event_results.php?arg=del_start&item={$row['8']}&round={$round}", $strDelete);
                                        $btn->printButton();
                                        ?>
		</td>
<?php 
                                    }
                                    // ET DB error
                                }
                                // Fill last heat with empty tracks for disciplines run in
                                // individual tracks
                                if ($layout == $cfgDisciplineType[$strDiscTypeTrack] || $layout == $cfgDisciplineType[$strDiscTypeTrackNoWind] || $layout == $cfgDisciplineType[$strDiscTypeRelay]) {
                                    if ($p > 0) {
                                        // heats set up
                                        $p++;
                                        printEmptyTracks($p, $tracks, 5 + $c);
                                    }
                                }
                                // ET track disciplines
                                ?>
</table>
<?php 
                                mysql_free_result($result);
                            }
                            // ET DB error
                        }
                    }
                }
            }
            // ET round selected
            if (!empty($presets['focus'])) {
                ?>

<script type="text/javascript">
<!--
	if(<?php 
                echo $presets['focus'];
                ?>
.rank) {
		<?php 
                echo $presets['focus'];
                ?>
.rank.focus();
		<?php 
                echo $presets['focus'];
                ?>
.rank.select();
		window.scrollBy(0,200);
	}
	else if(<?php 
                echo $presets['focus'];
                ?>
.qual) {
		<?php 
                echo $presets['focus'];
                ?>
.qual.focus();
		window.scrollBy(0,200);
	}
//-->
</script>
<?php 
            }
            ?>
</body>
</html>
<?php 
        } else {
            AA_printErrorMsg($strErrMergedRound);
        }
    }
Example #2
0
// Content
// -------
$mRounds = AA_getMergedRounds($round);
$sqlRound = '';
if (empty($mRounds)) {
    $sqlRound = "= " . $round;
} else {
    $sqlRound = "IN " . $mRounds;
}
// get round info
$sql = "SELECT DATE_FORMAT(r.Datum, '{$cfgDBdateFormat}')" . ", TIME_FORMAT(r.Startzeit, '{$cfgDBtimeFormat}')" . ", r.Bahnen" . ", rt.Name" . ", w.xWettkampf" . ", k.Name" . ", d.Name" . ", d.Typ" . ", w.Windmessung" . ", w.Info" . ", rt.Typ" . ", d.Staffellaeufer" . ", r.Gruppe" . ", w.Zeitmessung" . ", TIME_FORMAT(r.Appellzeit, '{$cfgDBtimeFormat}')" . ", TIME_FORMAT(r.Stellzeit, '{$cfgDBtimeFormat}')" . " FROM runde AS r" . ", wettkampf AS w" . ", kategorie AS k" . ", disziplin AS d" . " LEFT JOIN rundentyp AS rt" . " ON rt.xRundentyp = r.xRundentyp" . " WHERE r.xRunde " . $sqlRound . " AND w.xWettkampf = r.xWettkampf" . " AND k.xKategorie = w.xKategorie" . " AND d.xDisziplin = w.xDisziplin";
$result = mysql_query($sql);
if (mysql_errno() > 0) {
    AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
} else {
    $combined = AA_checkCombined(0, $round);
    $svm = AA_checkSVM(0, $round);
    // decide whether to show club or team name
    if (!empty($mRounds)) {
        while ($row = mysql_fetch_row($result)) {
            $catMerged .= $row[5] . " / ";
        }
        $titel = substr($catMerged, 0, -2);
    }
    $result = mysql_query($sql);
    $row = mysql_fetch_row($result);
    // remember staffelläufer
    $maxRunners = $row[11];
    // get attempts for tech disc
    if ($_POST['countattempts'] == "") {
        $_POST['countattempts'] = $cfgCountAttempts[$row[7]];
Example #3
0
    $present = 1;
}
$mk_group = '';
$tm_group = '';
if (!empty($_GET['group'])) {
    if ($teamsm) {
        $tm_group = $_GET['group'];
    } else {
        $mk_group = $_GET['group'];
    }
}
//
//	Check if relay event
//
$relay = AA_checkRelay($event);
$combined = AA_checkCombined($event, $round);
$svm = AA_checkSVM(0, $round);
// decide whether to show club or team name
//
// Update absent status
//
if ($_GET['arg'] == 'change') {
    mysql_query("LOCK TABLES serienstart READ, staffel as st READ ,  start as s READ,start as s2 READ, verein as v READ, staffelathlet as stat READ, anmeldung as a READ,athlet as at READ,wettkampf as w READ, disziplin_de as d READ, disziplin_fr as d READ , disziplin_it as d READ, wettkampf WRITE, start WRITE");
    if ($comb > 0) {
        // if combined set present for all starts
        /*$res = mysql_query("SELECT * FROM
        			serienstart
        			, start
        			, wettkampf
        		WHERE
        			serienstart.xStart = start.xStart
Example #4
0
 /**
  * seed entries
  * ------------
  */
 function AA_heats_seedEntries($event)
 {
     require './lib/cl_gui_dropdown.lib.php';
     require './lib/cl_gui_select.lib.php';
     require './lib/common.lib.php';
     require './lib/utils.lib.php';
     include './config.inc.php';
     $filmnumber = false;
     $relay = AA_checkRelay($event);
     $combined = AA_checkCombined($event);
     // combined event
     $teamsm = AA_checkTeamSM($event);
     // team sm event
     $cGroup = $_POST['cGroup'];
     // combined group to seed
     $comb_last = AA_checkCombinedLast($event);
     // combined event last discipline
     if (isset($_POST['round'])) {
         $round = $_POST['round'];
     } else {
         if (isset($_GET['round'])) {
             $round = $_GET['round'];
         }
     }
     $size = $_POST['size'];
     if (!empty($_POST['tracks'])) {
         $tracks = $_POST['tracks'];
     } else {
         $tracks = $size;
     }
     $mode = 0;
     if (!empty($_POST['mode'])) {
         $mode = $_POST['mode'];
     }
     //
     //	read athletes/relays, ordered by mode type
     //
     // get type of contest
     // if this is an svm contest, sort with first heat runner
     $svmContest = AA_checkSVMNatAC($event);
     if ($svmContest) {
         $orderFirst = "s.Erstserie ASC,";
         // those with 'y' come first
     } else {
         $orderFirst = "";
     }
     // discipline type for top performance mode and for determining the need of a filmnumber
     $result = mysql_query("\r\n\t\tSELECT\r\n\t\t\td.Typ\r\n\t\tFROM\r\n\t\t\tdisziplin AS d\r\n\t\t\t, wettkampf AS w\r\n\t\tWHERE xWettkampf = {$event}\r\n\t\tAND d.xDisziplin = w.xDisziplin\r\n\t");
     if (mysql_errno() > 0) {
         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
         $order = "RAND()";
     } else {
         $row = mysql_fetch_row($result);
     }
     if ($mode == 0 && !$svmContest) {
         // open mode
         // random order
         $order = "RAND()";
         $badValue = "0";
         if ($row[0] == $cfgDisciplineType[$strDiscTypeTrack] || $row[0] == $cfgDisciplineType[$strDiscTypeTrackNoWind] || $row[0] == $cfgDisciplineType[$strDiscTypeRelay] || $row[0] == $cfgDisciplineType[$strDiscTypeDistance]) {
             $filmnumber = true;
         }
     } elseif ($mode == 3 && !$svmContest) {
         $order = "t.Name";
         // field disciplines
         $badValue = "0";
         $orderFirst = '';
     } elseif ($svmContest) {
         // SVM mode
         if ($row[0] == $cfgDisciplineType[$strDiscTypeTrack] || $row[0] == $cfgDisciplineType[$strDiscTypeTrackNoWind] || $row[0] == $cfgDisciplineType[$strDiscTypeRelay] || $row[0] == $cfgDisciplineType[$strDiscTypeDistance]) {
             $order = "best ASC, RAND()";
             // track disciplines
             $badValue = "99999999";
             $filmnumber = true;
         } else {
             $order = "best ASC, RAND()";
             // field disciplines
             $badValue = "0";
         }
     } else {
         // top performance mode
         if ($row[0] == $cfgDisciplineType[$strDiscTypeTrack] || $row[0] == $cfgDisciplineType[$strDiscTypeTrackNoWind] || $row[0] == $cfgDisciplineType[$strDiscTypeRelay] || $row[0] == $cfgDisciplineType[$strDiscTypeDistance]) {
             $order = "best ASC, RAND()";
             // track disciplines
             $badValue = "99999999";
             $filmnumber = true;
         } else {
             if ($row[0] == $cfgDisciplineType[$strDiscTypeHigh]) {
                 $order = "best DESC, RAND()";
                 // field disciplines  (high)
             } else {
                 $order = "best ASC, RAND()";
                 // field disciplines
             }
             $badValue = "0";
         }
         mysql_free_result($result);
     }
     //
     // read merged rounds and select all events
     //
     $eventMerged = false;
     $sqlEvents = AA_getMergedEvents($round);
     if ($sqlEvents == '') {
         $sqlEvents = " s.xWettkampf = " . $event . " ";
     } else {
         $sqlEvents = " s.xWettkampf IN " . $sqlEvents . " ";
         $eventMerged = true;
     }
     $mergedRounds = AA_getMergedRounds($round);
     if ($mergedRounds == '') {
         $sqlRounds = "= " . $round;
     } else {
         $sqlRounds = "IN " . $mergedRounds;
     }
     //	read entries either for athletes, relays or athletes in combined event
     //
     if (!$combined) {
         if ($relay == FALSE && !$svmContest) {
             // single event
             $query = "SELECT xStart, if(Bestleistung = 0, {$badValue}, Bestleistung) as best, r.xRunde, t.Name" . " FROM start as s LEFT JOIN anmeldung as a ON (s.xAnmeldung = a.xAnmeldung) LEFT JOIN team as t ON (a.xTeam = t.xTeam) LEFT JOIN runde as r On (r.xWettkampf=s.xWettkampf) " . " WHERE " . $sqlEvents . " AND s.Anwesend = 0" . " AND s.xAnmeldung > 0" . " AND a.xAnmeldung = s.xAnmeldung" . " AND r.xRunde " . $sqlRounds . " ORDER BY {$order}";
         } elseif ($relay == FALSE && $svmContest) {
             // single event but svm
             $query = "SELECT s.xStart, if(Bestleistung = 0, {$badValue}, Bestleistung) as best, r.xRunde, t.Name" . " FROM start as s, anmeldung as a LEFT JOIN team as t ON (a.xTeam = t.xTeam) LEFT JOIN runde as r On (r.xWettkampf=s.xWettkampf) " . " WHERE " . $sqlEvents . " AND s.Anwesend = 0" . " AND s.xAnmeldung > 0" . " AND a.xAnmeldung = s.xAnmeldung" . " AND r.xRunde " . $sqlRounds . " ORDER BY {$orderFirst} {$order}";
         } else {
             // relay event
             $query = "SELECT xStart, if(Bestleistung = 0, {$badValue}, Bestleistung) as best, r.xRunde, t.Name" . " FROM start as s Left JOIN staffel as st ON (s.xStaffel = st.xStaffel) LEFT JOIN team as t ON (t.xTeam = st.xTeam) LEFT JOIN runde as r On (r.xWettkampf=s.xWettkampf) " . " WHERE " . $sqlEvents . " AND s.Anwesend = 0" . " AND s.xStaffel > 0" . " AND r.xRunde " . $sqlRounds . " ORDER BY {$order}";
         }
     } else {
         // combined
         if ($comb_last == 1) {
             // last combined --> all athletes together
             $order = str_replace("DESC", "ASC", $order);
             // last combined checks the best points --> order always ASC
             if (!empty($cGroup)) {
                 $query = "SELECT xStart, if(BestleistungMK = 0, {$badValue}, BestleistungMK) as best, a.xAthlet, t.Name" . " FROM start as s, anmeldung as a LEFT JOIN team as t ON (a.xTeam = t.xTeam)" . " WHERE " . $sqlEvents . " AND s.xAnmeldung = a.xAnmeldung" . " AND a.Gruppe = '{$cGroup}'" . " AND s.Anwesend = 0" . " AND s.xAnmeldung > 0" . " ORDER BY {$order}";
             } else {
                 $query = "SELECT xStart, if(BestleistungMK = 0, {$badValue}, BestleistungMK) as best, a.xAthlet,r.xRunde, t.Name" . " FROM start as s, anmeldung as a LEFT JOIN team as t ON (a.xTeam = t.xTeam) LEFT JOIN runde as r On (r.xWettkampf=s.xWettkampf) " . " WHERE " . $sqlEvents . " AND s.xAnmeldung = a.xAnmeldung" . " AND s.Anwesend = 0" . " AND s.xAnmeldung > 0" . " ORDER BY {$order}";
             }
         } else {
             if (!empty($cGroup)) {
                 $query = "SELECT xStart, if(Bestleistung = 0, {$badValue}, Bestleistung) as best, a.xAthlet, t.Name" . " FROM start as s, anmeldung as a LEFT JOIN team as t ON (a.xTeam = t.xTeam)" . " WHERE " . $sqlEvents . " AND s.xAnmeldung = a.xAnmeldung" . " AND a.Gruppe = '{$cGroup}'" . " AND s.Anwesend = 0" . " AND s.xAnmeldung > 0" . " ORDER BY {$order}";
             } else {
                 $query = "SELECT xStart, if(Bestleistung = 0, {$badValue}, Bestleistung) as best, a.xAthlet,r.xRunde, t.Name" . " FROM start as s, anmeldung as a LEFT JOIN team as t ON (a.xTeam = t.xTeam) LEFT JOIN runde as r On (r.xWettkampf=s.xWettkampf) " . " WHERE " . $sqlEvents . " AND s.xAnmeldung = a.xAnmeldung" . " AND s.Anwesend = 0" . " AND s.xAnmeldung > 0" . " ORDER BY {$order}";
             }
         }
     }
     if ($teamsm && !empty($cGroup)) {
         // teamsm event with groups
         $query = "SELECT xStart, if(Bestleistung = 0, {$badValue}, Bestleistung) as best, t.Name" . " FROM start as s, anmeldung as a LEFT JOIN team as t ON (a.xTeam = t.xTeam)" . " WHERE s.xWettkampf = " . $event . " AND s.xAnmeldung = a.xAnmeldung" . " AND a.Gruppe = '{$cGroup}'" . " AND s.Anwesend = 0" . " AND s.xAnmeldung > 0" . " ORDER BY {$order}";
     }
     if ($_POST['mode'] == 3) {
         // count team
         $count_team = 0;
         $pos = strpos($query, "ORDER");
         $query_team = substr($query, 0, $pos);
         $query_team .= " GROUP BY t.Name";
         $res_group = mysql_query($query_team);
         if (mysql_errno() > 0) {
             AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
         } else {
             $count_team = mysql_num_rows($res_group);
         }
     }
     $result = mysql_query($query);
     $entries = mysql_num_rows($result);
     // keep nbr of entries
     $noTeam = true;
     while ($row_check = mysql_fetch_row($result)) {
         // only check for teams for this event
         if ($_POST['mode'] == 3) {
             if ($combined && empty($cGroup)) {
                 if (!empty($row_check[4])) {
                     $noTeam = false;
                 }
             } else {
                 if (!empty($row_check[3])) {
                     $noTeam = false;
                 }
             }
         }
     }
     $result = mysql_query($query);
     // reset to first record
     if (mysql_errno() > 0) {
         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
     }
     if ($noTeam && $_POST['mode'] == 3) {
         // no teams exist for this event
         AA_printErrorMsg($strNoTeam);
     } else {
         if ($entries > 0) {
             mysql_query("LOCK TABLES resultat READ, rundenset READ, wettkampf READ , meeting READ, runde WRITE, serie WRITE" . ", serienstart WRITE, runde as r READ, wettkampf as w READ, kategorie as k READ, disziplin as d READ");
             // check if round still exists
             if (AA_checkReference("runde", "xRunde", $round) == 0) {
                 AA_printErrorMsg($strRound . $strErrNotValid);
             } else {
                 // check if there are any results for this round
                 $res = mysql_query("SELECT xResultat" . " FROM resultat" . ", serienstart" . ", serie" . " WHERE serie.xRunde  " . $sqlRounds . " AND serienstart.xSerie = serie.xSerie" . " AND resultat.xSerienstart = serienstart.xSerienstart");
                 if (mysql_errno() > 0) {
                     AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                 } else {
                     if (mysql_num_rows($res) > 0) {
                         mysql_free_result($res);
                         AA_printErrorMsg($strErrResultsEntered);
                     } else {
                         mysql_free_result($res);
                         $OK = TRUE;
                         //
                         // Delete current start per heat
                         //
                         $res = mysql_query("SELECT xSerie" . " FROM serie" . " WHERE xRunde  " . $sqlRounds);
                         if (mysql_errno() > 0) {
                             AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                             $OK = FALSE;
                         } else {
                             while ($row = mysql_fetch_row($res)) {
                                 mysql_query("DELETE FROM serienstart" . " WHERE xSerie = " . $row[0]);
                                 if (mysql_errno() > 0) {
                                     AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                     $OK = FALSE;
                                 }
                             }
                         }
                         mysql_free_result($res);
                         //
                         // Delete heat
                         //
                         if ($OK == TRUE) {
                             // delete this round's heats
                             mysql_query("DELETE FROM serie" . " WHERE xRunde  " . $sqlRounds);
                             if (mysql_errno() > 0) {
                                 AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                             } else {
                                 // Update round data and seed entries
                                 AA_utils_changeRoundStatus($round, $cfgRoundStatus['heats_in_progress']);
                                 if (!empty($GLOBALS['AA_ERROR'])) {
                                     AA_printErrorMsg($GLOBALS['AA_ERROR']);
                                 }
                                 mysql_query("\r\n\t\t\t\t\t\t\tUPDATE runde SET\r\n\t\t\t\t\t\t\t\tBahnen = {$tracks}\r\n\t\t\t\t\t\t\tWHERE xRunde = {$round}\r\n\t\t\t\t\t\t");
                                 if (mysql_errno() > 0) {
                                     AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                 } else {
                                     // create heats
                                     $filmnr = 0;
                                     if ($filmnumber) {
                                         $filmnr = AA_heats_getNextFilm();
                                     }
                                     // get TV Name
                                     $tvname = '';
                                     $sql = "SELECT \r\n                                        k.Name, k.Geschlecht, d.Name, d.Code , rt.Name , r.xRundentyp\r\n                                  FROM\r\n                                        runde AS r\r\n                                        LEFT JOIN wettkampf AS w ON (r.xWettkampf = w.xWettkampf)\r\n                                        LEFT JOIN kategorie AS k ON (w.xKategorie = k.xKategorie) \r\n                                        LEFT JOIN disziplin AS d ON (w.xDisziplin = d.xDisziplin) \r\n                                        LEFT JOIN rundentyp AS rt ON (rt.xRundentyp = r.xRundentyp) \r\n                                  WHERE\r\n                                        r.xrunde = " . $round . "\r\n                                        AND w.xMeeting = " . $_COOKIE['meeting_id'];
                                     if (mysql_errno() > 0) {
                                         // DB error
                                         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                     }
                                     $res_tv = mysql_query($sql);
                                     $lang = $_COOKIE['language'];
                                     if (mysql_num_rows($res_tv) == 1) {
                                         $row_tv = mysql_fetch_row($res_tv);
                                         if ($row_tv[1] == 'm') {
                                             $tvname = $cfgTVDef[$lang]['m'] . " ";
                                         } else {
                                             $tvname = $cfgTVDef[$lang]['w'] . " ";
                                         }
                                         // $tvname .= ' (' . $row_tv[0] . ') ';
                                         if ($row_tv[3] >= 232 && $row_tv[3] <= 236) {
                                             $tvname .= $cfgTVDef[$lang][232];
                                         } elseif ($row_tv[3] >= 252 && $row_tv[3] <= 256) {
                                             $tvname .= $cfgTVDef[$lang][252];
                                         } elseif ($row_tv[3] == 258) {
                                             $tvname .= $cfgTVDef[$lang][258];
                                         } elseif ($row_tv[3] >= 259 && $row_tv[3] <= 261) {
                                             $tvname .= $cfgTVDef[$lang][259];
                                         } elseif ($row_tv[3] >= 268 && $row_tv[3] <= 271) {
                                             $tvname .= $cfgTVDef[$lang][268];
                                         } elseif ($row_tv[3] == 280) {
                                             $tvname .= $cfgTVDef[$lang][280];
                                         } elseif ($row_tv[3] >= 289 && $row_tv[3] <= 291) {
                                             $tvname .= $cfgTVDef[$lang][289];
                                         } elseif ($row_tv[3] >= 298 && $row_tv[3] <= 301) {
                                             $tvname .= $cfgTVDef[$lang][298];
                                         } elseif ($row_tv[3] >= 347 && $row_tv[3] <= 353) {
                                             $tvname .= $cfgTVDef[$lang][347];
                                         } elseif ($row_tv[3] >= 356 && $row_tv[3] <= 361) {
                                             $tvname .= $cfgTVDef[$lang][356];
                                         } elseif ($row_tv[3] >= 375 && $row_tv[3] <= 381) {
                                             $tvname .= $cfgTVDef[$lang][375];
                                         } elseif ($row_tv[3] >= 387 && $row_tv[3] <= 391) {
                                             $tvname .= $cfgTVDef[$lang][387];
                                         } elseif ($row_tv[3] >= 385 && $row_tv[3] <= 386) {
                                             $tvname .= $cfgTVDef[$lang][385];
                                         } else {
                                             $tvname .= $row_tv[2];
                                         }
                                         if ($row_tv[5] != 9) {
                                             // typ ?= ohne
                                             $tvname .= " " . $row_tv[4];
                                             // Name of type of round
                                         }
                                     }
                                     $h = ceil($entries / $size);
                                     // calc. nbr of heats
                                     if ($_POST['mode'] == 3) {
                                         if ($h > $count_team && $count_team != 0) {
                                             $h = $count_team;
                                         }
                                     }
                                     for ($i = 1; $i <= $h; $i++) {
                                         if ($row_tv[5] != 9) {
                                             // typ != ohne
                                             mysql_query("INSERT INTO serie SET" . " xRunde = " . $round . ", xAnlage = 0" . ", Bezeichnung = " . $i . ", Film = " . $filmnr . ", MaxAthlet = " . $cfgMaxAthlete . ", TVName = '" . $tvname . " " . $i . "'");
                                         } else {
                                             mysql_query("INSERT INTO serie SET" . " xRunde = " . $round . ", xAnlage = 0" . ", Bezeichnung = " . $i . ", Film = " . $filmnr . ", MaxAthlet = " . $cfgMaxAthlete . ", TVName = '" . $tvname . "'");
                                         }
                                         if (mysql_errno() > 0) {
                                             // DB error
                                             AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                         } else {
                                             $heats[] = mysql_insert_id();
                                             if ($filmnumber) {
                                                 $filmnr++;
                                             }
                                         }
                                     }
                                     //
                                     // Mode: open or top performances together
                                     // ---------------------------------------
                                     if ($_POST['mode'] == 0 || $_POST['mode'] == 1 || $_POST['mode'] == 3) {
                                         // seed qualified athletes to heats
                                         // distribute athletes from center to outer tracks
                                         $i = 0;
                                         // heat nbr
                                         $p = 1;
                                         // first position
                                         while ($row = mysql_fetch_row($result)) {
                                             if ($p > $size) {
                                                 // heat full -> start new heat
                                                 if ($_POST['mode'] == 3) {
                                                     if ($combined && empty($cGroup)) {
                                                         if ($row[4] != $team_keep) {
                                                             $i++;
                                                             // next heat
                                                             $p = 1;
                                                             // restart with first position
                                                         }
                                                     } else {
                                                         if ($row[3] != $team_keep) {
                                                             $i++;
                                                             // next heat
                                                             $p = 1;
                                                             // restart with first position
                                                         }
                                                     }
                                                 } else {
                                                     $i++;
                                                     // next heat
                                                     $p = 1;
                                                     // restart with first position
                                                 }
                                             }
                                             if (!empty($cfgTrackOrder[$tracks][$p]) && $_POST['mode'] != 3) {
                                                 $pos = $cfgTrackOrder[$tracks][$p];
                                             } else {
                                                 $pos = $p;
                                             }
                                             $remark = '';
                                             if ($combined) {
                                                 $remark = AA_getResultRemark($row[2]);
                                             }
                                             if ($eventMerged) {
                                                 if ($combined) {
                                                     $roundTogether = $row[3];
                                                 } else {
                                                     $roundTogether = $row[2];
                                                 }
                                                 mysql_query("INSERT INTO serienstart SET" . " Position = " . $pos . ", Bahn = " . $pos . ", xSerie = " . $heats[$i] . ", xStart = " . $row[0] . ", RundeZusammen = " . $roundTogether . ", Bemerkung = '" . $remark . "'");
                                             } else {
                                                 mysql_query("INSERT INTO serienstart SET" . " Position = " . $pos . ", Bahn = " . $pos . ", xSerie = " . $heats[$i] . ", xStart = " . $row[0] . ", Bemerkung = '" . $remark . "'");
                                             }
                                             if (mysql_errno() > 0) {
                                                 // DB error
                                                 AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                             }
                                             $p++;
                                             // next position
                                             if ($combined) {
                                                 $team_keep = $row[4];
                                             } else {
                                                 $team_keep = $row[3];
                                             }
                                         }
                                         for ($j = $i + 1; $j < $h; $j++) {
                                             $sql_del = "DELETE FROM serie WHERE Bezeichnung=" . ($j + 1);
                                             mysql_query($sql_del);
                                         }
                                     } else {
                                         if ($_POST['mode'] == 2) {
                                             // distribute entries to heats
                                             $i = 0;
                                             $p = 1;
                                             $e = 0;
                                             // even or odd --> fill the heats forward or backward
                                             if (!empty($cfgTrackOrder[$tracks][$p])) {
                                                 $pos = $cfgTrackOrder[$tracks][$p];
                                             } else {
                                                 $pos = $p;
                                             }
                                             while ($row = mysql_fetch_row($result)) {
                                                 if ($i >= count($heats) || $i < 0) {
                                                     // end of heat array
                                                     $e++;
                                                     if ($e % 2 != 0) {
                                                         $i = count($heats) - 1;
                                                         // restart with last heat
                                                     } else {
                                                         $i = 0;
                                                         // restart with first heat
                                                     }
                                                     $p++;
                                                     // next position
                                                     if (!empty($cfgTrackOrder[$tracks][$p])) {
                                                         $pos = $cfgTrackOrder[$tracks][$p];
                                                     } else {
                                                         $pos = $p;
                                                     }
                                                 }
                                                 if ($eventMerged) {
                                                     if ($combined) {
                                                         $roundTogether = $row[3];
                                                     } else {
                                                         $roundTogether = $row[2];
                                                     }
                                                     mysql_query("INSERT INTO serienstart SET" . " Position = " . $pos . ", Bahn = " . $pos . ", xSerie = " . $heats[$i] . ", xStart = " . $row[0] . ", RundeZusammen = " . $roundTogether);
                                                 } else {
                                                     $sql = "INSERT INTO serienstart SET" . " Position = " . $pos . ", Bahn = " . $pos . ", xSerie = " . $heats[$i] . ", xStart = " . $row[0];
                                                     mysql_query($sql);
                                                 }
                                                 if (mysql_errno() > 0) {
                                                     // DB error
                                                     AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                                 }
                                                 if ($e % 2 != 0) {
                                                     $i--;
                                                     // previous heat
                                                 } else {
                                                     $i++;
                                                     // next heat
                                                 }
                                             }
                                         }
                                     }
                                     // ET mode
                                 }
                                 // ET DB error (status update)
                             }
                             // ET DB error (delete rounds)
                         }
                         // ET DB error (delete starts)
                     }
                 }
                 // ET results
             }
             // ET round still active
             mysql_query("UNLOCK TABLES");
         }
     }
     // ET DB error, entries found
 }
         AA_printErrorMsg($GLOBALS['AA_ERROR']);
     }
 }
 // handle page break
 if ($i > 0 && $pagebreak == "discipline" && !$noDisc) {
     // not first event
     $doc->insertPageBreak();
 }
 if ($i > 0 && $xCat != $row[7] && $pagebreak == "category") {
     $doc->insertPageBreak();
 }
 $xCat = $row[7];
 $i++;
 $event = $row[4];
 $relay = AA_checkRelay($event);
 $combined = AA_checkCombined($event);
 $svm = AA_checkSVM($event);
 if ($svm) {
     $sortAddition = "t.Name, ";
 }
 $xComb = $row[10];
 if (!empty($row[12])) {
     $row[12] = " ({$row['12']})";
 }
 if ($combined) {
     $doc->event = $row[11] . $row[12];
     if ($_GET['event'] > 0) {
         // only one disciplin of combined event
         $doc->comb_disc = $row[0];
     }
 } else {
Example #6
0
 /**    
  * ranking for decentral before new position
  * ------------------------------------------
  */
 function AA_rankingForNewPosition($round, $pass)
 {
     $presets = AA_results_getPresets($round);
     // read GET/POST variables
     $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;
     $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;
     $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          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);
     if (mysql_errno() > 0) {
         // DB error
         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
     } else {
         $z = 0;
         $arr_attAthlete = array();
         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];
             }
             $z++;
         }
         $maxAthleteAtt = max($arr_attAthlete);
         $minAthleteAtt = min($arr_attAthlete);
         $onlyMaxAthlete = false;
         if ($count_athlete > $maxAthlete) {
             if ($maxAthleteAtt == $minAthleteAtt && $minAthleteAtt == $cfgAfterAttempts1) {
                 $onlyMaxAthlete = true;
             } elseif ($maxAthleteAtt > $cfgAfterAttempts1) {
                 $onlyMaxAthlete = true;
             }
         }
         if ($onlyMaxAthlete && $count_athlete > $maxAthlete) {
             $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);
         }
         if ($count_athlete < $maxAthlete) {
             $maxAthlete = $count_athlete;
             // update max athlete
             AA_setMaxAthlete($xSerie, $maxAthlete);
         }
         if ($pass == 2) {
             $r = 3;
         } elseif ($pass == 3) {
             $r = 5;
         }
         $first_row = false;
         if ($maxAthleteAtt == $minAthleteAtt && $z == $count_athlete) {
             $first_row = true;
             $maxAthleteAtt++;
         }
         $z = 0;
         $att_athlet = 0;
         $fieldFocus = 0;
         $first = true;
         if ($pass == 2) {
             $posSQL = "  ss.Position2 > 0 ";
         } elseif ($pass == 3) {
             $posSQL = "  ss.Position3 > 0 ";
         } else {
             $posSQL = "";
         }
         if (!empty($posSQL) && !empty($roundSQL2)) {
             $roundSQL2 = " AND " . $roundSQL2;
         }
         $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                  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 " . $posSQL . $roundSQL2 . "                       \r\n                  GROUP BY r.xSerienstart\r\n                  ORDER BY posOrder ";
         $result = mysql_query($sql);
         if (mysql_num_rows($result) < $maxAthlete) {
             $maxAthlete = mysql_num_rows($result);
         }
         while ($row = mysql_fetch_row($result)) {
             $z++;
             $att_athlet = $row[0];
             if ($row[0] < $maxAthleteAtt && !$first_row) {
                 break;
             } elseif ($row[0] < $maxAthleteAtt) {
                 $fieldFocus = $att_athlet + 1;
                 break;
             } else {
                 $fieldFocus = $z * ($maxatt + 1) + $att_athlet;
             }
             if ($onlyMaxAthlete && $z >= $maxAthlete) {
                 break;
             }
         }
         if ($fieldFocus == 0) {
             $fieldFocus = 1;
         } else {
             if ($onlyMaxAthlete) {
                 if ($z == $maxAthlete && $att_athlet == $maxAthleteAtt) {
                     $z = 1;
                     $att_athlet++;
                     $fieldFocus = $att_athlet;
                 }
             } else {
                 if ($z == $count_athlete && $att_athlet == $maxAthleteAtt) {
                     $z = 1;
                     $att_athlet++;
                     $fieldFocus = $att_athlet;
                 }
             }
         }
         mysql_free_result($result);
     }
     if ($r > 0) {
         mysql_query("DROP TABLE IF EXISTS tempresult1");
         // temporary table
         mysql_query("DROP TABLE IF EXISTS tempresult2");
         // temporary table
         if (mysql_errno() > 0) {
             // DB error
             AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
         } else {
             mysql_query("\r\n                LOCK TABLES\r\n                    resultat as r READ\r\n                    , serie as s READ   \r\n                    , serienstart as ss WRITE\r\n                    , tempresult1 WRITE\r\n                    , tempresult2 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 tempresult1 (\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 . ") ENGINE=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                    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.xResultat\r\n                       \r\n                ");
                 $sql_temp = "CREATE TABLE tempresult2 (\r\n                                    Leistung int(9)\r\n                                    , Info char(5)\r\n                                     , xSerienstart int(11)  \r\n                                      , xSerie int(11)  )";
                 mysql_query($sql_temp);
                 if (mysql_errno() > 0) {
                     // DB error
                     AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                 }
                 $i = 0;
                 while ($row = mysql_fetch_row($result)) {
                     if ($ss != $row[2]) {
                         // next athlete
                         $i = 0;
                     }
                     if ($i < $r) {
                         $ins = "INSERT INTO tempresult2 VALUES({$row['0']},'{$row['1']}', {$row['2']},{$row['3']})";
                         mysql_query($ins);
                         if (mysql_errno() > 0) {
                             // DB error
                             AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                         }
                     }
                     $ss = $row[2];
                     // keep athlete's ID
                     $i++;
                     // count nbr of results
                 }
                 $sql = "SELECT * FROM tempresult2 \r\n                        ORDER BY\r\n                                xSerienstart\r\n                                , Leistung DESC";
                 $result = mysql_query($sql);
                 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 tempresult1 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                            tempresult1\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                            tempresult1\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 tempresult1");
                 mysql_query("DROP TABLE IF EXISTS tempresult2");
                 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
 }
 function AA_regie_Track($event, $round, $layout, $cat, $disc)
 {
     require './lib/cl_gui_menulist.lib.php';
     require './lib/cl_gui_resulttable.lib.php';
     require './config.inc.php';
     require './lib/common.lib.php';
     require './lib/results.lib.php';
     $relay = AA_checkRelay($event);
     // check, if this is a relay event
     $status = AA_getRoundStatus($round);
     $combined = AA_checkCombined(0, $round);
     $eval = AA_results_getEvaluationType($round);
     if ($eval == $cfgEvalType[$strEvalTypeAll] || $eval == $cfgEvalType[$strEvalTypeHeat] && isset($eventType['club'])) {
         // eval all heats together
         $heatorder = "";
     } else {
         // default: rank results per heat
         $heatorder = "serie.xSerie, ";
     }
     // show qualification info if another round follows
     $nextRound = AA_getNextRound($event, $round);
     if ($nextRound > 0) {
         $result = mysql_query("\r\n\t\t\t\tSELECT\r\n\t\t\t\t\tQualifikationSieger\r\n\t\t\t\t\t, QualifikationLeistung\r\n\t\t\t\tFROM\r\n\t\t\t\t\trunde\r\n\t\t\t\tWHERE xRunde = {$round}\r\n\t\t\t");
         if (mysql_errno() > 0) {
             // DB error
             AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
         } else {
             if (($row = mysql_fetch_row($result)) == TRUE) {
             }
             echo "{$strQualification}: {$row['0']} {$strQualifyTop}, {$row['1']} {$strQualifyPerformance}";
             echo "<p/>";
         }
         // ET DB error
         mysql_free_result($result);
     }
     // ET next 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                     , runde as r 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                    , anmeldung as a READ \r\n                    , athlet as at READ \r\n                    , verein as v READ \r\n                    , anlage as an READ \r\n                    , rundentyp as rt READ   \r\n                    , tempTrack WRITE\r\n            ");
     mysql_query("TRUNCATE TABLE tempTrack");
     // if this is a combined event, rank all rounds togheter
     $roundSQL = "";
     if ($combined) {
         $roundSQL = "WHERE serie.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 = "WHERE serie.xRunde = {$round}";
     }
     if (mysql_errno() > 0) {
         // DB error
         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
     } else {
         $sql = "SELECT DISTINCT \r\n                           resultat.Leistung, \r\n                           serienstart.xSerienstart, \r\n                           serienstart.xSerie, \r\n                           serienstart.xStart, \r\n                           serie.Wind \r\n                     FROM \r\n                           resultat \r\n                           LEFT JOIN serienstart USING(xSerienstart) \r\n                           LEFT JOIN serie USING(xSerie) \r\n                           " . $roundSQL . " \r\n                     ORDER BY " . $heatorder . "\r\n                            resultat.Leistung ASC;";
         $result = mysql_query($sql);
         $heat = 0;
         $perf = 0;
         $perfRounded = 0;
         $i = 0;
         $rank = 0;
         while ($row = mysql_fetch_row($result)) {
             // check on codes < 0
             if ($row[0] < 0) {
                 mysql_query("INSERT INTO tempTrack SET" . " Leistung = " . $row[0] . " , xSerienstart = " . $row[1] . " , xSerie = " . $row[2] . " , rang = 0");
             } else {
                 if (!($eval == $cfgEvalType[$strEvalTypeHeat] && isset($eventType['club']))) {
                     if ($eval != $cfgEvalType[$strEvalTypeAll] && $heat != $row[2]) {
                         $i = 0;
                         // restart ranking   (not SVM with single heat)
                         $perf = 0;
                         $perfRounded = 0;
                     }
                 }
                 $i++;
                 // increment ranking
                 if ($perf < $row[0]) {
                     // compare with previous performance
                     $rank = $i;
                     // next rank (only if not same performance)
                 }
                 mysql_query("INSERT INTO tempTrack SET " . " Leistung = " . $row[0] . " , xSerienstart = " . $row[1] . " , xSerie = " . $row[2] . " , rang = " . $rank);
                 if (mysql_errno() > 0) {
                     AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                 }
                 if (mysql_errno() > 0) {
                     AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                 }
                 $heat = $row[2];
                 // keep current heat ID
                 $perf = $row[0];
                 // keep current performance
             }
             mysql_free_result($temp);
         }
         // display all athletes
         if ($relay == FALSE) {
             // single event
             $query = "\r\n\t\t\t\tSELECT\r\n\t\t\t\t\tr.Bahnen\r\n\t\t\t\t\t, rt.Name\r\n\t\t\t\t\t, rt.Typ\r\n\t\t\t\t\t, s.xSerie\r\n\t\t\t\t\t, s.Bezeichnung\r\n\t\t\t\t\t, s.Wind\r\n\t\t\t\t\t, s.Film\r\n\t\t\t\t\t, s.Status\r\n\t\t\t\t\t, ss.xSerienstart\r\n\t\t\t\t\t, ss.Position\r\n\t\t\t\t\t, ss.Rang\r\n\t\t\t\t\t, ss.Qualifikation\r\n\t\t\t\t\t, a.Startnummer\r\n\t\t\t\t\t, at.Name\r\n\t\t\t\t\t, at.Vorname\r\n\t\t\t\t\t, at.Jahrgang\r\n\t\t\t\t\t, v.Name\r\n\t\t\t\t\t, LPAD(s.Bezeichnung,5,'0') as heatid\r\n\t\t\t\t\t, at.Land\r\n\t\t\t\t\t, st.Bestleistung\r\n\t\t\t\t\t, at.xAthlet\r\n                    , t.rang  \r\n                    , if (ss.Rang = 0, 999999, ss.Rang) as orderRang    \r\n\t\t\t\tFROM\r\n\t\t\t\t\trunde AS r\r\n\t\t\t\t\tLEFT JOIN serie AS s ON (s.xRunde = r.xRunde)\r\n\t\t\t\t\tLEFT JOIN serienstart AS ss ON (ss.xSerie = s.xSerie)\r\n\t\t\t\t\tLEFT JOIN start AS st ON (st.xStart = ss.xStart)\r\n\t\t\t\t\tLEFT JOIN anmeldung AS a ON (a.xAnmeldung = st.xAnmeldung)\r\n\t\t\t\t\tLEFT JOIN athlet AS at ON (at.xAthlet = a.xAthlet)\r\n\t\t\t\t\tLEFT JOIN verein AS v  ON (v.xVerein = at.xVerein)\r\n                    LEFT JOIN tempTrack AS t ON (t.xSerienstart = ss.xSerienstart)  \r\n\t\t\t\t    LEFT JOIN rundentyp AS rt ON rt.xRundentyp = r.xRundentyp\r\n\t\t\t\t    LEFT JOIN anlage AS an ON an.xAnlage = s.xAnlage\r\n\t\t\t\tWHERE \r\n                    r.xRunde = {$round}    \t\t\t\t\r\n\t\t\t\tORDER BY\r\n\t\t\t\t\theatid\r\n\t\t\t\t\t, orderRang\r\n\t\t\t";
         } else {
             // relay event
             $query = "\r\n\t\t\t\tSELECT\r\n\t\t\t\t\tr.Bahnen\r\n\t\t\t\t\t, rt.Name\r\n\t\t\t\t\t, rt.Typ\r\n\t\t\t\t\t, s.xSerie\r\n\t\t\t\t\t, s.Bezeichnung\r\n\t\t\t\t\t, s.Wind\r\n\t\t\t\t\t, s.Film\r\n\t\t\t\t\t, s.Status\r\n\t\t\t\t\t, ss.xSerienstart\r\n\t\t\t\t\t, ss.Position\r\n\t\t\t\t\t, ss.Rang\r\n\t\t\t\t\t, ss.Qualifikation\r\n\t\t\t\t\t, sf.Name\r\n\t\t\t\t\t, v.Name\r\n\t\t\t\t\t, LPAD(s.Bezeichnung,5,'0') as heatid\r\n\t\t\t\t\t, r.xRunde\r\n\t\t\t\t\t, st.xStart\r\n                    , t.rang \r\n                    , if (ss.Rang = 0, 999999, ss.Rang) as orderRang    \r\n\t\t\t\tFROM\r\n\t\t\t\t\trunde AS r\r\n\t\t\t\t\tLEFT JOIN serie AS s ON (s.xRunde = r.xRunde)\r\n\t\t\t\t\tLEFT JOIN serienstart AS ss  ON (ss.xSerie = s.xSerie )\r\n\t\t\t\t\tLEFT JOIN start AS st ON (st.xStart = ss.xStart) \r\n\t\t\t\t\tLEFT JOIN staffel AS sf ON (sf.xStaffel = st.xStaffel) \r\n\t\t\t\t\tLEFT JOIN verein AS v ON (v.xVerein = sf.xVerein) \r\n                    LEFT JOIN tempTrack AS t ON (t.xSerienstart = ss.xSerienstart)   \r\n\t\t\t\t    LEFT JOIN rundentyp AS rt ON rt.xRundentyp = r.xRundentyp\r\n\t\t\t\t    LEFT JOIN anlage AS an ON an.xAnlage = s.xAnlage\r\n\t\t\t\tWHERE \r\n                    r.xRunde = {$round}  \t\t\t\t\r\n\t\t\t\tORDER BY\r\n\t\t\t\t\theatid\r\n\t\t\t\t\t, orderRang\r\n\t\t\t";
         }
         $result = mysql_query($query);
         if (mysql_errno() > 0) {
             // DB error
             AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
         } else {
             // initialize variables
             $h = 0;
             // heat counter
             $p = 0;
             // position counter (to evaluate empty heats
             $tracks = 0;
             $resTable = new GUI_TrackResultTable($round, $layout, $status, $nextRound);
             $resTable->printHeatTitleRegie($cat, $disc);
             while ($row = mysql_fetch_row($result)) {
                 $p++;
                 // increment position counter
                 /*
                  *  Heat headerline
                  */
                 if ($h != $row[3]) {
                     $tracks = $row[0];
                     // keep nbr of planned tracks
                     // fill previous heat with empty tracks
                     if ($p > 1) {
                         $resTable->printEmptyTracks($p, $tracks, 5 + $c);
                     }
                     $h = $row[3];
                     // keep heat ID
                     $p = 1;
                     // start with track one
                     if (is_null($row[1])) {
                         // only one round
                         $title = "{$strFinalround} {$row['4']}";
                     } else {
                         // more than one round
                         $title = "{$row['1']}: {$row['2']}{$row['4']}";
                     }
                     // increment colspan to include ranking and qualification
                     $c = 0;
                     if ($status == $cfgRoundStatus['results_done']) {
                         $c++;
                         if ($nextRound > 0) {
                             $c++;
                         }
                     }
                     $resTable->printHeatTitle($row[3], $row[4], $title, $row[7], $row[6], $row[5], 'regie', $relay);
                     if ($relay == FALSE) {
                         // athlete display
                         $resTable->printAthleteHeader('regie');
                     } else {
                         // relay display
                         $resTable->printRelayHeader('regie');
                     }
                 }
                 // ET new heat
                 /*
                  * Empty tracks
                  */
                 if ($layout == $cfgDisciplineType[$strDiscTypeTrack] || $layout == $cfgDisciplineType[$strDiscTypeTrackNoWind] || $layout == $cfgDisciplineType[$strDiscTypeRelay]) {
                     // current track and athlete's position not identical
                     if ($p < $row[9]) {
                         $p = $resTable->printEmptyTracks($p, $row[9] - 1, 6 + $c);
                     }
                 }
                 // ET empty tracks
                 /*
                  * Athlete/Relay data lines
                  */
                 // get performance
                 $perf = '';
                 $perfRounded = '';
                 $res = mysql_query("\r\n\t\t\t\t\tSELECT\r\n\t\t\t\t\t\trs.xResultat\r\n\t\t\t\t\t\t, rs.Leistung\r\n\t\t\t\t\t\t, rs.Info\r\n\t\t\t\t\tFROM\r\n\t\t\t\t\t\tresultat AS rs\r\n\t\t\t\t\tWHERE rs.xSerienstart = {$row['8']}\r\n\t\t\t\t\tORDER BY\r\n\t\t\t\t\t\trs.Leistung ASC\r\n\t\t\t\t");
                 if (mysql_errno() > 0) {
                     // DB error
                     AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                 } else {
                     $resrow = mysql_fetch_row($res);
                     if ($resrow != NULL) {
                         // result found
                         $perf = AA_formatResultTime($resrow[1]);
                         $perfRounded = AA_formatResultTime($resrow[1], true);
                     }
                     mysql_free_result($res);
                 }
                 // ET DB error
                 // print lines
                 if ($relay == FALSE) {
                     $resTable->printAthleteLine($row[9], $row[12], "{$row['13']} {$row['14']}", '', '', AA_formatResultTime($row[19], true), $perfRounded, $row[10], $row[11], '', $row[20], 'regie', $row[21]);
                 } else {
                     // relay
                     // get Athletes
                     $arrAthletes = array();
                     $sql = "SELECT at.Vorname, at.Name FROM\r\n\t\t\t\t\t\t\t\tstaffelathlet as sfat\r\n\t\t\t\t\t\t\t\tLEFT JOIN start as st ON sfat.xAthletenstart = st.xStart\r\n\t\t\t\t\t\t\t\tLEFT JOIN anmeldung as a USING(xAnmeldung)\r\n\t\t\t\t\t\t\t\tLEFT JOIN athlet as at USING(xAthlet)\r\n\t\t\t\t\t\t\tWHERE\r\n\t\t\t\t\t\t\t\tsfat.xStaffelstart = {$row['16']}\r\n\t\t\t\t\t\t\tAND\tsfat.xRunde = {$row['15']}\r\n\t\t\t\t\t\t\tORDER BY\r\n\t\t\t\t\t\t\t\tsfat.Position";
                     $res_at = mysql_query($sql);
                     if (mysql_errno() > 0) {
                         // DB error
                         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                     } else {
                         while ($row_at = mysql_fetch_array($res_at)) {
                             $arrAthletes[] = array($row_at[1], $row_at[0]);
                         }
                     }
                     $arrAthletes = count($arrAthletes) > 0 ? $arrAthletes : 0;
                     $resTable->printRelayLine($row[9], $row[12], $row[13], $perfRounded, $row[10], $row[11], $arrAthletes, 'regie', $row[17]);
                 }
             }
             // Fill last heat with empty tracks for disciplines run in
             // individual tracks
             if ($layout == $cfgDisciplineType[$strDiscTypeTrack] || $layout == $cfgDisciplineType[$strDiscTypeTrackNoWind] || $layout == $cfgDisciplineType[$strDiscTypeRelay]) {
                 if ($p > 0) {
                     // heats set up
                     $p++;
                     $resTable->printEmptyTracks($p, $tracks, 6 + $c);
                 }
             }
             // ET track disciplines
             $resTable->endTable();
             mysql_free_result($result);
         }
         // ET DB error
     }
     mysql_query("UNLOCK TABLES");
 }
 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);
 }
Example #9
0
    function AA_results_High($round, $layout, $singleRound)
    {
        $zaehler = 0;
        $max = 0;
        foreach ($_POST as $key => $val) {
            $arr_key = explode('_', $key);
            if ($arr_key[0] == 'hight') {
                $max = $arr_key[1];
            }
        }
        if ($max > 0) {
            $max++;
        } else {
            $max = $GLOBALS['cfgCountHeight'];
        }
        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_performance.lib.php';
        $presets = AA_results_getPresets($round);
        // read GET/POST variables
        $performance = 0;
        // initialize
        $svm = AA_checkSVM(0, $round);
        // decide whether to show club or team name
        $prog_mode = AA_results_getProgramMode();
        if ($singleRound > 0) {
            $single_svm = AA_checkSVM(0, $singleRound);
            // decide whether to show club or team name
        }
        $click = true;
        // true = User clicks at this athlete      false = user save athlete before
        //
        // update result(s)
        //
        if ($_POST['arg'] == 'save_res') {
            $click = false;
            // check if athlet valid
            if (AA_checkReference("serienstart", "xSerienstart", $_POST['start']) == 0) {
                AA_printErrorMsg($strErrAthleteNotInHeat);
            } else {
                AA_utils_changeRoundStatus($round, $cfgRoundStatus['results_in_progress']);
                if (!empty($GLOBALS['AA_ERROR'])) {
                    AA_printErrorMsg($GLOBALS['AA_ERROR']);
                }
                mysql_query("\r\n            LOCK TABLES\r\n                disziplin READ\r\n                , runde READ\r\n                , runde AS r READ \r\n                , serienstart WRITE\r\n                , wettkampf READ\r\n                , wettkampf AS w READ \r\n                , resultat WRITE\r\n                , wertungstabelle READ\r\n                , wertungstabelle_punkte READ\r\n                , meeting READ\r\n        ");
                // validate result
                if ($_POST['attempts'] < 0) {
                    $perf = new PerformanceAttempt($_POST['attempts']);
                    $performance = $perf->getPerformance();
                } else {
                    $perf = new PerformanceAttempt($_POST['perf']);
                    $performance = $perf->getPerformance();
                }
                // validate attempts
                if ($performance > 0) {
                    $info = strtoupper($_POST['attempts']);
                    $info = strtr($info, '0', 'O');
                    $info = str_replace("OOO", "O", $info);
                    $info = str_replace("OO", "O", $info);
                    if (in_array($info, $cfgResultsHigh) == false) {
                        $info = NULL;
                    }
                } else {
                    // negative or zero result
                    $info = $cfgResultsHighOut;
                }
                // check on failed attempts (not more than 3 X in a row, it doesent matter on which hights)
                $res = mysql_query("SELECT Leistung, Info FROM \r\n                    resultat\r\n                WHERE\r\n                    xSerienstart = " . $_POST['start'] . "\r\n                ORDER BY\r\n                    Leistung ASC");
                $Xcount = 0;
                while ($row = mysql_fetch_array($res)) {
                    if (strpos($row[1], strtoupper("o")) === false) {
                        preg_match_all("[X]", $row[1], $m);
                        $Xcount += count($m[0]);
                    } else {
                        $Xcount = 0;
                    }
                }
                if (strpos($info, strtoupper("o")) === false) {
                    // count X for last entered attempt
                    preg_match_all("[X]", $info, $m);
                    $Xcount += count($m[0]);
                } else {
                    $Xcount = 0;
                }
                if ($info == $cfgResultsHighOut || $Xcount >= 3) {
                    // last attempt
                    if ($cfgProgramMode[$prog_mode]['name'] == $strProgramModeBackoffice) {
                        $_POST['athlete'] = $_POST['athlete'] + 1;
                        // next athlete
                    }
                    $points = 0;
                } else {
                    /*$sql_sex = "SELECT Geschlecht 
                           FROM athlet 
                      LEFT JOIN anmeldung USING(xAthlet) 
                      LEFT JOIN start USING(xAnmeldung) 
                      LEFT JOIN serienstart USING(xStart) 
                          WHERE xSerienstart = ".$_POST['start'].";";*/
                    $sql_sex = "SELECT Geschlecht \r\n                          FROM kategorie \r\n                     LEFT JOIN wettkampf USING(xKategorie) \r\n                     LEFT JOIN start USING(xWettkampf) \r\n                     LEFT JOIN serienstart USING(xStart) \r\n                         WHERE xSerienstart = " . $_POST['start'] . ";";
                    $query_sex = mysql_query($sql_sex);
                    if ($_POST['attempts'] == '-') {
                        $points = 0;
                    } else {
                        if ($single_svm) {
                            $single_presets = AA_results_getPresets($singleRound);
                            // read GET/POST variables
                            $points = AA_utils_calcPoints($single_presets['event'], $performance, 0, mysql_result($query_sex, 0, 'Geschlecht'));
                        } else {
                            $points = AA_utils_calcPoints($presets['event'], $performance, 0, mysql_result($query_sex, 0, 'Geschlecht'));
                        }
                    }
                }
                if (!empty($info)) {
                    AA_results_update($performance, $info, $points);
                } else {
                    $_POST['athlete']--;
                }
            }
            // ET Athlete valid
            mysql_query("UNLOCK TABLES");
            // set ranks after every new result in mode = decentral with ranking
            // ******************************************************************
            if ($prog_mode == 2) {
                $eval = AA_results_getEvaluationType($round);
                $combined = AA_checkCombined(0, $round);
                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                    serie READ\r\n                    , wettkampf READ\r\n                    , resultat WRITE\r\n                    , serienstart WRITE\r\n                    , tempresult WRITE\r\n            ");
                    // clean ranks, set all to 0
                    mysql_query("UPDATE \r\n                    serienstart\r\n                    , serie\r\n                SET\r\n                    serienstart.Rang = 0\r\n                WHERE\r\n                    serienstart.xSerie = serie.xSerie\r\n                AND    serie.xRunde = {$round}");
                    // Set up a temporary table to hold all results for ranking.
                    mysql_query("\r\n                CREATE TABLE tempresult (\r\n                    xSerienstart int(11)\r\n                    , xSerie int(11)\r\n                    , Leistung int(9)\r\n                    , TopX int(1)\r\n                    , TotalX int(2)\r\n                    )\r\n                    TYPE=HEAP \r\n            ");
                    if (mysql_errno() > 0) {
                        // DB error
                        AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                    } else {
                        // 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 table
                                        mysql_query("\r\n                                    INSERT INTO tempresult\r\n                                    VALUES(\r\n                                        {$serienstart}\r\n                                        , {$serie}\r\n                                        , {$leistung}\r\n                                        , {$topX}\r\n                                        , {$totX})\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 temp table
                            if ($ss != 0 && $leistung != 0) {
                                mysql_query("\r\n                            INSERT INTO tempresult\r\n                            VALUES(\r\n                                {$serienstart}\r\n                                , {$serie}\r\n                                , {$leistung}\r\n                                , {$topX}\r\n                                , {$totX})\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                        tempresult\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 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 = $row[2];
                                $topX = $row[3];
                                $totalX = $row[4];
                            }
                            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)
                AA_results_setNotStarted($round);
                // update athletes with no result
                if (!empty($GLOBALS['AA_ERROR'])) {
                    AA_printErrorMsg($GLOBALS['AA_ERROR']);
                }
            }
            // end prog mode = 2 (decentral with ranking)
        } elseif ($_POST['arg'] == 'save_height') {
            $max = $_POST['max'];
            $arr_prev = array();
            $arr_new = array();
            for ($g = 0; $g < $max; $g++) {
                $name = "hight_" . $g;
                $hiddenName = "hiddenHeight_" . $g;
                $previous_height = $_POST[$hiddenName];
                $previous_height = new PerformanceAttempt($previous_height);
                $previous_height = $previous_height->getPerformance();
                if (isset($_POST[$name])) {
                    $new_height = $_POST[$name];
                    $new_height = new PerformanceAttempt($new_height);
                    $new_height = $new_height->getPerformance();
                } else {
                    $new_height = $previous_height;
                }
                $arr_prev[$g] = $previous_height;
                $arr_new[$g] = $new_height;
            }
            $diff = 0;
            $first_change = false;
            foreach ($arr_prev as $key => $val) {
                if ($first_change) {
                    $arr_new[$key] = $arr_new[$key - 1] + $diff;
                } else {
                    if ($val == $arr_new[$key]) {
                        if ($diff > 0) {
                            $arr_new[$key] = $arr_new[$key - 1] + $diff;
                        }
                    } else {
                        if ($diff == 0) {
                            if ($key == 0) {
                                $first_change = true;
                                if ($_POST['disCode'] == '310') {
                                    // jump
                                    $diff = $cfgHeightDiffJump * 100;
                                } elseif ($_POST['disCode'] == '320') {
                                    $diff = $cfgHeightDiffPole * 100;
                                    // pole
                                } else {
                                    $diff = $cfgHeightDiffJump * 100;
                                }
                            } else {
                                $diff = $arr_new[$key] - $keep_val;
                            }
                        } else {
                            $arr_new[$key] = $arr_prev[$key] + $diff;
                        }
                    }
                }
                $keep_val = $val;
            }
            AA_delHeight($_POST['round'], $_POST['heat']);
            AA_setHeight($arr_new, $_POST['round'], $_POST['heat']);
            $name = "hight_" . $max;
            if (isset($_POST[$name]) && !empty($_POST[$name])) {
                $new_height = $_POST[$name];
                $new_height = new PerformanceAttempt($new_height);
                $new_height = $new_height->getPerformance();
                // insert new hight
                $sql = "INSERT INTO hoehe SET \r\n                                    hoehe = " . $new_height . ",\r\n                                    xRunde = " . $_POST['round'] . ",   \r\n                                    xSerie = " . $_POST['heat'];
                $res = mysql_query($sql);
                if (mysql_errno() > 0) {
                    AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                }
            }
        } else {
            if ($_GET['arg'] == 'delete') {
                AA_results_delete($round, $_GET['item']);
            }
        }
        //
        // terminate result processing
        //
        if ($_GET['arg'] == 'results_done') {
            $eval = AA_results_getEvaluationType($round);
            $combined = AA_checkCombined(0, $round);
            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                serie READ\r\n                , wettkampf READ\r\n                , resultat WRITE\r\n                , serienstart WRITE\r\n                , tempresult WRITE\r\n        ");
                // clean ranks, set all to 0
                mysql_query("UPDATE \r\n                serienstart\r\n                , serie\r\n            SET\r\n                serienstart.Rang = 0\r\n            WHERE\r\n                serienstart.xSerie = serie.xSerie\r\n            AND    serie.xRunde = {$round}");
                // Set up a temporary table to hold all results for ranking.
                mysql_query("\r\n            CREATE TABLE tempresult (\r\n                xSerienstart int(11)\r\n                , xSerie int(11)\r\n                , Leistung int(9)\r\n                , TopX int(1)\r\n                , TotalX int(2)\r\n                )\r\n               TYPE=HEAP\r\n        ");
                if (mysql_errno() > 0) {
                    // DB error
                    AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                } else {
                    // 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 table
                                    mysql_query("\r\n                                INSERT INTO tempresult\r\n                                VALUES(\r\n                                    {$serienstart}\r\n                                    , {$serie}\r\n                                    , {$leistung}\r\n                                    , {$topX}\r\n                                    , {$totX})\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 temp table
                        if ($ss != 0 && $leistung != 0) {
                            mysql_query("\r\n                        INSERT INTO tempresult\r\n                        VALUES(\r\n                            {$serienstart}\r\n                            , {$serie}\r\n                            , {$leistung}\r\n                            , {$topX}\r\n                            , {$totX})\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                    tempresult\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 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 = $row[2];
                            $topX = $row[3];
                            $totalX = $row[4];
                        }
                        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)
                // read all starting athletes with no valid result (rank=0)
                // and add disqualification code
                $result = mysql_query("\r\n            SELECT DISTINCT\r\n                serienstart.xSerienstart\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            AND serienstart.Rang = 0\r\n            AND serie.xRunde = {$round}\r\n            AND resultat.Leistung >= 0\r\n        ");
                if (mysql_errno() > 0) {
                    AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                } else {
                    //
                    while ($row = mysql_fetch_row($result)) {
                        // check if "disqualified" result already there
                        $res = mysql_query("\r\n                    SELECT\r\n                        xResultat\r\n                    FROM\r\n                        resultat\r\n                    WHERE xSerienstart = {$row['0']}\r\n                    AND (Leistung = " . $cfgInvalidResult['DSQ']['code'] . "OR Leistung = " . $cfgInvalidResult['NRS']['code'] . ")");
                        if (mysql_errno() > 0) {
                            // DB error
                            AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                        } else {
                            if (mysql_num_rows($res) <= 0) {
                                mysql_query("\r\n                            INSERT INTO\r\n                                resultat\r\n                            SET\r\n                                Leistung = " . $cfgInvalidResult['NRS']['code'] . "\r\n                                , Info = '{$cfgResultsHighOut}'\r\n                                , xSerienstart = {$row['0']}\r\n                        ");
                                if (mysql_errno() > 0) {
                                    // DB error
                                    AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                }
                            }
                            mysql_free_result($res);
                        }
                    }
                    mysql_free_result($result);
                }
                mysql_query("UNLOCK TABLES");
            }
            // ET DB error (drop temp table)
            AA_results_setNotStarted($round);
            // update athletes with no result
            AA_utils_changeRoundStatus($round, $cfgRoundStatus['results_done']);
            if (!empty($GLOBALS['AA_ERROR'])) {
                AA_printErrorMsg($GLOBALS['AA_ERROR']);
            }
        }
        //
        // calculate ranking points if needed
        //
        if ($_GET['arg'] == 'results_done' || $_POST['arg'] == 'save_rank') {
            AA_utils_calcRankingPoints($round);
        }
        if ($_POST['arg'] == 'save_remark') {
            AA_utils_saveRemark($_POST['item'], $_POST['remark'], $_POST['xAthlete']);
        }
        //
        // 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 && $prog_mode != 2) {
                $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']) {
                            AA_heats_printNewStart($presets['event'], $round, "event_results.php");
                            // display all athletes
                            $result = mysql_query("\r\n            SELECT rt.Name\r\n                , rt.Typ\r\n                , s.xSerie\r\n                , s.Bezeichnung\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 . "', t.Name, IF(a.Vereinsinfo = '', v.Name, a.Vereinsinfo))   \r\n                , LPAD(s.Bezeichnung,5,'0') as heatid\r\n                , rs.xResultat\r\n                , rs.Leistung\r\n                , rs.Info\r\n                , at.Land\r\n                , ss.Bemerkung\r\n                , at.xAthlet\r\n                , r.xRunde \r\n                , ss.RundeZusammen  \r\n            FROM\r\n                runde AS r\r\n                , serie AS s\r\n                , serienstart AS ss\r\n                , start AS st\r\n                , anmeldung AS a\r\n                , athlet AS at\r\n                , verein AS v\r\n            LEFT JOIN team AS t ON(a.xTeam = t.xTeam) \r\n            LEFT JOIN rundentyp AS rt\r\n                ON rt.xRundentyp = r.xRundentyp\r\n            LEFT JOIN resultat AS rs\r\n                ON rs.xSerienstart = ss.xSerienstart\r\n            WHERE r.xRunde = {$round}\r\n            AND s.xRunde = r.xRunde\r\n            AND ss.xSerie = s.xSerie\r\n            AND st.xStart = ss.xStart\r\n            AND a.xAnmeldung = st.xAnmeldung\r\n            AND at.xAthlet = a.xAthlet\r\n            AND v.xVerein = at.xVerein\r\n            ORDER BY\r\n                heatid\r\n                , ss.Position\r\n                , rs.xResultat DESC\r\n        ");
                            if (mysql_errno() > 0) {
                                // DB error
                                AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                            } else {
                                AA_results_printMenu($round, $status, $prog_mode, 'high');
                                // initialize variables
                                $a = 0;
                                $h = 0;
                                $i = 0;
                                if (!empty($_GET['athlete'])) {
                                    $_POST['athlete'] = $_GET['athlete'];
                                }
                                if (empty($_POST['athlete']) || mysql_num_rows($result) < $_POST['athlete']) {
                                    $_POST['athlete'] = 1;
                                    // focus to first athlete
                                }
                                $rowclass = 'odd';
                                if ($cfgProgramMode[$prog_mode]['name'] == $strProgramModeBackoffice) {
                                    $focus = 0;
                                    // keep focus on this athlete if Backoffice Mode
                                } else {
                                    $focus = 1;
                                    // focus on next athlete if Field Mode
                                }
                                ?>
<p/>

<table class='dialog'>
<?php 
                                $btn = new GUI_Button('', '');
                                // create button object
                                while ($row = mysql_fetch_row($result)) {
                                    if ($row[20] > 0) {
                                        $singleRound = $row[20];
                                    } else {
                                        $singleRound = $row[19];
                                    }
                                    // terminate last row if new athlete and not first item
                                    if ($a != $row[4] && $i != 0) {
                                        if ($_POST['athlete'] == $i + 1 && $cfgProgramMode[$prog_mode]['name'] == $strProgramModeField) {
                                            if ($row[15] == 'XXX' && !$click) {
                                                $_POST['athlete'] = $_POST['athlete'] + 1;
                                            }
                                        }
                                        if ($_POST['athlete'] == $i) {
                                            echo "<td>";
                                            $btn->set("event_results.php?arg=del_start&item={$a}&round={$round}", $strDelete);
                                            $btn->printButton();
                                            echo "</td>";
                                        }
                                        echo "</tr>";
                                    }
                                    /*
                                     *  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']) {
                                            $c = 1;
                                            // 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 7 + $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='singleRound' value='<?php 
                                        echo $singleRound;
                                        ?>
' />    
            <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']) {
                                            ?>
        <th class='dialog'><?php 
                                            echo $strRank;
                                            ?>
</th>
<?php 
                                        }
                                        ?>
        <th class='dialog' ><?php 
                                        echo $strResultRemark;
                                        ?>
</th>         
        <th class='dialog' colspan='2'><?php 
                                        echo $strPerformance;
                                        ?>
</th>  
    </tr>
<?php 
                                    }
                                    // ET new heat
                                    /*
                                     * Athlete data lines
                                     */
                                    if ($a != $row[4]) {
                                        $a = $row[4];
                                        // keep athlete ID
                                        $i++;
                                        // increment athlete counter
                                        $l = 0;
                                        // reset result counter
                                        if ($_POST['athlete'] == $i) {
                                            // active item
                                            $rowclass = 'active';
                                        } else {
                                            if ($row[5] % 2 == 0) {
                                                // even row numer
                                                $rowclass = 'even';
                                            } else {
                                                // odd row number
                                                $rowclass = 'odd';
                                            }
                                        }
                                        if ($rowclass == 'active') {
                                            ?>
    <tr class='active'>
<?php 
                                        } else {
                                            ?>
    <tr class='<?php 
                                            echo $rowclass;
                                            ?>
'
        onclick='selectAthlete(<?php 
                                            echo $i;
                                            ?>
)'>
<?php 
                                        }
                                        ?>
        <td class='forms_right'><?php 
                                        echo $row[5];
                                        ?>
</td>
        <td class='forms_right'><?php 
                                        echo $row[7];
                                        /* start nbr */
                                        ?>
</td>
        <td nowrap><?php 
                                        echo $row[8] . " " . $row[9];
                                        /* name */
                                        ?>
</td>
        <td class='forms_ctr'><?php 
                                        echo AA_formatYearOfBirth($row[10]);
                                        ?>
</td>
        <td><?php 
                                        echo $row[16] != '' && $row[16] != '-' ? $row[16] : '&nbsp;';
                                        ?>
</td>
        <td nowrap><?php 
                                        echo $row[11];
                                        /* club */
                                        ?>
</td>
   
<?php 
                                        if ($status == $cfgRoundStatus['results_done']) {
                                            if ($_POST['athlete'] == $i) {
                                                ?>
        <form action='event_results.php' method='post'
            name='rank'>
        <td>
            <input type='hidden' name='arg' value='save_rank' />
            <input type='hidden' name='round' value='<?php 
                                                echo $round;
                                                ?>
' />
             <input type='hidden' name='singleRound' value='<?php 
                                                echo $singleRound;
                                                ?>
' />    
            <input type='hidden' name='athlete' value='<?php 
                                                echo $i + $focus;
                                                ?>
' />
            <input type='hidden' name='item' value='<?php 
                                                echo $row[4];
                                                ?>
' />
            <input class='nbr' type='text' name='rank' maxlength='3'
                value='<?php 
                                                echo $row[6];
                                                ?>
' onChange='document.rank.submit()' />
        </td>
        </form>
<?php 
                                            } else {
                                                echo "<td>" . $row[6] . "</td>";
                                            }
                                            echo "<td>" . $row[17] . "</td>";
                                        } else {
                                            ?>
 
                        

<form action='event_results.php' method='post'
            name='remark_<?php 
                                            echo $i;
                                            ?>
'>
        <td>
            <input type='hidden' name='arg' value='save_remark' />
            <input type='hidden' name='round' value='<?php 
                                            echo $round;
                                            ?>
' />
             <input type='hidden' name='singleRound' value='<?php 
                                            echo $singleRound;
                                            ?>
' />    
            <input type='hidden' name='athlete' value='<?php 
                                            echo $i + $focus;
                                            ?>
' />
            <input type='hidden' name='item' value='<?php 
                                            echo $row[4];
                                            ?>
' />
            <input type='hidden' name='xAthlete' value='<?php 
                                            echo $row[18];
                                            ?>
' />    
            <input class='textshort' type='text' name='remark' maxlength='5'
                value='<?php 
                                            echo $row[17];
                                            ?>
' onchange='document.remark_<?php 
                                            echo $i;
                                            ?>
.submit()' />
        </td>
        </form>  
       
  
      
                   <?php 
                                        }
                                    }
                                    // ET new athlete
                                    $new_perf = '';
                                    if ($_POST['athlete'] == $i) {
                                        if (is_null($row[14])) {
                                            // no result yet: show form
                                            $last_perf = 0;
                                        } else {
                                            $last_perf = $row[14];
                                        }
                                        $item = '';
                                        if ($l == 0) {
                                            // read all performances achieved in current heat and
                                            // better than last entered performance
                                            if ($cfgProgramMode[$prog_mode]['name'] == $strProgramModeField) {
                                                if (in_array($row[15], $cfgResultsHighStayDecentral)) {
                                                    $new_perf = AA_formatResultMeter($last_perf);
                                                    $new_info = $row[15];
                                                    $item = $row[13];
                                                } else {
                                                    $new_perf = getNextHeight($row[2], $last_perf);
                                                    $new_info = '';
                                                }
                                            } else {
                                                if (in_array($row[15], $cfgResultsHighStay)) {
                                                    $new_perf = AA_formatResultMeter($last_perf);
                                                    $new_info = $row[15];
                                                    $item = $row[13];
                                                } else {
                                                    $new_perf = getNextHeight($row[2], $last_perf);
                                                    $new_info = '';
                                                }
                                            }
                                            ?>
        <form action='event_results.php' method='post'
            name='perf'>
        <td nowrap colspan='2'> 
            <input type='hidden' name='arg' value='save_res' />
            <input type='hidden' name='round' value='<?php 
                                            echo $round;
                                            ?>
' />
             <input type='hidden' name='singleRound' value='<?php 
                                            echo $singleRound;
                                            ?>
' />    
            <input type='hidden' name='athlete' value='<?php 
                                            echo $i + $focus;
                                            ?>
' />
            <input type='hidden' name='start' value='<?php 
                                            echo $row[4];
                                            ?>
' />
             <input type='hidden' name='xSerie' value='<?php 
                                            echo $row[2];
                                            ?>
' />  
            <input type='hidden' name='item' value='<?php 
                                            echo $item;
                                            ?>
' />
            <input class='perfheight' type='text' name='perf' maxlength='5'
                value='<?php 
                                            echo $new_perf;
                                            ?>
'
                    onChange='checkSubmit(document.perf)' />  
            <input class='texttiny' type='text' name='attempts' maxlength='3'
                value='<?php 
                                            echo $new_info;
                                            ?>
'
                    onChange='document.perf.submit()' onBlur='document.perf.submit()' />
        </td>
        </form>   
        
        
                        <?php 
                                        }
                                        if (is_null($row[14]) == false && empty($item)) {
                                            // next height
                                            ?>
        <td nowrap>
            <?php 
                                            echo AA_formatResultMeter($row[14]) . "<br/>( {$row['15']} )";
                                            ?>
        </td>
        <td>
                        <?php 
                                            $btn = new GUI_Button("event_results.php?arg=delete&round={$round}&item={$row['13']}&athlete={$i}", "X");
                                            $btn->printButton();
                                            ?>
        </td>
                        <?php 
                                        }
                                        $l++;
                                    } else {
                                        if (is_null($row[14]) == false) {
                                            echo "<td colspan='2' nowrap>" . AA_formatResultMeter($row[14]) . " ( {$row['15']} )</td>";
                                        }
                                    }
                                }
                                if ($a != 0) {
                                    if ($_POST['athlete'] == $i) {
                                        echo "<td>";
                                        $btn->set("event_results.php?arg=del_start&item={$a}&round={$round}", $strDelete);
                                        $btn->printButton();
                                        echo "</td>";
                                    }
                                    echo "</tr>";
                                }
                                ?>
           
            
            
            
</table>
  
                 
            <?php 
                                mysql_free_result($result);
                            }
                            // ET DB error
                        }
                    }
                }
            } else {
                if ($round > 0 && $prog_mode == 2) {
                    $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']) {
                                AA_heats_printNewStart($presets['event'], $round, "event_results.php");
                                $ph = 0;
                                // find max height per athlete
                                $sql_max_h = "SELECT \r\n                 LPAD(s.Bezeichnung,5,'0') as heatid\r\n                , count(*) \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 t ON(a.xTeam = t.xTeam) \r\n                LEFT JOIN rundentyp AS rt ON rt.xRundentyp = r.xRundentyp\r\n                LEFT JOIN resultat AS rs ON rs.xSerienstart = ss.xSerienstart\r\n            WHERE r.xRunde = {$round}              \r\n            GROUP BY ss.xSerienstart\r\n            ORDER BY\r\n                heatid\r\n                , ss.Position DESC\r\n                , rs.xResultat";
                                $res_max_h = mysql_query($sql_max_h);
                                if (mysql_errno() > 0) {
                                    // DB error
                                    AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                } else {
                                    $ph = 0;
                                    //  height column
                                    $starts = 0;
                                    // all started athletes
                                    while ($row_max_h = mysql_fetch_row($res_max_h)) {
                                        $starts++;
                                        if ($row_max_h[1] > $ph) {
                                            $ph = $row_max_h[1];
                                        }
                                    }
                                }
                                // fill last infos (included previous info by 'XXX') in an array
                                $sql_info = "SELECT rt.Name\r\n                , rt.Typ\r\n                , s.xSerie\r\n                , s.Bezeichnung\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 . "', t.Name, IF(a.Vereinsinfo = '', v.Name, a.Vereinsinfo))   \r\n                , LPAD(s.Bezeichnung,5,'0') as heatid\r\n                , rs.xResultat\r\n                , rs.Leistung\r\n                , rs.Info\r\n                , at.Land\r\n                , ss.Bemerkung\r\n                , at.xAthlet\r\n                , r.xRunde \r\n                , ss.RundeZusammen  \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 t ON(a.xTeam = t.xTeam) \r\n                LEFT JOIN rundentyp AS rt ON rt.xRundentyp = r.xRundentyp\r\n                LEFT JOIN resultat AS rs ON rs.xSerienstart = ss.xSerienstart  \r\n            WHERE r.xRunde = {$round}      \r\n              ORDER BY\r\n                heatid\r\n                , ss.Position \r\n                , rs.xResultat\r\n                \r\n                ";
                                $res_info = mysql_query($sql_info);
                                if (mysql_errno() > 0) {
                                    // DB error
                                    AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                } else {
                                    $c = 0;
                                    $arr_info = array();
                                    $arr_info_remark = array();
                                    // previous info 'p'
                                    $count_results = 0;
                                    $count_ends = 0;
                                    // athletes with results 'XXX'
                                    while ($row_info = mysql_fetch_row($res_info)) {
                                        if ($row_info[4] != $a && $c > 0) {
                                            if (!empty($keep_info)) {
                                                if ($c == $ph) {
                                                    $arr_info[] = $keep_info;
                                                    $arr_info_remark[] = '';
                                                    $count_results++;
                                                } else {
                                                    if ($keep_info == 'XXX') {
                                                        $arr_info[] = $keep_info;
                                                        $arr_info_remark[] = 'p';
                                                        // previous
                                                        $count_results++;
                                                    } else {
                                                        $arr_info[] = '';
                                                        $arr_info_remark[] = '';
                                                        $count_results++;
                                                    }
                                                }
                                                $c = 0;
                                            }
                                        }
                                        $c++;
                                        if ($row_info[15] == 'XXX') {
                                            $count_ends++;
                                        }
                                        $a = $row_info[4];
                                        $keep_info = $row_info[15];
                                    }
                                    if (!empty($keep_info)) {
                                        if ($c == $ph) {
                                            $arr_info[] = $keep_info;
                                            $arr_info_remark[] = '';
                                            $count_results++;
                                        } else {
                                            if ($keep_info == 'XXX') {
                                                $arr_info[] = $keep_info;
                                                $arr_info_remark[] = 'p';
                                                // previous
                                                $count_results++;
                                            } else {
                                                $arr_info[] = '';
                                                $arr_info_remark[] = '';
                                                $count_results++;
                                            }
                                        }
                                    }
                                }
                                // array for infos to jump
                                $arr_info_toJump = array();
                                foreach ($arr_info as $key => $val) {
                                    if (!in_array($val, $cfgResultsHighStayDecentralEnd)) {
                                        $arr_info_toJump[$key] = $val;
                                    }
                                }
                                // find out new column (= newHight )
                                $sql_hight = "SELECT    \r\n                LPAD(s.Bezeichnung,5,'0') as heatid                 \r\n                , rs.Leistung\r\n                , rs.Info                   \r\n                , d.Code  \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 t ON(a.xTeam = t.xTeam) \r\n                LEFT JOIN rundentyp AS rt ON rt.xRundentyp = r.xRundentyp\r\n                LEFT JOIN resultat AS rs ON rs.xSerienstart = ss.xSerienstart\r\n                LEFT JOIN wettkampf AS w ON (w.xWettkampf = r.xWettkampf)  \r\n                LEFT JOIN disziplin AS d ON (d.xDisziplin = w.xDisziplin)   \r\n            WHERE r.xRunde = {$round}                 \r\n              ORDER BY\r\n                heatid\r\n                , rs.Leistung DESC\r\n                , ss.Position ASC\r\n                ";
                                $res_hight = mysql_query($sql_hight);
                                $e = 0;
                                // count performance when is finished with this high
                                $z = 0;
                                $first = true;
                                $disCode = 0;
                                while ($row_hight = mysql_fetch_row($res_hight)) {
                                    if ($perf_keep != $row_hight[1] && !$first) {
                                        $z++;
                                        if ($z > 1) {
                                            break;
                                        } else {
                                            $e_keep = $e;
                                            $e = 0;
                                        }
                                    }
                                    $first = false;
                                    if (in_array($row_hight[2], $cfgResultsHighStayDecentralEnd)) {
                                        if ($row_hight[2] != 'XXX') {
                                            $e++;
                                        }
                                    }
                                    $perf_keep = $row_hight[1];
                                    $disCode = $row_hight[3];
                                }
                                $newHight = false;
                                if (is_null($e_keep)) {
                                    $e_keep = $e;
                                }
                                if ($e_keep == $starts - $count_ends) {
                                    $newHight = true;
                                }
                                if (empty($_POST)) {
                                    if ($ph > $max) {
                                        $max = $ph;
                                    }
                                }
                                if (empty($_POST)) {
                                    $y = 0;
                                    while ($row = mysql_fetch_row($res_c_h)) {
                                        $name = "hight_" . $y;
                                        $hiddenName = "hiddeHight_" . $y;
                                        $performance_new = AA_formatResultMeter($row[0]);
                                        $_POST[$name] = $performance_new;
                                        $_POST[$hiddenName] = $performance_new;
                                        $y++;
                                    }
                                }
                                // found active athlete
                                $a_activ = 0;
                                $flen = 0;
                                $f_len_keep = 0;
                                $r_f_len = 0;
                                $r_f_len_keep = 0;
                                $a_activ_set = false;
                                $f = 0;
                                $reset_activ = false;
                                for ($r = $starts - 1; $r >= 0; $r--) {
                                    if ($arr_info[$r] == '' || $arr_info_remark[$r] == 'p') {
                                        $f++;
                                    } else {
                                        if ($f > 0) {
                                            $a_activ = $r + 2;
                                            for ($j = $a_activ - 1; $j < $starts; $j++) {
                                                if ($arr_info_remark[$a_activ - 1] == 'p') {
                                                    $a_activ++;
                                                }
                                            }
                                            $a_activ_set = true;
                                        }
                                        if ($a_activ > $starts) {
                                            $a_activ_set = false;
                                            $reset_activ = true;
                                        }
                                        break;
                                    }
                                }
                                if (!$a_activ_set) {
                                    if ($newHight) {
                                        for ($r = 0; $r < $starts; $r++) {
                                            if ($arr_info[$r] != 'XXX') {
                                                $a_activ = $r + 1;
                                                $a_activ_set = true;
                                                break;
                                            }
                                        }
                                        if (!$a_activ_set) {
                                            $a_activ = 1;
                                        }
                                    } elseif ($reset_activ) {
                                        $val_keep = '';
                                        foreach ($arr_info_toJump as $key => $val) {
                                            if (strlen($val) == 1) {
                                                $arr_info_toJump_1[$key] = $val;
                                            } elseif (strlen($val) == 2) {
                                                $arr_info_toJump_2[$key] = $val;
                                            }
                                        }
                                        if (count($arr_info_toJump_1) > 0) {
                                            foreach ($arr_info_toJump_1 as $key => $val) {
                                                $a_activ = $key + 1;
                                                break;
                                            }
                                        } else {
                                            foreach ($arr_info_toJump_2 as $key => $val) {
                                                $a_activ = $key + 1;
                                                break;
                                            }
                                        }
                                    } else {
                                        for ($r = $starts - 1; $r >= 0; $r--) {
                                            if (in_array($arr_info[$r], $cfgResultsHighStayDecentralEnd)) {
                                                $athleteValidFirst = false;
                                            } else {
                                                $f_len = strlen($arr_info[$r]);
                                                $r_f_len = $r;
                                                if ($f_len_keep > 0) {
                                                    if ($f_len_keep < $f_len) {
                                                        $a_activ = $r_f_len_keep + 1;
                                                        break;
                                                    } elseif ($f_len_keep = $f_len) {
                                                        $a_activ = $r_f_len + 1;
                                                    } elseif ($f_len_keep > $f_len) {
                                                        break;
                                                    }
                                                } else {
                                                    $a_activ = $r_f_len + 1;
                                                }
                                                $f_len_keep = $f_len;
                                                $r_f_len_keep = $r_f_len;
                                            }
                                        }
                                    }
                                }
                                if (is_null($_POST['athlete'])) {
                                    $_POST['athlete'] = $a_activ;
                                }
                                $aClick = false;
                                if (isset($_POST['result'])) {
                                    // this means that user makes a click to a athlete
                                    $aClick = true;
                                }
                                if (isset($_GET['arg']) && $_GET['arg'] == 'delete') {
                                    $aClick = true;
                                }
                                $athleteValidAfter = true;
                                if ($_POST['athlete'] >= 1 && !$aClick) {
                                    $athleteValidAfter = true;
                                    if ($starts != $count_ends) {
                                        if (count($arr_info) == $starts) {
                                            for ($r = $starts - 1; $r >= 0; $r--) {
                                                if ($r < $_POST['athlete'] - 1) {
                                                    break;
                                                }
                                                if (in_array($arr_info[$r], $cfgResultsHighStayDecentralEnd)) {
                                                    $athleteValidAfter = false;
                                                } else {
                                                    $athleteValidAfter = true;
                                                    break;
                                                }
                                            }
                                            if ($_POST['athlete'] > $starts) {
                                                $athleteValidAfter = false;
                                            }
                                        }
                                    } else {
                                        $athleteValidAfter = false;
                                        if (!$aClick) {
                                            $_POST['athlete'] = 1;
                                            $a_activ = 1;
                                        }
                                    }
                                    if (!$athleteValidAfter && !$aClick && !$newHight) {
                                        // set to first athlete when no valid athletes after
                                        $_POST['athlete'] = 1;
                                    }
                                }
                                // find out first valid athlete
                                $athleteValidFirst = true;
                                $a_first = 0;
                                if ($_POST['athlete'] >= 1 && !$aClick) {
                                    $athleteValidFirst = true;
                                    if ($starts != $count_ends) {
                                        if (count($arr_info) == $starts) {
                                            for ($r = 0; $r < $starts; $r++) {
                                                if ($arr_info[$r] == 'XXX') {
                                                    $athleteValidFirst = false;
                                                } else {
                                                    $athleteValidFirst = true;
                                                    $a_first = $r + 1;
                                                    break;
                                                }
                                            }
                                        }
                                    } else {
                                        $athleteValidAfter = false;
                                        if (!$aClick) {
                                            $_POST['athlete'] = 1;
                                            $a_activ = 1;
                                        }
                                    }
                                    if ($a_first > 0 && !$athleteValidAfter && !$click) {
                                        $_POST['athlete'] = $a_first;
                                    }
                                }
                                if (isset($_POST['result']) || $aClick) {
                                    // this means that user makes a click to a athlete
                                    $a_activ = $_POST['athlete'];
                                }
                                if ($starts == $count_ends && !$aClick) {
                                    $_POST['athlete'] = 1;
                                    $a_activ = 1;
                                }
                                if (mysql_errno() > 0) {
                                    // DB error
                                    AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                } else {
                                    AA_results_printMenu($round, $status, $prog_mode, 'high');
                                    // initialize variables
                                    $a = 0;
                                    $h = 0;
                                    $i = 0;
                                    if (!empty($_GET['athlete'])) {
                                        $_POST['athlete'] = $_GET['athlete'];
                                    }
                                    if (empty($_POST['athlete']) || $starts < $_POST['athlete']) {
                                        $_POST['athlete'] = 1;
                                        // focus to first athlete
                                    }
                                    $rowclass = 'odd';
                                    if ($cfgProgramMode[$prog_mode]['name'] == $strProgramModeBackoffice) {
                                        $focus = 0;
                                        // keep focus on this athlete if Backoffice Mode
                                    } else {
                                        $focus = 1;
                                        // focus on next athlete if Field Mode
                                    }
                                    ?>
<p/>

<table class='dialog'>
<?php 
                                    $l = 0;
                                    $newAthl = false;
                                    $flagField = false;
                                    $skip = false;
                                    $s = 0;
                                    $s_keep = 0;
                                    $k = 0;
                                    $p = 0;
                                    // all pass
                                    $btn = new GUI_Button('', '');
                                    // create button object
                                    $flagField = false;
                                    $res_info = mysql_query($sql_info);
                                    while ($row = mysql_fetch_row($res_info)) {
                                        if ($a != $row[4] && $i != 0) {
                                            // new athlete
                                            $k = 0;
                                            if ($s >= $s_keep) {
                                                $s_keep = $s;
                                            }
                                            $s = 0;
                                        }
                                        $p++;
                                        $k++;
                                        $s++;
                                        if ($row[15] == 'XXX') {
                                            $skip = true;
                                        } else {
                                            if (in_array($row[15], $cfgResultsHighStayDecentralEnd) && $ph == $k && !$newHight) {
                                                $skip = true;
                                            } else {
                                                $skip = false;
                                            }
                                        }
                                        if ($row[20] > 0) {
                                            $singleRound = $row[20];
                                        } else {
                                            $singleRound = $row[19];
                                        }
                                        // terminate last row if new athlete and not first item
                                        if ($a != $row[4] && $i != 0) {
                                            $athleteValid = true;
                                            $athleteValidAfter = true;
                                            if ($starts != $count_ends) {
                                                if (count($arr_info) == $starts) {
                                                    for ($r = $starts - 1; $r >= 0; $r--) {
                                                        if (in_array($arr_info[$r], $cfgResultsHighStayDecentralEnd)) {
                                                            $athleteValid = false;
                                                        } else {
                                                            $athleteValid = true;
                                                            break;
                                                        }
                                                    }
                                                    for ($r = $starts - 1; $r >= 0; $r--) {
                                                        if ($r < $_POST['athlete'] - 1) {
                                                            break;
                                                        }
                                                        if (in_array($arr_info[$r], $cfgResultsHighStayDecentralEnd)) {
                                                            $athleteValidAfter = false;
                                                        } else {
                                                            $athleteValidAfter = true;
                                                            break;
                                                        }
                                                    }
                                                }
                                            } else {
                                                $athleteValid = false;
                                                $athleteValidAfter = false;
                                                if (!$aClick) {
                                                    $_POST['athlete'] = 1;
                                                    $a_activ = 1;
                                                }
                                            }
                                            if ($_POST['athlete'] == $i || !$athleteValid && $newHight && $k != 1 || $aClick && $a_activ == $i) {
                                                if (!$flagField) {
                                                    ?>
                                <form action='event_results.php' method='post'
                                            name='perf'>
                                <td nowrap colspan='2'> 
                                            <input type='hidden' name='arg' value='save_res' />
                                            <input type='hidden' name='round' value='<?php 
                                                    echo $round;
                                                    ?>
' />
                                             <input type='hidden' name='singleRound' value='<?php 
                                                    echo $singleRound;
                                                    ?>
' />    
                                            <input type='hidden' name='athlete' value='<?php 
                                                    echo $i + $focus;
                                                    ?>
' />
                                            <input type='hidden' name='start' value='<?php 
                                                    echo $a;
                                                    ?>
' />                                              
                                            <input type='hidden' name='item' value='<?php 
                                                    echo $item;
                                                    ?>
' />
                                            <input class='perfheight' type='hidden' name='perf' maxlength='5'    
                                               value='<?php 
                                                    echo $new_perf;
                                                    ?>
'
                                                     />
                                            <?php 
                                                    foreach ($_POST as $key => $val) {
                                                        $arr_key = explode('_', $key);
                                                        $hiddenName = $arr_key[0] . "_" . $arr_key[1];
                                                        ?>
                                                 <input type='hidden' name='<?php 
                                                        echo $hiddenName;
                                                        ?>
' value='<?php 
                                                        echo $val;
                                                        ?>
' /> 
                                                 <?php 
                                                    }
                                                    ?>
         
                                            <input class='texttiny' type='text' name='attempts' maxlength='3'  onfocus="this.value = '<?php 
                                                    echo $new_info;
                                                    ?>
'"
                                                value='<?php 
                                                    echo $new_info;
                                                    ?>
' />
                                             <button type='button' name="butt" onclick="document.perf.submit()">ok</button>
                                </td>
                                </form>                                              
                                          
                               <?php 
                                                    $flagField = true;
                                                    echo "<td colspan='31'>&nbsp;";
                                                    echo "</td>";
                                                    echo "<td>";
                                                    $btn->set("event_results.php?arg=del_start&item={$a}&round={$round}", $strDelete);
                                                    $btn->printButton();
                                                    echo "</td>";
                                                }
                                            }
                                            echo "</tr>";
                                        }
                                        /*
                                         *  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']) {
                                                $c = 1;
                                                // 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 7 + $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='singleRound' value='<?php 
                                            echo $singleRound;
                                            ?>
' />    
            <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> 
        <?php 
                                            if (isset($_POST['max'])) {
                                                $colspanPerf = $_POST['max'] * 2 + 2;
                                            } else {
                                                $colspanPerf = $cfgCountHeight * 2 + 2;
                                            }
                                            ?>
  
            <th colspan="<?php 
                                            echo $colspanPerf;
                                            ?>
"><?php 
                                            echo $strPerformance;
                                            ?>
</th>  
         <?php 
                                            ?>
        </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>  
        <th class='dialog'><?php 
                                            echo $strRank;
                                            ?>
</th>   
        <th class='dialog' ><?php 
                                            echo $strResultRemark;
                                            ?>
</th>    
         
        <?php 
                                            $height_start = $cfgHeightStartJump;
                                            // default jump
                                            if ($disCode == '310') {
                                                // jump
                                                $height_start = $cfgHeightStartJump;
                                            } elseif ($disCode == '320') {
                                                $height_start = $cfgHeightStartPole;
                                                // pole
                                            }
                                            ?>
        <form action='event_results.php' method='post' name='hight_id'> 
        <input type='hidden' name='arg' value='save_height' />
        <input type='hidden' name='round' value='<?php 
                                            echo $round;
                                            ?>
' />
        <input type='hidden' name='heat' value='<?php 
                                            echo $row[2];
                                            ?>
' />  
        <input type='hidden' name='singleRound' value='<?php 
                                            echo $singleRound;
                                            ?>
' />          
                  
        <?php 
                                            $count_height = AA_checkHeight($round, $row[2]);
                                            $arr_height = array();
                                            if ($count_height > 0) {
                                                $max = $count_height;
                                                $sql = "SELECT h.Hoehe \r\n                    FROM \r\n                         hoehe AS h\r\n                         LEFT JOIN runde AS r ON (r.xRunde = h.xRunde)\r\n                         LEFT JOIN wettkampf AS w ON (w.xWettkampf = r.xWettkampf) \r\n                    WHERE \r\n                         h.xRunde = " . $round . " \r\n                         AND h.xSerie = " . $row[2] . " \r\n                         AND w.xMeeting = " . $_COOKIE['meeting_id'] . "\r\n                         ORDER BY hoehe";
                                                $res = mysql_query($sql);
                                                if (mysql_errno() > 0) {
                                                    AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                                } else {
                                                    $g = 0;
                                                    while ($row_height = mysql_fetch_row($res)) {
                                                        $arr_height[] = $row_height[0];
                                                        $height = AA_formatResultMeter($row_height[0]);
                                                        $dis = '';
                                                        // disable the hight done
                                                        if ($newHight) {
                                                            $ph_vgl = $ph - 1;
                                                            if ($g <= $ph_vgl) {
                                                                $dis = 'disabled="disabled"';
                                                            }
                                                        } else {
                                                            $ph_vgl = ceil($ph - 1);
                                                            if ($g <= $ph_vgl) {
                                                                $dis = 'disabled="disabled"';
                                                            }
                                                            if ($count_results == 0 && $g == 0) {
                                                                $dis = '';
                                                            }
                                                        }
                                                        ?>
   
                                   
                            <input class='perfheight' type='hidden' name='hiddenHeight_<?php 
                                                        echo $g;
                                                        ?>
' maxlength='5' value='<?php 
                                                        echo $height;
                                                        ?>
'/>
                            <th class='dialog' colspan='2'><input class='perfheight' type='text' name='hight_<?php 
                                                        echo $g;
                                                        ?>
' maxlength='5'
                                value='<?php 
                                                        echo $height;
                                                        ?>
' onchange='document.hight_id.submit()' <?php 
                                                        echo $dis;
                                                        ?>
 /></th>   
                           
                            <?php 
                                                        $g++;
                                                    }
                                                }
                                            } else {
                                                $max = $cfgCountHeight;
                                                for ($g = 0; $g < $cfgCountHeight; $g++) {
                                                    $_POST['start'] = 0;
                                                    $height_start_tmp = new PerformanceAttempt($height_start);
                                                    $height_start_tmp = $height_start_tmp->getPerformance();
                                                    $arr_height[] = $height_start_tmp;
                                                    AA_setHeight($height_start_tmp, $round, $row[2], '');
                                                    ?>
     
                                   
                        <input class='perfheight' type='hidden' name='hiddenHeight_<?php 
                                                    echo $g;
                                                    ?>
' maxlength='5' value='<?php 
                                                    echo sprintf("%.2f", $height_start);
                                                    ?>
'/>
                            <th class='dialog' colspan='2'><input class='perfheight' type='text' name='hight_<?php 
                                                    echo $g;
                                                    ?>
' maxlength='5'
                                value='<?php 
                                                    echo sprintf("%.2f", $height_start);
                                                    ?>
' onchange='document.hight_id.submit()' /></th>
                          
                        <?php 
                                                    if ($disCode == '310') {
                                                        // jump
                                                        $height_start += $cfgHeightDiffJump;
                                                    } elseif ($disCode == '320') {
                                                        $height_start += $cfgHeightDiffPole;
                                                        // pole
                                                    } else {
                                                        $height_start += $cfgHeightDiffJump;
                                                    }
                                                }
                                            }
                                            ?>
  
                    
                <input class='perfheight' type='hidden' name='hiddenHeight_<?php 
                                            echo $g;
                                            ?>
' maxlength='5' value=''/> 
                    <th class='dialog' colspan='2'><input class='perfheight' type='text' name='hight_<?php 
                                            echo $max;
                                            ?>
' maxlength='5'
                        value='' onchange='document.hight_id.submit()' /></th>   
                <input type='hidden' name='max' value='<?php 
                                            echo $max;
                                            ?>
' />  
                <input type='hidden' name='disCode' value='<?php 
                                            echo $disCode;
                                            ?>
' />  
                 </form>   
                 
    </tr>
<?php 
                                        }
                                        // ET new heat
                                        /*
                                         * Athlete data lines   
                                         */
                                        if ($newAthl) {
                                            if ($k == $ph) {
                                                // k = results per athlete  ph = hight column
                                                $athleteValid = true;
                                                $athleteValidAfter = true;
                                                if ($starts != $count_ends) {
                                                    if (count($arr_info) == $starts) {
                                                        for ($r = $starts - 1; $r >= 0; $r--) {
                                                            if (in_array($arr_info[$r], $cfgResultsHighStayDecentralEnd)) {
                                                                $athleteValid = false;
                                                            } else {
                                                                $athleteValid = true;
                                                                break;
                                                            }
                                                        }
                                                        for ($r = $starts - 1; $r >= 0; $r--) {
                                                            if ($r < $_POST['athlete'] - 1) {
                                                                break;
                                                            }
                                                            if (in_array($arr_info[$r], $cfgResultsHighStayDecentralEnd)) {
                                                                $athleteValidAfter = false;
                                                            } else {
                                                                $athleteValidAfter = true;
                                                                break;
                                                            }
                                                        }
                                                    }
                                                } else {
                                                    $athleteValid = false;
                                                    $athleteValidAfter = false;
                                                    if (!$aClick) {
                                                        $_POST['athlete'] = 1;
                                                        $a_activ = 1;
                                                    }
                                                }
                                                if (!$athleteValid) {
                                                    $l = 1;
                                                    if (!$click) {
                                                        if ($a_first == 0) {
                                                            $_POST['athlete'] = 1;
                                                            $l = 0;
                                                        }
                                                    }
                                                }
                                            }
                                            if (in_array($row[15], $cfgResultsHighStayDecentralNotPassed)) {
                                                // find O (example: O, XO , XXO )
                                                $l = 0;
                                                // reset result counter
                                                $newAthl = false;
                                            } else {
                                                if (is_null($row[15])) {
                                                    $l = 0;
                                                    $newAthl = false;
                                                } else {
                                                    if (in_array($row[15], $cfgResultsHighStayDecentralEnd) && $_POST['athlete'] == $i && $skip) {
                                                        if ($athleteValidAfter && !$aClick) {
                                                            $_POST['athlete']++;
                                                        }
                                                        $newAthl = false;
                                                        $l = 1;
                                                    } elseif (in_array($row[15], $cfgResultsHighStayDecentralEnd) && $_POST['athlete'] == $i && !$skip && $p != $ph) {
                                                        $l = 1;
                                                    } else {
                                                        $l = 1;
                                                    }
                                                }
                                            }
                                        }
                                        if ($a != $row[4]) {
                                            if ($k == $ph) {
                                                $athleteValid = true;
                                                if ($starts != $count_ends) {
                                                    if (count($arr_info) == $starts) {
                                                        for ($r = $starts - 1; $r >= 0; $r--) {
                                                            if (in_array($arr_info[$r], $cfgResultsHighStayDecentralEnd)) {
                                                                $athleteValid = false;
                                                            } else {
                                                                $athleteValid = true;
                                                                break;
                                                            }
                                                        }
                                                    }
                                                } else {
                                                    $athleteValid = false;
                                                    if (!$aClick) {
                                                        $_POST['athlete'] = 1;
                                                        $a_activ = 1;
                                                    }
                                                }
                                                $athleteValidAfter = true;
                                                for ($r = $starts - 1; $r >= 0; $r--) {
                                                    if ($r >= $_POST['athlete']) {
                                                        break;
                                                    }
                                                    if (in_array($arr_info[$r], $cfgResultsHighStayDecentralEnd)) {
                                                        $athleteValidAfter = false;
                                                    } else {
                                                        $athleteValidAfter = true;
                                                        break;
                                                    }
                                                }
                                                if (!$athleteValid) {
                                                    $l = 1;
                                                    if (!$click) {
                                                        if ($a_first == 0) {
                                                            $_POST['athlete'] = 1;
                                                            $l = 0;
                                                        }
                                                    }
                                                }
                                            }
                                            $a = $row[4];
                                            // keep athlete ID
                                            $info_keep = $row[15];
                                            // keep info
                                            $i++;
                                            // increment athlete counter
                                            $newAthl = true;
                                            if (in_array($row[15], $cfgResultsHighStayDecentralNotPassed)) {
                                                // find O (example: O, XO , XXO )
                                                $l = 0;
                                                // reset result counter
                                                $newAthl = false;
                                            } else {
                                                if (is_null($row[15])) {
                                                    $l = 0;
                                                    $newAthl = false;
                                                } else {
                                                    if (in_array($row[15], $cfgResultsHighStayDecentralEnd) && $_POST['athlete'] == $i && $skip && !$aClick) {
                                                        if ($starts != $count_ends) {
                                                            $_POST['athlete']++;
                                                        }
                                                        $newAthl = false;
                                                        $l = 1;
                                                    } elseif (in_array($row[15], $cfgResultsHighStayDecentralEnd) && $_POST['athlete'] == $i && !$skip && $p != $ph) {
                                                        $l = 1;
                                                    } else {
                                                        $l = 1;
                                                    }
                                                }
                                            }
                                            if ($a_activ == $i) {
                                                // active item
                                                $rowclass = 'active';
                                                if (isset($_POST['start'])) {
                                                    AA_setCurrAthlete($row[2], $row[4]);
                                                }
                                            } else {
                                                if ($row[5] % 2 == 0) {
                                                    // even row numer
                                                    $rowclass = 'even';
                                                } else {
                                                    // odd row number
                                                    $rowclass = 'odd';
                                                }
                                            }
                                            if ($rowclass == 'active') {
                                                ?>
                                <tr  id="athlete_<?php 
                                                echo $i;
                                                ?>
" class='active'>
                            <?php 
                                            } else {
                                                ?>
                                <tr id="athlete_<?php 
                                                echo $i;
                                                ?>
" class='<?php 
                                                echo $rowclass;
                                                ?>
'
                                    onclick='selectAthlete(<?php 
                                                echo $i;
                                                ?>
)'>
                            <?php 
                                            }
                                            ?>
                        <td class='forms_right'><?php 
                                            echo $row[5];
                                            ?>
</td>
                        <td class='forms_right'><?php 
                                            echo $row[7];
                                            /* start nbr */
                                            ?>
</td>
                        <td nowrap><?php 
                                            echo $row[8] . " " . $row[9];
                                            /* name */
                                            ?>
</td>
                        <td class='forms_ctr'><?php 
                                            echo AA_formatYearOfBirth($row[10]);
                                            ?>
</td>
                        <td><?php 
                                            echo $row[16] != '' && $row[16] != '-' ? $row[16] : '&nbsp;';
                                            ?>
</td>
                        <td nowrap><?php 
                                            echo $row[11];
                                            /* club */
                                            ?>
</td>
                               
                        <?php 
                                            if ($a_activ == $i) {
                                                ?>
                                    <form action='event_results.php' method='post'
                                        name='rank'>
                                    <td>
                                        <input type='hidden' name='arg' value='save_rank' />
                                        <input type='hidden' name='round' value='<?php 
                                                echo $round;
                                                ?>
' />
                                         <input type='hidden' name='singleRound' value='<?php 
                                                echo $singleRound;
                                                ?>
' />    
                                        <input type='hidden' name='athlete' value='<?php 
                                                echo $i + $focus;
                                                ?>
' />
                                        <input type='hidden' name='item' value='<?php 
                                                echo $row[4];
                                                ?>
' />                                           
                                        <input class='nbr' type='text' name='rank' maxlength='3'
                                            value='<?php 
                                                echo $row[6];
                                                ?>
' onchange='document.rank.submit()' />
                                    </td>
                                    </form>
                              
                                  <?php 
                                                if ($zaehler == 0) {
                                                    ?>
                                    
                                     <form action='event_results.php' method='post'
                                        name='remark_<?php 
                                                    echo $i;
                                                    ?>
'>
                                    <td>
                                        <input type='hidden' name='arg' value='save_remark' />
                                        <input type='hidden' name='round' value='<?php 
                                                    echo $round;
                                                    ?>
' />
                                         <input type='hidden' name='singleRound' value='<?php 
                                                    echo $singleRound;
                                                    ?>
' />    
                                        <input type='hidden' name='athlete' value='<?php 
                                                    echo $i + $focus;
                                                    ?>
' />
                                        <input type='hidden' name='item' value='<?php 
                                                    echo $row[4];
                                                    ?>
' />                                          
                                        <input type='hidden' name='xAthlete' value='<?php 
                                                    echo $row[18];
                                                    ?>
' />    
                                        <input class='textshort' type='text' name='remark' maxlength='5'
                                            value='<?php 
                                                    echo $row[17];
                                                    ?>
' onchange='document.remark_<?php 
                                                    echo $i;
                                                    ?>
.submit()' />
                                    </td>
                                    </form>  
                                    <?php 
                                                    $zaehler++;
                                                }
                                            } else {
                                                echo "<td>" . $row[6] . "</td>";
                                                echo "<td>" . $row[17] . "</td>";
                                            }
                                        }
                                        // ET new athlete
                                        $new_perf = '';
                                        if ($_POST['athlete'] == $i) {
                                            // only current athlet
                                            $item = '';
                                            $ph_perf = $ph - 1;
                                            $hiddenName = "hiddenHight_" . $ph_perf;
                                            if ($newHight) {
                                                $ph_perf += 1;
                                            }
                                            $hiddenName = "hiddenHight_" . $ph_perf;
                                            $new_perf = $arr_height[$ph_perf];
                                            $new_perf = new PerformanceAttempt($new_perf);
                                            $new_perf = $new_perf->getPerformance();
                                            // read all performances achieved in current heat and
                                            // better than last entered performance
                                            if (in_array($row[15], $cfgResultsHighStayDecentral)) {
                                                $new_info = $row[15];
                                                if (in_array($row[15], $cfgResultsHighStayDecentralEnd)) {
                                                    $new_info = '';
                                                } else {
                                                    $item = $row[13];
                                                }
                                            } else {
                                                $new_info = '';
                                            }
                                            if (is_null($row[14]) == false && empty($item)) {
                                                // next height
                                                ?>
                                <td nowrap>
                                    <?php 
                                                echo $row[15];
                                                ?>
                                </td>
                                <?php 
                                                if ($_POST['athlete'] == $a_activ) {
                                                    ?>
                                        <td>
                                        <?php 
                                                    $btn = new GUI_Button("event_results.php?arg=delete&round={$round}&item={$row['13']}&athlete={$i}", "del");
                                                    $btn->printButton();
                                                    ?>
                                        </td>
                                        <?php 
                                                } else {
                                                    ?>
                                        <td></td>  
                                        <?php 
                                                }
                                            }
                                            if ($l == 0) {
                                                // first item
                                                $find = strpos(strtoupper($row[15], 'O'));
                                                if ($row[15] == '-') {
                                                    if (!$skip) {
                                                        $l++;
                                                    }
                                                } elseif (!in_array($row[15], $cfgResultsHighStayDecentralNotPassed)) {
                                                    $l++;
                                                }
                                                $flagField = true;
                                                ?>
                            <form action='event_results.php' method='post'
                                        name='perf'>
                            <td nowrap colspan='2'> 
                                        <input type='hidden' name='arg' value='save_res' />
                                        <input type='hidden' name='round' value='<?php 
                                                echo $round;
                                                ?>
' />
                                         <input type='hidden' name='singleRound' value='<?php 
                                                echo $singleRound;
                                                ?>
' />    
                                        <input type='hidden' name='athlete' value='<?php 
                                                echo $i + $focus;
                                                ?>
' />
                                        <input type='hidden' name='start' value='<?php 
                                                echo $row[4];
                                                ?>
' />  
                                        <input type='hidden' name='xSerie' value='<?php 
                                                echo $row[2];
                                                ?>
' />                                        
                                        <input type='hidden' name='item' value='<?php 
                                                echo $item;
                                                ?>
' />
                                        <input class='perfheight' type='hidden' name='perf' maxlength='5'
                                            value='<?php 
                                                echo $new_perf;
                                                ?>
'
                                                 />
                                         <?php 
                                                foreach ($_POST as $key => $val) {
                                                    $arr_key = explode('_', $key);
                                                    $hiddenName = $arr_key[0] . "_" . $arr_key[1];
                                                    ?>
                                                 <input type='hidden' name='<?php 
                                                    echo $hiddenName;
                                                    ?>
' value='<?php 
                                                    echo $val;
                                                    ?>
' /> 
                                                 <?php 
                                                }
                                                ?>
         
                                        <input class='texttiny' type='text' name='attempts' maxlength='3' onfocus="this.value = '<?php 
                                                echo $new_info;
                                                ?>
'"  
                                            value='<?php 
                                                echo $new_info;
                                                ?>
' />
                                                
                                             <button type='button' name="butt" onclick="document.perf.submit()">ok</button> 
                            </td>
                            </form>      
                            
                                           <?php 
                                                $prev_info = '';
                                                echo "<td colspan='31'>&nbsp;";
                                                echo "</td>";
                                                echo "<td>";
                                                $btn->set("event_results.php?arg=del_start&item={$a}&round={$round}", $strDelete);
                                                $btn->printButton();
                                                echo "</td>";
                                            }
                                        } else {
                                            if (is_null($row[14]) == false) {
                                                // result entered
                                                $showNotValidRes = '';
                                                if ($row[14] < 0) {
                                                    $showNotValidRes = "({$row['14']})";
                                                }
                                                echo "<td colspan='2' nowrap>{$showNotValidRes} {$row['15']} </td>";
                                            }
                                        }
                                    }
                                    if ($a != 0) {
                                        if ($s == $s_keep || $s_keep == 1 || $info_keep == '-' && $ph == $k) {
                                            if (!$aClick) {
                                                $skip = true;
                                                $_POST['athlete']++;
                                            }
                                        } else {
                                            $skip = false;
                                        }
                                        if ($_POST['athlete'] == $i) {
                                            if (!$flagField && !$skip) {
                                                ?>
                            <form action='event_results.php' method='post'
                                        name='perf'>
                            <td nowrap colspan='2'> 
                                        <input type='hidden' name='arg' value='save_res' />
                                        <input type='hidden' name='round' value='<?php 
                                                echo $round;
                                                ?>
' />
                                         <input type='hidden' name='singleRound' value='<?php 
                                                echo $singleRound;
                                                ?>
' />    
                                        <input type='hidden' name='athlete' value='<?php 
                                                echo $i + $focus;
                                                ?>
' />
                                        <input type='hidden' name='start' value='<?php 
                                                echo $a;
                                                ?>
' />                                            
                                        <input type='hidden' name='item' value='<?php 
                                                echo $item;
                                                ?>
' />
                                        <input class='perfheight' type='hidden' name='perf' maxlength='5'
                                            value='<?php 
                                                echo $new_perf;
                                                ?>
'
                                                 />
                                                  <?php 
                                                foreach ($_POST as $key => $val) {
                                                    $arr_key = explode('_', $key);
                                                    $hiddenName = $arr_key[0] . "_" . $arr_key[1];
                                                    ?>
                                                 <input type='hidden' name='<?php 
                                                    echo $hiddenName;
                                                    ?>
' value='<?php 
                                                    echo $val;
                                                    ?>
' /> 
                                                 <?php 
                                                }
                                                ?>
         
                                        <input class='texttiny' type='text' name='attempts' maxlength='3' onfocus="this.value = '<?php 
                                                echo $new_info;
                                                ?>
'"   
                                            value='<?php 
                                                echo $new_info;
                                                ?>
' />
                                         <button type='button' name="butt" onclick="document.perf.submit()">ok</button>
                            </td>
                            </form> 
                            <?php 
                                                echo "<td colspan='15'>&nbsp;";
                                                echo "</td>";
                                                echo "<td>";
                                                $btn->set("event_results.php?arg=del_start&item={$a}&round={$round}", $strDelete);
                                                $btn->printButton();
                                                echo "</td>";
                                            }
                                        }
                                        echo "</tr>";
                                    }
                                    ?>
    
            
</table>
  
                 
            <?php 
                                    mysql_free_result($res);
                                }
                                // ET DB error
                            }
                        }
                    }
                }
            }
            ?>

<script type="text/javascript">
<!--
    var prog = "<?php 
            echo $prog_mode;
            ?>
";
  
   
    if (prog == 2) {   
           if(document.perf) { 
               document.perf.attempts.focus();                
               window.scrollBy(0,100);  
            }    
    }
    else {      
        if(document.perf) {
                    document.perf.perf.focus();
                    document.perf.perf.select();
                    window.scrollBy(0,100);
        }
         if(document.rank) {
            document.rank.rank.focus();
            document.rank.rank.select();
            window.scrollBy(0,100);
        }
    }  
//-->
</script>

</body>
</html>

<?php 
        } else {
            AA_printErrorMsg($strErrMergedRound);
        }
    }
 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
 }
 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` ");
 }
Example #12
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);
        }
    }
Example #13
0
function AA_results_Tech($round, $event)
{
    //results_tech.lib.php
    global $cfgEvalType;
    global $cfg_value;
    global $strEvalTypeHeat, $strEventTypeSingleCombined;
    $db = mysql_pconnect($cfg_value['server']['server_host'] . ':' . $cfg_value['server']['server_port'], $cfg_value['server']['server_username'], $cfg_value['server']['server_password']);
    mysql_select_db($cfg_value['server']['server_db'], $db);
    $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 = " . $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;
    $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 {
        $row = mysql_fetch_row($result);
        $r = $row[0];
        mysql_free_result($result);
    }
    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
    //AA_results_resetQualification($round);
    //AA_utils_calcRankingPoints($round);
}