#!/usr/bin/perl
# Zobrazí seznam přihlášených na konkrétní akci.
use dancgi; # čtení parametrů z webu nebo z ARGV
use access; # funkce pro čtení textových tabulek vyexportovaných z MS Accessu
use csort; # české a anglické abecední řazení UTF znaků
use mso; # funkce pro generování stránek o olympiádě
use utf8; # říct Perlu, že konstantní řetězce ve zdrojáku jsou v UTF
use Encode;
binmode(STDOUT, ":utf8"); # říct Perlu, že UTF chceme i na výstupu
do("cesta.pl"); # Načíst vnější i vnitřní cesty k dokumentům, jak platí na tomto počítači.
# Cesty jsou načteny do hashe %konfig, kam budeme chtít dát i jiné věci, ale nebudeme
# chtít, aby se cesty objevily v nových odkazech jako parametry skriptu. Proto
# musíme přejmenovat jejich klíče. (Zatím si netroufám upravit přímo cesta.pl,
# protože ho používá i řada jiných skriptů a musel bych je všechny projít a opravit.)
$cesta = $konfig{ccesta_html_www};
undef(%konfig);
$konfig{_cesta} = $cesta;



# Načíst parametry z URL.
dancgi::cist_parametry(\%konfig);
# Umožnit volat skript z příkazového řádku a předat parametry tam (např. perl prihlaseni.pl akce=caroly).
dancgi::rozebrat_parametry($ARGV[0], \%konfig);
if($konfig{jazyk} eq "")
{
    $konfig{jazyk} = "cs";
}
$jazyky::jazyk = $konfig{jazyk};



# Načíst tabulku výsledků.
$vysledky = access::cist_tabulku_access("vysledky.txt");
$akce = access::cist_tabulku_access("akce.txt");
if($konfig{hra} ne "" && $konfig{turnaj} ne "")
{
    # Zjistit název vybrané akce.
    foreach my $a (@{$akce})
    {
        if($a->{rok}==$konfig{rok} && $a->{"kod hry"}.$a->{"kod turnaje"} eq $konfig{hra}.$konfig{turnaj})
        {
            $nazev_akce = $a->{jazyky::zjistit("klic_nazev")};
            $tiskova_zprava = $a->{"tiskova zprava"};
            last;
        }
    }
    # Zjistit, která kritéria jsou u této akce vyplněna.
    my $max_kriterium;
    foreach my $vysledek (@{$vysledky})
    {
        if($vysledek->{rok} eq $konfig{rok} &&
           $vysledek->{"kod hry"} eq $konfig{hra} &&
           $vysledek->{"kod akce"} eq $konfig{turnaj})
        {
            for(my $i = $max_kriterium+1; $i<=5; $i++)
            {
                if($vysledek->{"kriterium $i"} ne "")
                {
                    $max_kriterium = $i;
                }
            }
        }
    }
    # Vybrat pouze přihlášky na konkrétní akci.
    $tabulka .= "<p>$tiskova_zprava</p> \n";
    $tabulka .= "<table>\n";
    $tabulka .= "<tr><th align=left>".jazyky::zjistit("c")."</th><th align=left>".jazyky::zjistit("jmeno")."</th><th align=left>".jazyky::zjistit("zeme")."</th><th align=left>".jazyky::zjistit("obec")."</th>";
    for(my $i = 1; $i<=$max_kriterium; $i++)
    {
        $tabulka .= "<th>".jazyky::zjistit("kriterium")." $i</th>";
    }
    $tabulka .= "</tr>\n";
    foreach my $vysledek (@{$vysledky})
    {
        if($vysledek->{rok}.$vysledek->{"kod hry"}.$vysledek->{"kod akce"} eq $konfig{rok}.$konfig{hra}.$konfig{turnaj})
        {
            $tabulka .= "<tr><td align=right>$vysledek->{poradi}. </td><td>$vysledek->{jmeno} $vysledek->{prijmeni}</td><td>$vysledek->{zeme}</td><td>$vysledek->{obec}</td>";
            for(my $i = 1; $i<=$max_kriterium; $i++)
            {
                $tabulka .= "<td align=center>$vysledek->{\"kriterium $i\"} </td>";
            }
            $tabulka .= "</tr>\n"
        }
    }
    $tabulka .= "</table>\n";
}
# Vypsat stránku.
mso::vypsat_stranku(
{
    "nazev"  => "MSO: $konfig{rok}: ".jazyky::zjistit("vysledky"), 
    "nadpis" => jazyky::zjistit("vysledky_nadpis", $nazev_akce),
    "telo"   => $tabulka,
    "rok"    => $konfig{rok},
});
