<?php
session_start();

// Vérifiez si le formulaire a été soumis
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // Récupérer les paramètres du formulaire
    $theme = $_POST['theme'];
    $notifications = isset($_POST['notifications']) ? 'enabled' : 'disabled';

    // Sauvegarder les paramètres dans la session
    $_SESSION['settings'] = [
        'theme' => $theme,
        'notifications' => $notifications,
    ];

    // Rediriger vers la page de paramètres avec un message de succès
    header('Location: settings.php?success=1');
    exit();
}

// Charger les paramètres sauvegardés
$settings = isset($_SESSION['settings']) ? $_SESSION['settings'] : [
    'theme' => 'light', // Valeur par défaut
    'notifications' => 'disabled',
];

// Enregistrer les paramètres dans toutes les pages du lobby
echo "<script>
    document.documentElement.className = '{$_SESSION['settings']['theme']}';
    if ('{$_SESSION['settings']['notifications']}' === 'enabled') {
        // Logique pour activer les notifications
        const eventSource = new EventSource('notifications.php');
        eventSource.onmessage = function(event) {
            const data = JSON.parse(event.data);
            if (data.type === 'message') {
                alert('Nouveau message de ' + data.sender + ': ' + data.content);
            }
        };
    }
</script>";

if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['profile_picture'])) {
    $targetDir = "uploads/profile_pictures/";
    $targetFile = $targetDir . basename($_FILES["profile_picture"]["name"]);
    $imageFileType = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION));

    // Vérifiez si le fichier est une image
    $check = getimagesize($_FILES["profile_picture"]["tmp_name"]);
    if ($check === false) {
        echo "Ce fichier n'est pas une image.";
        exit();
    }

    // Vérifiez la taille du fichier
    if ($_FILES["profile_picture"]["size"] > 500000) {
        echo "Désolé, votre fichier est trop grand.";
        exit();
    }

    // Autoriser certains formats de fichier
    if (!in_array($imageFileType, ['jpg', 'png', 'jpeg', 'gif'])) {
        echo "Désolé, seuls les fichiers JPG, JPEG, PNG & GIF sont autorisés.";
        exit();
    }

    // Essayez de télécharger le fichier
    if (move_uploaded_file($_FILES["profile_picture"]["tmp_name"], $targetFile)) {
        $_SESSION['profile_picture'] = $targetFile; // Enregistrez le chemin de la photo de profil dans la session
        echo "La photo de profil a été téléchargée avec succès.";
    } else {
        echo "Désolé, une erreur s'est produite lors du téléchargement de votre fichier.";
    }
}

$accountFile = "accounts/{$_SESSION['username']}/account.json";

// Charger les paramètres de l'utilisateur
if (file_exists($accountFile)) {
    $accountData = json_decode(file_get_contents($accountFile), true);
} else {
    // Créer un fichier par défaut si non existant
    $accountData = [
        'username' => $_SESSION['username'],
        'password' => '',
        'profile_picture' => '',
        'theme' => 'light',
        'notifications' => 'disabled'
    ];
}

// Enregistrer les paramètres dans le fichier
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $accountData['theme'] = $_POST['theme'];
    $accountData['notifications'] = isset($_POST['notifications']) ? 'enabled' : 'disabled';
    
    // Enregistrer la photo de profil
    if (isset($_FILES['profile_picture'])) {
        // Logique pour gérer le téléchargement de la photo de profil
    }

    // Sauvegarder les données dans account.json
    file_put_contents($accountFile, json_encode($accountData));
}
?>

<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Paramètres</title>
    <link rel="stylesheet" href="Styles/styles.css">
    <link href='https://fonts.googleapis.com/css?family=Krounf' rel='stylesheet'>
    <style>
        body {
            font-family: 'Krounf', sans-serif;
        }
    </style>
</head>
<body>
    <header>
        <h1>Paramètres</h1>
    </header>
    <main>
        <?php if (isset($_GET['success'])): ?>
            <div class="alert alert-success">Paramètres sauvegardés avec succès !</div>
        <?php endif; ?>
        <form method="POST">
            <div class="form-group">
                <label for="theme">Thème :</label>
                <select name="theme" id="theme">
                    <option value="">Sélectionnez un thème (optionnel)</option>
                    <option value="old-gui" <?php echo $settings['theme'] == 'old-gui' ? 'selected' : ''; ?>>Old ass gui - Pour les gens qui préfèrent les trucs moche</option>
                    <option value="light-material" <?php echo $settings['theme'] == 'light-material' ? 'selected' : ''; ?>>Material clair - Thème clair par défaut, material You.</option>
                    <option value="dark-material" <?php echo $settings['theme'] == 'dark-material' ? 'selected' : ''; ?>>Material sombre - Thème sombre par défaut, Material You. Inclus Dusk comme mascotte.</option>
                    <option value="dusks-sky-light" <?php echo $settings['theme'] == 'dusks-sky-light' ? 'selected' : ''; ?>>Dusk's sky light - Pleins de dégradés et d'ombres ! Inclus Dusk comme mascotte.</option>
                    <option value="light" <?php echo $settings['theme'] == 'light' ? 'selected' : ''; ?>>Clair</option>
                    <option value="dark" <?php echo $settings['theme'] == 'dark' ? 'selected' : ''; ?>>Sombre</option>
                </select>
            </div>
            <div class="form-group">
                <label for="notifications">Notifications :</label>
                <input type="checkbox" name="notifications" id="notifications" <?php echo $settings['notifications'] == 'enabled' ? 'checked' : ''; ?>>
                <label for="notifications">Activer les notifications</label>
            </div>
            <div class="form-group">
                <label for="profile_picture">Changer la photo de profil :</label>
                <input type="file" name="profile_picture" id="profile_picture" accept="image/*">
            </div>
            <button type="submit">Sauvegarder</button>
        </form>
    </main>
    <footer>
        <p>&copy; 2025 Louna Corp. Tous droits réservés.</p>
    </footer>
</body>
</html> 