/**
 * Palauttaa havaintolomakkeen html-koodina.
 *
 * @param <type> $tallennuskommentti kertoo mikä laji tallennettiin viimeksi.
 * @param bool $onKopio auttaa siihen, että luotuun havaintoon osataan palata
 * sekä kopioinnin että tavallisen uuden luonnin yhteydessä.
 * @param Parametrit $parametriolio
 * @return <type>
 */
function nayta_havaintolomake(&$parametriolio)
{
    $ylaluokka_id_lj = $parametriolio->ylaluokka_id_lj;
    $id_hav = $parametriolio->id_hav;
    // Tarvitaan muokkauksessa!
    $lajiluokka_id_hav = $parametriolio->lajiluokka_id_hav;
    $paiva_hav = $parametriolio->paiva_hav;
    $kk_hav = $parametriolio->kk_hav;
    $vuosi_hav = $parametriolio->vuosi_hav;
    $paikka_hav = $parametriolio->paikka_hav;
    $kommentti_hav = $parametriolio->kommentti_hav;
    $kieli_kuv = $parametriolio->kieli_kuv;
    $uusi = $parametriolio->get_uusi_hav();
    $tietokantaolio = $parametriolio->get_tietokantaolio();
    // $tallennuskommentti kertoo mikä laji tallennettiin viimeksi.
    $tallennuskommentti = $parametriolio->get_tallennuspalaute();
    $onKopio = $parametriolio->get_on_kopio();
    $submitnappi = "";
    $poistunappi = "";
    $uusi_laji_nappi = "";
    // painike, josta saadaan näkyviin monta lajia kerralla:
    $maar_array = array(Maarite::type("submit"), Maarite::value(Bongauspainikkeet::$NAYTA_MONEN_HAVAINNON_VALINTA_VALUE), Maarite::title(Bongauspainikkeet::$NAYTA_MONEN_HAVAINNON_VALINTA_TITLE), Maarite::name(Bongaustoimintonimet::$havaintotoiminto));
    $monta_lajia_kerralla = Html::luo_input($maar_array);
    $type = "submit";
    $class = "rinnakkain";
    $id = "";
    $onclick = "";
    $name = Bongaustoimintonimet::$havaintotoiminto;
    $value = Bongauspainikkeet::$PERUMINEN_HAVAINTO_VALUE;
    $poistunappi = Html::luo_painike_ilman_formia($type, $class, $id, $name, $value, $onclick);
    $type = "submit";
    $class = "rinnakkain";
    $id = "";
    $onclick = "";
    $name = Bongaustoimintonimet::$lajiluokkatoiminto;
    $value = Bongauspainikkeet::$UUSI_LAJILUOKKA_VALUE;
    $uusi_laji_nappi = Html::luo_painike_ilman_formia($type, $class, $id, $name, $value, $onclick);
    if ($uusi) {
        $suurin_havaintoid = hae_suurin_id($tietokantaolio, "bhavainnot");
        // Luotavan id on todennäköisesti yhtä suurempi kuin äsken laskettu:
        $uuden_id = $suurin_havaintoid + 1;
        // Otetaan arvo ylös:
        $parametriolio->set_naytettavan_id_hav($uuden_id);
        $url_jatke_seur = "?id_hav=" . $uuden_id . "#havainto" . $uuden_id;
        if ($suurin_havaintoid == -1) {
            $url_jatke_seur = "";
        }
        $url_id = $url_jatke_seur;
        //
        $havaintolomakeohje = Bongaustekstit::$havaintolomake_uusi_ohje;
        // Painike
        $type = "submit";
        $class = "rinnakkain";
        $id = "";
        $onclick = "";
        $name = Bongaustoimintonimet::$havaintotoiminto;
        $value = Bongauspainikkeet::$TALLENNA_UUSI_HAVAINTO_VALUE;
        $submitnappi = Html::luo_painike_ilman_formia($type, $class, $id, $name, $value, $onclick);
    } else {
        $parametriolio->set_naytettavan_id_hav($id_hav);
        $url_jatke_nyk = "#havainto" . $id_hav;
        $url_id = "?id_hav=" . $id_hav . $url_jatke_nyk;
        // Näin löytyy päivitettävä havainto!
        $havaintolomakeohje = Bongaustekstit::$havaintolomakemuokkaus_ohje;
        // Painike
        $type = "submit";
        $class = "rinnakkain";
        $id = "";
        $onclick = "";
        $name = Bongaustoimintonimet::$havaintotoiminto;
        $value = Bongauspainikkeet::$TALLENNA_MUOKKAUS_HAVAINTO_VALUE;
        $submitnappi = Html::luo_painike_ilman_formia($type, $class, $id, $name, $value, $onclick);
    }
    // Lajivalikko:
    // Jos yläluokkaa ei ola määritelty (=-1), etsitään sen luokan id, jonka
    // suomenkielisen kuvauksen nimi on "Linnut":
    if ($ylaluokka_id_lj == -1) {
        $taulunimi = "bkuvaukset";
        $sarakenimi = "nimi";
        $hakuarvo = "Linnut";
        $kuvausolio = $tietokantaolio->hae_eka_osuma_oliona($taulunimi, $sarakenimi, $hakuarvo);
        if ($kuvausolio != Bongausasetuksia::$tietokantahaku_ei_loytynyt) {
            $ylaluokka_id_lj = $kuvausolio->lajiluokka_id;
        }
    }
    $otsikko = "";
    $lajivalikko = nayta_lajivalikko($lajiluokka_id_hav, $tietokantaolio, $ylaluokka_id_lj, $kieli_kuv, $otsikko);
    /*************************************************************************/
    $maavalikkohtml = "";
    try {
        $arvot = Maat::hae_maa_arvot();
        $nimet = Maat::hae_maakuvaukset();
        $name_arvo = Maat::$tietokannan_sarakenimi;
        $oletusvalinta_arvo = $parametriolio->maa_hav;
        $otsikko = Maat::$valikko_otsikko;
        $onchange_metodinimi = "kirjoita_maa";
        $onchange_metodiparametrit_array = array();
        $maavalikkohtml .= Html::luo_pudotusvalikko_onChange($arvot, $nimet, $name_arvo, $oletusvalinta_arvo, $otsikko, $onchange_metodinimi, $onchange_metodiparametrit_array);
    } catch (Exception $poikkeus) {
        $maavalikkohtml = "Virhe maavalikossa! (" . $poikkeus->getMessage() . ")";
    }
    /*************************************************************************/
    $naytettava_valinta = $parametriolio->varmuus_hav;
    $varmuusvalikko = Varmuus::muodosta_valikkohtml(false, $naytettava_valinta);
    // kommentin muotoilu:
    if (!empty($tallennuskommentti)) {
        $tallennuskommentti = $tallennuskommentti . "<br/>";
    }
    $mj = "<form align='center' method='post'\n                    action='index.php" . $url_id . "'>" . "<table summary='uudet_tiedot' id=" . Bongausasetuksia::$havaintolomakkeen_id . ">" . "<tr><td colspan=2><b><span id=" . Bongausasetuksia::$havaintolomake_tallennustiedote_id . ">\n            " . $tallennuskommentti . "</span>" . $havaintolomakeohje . "</b></td></tr>" . "<tr>\n        <td align='left' colspan=2><button id='b1' type='button'\n        onclick='nayta_ed_vko()'>\n            " . Bongauspainikkeet::$ed_vko . "</button>\n            <button id='b2'type='button' onclick='nayta_ed()'>\n            " . Bongauspainikkeet::$ed_paiva . "</button>\n            <button id='b3'type='button'\n            onclick='nayta_seur()'>\n            " . Bongauspainikkeet::$seur_paiva . "\n            </button>\n            <button id='b4' type='button' onclick='nayta_seur_vko()'>\n            " . Bongauspainikkeet::$seur_vko . "</button></td>" . "<tr>" . "<td align='left'>*" . Bongaustekstit::$paiva . ": </td><td align='left'>\n        <input id='paiva' type='text'\n        name='paiva_hav' value='{$paiva_hav}' size='4' maxlength='2'\n        onchange='nayta_pvm()' onkeyup='nayta_pvm()' />\n        *" . Bongaustekstit::$kk . ": <input id='kk' type='text' " . "name='kk_hav' value='{$kk_hav}' size='4' maxlength='2'\n        onchange='nayta_pvm()' onkeyup='nayta_pvm()'/>\n        *" . Bongaustekstit::$vuosi . ": <input id='vuosi' type='text' " . "name='vuosi_hav' value='{$vuosi_hav}' size='4' maxlength='4'\n        onchange='nayta_pvm()' onkeyup='nayta_pvm()'/>\n        <span id='pvm_naytto'></span></td>" . "</tr>" . "<tr>" . Html::luo_tablerivi(Html::luo_tablesolu("", "") . Html::luo_tablesolu($monta_lajia_kerralla, array(Maarite::align("left"))), "") . "<td align='left'>*" . Bongaustekstit::$laji . ": </td><td align='left'\n            id= " . Bongausasetuksia::$havaintolomake_lajivalintarivi_id . ">\n        <span id = " . Bongausasetuksia::$havaintolomake_lajivalikko_id . ">" . $lajivalikko . "</span><span id = " . Bongausasetuksia::$havaintolomake_lajivalikkopainike_id . ">" . $uusi_laji_nappi . "</span>" . "<span id = " . Bongausasetuksia::$havaintolomake_lajivalintaohje_id . ">(" . Bongaustekstit::$havaintolomake_laji_puuttuu_ohje . ")</span></td>\n        </tr>" . "<tr><td align='left'>*" . Bongaustekstit::$paikka . ": </td><td align='left'>\n        <input type='text' size='43' name='paikka_hav' value='{$paikka_hav}'/>\n        " . $maavalikkohtml . "</td></tr>" . "<tr><td>" . Varmuus::$valikko_otsikko . ":</td><td align='left'>" . $varmuusvalikko . "</td></tr>" . "<tr><td align='left'>" . Bongaustekstit::$kommentti . ":</td>\n        <td align='left'><textarea cols='50'\n        rows='6'name='kommentti_hav'>{$kommentti_hav}" . "</textarea></td></tr>" . "<tr><td></td><td align='left'>" . $submitnappi . $poistunappi . "</td></tr>" . "</table>" . "</form>";
    // Palautetaan lomake ja näytetään js-päivämäärä;.
    return $mj . "<script type='text/javascript'>\n                            nayta_pvm();\n                            </script>";
}