# Knihovna funkcí pro generování HTML stránek o Deskohraní z databáze.
# Copyright © 2004-2018 Dan Zeman <zeman@ufal.mff.cuni.cz>
# Licence: GNU GPL

package mso;
use utf8; # říct Perlu, že konstantní řetězce ve zdrojáku jsou v UTF
use DBI; # spolupráce se serverem MySQL
use Encode; # knihovna pro překódování ne-ASCII znaků (potřebujeme pro explicitní dekódování UTF-8 z databáze)
use lib '/s/w/lib/dan';
use lib '/s/w/lib/cgi/devmso';
use cas;
use dancgi;
use jazyky; # různé jazykové verze olympijských stránek
binmode(STDOUT, ':utf8'); # říct Perlu, že UTF chceme i na výstupu



#------------------------------------------------------------------------------
# Provede výchozí nastavení parametrů.
#------------------------------------------------------------------------------
sub provest_vychozi_nastaveni_parametru
{
    my $konfig = shift; # odkaz na hash
    my $databaze = shift; # odkaz na otevřenou databázi
    my $roky = mso::dotazat_se_databaze($databaze, "rok", "rocniky ORDER BY rok");
    $konfig->{rok} = $roky->[$#{$roky}]{rok};
    # Parametry, které si nemají skripty předávat prostřednictvím URL, mají na začátku podtržítko.
    $konfig->{_cesta_html_prohlizec} = ""; # tj. kořen na deskohrani.cz
    $konfig->{_cesta_cgi_prohlizec} = "/cgi/mso";
    $konfig->{_cesta_html_system} = "/var/web/deskohrani.cz/dev";
    $konfig->{_cesta_cgi_system} = "/var/web/lib/cgi/devmso";
    return $konfig;
}



#------------------------------------------------------------------------------
# Připojí se k databázi.
#------------------------------------------------------------------------------
sub pripojit_se_k_databazi
{
    # Připojit se k databázi.
    # Pokud je skript spuštěn webovým serverem (uživatel www-data), měl by mít dostatečná práva pro přístup k databázi.
    # Pokud je ale spuštěn uživatelem dan@kub.cz, práva nemá a musí se databázi hlásit jako uživatel web_deskohrani.
    # V tom případě je potřeba, aby příslušné heslo bylo v proměnné prostředí DBI_ROOT_PASS.
    my $dbi_uzivatel = 'web_deskohrani';
    my $dbi_heslo = 'mLSsZYHEKRyTfbnq';
    my $databaze = DBI->connect("DBI:mysql:web_deskohrani_dev", $dbi_uzivatel, $dbi_heslo)
      or print STDERR ("Nelze se pripojit k databazi: $DBI::errstr\n");
    # Nastavit kódování klienta, spojení a výsledků.
    $databaze->prepare("SET NAMES 'utf8'")->execute();
    return $databaze;
}



#------------------------------------------------------------------------------
# Přečte údaje z databáze.
#------------------------------------------------------------------------------
sub dotazat_se_databaze
{
    my $databaze = shift;
    my $from = pop(@_);
    my @nazvy = @_;
    my $nazvy = join(", ", @nazvy);
    my $dotaz = "SELECT $nazvy FROM $from";
    my $dtzobj = $databaze->prepare($dotaz);
    $dtzobj->execute();
    my @pole;
    while(my @radek = map{decode("utf8", $_)}($dtzobj->fetchrow_array()))
    {
        my %zaznam;
        for(my $i = 0; $i<=$#nazvy; $i++)
        {
            # Upravit názvy přejmenovaných polí.
            $nazvy[$i] =~ s/^.*\s+AS\s+//i;
            $zaznam{$nazvy[$i]} = $radek[$i];
        }
        push(@pole, \%zaznam);
    }
    #return "ahoj";#$dotaz;
    return \@pole;
}



#------------------------------------------------------------------------------
# Nová zjednodušená metoda výroby odkazů mezi stránkami Deskohraní. Výsledkem
# této funkce je seznam atributů prvku <a> a jejich hodnot, takže stačí je
# obalit počáteční značkou prvku a je to. Funkce už nezahrnuje počáteční
# značku prvku, protože by stejně nemohla zahrnout koncovou značku a zdroják
# by pak nebyl symetrický. Příklad:
#
# "<a ".mso::odkaz(\%konfig, "telo=propozice.pl").">Propozice</a>"
#------------------------------------------------------------------------------
sub odkaz
{
    my $konfig = shift;
    my $atributy = "href=\"".url(@_)."\" target=\"_top\"";
    return $atributy;
}
sub url
{
    # Nemá smysl předávat odkaz na %main::konfig jako parametr. Tento modul je
    # tak jako tak svázán se stránkami deskohraní, protože ví, že má vždy volat
    # skript index.pl do rámu _top. Proto může i vědět, ve které globální
    # proměnné jsou uložené parametry CGI, a nemusíme s tím obtěžovat volajícího.
    my $parametry = dancgi::sestavit_parametry_odkaz(\%main::konfig, @_);
    my $url = "index.pl?$parametry";
    return $url;
}



#------------------------------------------------------------------------------
# Přečte parametr o třídění a vyrobí podle něj lépe použitelné pole.
#------------------------------------------------------------------------------
sub prevest_konfig_trid
{
    my $konfig = shift;
    # Převést parametr trid (např. trid=hra,akce,datum,cas) na náš hash.
    if(exists($konfig->{trid}))
    {
        my %prevod =
        (
            "hra"   => "_nazev_hry_tridici",
            "akce"  => "_nazev_akce_tridici",
            "datz"  => "_zacatek_datum_tridici",
            "casz"  => "_zacatek_cas_tridici",
            "datk"  => "_konec_datum_tridici",
            "cask"  => "_konec_cas_tridici",
        );
        my @trid = split(",", $konfig->{trid});
        splice(@{$konfig->{_trideni}});
        for(my $i = 0; $i<=$#trid; $i++)
        {
            $konfig->{_trideni}[$i] = $prevod{$trid[$i]};
        }
    }
}



#------------------------------------------------------------------------------
# Vybudovat hash pro rychlé nalezení záznamu o hře podle jejího kódu.
#------------------------------------------------------------------------------
sub nahashovat_hry
{
    my $hry = shift;
    my %hry;
    foreach my $h (@{$hry})
    {
        $hry{$h->{kod}} = $h;
    }
    return \%hry;
}



#------------------------------------------------------------------------------
# Vypíše na standardní výstup HTML stránku s názvem, nadpisem a tělem, které
# dodá volající.
#------------------------------------------------------------------------------
sub vypsat_stranku
{
    my $konfig = shift; # odkaz na hash
    print("<h1>$konfig->{nadpis}</h1>\n");
    print($konfig->{telo});
}

#------------------------------------------------------------------------------
# Načte z databáze tabulku akcí a dopočítá hodnoty, které by se mohly hodit
# (např. oddělí datum a čas začátku). Sdílí skripty akce.pl a prihlaska.pl.
#------------------------------------------------------------------------------
sub nacist_akce
{
    my $databaze = shift;
    my $rok = shift;
    my @akce;
    my $nazev_jazyk = jazyky::zjistit('klic_nazev');
    my @nazvy = ('rok', 'kod_hry', 'kod_turnaje', "akce.$nazev_jazyk", 'zacatek', 'konec', 'propozice', 'pocet_prihlasenych', 'pocet_ucastniku', "hry.$nazev_jazyk", 'prihlasky', 'plus_vstup', 'startovne');
    my $dotaz = "SELECT ".join(", ", @nazvy)." FROM akce INNER JOIN hry ON hry.kod = akce.kod_hry WHERE rok = $rok";
    my $dtzobj = $databaze->prepare($dotaz);
    $dtzobj->execute();
    # Zapamatovat si, jestli jsme v databázi viděli Pětimysl. Jinak ji totiž budeme chtít přidat uměle.
    my $pet = 0;
    while(my @radek = map{decode("utf8", $_)}($dtzobj->fetchrow_array()))
    {
        # Nahashovat informace o akci.
        my %a;
        for(my $i = 0; $i<=$#nazvy; $i++)
        {
            $a{$nazvy[$i]} = $radek[$i];
        }
        dopocitat_akci(\%a);
        push(@akce, \%a);
        $pet++ if($a{kod_hry} eq 'pet');
    }
    # Pokud v databázi chybí záznam pro Pětimysl, vyrobit ho uměle.
    unless($pet)
    {
        # Zjistit datum začátku a konce Deskohraní.
        my $rocniky = dotazat_se_databaze($databaze, 'zacatek', 'konec', "rocniky WHERE rok = '$rok'");
        my %a =
        (
            'rok'               => $rok,
            'kod_hry'           => 'pet',
            'kod_turnaje'       => 'oly',
            "akce.$nazev_jazyk" => jazyky::zjistit('pentamind'),
            'zacatek'           => $rocniky->[0]{zacatek}.' 8:00:00',
            'konec'             => $rocniky->[0]{konec}.' 18:00:00',
            "hry.$nazev_jazyk"  => jazyky::zjistit('pentamind'),
            'prihlasky'         => 'netřeba'
        );
        dopocitat_akci(\%a);
        push(@akce, \%a);
    }
    return \@akce;
}



#------------------------------------------------------------------------------
# Předzpracuje některé údaje o akci do podoby, se kterou se nám bude lépe
# pracovat. Převezme odkaz na hash s údaji o akci načtenými z databáze. Do
# hashe doplní další položky a vrátí opět odkaz na něj.
#------------------------------------------------------------------------------
sub dopocitat_akci
{
    my $a = shift; # odkaz na hash s údaji o akci z databáze
    my $nazev_jazyk = jazyky::zjistit("klic_nazev");
    # Zkopírovat název akce pod klíč, pod kterým jsme ho měli dřív.
    $a->{$nazev_jazyk} = $a->{"akce.$nazev_jazyk"};
    # Oddělit datum a čas začátku akce.
    if($a->{zacatek} =~ m/^(\d+)\.(\d+)\.(\d+) (\d+):(\d+):\d+$/)
    {
        $a->{_zacatek_datum} = "$1.$2.$3";
        $a->{_zacatek_cas} = "$4:$5";
        $a->{_zacatek_datum_tridici} = sprintf("%04d%02d%02d", $3, $2, $1);
        $a->{_zacatek_cas_tridici} = sprintf("%02d%02d", $4, $5);
    }
    # Oddělit datum a čas konce akce.
    if($a->{konec} =~ m/^(\d+)\.(\d+)\.(\d+) (\d+):(\d+):\d+$/)
    {
        $a->{_konec_datum} = "$1.$2.$3";
        $a->{_konec_cas} = "$4:$5";
        $a->{_konec_datum_tridici} = sprintf("%04d%02d%02d", $3, $2, $1);
        $a->{_konec_cas_tridici} = sprintf("%02d%02d", $4, $5);
    }
    # Doplnit název hry v požadovaném jazyce.
    $a->{_nazev_hry} = $a->{"hry.$nazev_jazyk"};
    $a->{_nazev_hry_tridici} = csort::zjistit_tridici_hodnoty($a->{_nazev_hry}, $jazyky::jazyk);
    $a->{_nazev_akce_tridici} = csort::zjistit_tridici_hodnoty($a->{$nazev_jazyk}, $jazyky::jazyk);
    # Odstranit z parametrů třídění, v propozicích tento parametr není potřeba.
    # Bráníme se tím kombinatorické explozi, až budeme převádět stránky na statické.
    my %parametry_hra = %main::konfig;
    delete($parametry_hra{trid});
    my $parametry_prihlaseni = dancgi::sestavit_parametry_odkaz(\%parametry_hra, "telo=prihlaseni.pl", "hra=$a->{kod_hry}", "rok=$a->{rok}", "turnaj=$a->{kod_turnaje}");
    my $parametry_vysledky   = dancgi::sestavit_parametry_odkaz(\%parametry_hra, "telo=vysledky.pl",   "hra=$a->{kod_hry}", "rok=$a->{rok}", "turnaj=$a->{kod_turnaje}");
    my $parametry_vysledky_pentamindu = dancgi::sestavit_parametry_odkaz(\%parametry_hra, "telo=pentamind.pl");
    my $s = $a->{pocet_prihlasenych} && !$a->{pocet_ucastniku} ? "<a href=\"index.pl?$parametry_prihlaseni\" target=\"_top\">S</a>" : "";
    my $v = $a->{kod_hry} eq "pet" ? "<a href=\"index.pl?$parametry_vysledky_pentamindu\" target=\"_top\">V</a>" : $a->{pocet_ucastniku} ? "<a href=\"index.pl?$parametry_vysledky\" target=\"_top\">V</a>" : "";
    my $parametry_propozice = dancgi::sestavit_parametry_odkaz(\%parametry_hra, "telo=propozice.pl", "hra=$a->{kod_hry}", "rok=$a->{rok}", "turnaj=$a->{kod_turnaje}");
    $a->{_nazev_odkaz_propozice} = "<a href=\"index.pl?$parametry_propozice\" target=\"_top\">$a->{$nazev_jazyk}</a>";
    $a->{_odkazy_ppv} =
        "&nbsp;".
        "<a href=\"index.pl?$parametry_propozice\" target=\"_top\">P</a>".
        "&nbsp;".
        $s.
        "&nbsp;".
        $v;
    # Jestliže jsme vynechali S nebo V, může být na konci jedna nebo dvě zbytečné mezery. Umazat je.
    $a->{_odkazy_ppv} =~ s/(&nbsp;)*$//;
    # Jestliže jsme vynechali jenom S, jsou dvě mezery místo jedné uprostřed.
    $a->{_odkazy_ppv} =~ s/(&nbsp;)+/&nbsp;/g;
    $a->{_nazev_ppv} =
        "<table class=\"layout\">".
        "<tr>".
        "<td>".
        $a->{$nazev_jazyk}.
        "</td>".
        "<td align=\"right\">".
        $a->{_odkazy_ppv}.
        "</td>".
        "</tr>".
        "</table>";
    return $a;
}



#------------------------------------------------------------------------------
# Zjistí výši startovného pro určitý turnaj, kategorii, členství a datum.
#------------------------------------------------------------------------------
sub zjistit_startovne
{
    my $databaze = shift;
    my $rok = shift;
    my $hra = shift;
    my $turnaj = shift;
    my $kategorie = shift;
    my $clenstvi = shift; # odkaz na hash typu ("paluba" => 1)
    # Zjistit z databáze údaje o akci.
    my @nazvy = ('organizator', 'organizator2', 'startovne', 'startovne_2', 'startovne_3', 'startovne_4');
    my $akce = dotazat_se_databaze($databaze, @nazvy, "akce WHERE (rok = '$rok') AND (kod_hry = '$hra') AND (kod_turnaje = '$turnaj')")->[0];
    # Nejdříve zjistit, kterou ze čtyř sazeb budeme aplikovat.
    # Typicky jsou buď sazby seřazené od nejvyšší po nejnižší (startovne_4 je nejnižší), nebo jsou všechny stejné.
    # Do roku 2010 platilo, že při včasném přihlášení se použijí sazby 2 až 4, při pozdním sazby 1 až 3.
    # Od roku 2011 se používají pouze sazby 1 až 3, ale při včasném zaplacení je sleva z celkové částky 20 % (ta se už počítá mimo tuto funkci).
    my $sazba;
    if($kategorie =~ m/^(dite|dítě|child)$/)
    {
        $sazba = 4;
    }
    elsif($kategorie =~ m/student/)
    {
        $sazba = 3;
    }
    else
    {
        # Zohlednit slevu za členství v pořádající organizaci.
        my %org =
        (
            'Klub deskových her Paluba'           => 'paluba',
            'Česká asociace Scrabble'             => 'scrabble',
            'Česká federace Dámy'                 => 'dama',
            'Česká unie Dámy'                     => 'dama2',
            'Česká asociace Go'                   => 'go',
            'Česká federace Othello'              => 'othello',
            'Svaz českých hádankářů a křížovkářů' => 'hadanka'
        );
        my $o1 = $org{$akce->{organizator}};
        my $o2 = $org{$akce->{organizator2}};
        # Kvůli nekonzistencím v názvech proměnných, ve kterých se uchovávají informace o členství, pro jistotu zkusit všechno.
        if($clenstvi->{$o1} || $clenstvi->{"clen$o1"} || $clenstvi->{"clen_$o1"} ||
           $clenstvi->{$o2} || $clenstvi->{"clen$o2"} || $clenstvi->{"clen_$o2"})
        {
            $sazba = 3;
        }
        else
        {
            $sazba = 2;
        }
    }
    # Do roku 2010 zohlednit včasné přihlášení (viz též komentář výše).
    if($rok<=2010)
    {
        # Zjistit, dokdy se přihlášky považují za včasné.
        my $vcas = mso::dotazat_se_databaze($databaze, 'vcasne_prihlasky_do', "rocniky WHERE rok = $rok")->[0]{vcasne_prihlasky_do};
        # Pozdě přihlášení platí více.
        if(cas::ted()->{eden} > cas::datum2eden($vcas))
        {
            $sazba--;
        }
    }
    # Od roku 2011 se každopádně použijí sazby pro pozdní přihlášení (případná sleva se projeví jinde).
    else
    {
        $sazba--;
    }
    # Vrátit odpovídající částku z databáze.
    if($sazba<2)
    {
        return $akce->{startovne};
    }
    else
    {
        return $akce->{'startovne_'.$sazba};
    }
}



#------------------------------------------------------------------------------
# Zjistí z databáze datum včasného přihlášení v daném roce.
#------------------------------------------------------------------------------
sub zjistit_datum_vcasneho_prihlaseni
{
    my $databaze = shift;
    my $rok = shift;
    my $dotaz = "SELECT vcasne_prihlasky_do FROM rocniky WHERE rok = '$rok'";
    my $dtzobj = $databaze->prepare($dotaz);
    $dtzobj->execute();
    my @radek = map{decode('utf8', $_)}($dtzobj->fetchrow_array());
    my $vcasne_prihlasky_do = $radek[0];
    return $vcasne_prihlasky_do;
}



#------------------------------------------------------------------------------
# Najde záznamy o osobách, které by mohly odpovídat právě přihlášené osobě.
# Používá se v různých skriptech z podsložky vnitro.
#------------------------------------------------------------------------------
sub najit_osobu
{
    my $hledana = shift; # odkaz na hash
    my $databaze = shift;
    my @nazvy = ("kod", "jmeno", "prijmeni", "obec", "zeme", "e_mail",
        "pohlavi", "kategorie", "clen_paluba", "clen_scrabble", "clen_dama", "clen_dama2", "clen_go", "clen_othello", "clen_hadanka");
    # Najít záznamy, které se shodují ve jménu i příjmení.
    my $osoby = dotazat_se_databaze($databaze, @nazvy, "osoby WHERE (jmeno='$hledana->{jmeno}') AND (prijmeni='$hledana->{prijmeni}')");
    # Pokud se nepodařilo najít žádné záznamy, najít záznamy, které obsahují uvedený e-mail.
    unless(scalar(@{$osoby}))
    {
        $osoby = dotazat_se_databaze($databaze, @nazvy, "osoby WHERE (e_mail LIKE '%$hledana->{email}%')");
    }
    return $osoby;
}



#------------------------------------------------------------------------------
# Vypíše přihlašovací formulář.
#------------------------------------------------------------------------------
sub registrace
{
    my $stranka;
    $stranka .= jazyky::zjistit("registrace_uvod");
    my $krestni_jmeno = jazyky::zjistit("krestni_jmeno");
    my $prijmeni = jazyky::zjistit("prijmeni");
    my $hraci_system = jazyky::zjistit("hraci_system");
    my $kriteria = jazyky::zjistit("kriteria");
    my $kriterium = jazyky::zjistit("kriterium");
    my $organizace = jazyky::zjistit("organizace");
    my $vyber_organizaci = jazyky::zjistit("vyber_organizaci");
    my $vyber_hraciho_systemu = jazyky::zjistit("vyber_hraciho_systemu");
    my $vyber_kriterii = jazyky::zjistit("vyber_kriterii");
    my $parametry = dancgi::sestavit_parametry_odkaz(\%main::konfig, "co=zpracuj");
    $stranka .= <<EOF

<form method=post action="registrace_turnaju.pl?$parametry">
$pokec
<table>
<tr><td>
<p><b>$krestni_jmeno</b><br>
<input type=text name="jmeno" size="30"></td><td>
<b>$prijmeni</b><br>
<input type=text name="prijmeni" size="30"></td></tr>

<tr><td colspan="2">
<b>E-mail</b><br>
<input type=text name="email" size="67"><br></td></tr>

<tr><td  colspan="2">
<b>$organizace</b><br>
<select name="organizace">
$vyber_organizaci
</select>
<input type=text name="organizacejina" size="30">
</td></tr>

<tr><td>
<b>Hra</b><br>
<input type=text name="hra" size="30"><br></td>
<td>
<b>Název turnaje</b><br>
<input type=text name="nazev" size="30"><br>
</td></tr>

<tr><td>
<b>Očekávaný počet účastníků</b><br>
(běžný počet na tomto druhu turnaje)<br>
<input type=text name="pocet" size="30"><br></td>
<td>
<b>Maximální počet účastníků</b><br>
(počet, který může přijít při ideální konstalaci)<br>
<input type=text name="kapacita" size="30"><br>
</td></tr>


<tr><td>&nbsp;</td><td></td></tr>

<tr><td colspan="2">
<h3>Termín 1 (tak, jak by Vám ideálně vyhovoval):</h3>
</td></tr>

<tr><td>
<b>Datum začátku turnaje:</b> <br>(v rozmezí 30.9 - 8.10.2006)<br>
<input type=text name="datum1zac" size="30"></td><td>
<b>Čas začátku turnaje:</b> <br>(ideální je 9:00 či 14:00 či 18:30)<br>
<input type=text name="cas1zac" size="30"></td></tr>

<tr><td>
<b>Datum konce turnaje:</b><br><br>
<input type=text name="datum1ko" size="30"></td><td>
<b>Čas konce turnaje:</b> <br>(ideální je 13:00 či 18:00 či 22:00)<br>
<input type=text name="cas1ko" size="30"></td></tr>

<tr><td>&nbsp;</td><td></td></tr>

<tr><td colspan="2">
<h3>Termín 2 (druhá přijatelná varianta):</h3>
</td></tr>

<tr><td>
<b>Datum 2 začátku turnaje:</b> <br>(30.9 - 8.10.2006)<br>
<input type=text name="datum2zac" size="30"></td><td>
<b>Čas 2 začátku turnaje:</b> <br>(ideální je 9:00 či 14:00 či 18:30)<br>
<input type=text name="cas2zac" size="30"></td></tr>

<tr><td>
<b>Datum 2 konce turnaje:</b><br><br>
<input type=text name="datum2ko" size="30"></td><td>
<b>Čas 2 konce turnaje:</b> <br>(ideální je 13:00 či 18:00 či 22:00)<br>
<input type=text name="cas2ko" size="30"></td></tr>

<tr><td colspan="2">
<h3>Propozice turnaje:</h3>
</td></tr>
<tr><td  colspan="2">
<b>Úroveň turnaje:</b><br>
<input type=radio name="uroven" value="hlavni"> hlavní turnaj - velký vážný turnaj  <br>
<input type=radio name="uroven" value="bezny"  checked> běžný otevřený turnaj <br>
<input type=radio name="uroven" value="zacatecnicky"> začátečnický <br>
</td></tr>
<tr><td colspan="2">
<b>Kdo se může zúčastnit:</b><br>
<input type=radio name="ucast" value="kazdy" checked> každý  <br>
<input type=radio name="ucast" value="juniori"> pouze junioři <br>
<input type=radio name="ucast" value="kvalifikovani"> pouze kvalifikovaní <br>
</td></tr>
<tr><td>
<input type=radio name="ucast" value="jine"> jiné, upřesněte: <br>
</td>
<td><input type=text name="ucastjine" size="30"></td></tr>

<tr><td  colspan="2">
<b>$hraci_system</b><br>
<select name="system">
$vyber_hraciho_systemu
</select>
<input type=text name="systemjiny" size="30">
</td></tr>

<tr><td  colspan="2">
<b>$kriteria</b><br>
</td></tr>


<tr><td  colspan="2">
<b>$kriterium 1</b><br>
<select name="kriterium1">
$vyber_kriterii
</select>
<input type=text name="kriterium1jine" size="30">
</td></tr>

<tr><td  colspan="2">
<b>$kriterium 2</b><br>
<select name="kriterium2">
$vyber_kriterii
</select>
<input type=text name="kriterium2jine" size="30">
</td></tr>

<tr><td  colspan="2">
<b>$kriterium 3</b><br>
<select name="kriterium3">
$vyber_kriterii
</select>
<input type=text name="kriterium3jine" size="30">
</td></tr>

<tr><td  colspan="2">
<b>$kriterium 4</b><br>
<select name="kriterium4">
$vyber_kriterii
</select>
<input type=text name="kriterium4jine" size="30">
</td></tr>

<tr><td  colspan="2">
<b>$kriterium 5</b><br>
<select name="kriterium5">
$vyber_kriterii
</select>
<input type=text name="kriterium5jine" size="30">
</td></tr>

<tr><td colspan="2">
<b>Počet kol:</b> <input type=text name="pocetkol" size="30">
</td></tr>

<tr><td colspan="2">
<b>Tempo:</b> <input type=text name="tempo" size="30">
</td></tr>

<tr><td colspan="2">
<b>Potřebujeme:</b> <input type=text name="potrebujeme" size="60">
</td></tr>

<tr><td colspan="2">
<b>Poznámka:</b> <input type=text name="poznamka" size="60">
</td></tr>

</table>

</p>
$prohlaseni
EOF
    ;
    $stranka .= "<table border=\"0\">\n";

    $stranka .= "</table>\n";
    my $odeslat = jazyky::zjistit("odeslat");
    my $vymazat = jazyky::zjistit("vymazat");
    $stranka .= <<EOF
<input type=hidden name="jazyk" value="$jazyky::jazyk">
<input type=hidden name="co" value="zpracuj">
<p><input type=submit value="$odeslat">
<input type=reset value="$vymazat"></p>
</form>

EOF
    ;
    return $stranka;
}



#------------------------------------------------------------------------------
# Vypíše potvrzovací stránku uživateli, který odeslal registraci turnaje.
#------------------------------------------------------------------------------
sub potvrdit_registraci
{
    my $konfig = shift; 
    my $stranka;
    $stranka .= "<p>Potvrzujeme odeslání vaší registrace turnaje <b>$konfig->{nazev} </b>\n";
    $stranka .= "<p>".jazyky::zjistit("jmeno").": <b>$konfig->{jmeno} $konfig->{prijmeni}</b>\n";
    $stranka .= "<p>E-mail: <b>$konfig->{email} </b>\n";
    $stranka .= "<p>Potvrzení se všemi vámi vyplněnými údaji vám přijde na výše uvedený e-mail. Pokud se tak nestane, dejte nám vědět. Jedna z možných příčin může být špatně zadaná e-mailová adresa.";
    return $stranka;
}



1;
