<?php
/*
 * Copyright (C) 2021 Eichehome
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

error_reporting(E_ALL); //Debuging
require_once 'include/DBConnection.inc.php';
/**
 * Diese Funktion macht das nutzen der benötigten Klassen möglich
 */
function autoloader($classname)
{
    include 'class/' . $classname . '.php';
}
spl_autoload_register('autoloader');

$session = new Session();
$db = new Datenbank($dbname, $username, $password, $servername);

/*===============================*/
function convertName(string $name) {
    $suchmuster = array('/([A-Za-z]+)\.([A-Za-z]+)/');
    $ersetzungen = array('<span style="text-transform: capitalize;">\1 \2</span>');
    $convertedName = preg_replace($suchmuster, $ersetzungen, $name);
    return $convertedName;
}
function convertUmlauteFrom(string $text) {
    $suchmuster = array();
    $suchmuster[0] = '/ae/';
    $suchmuster[1] = '/ue/';
    $suchmuster[2] = '/oe/';

    $ersetzungen = array();
    $ersetzungen[2] = 'ä';
    $ersetzungen[1] = 'ü';
    $ersetzungen[0] = 'ö';

    $replacedtext = preg_replace($suchmuster, $ersetzungen, $text);
    return $replacedtext;
}
/*===============================*/

if (isset($_SESSION["name"])) {
    $nutzername = $_SESSION["name"];
    }
//Nutzereingaben auf validität prüfen
$check = filter_input(INPUT_POST, "check", FILTER_SANITIZE_STRING);

if (isset($_SESSION["login"]) && $session->get("login") == 1) {
    if (isset($_SESSION["status"]) && $session->get("status") == "ok") {
        $message = $session->get("message");
    }
} else {
    $session->set("status", "error");
    $session->set("message", "Nicht eingeloggt");
    $url = "index.php";
    header("Location: $url");
    echo '<script type="text/javascript">';
    echo 'window.location.href="'.$url.'";';
    echo '</script>';
    echo '<noscript>';
    echo '<meta http-equiv="refresh" content="0;url='.$url.'" />';
    echo '</noscript>'; exit;
}

$wahl = array();
for ($i = 0; $i < (count($_POST) - 1); $i++) { //-1 Wegen hidden-Feld
    $wahl[$i] = filter_input(INPUT_POST, "wahl" . $i);
}
if ($check) {
    if (count($wahl) == 3) {
        if ($db->hasAlredySelected($nutzername)) {
            $message = "";
            $session->set("status", "error");
            $session->set("message", "Schon eingetragen!");
            $url = "index.php";
            header("Location: $url");
            echo '<script type="text/javascript">';
            echo 'window.location.href="'.$url.'";';
            echo '</script>';
            echo '<noscript>';
            echo '<meta http-equiv="refresh" content="0;url='.$url.'" />';
            echo '</noscript>'; exit;
        } else {
            if ($db->insertSelection($nutzername, $wahl)){
                $session->set("status", "ok");
                $session->set("message", "Du bist jetzt eingetragen!<br>Du wirst in 3 Sekunden wietergeleitet.");
                $url = "check.php";
                header("Location: $url");
                echo '<script type="text/javascript">';
                echo 'window.location.href="'.$url.'";';
                echo '</script>';
                echo '<noscript>';
                echo '<meta http-equiv="refresh" content="0;url='.$url.'" />';
                echo '</noscript>'; exit;
            } else {
                $session->set("status", "error");
                $session->set("message", "Beim Eintragen ist etwas schief gelaufen, versuche es später nochmal oder wende dich an den Admin.");
                $url = "index.php";
                header("Location: $url");
                echo '<script type="text/javascript">';
                echo 'window.location.href="'.$url.'";';
                echo '</script>';
                echo '<noscript>';
                echo '<meta http-equiv="refresh" content="0;url='.$url.'" />';
                echo '</noscript>'; exit;
            }
        }
    } else {
        $message = "";
        $errorMessage = "Fehlerhafte Auswahl!";
    }
}

?>
<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Sportwahlen | Wahl</title>
    <link rel="stylesheet" href="assets/css/main.css">
</head>

<body>
    <!-- Ausgabe einer eventuellen Fehlermeldung -->
    <?php if (isset($errorMessage) && $errorMessage != ""): ?>
        <div class="modal">
            <div class="message error">
                <p><?php echo $errorMessage; ?></p>
            </div>
        </div>
    <?php endif;?>
    <!-- Ausgabe einer eventuellen Statusmeldung -->
    <?php if (isset($message) && $message != ""): ?>
        <div class="modal">
            <div class="message sucsses">
                <p><?php echo $message; ?></p>
            </div>
        </div>
    <?php endif;?>
    <?php
        $kurse = $db->selectKurse();
        echo '<form action="wahl.php" method="post">';
    ?>
    <p class="name"><?php echo 'Hallo, ' . convertName(convertUmlauteFrom($nutzername)) . ', bitte auswählen:'; ?></p>
    <?php
        echo '<table border="1"><tr><td></td>';
        for ($i = 0; $i < count($kurse); $i++) {
            echo "<td>" . convertUmlauteFrom($kurse[$i]["name"]) . "</td>";
        }

        for ($j = 0; $j < 3; $j++) {
            echo "<tr>";
            echo "<td>Wahl " . ($j + 1) . "</td>";
            for ($k = 0; $k < count($kurse); $k++) {
                echo "<td>";
                echo '<input type="radio" id="' . $j . '/' . $k . '" name="wahl' . $j . '" value="' . convertUmlauteFrom($kurse[$k]["name"]) . ';' . $kurse[$k]["stunde"] . '">';
                echo '<label for="' . $j . '/' . $k . '">' . $kurse[$k]["stunde"] . '</label>';
                echo "</td>";
            }
            echo "</tr>";
        }
        echo '<tr><td colspan="' . (count($kurse) + 1) . '"><input type="submit" value="Wählen"></td></tr></table>';
    ?>
    <input type="hidden" name="check" value="ja">
    <?php
        echo "</form>";
    ?>
    <noscript>
        <p>
            JavaScript wird für Annehmlichkeiten verwendet, um diese nutzen zu können, sollten Sie dies auch aktivieren.
        </p>
    </noscript>
    <script src="assets/js/main.js"></script>
</body>

</html>