function montru_sxangxoformularon($konfiguro)
{
    if ($konfiguro->datoj['ID']) {
        eoecho("<h2>Konfiguro-s^ang^o</h2>");
    } else {
        eoecho("<h2>Nova konfiguro</h2>");
    }
    echo "<form action='renkontigxaj_konfiguroj.php' method='POST'>\n";
    echo "<table>\n";
    tabela_kasxilo("renkontig^o-ID", "renkontigxoID", $konfiguro->datoj['renkontigxoID']);
    tabela_kasxilo("ID", 'ID', $konfiguro->datoj['ID']);
    $elektoj = array();
    foreach ($GLOBALS['konfiguraj_tipoj'] as $tipo => $titolo) {
        $elektoj[$tipo] = $titolo[1];
    }
    tabela_elektilo("tipo", 'tipo', $elektoj, $konfiguro->datoj['tipo']);
    tabelentajpejo("interna nomo", 'interna', $konfiguro->datoj['interna'], 20);
    tabelentajpejo("grupo", 'grupo', $konfiguro->datoj['grupo'], 5);
    tabelentajpejo("teksto", 'teksto', $konfiguro->datoj['teksto'], 50);
    tabelentajpejo("rimarko", 'aldona_komento', $konfiguro->datoj['aldona_komento'], 50);
    echo "</table>\n";
    echo "<p>";
    if ($konfiguro->datoj['ID']) {
        butono('sxangxu', "S^ang^u");
        butono("kreu", "Kreu (kun nova ID)");
    } else {
        butono('kreu', "Kreu");
    }
    ligu("renkontigxaj_konfiguroj.php", "Reen al la listo");
    echo "</p>";
}
/**
 * metas la HTML-kapon kun ioma informo pri la
 *  stato de la akceptado.
 * $pasxo - la nomo de la aktuala pasxo.
 */
function akceptado_kapo($pasxo)
{
    $partoprenanto = $_SESSION['partoprenanto'];
    HtmlKapo();
    eoecho("<p>Ni nun akceptas <b>" . $partoprenanto->datoj[personanomo] . " " . $partoprenanto->datoj[nomo] . " </b>(" . $partoprenanto->datoj[ID] . ") al la <b>" . $_SESSION["renkontigxo"]->datoj[nomo] . "</b>.</p>\n");
    eoecho("<h2>Akceptada proceduro &ndash; Pas^o <em>" . $GLOBALS['PASXO_NOMOJ'][$pasxo] . "</em></h2>\n");
    // TODO: reen-ligoj al antauxaj pasxoj
}
/**
 * Montras por unu deziro A->B la detalojn
 * de A kaj B, kaj la statuson.
 */
function montru_kunlogxdezirdetalojn($deziro)
{
    $dezirant_eno = new Partopreno($deziro->datoj['partoprenoID']);
    $deziranto = new Partoprenanto($dezirant_eno->datoj['partoprenantoID']);
    $dezirat_eno = new Partopreno($deziro->datoj['kunKiuID']);
    $dezirato = new Partoprenanto($dezirat_eno->datoj['partoprenantoID']);
    eoecho("<h2>Kunlog^deziraj detaloj</h2>");
    eoecho("<table>\n" . "<tr><th /><th>deziranto</th><th>dezirato</th></tr>\n");
    kampoj("ID", array(donu_ligon("partrezultoj.php?partoprenidento=" . $dezirant_eno->datoj['ID'], $dezirant_eno->datoj['ID']), donu_ligon("partrezultoj.php?partoprenidento=" . $dezirat_eno->datoj['ID'], $dezirat_eno->datoj['ID'])));
    kampoj("nomo", array($deziranto->tuta_nomo(), $dezirato->tuta_nomo()));
    kampoj("domotipo", array($dezirant_eno->domotipo(), $dezirat_eno->domotipo()));
    kampoj("ag^o", array($dezirant_eno->datoj['agxo'], $dezirat_eno->datoj['agxo']));
    // testas, cxu seksoj kaj deziritaj cxambrotipoj harmonias.
    if ($deziranto->sekso != $dezirato->sekso and $dezirant_eno->datoj['cxambrotipo'] == 'u' and $dezirat_eno->datoj['cxambrotipo'] == 'u') {
        kampoj("sekso", array($deziranto->sekso => "averto", $dezirato->sekso => "averto"));
        kampoj("c^ambrotipo:", array($dezirant_eno->cxambrotipo() => "averto", $dezirat_eno->cxambrotipo() => "averto"));
    } else {
        if ($deziranto->sekso != $dezirato->sekso and $dezirant_eno->datoj['cxambrotipo'] == 'u') {
            kampoj("sekso", array($deziranto->sekso, $dezirato->sekso => "averto"));
            kampoj("c^ambrotipo:", array($dezirant_eno->cxambrotipo() => "averto", $dezirat_eno->cxambrotipo()));
        } else {
            if ($deziranto->sekso != $dezirato->sekso and $dezirat_eno->datoj['cxambrotipo'] == 'u') {
                kampoj("sekso", array($deziranto->sekso => "averto", $dezirato->sekso));
                kampoj("c^ambrotipo:", array($dezirant_eno->cxambrotipo(), $dezirat_eno->cxambrotipo() => "averto"));
            } else {
                kampoj("sekso", array($deziranto->sekso, $dezirato->sekso));
                kampoj("c^ambrotipo:", array($dezirant_eno->cxambrotipo(), $dezirat_eno->cxambrotipo()));
            }
        }
    }
    // se unu volas dulitan cxambron, tiam la alia ankaux volu.
    if ($dezirant_eno->datoj['dulita'] != $dezirat_eno->datoj['dulita']) {
        kampoj("dulita", array(jes_ne($dezirant_eno->datoj['dulita']) => "averto", jes_ne($dezirat_eno->datoj['dulita']) => "averto"));
    } else {
        kampoj("dulita c^.?", array(jes_ne($dezirant_eno->datoj['dulita']), jes_ne($dezirat_eno->datoj['dulita'])));
    }
    eoecho("</table>\n");
    $sql = datumbazdemando(array("ID"), "kunlogxdeziroj", array("partoprenoID = '" . $deziro->datoj['kunKiuID'] . "'", "kunKiuID = '" . $deziro->datoj['partoprenoID'] . "'"));
    $rez = sql_faru($sql);
    if ($linio = mysql_fetch_assoc($rez)) {
        $alia_deziro = new Kunlogxdeziro($linio['ID']);
        eoecho("<p>Estas ankau^ ");
        ligu("kunlogxado.php?kunlogxID=" . $linio['ID'], "kunlog^deziro en la inversa direkto");
        eoecho(", kies stato nun estas <em>" . $alia_deziro->stato() . "</em>");
    } else {
        eoecho("<p>Sed " . $dezirato->tuta_nomo() . " ne indikis, ke " . $dezirato->personapronomo . " volas log^i kun " . $deziranto->tuta_nomo() . ".</p>\n");
    }
    eoecho("<p>Aktuala stato de la kunlog^deziro: <em>" . $deziro->stato() . "</em>.</p>\n");
    echo "<form action='kunlogxado.php' method='POST'>\n";
    tenukasxe("kunlogxID", $deziro->datoj['ID']);
    butono("forvisxhu", "Forvis^u", "ago");
    butono("ne_eblas", "Ne eblas", "ago");
    butono("eblas", "Eblas", "ago");
    echo "</form>\n";
    eoecho("<p>C^iuj kunlog^deziroj de " . $deziranto->tuta_nomo() . ":</p>");
    montru_kunlogxdezirojn($dezirant_eno);
}
/**
 * donas erarmesaĝon, ke la uzanto ne rajtas fari ion,
 * kaj finas la skripton.
 *
 * @param string $ago kiun rajton oni bezonus.
 * @todo prenu la nomon, kie plendi el la konfiguro.
 * @todo ĉu iel taŭge fini la HTML-strukturon?
 */
function ne_rajtas($ago = "?")
{
    eoecho("Malg^usta kodvorto au^ nomo ne ekzistas, au^ eble vi ne rajtas uzi tiu c^i pag^on ({$ago})<BR>");
    eoecho("Se vi pensas, ke vi devus rajti, kaj ke vi donis la g^ustan kodvorton, plendu c^e Pau^lo.");
    // TODO: Pauxlo -> el konfiguro
    ligu("index.php", "<-- reen al la komenca pag^o", "_top");
    // TODO: exit() finas la tutan skripton, sen zorgi, ke la HTML estas ie en la mezo ...
    // Eble iom helpus voki htmlFino().
    exit;
}
function faru_SQL($sql)
{
    echo $sql . "\n";
    if (INSTALA_MODUSO) {
        eoecho("faranta ...");
        flush();
        sql_faru($sql);
        eoecho("farita!\n");
    }
}
/**
 * HTML-a kapo por la serĉ-paĝo, inkluzive de elektilo por jam
 * ekzistantaj serĉoj.
 */
function sercxKapo()
{
    HtmlKapo();
    eoecho("<h2>G^enerala Serc^o</h2>\n");
    kasxeblaSercxoElektilo();
    ligu("partsercxo.php", "Reen al la partoprenantoserc^o");
    ligu("gxenerala_sercxo.php", "nova serc^o");
    if ($_REQUEST['antauxa_sercxo']) {
        trovuSercxon($_REQUEST['antauxa_sercxo'], $GLOBALS['valoroj'], true);
    }
}
/**
 *
 */
function montru_laux_tage($nomo, $noktonombro, $sql, $klaso)
{
    eoecho("<tr class='" . $klaso . "'><th>" . $nomo . "</th>");
    //  echo "<!-- noktonombro: $noktonombro -->";
    for ($noktoj = 1; $noktoj <= $noktonombro; $noktoj++) {
        //	  echo "<!-- noktoj: $noktoj -->";
        $vera_sql = str_replace('{{nokto}}', $noktoj, $sql);
        echo "<!-- vera_sql: [{$vera_sql}] -->\n";
        $row = mysql_fetch_array(sql_faru($vera_sql));
        echo "<td>" . $row[0] . "</td>";
    }
    echo "</tr>\n";
}
function faru_noton_el_gxi()
{
    $noto = new Noto(0);
    $noto->kreu();
    $noto->datoj['partoprenantoID'] = $_POST['ID'];
    $noto->datoj['kiu'] = $_POST['de_nomo'];
    $noto->datoj['kunKiu'] = $_POST['alkiu'];
    $noto->datoj['tipo'] = "rete";
    $noto->datoj['subjekto'] = $_POST['temo'];
    $noto->datoj['enhavo'] = $_POST['teksto'];
    $noto->datoj['prilaborata'] = $_POST['prilaborata'];
    $noto->datoj['dato'] = date("Y-m-d H:i:s");
    $noto->skribu();
    eoecho("<p style='color:red'>Noto savita.</p>");
}
function montru_kondicxoredaktilon($kondicxo)
{
    eoecho("<h2>" . ($kondicxo->datoj['ID'] ? "S^ang^o" : "Kreo") . " de kondic^o</h2>\n");
    echo "<form action='kondicxo.php' method='POST'>\n";
    echo "<table>\n";
    tabela_kasxilo("ID", 'ID', $kondicxo->datoj['ID']);
    tabelentajpejo("Nomo", 'nomo', $kondicxo->datoj['nomo'], 30);
    $panto = $kondicxo->datoj['entajpanto'];
    tabela_kasxilo("Entajpanto", "entajpanto", $panto, $panto ? eltrovu_entajpanton($panto) : "-");
    granda_tabelentajpejo("Priskribo", "priskribo", $kondicxo->datoj['priskribo'], 60, 4);
    granda_tabelentajpejo("Kondic^okodo", "kondicxoteksto", $kondicxo->datoj['kondicxoteksto'], 60, 4);
    granda_tabelentajpejo("J^avaskripta formo", "jxavaskripta_formo", $kondicxo->datoj['jxavaskripta_formo'], 60, 4);
    echo "</table>\n<p>";
    if ($kondicxo->datoj['ID']) {
        butono('sxangxu', "S^ang^u");
    } else {
        butono('kreu', "Kreu");
    }
    echo "</form>\n";
}
/**
 * Uzas la serĉ-opciojn por serĉi kaj
 * montras la rezulton.
 *
 * TODO: Plibeligu la aspekton.
 * @uses Sercxilo
 */
function montruRezulton($valoroj)
{
    $sercxilo = new Sercxilo();
    $teksto = eotransform("<h3>Serc^rezulto</h3>\n");
    list($kampoj, $inversa, $sql) = kreuSercxSQL($valoroj);
    if (empty($kampoj)) {
        eoecho("<p>Vi elektu <em>almenau^ unu serc^indaj^o</em>" . " &ndash; alikaze mi nenion povas serc^i.</p>");
        return;
    }
    $sercxilo->metu_sql($sql);
    $teksto .= "<p><code>{$sql}</code></p>";
    $kolumnoj = array();
    foreach ($kampoj as $alias) {
        $kol = array('kampo' => $alias, 'titolo' => $inversa[$alias]['titolo']);
        if ($inversa[$alias]['ligo']) {
            $kol['ligilsxablono'] = $inversa[$alias]['ligo'];
        }
        $kolumnoj[] = $kol;
        // 	  $kolumnoj []= array($alias, $inversa[$alias]['titolo'], 'XXXXX', 'l',
        //						  $inversa[$alias]['ligo'], '');
    }
    $sercxilo->metu_kolumnojn($kolumnoj);
    if (in_array('nomo', $kampoj) and in_array('personanomo', $kampoj) and in_array('ID', $kampoj)) {
        if ($valoroj['sercxo_titolo']) {
            $sercxilo->metu_menutitolon("g^en. serc^o: " . $valoroj['sercxo_titolo']);
        } else {
            $sercxilo->metu_menutitolon("rezulto de sennoma " . "g^enerala serc^o");
        }
    } else {
    }
    reset($kampoj);
    $sercxilo->metu_ordigon(current($kampoj), 'asc');
    $sercxilo->metu_sumregulojn(array(array(array('entute:', '', 'r'), array('XX', 'A', 'l'))));
    $sercxilo->metu_memligomontradon(true);
    $sercxilo->metu_identigilon('gxenerala_sercxo_rezulto');
    if (strtoupper(substr($_REQUEST['tipo'], 0, 4)) == 'HTML') {
        echo $teksto;
    }
    echo "<!-- " . var_export($sercxilo, true) . "-->";
    $sercxilo->montru_rezulton_en_tipo($_REQUEST['tipo']);
}
/**
 * Uzas la sercx-opciojn por sercxi kaj
 * montras la rezulton.
 *
 * TODO: Plibeligu la aspekton.
 */
function montruRezulton($valoroj)
{
    eoecho("<h3>Serc^rezulto</h3>\n");
    list($kampoj, $inversa, $sql) = kreuSercxSQL($valoroj);
    echo "<p><code>{$sql}</code></p>";
    if (empty($kampoj)) {
        eoecho("<p>Vi elektu <em>almenau^ unu serc^indaj^o</em> &ndash; alikaze mi" . " nenion povas serc^i.</p>");
        return;
    }
    $kolumnoj = array();
    foreach ($kampoj as $alias) {
        $kolumnoj[] = array($alias, $inversa[$alias]['titolo'], 'XXXXX', 'l', $inversa[$alias]['ligo'], '');
    }
    // Ne funkcias, cxar la menu-elektilo volas ordigi laux p.nomo, kaj
    // nia demando ne enhavas tabelon 'p', sed nur partoprenanto.
    if (in_array('renkNumero', $kampoj) and in_array('nomo', $kampoj) and in_array('personanomo', $kampoj) and in_array('ID', $kampoj)) {
        $almenuo = 'jes';
    } else {
        $almenuo = '';
    }
    reset($kampoj);
    sercxu($sql, array(current($kampoj), 'asc'), $kolumnoj, array(array(array('entute:', '', 'r'), array('XX', 'A', 'l'))), 'gxenerala_sercxo_rezulto', 0, 0, "", $almenuo, 'ne');
}
function redaktilo_por_kurzo($kurzo)
{
    if ($kurzo->datoj['ID']) {
        eoecho("<h2>Redakto de kurzo</h2>");
    } else {
        eoecho("<h2>Nova kurzo</h2>");
    }
    echo "<form action='kurzoj.php' method='POST'>\n";
    echo "<table>\n";
    tabela_kasxilo("ID", 'ID', $kurzo->datoj['ID']);
    tabela_elektolisto_el_konfiguroj("valuto", 'valuto', 'valuto', $kurzo->datoj['valuto'], $ppRenk);
    tabelentajpejo("dato", 'dato', $kurzo->datoj['dato'], 10);
    tabelentajpejo("kurzo", 'kurzo', $kurzo->datoj['kurzo'], 10);
    echo "</table>\n";
    echo "<p>\n";
    if ($kurzo->datoj['ID']) {
        butono('sxangxu', "S^ang^u!");
    } else {
        butono('kreu', "Enmetu!");
    }
    ligu("kurzoj.php", "Reen");
    echo "</p>\n";
    echo "</form>";
}
function montru_reguloformularon($regulo)
{
    if ($regulo->datoj['ID']) {
        eoecho("<h1>Redakto de " . $regulo->regulovorto . " <em>" . $regulo->datoj['nomo'] . "</em></h1>");
    } else {
        eoecho("<h1>Kreado de nova " . $regulo->regulovorto . "</h1>");
    }
    echo "<form action='regulo.php?tipo=" . $regulo->tipo . "' method='POST'>\n";
    echo "<table>\n";
    tabela_kasxilo("ID", "ID", $regulo->datoj['ID']);
    tabelentajpejo("nomo", "nomo", $regulo->datoj['nomo'], 20);
    tabelentajpejo("Mallongigo", "mallongigo", $regulo->datoj['mallongigo'], 10);
    granda_tabelentajpejo("Priskribo", "priskribo", $regulo->datoj['priskribo'], 40, 4);
    tabela_kondicxoelektilo("Elektu c^i tie la g^ustan kondic^on por tiu " . "krompagotipo. (Se vi bezonas aliajn, aldonu per " . donu_ligon("kondicxo.php", "la kondic^oredaktilo") . ".)", $regulo->datoj['kondicxo']);
    tabela_elektilo("uzebla", "uzebla", array('j' => 'jes', 'n' => 'ne'), $regulo->datoj['uzebla'], "C^u montri en la g^enerala listo?");
    tabela_elektilo("lau^nokte", 'lauxnokte', array('j' => 'lau^ nokto', 'n' => 'nur unufoje'), $regulo->datoj['lauxnokte'], "C^u lau^nokta krompago, c^u unufoja?");
    echo "</table>\n<p>";
    if ($regulo->datoj['ID']) {
        butono('sxangxu', "S^ang^u");
    } else {
        butono('kreu', "Kreu");
    }
    echo "</p>\n</form>";
}
 /**
  * Montras la aliĝdatojn en HTML-tabelo
  */
 function montru_aligxo($sen_bla = false)
 {
     // TODO: tiu funkcio ankaŭ ŝajnas multe tro longa kaj
     // nesuperrigardebla por mi ...
     $renkontigxo = new renkontigxo($this->datoj['renkontigxoID']);
     $partoprenanto = new partoprenanto($this->datoj['partoprenantoID']);
     if (!$sen_bla) {
         eoecho("partoprendatumoj por la <strong>" . $renkontigxo->datoj['nomo'] . "</strong> en " . $renkontigxo->datoj['loko'] . ":");
     }
     echo "<table  valign='top'>\n";
     kampo("ID:", $this->datoj['ID']);
     if ($this->datoj['ordigoID'] != '0.000') {
         kampo("ordigo-ID:", $this->datoj['ordigoID']);
     }
     kampo("Lingva nivelo:", $this->nivelo());
     $this->simpla_kampo("studento", array(array('j', '[X]', "estas studento"), array('n', '[_]', "ne estas studento"), array('?', '?', "ne klaras, c^u studento.")));
     $this->simpla_kampo1('havas_asekuron', "N", "[X]", "bezonas asekuron pri malsano");
     /*
      TODO: indiko pri invitpeto-datoj
     */
     $this->simpla_kampo1('retakonfirmilo', 'J', "[X]", "deziras retan konfirmilon");
     $this->simpla_kampo1("germanakonfirmilo", "J", "[X]", "deziras germanlingvan konfirmilon");
     $this->simpla_kampo1("litolajxo", "J", "[X]", "mendas litolaj^on");
     $this->simpla_kampo("partoprentipo", array(array("t", "t", "partoprenos tuttempe (de: " . $this->datoj['de'] . " g^is: " . $this->datoj['gxis'] . ")"), array("p", "", "partoprenos partatempe (de: " . $this->datoj['de'] . " g^is: " . $this->datoj['gxis'] . ")")), array('?', "", "partoprenos tute ne?? io eraro okazis - bonvolu kontaktu nin"));
     $this->simpla_kampo("listo", array(array('J', "[X]", "volas aperi en la interreta listo."), array('N', "[_]", "ne volas aperi en la interreta listo.")), array('?', "?", 'interreta listo: "' . $this->datoj['listo'] . '"'));
     $this->simpla_kampo("intolisto", array(array('J', "[X]", "volas aperi en la adresaro."), array('N', "[_]", "ne volas aperi en la adresaro.")), array("?", "?", 'adresaro: "' . $this->datoj['listo'] . '"'));
     $this->simpla_kampo("vegetare", array(array("J", "[X]", "estas <em>vegetarano</em>"), array("A", "[X]", "estas <em>vegano</em>"), array("N", "[X]", "estas <em>viandmang^anto</em>")), array("", "?", "<em>nekonata mang^otipo</em>!"));
     if (deviga_membreco_tipo != 'nenia') {
         $this->simpla_kampo("GEJmembro", array(array('J', "[X]", "estas membro de " . deviga_membreco_nomo)), array('N', "[_]", "ne estas membro de " . deviga_membreco_nomo));
         kampo($this->datoj['surloka_membrokotizo'], $this->membrokotizo());
     }
     // TODO: pripensi, ĉu ankaŭ eblas fari simile kiel la antaŭaj.
     switch ($this->datoj['tejo_membro_laudire'] . $this->datoj['tejo_membro_kontrolita']) {
         case 'jj':
         case 'nj':
             kampo("[X]", "estas membro de TEJO (kontrolita)");
             break;
         case 'jn':
             kampo("-", "ne estas membro de TEJO (kvankam " . $partoprenanto->personapronomo . " asertis, ke jes)");
             break;
         case 'j?':
             kampo("[?]", "asertis esti membro de TEJO (ankorau^ ne kontrolita)");
             break;
         case 'nn':
         case 'n?':
             kampo("-", "ne estas membro de TEJO");
             break;
         case 'np':
         case 'jp':
             kampo("-", "ne estas membro de TEJO, sed tamen pagas ioman monon al TEJO/UEA");
             break;
         case 'ni':
         case 'ji':
             kampo("[I]", "ig^as nova membro de TEJO surloke");
             break;
         default:
             kampo("?", "eraro okazis pri la TEJO-membreco: " . "laudire=" . $this->datoj['tejo_membro_laudire'] . ", kontrolita=" . $this->datoj['tejo_membro_kontrolita']);
     }
     $this->simpla_kampo1("KKRen", "J", "[X]", "estas " . organizantoj_nomo . "-ano");
     if (mangxotraktado == 'ligita') {
         $vosto = "";
         $vosto .= "kaj ";
         $komenco = "";
         if ($this->datoj['domotipo'] == "M") {
             $komenco .= "M";
             $vosto .= "memzorgas";
             if ($this->datoj['kunmangxas'] == "J") {
                 $vosto .= ", sed kunmang^as (senpage)";
                 $komenco .= "J";
             } else {
                 if ($this->datoj['kunmangxas'] == 'K') {
                     $vosto .= ", sed krompagas por kunmang^i";
                     $komenco .= "K";
                 }
             }
         } else {
             if ($this->datoj['domotipo'] == "J") {
                 $vosto .= "junulargastejumas en ";
                 $komenco .= "J";
                 if ($this->datoj['dulita'] == "J") {
                     $komenco .= "2";
                     $vosto .= "(eble) dulita ";
                 } else {
                     if ($this->datoj['dulita'] == 'U') {
                         $vosto .= "(eble) unulita ";
                         $komenco .= "1";
                     }
                 }
                 if ($this->datoj['cxambrotipo'] == "u") {
                     $vosto .= "unuseksa ";
                     $komenco .= "u";
                 }
                 if ($this->datoj['cxambrotipo'] == "g") {
                     $vosto .= "gea ";
                     $komenco .= "g";
                 }
                 if ($this->datoj['cxambrotipo'] == "n") {
                     $vosto .= "negrava ";
                 }
                 $vosto .= "c^ambro ";
                 if (valoro($this->datoj['kunkiuID'])) {
                     //$vosto .= "(".$this->datoj[kunkiuID].")";// Verlinken mit anderem Teilnehmer
                     $kunlogxanto = new Partoprenanto($this->datoj['kunkiuID']);
                     $komenco .= "+";
                     $vosto .= " (eble) kun <A href=partrezultoj.php?partoprenantoidento=" . $this->datoj['kunkiuID'] . " onClick=\"doSelect(" . $kunlogxanto->datoj['ID'] . ");\">" . $kunlogxanto->datoj['personanomo'] . " " . $kunlogxanto->datoj['nomo'] . "</A>";
                 }
                 if (valoro($this->datoj['kunkiu'])) {
                     $vosto .= " (" . $this->datoj['kunkiu'] . ")";
                 }
                 if ($this->datoj['kunmangxas'] == "N") {
                     $vosto .= ", sed ne kunmang^as";
                     $komenco .= "N";
                 } else {
                     if ($this->datoj['kunmangxas'] == 'K') {
                         $vosto .= ", sed ial tamen krompagas por kunmang^i";
                         $komenco .= "K";
                     }
                 }
             }
         }
         kampo($komenco, $vosto);
     } else {
         if (mangxotraktado == 'libera') {
             $this->simpla_kampo("domotipo", array(array('J', "J", "log^as en junulargastejo"), array('M', 'M', "log^as memzorge (ekster niaj ejoj)"), array('A', "A", "log^as en amaslog^ejo"), array('T', "T", "log^as tendo")), array($this->datoj['domotipo'], "<em>nekonata domotipo</em>"));
             if ($this->datoj['kunKiuID'] != 0) {
                 $kunlogxanto = new Partoprenanto($this->datoj['kunkiuID']);
                 kampo("+", "volas log^i kun " . donu_ligon("partrezultoj.php?partoprenantoidento=" . $this->datoj['kunKiuID'], $kunlogxanto->tuta_nomo()) . " (" . $this->datoj['kunKiu'] . ')');
             } else {
                 if ($this->datoj['kunKiu']) {
                     kampo("+", "volas log^i kun " . " (" . $this->datoj['kunKiu'] . ")");
                 }
             }
             $this->simpla_kampo("cxambrotipo", array(array('g', "g", "en ajna c^ambro"), array('u', "u", "en unuseksa c^ambro")), array($this->datoj['cxambrotipo'], "<em>nekonata cxambrotipo</em>"));
             // TODO: manĝo-mendo-listo
             // TODO: dulita
             $this->simpla_kampo('dulita', array(array('N', '3+', "en plurlita c^ambro"), array('J', '2', "en dulita c^ambro"), array('U', "1", "en unulita c^ambro")), array($this->datoj['dulita'], "<em>nekonata 'dulita'-tipo</em>"));
         } else {
             kampo("????", "nekonata mangxotraktado-konfiguro: " . mangxotraktado);
         }
     }
     $this->simpla_kampo1("ekskursbileto", "J", "[X]", "mendis bileton por la tutaga ekskurso");
     foreach (array('tema', 'distra', 'vespera', 'muzika', 'nokta') as $tipo) {
         if ($this->datoj[$tipo]) {
             kampo("[X]", "kontribuos al la " . $tipo . " programo per: " . $this->datoj[$tipo]);
         }
     }
     if ($this->datoj['rimarkoj']) {
         kampo("rimarkoj:", $this->datoj['rimarkoj']);
     }
     if ($this->datoj['aligxdato']) {
         kampo("alveno de la alig^o:", $this->datoj['aligxdato']);
     }
     if ($this->datoj['malaligxdato'] != "0000-00-00") {
         kampo("alveno de la malalig^o:", $this->datoj['malaligxdato']);
     }
     kampo("1a konf.:", $this->datoj['1akonfirmilosendata']);
     kampo("2a konf.:", $this->datoj['2akonfirmilosendata']);
     echo "</table>\n";
 }
        ligu_butone("partrezultoj.php?partoprenidento=" . $partopreno->datoj['ID'], "sendi la unuan konfirmilon", array('faru' => 'sendu_unuan_konfirmilon'));
    } else {
        eoecho("Vi ne havas la rajton por elsendi" . " la mesag^on.");
    }
    echo "</p>\n";
}
if ('informmesagxo' == $_REQUEST['faru']) {
    eoecho("<hr /><h3>La informmesag^o</h3>");
    require_once $prafix . '/tradukendaj_iloj/iloj_konfirmilo.php';
    echo "<pre>";
    echo kreu_informmesagxan_tekston($_SESSION['partoprenanto'], $_SESSION['partopreno'], $partopreno_renkontigxo, 'x-metodo');
    echo "</pre><p>";
    if (rajtas("retumi")) {
        ligu_butone("partrezultoj.php?partoprenidento=" . $partopreno->datoj['ID'], "sendi la informmesag^on", array('faru' => 'sendu_informmesagxon'));
    } else {
        eoecho("Vi ne havas la rajton por elsendi" . " la mesag^on.");
    }
    echo "</p>\n";
}
if ($_REQUEST['faru'] == 'sendu_unuan_konfirmilon') {
    kontrolu_rajton('retumi');
    require_once $prafix . '/iloj/retmesagxiloj.php';
    require_once $prafix . '/tradukendaj_iloj/iloj_konfirmilo.php';
    require_once $prafix . '/iloj/diversaj_retmesagxoj.php';
    $teksto = kreu_kaj_sendu_unuan_konfirmilon($_SESSION["partoprenanto"], $_SESSION["partopreno"], $partopreno_renkontigxo, $_SESSION['kkren']['entajpantonomo']);
    echo "<p>Ni sendis la jenan unuan konfirmilon:</p><pre>";
    echo eotransformado($teksto, 'utf-8');
    echo "</pre>";
}
if ('sendu_informmesagxon' == $_REQUEST['faru']) {
    kontrolu_rajton('retumi');
eoecho($klarigo . "<br />(ordigitaj lau^ nombro)\n");
//    $sql  = "Select l.nomo, count(*) as c ";
//    $sql .= "from landoj as l, partoprenoj as p, partoprenantoj as e ";
//    $sql .= "where p.partoprenantoID = e.id and e.lando=l.id and alvenstato='v' and renkontigxoID=".$_SESSION["renkontigxo"]->datoj[ID];
//    $sql .= " group by lando order by c DESC";
$sql = datumbazdemando(array("l.nomo", "count(*)" => "c"), array("landoj" => "l", "partoprenoj" => "p", "partoprenantoj" => "e"), array("p.partoprenantoID = e.ID", "e.lando = l.id", "p.alvenstato = '{$alvenstato}'"), "p.renkontigxoID", array("group" => "lando", "order" => "c DESC"));
sql_farukajmontru($sql);
// "select count(*) as c from partoprenoj as p, partoprenantoj as e where p.partoprenantoID=e.id and alvenstato='v' and renkontigxoID=".$_SESSION["renkontigxo"]->datoj[ID]
echo "</TD><TD align=center>\n";
eoecho($klarigo . "<br />(ordigita lau^ nomo)\n");
//    $sql  = "Select l.nomo, count(*) as c ";
//    $sql .= "from landoj as l, partoprenoj as p, partoprenantoj as e ";
//    $sql .= "where p.partoprenantoID = e.id and e.lando=l.id and alvenstato='v' and renkontigxoID=".$_SESSION["renkontigxo"]->datoj[ID];
//    $sql .= " group by e.lando order by l.nomo ASC";
$sql = datumbazdemando(array("l.nomo", "count(*)" => "c"), array("landoj" => "l", "partoprenoj" => "p", "partoprenantoj" => "e"), array("p.partoprenantoID = e.ID", "e.lando = l.id", "alvenstato = '{$alvenstato}'"), "renkontigxoID", array("group" => "e.lando", "order" => "l.nomo ASC"));
sql_farukajmontru($sql);
echo "</TD><TD align=center>\n";
echo "</TD></TR><tr><td colspan='2' align='center'>";
// TODO: uzu tabelon sen "nombro:" - aux enmetu la sumo-kalkuladon tuj
// en la supran tabelon.
sql_farukajmontru(datumbazdemando(array("'Sumo:'", "count(*)" => "c"), array("partoprenoj" => "p", "partoprenantoj" => "e"), array("p.partoprenantoID = e.id", "alvenstato = '{$alvenstato}'"), "renkontigxoID"));
echo "</TD></TR><tr><td colspan='2' align='center'>";
foreach ($GLOBALS['alvenstatonomoj'] as $id => $nomo) {
    if ($id == $alvenstato) {
        eoecho(" <strong>" . $nomo . "</strong>");
    } else {
        ligu("statistikoj.php?alvenstato=" . $id, $nomo);
    }
}
echo "</td></tr></TABLE>\n";
HtmlFino();
 * kodigon.
 *
 * Kiam oni entajpis, la retumilo sendas la informojn
 * al index.php, kiu siavice kontrolas la kodvortojn
 * kaj komencas la PHP-sesion.
 */
require_once 'iloj/iloj.php';
session_start();
malfermu_datumaro();
HtmlKapo();
echo "<div style='text-align:center'>";
echo "<P class='granda'>\n";
if ($_GET['malgxusta']) {
    erareldono("Bedau^rinde via kombino de uzantnomo kaj pasvorto ne tau^gas por la datumbazo");
    eoecho("Se vi supozas, ke estu tiel, plendu c^e " . teknika_administranto . " (" . teknika_administranto_retadreso . "). <br />");
}
eoecho("Vi j^us atingis la pag^on por la " . renkontigxo_nomo . "-administrado. \n<BR>\n");
echo "La uzado estas permesata nur al " . organizantoj_nomo . "anoj, do bonvolu identigi vin. (Jen la persona uzantonomo kaj pasvorto.) \n<BR>\n<BR>\n";
echo "<form action='index.php' target='_top' method='POST'>\n";
entajpejo("Via alig^nomo: ", "lakodnomo", $_SESSION["kodnomo"], 10);
entajpejo("Via kodvorto: ", "lakodvorto", "", 10, "", "", "", "j");
echo "<BR>\n";
entajpbutono("Enkodo: ", "laenkodo", $_SESSION["enkodo"], "utf-8", "utf-8", "unikodo", "");
entajpbutono("", "laenkodo", $_SESSION["enkodo"], "x-metodo", "x-metodo", "x-kodo<BR>", "kutima");
eoecho("Bonvolu elekti la enkodmanieron por a supersignoj. \n<BR>\n");
eoecho("(Se vi povas legi la menuon, elektu unikodo, se mankas leteroj prenu la x-kodon.)\n<BR>\n<BR>\n");
// Elektilo por la renkontigxo
montru_renkontigxoelektilon(DEFAUXLTA_RENKONTIGXO);
send_butono("Preta");
echo "<div>";
HtmlFino();
        eoecho("</td><td><p style='white-space: pre; white-space: pre-wrap'>" . $linio['teksto'] . "</pre>\n      </td><td>" . $priskribo['priskribo'] . "\n      </td>\n    </tr>");
    }
    echo "</table>";
    butono('redaktu', "Redaktu la markitajn tekstojn");
    butono('redaktu_cxiujn', "Redaktu c^iujn tekstojn");
    ligu("renkontigxo.php", "Reen al la renkontig^o");
    ligu("administrado.php", "Reen al la grava administrado");
    echo "</form>\n";
    $restantaj = array();
    foreach ($GLOBALS['tekstpriskriboj'][""] as $priskribo) {
        if (!$priskribo['uzata'] and $priskribo['mesagxoID']) {
            $restantaj[] = $priskribo;
        }
    }
    if (count($restantaj)) {
        eoecho("<p>Pri la sekvaj tekstoj ekzistas priskriboj, sed ili mankas " . " por la aktuala renkontig^o:</p>");
        eoecho("<table>\n" . "<tr><th>mesag^o-ID</th><th>Priskribo</th></tr>\n");
        foreach ($restantaj as $priskribo) {
            echo "<tr><td><strong>" . $priskribo['mesagxoID'] . "</strong><br/>";
            ligu("nova_teksto.php?mesagxoID=" . $priskribo['mesagxoID'], "kreu");
            eoecho("</td><td>" . $priskribo['priskribo'] . "</td></th>\n");
        }
        eoecho("</table>\n");
    }
}
HtmlFino();
if (DEBUG) {
    echo "<!--SESSION: ";
    var_export($_SESSION);
    echo "-->";
}
require_once 'iloj/iloj_sercxo.php';
session_start();
malfermu_datumaro();
unset($_SESSION["partoprenanto"]);
unset($_SESSION["partopreno"]);
if (!rajtas("vidi")) {
    ne_rajtas();
}
HtmlKapo();
eoecho("<h2>Diversaj serc^oj</h2>\n");
if ($_POST['sendu'] == 'dauxrigu') {
    $valoroj = kopiuSercxon();
    $kodita = base64_encode(kodiguSercxon($valoroj));
    eoecho("<h3>Konservu serc^on</h3>");
    echo "<form action='sercxoj.php' method='post'>\n<p>";
    eoecho("Bonvolu entajpi nomon kaj priskribon por via serc^o." . " Eblas uzi la &#99;^-kodigon por la esperantaj supersignoj" . " (&#69;^ por E^).</p>\n<p>\n");
    echo "<input type='hidden' name='sercxo' value='{$kodita}'>\n";
    echo "Nomo: <input name='nomo' type='text' /> <br/>\n";
    echo "Priskribo: <textarea name='priskribo' rows='5' cols='50'></textarea>\n";
    butono("konservu", "Konservu");
    echo "</p>\n</form>";
    HtmlFino();
    return;
}
if ($_REQUEST['sendu'] == 'forigu') {
    foriguSercxon($id);
}
// echo "<!-- POST: \n";
// var_export($_POST);
// // echo "\n valoroj: \n";
// // var_export($valoroj);
/**
 * kreas elektoliston (per radiaj butonoj) el la renkontigxo-konfiguroj,
 * en tabellinio.
 * <pre>
 * |--------+---------------|
 * | titolo | ( ) elekto 1  |
 * |        | (*) elekto 2  |
 * |        | ( ) elekto 3  |
 * |--------+---------------|
 * </pre>
 * @param eostring    $titolo
 * @param string      $nomo (la interna nomo)
 * @param asciistring $tipo la konfiguro-tipo, t.e.
 *                          sekcio de la konfiguro-tabelo.
 * @param asciistring $valoro la antauxelektota valoro.
 * @param Renkontigxo|int $renkontigxo
 *
 * @uses simpla_entajpbutono()
 * @uses datumbazdemando()
 */
function tabela_elektolisto_el_konfiguroj($titolo, $nomo, $tipo, $valoro, $renkontigxo = 0)
{
    debug_echo("<!-- tabela_elektolisto_el_konfiguroj(" . $titolo . ", " . $nomo . ", " . $tipo . ", " . $valoro . ", " . var_export($renkontigxo, true) . ")\n -->");
    if (is_object($renkontigxo)) {
        $renkontigxo = $renkontigxo->datoj['ID'];
    }
    if (!$renkontigxo or !is_int($renkontigxo)) {
        $renkontigxo = $_SESSION['renkontigxo']->datoj['ID'];
    }
    eoecho("<tr>\n   <th>" . $titolo . "</th>\n   <td>\n");
    $sql = datumbazdemando(array('interna', 'grupo', 'teksto', 'aldona_komento'), 'renkontigxaj_konfiguroj', array('renkontigxoID' => $renkontigxo, 'tipo' => $tipo), "", array('order' => "grupo ASC"));
    $rez = sql_faru($sql);
    $antauxa_grupo = '#';
    while ($linio = mysql_fetch_assoc($rez)) {
        debug_echo("<!-- " . var_export($linio, true) . "-->");
        if ($linio['grupo'] != $antauxa_grupo) {
            if ($antauxa_grupo != '#') {
                echo "<br/>\n<br/>";
            }
            $antauxa_grupo = $linio['grupo'];
        } else {
            echo "<br />\n";
        }
        //        echo $linio['interna'] . " ";
        simpla_entajpbutono($nomo, $valoro, $linio['interna']);
        eoecho(" " . $linio['teksto'] . "\n");
        if ($linio['aldona_komento']) {
            eoecho("<br/>\n<span class='aldona_komento'>" . $linio['aldona_komento'] . "</span>\n");
        }
    }
    echo "      </p>\n";
    echo "  </td>\n</tr>\n";
}
/**
 * ekzekutas la donitan (SELECT-)SQL-esprimon, kaj montras
 * la rezulton en simpla HTML-tabelo.
 *
 * @param sqlstring $sql la SQL-serĉ-ordono.
 * @todo koloroj farendaj per CSS - aŭ entute anstataŭu la implementadon
 *       per voko de {@link sercxu()}
 */
function sql_farukajmontru($sql)
{
    $result = sql_faru($sql);
    echo "<table border=1>\n";
    // TODO: Dafür gibt's aber CSS Files.
    // Außerdem zeilenglobale Einstellungen zum <tr>.
    $k[0] = "<td align='right' bgcolor='#CCFFFF'>\n";
    $k[1] = "<td align='right' bgcolor='#CCFFCC'>\n";
    $j = 0;
    $kampoj = mysql_num_fields($result);
    while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
        echo "<tr> ";
        $e = $j % 2;
        $i = 0;
        while ($i < $kampoj) {
            eoecho($k[$e] . " &nbsp;" . $row[$i] . "</td>");
            $i++;
        }
        $j++;
        echo "</tr>\n";
    }
    echo "<tr><th>nombro:</th><td> {$j}</td></tr>\n";
    echo "</table>\n";
}
tabelentajpejo("Invitletero-retadreso", "invitleteroretadreso", $renk['invitleteroretadreso'], 30);
tabelentajpejo("Tema respondulo", 'temarespondulo', $renk['temarespondulo'], 20, "");
tabelentajpejo("Tema retadreso", "temaretadreso", $renk['temaretadreso'], 30);
tabelentajpejo("Distra respondulo", "distrarespondulo", $renk['distrarespondulo'], 20, "");
tabelentajpejo("Distra retadreso", "distraretadreso", $renk['distraretadreso'], 30);
tabelentajpejo("Vespera respondulo", "vesperarespondulo", $renk['vesperarespondulo'], 20, "");
tabelentajpejo("Vespera retadreso", "vesperaretadreso", $renk['vesperaretadreso'], 30);
tabelentajpejo("Muzika respondulo", "muzikarespondulo", $renk['muzikarespondulo'], 20, "");
tabelentajpejo("Muzika retadreso", "muzikaretadreso", $renk['muzikaretadreso'], 30);
tabelentajpejo("Nokta respondulo", "noktarespondulo", $renk['noktarespondulo'], 20, "");
tabelentajpejo("Nokta retadreso", "noktaretadreso", $renk['noktaretadreso'], 30);
tabelentajpejo("Novula/Junula respondulo", "novularespondulo", $renk['novularespondulo'], 20, "");
tabelentajpejo("Novula retadreso", "novularetadreso", $renk['novularetadreso'], 30);
eoecho("\n  </table>\n");
butono("sxangxu", "S^ang^u tiun renkontig^on");
butono("kreu", "Kreu novan renkontig^on");
eoecho("\n</form>\n\n  <hr/>\n\n  <h3 id='tekstoj'>Tekstoj</h3>\n  <p>\n    La <em>tekstoj</em> estas uzataj ekzemple por\n    havi retmesag^tekst(er)ojn kaj similajn aferojn, kiuj varias\n    lau^ renkontig^o,\n    ne en la programo sed en la datumbazo.\n  </p>");
$sql = datumbazdemando(array('count(*)' => 'nombro'), 'tekstoj', "renkontigxoID = '{$renk['ID']}'");
$rez = sql_faru($sql);
$linio = mysql_fetch_assoc($rez);
eoecho("\n<p>\n   Nuntempe ekzistas " . $linio['nombro'] . " tekstoj por la aktuala\n   renkontig^o.\n</p> <p>");
ligu("tekstoj.php", "Vidu la liston (kaj eble redaktu kelkajn)");
echo "<br/>";
ligu("nova_teksto.php", "Aldonu novan tekston");
echo "</p><p>";
ligu("administrado.php", "Reen al la administrado-pag^o.");
echo "</p>";
HtmlFino();
echo "<!--";
var_export($_SESSION);
echo "-->";
    echo "</p>\n</form>\n";
} else {
    butono("sxangxu", "S^ang^u");
    butono("kopiu", "Kopiu");
    eoecho("(tiam donu novan nomon!)");
    echo "</p>\n</form>\n";
    echo "<hr/>\n";
    eoecho("<h2>Kondic^oj por la unuopaj malalig^periodoj</h2>");
    echo "<form action='malaligxkondicxsistemo.php' method='POST'>\n";
    tenukasxe("ID", $kondicxsistemo->datoj['ID']);
    $sql = datumbazdemando(array("ID", "nomo", "limdato"), "aligxkategorioj", array("sistemoID = '" . $kondicxsistemo->datoj['aligxkategorisistemo'] . "'"), "", array("order" => "limdato DESC"));
    $rez = sql_faru($sql);
    echo "<table>\n";
    eoecho("<tr><th>ID</th><th>nomo</th><th>limdato</th>" . "<th>kondic^o</th></tr>\n");
    while ($linio = mysql_fetch_assoc($rez)) {
        $sql = datumbazdemando("kondicxtipo", "malaligxkondicxoj", array("sistemo = '" . $kondicxsistemo->datoj['ID'] . "'", "aligxkategorio = '" . $linio['ID'] . "'"));
        $lin2 = mysql_fetch_assoc(sql_faru($sql));
        eoecho("<tr><td>" . $linio['ID'] . "</td><td>" . $linio['nomo'] . "</td><td>" . $linio['limdato'] . "</td><td>");
        elektilo_simpla_db("kondicxtipo[{$linio['ID']}]", "malaligxkondicxotipoj", "nomo", "ID", $lin2['kondicxtipo'], "uzebla = 'j'");
        echo "</td></tr>\n";
    }
    echo "</table>\n<p>";
    butono("sxangxuKond", "S^ang^u kondic^ojn");
    echo "</p></form>";
}
echo "<hr/>\n<p>";
ligu("kotizosistemoj.php", "C^iuj kotizosistemoj");
ligu("kategorisistemoj.php#malaligxsistemoj", "C^iuj kategoriosistemoj");
ligu("kotizoj.php", "c^io rilate al kotizoj");
echo "</p>";
HtmlFino();
    erareldono("Messag^o sendita!");
}
$prafix = "../";
require_once $prafix . "iloj/iloj.php";
session_start();
malfermu_datumaro();
$komenco = 0;
$nombro = 100;
// por elprovi:
$nombro = 1;
$demando = datumbazdemando(array("p.ID" => "ID", "p.nomo" => "nomo", "personanomo", "retposxto", 'retposxta_varbado', 'MAX(pn.renkontigxoID)' => 'renkID'), array("partoprenantoj" => "p", "partoprenoj" => "pn", 'renkontigxo' => "r"), array("pn.partoprenantoID = p.ID", "retposxto <> ''", "retposxta_varbado <> 'n'"), "", array("limit" => "{$komenco}, {$nombro}", "group" => "p.ID", "order" => "p.ID ASC"));
echo "Demando: [<code>" . $demando . "</code>]<br/>\n";
$rezulto = sql_faru($demando);
die("Vi ne rajtas uzi tiun dosieron. Se vi ne scias, kial, demandu Pauxlon.");
$i = $komenco;
while ($row = mysql_fetch_array($rezulto, MYSQL_BOTH)) {
    eoecho("<br />" . $i . ": " . $row['personanomo'] . " " . $row['nomo'] . ": " . $row['ID'] . ' (' . $row['renkID']);
    $i++;
    if ($row['renkID'] < 7) {
        // ne jam aligxis al la 2006a IS
        eoecho(', sendota)');
        flush();
        $to_name = $row['personanomo'] . " " . $row['nomo'];
        $to_address = $row['retposxto'];
        $to_address = "*****@*****.**";
        sendu_specialan_mesagxon($row, $to_name, $to_address);
    } else {
        eoecho(", ne necesas)");
    }
}
echo "<br/><a name='fino'>Fino</a>.<br/>\n";
 /**
  * Eksendas la mesagxon, kaj eldonas iujn informojn pri tio.
  *
  * @uses email_message_class::Send
  */
 function eksendu()
 {
     $eraro = $this->baza_objekto->Send();
     $this->testu_eraron($eraro);
     if (echo_sendis_mesagxon) {
         eoecho("<p>Sendis mesag^on al: " . $this->baza_objekto->headers['To'] . ", " . $this->baza_objekto->headers['Cc'] . ", " . $this->baza_objekto->headers['Bcc'] . "</p>\n");
     }
 }
}
// 	if ($partoprenanto->datoj['naskigxdato'] < TEJO_AGXO_LIMDATO)
// 	{
//         akceptada_instrukcio("Lau^ nia kalkulo, {$ri} estas " .
//                              "<strong>tro ag^a</strong> por ig^i " .
//                              "TEJO-membro.");
// 	}
ligu_sekvan("TEJO-kotizo klaras.");
akceptado_kesto_fino();
if (!necesas_tejo_traktado()) {
    eoecho("<p>Lau^ la opinio de la programo ne necesas " . "TEJO-traktado por tiu ulo. Vi (kiel h**o) " . "kompreneble tamen rajtas fari tion.</p>");
}
eoecho("<p>Se {$ri} estos membro de TEJO por la jaro " . TEJO_MEMBRO_JARO . ", {$ri} ricevos rabaton" . " de " . TEJO_RABATO . " E^.\n</p>");
eoecho("<h3>Aktuala stato</h3>\n");
if ($partoprenanto->datoj['naskigxdato'] < TEJO_AGXO_LIMDATO) {
    eoecho("<p>Lau^ nia kalkulo, {$ri} estas " . "<strong>tro ag^a</strong> por ig^i " . "TEJO-membro. Do ne eblas ricevi TEJO-rabaton.</p>\n");
}
eoecho("<p>Lau^ la datumbazo, " . $statoteksto . "</p>\n");
eoecho("<h3>Nova stato</h3>\n");
echo "<form action='akceptado-tejo.php' method='post' class='elekto-listo'>";
entajpbutono("<p>", 'ago', 'igxu', $stato, 'igxu', "{$Ri} ig^as TEJO-membro kaj pagos ");
simpla_entajpejo("la kotizon de ", 'kotizo', $partopreno->datoj['tejo_membro_kotizo'], "10", "", " E^ kun la renkontig^a kotizo.</p>");
entajpbutono("<p>", 'ago', 'jam', $stato, 'jam', "{$Ri} jam estas TEJO-membro por " . TEJO_MEMBRO_JARO . " kaj povis pruvi tion, do ricevos rabaton sen pagi" . "  apartan TEJO-kotizon.</p>");
entajpbutono("<p>", 'ago', 'ne', $stato, 'ne', "{$Ri} nek estas TEJO-membro nek volas au^ povas ig^i, kaj rezignas" . " pri la TEJO-rabato.</p>");
entajpbutono("<p>", 'ago', 'pagas', $stato, 'pagas', "{$Ri} nek estas TEJO-membro nek volas au^ povas ig^i, kaj" . " rezignas pri la TEJO-rabato.<br/> {$Ri} ial tamen pagas ");
simpla_entajpejo("", 'krompago', $partopreno->datoj['tejo_membro_kotizo'], "10", "", " E^ kun la renkontig^a kotizo al TEJO/UEA," . " ekzemple por UEA-membreco (kvankam troag^a por TEJO)," . " membreco en kategorio MG au^ membrokotizo por alia " . " persono. Certigu, ke vi notos sur tau^ga papero (ekzemple" . " la alig^ilo), kiom {$ri} pagis por kio.</p>");
echo "<p>";
tenukasxe('partoprenidento', $partopreno->datoj['ID']);
send_butono("S^ang^u");
echo "</p></form>";
HtmlFino();
            eoecho("<code>" . $priskribo['mesagxoID'] . "</code>, kiu tamen ankorau^ ne ekzistas " . "en tiu renkontig^o. (");
            ligu("nova_teksto.php?mesagxoID=" . $priskribo['mesagxoID'], "Kreu g^in!");
            eoecho(")");
        }
    } else {
        if (in_array('lingvo', $priskribo['opcioj'])) {
            // TODO: aliaj lingvoj
            $sql = datumbazdemando(array('ID'), 'tekstoj', "mesagxoID = '" . $_REQUEST['mesagxoID'] . "_de'", "renkontigxoID");
            $rez = sql_faru($sql);
            $alia = mysql_fetch_assoc($rez);
            if ($alia) {
                eoecho("<p>Ekzistas ");
                ligu("nova_teksto.php?id=" . $alia['ID'], "germana versio de tiu teksto");
                eoecho(".</p>");
            } else {
                eoecho("<p>Por tiu teksto devus ekzisti germana versio.");
                ligu("nova_teksto.php?mesagxoID=" . $_REQUEST['mesagxoID'] . "_de", "Kreu g^in");
                echo "</p>";
            }
        }
    }
}
?>
<form action='nova_teksto.php' method='POST'>
<table class='tekstoj-redaktilo'>
<?php 
tabelentajpejo("Identifikilo", 'mesagxoID', $_REQUEST['mesagxoID'], 30, $id_postt);
granda_tabelentajpejo("Teksto", 'teksto', $_REQUEST['teksto'], '70', '10');
echo "</table>";
if ($_REQUEST['id']) {
    tenukasxe('id', $_REQUEST['id']);
/**
 *
 */
function kreu_aux_sxangxu()
{
    if (is_numeric($_REQUEST['ID'])) {
        $mangxo = new Mangxtempo($_REQUEST['ID']);
    } else {
        $mangxo = new Mangxtempo();
    }
    $mangxo->kopiu();
    // TODO: kontroloj
    switch ($_REQUEST['sendu']) {
        case 'sxangxu':
            $mangxo->skribu();
            eoecho("<p>S^ang^is mang^on #" . $mangxo->datoj['ID'] . "</p>\n");
            break;
        case 'kreu':
            $mangxo->skribu_kreante();
            eoecho("<p>Kreis mang^on #" . $mangxo->datoj['ID'] . "</p>\n");
            break;
    }
    return $mangxo;
}
echo "partopreno de:\n";
echo "<select name=\"de\" size=1>\n";
// TODO: Geht kürzer, oder als Fkt ==> später mal.
$dateloop = $renkontigxo->datoj[de];
do {
    echo "<option";
    if ($de == $dateloop) {
        echo " selected ";
    }
    echo ">{$dateloop}\n";
    $dateloop = sekvandaton($dateloop);
} while ($dateloop != $renkontigxo->datoj[gxis]);
?>
  </select>
   <?php 
eoecho("g^is:");
?>
   <select name="gxis" size="1">
   <?php 
$dateloop = $renkontigxo->datoj[de];
do {
    $dateloop = sekvandaton($dateloop);
    echo "<option";
    if ($gxis == $dateloop or !$gxis and $dateloop == $renkontigxo->datoj[gxis]) {
        echo " selected ";
    }
    echo ">{$dateloop}\n";
} while ($dateloop != $renkontigxo->datoj[gxis]);
echo "</select> <BR>\n";
entajpbokso("", "invitilo", $invitilo[0], "J", "JES", "bezonas invitilon");
// TODO: ripari "dulita"
/**
 * Montras HTML-elektilon (<select>-elementon) de partoprenantoj
 * Gxi montras personan nomon, familian nomon kaj la mallongigo
 * de renkontigxo, kaj kiam oni elektis ion, gxi sendas la
 * identifikilon ("ID").
 *
 * $sql - la SQL-demando. La rezulto enhavu almenaux "ID", "nomo", "personanomo"
 *         kaj "renkNumero" kiel kampoj.
 *         Ekzempla SQL-demando por cxiuj partoprenantoj:
 *
 *  		$sql = datumbazdemando(array("pp.ID", "pp.nomo", "personanomo",
 *  									 "max(renkontigxoID) as renkNumero" ),
 *  							   array("partoprenantoj" => "pp",
 *  									 "partoprenoj" => "pn" ),
 *  							   "pn.partoprenantoID = pp.ID",
 *  							   "",
 *  							   array("group" => "pp.ID",
 *  									 "order" => "personanomo, nomo")
 *  							   );
 * $nomo - la valoro de la "name"-atributo de la <select>-elemento.
 *         La defauxlta valoro estas "partoprenantoidento".
 *
 */
function partoprenanto_elektilo($sql, $grandeco = '10', $nomo = "partoprenantoidento", $kun_identifikilo = FALSE)
{
    if (substr($sql, 0, 6) != "SELECT") {
        darf_nicht_sein();
        return false;
    }
    $rezulto = sql_faru($sql);
    $mallongigoj = array();
    echo "<select size='{$grandeco}' name='" . $nomo . "'>\n";
    while ($row = mysql_fetch_array($rezulto, MYSQL_BOTH)) {
        $mallongigo = $mallongigoj[$row["renkNumero"]];
        // Ni sercxas por cxiu renkontigxo maksimume unu foje la
        // mallongigon
        if (empty($mallongigo)) {
            $rez = mysql_fetch_assoc(sql_faru(datumbazdemando("mallongigo", "renkontigxo", "ID = '" . $row["renkNumero"] . "'", "", array("limit" => "1"))));
            $mallongigo = $rez["mallongigo"];
            $mallongigoj[$row["renkNumero"]] = $mallongigo;
        }
        echo "<option";
        eoecho(" value = \"" . $row["ID"] . "\">" . $row['personanomo'] . ' ' . $row['nomo']);
        if ($mallongigo) {
            eoecho(" (" . $mallongigo . ")");
        }
        if ($kun_identifikilo) {
            echo " (#" . $row["ID"] . ")";
        }
        echo "</option>\n";
    }
    echo "</select>\n";
}