<?php 
// Start session at the beginning of the file
session_start();
error_reporting(E_ALL & ~E_NOTICE); 
include_once "utils_database.php";
include_once "utils.php";
require_once "session_check.php";

// Extract request variables with prefix
$prefix = "P";
foreach ($_REQUEST as $key => $value) {
    $varname = $prefix . '_' . $key;
    $$varname = $value;
}

$vMaxNroPalabras = 300; 
$vMaxNroPalabrasTitulo = 30; 

// Get user information if logged in
$vAreasUsuario = isset($_SESSION['usr']) ? getDatUser($_SESSION['usr'], 9) : '';
$vTipo = isset($_SESSION['usr']) ? getDatUser($_SESSION['usr'], 2) : '';
$vIdUsr = isset($_SESSION['usr']) ? getDatUser($_SESSION['usr'], 1) : '';


// Verificar si el usuario está logueado
if (!isset($_SESSION['usr'])) {
    // Usuario no logueado, redirigir a la página de login
    header("Location: login.php");
    exit(); // Importante: detener la ejecución después de la redirección
}
?>
<?php
// asignar_areas.php

// Incluir el archivo de utilidades de base de datos
require_once 'utils_database.php';

// Lista de todas las áreas disponibles
$todas_areas = [
    'ILA', 'ILB', 'ILC', 'ILD', 'ILE', 'ILF', 'ILG', 'ILH', 'ILI', 'ILJ', 'ILK', 'ILL', 'ILM', 'ILN', 'ILO', 'ILP', 'ILQ',
    'PLA', 'PLB', 'PLC', 'PLD', 'PLE', 'PLF', 'PLG', 'PLH', 'PLI', 'PLJ', 'PLK', 'PLL', 'PLM', 'PLN', 'PLO', 'PLP', 'PLQ',
    'SLA', 'SLB', 'SLC', 'SLD', 'SLE', 'SLF', 'SLG', 'SLH', 'SLI', 'SLJ', 'SLK', 'SLL', 'SLM', 'SLN', 'SLO', 'SLP', 'SLQ'
];

// Agrupar áreas por prefijo para una mejor visualización
$areas_agrupadas = [];
foreach ($todas_areas as $area) {
    $prefijo = substr($area, 0, 2);
    if (!isset($areas_agrupadas[$prefijo])) {
        $areas_agrupadas[$prefijo] = [];
    }
    $areas_agrupadas[$prefijo][] = $area;
}

// Función para obtener todos los evaluadores
function getEvaluadores() {
    // Usar el método Activarmysql para obtener la conexión
    $conn = Activarmysql();
    
    // Obtener los evaluadores de la tabla tusuario
    $query = "SELECT id, nombre, avatar, areas FROM tusuario ORDER BY nombre";
    $result = $conn->query($query);
    $evaluadores = [];
    
    if ($result && $result->num_rows > 0) {
        while ($row = $result->fetch_assoc()) {
            $evaluadores[] = $row;
        }
    }
    
    // Cerrar la conexión
    $conn->close();
    
    return $evaluadores;
}

// Función para obtener un evaluador específico
function getEvaluador($id) {
    // Usar el método Activarmysql para obtener la conexión
    $conn = Activarmysql();
    
    // Preparar la consulta con prepared statement para evitar inyección SQL
    $query = "SELECT id, nombre, avatar, areas FROM tusuario WHERE id = ?";
    $stmt = $conn->prepare($query);
    $stmt->bind_param("i", $id);
    $stmt->execute();
    $result = $stmt->get_result();
    
    $evaluador = null;
    if ($result && $result->num_rows > 0) {
        $evaluador = $result->fetch_assoc();
    }
    
    // Cerrar la conexión
    $stmt->close();
    $conn->close();
    
    return $evaluador;
}

// Función para actualizar las áreas de un evaluador
function actualizarAreasEvaluador($id, $areas) {
    // Usar el método Activarmysql para obtener la conexión
    $conn = Activarmysql();
    
    // Convertir el array de áreas a una cadena separada por comas
    $areas_str = implode(',', $areas);
    
    // Preparar la consulta con prepared statement
    $query = "UPDATE tusuario SET areas = ? WHERE id = ?";
    $stmt = $conn->prepare($query);
    $stmt->bind_param("si", $areas_str, $id);
    $result = $stmt->execute();
    
    // Cerrar la conexión
    $stmt->close();
    $conn->close();
    
    return $result;
}

// Inicializar variables
$evaluadores = getEvaluadores();
$evaluador_seleccionado = null;
$areas_seleccionadas = [];
$mensaje = "";
$success = false;

// Procesar selección de evaluador
if ($_SERVER["REQUEST_METHOD"] == "GET" && isset($_GET['evaluador_id'])) {
    $evaluador_id = $_GET['evaluador_id'];
    $evaluador_seleccionado = getEvaluador($evaluador_id);
    
    if ($evaluador_seleccionado) {
        // Obtener áreas actuales
        $areas_actuales = !empty($evaluador_seleccionado['areas']) ? 
            explode(',', $evaluador_seleccionado['areas']) : [];
        $areas_seleccionadas = $areas_actuales;
    }
}

// Procesar asignación de áreas
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['asignar_areas'])) {
    $evaluador_id = $_POST['evaluador_id'];
    $areas_seleccionadas = isset($_POST['areas']) ? $_POST['areas'] : [];
    
    // Actualizar las áreas del evaluador
    $resultado = actualizarAreasEvaluador($evaluador_id, $areas_seleccionadas);
    
    if ($resultado) {
        $success = true;
        $mensaje = "Áreas asignadas correctamente al evaluador.";
        
        // Obtener el evaluador actualizado
        $evaluador_seleccionado = getEvaluador($evaluador_id);
    } else {
        $mensaje = "Error al asignar áreas al evaluador.";
    }
}
?>

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Asignación de Áreas a Evaluadores</title>
    <!-- Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet">
    <!-- Font Awesome -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css">
    <style>
        :root {
            --primary-color: #377970;
            --secondary-color: #2980b9;
            --success-color: #2ecc71;
            --danger-color: #e74c3c;
            --light-bg: #f8f9fa;
            --il-color: #4a6fa5;
            --pl-color: #5eb95e;
            --sl-color: #dd6e42;
        }
        
        body {
            background-color: var(--light-bg);
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
        }
        
        .card {
            border-radius: 10px;
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
            margin-top: 2rem;
        }
        
        .card-header {
            background-color: var(--primary-color);
            color: white;
            border-radius: 10px 10px 0 0 !important;
            padding: 1rem;
        }
        
        .btn-primary {
            background-color: var(--primary-color);
            border-color: var(--primary-color);
        }
        
        .btn-primary:hover {
            background-color: var(--secondary-color);
            border-color: var(--secondary-color);
        }
        
        .select-evaluador {
            border-radius: 5px;
            border: 1px solid #ced4da;
            padding: 10px;
        }
        
        .avatar-container {
            width: 100px;
            height: 100px;
            margin: 0 auto 15px;
            border-radius: 50%;
            overflow: hidden;
            border: 3px solid var(--primary-color);
        }
        
        .avatar-container img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
        
        .default-avatar {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 100%;
            height: 100%;
            background-color: #e9ecef;
            color: var(--primary-color);
            font-size: 2.5rem;
        }
        
        .area-selector {
            margin-top: 1.5rem;
        }
        
        .area-group {
            margin-bottom: 1.5rem;
            border: 1px solid #ddd;
            border-radius: 8px;
            padding: 10px;
        }
        
        .area-group-title {
            font-weight: bold;
            margin-bottom: 10px;
            padding-bottom: 5px;
            border-bottom: 1px solid #eee;
        }
        
        .area-checkbox {
            padding: 5px 10px;
            margin: 3px;
            border-radius: 5px;
            display: inline-flex;
            align-items: center;
        }
        
        .area-checkbox:hover {
            background-color: #f0f0f0;
        }
        
        .IL-group .area-group-title {
            color: var(--il-color);
        }
        
        .PL-group .area-group-title {
            color: var(--pl-color);
        }
        
        .SL-group .area-group-title {
            color: var(--sl-color);
        }
        
        .IL-badge {
            background-color: var(--il-color);
            color: white;
        }
        
        .PL-badge {
            background-color: var(--pl-color);
            color: white;
        }
        
        .SL-badge {
            background-color: var(--sl-color);
            color: white;
        }
        
        .areas-count {
            font-size: 0.9rem;
            margin-top: 5px;
            color: #6c757d;
        }
        
        @media (max-width: 768px) {
            .area-group {
                max-height: none;
                overflow-y: visible;
            }
        }
    </style>
</head>
<body>
    <div class="container py-5">
        <div class="row justify-content-center">
            <div class="col-lg-10">
                <div class="card">
                    <div class="card-header d-flex justify-content-between align-items-center">
                        <h3 class="mb-0"><i class="fas fa-tasks me-2"></i> Asignación de Áreas a Evaluadores</h3>
                    </div>
                    <div class="card-body">
                        <?php if (!empty($mensaje)): ?>
                            <div class="alert <?php echo $success ? 'alert-success' : 'alert-danger'; ?> alert-dismissible fade show" role="alert">
                                <?php echo $mensaje; ?>
                                <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
                            </div>
                        <?php endif; ?>
                        
                        <!-- Selección de Evaluador -->
                        <form method="get" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" id="evaluadorForm" class="mb-4">
                            <div class="row align-items-center">
                                <div class="col-md-6">
                                    <div class="form-group">
                                        <label for="evaluador_id" class="form-label"><i class="fas fa-user me-2"></i>Seleccione un Evaluador:</label>
                                        <select name="evaluador_id" id="evaluador_id" class="form-select select-evaluador" required onchange="this.form.submit()">
                                            <option value="">-- Seleccione un evaluador --</option>
                                            <?php foreach ($evaluadores as $evaluador): ?>
                                                <option value="<?php echo $evaluador['id']; ?>" 
                                                        <?php echo (isset($_GET['evaluador_id']) && $_GET['evaluador_id'] == $evaluador['id']) ? 'selected' : ''; ?>
                                                        data-avatar="<?php echo htmlspecialchars($evaluador['avatar']); ?>">
                                                    <?php echo htmlspecialchars($evaluador['nombre'] . ' [ID: ' . $evaluador['id'] . ']'); ?>
                                                </option>
                                            <?php endforeach; ?>
                                        </select>
                                    </div>
                                </div>
                                <div class="col-md-6 text-center">
                                    <?php if ($evaluador_seleccionado): ?>
                                        <div id="evaluador-avatar" class="avatar-container">
                                            <?php if (!empty($evaluador_seleccionado['avatar'])): ?>
                                                <img src="dist/pages/evaluadores/acciones_evaluador/fotos_empleados/<?php echo htmlspecialchars($evaluador_seleccionado['avatar']); ?>" 
                                                     alt="Avatar" 
                                                     onerror="this.onerror=null; this.parentNode.innerHTML='<div class=\'default-avatar\'><i class=\'fas fa-user\'></i></div>';">
                                            <?php else: ?>
                                                <div class="default-avatar">
                                                    <i class="fas fa-user"></i>
                                                </div>
                                            <?php endif; ?>
                                        </div>
                                        <h5><?php echo htmlspecialchars($evaluador_seleccionado['nombre']); ?></h5>
                                        <div class="areas-count">
                                            <?php 
                                            $num_areas = !empty($evaluador_seleccionado['areas']) ? count(explode(',', $evaluador_seleccionado['areas'])) : 0;
                                            echo "Áreas asignadas actualmente: <strong>{$num_areas}</strong> de <strong>" . count($todas_areas) . "</strong>";
                                            ?>
                                        </div>
                                    <?php endif; ?>
                                </div>
                            </div>
                        </form>
                        
                        <?php if ($evaluador_seleccionado): ?>
                            <!-- Formulario de Asignación de Áreas -->
                            <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" id="areaForm">
                                <input type="hidden" name="evaluador_id" value="<?php echo $evaluador_seleccionado['id']; ?>">
                                
                                <div class="row my-3">
                                    <div class="col-12">
                                        <div class="d-flex justify-content-between align-items-center mb-3">
                                            <h4 class="mb-0"><i class="fas fa-layer-group me-2"></i>Áreas Disponibles</h4>
                                            <div>
                                                <button type="button" class="btn btn-sm btn-outline-primary me-2" id="selectAll">Seleccionar Todas</button>
                                                <button type="button" class="btn btn-sm btn-outline-secondary" id="deselectAll">Deseleccionar Todas</button>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                                
                                <div class="row area-selector">
                                    <?php foreach ($areas_agrupadas as $prefijo => $areas): ?>
                                        <div class="col-md-4">
                                            <div class="area-group <?php echo $prefijo; ?>-group">
                                                <div class="area-group-title">
                                                    <span class="badge <?php echo $prefijo; ?>-badge me-2"><?php echo $prefijo; ?></span>
                                                    <?php 
                                                    $nombre_grupo = '';
                                                    switch ($prefijo) {
                                                        case 'IL': $nombre_grupo = 'Resumenes en Ingles'; break;
                                                        case 'PL': $nombre_grupo = 'Resumenes en Portugues'; break;
                                                        case 'SL': $nombre_grupo = 'Resumenes en Español'; break;
                                                    }
                                                    echo $nombre_grupo;
                                                    ?>
                                                </div>
                                                <div class="area-checkboxes">
                                                    <?php foreach ($areas as $area): ?>
                                                        <div class="area-checkbox">
                                                            <input type="checkbox" 
                                                                   name="areas[]" 
                                                                   id="area-<?php echo $area; ?>" 
                                                                   value="<?php echo $area; ?>" 
                                                                   <?php echo in_array($area, $areas_seleccionadas) ? 'checked' : ''; ?>>
                                                            <label for="area-<?php echo $area; ?>" class="ms-2"><?php echo $area; ?></label>
                                                        </div>
                                                    <?php endforeach; ?>
                                                </div>
                                            </div>
                                        </div>
                                    <?php endforeach; ?>
                                </div>
                                
                                <div class="row mt-4">
                                    <div class="col-12 text-center">
                                        <button type="submit" name="asignar_areas" class="btn btn-primary btn-lg px-5">
                                            <i class="fas fa-save me-2"></i> Guardar Asignación de Áreas
                                        </button>
                                    </div>
                                </div>
                            </form>
                        <?php elseif (isset($_GET['evaluador_id'])): ?>
                            <div class="alert alert-warning">
                                El evaluador seleccionado no existe o ha sido eliminado.
                            </div>
                        <?php endif; ?>
                    </div>
                </div>
            </div>
        </div>
    </div>
    
    <!-- Bootstrap JS Bundle with Popper -->
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js"></script>
    <script>
        document.addEventListener('DOMContentLoaded', function() {
            // Seleccionar/Deseleccionar todas las áreas
            const selectAllBtn = document.getElementById('selectAll');
            const deselectAllBtn = document.getElementById('deselectAll');
            const checkboxes = document.querySelectorAll('input[name="areas[]"]');
            
            if (selectAllBtn) {
                selectAllBtn.addEventListener('click', function() {
                    checkboxes.forEach(checkbox => {
                        checkbox.checked = true;
                    });
                });
            }
            
            if (deselectAllBtn) {
                deselectAllBtn.addEventListener('click', function() {
                    checkboxes.forEach(checkbox => {
                        checkbox.checked = false;
                    });
                });
            }
            
            // Actualizar contadores de áreas seleccionadas
            function updateSelectedCount() {
                const totalSelected = document.querySelectorAll('input[name="areas[]"]:checked').length;
                const totalAreas = checkboxes.length;
                
                // Aquí podrías actualizar un elemento HTML que muestre estos contadores
                console.log(`Seleccionadas: ${totalSelected} de ${totalAreas}`);
            }
            
            // Actualizar contador cuando cambia cualquier checkbox
            checkboxes.forEach(checkbox => {
                checkbox.addEventListener('change', updateSelectedCount);
            });
            
            // Inicializar contador
            updateSelectedCount();
        });
    </script>
</body>
</html>