function AA_results_High($round, $layout, $singleRound, $content_navi, $cat, $disc, $rtyp)
    {
        require './config.inc.php';
        require './config.inc.end.php';
        require './lib/common.lib.php';
        require './lib/heats.lib.php';
        require './lib/utils.lib.php';
        $p = "./tmp";
        $fp = @fopen($p . "/live" . $round . ".html", 'w');
        if (!$fp) {
            AA_printErrorMsg($GLOBALS['strErrFileOpenFailed']);
            return;
        }
        $svm = AA_checkSVM(0, $round);
        // decide whether to show club or team name
        if ($singleRound > 0) {
            $single_svm = AA_checkSVM(0, $singleRound);
            // decide whether to show club or team name
        }
        $mergedMain = AA_checkMainRound($round);
        if ($mergedMain == 1) {
            $round = AA_getMainRound($round);
        }
        // get url
        $url = '';
        $result = mysql_query("\r\n            SELECT\r\n                url\r\n            FROM\r\n                athletica_liveResultate.config");
        if (mysql_errno() > 0) {
            AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
        } else {
            $row = mysql_fetch_row($result);
            $url = $row[0];
        }
        // read round data
        if ($round > 0) {
            $status = AA_getRoundStatus($round);
            $content = $cfgHtmlStart1;
            if (empty($GLOBALS['cfgDir'])) {
                $content .= "<meta http-equiv='refresh' content='" . $GLOBALS['cfgMonitorReload'] . "; url=http://" . $url . "/live" . $round . ".html'>";
            } else {
                $content .= "<meta http-equiv='refresh' content='" . $GLOBALS['cfgMonitorReload'] . "; url=http://" . $url . "/" . $GLOBALS['cfgDir'] . "/live" . $round . ".html'>";
            }
            $content .= $cfgHtmlStart2;
            $content .= $content_navi;
            $content .= "</div ><div id='content_pc'><div id='content_pda'>";
            $content .= "<h1>{$strStartlist} " . $_COOKIE['meeting'] . "</h1>";
            // title
            if (!empty($rtyp)) {
                $content .= "<h2>{$cat} {$disc}, {$rtyp}</h2>";
            } else {
                $content .= "<h2>{$cat} {$disc}</h2>";
            }
            $content .= "<table class='dialog'>";
            // display all athletes
            $result = mysql_query("\r\n\t\t\tSELECT rt.Name\r\n\t\t\t\t, rt.Typ\r\n\t\t\t\t, s.xSerie\r\n\t\t\t\t, s.Bezeichnung\r\n\t\t\t\t, ss.xSerienstart\r\n\t\t\t\t, ss.Position\r\n\t\t\t\t, ss.Rang\r\n\t\t\t\t, a.Startnummer\r\n\t\t\t\t, at.Name\r\n\t\t\t\t, at.Vorname\r\n\t\t\t\t, at.Jahrgang\r\n\t\t\t\t, if('" . $svm . "', t.Name, IF(a.Vereinsinfo = '', v.Name, a.Vereinsinfo))   \r\n\t\t\t\t, LPAD(s.Bezeichnung,5,'0') as heatid\r\n\t\t\t\t, rs.xResultat\r\n\t\t\t\t, rs.Leistung\r\n\t\t\t\t, rs.Info\r\n\t\t\t\t, at.Land\r\n                , ss.Bemerkung\r\n                , at.xAthlet\r\n                , r.xRunde \r\n                , ss.RundeZusammen  \r\n\t\t\tFROM\r\n\t\t\t\tathletica.runde AS r\r\n\t\t\t\tLEFT JOIN athletica.serie AS s ON (s.xRunde = r.xRunde )\r\n\t\t\t\tLEFT JOIN athletica.serienstart AS ss ON (ss.xSerie = s.xSerie)\r\n\t\t\t\tLEFT JOIN athletica.start AS st ON (st.xStart = ss.xStart)\r\n\t\t\t\tLEFT JOIN athletica.anmeldung AS a ON (a.xAnmeldung = st.xAnmeldung)\r\n\t\t\t\tLEFT JOIN athletica.athlet AS at ON (at.xAthlet = a.xAthlet)\r\n\t\t\t\tLEFT JOIN athletica.verein AS v ON (v.xVerein = at.xVerein)\r\n            LEFT JOIN athletica.team AS t ON(a.xTeam = t.xTeam) \r\n\t\t\tLEFT JOIN athletica.rundentyp_" . $_COOKIE['language'] . " AS rt\r\n\t\t\t\tON rt.xRundentyp = r.xRundentyp\r\n\t\t\tLEFT JOIN athletica.resultat AS rs\r\n\t\t\t\tON rs.xSerienstart = ss.xSerienstart\r\n\t\t\tWHERE r.xRunde = {$round}  \r\n\t\t\tORDER BY\r\n\t\t\t\theatid\r\n\t\t\t\t, ss.Position\r\n\t\t\t\t, rs.xResultat DESC\r\n\t\t");
            if (mysql_errno() > 0) {
                // DB error
                AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
            } else {
                // initialize variables
                $a = 0;
                $h = 0;
                $c_results = 0;
                $rowclass = 'odd';
                while ($row = mysql_fetch_row($result)) {
                    if ($row[20] > 0) {
                        $singleRound = $row[20];
                    } else {
                        $singleRound = $row[19];
                    }
                    /*
                     *  Heat headerline
                     */
                    if ($h != $row[2]) {
                        $h = $row[2];
                        // keep heat ID
                        if (is_null($row[0])) {
                            // only one round
                            $title = "{$strFinalround}";
                        } else {
                            // more than one round
                            if ($row[1] == '0') {
                                $title = "";
                            } else {
                                $title = "{$row['0']}";
                            }
                        }
                        $content .= "</table><table class='dialog'>";
                        if ($title != '') {
                            $content .= "<tr>";
                            $content .= "<th class='dialog' colspan='6' />" . $title . " " . $row[3] . "</th> ";
                            $content .= "</tr>";
                        }
                        $content .= "<tr>";
                        $content .= "<th class='dialog'>" . $strPositionShort . "</th>";
                        $content .= "<th class='dialog'>" . $strStartnumber . "</th>";
                        $content .= "<th class='dialog'>" . $strAthlete . "</th>";
                        $content .= "<th class='dialog_pc'>" . $strYearShort . "</th>";
                        $content .= "<th class='dialog_pc'>" . $strCountry . "</th>";
                        $content .= "<th class='dialog_pc'>";
                        if ($svm) {
                            $content .= $strTeam;
                        } else {
                            $content .= $strClub;
                        }
                        $content .= "</th>";
                        $content .= "<th class='dialog'>" . $strPerformance . "</th>";
                        $content .= "</tr>";
                    }
                    // ET new heat
                    /*
                     * Athlete data lines
                     */
                    if ($a != $row[4]) {
                        $c_results = 0;
                        $a = $row[4];
                        // keep athlete ID
                        $l = 0;
                        // reset result counter
                        if ($row[5] % 2 == 0) {
                            // even row numer
                            $rowclass = 'even';
                        } else {
                            // odd row number
                            $rowclass = 'odd';
                        }
                        $content .= "<tr class='" . $rowclass . "' >";
                        $content .= "<td class='forms_right'>" . $row[5] . "</td>";
                        $content .= "<td class='forms_right'>" . $row[7] . "</td>";
                        /* start nbr */
                        $content .= "<td nowrap>" . $row[8] . " " . $row[9] . "</td>";
                        /* name */
                        $content .= "<td class='forms_ctr_pc'>" . AA_formatYearOfBirth($row[10]) . "</td>";
                        $content .= "<td class='forms_pc'>";
                        if ($row[16] != '' && $row[16] != '-') {
                            $content .= $row[16];
                        } else {
                            $content .= " ";
                        }
                        $content .= "</td>";
                        $content .= "<td class='forms_pc' nowrap>" . $row[11] . "</td>";
                        /* club */
                    }
                    // ET new athlete
                    $perf = '';
                    if (is_null($row[14]) == false) {
                        $c_results++;
                        if ($c_results > 4) {
                            $content .= "<tr><td colspan='6'></td>";
                            $c_results = 0;
                        }
                        $perf = $row[14];
                        if ($perf == $cfgMissedAttempt['dbx']) {
                            $perf = $cfgMissedAttempt['codeX'];
                        }
                        $content .= "<td colspan='2' nowrap>" . AA_formatResultMeter($perf) . "({$row['15']})</td>";
                    }
                }
                mysql_free_result($result);
                $content .= "</table>";
                $content .= $cfgHtmlFooter;
                $content .= "</div ></div>";
                $content .= $cfgHtmlEnd;
                if (!fwrite($fp, $content)) {
                    AA_printErrorMsg($GLOBALS['strErrFileWriteFailed']);
                    return;
                }
                fclose($fp);
            }
            // ET DB error
        }
        // ET round selected
        AA_UpdateStatusChanged($round);
        ?>
    

</body>
</html>

<?php 
    }
    function AA_results_Track($round, $layout, $content_navi, $cat, $disc, $rtyp, $event)
    {
        require './config.inc.php';
        require './config.inc.end.php';
        require './lib/common.lib.php';
        require './lib/heats.lib.php';
        require './lib/utils.lib.php';
        require_once './lib/timing.lib.php';
        $p = "./tmp";
        $fp = @fopen($p . "/live" . $round . ".html", 'w');
        if (!$fp) {
            AA_printErrorMsg($GLOBALS['strErrFileOpenFailed']);
            return;
        }
        $relay = AA_checkRelay($event);
        // check, if this is a relay event
        $svm = AA_checkSVM(0, $round);
        // decide whether to show club or team name
        global $content;
        $mergedMain = AA_checkMainRound($round);
        if ($mergedMain == 1) {
            $round = AA_getMainRound($round);
        }
        // get url
        $url = '';
        $result = mysql_query("\r\n            SELECT\r\n                url\r\n            FROM\r\n                athletica_liveResultate.config");
        if (mysql_errno() > 0) {
            AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
        } else {
            $row = mysql_fetch_row($result);
            $url = $row[0];
        }
        // read round data
        if ($round > 0) {
            $content = $cfgHtmlStart1;
            if (empty($GLOBALS['cfgDir'])) {
                $content .= "<meta http-equiv='refresh' content='" . $GLOBALS['cfgMonitorReload'] . ";  url=http://" . $url . "/live" . $round . ".html'>";
            } else {
                $content .= "<meta http-equiv='refresh' content='" . $GLOBALS['cfgMonitorReload'] . ";  url=http://" . $url . "/" . $GLOBALS['cfgDir'] . "/live" . $round . ".html'>";
            }
            $content .= $cfgHtmlStart2;
            $content .= $content_navi;
            $content .= "</div ><div id='content_pc'><div id='content_pda'>";
            $content .= "<h1>{$strStartlist} " . $_COOKIE['meeting'] . "</h1>";
            // title
            if (!empty($rtyp)) {
                $content .= "<h2>{$cat} {$disc}, {$rtyp}</h2>";
            } else {
                $content .= "<h2>{$cat} {$disc}</h2>";
            }
            $content .= "<table class='dialog'>";
            // check if round is final
            $sql_r = "SELECT \r\n                    rt.Typ\r\n                FROM\r\n                    athletica.runde as r\r\n                    LEFT JOIN athletica.rundentyp_" . $_COOKIE['language'] . " 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\n                                r.Bahnen\r\n                                , rt.Name\r\n                                , rt.Typ\r\n                                , s.xSerie\r\n                                , s.Bezeichnung\r\n                                , s.Wind\r\n                                , s.Film\r\n                                , an.Bezeichnung\r\n                                , ss.xSerienstart\r\n                                , ss.Position\r\n                                , ss.Rang\r\n                                , ss.Qualifikation\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                                , s.Handgestoppt\r\n                                , at.Land   \r\n                                , ss.Bemerkung  \r\n                                , at.xAthlet                    \r\n                         FROM \r\n                                athletica.runde AS r\r\n                                LEFT JOIN athletica.serie AS s ON (s.xRunde = r.xRunde)\r\n                                LEFT JOIN athletica.serienstart AS ss ON (ss.xSerie = s.xSerie)\r\n                                LEFT JOIN athletica.start AS st ON (st.xStart = ss.xStart)\r\n                                LEFT JOIN athletica.anmeldung AS a ON (a.xAnmeldung = st.xAnmeldung)\r\n                                LEFT JOIN athletica.athlet AS at ON (at.xAthlet = a.xAthlet)\r\n                                LEFT JOIN athletica.verein AS v ON (v.xVerein = at.xVerein)\r\n                                LEFT JOIN athletica.team AS t ON(a.xTeam = t.xTeam)\r\n                                LEFT JOIN athletica.rundentyp_" . $_COOKIE['language'] . " AS rt ON rt.xRundentyp = r.xRundentyp\r\n                                LEFT JOIN athletica.anlage AS an ON an.xAnlage = s.xAnlage\r\n                         WHERE\r\n                                r.xRunde = " . $round . "   \r\n                         ORDER BY heatid " . $order . ", ss.Position";
            } else {
                // relay event
                $query = "SELECT \r\n                            r.Bahnen\r\n                            , rt.Name\r\n                            , rt.Typ\r\n                            , s.xSerie\r\n                            , s.Bezeichnung\r\n                            , s.Wind\r\n                            , s.Film\r\n                            , an.Bezeichnung\r\n                            , ss.xSerienstart\r\n                            , ss.Position\r\n                            , ss.Rang\r\n                            , ss.Qualifikation\r\n                            , sf.Name\r\n                            , if('" . $svm . "', t.Name, v.Name)  \r\n                            , LPAD(s.Bezeichnung,5,'0') as heatid\r\n                            , s.Handgestoppt\r\n                            , ss.Bemerkung   \r\n                     FROM \r\n                            athletica.runde AS r\r\n                            LEFT JOIN athletica.serie AS s ON (s.xRunde = r.xRunde)\r\n                            LEFT JOIN athletica.serienstart AS ss ON (ss.xSerie = s.xSerie)\r\n                            LEFT JOIN athletica.start AS st ON (st.xStart = ss.xStart)\r\n                            LEFT JOIN athletica.staffel AS sf ON (sf.xStaffel = st.xStaffel)\r\n                            LEFT JOIN athletica.verein AS v ON (v.xVerein = sf.xVerein)                    \r\n                            LEFT JOIN athletica.team AS t ON(sf.xTeam = t.xTeam)\r\n                            LEFT JOIN athletica.rundentyp_" . $_COOKIE['language'] . " AS rt ON rt.xRundentyp = r.xRundentyp\r\n                            LEFT JOIN athletica.anlage AS an ON an.xAnlage = s.xAnlage\r\n                     WHERE \r\n                            r.xRunde = " . $round . "                          \r\n                    ORDER BY heatid " . $order . ", ss.Position";
            }
            $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
                $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;
                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++;
                            }
                        }
                        $content .= "</table><table class='dialog'>";
                        $content .= "<tr>";
                        $content .= "<th class='dialog' colspan='2'>" . $title . " " . $row[4] . "</th>";
                        if ($relay == FALSE) {
                            $content .= "<th class='dialog' colspan='4'>" . $strFilm . " " . $row[6] . "</th>";
                        } else {
                            $content .= "<th class='dialog' colspan='2'>" . $strFilm . " " . $row[6] . "</th>";
                        }
                        $i++;
                        // next element
                        $content .= "<tr>";
                        /*
                         *  Column header
                         */
                        if ($relay == FALSE) {
                            // athlete display
                            $content .= "<tr>";
                            $content .= "<th class='dialog'>" . $strPositionShort . "</th>";
                            $content .= "<th class='dialog'>" . $strStartnumber . "</th>";
                            $content .= "<th class='dialog' >" . $strAthlete . "</th>";
                            $content .= "<th class='dialog_pc'>" . $strYearShort . "</th>";
                            $content .= "<th class='dialog_pc'>" . $strCountry . "</th>";
                            $content .= "<th class='dialog_pc'>";
                            if ($svm) {
                                $content .= $strTeam;
                            } else {
                                $content .= $strClub;
                            }
                            $content .= "</th>";
                        } else {
                            // relay display
                            $content .= "<tr>";
                            $content .= "<th class='dialog'>" . $strPositionShort . "</th>";
                            $content .= "<th class='dialog'>" . $strRelay . "</th>";
                            $content .= "<th class='dialog_pc'>";
                            if ($svm) {
                                $content .= $strTeam;
                            } else {
                                $content .= $strClub;
                            }
                            $content .= "</th>";
                        }
                        $content .= "</tr>";
                    }
                    // 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) {
                        $content .= "<tr class='" . $rowclass . "'>";
                        $content .= "<td class='forms_right'>" . $row[9] . "</td>";
                        /* position */
                        $content .= "<td class='forms_right'>" . $row[12] . "</td>";
                        /* start nbr */
                        $content .= "<td>" . $row[13] . " " . $row[14] . "</td>";
                        /* name */
                        $content .= "<td class='forms_ctr_pc'>" . AA_formatYearOfBirth($row[15]) . "</td>";
                        $content .= "<td class='forms_pc'>";
                        if ($row[19] != '' && $row[19] != '-') {
                            $content .= $row[19];
                        } else {
                            $content .= " ";
                        }
                        $content .= "</td>";
                        $content .= "<td class='forms_pc' nowrap>" . $row[16] . "</td>";
                        /* club */
                    } else {
                        // relay
                        $content .= "<tr class='" . $rowclass . "'>";
                        $content .= "<td class='forms_right'>" . $row[9] . "</td>";
                        /* position */
                        $content .= "<td>" . $row[12] . "</td>";
                        /* relay name */
                        $content .= "<td>" . $row[13] . "</td>";
                        /* club */
                    }
                }
                // 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
                mysql_free_result($result);
                // $list->endPage();    // end HTML page for printing
                $content .= "</table>";
                $content .= $cfgHtmlFooter;
                $content .= "</div ></div>";
                $content .= $cfgHtmlEnd;
                if (!fwrite($fp, $content)) {
                    AA_printErrorMsg($GLOBALS['strErrFileWriteFailed']);
                    return;
                }
                fclose($fp);
            }
            // ET DB error
        }
        // ET round selected
        AA_UpdateStatusChanged($round);
        ?>
</body>
</html>
<?php 
    }
 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);
 }
    function AA_results_Tech($round, $layout, $content_navi, $cat, $disc, $rtyp)
    {
        require './config.inc.php';
        require './config.inc.end.php';
        require './lib/common.lib.php';
        require './lib/heats.lib.php';
        require './lib/utils.lib.php';
        $p = "./tmp";
        $fp = @fopen($p . "/live" . $round . ".html", 'w');
        if (!$fp) {
            AA_printErrorMsg($GLOBALS['strErrFileOpenFailed']);
            return;
        }
        $svm = AA_checkSVM(0, $round);
        // decide whether to show club or team name
        $mergedMain = AA_checkMainRound($round);
        if ($mergedMain == 1) {
            $round = AA_getMainRound($round);
        }
        // get url
        $url = '';
        $result = mysql_query("\r\n            SELECT\r\n                url\r\n            FROM\r\n                athletica_liveResultate.config");
        if (mysql_errno() > 0) {
            AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
        } else {
            $row = mysql_fetch_row($result);
            $url = $row[0];
        }
        // read round data
        if ($round > 0) {
            $status = AA_getRoundStatus($round);
            $content = $cfgHtmlStart1;
            if (empty($GLOBALS['cfgDir'])) {
                $content .= "<meta http-equiv='refresh' content='" . $GLOBALS['cfgMonitorReload'] . "; url=http://" . $url . "/live" . $round . ".html'>";
            } else {
                $content .= "<meta http-equiv='refresh' content='" . $GLOBALS['cfgMonitorReload'] . "; url=http://" . $url . "/" . $GLOBALS['cfgDir'] . "/live" . $round . ".html'>";
            }
            $content .= $cfgHtmlStart2;
            $content .= $content_navi;
            $content .= "</div ><div id='content_pc'><div id='content_pda'>";
            $content .= "<h1>{$strStartlist} " . $_COOKIE['meeting'] . "</h1>";
            // title
            if (!empty($rtyp)) {
                $content .= "<h2>{$cat} {$disc}, {$rtyp}</h2>";
            } else {
                $content .= "<h2>{$cat} {$disc}</h2>";
            }
            $content .= "<table class='dialog'>";
            // display all athletes
            $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" . " FROM athletica.runde AS r" . " LEFT JOIN athletica.serie AS s ON (s.xRunde = r.xRunde)" . " LEFT JOIN athletica.serienstart AS ss ON (ss.xSerie = s.xSerie)" . " LEFT JOIN athletica.start AS st ON (st.xStart = ss.xStart)" . " LEFT JOIN athletica.anmeldung AS a ON (a.xAnmeldung = st.xAnmeldung)" . " LEFT JOIN athletica.athlet AS at ON (at.xAthlet = a.xAthlet)" . " LEFT JOIN athletica.verein AS v ON (v.xVerein = at.xVerein)" . " LEFT JOIN athletica.team AS t ON(a.xTeam = t.xTeam)" . " LEFT JOIN athletica.rundentyp_" . $_COOKIE['language'] . " AS rt" . " ON rt.xRundentyp = r.xRundentyp" . " LEFT JOIN athletica.anlage AS an" . " ON an.xAnlage = s.xAnlage" . " WHERE r.xRunde = " . $round . " ORDER BY heatid, ss.Position";
            $result = mysql_query($sql);
            if (mysql_errno() > 0) {
                // DB error
                AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
            } else {
                // initialize variables
                $h = 0;
                $i = 0;
                $r = 0;
                $rowclass = 'odd';
                $r_rem = 0;
                ?>

<?php 
                while ($row = mysql_fetch_row($result)) {
                    /*               
                     *  Heat headerline
                     */
                    if ($h != $row[2]) {
                        $h = $row[2];
                        // keep heat ID
                        if (is_null($row[0])) {
                            // only one round
                            $title = "{$strFinalround}";
                        } else {
                            // more than one round
                            if ($row[1] == '0') {
                                $title = "";
                            } else {
                                $title = "{$row['0']}";
                            }
                        }
                        $c = 0;
                        $content .= "</table><table class='dialog'>";
                        if ($title != '') {
                            $content .= "<tr>";
                            $content .= "<th class='dialog' colspan='6'>" . $title . " " . $row[3] . "</th>";
                            $content .= "</tr>";
                        }
                        $content .= "<tr>";
                        $content .= "<th class='dialog'>" . $strPositionShort . "</th>";
                        $content .= "<th class='dialog'>" . $strStartnumber . "</th>";
                        $content .= " <th class='dialog' >" . $strAthlete . "</th>";
                        $content .= "<th class='dialog_pc'>" . $strYearShort . "</th>";
                        $content .= "<th class='dialog_pc'>" . $strCountry . "</th>";
                        $content .= "<th class='dialog_pc'>";
                        if ($svm) {
                            $content .= $strTeam;
                        } else {
                            $content .= $strClub;
                        }
                        $content .= "</th>";
                        for ($c = 1; $c <= $row[15]; $c++) {
                            $content .= "<th class='dialog'>" . $c . "</th>";
                        }
                        $content .= "</tr>";
                    }
                    // ET new heat
                    /*
                     * Athlete data lines
                     */
                    $i++;
                    if ($row[7] % 2 == 0) {
                        // even row numer
                        $rowclass = 'odd';
                    } else {
                        // odd row number
                        $rowclass = 'even';
                    }
                    $content .= "<tr class='" . $rowclass . "'>";
                    $content .= "<td class='forms_right'>" . $row[7] . "</td>";
                    /* position */
                    $content .= "<td class='forms_right'>" . $row[9] . "</td>";
                    /* start nbr */
                    $content .= "<td nowrap>" . $row[10] . " " . $row[11] . "</td>";
                    /* name */
                    $content .= "<td class='forms_ctr_pc'>" . AA_formatYearOfBirth($row[12]) . "</td>";
                    $content .= "<td class='forms_pc'>";
                    if ($row[17] != '' && $row[17] != '-') {
                        $content .= $row[17];
                        /* club */
                    } else {
                        $content .= " ";
                    }
                    $content .= "</td>";
                    $content .= "<td class='forms_pc' nowrap>" . $row[13] . "</td>";
                    $res = mysql_query("SELECT rs.xResultat" . ", rs.Leistung" . ", rs.Info" . " FROM athletica.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());
                    }
                    for ($c = 1; $c <= $row[15]; $c++) {
                        $item = '';
                        $perf = '';
                        $info = '';
                        if ($resrow = mysql_fetch_row($res)) {
                            $item = $resrow[0];
                            $perf = AA_formatResultMeter($resrow[1]);
                            $info = $resrow[2];
                        }
                        if ($perf < 0) {
                            if ($perf == $cfgMissedAttempt['dbx']) {
                                $perf = $cfgInvalidResult['NAA']['code'];
                            } elseif (perf == $cfgMissedAttempt['db']) {
                                $perf = $cfgInvalidResult['WAI']['short'];
                            } else {
                                foreach ($cfgInvalidResult as $value) {
                                    if ($value['code'] == $row_res[3]) {
                                        $perf = $value['short'];
                                    }
                                }
                            }
                        }
                        // technical disciplines with wind
                        if ($layout == $cfgDisciplineType[$strDiscTypeJump]) {
                            $content .= "<td>" . $perf . " (" . $info . ") </td>";
                            // info = wind
                        } else {
                            $content .= "<td>" . $perf . "</td>";
                        }
                    }
                }
                // end while
                $content .= "</table>";
                $content .= $cfgHtmlFooter;
                $content .= "</div ></div>";
                $content .= $cfgHtmlEnd;
                if (!fwrite($fp, $content)) {
                    AA_printErrorMsg($GLOBALS['strErrFileWriteFailed']);
                    return;
                }
                fclose($fp);
                mysql_free_result($result);
            }
            // ET DB error
        }
        // ET round selected
        AA_UpdateStatusChanged($round);
        ?>

</body>
</html>

<?php 
    }