<?php
session_start();

// Verificar si el usuario está autenticado
if (!isset($_SESSION['usuario']) || !isset($_SESSION['token'])) {
    header("Location: index.html");
    exit;
}

$host = "localhost";
$user = "ascensof_Admin1";
$password = "3DS0NCH4115H4CK3R+";
$db = "ascensof_BDsimulador";

$conn = new mysqli($host, $user, $password, $db);
if ($conn->connect_error) {
    die("Conexión fallida: " . $conn->connect_error);
}

$usuario = $_SESSION['usuario'];
$tokenSesion = $_SESSION['token'];

// Validar token en la base de datos
$sql = "SELECT token FROM Usuarios WHERE usuario = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("s", $usuario);
$stmt->execute();
$result = $stmt->get_result();

if ($result->num_rows === 1) {
    $row = $result->fetch_assoc();
    if ($row['token'] !== $tokenSesion) {
        session_unset();
        session_destroy();
        header("Location: index.html?expirado=1");
        exit;
    }
} else {
    session_unset();
    session_destroy();
    header("Location: index.html?error=1");
    exit;
}

$conn->close();

$nombreUsuario = htmlspecialchars($_SESSION['nombre']);
?>
<!DOCTYPE html>
<html lang="es">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Menu Simulador</title>
  <link rel="stylesheet" href="menu.css" />
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link href="https://fonts.googleapis.com/css2?family=Roboto&display=swap" rel="stylesheet">
  <!-- SweetAlert2 CDN -->
  <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
</head>
<body>
<header class="header">
  <div class="navbar">
    <div class="usuario">
      Usuario: <?php echo $nombreUsuario; ?>
    </div>
    <div class="acciones">
      <a href="profile.php" title="Ver perfil de usuario">
        <button class="btn modo">
          <img src="iconos/user.png" alt="Perfil">
        </button>
      </a>
      <button class="btn modo" id="modoToggle" onclick="toggleDarkMode()">🌙</button>
      <button class="btn cerrar" onclick="logout()">Cerrar Sesión</button>
    </div>
  </div>
</header>

<div class="container">
  <h1>Módulos de Aprendizaje</h1>
  <div class="cards">
    <div class="card pink">
      <img src="iconos/m1.png" alt="icono">
      <div class="card-text">
        <h2>Modo Estudio</h2>
        <p>Balotario de preguntas y respuestas segun la materia seleccionada.</p>
      </div>
      <a href="M1_estudio.php"><button class="read-more">Ingresar</button></a>
    </div>
    <div class="card blue">
      <img src="iconos/m2.png" alt="icono">
      <div class="card-text">
        <h2>Modo Continuo Materia</h2>
        <p>Simulador-Genera un examen con la totalidad de preguntas de la materia seleccionada.</p>
      </div>
      <a href="M2_continuo.php"><button class="read-more">Ingresar</button></a>
    </div>
    <div class="card yellow">
      <img src="iconos/m3.png" alt="icono">
      <div class="card-text">
        <h2>Modo Aleatorio Materia</h2>
        <p>Simulador-Genera un examen aleatorio de 60 preguntas por materias.</p>
      </div>
      <a href="M3_aleatorio.php"><button class="read-more">Ingresar</button></a>
    </div>
    <div class="card green">
      <img src="iconos/m4.png" alt="icono">
      <div class="card-text">
        <h2>Modo Aleatorio Balotario</h2>
        <p>Simulador-Genera un examen aleatorio de 60 preguntas en general.</p>
      </div>
      <a href="M4_aleatorio.php"><button class="read-more">Ingresar</button></a>
    </div>
    <div class="card purple">
      <img src="iconos/m5.png" alt="icono">
      <div class="card-text">
        <h2>Modo ICPM AEM</h2>
        <p>Simulador-Genera un examen de 60 preguntas similar al MINEDU.</p>
      </div>
      <a href="M5_siecopol.php"><button class="read-more">Ingresar</button></a>
    </div>
    <div class="card orange">
      <img src="iconos/m6.png" alt="icono">
      <div class="card-text">
        <h2>Materiales de Estudio</h2>
        <p>Materiales en PDF del balotario y audio en formato mp3 por cada materia.</p>
      </div>
      <a href="M6_materiales.php"><button class="read-more">Ingresar</button></a>
    </div>
    <div class="card blue2">
      <img src="iconos/m7.png" alt="icono">
      <div class="card-text">
        <h2>Respuestas Incorrectas</h2>
        <p>Simulador-Genera un examen por materia de las preguntas que has respondido incorretamente.</p>
      </div>
      <a href="M7_incorrectas.php"><button class="read-more">Ingresar</button></a>
    </div>
  </div>
</div>

<script>
  function logout() {
    window.location.href = 'logout.php';
  }

  function toggleDarkMode() {
    const body = document.body;
    const esModoOscuro = body.classList.toggle('dark-mode');
    localStorage.setItem('modo', esModoOscuro ? 'oscuro' : 'claro');
    actualizarIconoModo(esModoOscuro);
  }

  function actualizarIconoModo(esOscuro) {
    const boton = document.getElementById('modoToggle');
    boton.textContent = esOscuro ? '☀️' : '🌙';
  }

  // ========================================
  // PROTECCIÓN AVANZADA CONTRA RETROCESO CON SWEETALERT2
  // ========================================
  (function() {
    const isDark = localStorage.getItem('modo') === 'oscuro';
    document.body.classList.toggle('dark-mode', isDark);
    actualizarIconoModo(isDark);

    // Agregar múltiples entradas al historial para crear un "buffer"
    history.pushState(null, "", location.href);
    history.pushState(null, "", location.href);
    history.pushState(null, "", location.href);

    // Interceptar el evento popstate (botón retroceder)
    window.addEventListener("popstate", function(event) {
      // Restaurar inmediatamente el estado
      history.pushState(null, "", location.href);
      
      // Mostrar confirmación con SweetAlert2
      Swal.fire({
        title: '¿Desea salir?',
        text: "Se cerrará su sesión actual",
        icon: 'warning',
        showCancelButton: true,
        confirmButtonColor: '#d33',
        cancelButtonColor: '#3085d6',
        confirmButtonText: 'Sí, cerrar sesión',
        cancelButtonText: 'No, cancelar',
        reverseButtons: true,
        allowOutsideClick: false,
        allowEscapeKey: false,
        width: '400px'
      }).then((result) => {
        if (result.isConfirmed) {
          // Si confirma, cerrar sesión
          window.location.href = "logout.php";
        }
        // Si cancela, no hace nada (ya se restauró el estado)
      });
    });

    // Prevenir el evento beforeunload para navegación interna
    let navegacionInterna = false;
    
    document.querySelectorAll("a").forEach(link => {
      link.addEventListener("click", function() {
        navegacionInterna = true;
      });
    });

    // Advertencia al intentar salir de la página
    window.addEventListener("beforeunload", function(e) {
      if (!navegacionInterna) {
        // Solo mostrar advertencia si NO es navegación interna
        const mensaje = "¿Seguro que desea salir?";
        e.returnValue = mensaje;
        return mensaje;
      }
    });
  })();
</script>
<script src="bloquear_inspeccion.js"></script>

</body>
</html>