<?php
include('db.php');

// Fonction pour nettoyer les noms de fichiers et répertoires
function nettoyerNomFichier($nom) {
    $nom = str_replace(' ', '_', $nom);
    $nom = preg_replace('/[^A-Za-z0-9_\-\.]/', '', $nom);
    return $nom;
}

$errorMessage = '';

$req_colleges = $bdd->query('SELECT * FROM colleges ORDER BY nom_college ASC');
if ($req_colleges) {
    $colleges = $req_colleges->fetchAll(PDO::FETCH_ASSOC);
} else {
    die('Erreur lors de la récupération des collèges.');
}

if (
    isset($_POST['Nom']) && isset($_POST['Prenom']) && isset($_POST['Classe']) && isset($_POST['College']) &&
    isset($_POST['Nom_Resp']) && isset($_POST['Prenom_Resp']) && isset($_POST['Mail_Resp']) && isset($_POST['Tel_Resp']) &&
    isset($_FILES['lettre_motivation']) && isset($_FILES['bulletins'])
) {
    $Nom = htmlspecialchars($_POST['Nom']);
    $Prenom = htmlspecialchars($_POST['Prenom']);
    $Classe = htmlspecialchars($_POST['Classe']);
    $College = htmlspecialchars($_POST['College']);
    $Immersion = isset($_POST['Immersion']) ? 1 : 0;
    $Nom_Resp = htmlspecialchars($_POST['Nom_Resp']);
    $Prenom_Resp = htmlspecialchars($_POST['Prenom_Resp']);
    $Mail_Resp = htmlspecialchars($_POST['Mail_Resp']);
    $Tel_Resp = htmlspecialchars($_POST['Tel_Resp']);

    // Nettoyage des noms pour le dossier
    $NomClean = nettoyerNomFichier($Nom);
    $PrenomClean = nettoyerNomFichier($Prenom);

    $uploadDir = 'uploads/' . $NomClean . '_' . $PrenomClean . '/';
    if (!is_dir($uploadDir)) {
        mkdir($uploadDir, 0777, true);
    }

    $lettreMotivation = $_FILES['lettre_motivation'];
    $bulletins = $_FILES['bulletins'];

    $allowedExtensions = array('pdf', 'docx');

    function isValidFile($file, $allowedExtensions) {
        $fileExt = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION));
        return in_array($fileExt, $allowedExtensions);
    }

    if (!isValidFile($lettreMotivation, $allowedExtensions)) {
        $errorMessage = "⚠️ Erreur : La lettre de motivation doit être au format PDF ou DOCX !";
    } elseif (!isValidFile($bulletins, $allowedExtensions)) {
        $errorMessage = "⚠️ Erreur : Les bulletins doivent être au format PDF ou DOCX !";
    } else {
        // Nettoyage + timestamp pour éviter les doublons
        $nomLettre = time() . '_' . nettoyerNomFichier($lettreMotivation['name']);
        $nomBulletins = time() . '_' . nettoyerNomFichier($bulletins['name']);

        $lettreMotivationPath = $uploadDir . $nomLettre;
        $bulletinsPath = $uploadDir . $nomBulletins;

        if (
            move_uploaded_file($lettreMotivation['tmp_name'], $lettreMotivationPath) &&
            move_uploaded_file($bulletins['tmp_name'], $bulletinsPath)
        ) {
            $req = $bdd->prepare('INSERT INTO candidatures (
                nom, prenom, classe, college, immersion, nom_resp, prenom_resp,
                mail_resp, tel_resp, lettre_motivation, bulletins, date_remplissage
            ) VALUES (
                :nom, :prenom, :classe, :college, :immersion, :nom_resp, :prenom_resp,
                :mail_resp, :tel_resp, :lettre_motivation, :bulletins, NOW()
            )');

            $req->execute(array(
                'nom' => $Nom,
                'prenom' => $Prenom,
                'classe' => $Classe,
                'college' => $College,
                'immersion' => $Immersion,
                'nom_resp' => $Nom_Resp,
                'prenom_resp' => $Prenom_Resp,
                'mail_resp' => $Mail_Resp,
                'tel_resp' => $Tel_Resp,
                'lettre_motivation' => $lettreMotivationPath,
                'bulletins' => $bulletinsPath
            ));

            header('Location: confirmation.php?success=true');
            exit();
        } else {
            $errorMessage = "❌ Erreur lors du téléchargement des fichiers.";
        }
    }
}
?>

<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <title>Formulaire de Candidature</title>
    <link rel="stylesheet" href="style.css">
    <script defer src="script.js"></script>
</head>
<body>
<header class="top-bar">
    <img src="../images/logolyceecouf.png" alt="Logo Lycée Couffignal" class="logo">
    <nav class="texte">
        <a href="../index.php">Accueil</a>
        <a href="immersions.php">Immersions</a>
        <a href="candidatures.php">Candidatures</a>
        <a href="../contact.php">Contacts</a>
    </nav>
    <nav class="button-container">
        <button id="toggleMode" class="admin-btn">
            <a href="../login.php"><img src="../images/hacker.png" alt="Mode Admin"></a>
        </button>
    </nav>
</header>

<main class="content">
    <h2>Formulaire de Candidature</h2>

    <?php if ($errorMessage != ''): ?>
        <div class="error-message"><?= $errorMessage ?></div>
    <?php endif; ?>

    <form method="post" action="" enctype="multipart/form-data" onsubmit="return confirmerEnvoi()">
        <h3 class="section-title">Informations de l'élève</h3>

        <label for="nom_eleve">Nom élève:</label>
        <input type="text" id="nom_eleve" name="Nom" required><br>

        <label for="prenom_eleve">Prénom élève:</label>
        <input type="text" id="prenom_eleve" name="Prenom" required><br>

        <label for="classe">Classe:</label>
        <input type="text" id="classe" name="Classe" required><br>

        <label for="college">Collège actuel:</label>
        <select id="college" name="College" required>
            <option value="" disabled selected>Choisir un collège</option>
            <?php foreach ($colleges as $college): ?>
                <option value="<?= htmlspecialchars($college['nom_college']) ?>">
                    <?= htmlspecialchars($college['nom_college']) ?>
                </option>
            <?php endforeach; ?>
        </select><br>

        <label class="checkbox-container">
            Avez-vous participé à une immersion en Davinci ?
            <input type="checkbox" name="Immersion">
            <span class="checkmark"></span>
        </label>
        <br>

        <h3 class="section-title">Informations du responsable légal</h3>

        <label for="nom_responsable">Nom du responsable:</label>
        <input type="text" id="nom_responsable" name="Nom_Resp" required><br>

        <label for="prenom_responsable">Prénom du responsable:</label>
        <input type="text" id="prenom_responsable" name="Prenom_Resp" required><br>

        <label for="email_responsable">Email du responsable:</label>
        <input type="email" id="email_responsable" name="Mail_Resp" required><br>

        <label for="telephone_responsable">Téléphone du responsable:</label>
        <input type="text" id="telephone_responsable" name="Tel_Resp" required><br>

        <h3 class="section-title">Documents à joindre : en .PDF ou .DOCX</h3>

        <label for="lettre_motivation">Lettre de motivation:</label>
        <input type="file" id="lettre_motivation" name="lettre_motivation" required><br>

        <label for="bulletins">Deux derniers bulletins:</label>
        <input type="file" id="bulletins" name="bulletins" required><br>

        <input type="submit" value="Soumettre la candidature">
    </form>
</main>
</body>
</html>
