#!/usr/bin/perl
# CGI přístup k databázi her. Generuje jak seznamy, tak stránky o konkrétních hrách.
# (c) prosinec 2002 Daniel Zeman
# 30.12.2003: přechod na UTF-8
# Rict Perlu, ze tento zdrojak je v UTF-8.
use utf8;
use Encode;
require("../access.pm");
# Přinutit Perl, aby UTF8 vypisoval jako UTF8 a nevymýšlel pro mě "vhodné" osmibitové kódování.
binmode(STDOUT, ":utf8");
# Kvůli sestavení parametrů; čtení parametrů zatím probíhá nějak pravěce.
#use dancgi;
require("./dancgi.pm");



# Přečíst parametry.
dancgi::cist_parametry(\%pole);
dancgi::cist_formular_post(\%pole) if($pole{formular});
# Robotům odmítnout přístup, jestliže si chtějí něco strčit do košíku.
use norobot;
if(!norobot::proverit() && exists($pole{kosik}))
{
    norobot::ohlasit_chybu();
    exit(0);
}



zacatek();



if($pole{hra} eq "")
{
    prostredek_obecny();
}
elsif($pole{hra} eq "obecne")
{
    prostredek_obecny();
}
elsif($pole{hra} eq "slevy")
{
    prostredek_slevy();
}
elsif($pole{hra} eq "cenik")
{
    prostredek_cenik();
}
elsif($pole{hra} eq "objednavka")
{
    prostredek_objednavka();
}
else
{
    prostredek_hra($pole{hra});
}



if($pole{kosik} eq "")
{
    kraj_obecny();
}
else
{
    kraj_kosik();
}

# Vypsat závěr stránky.
print <<EOF
                </td>
                </tr>
            </table>
        </td>
     </tr>
</table>
</body>
</html>
EOF
;



###############################################################################
# Podprogramy
###############################################################################



#------------------------------------------------------------------------------
# Provede počáteční úkony, nezávislé na tom, jaký pohled uživatel zvolil.
# Načte parametry a vypíše začátek HTML stránky.
#------------------------------------------------------------------------------
sub zacatek
{
    # Zjistit cestu pro odkazování na statické stránky hrejsi.
    open(KONFIG, "../cgi.cfg");
    while(<KONFIG>)
    {
        if(m/(\S+)\s*=\s*([^\r\n]*)/)
        {
            $konfig{$1} = $2;
        }
    }
    close(KONFIG);
    $koren_hrejsi = $konfig{ccesta_html_www};
    $koren_system = $konfig{scesta_html_www};
    # Pro ladící účely si nachystat výpis parametrů na výstup.
    $ladeni = 0;
    if($ladeni)
    {
        foreach($key, sort(keys(%pole)))
        {
            $dbg_parametry .= "$key = $pole{$key}\n";
        }
        $dbg_parametry = "<pre>$dbg_parametry</pre>\n";
    }
    # V režimu "objednavka" se o obsahu košíku smí dozvědět jen zasvěcení.
    # Ale např. ti, co konstruují odkazy na stránky s hrami, si musí myslet,
    # že košík je momentálně prázdný!
    if($pole{hra} eq "objednavka")
    {
        $objednany_kosik = $pole{kosik}; # globální proměnná
        delete($pole{kosik});
    }
    # Načíst procedury na čtení tabulky her.
    do "cist.pl";
    # Načíst tabulku her.
    precist_hry("hry.txt");
    zjistit_pocet_exemplaru("exemplare.txt");
    zjistit_pocet_na_prodej("prodej.txt");
    # Poslat MIME záhlaví dokumentu.
    print("Content-Type: text/html; charset=utf-8\n\n");
    # Nachystat si proměnné části začátku stránky.
    # Poslat začátek stránky.
print <<EOF
<html>
  <head>
    <meta http-equiv="Content-Language" content="cs">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Deskové hry</title>
    <meta name="description" content="Portál o deskových hrách. Pravidla, recenze, akce, pozvánky, turnaje, informace o deskových hrách.">
    <meta name="keywords" content="prodej, deskove hry, hry, deskové hry, Klub deskových her Paluba, Klub Paluba, pravidla, turnaje, games, board games, akce, pozvánky, recenze, Othello, Abalone, Vrhcáby, Scrabble, Zatre.">
  </head>
  <body >
  <table border="0" width="100%">
    <tr>
      <td align="left" valign="top" width="15%">
        <h3 align="center">Seznam her na prodej:</h3>
EOF
;
    print("        <p>\n");
    for($i = 0; $i<=$#kody; $i++)
    {
        vypsat_odkaz_na_hru_do_seznamu($kody[$i]);
    }
    print("        </p>\n");
    print("      </td>\n");
    my $parametry = dancgi::sestavit_parametry_odkaz(\%pole, "hra=obecne");
    print <<EOF
      <td align="center" valign="top">
        <table border="0" width="100%">
          <tr>
            <td align="center" valign="top">
              <h1>Obchod s hrami</h1>
                <p>Všechny hry můžete koupit jak
                  <a HREF="$koren_hrejsi/paluba/index.htm">v&nbsp;Klubu Paluba</a>,
                  tak také přímo <a HREF="prodej.pl?$parametry">zde na dobírku.</a> 
                  Pak připočítáváme poštovné 79&nbsp;Kč.</p>
EOF
;

    print("<p>\n");
    print("<a HREF=\"prodej.pl?$parametry\">Dodací podmínky</a>|\n");
    $parametry = dancgi::sestavit_parametry_odkaz(\%pole, "hra=slevy");
    print("<a HREF=\"prodej.pl?$parametry\">SLEVY</a>|\n");
    $parametry = dancgi::sestavit_parametry_odkaz(\%pole, "hra=cenik");
    print("<a HREF=\"prodej.pl?$parametry\">Ceník (řazen dle cen)</a>\n");

    print("</p>\n");

print <<EOF


        </td>
        <td align="center" valign="top">
          <h3>Klub deskových her Paluba</h3>
          <img src="$koren_hrejsi/obr/logo.gif" height=50 align="center">
          <p><a href="program.pl">Program Paluby</a>, <a href="$koren_hrejsi/paluba/index.htm">Stránka Paluby</a>
          <br>(klepnutím na tyto odkazy ztratíte obsah košíku)</p>
        </td>
      </tr>
EOF
;
}



#------------------------------------------------------------------------------
# Vypíše obecný prostředek, když není vybrána konkrétní hra.
#------------------------------------------------------------------------------
sub prostredek_obecny
{
    print <<EOF
      <tr valign="top">
        <td align="center" valign="top" WIDTH="70%">
          
          <p>Všechny vlevo uvedené hry i mnohé dalších si můžete zakoupit
             v&nbsp;<a HREF="$koren_hrejsi/paluba/index.htm">Klubu deskových her Paluba</a>
             (Praha, Lidická&nbsp;40 u&nbsp;Anděla, po,&nbsp;st 16 - 22 hod., út,&nbsp;čt 17 - 21 hod.).
             Všechny hry, které jsou na prodej, si v&nbsp;klubu můžete vyzkoušet, takže nebudete
             kupovat zajíce v&nbsp;pytli. Odborná rada také nebude chybět!</p>
          <p>Také můžeme tyto hry  <b>zaslat na dobírku.</b> <br>Pak k&nbsp;ceně připočteme <b>poštovné 79&nbsp;Kč.</b>
          <ul><p>Při objednávce: 
              <li>nad 2&nbsp;000&nbsp;Kč je <b>poštovné ZDARMA.</b></li>
              <li>nad 5&nbsp;000 Kč <b>sleva 3%</b></li>
          </ul>
          </p>
          <p><b>Při předplatbě na účet platíte poštovné jen 49&nbsp;Kč. Chcete-li využít předplatbu, napište to do poznámky při objednávce.</b>
          <p><b>Organizace pracující s dětmi a mládeží také obdrží slevu. </b>
            <br>Pokud jste taková organizace, <b>nezapomeňte to uvést při objednávce!</b></p>
          <p>Dobírku lze zaslat i na Slovensko, ale pouze do 2&nbsp;kg a poštovné je
             bohužel mnohem dražší (kolem 250&nbsp;Kč, dle sazebníku české pošty).</p>
          <p>Chcete-li zaslat hry na dobírku, stačí si je objednat zde případně mailem:
             <a HREF="mailto:paluba\@hrejsi.cz">paluba\@hrejsi.cz</a>
             nebo telefonicky na 777552729 (Klára&nbsp;Zemanová).</p>
          <p>Objednávky vyřizujeme zhruba <b>do 14&nbsp;dnů,</b> je-li hra skladem.
             <br>Je-li u hry uvedeno, že jde o hru <b>na objdnávku,</b> mohou být <b>dodací lhůty delší.</b></p>
          <p>U některých her je také možné 
          <br><font color=red><b>EXPRESNÍ DODÁNÍ</b>, které obdržíte do 48 hodin.</font> 
          <br>Je třeba si nejlépe telefonicky či mailem ověřit, zda je to u dané hry zrovna možné.
          <br>U expresnich dodávek připočítáváme <b>expresní příplatek 50 Kč,</b> 
             tedy celé poštovné a balné vyjde na 129 Kč</p>
        </td>
EOF
    ;
}


#------------------------------------------------------------------------------
# Vypíše prostředek slevy, když není vybrána konkrétní hra.
#------------------------------------------------------------------------------
sub prostredek_slevy
{
    print <<EOF
      <tr valign="top">
        <td valign="top" WIDTH="70%">
          <h1 align=center>Slevy</h1>
          <h3>Při objednávce 
          <ul><li>nad 2&nbsp;000&nbsp;Kč je <b>poštovné zdarma.</b></li>
              <li>nad 5&nbsp;000 Kč <b>sleva 3%.</b></li>
          </ul>
          </h3>
          <p><b>Při předplatbě na účet platíte poštovné jen 49&nbsp;Kč. </b>
          <p><b>Organizace pracující s dětmi a mládeží také obdrží slevu. </b>
          Pokud jste taková organizace, <b>nezapomeňte to uvést při objednávce!</b></p>
          <p>U některých her je také možné <font color=red><b>EXPRESNÍ DODÁNÍ</b>, které obdržíte do 48 hodin.</font> 
             Je třeba si nejlépe telefonicky či mailem ověřit, zda je to u dané hry zrovna možné. U expresnich dodávek připočítáváme <b>expresní příplatek 50 Kč,</b> 
             tedy celé poštovné a balné vyjde na 129 Kč</p>
          <p>Máte-li jakékoliv dotazy, obraťte se na nás:   
             <a HREF="mailto:paluba\@hrejsi.cz">paluba\@hrejsi.cz</a>
             nebo telefonicky na 777552729 (Klára&nbsp;Zemanová).
          </p>
        </td>
EOF
    ;
}

#------------------------------------------------------------------------------
# Vypíše obecný kraj, když není vybrána konkrétní hra.
#------------------------------------------------------------------------------
sub kraj_obecny
{
    my $parametry = dancgi::sestavit_parametry_odkaz(\%pole, "hra=obecne");
    print <<EOF
      <td align="center" valign="top">
          <h1 align=center>Hry na prodej</h1>
          <p>Všechny vlevo uvedené hry i mnohé dalších si můžete zakoupit
             v&nbsp;<a HREF="$koren_hrejsi/paluba/index.htm">Klubu deskových her Paluba</a>
             (Praha, Lidická&nbsp;40 u&nbsp;Anděla, po,&nbsp;st 16 - 22 hod., út,&nbsp;čt 17 - 21 hod.).
             Všechny hry, které jsou na prodej, si v&nbsp;klubu můžete vyzkoušet, takže nebudete
             kupovat zajíce v&nbsp;pytli. Odborná rada také nebude chybět!</p>
          <p>Také můžeme tyto hry  <b>zaslat na dobírku.</b> Pak k&nbsp;ceně připočteme poštovné 79&nbsp;Kč.
             Od 2000&nbsp;Kč můžete využít naše 
             
EOF
;
    $parametry = dancgi::sestavit_parametry_odkaz(\%pole, "hra=slevy");
    print("<a HREF=\"prodej.pl?$parametry\">SLEVY</a>\n");
    print("</p>\n");

print <<EOF
          <p><b>Organizace pracující s dětmi a mládeží obdrží slevu nezávisle na výši odběru! </b>
          Pokud jste taková organizace, <b>nezapomeňte to uvést při objednávce!</b></p>
          <p>Při předplatbě na účet platíte <b>poštovné jen 49&nbsp;Kč. </b>
          <p>Dobírku lze zaslat i na Slovensko, ale pouze do 2&nbsp;kg a poštovné je
             bohužel mnohem dražší (kolem 250&nbsp;Kč, dle sazebníku české pošty).</p>
          <p>U některých her je také možné 
          <br><font color=red><b>EXPRESNÍ DODÁNÍ</b>, které obdržíte do 48 hodin.</font> 
          <br>Je třeba si nejlépe telefonicky či mailem ověřit, zda je to u dané hry zrovna možné. U expresnich dodávek připočítáváme <b>expresní příplatek 50 Kč,</b> 
             tedy celé poštovné a balné vyjde na 129 Kč</p>
          <p>Objednávky vyřizujeme zhruba <b>do 14&nbsp;dnů,</b> je-li hra skladem.
          <br>Je-li u hry uvedeno, že jde o hru <b>na objdnávku,</b> mohou být <b>dodací lhůty delší.</b></p>
          <p>Máte-li jakékoliv dotazy, obraťte se na nás:   
             <a HREF="mailto:paluba\@hrejsi.cz">paluba\@hrejsi.cz</a>
             nebo telefonicky na 777552729.
          </p>
        </td>
EOF
    ;
}



#------------------------------------------------------------------------------
# Vypíše prostředek, když je vybrán ceník.
#------------------------------------------------------------------------------
sub prostredek_cenik
{
    $zbozi = access::cist_tabulku_access("zbozi.txt", "utf-8");
    print <<EOF
    <tr>
    <td align="center" valign="top" WIDTH="70%">
      <h1>Ceník her</h1>
      <p>Hry jsou řazeny dle cen od nejlevnějších po nejdražší.
         Všechny hry jsou zároveň odkazy na informace o dané hře se všemi variantami na prodej.
      </p>
      <table align="center" border="1">
        <tr>
          <td align="center"><b>Název zboží</b></td>
          <td align="center"><b>Cena</b></td>
        </tr>
EOF
    ;
    @cenik=sort{$a->{"internetova cena"} <=> $b->{"internetova cena"}}(@{$zbozi});
    for(my $i=0; $i<=$#cenik; $i++)
    {
        if (not $cenik[$i]{"nelze koupit"})
        {
            print(" <tr><td align=left><a HREF=\"prodej.pl?hra=".$cenik[$i]{"kod hry"}."\">");
            print($cenik[$i]{"nazev"}."</a></td>\n");
            print("<td align=right>".$cenik[$i]{"internetova cena"}." Kč</td></tr>\n");
        }
    }
    print <<EOF
      </table>
    </td>
EOF
    ;
}



#------------------------------------------------------------------------------
# Vypíše prostředek, když je vybrána konkrétní hra.
#------------------------------------------------------------------------------
sub prostredek_hra
{
    my $hra = shift;
    $zbozi = access::cist_tabulku_access("zbozi.txt", "utf-8");
    generovat_stranku_hry($hra);
}



#------------------------------------------------------------------------------
# Vypíše kraj, když je něco v košíku.
#------------------------------------------------------------------------------


sub kraj_kosik
{
    print("<td align=center valign=top >\n");
    print("<h2>Obsah vašeho košíku</h2>\n");
    # Načíst informace o zboží.
    $zbozi = access::cist_tabulku_access("zbozi.txt", "utf-8");
    # Oindexovat zboží.
    my %zindex;
    foreach my $z (@{$zbozi})
    {
        $zindex{$z->{kod}} = $z;
    }
    # Dekódovat košík.
    my @kosik = split(/a/, $pole{kosik});
    if($#kosik<0)
    {
        print("<p>Váš nákupní košík je zatím prázdný. Chcete-li si do něj něco vložit, zvolte si hru v&nbsp;levém sloupci.</p>\n");
    }
    else
    {
        my $celkem = 0;
        foreach my $radek (@kosik)
        {
            my ($pocet, $vec) = split(/x/, $radek);
            $koshash{$vec} = $pocet;
            my $cena = $zindex{$vec}{"internetova cena"};
            my $rcelkem = $pocet*$cena;
            $celkem += $rcelkem;
            print("<p><b>$pocet x $zindex{$vec}{nazev}</b> (po $cena&nbsp;Kč) = <b> $rcelkem&nbsp;Kč </b>\n");
            # Umožnit uživateli změnit v objednávce počet kusů každého zboží.
            $radek = ($pocet+1)."x$vec";
            my $novy_kosik = join("a", @kosik);
            my $parametry = dancgi::sestavit_parametry_odkaz(\%pole, "kosik=$novy_kosik");
            print("<br><a href=\"prodej.pl?$parametry\">[o 1 víc]</a>\n");
            $radek = $pocet>1 ? ($pocet-1)."x$vec" : "";
            my $novy_kosik = join("a", @kosik);
            # Odebráním prvku mohla vzniknout prázdná položka v košíku, opravit.
            $novy_kosik =~ s/aa/a/;
            $novy_kosik =~ s/^a//;
            $novy_kosik =~ s/a$//;
            my $parametry = dancgi::sestavit_parametry_odkaz(\%pole, "kosik=$novy_kosik");
            print("<a href=\"prodej.pl?$parametry\">[o 1 míň]</a>\n");
            $radek = $pocet."x$vec"; # Pro pořádek uvést do původního stavu.
            print("<br>\n");
        }
        print("<p><b>Celkem $celkem&nbsp;Kč</b>.<br>\n");
        
        if ($celkem >= 2000)
        {
            print("<p><font color=red>Poštovné ZDARMA.</font><br>\n");
        }
        else
        {
            print("<p>Poštovné a balné <b>79&nbsp;Kč.<b> <br> <p>Poštovné a balné při npředplatbě <b>49&nbsp;Kč.<b> <br>Při nákupu nad 2000&nbsp;Kč poštovné ZDARMA.<br>\n");
            $celkem += 79 ;
        }
        
        if ($celkem >= 5000)
        {
            print("<p><font color=red>Sleva 3%</font><br>\n");
            my $sleva = int($celkem * 0.03);
            print("<font color=red>- $sleva Kč</font><br>\n");        
            $celkem -= $sleva
        }
        

        print("<p><font color=red><b>Dobírka celkem $celkem&nbsp;Kč </b>.</font><br></b></b>\n");
        print("<h3>Chcete-li do košíku něco přidat, zvolte si hru v&nbsp;levém sloupci. Pokud jste již s obsahem košíčku spokojeni, vyplňte prosím následující údaje:</h3>\n");
        
        # Vytisknout objednávkový formulář.
        my $parametry = dancgi::sestavit_parametry_odkaz(\%pole, "hra=objednat");
        
        
        
        print("<form method=get action=\"prodej.pl?$parametry\">\n");
        print("<p align=left> <b>Zboží:</b><br>\n");
        my %checked;
        $pole{prevzeti} = "dobirka" if(!exists($pole{prevzeti}));
        $checked{$pole{prevzeti}} = "checked";
        print("<input type=radio name=prevzeti value=\"dobirka\" $checked{dobirka}> chci zaslat na dobírku <br>\n");
        print("<input type=radio name=prevzeti value=\"paluba\" $checked{paluba}> si vyzvednu osobně na Palubě u Anděla<br>\n");
        print("<input type=radio name=prevzeti value=\"cm\" $checked{cm}> si vyzvednu osobně ve skladu na Černém Mostě</p>\n");
        print("<p align=left> <b>Zaplatím:</b><br>\n");
        $pole{platba} = "hotove" if(!exists($pole{platba}));
        $checked{$pole{platba}} = "checked";
        print("<input type=radio name=platba value=\"hotove\"  $checked{hotove}> hotově (dobírkou či osobně při převzetí) <br>\n");
        print("<input type=radio name=platba value=\"prevodem\" $checked{prevodem}> předplatbou (bezhotovostním převodem)</p>\n");
        print("<h3 align=left>Vyplňte kontaktní údaje:</h3>\n");
#        print("<p><font color=red>Upozornění: Z&nbsp;důvodu dovolených bude objednávka, kterou teď odešlete, zpracována až v&nbsp;týdnu od 22.8.2005.</font></p>\n");
        print("<p align=left>Jméno: <input name=jmeno type=text value=\"$pole{jmeno}\" size=\"20\"><br>\n");
        print("Příjmení: <input name=prijmeni type=text value=\"$pole{prijmeni}\" size=\"20\"><br>\n");
        print("E-mail: <input name=email type=text value=\"$pole{email}\" size=\"20\"><br>\n");
        print("(E-mailem vám zašleme jak potvrzení objednávky, tak upřesnění dodání.)<br>\n");
        print("Tel: <input name=tel type=text value=\"$pole{tel}\" size=\"20\"><br>\n");
        print("Poznámka: <input name=poznamka type=text value=\"$pole{poznamka}\" size=\"50\">\n");
 
        print("<h3 align=left>Vyplňte adresu při zaslání na dobírku:</h3>\n");
        print("<p align=left>Ulice a dům: <input name=ulice type=text value=\"$pole{ulice}\" size=\"20\"><br>\n");
        print("Obec: <input name=obec type=text value=\"$pole{obec}\" size=\"20\"><br>\n");
        print("PSČ: <input name=psc type=text value=\"$pole{psc}\" size=\"20\"><br>\n");

        print("<h3 align=left>Chcete-li jiné fakturační údaje než zasílací, použijte poznámku:</h3>\n");
        print("<p align=left>Poznámka 2: <input name=poznamka2 type=text value=\"$pole{poznamka2}\" size=\"50\">\n");

        print("<p align=left><input type=radio name=organizace value=\"ano\">jsme organizace pracující z mládeží a žádáme o slevu. Naše IČO je: <input name=ico type=text value=\"$pole{ico}\" size=\"10\">\n");

        print("<p>Tímto způsobem lze objednat zboží k&nbsp;dodání na území Česka. Máte-li zájem o dodání do jiných zemí, kontaktujte nás na e-mailu <a href=\"mailto:paluba\@hrejsi.cz\">paluba\@hrejsi.cz</a>.<br>\n");
        print("<input type=hidden name=hra value=objednavka>\n");
        print("<input type=hidden name=kosik value=\"$pole{kosik}\">\n");
        print("<input type=submit value=\"Odeslat objednávku\"><br>\n");
        print("</form>\n");
    }
    # Ukončit prostřední buňku.
    print("</td>\n");
}




#------------------------------------------------------------------------------
# Vypíše prostředek, když došlo k objednávce.
#------------------------------------------------------------------------------
sub prostredek_objednavka
{
    print("<td align=center valign=top width=\"70%\">\n");
    print("<h1>Závazná objednávka</h1>\n");
    # Načíst informace o zboží.
    $zbozi = access::cist_tabulku_access("zbozi.txt", "utf-8");
    # Oindexovat zboží.
    my %zindex;
    foreach my $z (@{$zbozi})
    {
        $zindex{$z->{kod}} = $z;
    }
    # Dekódovat košík.
    my @kosik = split(/a/, $objednany_kosik);
    if($#kosik<0)
    {
        print("<p>Váš nákupní košík je zatím prázdný. Chcete-li si do něj něco vložit, zvolte si hru v&nbsp;levém sloupci.</p>\n");
    }
    else
    {
        my $mail;
        print("<p>Děkujeme, že jste si objednali níže uvedené zboží. Objednávku vám do dvou pracovních dnů potvrdíme e-mailem. Současně vám sdělíme, kdy můžete zásilku očekávat.</p>\n");
#        print("<p>Děkujeme, že jste si objednali níže uvedené zboží.<br><font color=red>Upozornění: Z&nbsp;důvodu dovolených bude vaše objednávka zpracována až v&nbsp;týdnu od 22.8.2005.</font><br>Poté se vám ozveme a sdělíme, kdy můžete zásilku očekávat.</p>\n");
        my $celkem = 0;
        foreach my $radek (@kosik)
        {
            my ($pocet, $vec) = split(/x/, $radek);
            $koshash{$vec} = $pocet;
            my $cena = $zindex{$vec}{"internetova cena"};
            my $rcelkem = $pocet*$cena;
            $celkem += $rcelkem;
            print("<b>$pocet x $zindex{$vec}{nazev}, </b> tj. $pocet x $cena&nbsp;Kč = <b> $rcelkem&nbsp;Kč </b>\n");
            $mail .= "$zindex{$vec}{nazev}: $pocet ks x $cena = $rcelkem Kč\n";
            # Umožnit uživateli změnit v objednávce počet kusů každého zboží.
            $radek = ($pocet+1)."x$vec";
            my $novy_kosik = join("a", @kosik);
            my $parametry = dancgi::sestavit_parametry_odkaz(\%pole, "kosik=$novy_kosik");
            $radek = $pocet>1 ? ($pocet-1)."x$vec" : "";
            my $novy_kosik = join("a", @kosik);
            # Odebráním prvku mohla vzniknout prázdná položka v košíku, opravit.
            $novy_kosik =~ s/aa/a/;
            $novy_kosik =~ s/^a//;
            $novy_kosik =~ s/a$//;
            my $parametry = dancgi::sestavit_parametry_odkaz(\%pole, "kosik=$novy_kosik");
            $radek = $pocet."x$vec"; # Pro pořádek uvést do původního stavu.
            print("<br>\n");
        }
        
        if ($celkem >= 2000 and $pole{prevzeti} eq "dobirka")
        {
        print("<p><font color=red>Poštovné ZDARMA.</font><br>\n");
        }
        else
        {
        if ($pole{prevzeti} eq "dobirka")
        {
            if ($pole{platba} eq "prevodem")
            {    
                print("<p>Poštovné a balné <b>49&nbsp;Kč.</b> <br>\n");
                $celkem += 49 ;
            }
            else
            {
                print("<p>Poštovné a balné <b>79&nbsp;Kč.</b> <br>\n");
                $celkem += 79 ;

            }
        }
        }
        
        if ($celkem >= 5000)
        {
        print("<p><font color=red>Sleva 3%</font><br>\n");
        my $sleva = int($celkem * 0.03);
        print("<font color=red>- $sleva Kč</font><br>\n");        
        $mail .= "Sleva: $sleva \n";
        $celkem -= $sleva
        }
        
        
        print("Celkem <b>$celkem&nbsp;Kč</b>.<br>\n");
        $mail .= "Celkem $celkem Kč.\n";

        # Zkontrolovat úplnost vyplněných údajů.
        if(
            $pole{jmeno} eq "" or
            $pole{prijmeni} eq "" or
            $pole{email} !~ m/(\w|[-\._])+\@(\w|[-\._])+\.(\w\w|com|org|edu|mil|gov|biz|info)$/i or
            $pole{prevzeti} eq "dobirka" and
            (
              $pole{ulice} eq "" or
              $pole{obec} eq "" or
              $pole{psc} eq ""
            )
        )
        {
            print("<h1><font color=red>vaše objednávka NEBYLA ODESLÁNA!!! </h1></font></h1>\n");
            print("<h3><font color=red>Nezadali jste všechny údaje potřebné k zaslání. Je také možné, že jste zadali neplatnou e-mailovou adresu. Vyplňte prosím údaje znovu a pečlivě, abychom vám mohli dobírku zaslat. Děkujeme.</font></h1>\n");
            my $parametry = dancgi::sestavit_parametry_odkaz(\%pole, "hra=objednat");
            print("<form method=get action=\"prodej.pl?$parametry\">\n");
            print("<h2>Objednat výše uvedené zboží:</h2>\n");
#            print("<p><font color=red>Upozornění: Z&nbsp;důvodu dovolených bude objednávka, kterou teď odešlete, zpracována až v&nbsp;týdnu od 22.8.2005.</font></p>\n");
            print("Jméno: <input name=jmeno type=text value=\"$pole{jmeno}\" size=\"20\"><br>\n");
            print("Příjmení: <input name=prijmeni type=text value=\"$pole{prijmeni}\" size=\"20\"><br>\n");
            print("E-mail: <input name=email type=text value=\"$pole{email}\" size=\"20\"><br>\n");
            print("(E-mailem vám zašleme jak potvrzení objednávky, tak upřesnění dodání dobírky.)<br>\n");
            print("Tel: <input name=tel type=text value=\"$pole{tel}\" size=\"20\"><br>\n");
            print("Poznámka: <input name=poznamka type=text value=\"$pole{poznamka}\" size=\"50\"><br>\n");
            print("Poznámka 2: <input name=poznamka2 type=text value=\"$pole{poznamka2}\" size=\"50\"><br>\n");
            my %checked;
            $pole{prevzeti} = "dobirka" if(!exists($pole{prevzeti}));
            $checked{$pole{prevzeti}} = "checked";
            print("<input type=radio name=prevzeti value=\"dobirka\" $checked{dobirka}> chci zaslat na dobírku <br>\n");
            print("<input type=radio name=prevzeti value=\"paluba\" $checked{paluba}> si vyzvednu osobně na Palubě u Anděla<br>\n");
            print("<input type=radio name=prevzeti value=\"cm\" $checked{cm}> si vyzvednu osobně ve skladu na Černém Mostě</p>\n");
            print("<p align=left> <b>Zaplatím:</b><br>\n");
            $pole{platba} = "hotove" if(!exists($pole{platba}));
            $checked{$pole{platba}} = "checked";
            print("<input type=radio name=platba value=\"hotove\"  $checked{hotove}> hotově (dobírkou či osobně při převzetí) <br>\n");
            print("<input type=radio name=platba value=\"prevodem\" $checked{prevodem}> předplatbou (bezhotovostním převodem)</p>\n");

            if ($pole{prevzeti} eq "dobirka")
            {   print("<p>Zboží chci zaslat dobírkou na adresu:<br>\n");
                print("Ulice a dům: <input name=ulice type=text value=\"$pole{ulice}\" size=\"20\"><br>\n");
                print("Obec: <input name=obec type=text value=\"$pole{obec}\" size=\"20\"><br>\n");
                print("PSČ: <input name=psc type=text value=\"$pole{psc}\" size=\"20\"><br>\n");
            }
            else
            {   if ($pole{prevzeti} eq "paluba")
                {   print("<p>Zboží si vyzvednu osobně na Černém Mostě.<br>\n");
 
                }
                else
                {   print("<p>Zboží si vyzvednu osobně na Palubě.<br>\n");
 
                }
           }
            if ($pole{platba} eq "prevodem")
            {   print("<p>Zaplatím předem převodem na účet.<br>\n");
            }
            else
            {   if ($pole{prevzeti} eq "dobirka")
                {   print("<p>Zaplatím dobírkou.<br>\n");
                }
                else
                {   print("<p>Zaplatím hotově při převzetí.<br>\n");
                }
             }
 
            if ($pole{organizace} eq "ano")
            {   
                print("<p>Organizace pracující s mládeží. IČO: <input name=ico type=text value=\"$pole{ico}\" size=\"20\"><br>\n");
                print("Dáme Vám klubové ceny. Jsou o cca 5% nižší než internetové.</p>\n");
            }
            
            print("<p>Tímto způsobem lze objednat zboží k&nbsp;dodání na území Česka. Máte-li zájem o dodání do jiných zemí, kontaktujte nás na e-mailu <a href=\"mailto:paluba\@hrejsi.cz\">paluba\@hrejsi.cz</a>.<br>\n");
            print("<input type=hidden name=hra value=objednavka>\n");
            my $kosik = join("a", @kosik);
            print("<input type=hidden name=kosik value=\"$kosik\">\n");
            print("<p><input type=submit value=\"Odeslat objednávku\"><br>\n");
            print("</form>\n");
        }
        else
        {
            # Vypsat dodací adresu.
            
            if ($pole{prevzeti} eq "dobirka")
                {   print("<p>Zboží bude zasláno dobírkou České pošty na následující adresu:</p>\n");
                    $mail .= "Zaslání na dobírku na adresu:\n";
                    print("Jméno: <b>$pole{jmeno}</b><br>\n");
                    $mail .= "Jméno: $pole{jmeno} $pole{prijmeni}\n";
                    print("Příjmení: <b> $pole{prijmeni}</b><br>\n");
                    print("Ulice a dům: <b> $pole{ulice}</b><br>\n");
                    $mail .= "Ulice a dům: $pole{ulice}\n";
                    print("Obec: <b>$pole{psc} $pole{obec}</b><br>\n");
                    $mail .= "Obec: $pole{psc} $pole{obec}\n";
                }
                else
                {
                    if($pole{prevzeti} eq "cm")
                    {
                        print("<p>Až bude zboží pro Vás připravené na Černém Mostě, dáme Vám vědět, včetně podrobností kdy (otvírací hodiny) a kde (přesná adresa).<br>\n");
                        $mail .= "Osobní odběr: Černý Most ($pole{prevzeti}) \n";
                    }
                    else
                    {
                        print("<p>Až bude zboží pro Vás připravené na Palubě (www.paluba.cz), dáme Vám vědět, včetně podrobností kdy (otvírací hodiny) a kde (přesná adresa).<br>\n");
                        $mail .= "Osobní odběr: Paluba ($pole{prevzeti}) \n";
                    }
                    print("Jméno: <b>$pole{jmeno}</b><br>\n");
                    $mail .= "Jméno: $pole{jmeno} $pole{prijmeni}\n";
                    print("Příjmení: <b> $pole{prijmeni}</b><br>\n");
                    $mail .= "Ulice a dům: $pole{ulice}\n";
                    $mail .= "Obec: $pole{psc} $pole{obec}\n";
                }
            
            
            print("<p>Objednávka bude potvrzena e-mailem na následující adresu:<br>\n");
            print("E-mail: <b>$pole{email}</b><br>\n");
            $mail .= "E-mail: $pole{email}\n";
            print("<p>Telefon: <b>$pole{tel}</b><br>\n");
            $mail .= "Telefon: $pole{tel}\n";
            print("<p>Poznámka: <b>$pole{poznamka} </b><br>\n");
            $mail .= "Poznámka: $pole{poznamka} \n";
            print("Poznámka 2: <b>$pole{poznamka2} </b><br>\n");
            $mail .= "Poznámka 2: $pole{poznamka2} \n";

            my $platba = $pole{platba};
            $platba =~ s/prevodem/převodem/;
            $platba =~ s/hotove/hotově/;
            print("<p>Platba: $platba<br>\n");
            $mail .= "Platba: $platba\n";

            if($pole{organizace} eq "ano")
            {
                print("Dáme Vám slevu pro organizace pracující s mládeží. Vaše IČO: $pole{ico}<br>\n");
                $mail .= "Organizace pracující s mládeží: $pole{ico} \n";
            }
            

            if($pole{jmeno} eq "test")
            {
                $adresat = "klara\@hrejsi.cz";
                $kopie = "zeman\@ufal.mff.cuni.cz";
            }
            else
            {
                $adresat = "klara\@hrejsi.cz";
                $kopie = $pole{email};
                $skopie = "zeman\@ufal.mff.cuni.cz";
            }
            if(-e "/usr/lib/sendmail")
            {
                $sendmail = "|/usr/lib/sendmail -oi -t";
            }
            else
            {
                $sendmail = ">>posledni-objednavka.txt";
            }
            open(SENDMAIL, $sendmail) or print "Nemůžu najít sendmail: $!\n";
            print SENDMAIL ("From: Robot Hrejsi <robot\@hrejsi.cz>\n");
            my $jmeno_subject = "$pole{jmeno} $pole{prijmeni}";
            $jmeno_subject =~ tr/ÁÄĂÂĄČĆÇĎĐÉĚËĘÍÎĽĹŁŇŃÓÖŐÔŘŔŠŚŞŤÚŮÜŰÝŽŹŻáäăâąčćçďđéěëęíîľĺłňńóöőôřŕšśşťúůüűýžźż/AAAAACCCDDEEEEIILLLNNOOOORRSSSTUUUUYZZZaaaaacccddeeeeiilllnnoooorrssstuuuuyzzz/;
            print SENDMAIL ("Reply-to: \"$jmeno_subject\" <$pole{email}>\n");
            print SENDMAIL ("To: $adresat\n");
            print SENDMAIL ("Cc: $kopie\n");
            print SENDMAIL ("Bcc: $skopie\n");
            print SENDMAIL ("Subject: Objednavka her: $jmeno_subject\n");
            print SENDMAIL ("Content-Type: text/plain; charset=\"utf-8\"\n");
            print SENDMAIL ("\n");
            print SENDMAIL ($mail);
        }
        
    }
    # Ukončit prostřední buňku.
    print("</td>\n");
}



#------------------------------------------------------------------------------
# Vypíše HTML odkaz na hru. Čte globální proměnné s cestami do kořene.
#------------------------------------------------------------------------------
sub vypsat_odkaz_na_hru_do_seznamu
{
    # Zjistit třípísmenný kód hry.
    my $hra = shift;
    # Vynechat hry, které nemáme na prodej.
    return if(!$hry{"$hra: prodej"});
    # Odkaz musí obsahovat i parametry, které jsme dostali my sami, zejména obsah košíku!
    my $parametry = dancgi::sestavit_parametry_odkaz(\%pole, "hra=$hra");
    # Začátek odkazu.
    # U všech her přednostně nabízet dynamickou stránku.
    print("          <a href=\"prodej.pl?$parametry\">".$hry{"$hra: nazev"}."</a>");
    # Závěr.
    print("<br>\n");
}



#------------------------------------------------------------------------------
# Zobrazí kořenovou stránku hry.
#------------------------------------------------------------------------------
sub generovat_stranku_hry
{
    my $hra = shift; # kód hry, jejíŐ stránka se má generovat
    #### print("<p>".$zbozi->[$i]{"bez ceskych pravidel"}."</p>\n");
    #### print("<p>".$hry->{"aba:pocet hracu"}."</p>\n");

    my $slozka = $hry{"$hra: slozka hrejsi"};
    my $text = $hry{"$hra: htmltext"};
    my $link = $hry{"$hra: htmllink"};
    my $vlink = $hry{"$hra: htmlvlink"};
    my $alink = $hry{"$hra: htmlalink"};
    my $nazev = $hry{"$hra: nazev"};
    my $dalsi_nazvy = $hry{"$hra: dalsi nazvy"};

    print("<td align=\"center\" valign=\"top\" WIDTH=\"70%\">\n");
    print("<table border=0 bgcolor=white><tr><td width=\"30%\" valign=\"bottom\">\n");

    #!!! Chtělo by to kontrolu, ŐĄ soubor s fotkou existuje!!!
    if($slozka ne "" && -f "$koren_system/$slozka/obr/fotka.jpg")
    {
        print("<img src=\"$koren_hrejsi/$slozka/obr/fotka.jpg\" width=150 alt=\"fotografie\"></td>\n");
    }

    print("<td width=\"40%\"><h1 align=center>$nazev</h1>\n");
    my $neboli;
    if($dalsi_nazvy)
    {
        $neboli = $dalsi_nazvy;
        $neboli = "<center>neboli $neboli</center>";
    }
    print("$neboli\n");

    print("<p>".$hry{"$hra: upoutavka"}."</p></td>\n");

    print("<td valign=\"bottom\"><p><b>Počet hráčů:</b> ".$hry{"$hra: pocet hracu"}.".\n");
    print("<br><b>Minimální věk: </b>".$hry{"$hra: min vek"}." let.\n");
    print("<br><b>Délka hry: </b>".$hry{"$hra: min delka"}." - ".$hry{"$hra: max delka"}." min.</p>\n");

    # Vypsat odkazy na stránky o této hře.
    # Zatím předpokládáme, že funkce generovat_stranku_hry() se volá jen jednou během jednoho běhu skriptu, jinak by bylo
    # efektivnější načíst tabulku odkazů dopředu!

    my $odkazy = access::cist_tabulku_access("odkazy.txt");
    print("<a href=\"hry.pl?hra=$hra\">Základní informace o hře</a><br>\n");
    for(my $i = 0; $i<=$#{$odkazy}; $i++)
    {
        if($odkazy->[$i]{hra} eq $hra)
        {
            my $odkaz;
            unless($odkazy->[$i]{adresa} =~ m/^(\/|http:)/)
            {
                $odkaz = "$koren_hrejsi/$slozka/";
            }
            $odkaz .= $odkazy->[$i]{adresa};
            print("<a href=\"$odkaz\">$odkazy->[$i]{text}</a><br>\n");
        }
    }
    print("</td></tr>\n");








    
    for (my $i=0;$i<=$#{$zbozi};$i++)
    {
        if ($zbozi->[$i]{"kod hry"} eq $hra and not $zbozi->[$i]{"nelze koupit"})
        {
            print("<tr><td valign=\"top\"><hr><p align=left><b>".$zbozi->[$i]{"nazev"}."</b><br>\n");
            print("<b>Cena zde: ".$zbozi->[$i]{"internetova cena"}." Kč</b><br>\n");
            print("Cena na Palubě: ".$zbozi->[$i]{"prodejni cena"}." Kč<br>\n");
            
            print("Běžná cena: ".$zbozi->[$i]{"bezna cena"}." Kč</td>\n");
            
            print("<td valign=\"top\"><hr><p><b>".$zbozi->[$i]{"poznamka"}."</b><br>\n");
            print($zbozi->[$i]{"popis zbozi"}."<br>\n");
            # Vytvořit odkaz na košík, v němž je o 1 ks tohoto zboží víc.
            my @kosik = split(/a/, $pole{kosik});
            my $nalezeno = 0;
            foreach my $polozka (@kosik)
            {
                my ($pocet, $vec) = split(/x/, $polozka);
                if($vec==$zbozi->[$i]{kod})
                {
                    $nalezeno = 1;
                    $polozka = ($pocet+1)."x$vec";
                    last;
                }
            }
            unless($nalezeno)
            {
                push(@kosik, "1x$zbozi->[$i]{kod}");
            }
            my $novy_kosik = join("a", @kosik);
            my $parametry = dancgi::sestavit_parametry_odkaz(\%pole, "kosik=$novy_kosik");
            print("<a href=\"prodej.pl?$parametry\">Přidat do košíku.</a></p></td>\n");

            #!!! Chtělo by to kontrolu, ŐĄ soubor s fotkou existuje!!!
            if($slozka ne "" && -f "$koren_system/$slozka/obr/zbo".$zbozi->[$i]{"kod hry"}.$zbozi->[$i]{"kod"}.".jpg")
            {
                print("<td valign=\"top\"><hr><img src=\"$koren_hrejsi/$slozka/obr/zbo".$zbozi->[$i]{"kod hry"}.$zbozi->[$i]{"kod"}.".jpg\" width=150 alt=\"fotografie\"></td></tr>\n");
            }
            if($slozka ne "" && -f "$koren_system/$slozka/obr/zbo".$zbozi->[$i]{"kod hry"}.$zbozi->[$i]{"kod"}.".gif")
            {
                print("<td valign=\"top\"><hr><img src=\"$koren_hrejsi/$slozka/obr/zbo".$zbozi->[$i]{"kod hry"}.$zbozi->[$i]{"kod"}.".gif\" width=150 alt=\"fotografie\"></td></tr>\n");
            }

        }
    }
    print("</table></td>\n");
}
