function AA_speaker_High($event, $round, $layout)
    {
        require './lib/cl_gui_resulttable.lib.php';
        require './config.inc.php';
        require './lib/common.lib.php';
        require './lib/results.lib.php';
        $status = AA_getRoundStatus($round);
        $svm = AA_checkSVM(0, $round);
        // decide whether to show club or team name
        $mergedMain = AA_checkMainRound($round);
        if ($mergedMain != 1) {
            // No action yet
            if ($status == $cfgRoundStatus['open'] || $status == $cfgRoundStatus['enrolement_done'] || $status == $cfgRoundStatus['heats_in_progress']) {
                AA_printWarningMsg($strHeatsNotDone);
            } else {
                if ($status == $cfgRoundStatus['enrolement_pending']) {
                    AA_printWarningMsg($strEnrolementNotDone);
                } else {
                    if ($status >= $cfgRoundStatus['heats_done']) {
                        // show link to rankinglist if results done
                        if ($status == $cfgRoundStatus['results_done']) {
                            $menu = new GUI_Menulist();
                            $menu->addButton("print_rankinglist.php?event={$event}&round={$round}&type=single&formaction=speaker", $GLOBALS['strRankingList']);
                            $menu->addButton("print_rankinglist.php?event={$event}&round={$round}&type=single&formaction=speaker&show_efforts=sb_pb", $GLOBALS['strRankingListEfforts']);
                            $menu->printMenu();
                            echo "<p/>";
                        }
                        $prog_mode = AA_results_getProgramMode();
                        // display all athletes
                        $sql = "\r\n            SELECT\r\n                rt.Name\r\n                , rt.Typ\r\n                , s.xSerie\r\n                , s.Bezeichnung\r\n                , s.Status\r\n                , ss.xSerienstart\r\n                , ss.Position\r\n                , ss.Rang\r\n                , a.Startnummer\r\n                , at.Name\r\n                , at.Vorname\r\n                , at.Jahrgang\r\n                , if('" . $svm . "', te.Name, IF(a.Vereinsinfo = '', v.Name, a.Vereinsinfo))   \r\n                , LPAD(s.Bezeichnung,5,'0') as heatid\r\n                , st.Bestleistung\r\n                , at.xAthlet\r\n                , at.Land\r\n                , r.Status\r\n                , ss.Starthoehe\r\n            FROM\r\n                runde AS r\r\n                LEFT JOIN serie AS s ON (s.xRunde = r.xRunde)\r\n                LEFT JOIN serienstart AS ss ON (ss.xSerie = s.xSerie)\r\n                LEFT JOIN start AS st ON (st.xStart = ss.xStart)\r\n                LEFT JOIN anmeldung AS a ON (a.xAnmeldung = st.xAnmeldung)\r\n                LEFT JOIN athlet AS at ON (at.xAthlet = a.xAthlet)\r\n                LEFT JOIN team AS te ON(a.xTeam = te.xTeam) \r\n                LEFT JOIN verein AS v ON (v.xVerein = at.xVerein)\r\n                LEFT JOIN rundentyp_" . $_COOKIE['language'] . " AS rt ON rt.xRundentyp = r.xRundentyp\r\n            WHERE \r\n                r.xRunde = {$round}   \r\n            ORDER BY\r\n                heatid\r\n                , ss.Position";
                        $result = mysql_query($sql);
                        if (mysql_errno() > 0) {
                            // DB error
                            AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                        } else {
                            // initialize variables
                            $h = 0;
                            $i = 0;
                            $current_athlete = false;
                            $curr_class = '';
                            $resTable = new GUI_HighResultTable($round, $layout, $status);
                            while ($row = mysql_fetch_row($result)) {
                                /*
                                 *  Heat headerline
                                 */
                                if ($h != $row[2]) {
                                    $h = $row[2];
                                    // keep heat ID
                                    if (is_null($row[0])) {
                                        // only one round
                                        $title = "{$strFinalround}  {$row['3']}";
                                    } else {
                                        // more than one round
                                        $title = "{$row['0']}: {$row['1']}{$row['3']}";
                                    }
                                    $c = 0;
                                    if ($status == $cfgRoundStatus['results_done']) {
                                        $c = 1;
                                        // increment colspan to include ranking
                                    }
                                    $resTable->printHeatTitle($row[2], $row[3], $title, $row[4]);
                                    $resTable->printAthleteHeader('', $round, $row[17]);
                                }
                                // ET new heat
                                /*
                                 * Athlete data lines
                                 */
                                $rank = '';
                                $perfs = array();
                                $res = mysql_query("\r\n\t\t\t\t\tSELECT\r\n\t\t\t\t\t\tr.Leistung\r\n\t\t\t\t\t\t, r.Info\r\n\t\t\t\t\tFROM\r\n\t\t\t\t\t\tresultat as r\r\n\t\t\t\t\tWHERE r.xSerienstart = {$row['5']}\r\n\t\t\t\t\tORDER BY\r\n\t\t\t\t\t\tr.xResultat DESC\r\n\t\t\t\t");
                                if (mysql_errno() > 0) {
                                    // DB error
                                    AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                                } else {
                                    if ($status == $cfgRoundStatus['results_done']) {
                                        $rank = $row[7];
                                    }
                                    while ($resrow = mysql_fetch_row($res)) {
                                        $perf = AA_formatResultMeter($resrow[0]);
                                        $info = $resrow[1];
                                        $perfs[] = "{$perf} ( {$info} )";
                                    }
                                    // end loop every tech result acc. programm mode
                                    mysql_free_result($res);
                                }
                                $heatStart = AA_getCurrAthlete($row[2]);
                                if ($heatStart > 0) {
                                    if ($row[5] == $heatStart) {
                                        $curr_class = "active";
                                    }
                                } else {
                                    if (empty($perfs) && !$current_athlete) {
                                        $current_athlete = true;
                                        $curr_class = "active";
                                    }
                                }
                                $resTable->printAthleteLine($row[6], $row[8], "{$row['9']} {$row['10']}", AA_formatYearOfBirth($row[11]), $row[12], AA_formatResultMeter($row[14]), $perfs, $fett, $rank, $row[16], $row[15], $curr_class, '', $row[17], $row[18]);
                                $curr_class = "";
                            }
                            $resTable->endTable();
                            mysql_free_result($result);
                        }
                        // ET DB error
                    }
                }
            }
            // ET heat seeding done
        } else {
            AA_printErrorMsg($strErrMergedRoundSpeaker);
        }
        ?>
 
    
   <script type="text/javascript">
<!--
    window.setTimeout("updatePage()", <?php 
        echo $cfgMonitorReload * 1000;
        ?>
);

   

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

    
</script> 
    
    
    <?php 
    }
 function AA_regie_High($event, $round, $layout, $cat, $disc)
 {
     require './lib/cl_gui_resulttable.lib.php';
     require './config.inc.php';
     require './lib/common.lib.php';
     require './lib/results.lib.php';
     $status = AA_getRoundStatus($round);
     mysql_query("\r\n                LOCK TABLES\r\n                    resultat READ\r\n                    , serie READ\r\n                    , start READ                    \r\n                    , serienstart READ\r\n                    , serienstart READ                   \r\n                    , serie AS S READ\r\n                    , start AS ST READ                      \r\n                    , serienstart AS SS READ\r\n                    , anmeldung AS A READ \r\n                    , athlet as at READ \r\n                    , verein as vREAD \r\n                    , rundentyp as rt READ   \r\n                    , tempHigh WRITE\r\n            ");
     mysql_query("TRUNCATE TABLE tempHigh");
     // if this is a combined event, rank all rounds togheter
     $roundSQL = "";
     if ($combined) {
         $roundSQL = "AND serie.xRunde IN (";
         $res_c = mysql_query("SELECT xRunde FROM runde WHERE xWettkampf = " . $presets['event']);
         while ($row_c = mysql_fetch_array($res_c)) {
             $roundSQL .= $row_c[0] . ",";
         }
         $roundSQL = substr($roundSQL, 0, -1) . ")";
     } else {
         $roundSQL = "AND serie.xRunde = {$round}";
     }
     // read all valid results (per athlet)
     $result = mysql_query("\r\n                    SELECT\r\n                        resultat.Leistung\r\n                        , resultat.Info\r\n                        , serienstart.xSerienstart\r\n                        , serienstart.xSerie\r\n                    FROM\r\n                        resultat\r\n                        , serienstart\r\n                        , serie\r\n                    WHERE resultat.xSerienstart = serienstart.xSerienstart\r\n                    AND serienstart.xSerie = serie.xSerie\r\n                    {$roundSQL}\r\n                    AND resultat.Leistung != 0\r\n                    ORDER BY\r\n                        serienstart.xSerienstart\r\n                        ,resultat.Leistung DESC\r\n                ");
     if (mysql_errno() > 0) {
         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
     } else {
         // initialize variables
         $leistung = 0;
         $serienstart = 0;
         $serie = 0;
         $topX = 0;
         $totX = 0;
         $ss = 0;
         // athlete's ID
         $tt = FALSE;
         // top result check
         // process every result
         while ($row = mysql_fetch_row($result)) {
             // new athlete: save last athlete's data
             if ($ss != $row[2] && $ss != 0) {
                 if ($leistung != 0) {
                     // add one row per athlete to temp High table
                     mysql_query("\r\n                                    INSERT INTO tempHigh\r\n                                    VALUES(\r\n                                        {$serienstart}\r\n                                        , {$serie}\r\n                                        , {$leistung}\r\n                                        , {$topX}\r\n                                        , {$totX}\r\n                                        , 0)\r\n                                ");
                     if (mysql_errno() > 0) {
                         // DB error
                         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
                     }
                 }
                 // initialize variables
                 $leistung = 0;
                 $serienstart = 0;
                 $serie = 0;
                 $totX = 0;
                 $topX = 0;
                 $tt = FALSE;
             }
             // save data of current athlete's top result
             if ($tt == FALSE && strstr($row[1], 'O')) {
                 $leistung = $row[0];
                 $serienstart = $row[2];
                 $serie = $row[3];
                 $topX = substr_count($row[1], 'X');
                 $tt = TRUE;
             }
             // count total invalid attempts
             $totX = $totX + substr_count($row[1], 'X');
             $ss = $row[2];
             // keep athlete's ID
         }
         mysql_free_result($result);
         // insert last pending data in tempHigh table
         if ($ss != 0 && $leistung != 0) {
             mysql_query("\r\n                            INSERT INTO tempHigh\r\n                            VALUES(\r\n                                {$serienstart}\r\n                                , {$serie}\r\n                                , {$leistung}\r\n                                , {$topX}\r\n                                , {$totX}\r\n                                , 0)\r\n                        ");
             if (mysql_errno() > 0) {
                 // DB error
                 AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
             }
         }
     }
     if ($eval == $cfgEvalType[$strEvalTypeHeat]) {
         // eval per heat
         $order = "xSerie ,";
     } else {
         // default: rank results from all heats together
         $order = "";
     }
     // Read rows from temporary table ordered by performance,
     // nbr of invalid attempts for top performance and
     // total nbr of invalid attempts to determine ranking.
     $result = mysql_query("\r\n                    SELECT\r\n                        xSerienstart\r\n                        , xSerie\r\n                        , Leistung\r\n                        , TopX\r\n                        , TotalX\r\n                    FROM\r\n                        tempHigh\r\n                    ORDER BY\r\n                        {$order}\r\n                        Leistung DESC\r\n                        ,TopX ASC\r\n                        ,TotalX ASC\r\n                ");
     if (mysql_errno() > 0) {
         // DB error
         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
     } else {
         // initialize variables
         $heat = 0;
         $perf = 0;
         $topX = 0;
         $totalX = 0;
         $i = 0;
         $rank = 0;
         // set rank for every athlete
         while ($row = mysql_fetch_row($result)) {
             if ($eval == $cfgEvalType[$strEvalTypeHeat] && $heat != $row[1]) {
                 $i = 0;
                 // restart ranking
                 $perf = 0;
                 $topX = 0;
                 $totalX = 0;
             }
             $j++;
             // increment ranking
             if ($perf != $row[2] || $topX != $row[3] || $totalX != $row[4]) {
                 $rank = $j;
                 // next rank (only if not same performance)
             }
             mysql_query("\r\n                            UPDATE tempHigh SET\r\n                                rang = {$rank}\r\n                            WHERE xSerienstart = {$row['0']}\r\n                        ");
             if (mysql_errno() > 0) {
                 AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
             }
             $heat = $row[1];
             // keep current heat ID
             $perf = $row[2];
             $topX = $row[3];
             $totalX = $row[4];
         }
         mysql_free_result($result);
     }
     $arg = isset($_GET['arg1']) ? $_GET['arg1'] : (isset($_COOKIE['sort_speakres']) ? $_COOKIE['sort_speakres'] : 'pos');
     setcookie('sort_speakres', $arg1, time() + 2419200);
     // display all athletes
     if ($arg == "pos") {
         $argument = "ss.Position";
         $img_pos = "img/sort_act.gif";
     } else {
         if ($arg == "rang") {
             $argument = "orderRang, ss.Position";
             $img_rang = "img/sort_act.gif";
         } else {
             if ($relay == FALSE) {
                 // single event
                 $argument = "ss.Position";
                 $img_pos = "img/sort_act.gif";
             }
         }
     }
     $result = mysql_query("\r\n\t\t\tSELECT\r\n\t\t\t\trt.Name\r\n\t\t\t\t, rt.Typ\r\n\t\t\t\t, s.xSerie\r\n\t\t\t\t, s.Bezeichnung\r\n\t\t\t\t, s.Status\r\n\t\t\t\t, ss.xSerienstart\r\n\t\t\t\t, ss.Position\r\n\t\t\t\t, ss.Rang\r\n\t\t\t\t, a.Startnummer\r\n\t\t\t\t, at.Name\r\n\t\t\t\t, at.Vorname\r\n\t\t\t\t, at.Jahrgang\r\n\t\t\t\t, v.Name\r\n\t\t\t\t, LPAD(s.Bezeichnung,5,'0') as heatid\r\n\t\t\t\t, st.Bestleistung\r\n\t\t\t\t, at.xAthlet\r\n\t\t\t\t, at.Land                  \r\n                , if (t.rang > 0,  t.rang, 999999) as orderRang \r\n\t\t\tFROM\r\n\t\t\t\trunde AS r\r\n\t\t\t\tLEFT JOIN serie AS s ON (s.xRunde = r.xRunde )\r\n\t\t\t\tLEFT JOIN serienstart AS ss ON (ss.xSerie = s.xSerie)\r\n\t\t\t\tLEFT JOIN start AS st ON (st.xStart = ss.xStart)\r\n\t\t\t\tLEFT JOIN anmeldung AS a ON (a.xAnmeldung = st.xAnmeldung)\r\n\t\t\t\tLEFT JOIN athlet AS at ON (at.xAthlet = a.xAthlet)\r\n\t\t\t\tLEFT JOIN verein AS v ON (v.xVerein = at.xVerein)\r\n                LEFT JOIN tempHigh AS t ON (t.xSerienstart = ss.xSerienstart)    \r\n\t\t\t    LEFT JOIN rundentyp AS rt ON (rt.xRundentyp = r.xRundentyp)\r\n\t\t\tWHERE r.xRunde = {$round}   \t\t\t\r\n\t\t\tORDER BY                     \r\n\t\t\t\theatid ,\r\n\t\t\t\t" . $argument);
     if (mysql_errno() > 0) {
         // DB error
         AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
     } else {
         // initialize variables
         $h = 0;
         $i = 0;
         $current_athlete = false;
         $curr_class = '';
         $resTable = new GUI_HighResultTable($round, $layout, $status);
         $resTable->printHeatTitleRegie($cat, $disc);
         while ($row = mysql_fetch_row($result)) {
             /*
              *  Heat headerline
              */
             if ($h != $row[2]) {
                 $h = $row[2];
                 // keep heat ID
                 if (is_null($row[0])) {
                     // only one round
                     $title = "{$strFinalround}  {$row['3']}";
                 } else {
                     // more than one round
                     $title = "{$row['0']}: {$row['1']}{$row['3']}";
                 }
                 $c = 0;
                 if ($status == $cfgRoundStatus['results_done']) {
                     $c = 1;
                     // increment colspan to include ranking
                 }
                 $resTable->printHeatTitle($row[2], $row[3], $title, $row[4], 'regie');
                 $resTable->printAthleteHeader('regie');
             }
             // ET new heat
             /*
              * Athlete data lines
              */
             $rank = '';
             $perfs = array();
             $res = mysql_query("\r\n\t\t\t\t\tSELECT\r\n\t\t\t\t\t\tr.Leistung\r\n\t\t\t\t\t\t, r.Info\r\n\t\t\t\t\tFROM\r\n\t\t\t\t\t\tresultat as r\r\n\t\t\t\t\tWHERE r.xSerienstart = {$row['5']}\r\n\t\t\t\t\tORDER BY\r\n\t\t\t\t\t\tr.xResultat DESC\r\n\t\t\t\t");
             if (mysql_errno() > 0) {
                 // DB error
                 AA_printErrorMsg(mysql_errno() . ": " . mysql_error());
             } else {
                 if ($status == $cfgRoundStatus['results_done']) {
                     $rank = $row[7];
                 } else {
                     $rank = $row[17];
                 }
                 while ($resrow = mysql_fetch_row($res)) {
                     $perf = AA_formatResultMeter($resrow[0]);
                     $info = $resrow[1];
                     $perfs[] = "{$perf} ( {$info} )";
                 }
                 // end loop every tech result acc. programm mode
                 mysql_free_result($res);
             }
             $heatStart = AA_getCurrAthlete($row[2]);
             if ($heatStart > 0) {
                 if ($row[5] == $heatStart) {
                     $curr_class = "active";
                 }
             } else {
                 if (empty($perfs) && !$current_athlete) {
                     $current_athlete = true;
                     $curr_class = "active";
                 }
             }
             if ($rank == 999999) {
                 $rank = '';
             }
             $resTable->printAthleteLine($row[6], $row[8], "{$row['9']} {$row['10']}", '', '', AA_formatResultMeter($row[14]), $perfs, $fett, $rank, '', $row[15], $curr_class, 'regie');
             $curr_class = "";
         }
         $resTable->endTable();
         mysql_free_result($result);
     }
     // ET DB error
     mysql_query("UNLOCK TABLES");
 }