<?php
session_start();
include_once('db_connection.php');

// Sjekk om brukeren er logget inn
if (!isset($_SESSION['innloggetBrukerID'])) {
    header('Location: login.php'); // Omdiriger til innloggingssiden
    exit;
}

$innloggetBrukerID = $_SESSION['innloggetBrukerID'];

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $fornavn     = $conn->real_escape_string($_POST['fornavn']);
    $etternavn   = $conn->real_escape_string($_POST['etternavn']);
    $fodselsdato = $conn->real_escape_string($_POST['fodselsdato']);
    $kjonn       = $conn->real_escape_string($_POST['kjonn']);
    $ovelse      = $conn->real_escape_string($_POST['ovelse']);

    if ($ovelse == "Lysløypa 2.3 km") {
        $pulje  = "Lysløypa";
    } else if ($ovelse == "Skogsløypa 350 m") {
        $pulje = "Skogsløypa";
    } else {
        $pulje = "";
    }

    $klasse = $conn->real_escape_string($_POST['klasse']);
    $klubb  = $conn->real_escape_string($_POST['klubb']);

    // Denne vil nå alltid inneholde ALLE arrangementer (takket være hidden input for stengte)
    $arrangementer = $_POST['arrangementer'] ?? [];

    // Sjekk om deltakeren allerede eksisterer
    $sql_sjekk = "SELECT COUNT(*) AS antall FROM deltakere 
                  WHERE fornavn = '$fornavn' AND etternavn = '$etternavn'";
    $result_sjekk = $conn->query($sql_sjekk);
    $rad_sjekk = $result_sjekk ? $result_sjekk->fetch_assoc() : null;

    if ($rad_sjekk && (int)$rad_sjekk['antall'] > 0) {
        $feilmelding = "Deltakeren med navn $fornavn $etternavn er allerede registrert.";
    } else {
        // Generer en unik deltaker-ID for den nye deltakeren
        $deltaker_id = genererUnikDeltakerID(20);

        foreach ($arrangementer as $arrangementId => $deltakelse) {
            $arrangementId = (int)$arrangementId;

            // Sjekk om arrangementet er aktivt
            $sql_arrangement_status = "SELECT aktiv FROM arrangementer WHERE id = $arrangementId";
            $result_arrangement_status = $conn->query($sql_arrangement_status);

            $arrangementStatus = 0;
            if ($result_arrangement_status && $result_arrangement_status->num_rows > 0) {
                $row_arrangement_status = $result_arrangement_status->fetch_assoc();
                $arrangementStatus = (int)$row_arrangement_status['aktiv'];
            }

            // Hvis arrangementet er stengt -> sett automatisk Nei (0).
            // Hvis åpent -> bruk det brukeren valgte (0/1).
            if ($arrangementStatus == 0) {
                $deltakelse = 0;
            } else {
                $deltakelse = (int)$deltakelse;
                if ($deltakelse !== 0 && $deltakelse !== 1) {
                    $deltakelse = 0;
                }
            }

            // Legg til deltakeren
            $sql = "INSERT INTO deltakere 
                    (bruker_id, deltaker_id, fornavn, etternavn, fodselsdato, kjonn, ovelse, pulje, klasse, klubb, arrangement_id, deltakelse)
                    VALUES 
                    ('$innloggetBrukerID', '$deltaker_id', '$fornavn', '$etternavn', '$fodselsdato', '$kjonn', '$ovelse', '$pulje', '$klasse', '$klubb', '$arrangementId', '$deltakelse')";

            if ($conn->query($sql) !== TRUE) {
                $feilmelding = "Feil ved registrering: " . $conn->error;
                break;
            }
        }

        if (!isset($feilmelding)) {
            header('Location: index.php');
            exit;
        }
    }
}

function genererUnikDeltakerID($maksimalLengde) {
    $unikeID = uniqid();
    $deltaker_id = substr($unikeID, 0, $maksimalLengde);
    return $deltaker_id;
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>Deltakerregistrering</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
    <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div class="container mt-5" style="max-width: 400px;">
    <h4 class="mb-4">Deltaker registrering</h4>

    <?php if (isset($feilmelding)) { ?>
        <div class="alert alert-danger" role="alert">
            <?php echo $feilmelding; ?>
        </div>
    <?php } ?>

    <form action="deltaker_registrering.php" method="post">
        <div class="form-group">
            <label for="fornavn">Fornavn:</label>
            <input type="text" class="form-control" name="fornavn" required>
        </div>

        <div class="form-group">
            <label for="etternavn">Etternavn:</label>
            <input type="text" class="form-control" name="etternavn" required>
        </div>

        <div class="form-group">
            <label for="fodselsdato">Fødselsdato:</label>
            <input type="date" class="form-control" name="fodselsdato" required>
        </div>

        <div class="form-group">
            <label for="kjonn">Kjønn:</label>
            <select class="form-control" name="kjonn" required>
                <option value="">Velg kjønn</option>
                <option value="Mann">Mann</option>
                <option value="Kvinne">Kvinne</option>
            </select>
        </div>

        <div class="form-group" style="display: none;">
            <label for="pulje">Pulje:</label>
            <select class="form-control" name="pulje" id="pulje" required>
                <option value="Skogsløypa">Skogsløypa</option>
                <option value="Lysløypa">Lysløypa</option>
            </select>
        </div>

        <div class="form-group">
            <label for="ovelse">Øvelse:</label>
            <select class="form-control" name="ovelse" id="ovelse" required onchange="updateKlasseOptions()">
                <option value="Skogsløypa 350 m">Skogsløypa 350 m</option>
                <option value="Lysløypa 2.3 km">Lysløypa 2.3 km</option>
            </select>
        </div>

        <div class="form-group">
            <label for="klasse">Klasse:</label>
            <select class="form-control" name="klasse" id="klasse" required>
                <option value="Småtroll">Småtroll 2019-2024</option>
                <option value="2010">2010</option>
                <option value="2011">2011</option>
                <option value="2012">2012</option>
                <option value="2013">2013</option>
                <option value="2014">2014</option>
                <option value="2015">2015</option>
                <option value="2016">2016</option>
                <option value="2017">2017</option>
                <option value="2018">2018</option>
                <option value="2019">2019</option>
                <option value="Senior">Senior - 1900-2009</option>
            </select>
        </div>

        <script>
            function updateKlasseOptions() {
                var ovelseDropdown = document.getElementById("ovelse");
                var puljeDropdown = document.getElementById("pulje");
                var klasseDropdown = document.getElementById("klasse");

                if (ovelseDropdown.value === "Skogsløypa 350 m") {
                    puljeDropdown.value = "Skogsløypa";
                    puljeDropdown.style.display = "none";
                    klasseDropdown.innerHTML = '<option value="Småtroll">Småtroll 2019-2024</option>';
                } else if (ovelseDropdown.value === "Lysløypa 2.3 km") {
                    puljeDropdown.style.display = "block";
                    klasseDropdown.innerHTML = `
                        <option value="2010">2010</option>
                        <option value="2011">2011</option>
                        <option value="2012">2012</option>
                        <option value="2013">2013</option>
                        <option value="2014">2014</option>
                        <option value="2015">2015</option>
                        <option value="2016">2016</option>
                        <option value="2017">2017</option>
                        <option value="2018">2018</option>
                        <option value="2019">2019</option>
                        <option value="Senior">Senior - 1900-2009</option>
                    `;
                }
            }
            updateKlasseOptions();
        </script>

        <div class="form-group">
            <label for="klubb">Klubb:</label>
            <input type="text" class="form-control" name="klubb" required value="TIF">
        </div>

        <input type="hidden" name="bruker_id" value="<?php echo $innloggetBrukerID; ?>">

        <div class="form-group">
            <label for="arrangementer">Velg deltakelse:</label>
            <br>
            <?php
            $sql = "SELECT * FROM arrangementer";
            $result = $conn->query($sql);

            while ($row = $result->fetch_assoc()) {
                $arrangementId = $row['id'];
                $arrangementNavn = $row['navn'];
                $arrangementStatus = (int)$row['aktiv'];

                echo "<label for='arrangementer[$arrangementId]'>$arrangementNavn:</label>";

                // VIKTIG: disabled select blir ikke sendt i POST -> send 0 automatisk
                if ($arrangementStatus == 0) {
                    echo "<input type='hidden' name='arrangementer[$arrangementId]' value='0'>";
                }

                echo "<select class='form-control' name='arrangementer[$arrangementId]' " . ($arrangementStatus == 0 ? "disabled" : "") . ">";
                echo "  <option value='0' selected>Nei</option>";
                echo "  <option value='1'>Ja</option>";
                echo "</select>";

                if ($arrangementStatus == 0) {
                    echo "<small class='form-text text-muted'>Påmelding stengt – settes automatisk til Nei</small>";
                }

                echo "<br>";
            }
            ?>
        </div>

        <button type="submit" class="btn btn-primary">Registrer</button>
    </form>

    <br>
    <a href="index.php" class="btn btn-secondary">Tilbake til din side</a>
</div>

<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.2/dist/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
</body>
</html>
