<?php
require_once __DIR__ . '/session-config.php';
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}
/**
 * Page de Profil Administrateur - SERVICES-AE
 * Utilise le template Materio
 */

// Protection d'authentification
require_once __DIR__ . '/auth-check.php';

// Inclure les classes nécessaires
require_once '../config/config.php';
require_once '../config/db.php';
require_once __DIR__ . '/AdminUser.php';

// Initialiser la classe AdminUser
$adminUser = new AdminUser($pdo);

// Vérifier et créer la table si nécessaire
if (!$adminUser->tableExists()) {
    $adminUser->createTable();
}

// Récupérer les informations de l'utilisateur connecté
$currentUser = null;
if (isset($_SESSION['admin_user_id'])) {
    $currentUser = $adminUser->getById($_SESSION['admin_user_id']);
    // Ne synchronise le nom personnalisé du support que si la session n'est pas déjà définie
    if (!isset($_SESSION['admin_support_name'])) {
        if ($currentUser) {
            $_SESSION['admin_support_name'] = isset($currentUser['support_name']) ? $currentUser['support_name'] : '';
        } else {
            $_SESSION['admin_support_name'] = '';
        }
    }
} elseif (isset($_SESSION['admin_username'])) {
    $currentUser = $adminUser->getByUsername($_SESSION['admin_username']);
    if ($currentUser) {
        $_SESSION['admin_user_id'] = $currentUser['id'];
        if (!isset($_SESSION['admin_support_name'])) {
            $_SESSION['admin_support_name'] = isset($currentUser['support_name']) ? $currentUser['support_name'] : '';
        }
    } else {
        $_SESSION['admin_support_name'] = '';
    }
}

// Traitement des actions POST
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $action = $_POST['action'] ?? '';
    if ($action === 'update_support_name' && $currentUser) {
        $new_support_name = trim($_POST['support_name'] ?? '');
        if (strlen($new_support_name) > 0 && strlen($new_support_name) <= 100) {
            $stmt = $pdo->prepare("UPDATE admin_users SET support_name = ? WHERE id = ?");
            $stmt->execute([$new_support_name, $currentUser['id']]);
            $success_message = "Nom du support mis à jour !";
            $currentUser['support_name'] = $new_support_name;
            $_SESSION['admin_support_name'] = $new_support_name;
        } else {
            $error_message = "Le nom du support doit contenir entre 1 et 100 caractères.";
        }
    }
    // ...existing code...
    switch ($action) {
        case 'change_password':
            if (!$currentUser) {
                $error_message = "Utilisateur non trouvé.";
                break;
            }
            
            $current_password = $_POST['current_password'] ?? '';
            $new_password = $_POST['new_password'] ?? '';
            $confirm_password = $_POST['confirm_password'] ?? '';
            
            // Validation
            if (empty($current_password) || empty($new_password) || empty($confirm_password)) {
                $error_message = "Tous les champs sont requis.";
            } elseif ($new_password !== $confirm_password) {
                $error_message = "Les nouveaux mots de passe ne correspondent pas.";
            } elseif (strlen($new_password) < 6) {
                $error_message = "Le nouveau mot de passe doit contenir au moins 6 caractères.";
            } else {
                // Changer le mot de passe via la classe AdminUser
                $result = $adminUser->changePassword($currentUser['id'], $current_password, $new_password);
                
                if ($result['success']) {
                    $success_message = $result['message'];
                    
                    // Log de sécurité
                    error_log("Admin password changed for ID {$currentUser['id']} at " . date('Y-m-d H:i:s') . " from IP: " . ($_SERVER['REMOTE_ADDR'] ?? 'unknown'));
                } else {
                    $error_message = $result['message'];
                }
            }
            
            // Retourner une réponse JSON pour AJAX
            if (isset($_POST['ajax'])) {
                header('Content-Type: application/json');
                echo json_encode([
                    'success' => isset($success_message),
                    'message' => $success_message ?? $error_message ?? 'Erreur inconnue'
                ]);
                exit;
            }
            break;
            
        case 'change_email':
            if (!$currentUser) {
                $error_message = "Utilisateur non trouvé.";
                break;
            }
            
            $new_email = trim($_POST['new_email'] ?? '');
            
            // Validation
            if (empty($new_email)) {
                $error_message = "L'adresse email est requise.";
            } elseif (!filter_var($new_email, FILTER_VALIDATE_EMAIL)) {
                $error_message = "Format d'email invalide.";
            } elseif ($new_email === $currentUser['email']) {
                $error_message = "Le nouvel email doit être différent de l'email actuel.";
            } else {
                // Changer l'email via la classe AdminUser
                $result = $adminUser->changeEmail($currentUser['id'], $new_email);
                
                if ($result['success']) {
                    $success_message = $result['message'];
                    
                    // Mettre à jour les données en session
                    $_SESSION['admin_email'] = $new_email;
                    
                    // Recharger les données utilisateur
                    $currentUser = $adminUser->getById($currentUser['id']);
                    
                    // Log de sécurité
                    error_log("Admin email changed for ID {$currentUser['id']} to {$new_email} at " . date('Y-m-d H:i:s') . " from IP: " . ($_SERVER['REMOTE_ADDR'] ?? 'unknown'));
                } else {
                    $error_message = $result['message'];
                }
            }
            
            // Retourner une réponse JSON pour AJAX
            if (isset($_POST['ajax'])) {
                header('Content-Type: application/json');
                echo json_encode([
                    'success' => isset($success_message),
                    'message' => $success_message ?? $error_message ?? 'Erreur inconnue'
                ]);
                exit;
            }
            break;
            
        case 'logout_other_sessions':
            // Ici, vous devriez invalider toutes les autres sessions
            // Pour la démo, on simule un succès
            
            // TODO: Implémenter la logique de déconnexion des autres sessions
            // - Récupérer toutes les sessions actives de l'utilisateur
            // - Invalider toutes sauf la session actuelle
            
            $success_message = "Toutes les autres sessions ont été déconnectées.";
            
            // Log de sécurité
            error_log("Admin logout other sessions at " . date('Y-m-d H:i:s') . " from IP: " . ($_SERVER['REMOTE_ADDR'] ?? 'unknown'));
            
            // Retourner une réponse pour AJAX
            if (isset($_POST['ajax'])) {
                header('Content-Type: application/json');
                echo json_encode([
                    'success' => true,
                    'message' => $success_message
                ]);
                exit;
            }
            break;
            
        case 'upload_avatar':
            if (!$currentUser) {
                $error_message = "Utilisateur non trouvé.";
                break;
            }
            
            // Configuration du téléchargement d'avatar
            $upload_dir = __DIR__ . '/uploads/avatars/';
            $allowed_types = ['image/jpeg', 'image/png', 'image/gif', 'image/webp'];
            $max_size = 5 * 1024 * 1024; // 5MB
            
            // Créer le dossier s'il n'existe pas
            if (!is_dir($upload_dir)) {
                mkdir($upload_dir, 0755, true);
            }
            
            if (isset($_FILES['avatar']) && $_FILES['avatar']['error'] === UPLOAD_ERR_OK) {
                $file = $_FILES['avatar'];
                $file_type = $file['type'];
                $file_size = $file['size'];
                $file_tmp = $file['tmp_name'];
                
                // Validation du type de fichier
                if (!in_array($file_type, $allowed_types)) {
                    $error_message = "Type de fichier non autorisé. Utilisez JPG, PNG, GIF ou WebP.";
                } elseif ($file_size > $max_size) {
                    $error_message = "Le fichier est trop volumineux. Maximum 5MB.";
                } else {
                    // Générer un nom de fichier unique
                    $file_extension = pathinfo($file['name'], PATHINFO_EXTENSION);
                    $new_filename = 'admin_' . $currentUser['id'] . '_' . time() . '.' . $file_extension;
                    $target_path = $upload_dir . $new_filename;
                    
                    // Supprimer l'ancien avatar s'il existe
                    if ($currentUser['avatar'] && file_exists($upload_dir . $currentUser['avatar'])) {
                        unlink($upload_dir . $currentUser['avatar']);
                    }
                    
                    // Déplacer le fichier téléchargé
                    if (move_uploaded_file($file_tmp, $target_path)) {
                        // Sauvegarder en base de données
                        if ($adminUser->updateAvatar($currentUser['id'], $new_filename)) {
                            // Mettre à jour la session
                            $_SESSION['admin_avatar'] = $new_filename;
                            
                            $success_message = "Avatar mis à jour avec succès!";
                            
                            // Log de l'action
                            error_log("Avatar uploaded by admin ID {$currentUser['id']} at " . date('Y-m-d H:i:s') . " from IP: " . ($_SERVER['REMOTE_ADDR'] ?? 'unknown'));
                        } else {
                            // Supprimer le fichier si la BDD a échoué
                            unlink($target_path);
                            $error_message = "Erreur lors de la sauvegarde en base de données.";
                        }
                    } else {
                        $error_message = "Erreur lors du téléchargement du fichier.";
                    }
                }
            } else {
                $error_message = "Aucun fichier sélectionné ou erreur de téléchargement.";
            }
            
            // Retourner une réponse JSON pour AJAX
            if (isset($_POST['ajax'])) {
                header('Content-Type: application/json');
                echo json_encode([
                    'success' => isset($success_message),
                    'message' => $success_message ?? $error_message ?? 'Erreur inconnue',
                    'avatar_url' => isset($_SESSION['admin_avatar']) ? 'admin/uploads/avatars/' . $_SESSION['admin_avatar'] : null
                ]);
                exit;
            }
            break;
            
        case 'delete_avatar':
            if (!$currentUser) {
                $error_message = "Utilisateur non trouvé.";
                break;
            }
            
            $upload_dir = __DIR__ . '/uploads/avatars/';
            
            // Supprimer l'avatar s'il existe
            if ($currentUser['avatar'] && file_exists($upload_dir . $currentUser['avatar'])) {
                if (unlink($upload_dir . $currentUser['avatar'])) {
                    // Supprimer de la base de données
                    if ($adminUser->removeAvatar($currentUser['id'])) {
                        unset($_SESSION['admin_avatar']);
                        $success_message = "Avatar supprimé avec succès!";
                        
                        // Log de l'action
                        error_log("Avatar deleted by admin ID {$currentUser['id']} at " . date('Y-m-d H:i:s') . " from IP: " . ($_SERVER['REMOTE_ADDR'] ?? 'unknown'));
                    } else {
                        $error_message = "Erreur lors de la suppression en base de données.";
                    }
                } else {
                    $error_message = "Erreur lors de la suppression du fichier.";
                }
            } else {
                $error_message = "Aucun avatar à supprimer.";
            }
            
            // Retourner une réponse JSON pour AJAX
            if (isset($_POST['ajax'])) {
                header('Content-Type: application/json');
                echo json_encode([
                    'success' => isset($success_message),
                    'message' => $success_message ?? $error_message ?? 'Erreur inconnue'
                ]);
                exit;
            }
            break;
    }
}

$page_title = "Mon Profil";
$current_page = "profile";

// Configuration pour le contenu de la page
ob_start(); // Commencer la capture du contenu
?>

<!-- Messages d'alerte -->
<?php if (isset($success_message)): ?>
<div class="alert alert-success alert-dismissible fade show" role="alert">
    <i class="ri ri-check-circle-line me-2"></i>
    <?php echo htmlspecialchars($success_message); ?>
    <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
<?php endif; ?>

<?php if (isset($error_message)): ?>
<div class="alert alert-danger alert-dismissible fade show" role="alert">
    <i class="ri ri-error-warning-line me-2"></i>
    <?php echo htmlspecialchars($error_message); ?>
    <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
<?php endif; ?>

<!-- Page Content -->
<div class="row">
    <div class="col-12">
        <!-- Page Header -->
        <div class="d-flex justify-content-between align-items-center mb-4">
            <div>
                <h4 class="fw-bold mb-1">
                    <i class="ri ri-user-3-line me-2 text-primary"></i>Mon Profil
                </h4>
                <p class="mb-0 text-muted">Gérer les informations de votre compte administrateur</p>
            </div>
            <nav aria-label="breadcrumb">
                <ol class="breadcrumb mb-0">
                    <li class="breadcrumb-item">
                        <a href="admin-home.php" class="text-decoration-none">Accueil</a>
                    </li>
                    <li class="breadcrumb-item active">Mon Profil</li>
                </ol>
            </nav>
        </div>

        <!-- Profile Card -->
        <div class="row">
            <div class="col-xl-4 col-lg-5 col-md-6">
                <!-- Profile Details Card -->
                <div class="card border border-primary mb-4">
                    <div class="card-body text-center">
                        <!-- Avatar -->
                        <div class="position-relative d-inline-block mb-3">
                            <div class="avatar avatar-xl mx-auto" id="currentAvatar">
                                <?php if ($currentUser && $currentUser['avatar'] && file_exists(__DIR__ . '/uploads/avatars/' . $currentUser['avatar'])): ?>
                                    <img src="uploads/avatars/<?php echo htmlspecialchars($currentUser['avatar']); ?>" 
                                         alt="Avatar Admin" 
                                         class="rounded-circle" 
                                         style="width: 100px; height: 100px; object-fit: cover;">
                                <?php else: ?>
                                    <div class="avatar-initial bg-primary rounded-circle" style="width: 100px; height: 100px; line-height: 100px;">
                                        <i class="ri ri-admin-line" style="font-size: 2.5rem;"></i>
                                    </div>
                                <?php endif; ?>
                            </div>
                            <hr><hr>
                            <!-- Avatar Actions -->
                            <div class="position-absolute" style="bottom: 0; right: 0;">
                                <div class="dropdown">
                                    <button class="btn btn-primary btn-sm rounded-circle" 
                                            type="button" 
                                            data-bs-toggle="dropdown" 
                                            aria-expanded="false"
                                            aria-label="Avatar actions"
                                            style="width: 32px; height: 32px; display:flex; align-items:center; justify-content:center;">
                                        <!-- Utiliser la même icône que dans le menu (upload) pour cohérence -->
                                        <i class="ri ri-upload-2-line" style="font-size:1.05rem; line-height:1;"></i>
                                    </button>
                                    <ul class="dropdown-menu">
                                        <li>
                                            <a class="dropdown-item" href="#" onclick="document.getElementById('avatarUpload').click()">
                                                <i class="ri ri-upload-2-line me-2"></i>
                                                Changer Avatar
                                            </a>
                                        </li>
                                        <?php if ($currentUser && $currentUser['avatar']): ?>
                                        <li>
                                            <a class="dropdown-item text-danger" href="#" onclick="deleteAvatar()">
                                                <i class="ri ri-delete-bin-line me-2"></i>
                                                Supprimer Avatar
                                            </a>
                                        </li>
                                        <?php endif; ?>
                                    </ul>
                                </div>
                            </div>
                        </div>
                        
                        <!-- Hidden File Input -->
                        <input type="file" 
                               id="avatarUpload" 
                               name="avatar" 
                               accept="image/jpeg,image/png,image/gif,image/webp" 
                               style="display: none;" 
                               onchange="uploadAvatar(this)">
                        
                                                <!-- User Info -->
                                                 <hr>
                                                <h5 class="mb-1"><?php echo htmlspecialchars($currentUser['username'] ?? 'Administrateur'); ?></h5>
                                                <p class="text-muted mb-3"><?php echo htmlspecialchars($currentUser['email'] ?? 'SERVICES-AE'); ?></p>
                                                <!-- ...support_name badge supprimé... -->
                                                <div class="badge bg-label-success mb-3">Compte Actif</div>
                        
                        <!-- Stats -->
                        <div class="row text-center mt-4">
                            <div class="col-4">
                                <div class="border border-info rounded p-2">
                                    <h6 class="mb-0 text-info">
                                        <i class="ri ri-calendar-line me-1"></i>
                                        <?php echo date('d/m/Y'); ?>
                                    </h6>
                                    <small class="text-muted">Dernière Connexion</small>
                                </div>
                            </div>
                            <div class="col-4">
                                <div class="border border-success rounded p-2">
                                    <h6 class="mb-0 text-success">
                                        <i class="ri ri-shield-check-line me-1"></i>
                                        Admin
                                    </h6>
                                    <small class="text-muted">Niveau</small>
                                </div>
                            </div>
                            <div class="col-4">
                                <div class="border border-warning rounded p-2">
                                    <h6 class="mb-0 text-warning">
                                        <i class="ri ri-time-line me-1"></i>
                                        24h
                                    </h6>
                                    <small class="text-muted">Session</small>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>

                <!-- Quick Actions Card -->
                <div class="card border border-success">
                    <div class="card-header pb-0">
                        <h6 class="card-title mb-0">
                            <i class="ri ri-settings-3-line me-2"></i>Actions Rapides
                        </h6>
                    </div>
                    <div class="card-body">
                        <div class="d-grid gap-2">
                            <a href="dashboard-stats.php" class="btn btn-outline-primary">
                                <i class="ri ri-dashboard-3-line me-2"></i>Tableau de Bord
                            </a>
                            <a href="admin-testimonials.php" class="btn btn-outline-success">
                                <i class="ri ri-chat-3-line me-2"></i>Témoignages
                            </a>
                            <a href="../index.php" target="_blank" class="btn btn-outline-info">
                                <i class="ri ri-external-link-line me-2"></i>Voir le Site
                            </a>
                        </div>
                    </div>
                </div>
            </div>

            <div class="col-xl-8 col-lg-7 col-md-6">
                <!-- Account Details -->
                <div class="card border border-warning mb-4">
                    <div class="card-header pb-0">
                        <h6 class="card-title mb-0">
                            <i class="ri ri-information-line me-2"></i>Informations du Compte
                        </h6>
                    </div>
                    <div class="card-body">
                        <form method="post">
                            <!-- <input type="hidden" name="action" value="update_support_name"> -->
                            <div class="row">
                                <div class="col-md-6 mb-3">
                                    <label class="form-label">Nom d'utilisateur</label>
                                    <input type="text" class="form-control border border-primary" 
                                           value="<?php echo htmlspecialchars($currentUser['username'] ?? 'admin'); ?>" readonly>
                                </div>
                                <div class="col-md-6 mb-3">
                                    <label class="form-label">Email</label>
                                    <input type="email" class="form-control border border-primary" 
                                           value="<?php echo htmlspecialchars($currentUser['email'] ?? 'admin@services-ae.com'); ?>" readonly>
                                </div>
                                <div class="col-md-6 mb-3">
                                    <label class="form-label">Rôle</label>
                                    <input type="text" class="form-control border border-success" 
                                           value="<?php echo htmlspecialchars(ucfirst($currentUser['role'] ?? 'admin')); ?>" readonly>
                                </div>
                                <div class="col-md-6 mb-3">
                                    <label class="form-label">Statut</label>
                                    <input type="text" class="form-control border border-success" 
                                           value="<?php echo htmlspecialchars(ucfirst($currentUser['status'] ?? 'active')); ?>" readonly>
                                </div>
                                <!-- Champ support_name supprimé -->
                            </div>
                            <!-- Bouton support_name supprimé -->
                        </form>
                    </div>
                </div>

                <!-- Email Settings -->
                <div class="card border border-info mb-4">
                    <div class="card-header pb-0">
                        <h6 class="card-title mb-0">
                            <i class="ri ri-mail-line me-2"></i>Adresse Email
                        </h6>
                    </div>
                    <div class="card-body">
                        <div class="row align-items-center">
                            <div class="col-md-8">
                                <h6>Email actuel</h6>
                                <p class="text-muted mb-2">
                                    <i class="ri ri-mail-line me-2"></i>
                                    <?php echo htmlspecialchars($currentUser['email'] ?? 'admin@services-ae.com'); ?>
                                </p>
                                <small class="text-muted">Utilisé pour les notifications et la récupération de compte</small>
                            </div>
                            <div class="col-md-4">
                                <button type="button" class="btn btn-outline-info btn-sm w-100" data-bs-toggle="modal" data-bs-target="#changeEmailModal">
                                    <i class="ri ri-edit-line me-2"></i>Changer l'email
                                </button>
                            </div>
                        </div>
                    </div>
                </div>

                <!-- Security Settings -->
                <div class="card border border-danger mb-4">
                    <div class="card-header pb-0">
                        <h6 class="card-title mb-0">
                            <i class="ri ri-shield-line me-2"></i>Sécurité
                        </h6>
                    </div>
                    <div class="card-body">
                        <div class="row">
                            <div class="col-md-6">
                                <h6>Mot de passe</h6>
                                <p class="text-muted small mb-2">Dernière modification: <?php echo date('d/m/Y'); ?></p>
                                <button type="button" class="btn btn-outline-warning btn-sm" data-bs-toggle="modal" data-bs-target="#changePasswordModal">
                                    <i class="ri ri-lock-password-line me-2"></i>Changer le mot de passe
                                </button>
                            </div>
                            <div class="col-md-6">
                                <h6>Sessions actives</h6>
                                <p class="text-muted small mb-2">Session actuelle: <?php echo $_SERVER['REMOTE_ADDR'] ?? 'localhost'; ?></p>
                                <button type="button" class="btn btn-outline-danger btn-sm" onclick="logoutOtherSessions()">
                                    <i class="ri ri-logout-box-line me-2"></i>Déconnecter autres sessions
                                </button>
                            </div>
                        </div>
                    </div>
                </div>

                <!-- System Info -->
                <div class="card border border-info">
                    <div class="card-header pb-0">
                        <h6 class="card-title mb-0">
                            <i class="ri ri-computer-line me-2"></i>Informations Système
                        </h6>
                    </div>
                    <div class="card-body">
                        <div class="row">
                            <div class="col-md-6">
                                <div class="mb-3">
                                    <label class="form-label">Version PHP</label>
                                    <input type="text" class="form-control border border-info" value="<?php echo phpversion(); ?>" readonly>
                                </div>
                            </div>
                            <div class="col-md-6">
                                <div class="mb-3">
                                    <label class="form-label">Serveur</label>
                                    <input type="text" class="form-control border border-info" value="<?php echo $_SERVER['SERVER_SOFTWARE'] ?? 'Apache'; ?>" readonly>
                                </div>
                            </div>
                            <div class="col-md-6">
                                <div class="mb-3">
                                    <label class="form-label">Base de données</label>
                                    <input type="text" class="form-control border border-success" value="MySQL" readonly>
                                </div>
                            </div>
                            <div class="col-md-6">
                                <div class="mb-3">
                                    <label class="form-label">Timezone</label>
                                    <input type="text" class="form-control border border-warning" value="<?php echo date_default_timezone_get(); ?>" readonly>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- Modal Changer Email -->
<div class="modal fade" id="changeEmailModal" tabindex="-1" aria-labelledby="changeEmailModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="changeEmailModalLabel">
                    <i class="ri ri-mail-line me-2"></i>Changer l'adresse email
                </h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <form id="changeEmailForm" method="POST">
                <div class="modal-body">
                    <div class="mb-3">
                        <label for="currentEmail" class="form-label">Email actuel</label>
                        <input type="email" class="form-control border border-secondary" id="currentEmail" 
                               value="<?php echo htmlspecialchars($currentUser['email'] ?? 'admin@services-ae.com'); ?>" readonly>
                    </div>
                    <div class="mb-3">
                        <label for="newEmail" class="form-label">Nouvel email</label>
                        <input type="email" class="form-control border border-info" id="newEmail" name="new_email" required>
                        <div class="form-text">Saisissez une adresse email valide</div>
                    </div>
                    <div class="alert alert-info">
                        <i class="ri ri-information-line me-2"></i>
                        <strong>Important:</strong> Après changement, vous devrez utiliser ce nouvel email pour vous connecter.
                    </div>
                    <input type="hidden" name="action" value="change_email">
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">Annuler</button>
                    <button type="submit" class="btn btn-info">
                        <i class="ri ri-save-line me-2"></i>Changer l'email
                    </button>
                </div>
            </form>
        </div>
    </div>
</div>

<!-- Modal Changer Mot de Passe -->
<div class="modal fade" id="changePasswordModal" tabindex="-1" aria-labelledby="changePasswordModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="changePasswordModalLabel">
                    <i class="ri ri-lock-password-line me-2"></i>Changer le mot de passe
                </h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <form id="changePasswordForm" method="POST">
                <div class="modal-body">
                    <div class="mb-3">
                        <label for="currentPassword" class="form-label">Mot de passe actuel</label>
                        <input type="password" class="form-control border border-warning" id="currentPassword" name="current_password" required>
                    </div>
                    <div class="mb-3">
                        <label for="newPassword" class="form-label">Nouveau mot de passe</label>
                        <input type="password" class="form-control border border-primary" id="newPassword" name="new_password" required minlength="6">
                        <div class="form-text">Minimum 6 caractères</div>
                    </div>
                    <div class="mb-3">
                        <label for="confirmPassword" class="form-label">Confirmer le nouveau mot de passe</label>
                        <input type="password" class="form-control border border-primary" id="confirmPassword" name="confirm_password" required>
                    </div>
                    <input type="hidden" name="action" value="change_password">
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">Annuler</button>
                    <button type="submit" class="btn btn-warning">
                        <i class="ri ri-save-line me-2"></i>Changer le mot de passe
                    </button>
                </div>
            </form>
        </div>
    </div>
</div>

<script>
// Gestion du changement de mot de passe
document.getElementById('changePasswordForm').addEventListener('submit', function(e) {
    e.preventDefault();
    
    const currentPassword = document.getElementById('currentPassword').value;
    const newPassword = document.getElementById('newPassword').value;
    const confirmPassword = document.getElementById('confirmPassword').value;
    
    // Validation côté client
    if (newPassword !== confirmPassword) {
        alert('Les nouveaux mots de passe ne correspondent pas.');
        return;
    }
    
    if (newPassword.length < 6) {
        alert('Le nouveau mot de passe doit contenir au moins 6 caractères.');
        return;
    }
    
    // Appel AJAX pour changer le mot de passe
    const formData = new FormData(this);
    formData.append('ajax', '1'); // Indiquer que c'est un appel AJAX
    
    fetch('admin-profile.php', {
        method: 'POST',
        body: formData
    })
    .then(response => response.json())
    .then(data => {
        // Fermer le modal
        const modal = bootstrap.Modal.getInstance(document.getElementById('changePasswordModal'));
        modal.hide();
        
        // Afficher le message approprié
        if (data.success) {
            showAlert(data.message, 'success');
            // Réinitialiser le formulaire
            document.getElementById('changePasswordForm').reset();
        } else {
            showAlert(data.message, 'danger');
        }
    })
    .catch(error => {
        console.error('Erreur:', error);
        showAlert('Erreur de connexion au serveur.', 'danger');
    });
});

// Gestion du changement d'email
document.getElementById('changeEmailForm').addEventListener('submit', function(e) {
    e.preventDefault();
    
    const newEmail = document.getElementById('newEmail').value;
    
    // Validation côté client
    const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
    if (!emailRegex.test(newEmail)) {
        showAlert('Format d\'email invalide.', 'danger');
        return;
    }
    
    // Appel AJAX pour changer l'email
    const formData = new FormData(this);
    formData.append('ajax', '1'); // Indiquer que c'est un appel AJAX
    
    fetch('admin-profile.php', {
        method: 'POST',
        body: formData
    })
    .then(response => response.json())
    .then(data => {
        // Fermer le modal
        const modal = bootstrap.Modal.getInstance(document.getElementById('changeEmailModal'));
        modal.hide();
        
        // Afficher le message approprié
        if (data.success) {
            showAlert(data.message, 'success');
            // Réinitialiser le formulaire
            document.getElementById('changeEmailForm').reset();
            
            // Recharger la page après 2 secondes pour afficher le nouvel email
            setTimeout(() => {
                window.location.reload();
            }, 2000);
        } else {
            showAlert(data.message, 'danger');
        }
    })
    .catch(error => {
        console.error('Erreur:', error);
        showAlert('Erreur de connexion au serveur.', 'danger');
    });
});

// Fonction pour déconnecter les autres sessions
function logoutOtherSessions() {
    if (confirm('Êtes-vous sûr de vouloir déconnecter toutes les autres sessions ? Cette action est irréversible.')) {
        fetch('admin-profile.php', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/x-www-form-urlencoded',
            },
            body: 'action=logout_other_sessions&ajax=1'
        })
        .then(response => response.json())
        .then(data => {
            if (data.success) {
                showAlert(data.message, 'success');
            } else {
                showAlert(data.message, 'danger');
            }
        })
        .catch(error => {
            console.error('Erreur:', error);
            showAlert('Erreur de connexion au serveur.', 'danger');
        });
    }
}

// Fonction pour télécharger un avatar
function uploadAvatar(input) {
    if (input.files && input.files[0]) {
        const file = input.files[0];
        
        // Validation côté client
        const allowedTypes = ['image/jpeg', 'image/png', 'image/gif', 'image/webp'];
        const maxSize = 5 * 1024 * 1024; // 5MB
        
        if (!allowedTypes.includes(file.type)) {
            showAlert('Type de fichier non autorisé. Utilisez JPG, PNG, GIF ou WebP.', 'danger');
            return;
        }
        
        if (file.size > maxSize) {
            showAlert('Le fichier est trop volumineux. Maximum 5MB.', 'danger');
            return;
        }
        
        // Afficher un preview immédiat
        const reader = new FileReader();
        reader.onload = function(e) {
            const avatarContainer = document.getElementById('currentAvatar');
            avatarContainer.innerHTML = `
                <img src="${e.target.result}" 
                     alt="Aperçu Avatar" 
                     class="rounded-circle" 
                     style="width: 100px; height: 100px; object-fit: cover; opacity: 0.7;">
                <div class="position-absolute top-50 start-50 translate-middle">
                    <div class="spinner-border text-primary" role="status">
                        <span class="visually-hidden">Chargement...</span>
                    </div>
                </div>
            `;
        };
        reader.readAsDataURL(file);
        
        // Télécharger le fichier
        const formData = new FormData();
        formData.append('avatar', file);
        formData.append('action', 'upload_avatar');
        formData.append('ajax', '1');
        
        fetch('admin-profile.php', {
            method: 'POST',
            body: formData
        })
        .then(response => {
            console.log('Response status:', response.status);
            console.log('Response headers:', response.headers.get('content-type'));
            return response.text(); // Utiliser text() d'abord pour debug
        })
        .then(text => {
            console.log('Raw response:', text);
            
            try {
                const data = JSON.parse(text);
                console.log('Parsed JSON:', data);
                
                if (data.success) {
                    // Mettre à jour l'avatar avec la nouvelle image
                    const avatarContainer = document.getElementById('currentAvatar');
                    const avatarFilename = data.avatar_url ? data.avatar_url.split('/').pop() : '';
                    
                    if (avatarFilename) {
                        avatarContainer.innerHTML = `
                            <img src="uploads/avatars/${avatarFilename}" 
                                 alt="Avatar Admin" 
                                 class="rounded-circle" 
                                 style="width: 100px; height: 100px; object-fit: cover;">
                        `;
                    }
                    
                    showAlert(data.message, 'success');
                    
                    // Recharger la page après 2 secondes pour mettre à jour les menus
                    setTimeout(() => {
                        location.reload();
                    }, 2000);
                } else {
                    // Restaurer l'avatar original en cas d'erreur
                    showAlert(data.message || 'Erreur inconnue', 'danger');
                    setTimeout(() => {
                        location.reload();
                    }, 1000);
                }
            } catch (e) {
                console.error('JSON parse error:', e);
                console.error('Response was:', text.substring(0, 500));
                showAlert('Erreur de format de réponse du serveur', 'danger');
                setTimeout(() => {
                    location.reload();
                }, 1000);
            }
        })
        .catch(error => {
            console.error('Network error:', error);
            showAlert('Erreur de connexion au serveur: ' + error.message, 'danger');
            setTimeout(() => {
                location.reload();
            }, 1000);
        });
    }
}

// Fonction pour supprimer l'avatar
function deleteAvatar() {
    if (confirm('Êtes-vous sûr de vouloir supprimer votre avatar ?')) {
        fetch('admin-profile.php', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/x-www-form-urlencoded',
            },
            body: 'action=delete_avatar&ajax=1'
        })
        .then(response => response.json())
        .then(data => {
            if (data.success) {
                // Remplacer par l'avatar par défaut
                const avatarContainer = document.getElementById('currentAvatar');
                avatarContainer.innerHTML = `
                    <div class="avatar-initial bg-primary rounded-circle" style="width: 100px; height: 100px; line-height: 100px;">
                        <i class="ri ri-admin-line" style="font-size: 2.5rem;"></i>
                    </div>
                `;
                
                showAlert(data.message, 'success');
                
                // Recharger la page après 2 secondes pour mettre à jour les menus
                setTimeout(() => {
                    location.reload();
                }, 2000);
            } else {
                showAlert(data.message, 'danger');
            }
        })
        .catch(error => {
            console.error('Erreur:', error);
            showAlert('Erreur lors de la suppression de l\'avatar.', 'danger');
        });
    }
}

// Fonction pour afficher des alertes
function showAlert(message, type) {
    // Créer et afficher une alerte Bootstrap
    const alertDiv = document.createElement('div');
    alertDiv.className = `alert alert-${type} alert-dismissible fade show position-fixed`;
    alertDiv.style.cssText = 'top: 20px; right: 20px; z-index: 9999; min-width: 300px;';
    alertDiv.innerHTML = `
        ${message}
        <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
    `;
    
    document.body.appendChild(alertDiv);
    
    // Supprimer l'alerte après 5 secondes
    setTimeout(() => {
        if (alertDiv.parentNode) {
            alertDiv.parentNode.removeChild(alertDiv);
        }
    }, 5000);
}
</script>

<?php
// Capturer le contenu
$page_content = ob_get_clean();

// Inclure le template avec le contenu
include 'template.php';
?>