<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>Sternwarte Welzheim</title>

    <!--[if IE 5]>
    <link href="css/ie5.css" rel="stylesheet" type="text/css"/>
    <![endif]-->
    <!--[if IE]>
    <style type="text/css">
        <link href="css/ie.css" rel="stylesheet"  type="text/css"/>
    </style>
    <![endif]-->

    <link href="css/jquery-ui.min.css" rel="stylesheet" type="text/css"/>
    <link href="css/sternwarte1.css" rel="stylesheet" type="text/css"/>

    <script src="javascript/jquery-1.11.0.min.js"></script>
    <script src="javascript/jquery-ui-1.10.0.custom.min.js"></script>
    <script src="javascript/sternwarte.js"></script>

</head>

<body class="thrColFixHdr">
<div id="container">
    <?php include 'header.php'; ?>
    <?php include 'navi.php'; ?>

    <div id="sidebar2">
        <?php include 'fdatum.php'; ?>
        <?php include 'himmelerg.php'; ?>
    </div>
    <div id="datenschutz"></div>

    <?php
    include 'phpmailer/dosendmail.php';

    ?>

    <?php
    // Aus der DB aus der Table 'fdatum' den Eintrag für $fid holen
    // und als Datum/Zeit-String übergeben
    // Parameter:
    // $fid -> id des Führungsdatums in der Datenbank-Tabelle
    // Return: Datum/zeit-String
    function holDate($fid) {
        global $db;
        $sql_sel = "SELECT uhrzeit FROM sofizeit where id = '$fid'";
        $result = mysqli_query($db, $sql_sel) or die(mysqli_error($db));
        $data = mysqli_fetch_assoc($result);
        $ret = substr($data['uhrzeit'],0,5);
        return $ret;
    }

    // für die SoFi die Zeitslots mit der jeweiligen Anzahl der Besucher aus der DB hole
    // Parameter -
    // Return: Array mit den Daten
    function getNextFuehrungen() {
        global $db;
        $sql_sel = "SELECT *  FROM  sofizeit order by uhrzeit ASC";
        $result = mysqli_query($db, $sql_sel) or die(mysqli_error($db));
        while ($row = mysqli_fetch_assoc($result)) {
            foreach ($row as $key => $value) {
                $entry[$key] = $value;
            }
            $erg[] = $entry;
        }
        return $erg;
    }

    // 'select'-Tag für die Führungen bauen
    // Paramter:
    //      $fuehrungen -> Array mit den kommenden Führungen
    //      $maxP   ->  max. zugelassen Anzahl Besucher
    //      $selected   ->
    // Return: String mit dem HTML-Code
    function bauNextFuehrungen($fuehrungen, $maxP, $selected) {
        $r = "<label for='ftermin' class='labeltext'>" .
            "<strong>Führungszeit</strong></label>" .
            "<select  name='ftermin' id='ftermin'>";
        foreach ($fuehrungen as $f) {
            $count = $f['besucher'];
            $r .= "<option value='" . $f['id'] . "'";
            if($count >= $maxP) {
                $r .= "disabled";
            }
            if($selected && ($f['id'] == $selected)) {
                $r .= ' selected="selected" ';
            }
            $r .= ">" . substr($f['uhrzeit'],0,5);
            $r .= " &nbsp;&nbsp;&nbsp;Frei: ";
            $r .=  $maxP-$count;
            $r .= "</option>";
        }
        $r .= "</select>";
        return $r;
    }

    // Zählen, wieviele Personen zu einem Führungstermin angemeldet sind
    // Parameter:
    // $fid -> id des Führungsdatum
    // Return: Anzahl der Personen
    function getCountsPerDate($fdate) {
        global $db;
        $sql_stmt = "SELECT besucher FROM sofizeit WHERE id='$fdate'";
        $result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
        $data = mysqli_fetch_assoc($result);
        return $data['besucher'];
    }

    // prüfen, og der User schon eine Buchung gemacht hat
    // Geprüft wird die Email-Adresse.  Es werden nur Buchungen in
    // Zukunft geprüft.
    function isDoppelBuchung($email) {
        global $db;
        $ret = [];
        $ret['doppelt'] = false;
        $now = date('Ymd');
        $sql_stmt = "SELECT * FROM anmeldungen WHERE email = '$email' AND fdatum >= $now";
        $result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
        $data = mysqli_fetch_assoc($result);
        return $data;
    }

    // die kompletten Daten eines Teilnehmers anhand der ID ais der DB holen

    ?>


    <div id="mainContent">
        <?
        // Hier werden alle notwendigen Variablen eingesammelt ------------------------
        if (isset($_POST['submit'])) {
            $stern_name = $_REQUEST['name'];
            $stern_vorname = $_REQUEST['vorname'];
            $stern_strasse = $_REQUEST['strasse'];
            $stern_ort = $_REQUEST['ort'];
            $stern_plz = $_REQUEST['plz'];
            $stern_tel = $_REQUEST['tel'];
            $stern_mail = $_REQUEST['mail'];
            $stern_teil = $_REQUEST['teil'];
            $stern_zeit =  holDate($_REQUEST['ftermin']);
            $stern_fdlink = $_REQUEST['ftermin'];
            $stern_submit = $_REQUEST['submit'];
            $stern_actionstern = $_REQUEST['stern_actionstern'];
            $stern_remarks = $_REQUEST['remarks'];
        } else {
            $stern_name = '';
            $stern_vorname = '';
            $stern_strasse = '';
            $stern_ort = '';
            $stern_plz = '';
            $stern_tel = '';
            $stern_mail = '';
            $stern_teil = '';
            $stern_zeit = '';
            $stern_submit = '';
            $stern_fdlink = '';
            $stern_actionstern = '';
            $stern_remarks = '';
        }
        // Hier werden default Werte gesetzt ------------------------
        $stern_error_msg = '';
        $stern_meldung = '';
        $stern_errors = 0;
        $andererTermin = "bitte wählen Sie einen anderen Termin";
        // ----------------------------------------------------------

        switch ($stern_actionstern) {
            case 'senden':
                // Hier wir geprüft, ob alle Felder ausgefüllt sind ------------------------
                if (trim($stern_name) == '') {
                    $stern_error_msg .= 'Bitte geben Sie Ihren Namen ein.<br />';
                    $stern_errors++;
                }
//                if (trim($stern_strasse) == '') {
//                    $stern_error_msg .= 'Bitte geben Sie eine Straße ein.<br />';
//                    $stern_errors ++;
//                }
//
//                if (trim($stern_plz) == '') {
//                    $stern_error_msg .= 'Bitte geben Sie eine Postleitzahl ein.<br />';
//                    $stern_errors ++;
//                }
//                if (! preg_match("/^[0-9]{5}$/", $stern_plz)) {
//                    $stern_error_msg .= 'Bitte geben Sie bei der Postleitzahl mindestens fünf Ziffern und keine Buchstaben ein.<br />';
//                    $stern_errors ++;
//                }
//                if (trim($stern_ort) == '') {
//                    $stern_error_msg .= 'Bitte geben Sie einen Ort ein.<br />';
//                    $stern_errors ++;
//                }
                if (!preg_match("/^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}/",
                    strtolower($stern_mail))) {
                    $stern_error_msg .= 'Bitte geben Sie eine gültige E-Mail-Adresse ein.<br />';
                    $stern_errors++;
                }
                $belegt = getCountsPerDate($stern_fdlink);
                $rest = $maxBesucher-$belegt;
                if((trim($stern_teil) + $belegt) > $maxBesucher) {
                    if ($rest <= 0) {
                        $stern_error_msg .= "Die Führung ist ausgebucht, $andererTermin<br />";
                    } else {
                        $stern_error_msg .= "Die Führung ist schon mit $belegt Personen belegt, es ";
                        if ($rest == 1) {
                            $stern_error_msg .= "kann nur noch 1 Person ";
                        } else {
                            $stern_error_msg .= "können höchstens noch $rest Personen ";
                        }
                        $stern_error_msg .= "angemeldet werden.<br />";
                    }
                    $stern_errors++;
                }

                $teilnehmer = isDoppelBuchung($stern_mail);
                if($teilnehmer != null) {
                    $stern_error_msg = "Dies ist eine Doppelbuchung. Sie wird <strong>nicht</strong> gespeichert.<br /><br />
                    Wenn Sie Ihre ursprüngliche Buchung ändern oder stornieren wollen, so senden Sie bitte eine Email an <a href='mailto:anmeldung@sternwarte.de'>anmeldung@sternwarte.de</a><br />
                    <p><a class='button' href='/index.php'>Abbruch</a></p>";
                    $stern_errors++;
                }

                $nun = new DateTime("now");
                $oct24 = new DateTime("2022-10-24");
                if( $nun >= $oct24) {
                    $stern_error_msg .= "Die Anmeldung muss <strong>spätestens</strong> bis zum 24.10.2022 erfolgen.";
                    $stern_errors++;
                }

                if ($stern_errors == 0) {
                    $sql_stmt = "INSERT INTO sofibesucher (name, vorname, strasse, plz, stadt, telefon, email, anzahl, fid, remarks, angemeldet)" .
                        " values('$stern_name', '$stern_vorname', '$stern_strasse', '$stern_plz', '$stern_ort', '$stern_tel'," .
                        "'$stern_mail', '$stern_teil', '$stern_fdlink', '$stern_remarks', CURDATE())";
                    $ins = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
                    $sql_stmt = "UPDATE sofizeit SET besucher = besucher + '$stern_teil' WHERE id = '$stern_fdlink'";
                    $ins = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));

                    $person = $stern_teil == 1 ? "Person" : "Personen";
                    $body = "\r\nName, Vorname: $stern_name, $stern_vorname \r\n" .
                        "Strasse: $stern_strasse \r\n" .
                        "Ort: $stern_plz $stern_ort \r\n" .
                        "Telefon: $stern_tel \r\n" .
                        "E-mail: $stern_mail \r\n" .
                        "Gewünschter Termin: $stern_zeit \r\n" .
                        "Personen: $stern_teil \r\n" .
                        "Bemerkungen: $stern_remarks \r\n";
                    $bodya_txt = "Sehr geehrte Dame, sehr geehrter Herr, \r\n\r\n" .
                        "hiermit bestätigen wir Ihre Anmeldung zur Sonnenfinsternis-Führung am 25. Oktober 2022 " .
                        "auf der Sternwarte Welzheim für\r\n\r\n" .
                        "$stern_vorname $stern_name um $stern_zeit Uhr " .
                        "für $stern_teil $person." .
                        "\r\n\r\n" .
                        "Die Führung findet NUR bei klarem Himmel statt. Falls der Himmel bedeckt ist " .
                        "und die Führung ausfällt, erhalten Sie bis spätestens eine Stunde vor Beginn der Finsternis " .
                        "eine Email.\r\n\r\n" .
                        "Allen Teilnehmern/-innen wird dringend empfohlen, eine FFP2-Maske, die Mund und Nase " .
                        "bedeckt, zu tragen.\r\n\r\n" .
                        "Sollten Sie Fragen haben oder die Anmeldung stornieren wollen, senden Sie bitte eine Email" .
                        "an anmeldung@sternwarte-welzheim.de \r\n\r\n" .
                        "Mit freundlichen Grüßen\r\n\r\n" .
                        "Beobachterteam der Sternwarte Welzheim\r\n\r\n" .
                        "www.sternwarte-welzheim.de";
                    $bodya_html = "<p>Sehr geehrte Dame, sehr geehrter Herr,</p>" .
                        "<p>hiermit bestätigen wir Ihre Anmeldung zur Sonnenfinsternis-Führung am 25. Oktober 2022 " .
                        "auf der Sternwarte Welzheim für</p>" .
                        "<p style='text-align: center;'>$stern_vorname $stern_name um $stern_zeit Uhr " .
                        "für $stern_teil $person.</p>" .
                        "<p>Die Führung findet <strong>nur</strong> bei klarem Himmel statt. Falls der Himmel bedeckt ist " .
                        "und die Führung ausfällt, erhalten Sie bis spätestens eine Stunde vor Beginn der Finsternis " .
                        "eine Email.<p>" .
                        "<p>Allen Teilnehmern/-innen wird dringend empfohlen, eine FFP2-Maske, die Mund und Nase " .
                        "bedeckt, zu tragen.</p>" .
                        "<p>Sollten Sie Fragen haben oder die Anmeldung stornieren wollen, senden Sie bitte eine Email" .
                        " an <a href='mailto:anmeldung@sternwarte-welzheim.de'>anmeldung@sternwarte-welzheim.de</a></p>" .
                        "<p>Mit freundlichen Grüßen<br />" .
                        "Beobachterteam der Sternwarte Welzheim<br />" .
                        "<a href='www.sternwarte-welzheim.de'>www.sternwarte-welzheim.de</a>";

                    // Mail an den Anfragenden
                    mb_internal_encoding('UTF-8');
                    $betreff = "Anmeldung zur Sonnenfinsternis-Führung auf der Sternwarte Welzheim";
                    $betreff = mb_encode_mimeheader($betreff, 'UTF-8', 'Q');
                    sendmail($betreff, $defaultabsender, $bodya_txt, [], ['anmeldung@sternwarte-welzheim.de'], [$stern_mail], $bodya_html);

                    // Mail an einige BEOs und an die Liste
                    $beoliste = array(
                        //"andrea.ess@t-online.de",
                        //"sonderfuehrung@sternwarte-welzheim.de",
                        //"martin.gertz@gmx.de",
                        // "schittenhelm.klaus@gmx.de",
                        // "planetarium@stuttgart.de",
                        //"info@planetarium-stuttgart.de",
                        //"HUK@observatory-stuttgart.de",
                        "anmeldung@sternwarte-welzheim.de",
                    );
                    $betreffBeo = "Anmeldung zur SoFi-Führung um $stern_zeit";
                    $betreffBeo = mb_encode_mimeheader($betreffBeo, 'UTF-8', 'Q');
                    sendmail($betreffBeo, $defaultabsender, $body, $beoliste, [], ["rexfue@gmail.com"]);

                    $stern_meldung = "<p>Vielen Dank für Ihre Anmeldung. <br /><br />
                        Wir freuen uns über Ihren Besuch auf der Sternwarte Welzheim zur Sonnenfinsternis <br /> 
                        <div style='text-align:center;'>" . "am 25. Oktober 2022 um $stern_zeit" .
                            " Uhr mit $stern_teil $person.
                        </div> <br />
                        Wir haben Ihnen die Anmelde-Bestätigung per Email zugesandt (bitte sehen Sie ggf. auch in Ihrem Spam-Ordner nach).</p>
                        <p><a class='button' href='/index.php'>Zurück</a></p>";
                    // Antwortseite
                    ?>
                    <?PHP echo $stern_meldung;
                    ?>
                    <?PHP
                    // Ende Antwortseite
                    break;
                } // Ende if ($errors == 0)
                else {
                    // Layout der Fehlermeldung
                    $stern_error_msg = '<div id="fehler">' . $stern_error_msg . '</div>';
                }
            // Wenn ein Fehler aufgetreten ist ($errors != 0), folgt jetzt der default Teil
            // d.h. das Eingabeformular wird nochmals angezeigt mit einer Fehlermeldung.
            // ----------------------------------------------------------------------------
            default:
                ?>
                <div id="sofitxt">
                    <h1>Anmeldung zur partiellen Sonnenfinsternis am 25. Oktober</h1>
                    <p>Diese partielle Sonnenfinsternis dauert in Welzheim von 11:13 Uhr bis 13:11 Uhr.
                        Zur Beobachtung führen wir Zeitscheiben ein, für die Sie sich jeweils anmelden können.
                        Jede Zeitscheibe hat eine Dauer von 30min, in dieser Zeit können Sie einen Blick durch das Fernrohr werfen. <br />
                        Außerhalb Ihrer gebuchten Zeitscheibe können Sie selbstverständlich vor der Sternwarte
                        die Finsternis weiter beobachten.
                    </p>
                    <p>
                        <strong>ACHTUNG: <br />Niemals direkt und ungeschützt in die Sonne sehen! Schwere Augenschäden bis
                            zur vollkommenen Erblindung drohen! </strong>Schon gar nicht ein Fernglas oder Teleskop auf die Sonne richten,
                            wenn es nicht über spezielle Filter oder entsprechende Sonnenbeobachtungseinrichtungen verfügt. Sonnenbrillen,
                            berußte Gläser, geschwärzte Filme, CDs, Solarienbrillen, Verpackungsfolien, Neutral- oder Polarisationsfilter
                            bieten keinen ausreichenden Schutz. Im Fachhandel gibt es spezielle Sonnensichtbrillen (auch „Sofi-Brillen“ genannt)
                            zu beziehen, die nur zwei bis drei Euro kosten.
                    </p>
                </div>
                <p>
                    Wegen der Corona-Pandemie dürfen nur angemeldeten Personen an einer Führung in der
                    Sternwarte Welzheim teilnehmen. Bitte geben Sie unten Ihre Kontaktdaten an.
                    Nach Maßgabe der aktuellen Corona-Verordnung werden Ihre Daten vier Wochen gespeichert
                    und anschließend gelöscht.
                </p>
                <p>
                    An einer Führung dürfen nur maximal <?php echo $maxBesucher;?> Personen teilnehmen.
                    Sollte die von Ihnen ausgewählte Führung bereits ausgebucht sein, wählen Sie bitte
                    einen anderen Termin.
                </p>
                <p>
                    Wenn Sie alle Felder ausgefüllt und abgeschickt haben (mit dem "Anmeldung senden"-Knopf),
                    erhalten Sie eine Anmeldebestätigung per e-mail. 

                    <div style="text-align:center;"><strong>Ohne die mitgebrachte Anmeldebestätigung erfolgt ausnahmslos
                        k e i n   Einlass.</strong>
                    </div>
                </p>
                <p>
                    Allen Teilnehmern/-innen wird dringend empfohlen, eine
                    FFP2-Maske, die Mund <strong>und</strong> Nase bedeckt, zu tragen.
                </p>
                <hr/>
                <p>
                    Bitte beachten Sie, dass der Weg zur Sternwarte Welzheim <strong>mit
                        Kraftfahrzeugen nicht befahren werden darf</strong>. Sie können
                    Ihre Fahrzeuge auf dem Parkplatz der Sternwarte abstellen. Von hier
                    führt ein 430 m langer Fußweg zur Sternwarte.
                </p>
                <p>Die Fernrohre in den Beobachtungskuppeln sind nur über Treppen zu
                    erreichen. Es besteht leider keine Möglichkeit, Rollstühle in die
                    Kuppeln mitzunehmen. Für Kleinkinder sind Sternführungen nicht
                    geeignet.</p>
                <p>Betrieb und Arbeit auf der Sternwarte erfolgen ehrenamtlich.
                    Unterhalt und Aktivit&auml;ten auf der Sternwarte sind nur durch
                    Ihre Unterstützung m&ouml;glich. Wir bitten daher um eine ensprechende Spende.
                </p>
                <p>
                    <?PHP echo $stern_error_msg ?>
                </p>
                <strong>Anmeldung:</strong>
                <span class="textklein">(Alle Felder mit '*' müssen ausgefüllt werden)</span><br />
                <br />

                <div id="formular" class="fltrt">
                    <form action="sofianmeldung.php#form" method="post">

                        <?
                            echo bauNextFuehrungen(getNextFuehrungen(), $maxBesucher, $stern_fdlink);
                        ?>
                        <br />
                        <div id="unterfuedat" class="textklein">Bitte beachten Sie, dass eine
					        Anmeldung muss bis spätestens 24.Oktober 2022 erfolgt sein muss!<br/>
                            Schon belegte Termine können nicht ausgewählt werden (sie werden grau dargestellt).
                        </div>
                        <br /><br />

                        <label for="name" class="labeltext">Zuname *</label>
                        <input
                            type="text" maxlength="50" name="name"
                            value="<? echo $stern_name; ?>" id="name" class="textfeld200"/> <br/>

                        <label for="vorname" class="labeltext">Vorname</label>
                        <input
                            type="text" maxlength="50" name="vorname"
                            value="<? echo $stern_vorname; ?>" id="vorname" class="textfeld200"/><br/>
                        <br/>

                        <label for="strasse" class="labeltext"> Straße / Haus-Nr.</label>
                        <input type="text" maxlength="60" name="strasse"
                               value="<? echo $stern_strasse; ?>" id="strasse" class="textfeld200"/><br/>

                        <label for="ort" class="labeltext">PLZ / Ort</label>
                        <input
                            type="text" maxlength="5" name="plz" id="plz"
                            value="<?php echo $stern_plz; ?>" class="textfeld20"/>
                        <input
                            type="text" maxlength="60" name="ort" id="ort"
                            value="<?php echo $stern_ort; ?>" class="textfeld100"/> <br/>

                        <label
                            for="tel" class="labeltext"> Telefonnummer *</label>
                        <input
                            type="text" maxlength="50" name="tel" value="<? echo $stern_tel; ?>"
                            id="tel" class="textfeld200"/> <br/>
                        <br />

                        <label for="mail" class="labeltext">E-Mail-Adresse *</label>
                        <input
                            type="text" maxlength="120" name="mail"
                            value="<? echo $stern_mail; ?>" id="mail" class="textfeld200"/><br />
                        <br />

                        <label for="teil" class="labeltext">Anzahl Personen *<br/> <span
                                class="textklein">(max.  <? echo $maxBesucher ?>  Personen)</span></label>
                        <input type="number" step="1" min="1" max="<? echo $maxBesucher ?>" maxlength="120"
                               name="teil" value="<? echo $stern_teil == "" ? "1" : $stern_teil; ?>" id="teil" class="textfeld20"/> <br/>
                        <br />

                        <div id="bemerk">
                            <label for="remarks" class="labeltext">Bemerkungen</label>
                            <textarea name="remarks" id="remarks" rows="2" cols="40" class="textfeld200"></textarea><br/>
                            <br />
                        </div>

                        Die Führung findet nur bei <b>klarem</b> Wetter statt.<br/>
                        <p>
                        Sollten Sie eine Änderung oder Stornierung ihrer Anmeldung wünschen, senden Sie bitte eine E-mail an  <a href="mailto:anmeldung@sternwarte-welzheim.de">anmeldung@sternwarte-welzheim.de</a>.
                            Wenn Sie an dem gebuchten Termin verhindert sind, bitten wir Sie, rechtzeitig eine Abmeldung  zu senden.
                        </p>
                        <p>
                        <strong>Das Betreten der Sternwarte erfolgt auf eigene
                            Gefahr. Die Sternführung wird von ehrenamtlichen
                            Kräften durchgeführt. Bei Ausfall einer Führung kann kein Schadenersatz
                            geleistet werden.</strong>
                        </p>

                        <div  id="sendebutton">
                            <input type="hidden" name="stern_actionstern" value="senden">
                            <input type="submit" name="submit" value="Anmeldung senden" class="inputtext">
                        </div>
                            <button type="button" class="inputtext cancel" onclick="window.location.href='/index.php';">Abbruch</button>
                        <br /><br />
                        <p>
                            Hinweis zum Datenschutz: <a href="" id="dschu">Datenschutzerklärung</a>
                        </p>
                        <p class="lastchange">Letzte Änderungen: 2025-12-01 rxf</p>

                    </form>
                </div>
            <?
// ----------------------------------------------------------------------------
        } // Ende switch($page)
        ?>
        <!-- end #mainContent -->
    </div>
    <!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. -->
    <br class="clearfloat"/>

    <!-- end #container -->
</div>
</body>
</html>

