/**
 * Montras la aktualan staton de cxambro.
 *  $grandeco: - se ne donita aux "malgranda", montras nur 
 *             - se "granda", ...
 * verda se estas tauxga
 * rugxa se ne tauxgas (pro sekso)
 */
function montru_cxambron($cxambro, $renkontigxo, $partoprenanto, $partopreno, $grandeco = "malgranda")
{
    $cxam_sql = datumbazdemando(array("litonombro", "nomo", "tipo", "etagxo", "dulita", "rimarkoj"), "cxambroj", "ID = '{$cxambro}'");
    $cxam_rezulto = sql_faru($cxam_sql);
    $row = mysql_fetch_array($cxam_rezulto, MYSQL_BOTH);
    if (tauxgas($partopreno->datoj[cxambrotipo], $partoprenanto->datoj[sekso], $row[tipo])) {
        $koloro = "green";
    } else {
        if ($row[tipo] == '') {
            $koloro = "black";
        } else {
            $koloro = "red";
        }
    }
    if ($grandeco == "granda") {
        ligu("cxambroj.php?etagxo=" . $row[etagxo], "Etag^o " . $row[etagxo]);
        echo " |";
    }
    ligu("cxambroj.php?cxambronombro={$cxambro}", "C^ambro: {$row['nomo']}");
    echo "<font color={$koloro}><strong>";
    if ($row[tipo] == "v") {
        echo " (vira)";
    } else {
        if ($row[tipo] == "i") {
            echo " (ina)";
        } else {
            if ($row[tipo] == "g") {
                echo " (gea)";
            } else {
                echo " (nedifinita)";
            }
        }
    }
    echo "</strong></font>\n";
    rajtligu("kreu_cxambron.php?id={$cxambro}", $grandeco == 'granda' ? "redaktu bazajn informojn" : "red.", "", "teknikumi", "ne");
    if ($grandeco == "granda") {
        //sxangxi la cxambrotipon
        echo "<form action='cxambroj.php?cxambronombro={$cxambro}' method='post'>";
        entajpbutono("(", "tipo", $row[tipo], "g", "g", 'gea');
        entajpbutono("", "tipo", $row[tipo], "v", "v", 'vira');
        entajpbutono("", "tipo", $row[tipo], "i", "i", 'ina)');
        entajpbokso("[", dulita, $row[dulita], J, J, "dulita c^ambro]");
        entajpejo("<BR>Rimarkoj:", "rimarkoj", $row[rimarkoj], 20);
        send_butono("Ek!");
        echo "</form>";
    }
    $renkontigxdauxro = kalkulu_tagojn($renkontigxo->datoj[de], $renkontigxo->datoj[gxis]);
    $partoprentagoj = kalkulu_tagojn($partopreno->datoj[de], $partopreno->datoj[gxis]);
    if ($partoprenanto->datoj[ID] and $grandeco == "granda") {
        echo "<form ACTION='cxambroj.php?cxambronombro={$cxambro}' METHOD='POST'>\n";
    }
    echo "<Table border><TR><TD>Nokto: ";
    if ($grandeco == "granda") {
        $manko = eltrovu_litojn($partopreno->datoj[ID]);
        $ar = JMTdisigo($renkontigxo->datoj[de]);
        $tago = $ar[tago];
        for ($noktoj = 1; $noktoj <= $renkontigxdauxro; $noktoj++) {
            $ar = JMTdisigo(sekvandaton($renkontigxo->datoj[de], $noktoj));
            $sektago = $ar[tago];
            echo "<TD align=\"center\"> {$tago} / {$sektago}";
            $tago = $sektago;
        }
        echo "<TD><TD align=\"center\">tuta tempo";
    } else {
        for ($noktoj = 1; $noktoj <= $renkontigxdauxro; $noktoj++) {
            echo "<TD>{$noktoj}</noktoj>";
        }
    }
    for ($litoj = 1; $litoj <= $row[litonombro]; $litoj++) {
        echo "<TR valign = center>\n<TD nowrap>Lito: " . $litoj;
        $uzata = false;
        for ($noktoj = 1; $noktoj <= $renkontigxdauxro; $noktoj++) {
            $r = cxambro_uzata($cxambro, $noktoj, $litoj);
            $diferenco = $r[nokto_gxis] - $noktoj;
            echo "<TD align = center ";
            if ($diferenco > 0) {
                $noktoj += $diferenco++;
                //TODO:? hehe [respondo de Martin:] Das ist einfach nur eine geniale Funktion.
                echo "colspan = {$diferenco} ";
            }
            if ($r[rezervtipo] == "d") {
                echo " bgcolor=green> ";
                $uzata = true;
            } else {
                if ($r[rezervtipo] == "r") {
                    echo " bgcolor=yellow> ";
                    $uzata = true;
                } else {
                    if ($partoprenanto and $grandeco == "granda" and sekvandaton($renkontigxo->datoj[de], $noktoj - 1) >= $partopreno->datoj[de] and sekvandaton($renkontigxo->datoj[de], $noktoj) <= $partopreno->datoj[gxis] and $manko[$noktoj] != "1") {
                        echo "";
                        entajpbokso(">", "nokto[{$noktoj}]", "falseoderso", "", "{$litoj}", "", "", "ne");
                    } else {
                        echo " bgcolor=white>--";
                    }
                }
            }
            echo "<A href = \"partrezultoj.php?partoprenidento={$r['3']}&partoprenantoidento={$r['0']}\" onClick=\"doSelect({$r['0']});\">";
            if (($grandeco == "granda" or $diferenco > 3) and $r[partoprenantoID]) {
                $loka_partoprenanto = new Partoprenanto($r[partoprenantoID]);
                $teksto = $loka_partoprenanto->datoj[personanomo] . " " . $loka_partoprenanto->datoj[nomo] . " (" . eltrovu_landon($loka_partoprenanto->datoj[lando]) . " / " . $loka_partoprenanto->datoj[sekso] . "/" . $loka_partopreno->datoj[agxo] . ")";
                if ($grandeco == "granda") {
                    eoecho($teksto . "<BR> ");
                } else {
                    eoecho($teksto);
                }
                //eoecho (/*substr*/($teksto,0,$diferenco*3));
            }
            if ($diferenco > 3 and !$r[partoprenantoID] or $grandeco == "granda") {
                switch ($r[rezervtipo]) {
                    case "d":
                        echo "disdonita";
                        break;
                    case "r":
                        echo "rezervita";
                        break;
                }
            } else {
                if ($diferenco < 4) {
                    echo $r[rezervtipo];
                }
            }
            echo "</A>";
        }
        if ($partoprenanto and $grandeco == "granda") {
            echo "<TD>&nbsp;&nbsp;<TD align=center>";
            if ($uzata == false and $partoprentagoj == $renkontigxdauxro and $manko[sumo] == 0) {
                entajpbokso("", "tute", "falseoderso", "", "{$litoj}", "", "", "ne");
            }
        }
    }
    echo "</Table>";
    if ($partoprenanto->datoj[ID] and $grandeco == "granda") {
        echo "<select name=\"tipo\" size=1>\n";
        echo "<option selected>rezervi\n";
        echo "<option>disdoni\n";
        echo "</select><BR>\n";
        send_butono("Faru!");
        echo "</FORM>";
    }
    if ($grandeco != "granda") {
        eoecho($row[rimarkoj]);
    }
}
/**
 * Montras la aktualan staton de ĉambro.
 *  $grandeco: - se ne donita aŭ "malgranda", montras nur 
 *             - se "granda", ...
 * verda se estas taŭga
 * ruĝa se ne taŭgas (pro sekso)
 *
 * @todo transformu en pli bone uzeblan funkcio(j)n
 */
function montru_cxambron($cxambroID, $renkontigxo, $partoprenanto, $partopreno, $grandeco = "malgranda", $reenligo = "")
{
    $cxambro = new Cxambro($cxambroID);
    $row = $cxambro->datoj;
    if ($grandeco == "granda") {
        ligu("cxambroj.php?etagxo=" . $row['etagxo'], "Etag^o " . $row['etagxo']);
        echo " |";
    }
    ligu("cxambro-detaloj.php?cxambronumero=" . $cxambroID, "C^ambro: " . $row['nomo']);
    montru_cxambrosekson($row['tipo'], $partopreno, $partoprenanto);
    rajtligu("kreu_cxambron.php?id={$cxambroID}", $grandeco == 'granda' ? "redaktu bazajn informojn" : "red.", "", "teknikumi", "ne");
    if ($grandeco == "granda") {
        //formularo por sxangxi la cxambrotipon
        formularo_por_bazaj_cxambroinformoj($cxambro);
    }
    $renkontigxdauxro = $renkontigxo->renkontigxonoktoj();
    $partoprentagoj = is_object($partopreno) ? $partopreno->partoprennoktoj() : 0;
    echo "<form action='cxambroago.php' method='POST'>\n";
    tenukasxe("cxambronumero", $cxambroID);
    if (!$reenligo) {
        if ($_SERVER['REQUEST_METHOD'] == "GET") {
            $reenligo = $_SERVER['PHP_SELF'];
            if ($_SERVER['QUERY_STRING']) {
                $reenligo .= "?" . $_SERVER['QUERY_STRING'];
            }
        }
    }
    if ($reenligo) {
        tenukasxe("reiru", $reenligo);
    }
    echo "<table class='cxambrolisto-{$grandeco}'><tr><th>Nokto:</th>";
    if ($grandeco == "granda") {
        $manko = eltrovu_litojn($partopreno->datoj['ID']);
        $ar = JMTdisigo($renkontigxo->datoj['de']);
        $tago = $ar['tago'];
        $estis_elektebleco = false;
        // cxu estis ebla elekti liton por nokto?
        for ($noktoj = 1; $noktoj <= $renkontigxdauxro; $noktoj++) {
            $ar = JMTdisigo(sekvandaton($renkontigxo->datoj['de'], $noktoj));
            $sektago = $ar['tago'];
            echo "<th align='center'> {$tago} / {$sektago} </th>";
            $tago = $sektago;
        }
        if ($partoprenanto) {
            // ebleco mendi tutan tempon
            echo "<td/><th>tuta tempo</th>";
        }
        echo "</th>";
    } else {
        // simpla noktolisto
        for ($noktoj = 1; $noktoj <= $renkontigxdauxro; $noktoj++) {
            echo "<th>{$noktoj}</th>";
        }
    }
    echo "</tr>";
    for ($litoj = 1; $litoj <= $row['litonombro']; $litoj++) {
        echo "<tr >\n<th class='litonomo'>Lito: " . $litoj . "</th>";
        $uzata = false;
        for ($noktoj = 1; $noktoj <= $renkontigxdauxro; $noktoj++) {
            // detaloj pri la rezervado
            $r = cxambro_uzata($cxambroID, $noktoj, $litoj);
            if ($r) {
                $uzata = true;
                $noktoj += metu_partoprenant_litan_keston($r, $noktoj, $partopreno->datoj['ID'], $grandeco);
            } else {
                if ($partoprenanto and $grandeco == "granda" and sekvandaton($renkontigxo->datoj['de'], $noktoj - 1) >= $partopreno->datoj['de'] and sekvandaton($renkontigxo->datoj['de'], $noktoj) <= $partopreno->datoj['gxis'] and $manko[$noktoj] != "1") {
                    // ebligu mendi tiun liton por tiu nokto
                    echo "<td class='elektebla'>";
                    entajpbokso("", "nokto[{$noktoj}]", "falseoderso", "", "{$litoj}", "", "", "ne");
                    echo "</td>";
                    $estis_elektebleco = true;
                } else {
                    echo "<td class='malplena'>--</td>";
                }
            }
            // else
        }
        // for (noktoj)
        if ($partoprenanto and $grandeco == "granda") {
            // mendi cxiujn noktojn?
            echo "<td>&nbsp;&nbsp;</td><td class='elektebla'>";
            if ($uzata == false and $partoprentagoj == $renkontigxdauxro and $manko['sumo'] == 0) {
                entajpbokso("", "tute", "falseoderso", "", "{$litoj}", "", "", "ne");
            }
            echo "</td>";
        }
        echo "</tr>";
    }
    // for (litoj)
    echo "</table>";
    if ($partoprenanto->datoj['ID'] and $grandeco == "granda") {
        if ($estis_elektebleco) {
            // butono por rezervi
            butono('rezervu', "Rezervu elektitajn litojn");
            // butono por disdoni - TODO: aux cxu nur surloke?
            butono('disdonu', "Disdonu elektitajn litojn");
        }
        //     echo "<select name='tipo' size='1'>\n";
        //     echo "<option selected>rezervi\n";
        //     echo "<option>disdoni\n";
        //     echo "</select><BR>\n";
        //     send_butono("Faru!");
    }
    echo "</form>";
    if ($grandeco != "granda") {
        eoecho($row[rimarkoj]);
    }
}