<?php
// Este archivo debe ser incluido al principio del script principal o como archivo separado

// Verificamos si hay una solicitud para exportar el certificado
if (isset($_GET['export_certificate']) && isset($_GET['id'])) {
    // Importante: llamamos a la función antes de cualquier salida HTML
    generarCertificadoParticipacion(intval($_GET['id']));
    // El script termina en la función, así que no se ejecutará código después
}

/**
 * Genera un certificado de participación para un trabajo específico
 * Versión mejorada con diseño HTML5/CSS3 para impresión o PDF
 * @param int $trabajo_id ID del trabajo a exportar
 */
function generarCertificadoParticipacion($trabajo_id) {
    // Incluimos el archivo de utilidades de la base de datos
    require_once 'utils_database.php';
    
    // Activamos la conexión MySQL
    $conn = Activarmysql();
    
    // Consulta SQL para obtener todos los datos del trabajo junto con el área temática
    $sql = "SELECT t.*, a.descripcion AS area_tematica_desc 
            FROM ttrabajo t 
            LEFT JOIN tarea a ON t.area_tematica = a.codigo 
            WHERE t.id = ?";
    
    $stmt = $conn->prepare($sql);
    $stmt->bind_param("i", $trabajo_id);
    $stmt->execute();
    $result = $stmt->get_result();
    
    if ($result->num_rows === 0) {
        // En vez de mostrar un mensaje en la página, redirigimos con un parámetro de error
        header('Location: ?error=trabajo_no_encontrado');
        exit;
    }
    
    $trabajo = $result->fetch_assoc();
    
    // Área temática - ya obtenida en la consulta principal
    $area_tematica = !empty($trabajo['area_tematica_desc']) ? $trabajo['area_tematica_desc'] : "";
    
    // Tipo de presentación
    $tipo_presentacion = "";
    if (!empty($trabajo['cod_tipo_presentacion_propuesto'])) {
        $sql_tipo = "SELECT descripcion_esp FROM ttipo_presentacion WHERE codigo = ?";
        $stmt_tipo = $conn->prepare($sql_tipo);
        $stmt_tipo->bind_param("i", $trabajo['cod_tipo_presentacion_propuesto']);
        $stmt_tipo->execute();
        $result_tipo = $stmt_tipo->get_result();
        if ($result_tipo->num_rows > 0) {
            $tipo_data = $result_tipo->fetch_assoc();
            $tipo_presentacion = $tipo_data['descripcion_esp'];
        }
    }
    
    // Tipo de competición
    $tipo_competicion = "";
    if (!empty($trabajo['cod_tipo_competicion_propuesto'])) {
        $sql_comp = "SELECT descripcion_esp FROM ttipo_competicion WHERE codigo = ?";
        $stmt_comp = $conn->prepare($sql_comp);
        $stmt_comp->bind_param("i", $trabajo['cod_tipo_competicion_propuesto']);
        $stmt_comp->execute();
        $result_comp = $stmt_comp->get_result();
        if ($result_comp->num_rows > 0) {
            $comp_data = $result_comp->fetch_assoc();
            $tipo_competicion = $comp_data['descripcion_esp'];
        }
    }
    
    // Obtener autores
    $autores = [];
    
    // Obtener datos del autor corresponsal
    $autor_corresponsal = "";
    if (!empty($trabajo['nombre_corresponsal']) && !empty($trabajo['apellido_corresponsal'])) {
        $autor_corresponsal = ucwords(strtolower($trabajo['nombre_corresponsal'] . ' ' . $trabajo['apellido_corresponsal']));
    }
    
    // Construir lista de autores según la solicitud
    for ($i = 1; $i <= 10; $i++) {
        $autor_key = "autor{$i}";
        $apellido_key = "apellido_autor{$i}";
        $titulo_key = "titulo_autor{$i}";
        
        if (!empty($trabajo[$autor_key]) && !empty($trabajo[$apellido_key])) {
            $autor_info = '';
            if (!empty($trabajo[$titulo_key])) {
                $autor_info .= $trabajo[$titulo_key] . ' ';
            }
            $nombre = ucwords(strtolower($trabajo[$autor_key]));
            $apellido = ucwords(strtolower($trabajo[$apellido_key]));
            $autor_info .= $nombre . ' ' . $apellido;
            
            $autores[] = $autor_info;
        }
    }
    
    // Si no hay autores individuales pero hay un campo 'autores', usarlo
    if (empty($autores) && !empty($trabajo['autores'])) {
        $autores_texto = ucwords(strtolower($trabajo['autores']));
        $autores = explode(',', $autores_texto);
        $autores = array_map('trim', $autores);
    }
    
    // Si no hay autores, usar al autor corresponsal
    if (empty($autores) && !empty($autor_corresponsal)) {
        $autores[] = $autor_corresponsal;
    }

    $conn->close();
    
    // Generar un ID único para el certificado
    $cert_id = 'CERT-' . date('Y') . '-' . str_pad($trabajo_id, 4, '0', STR_PAD_LEFT);
    
    // Verificar si queremos usar TCPDF o HTML para la salida
    $use_tcpdf = false;
    
    if ($use_tcpdf && file_exists('vendor/tecnickcom/tcpdf/tcpdf.php')) {
        // Código TCPDF aquí (omitido por brevedad)
        // Se mantendría el código original TCPDF
    } else {
        // Usar HTML5/CSS3 para generar un certificado imprimible o convertible a PDF con JavaScript
        outputHtmlCertificate($trabajo, $autor_corresponsal, $autores, $area_tematica, $tipo_presentacion, $cert_id);
    }
}

/**
 * Genera un certificado en formato HTML5/CSS3 usando diseño moderno
 */
function outputHtmlCertificate($trabajo, $autor_corresponsal, $autores, $area_tematica, $tipo_presentacion, $cert_id) {
    // Limpiar cualquier salida anterior
    ob_clean();
    
    // Título para el navegador
    $clean_title = preg_replace('/[^a-zA-Z0-9]/', '_', $trabajo['titulo']);
    $clean_title = substr($clean_title, 0, 30);
    $filename = 'certificado_' . (isset($trabajo['codigo']) ? $trabajo['codigo'] : '') . '_' . $clean_title;
    
    // Generar el HTML
    header('Content-Type: text/html; charset=utf-8');
    ?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Certificado: <?php echo htmlspecialchars($trabajo['titulo']); ?></title>
    
    <!-- Fuentes de Google -->
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;600;700&family=Playfair+Display:wght@400;700&display=swap" rel="stylesheet">
    
    <!-- Font Awesome para iconos -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    
    <style>
        /* Variables CSS - Nueva Paleta de Colores */
        :root {
            --primary-color: #015a5e;      /* Verde azulado oscuro - Color principal */
            --primary-light: #327063;      /* Verde azulado medio - Variante más clara */
            --accent-color: #007dd9;       /* Azul brillante - Color de acento */
            --gold: #d0bf6f;               /* Amarillo dorado - Para elementos decorativos */
            --gold-light: #a6d1c4;         /* Verde azulado claro - Variante clara de decoración */
            --gold-dark: #427d6e;          /* Verde azulado oscuro - Para decoraciones más oscuras */
            --text-dark: #427d6e;          /* Verde azulado oscuro - Texto principal */
            --text-light: #5f7b87;         /* Gris azulado - Texto secundario */
            --background: #ffffff;         /* Blanco - Fondo */
            --background-light: #a6d1c4;   /* Verde azulado muy claro - Fondo secundario */
            --border-light: #478576;       /* Verde azulado medio - Bordes */
            --highlight: #198754;          /* Verde esmeralda - Destacados */
        }

        /* Estilos generales */
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        
        body {
            font-family: 'Montserrat', sans-serif;
            background-color: #f0f2f5;
            color: var(--text-dark);
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 100vh;
            padding: 20px;
        }
        
        /* Contenedor del certificado */
        .certificate-container {
            width: 297mm; /* A4 landscape */
            height: 210mm; /* A4 landscape */
            background-color: var(--background);
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
            position: relative;
            overflow: hidden;
            padding: 0;
            border-radius: 8px;
        }
        
        /* Fondo decorativo */
        .certificate-background {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: 0;
            opacity: 0.05;
            background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIgdmlld0JveD0iMCAwIDUwIDUwIj48cGF0aCBkPSJNMjUsMzBjLTIuOCwwLTUtMi4yLTUtNXMyLjItNSw1LTVzNSwyLjIsNSw1UzI3LjgsMzAsMjUsMzB6IiBmaWxsPSIjMDE1YTVlIi8+PC9zdmc+');
            background-size: 100px 100px;
        }
        
        /* Borde decorativo */
        .certificate-border {
            position: absolute;
            top: 10px;
            left: 10px;
            right: 10px;
            bottom: 10px;
            border: 2px solid var(--gold);
            border-radius: 4px;
            z-index: 1;
            pointer-events: none;
        }
        
        /* Esquinas doradas */
        .corner {
            position: absolute;
            width: 50px;
            height: 50px;
            z-index: 2;
        }
        
        .corner-top-left {
            top: 5px;
            left: 5px;
            border-top: 4px solid var(--gold);
            border-left: 4px solid var(--gold);
            border-top-left-radius: 8px;
        }
        
        .corner-top-right {
            top: 5px;
            right: 5px;
            border-top: 4px solid var(--gold);
            border-right: 4px solid var(--gold);
            border-top-right-radius: 8px;
        }
        
        .corner-bottom-left {
            bottom: 5px;
            left: 5px;
            border-bottom: 4px solid var(--gold);
            border-left: 4px solid var(--gold);
            border-bottom-left-radius: 8px;
        }
        
        .corner-bottom-right {
            bottom: 5px;
            right: 5px;
            border-bottom: 4px solid var(--gold);
            border-right: 4px solid var(--gold);
            border-bottom-right-radius: 8px;
        }
        
        /* Contenido del certificado */
        .certificate-content {
            position: relative;
            z-index: 3;
            padding: 20px;
            height: 100%;
            display: flex;
            flex-direction: column;
        }
        
        /* Encabezado */
        .certificate-header {
            text-align: center;
            padding: 30px 0 25px;
            background: linear-gradient(to bottom, var(--primary-color), var(--primary-light));
            color: white;
            border-radius: 4px 4px 40% 40% / 4px 4px 30px 30px;
            position: relative;
            margin-bottom: 30px;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
        }
        
        .certificate-title {
            font-family: 'Playfair Display', serif;
            font-size: 28.8px; /* Reducido de 36px */
            font-weight: 700;
            text-transform: uppercase;
            margin-bottom: 10px;
            text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.3);
        }
        
        .certificate-subtitle {
            font-size: 16px; /* Reducido de 20px */
            font-weight: 300;
            margin-bottom: 20px;
        }
        
        /* Logo y emblema */
        .certificate-emblem {
            position: absolute;
            top: 100%;
            left: 50%;
            transform: translate(-50%, -50%);
            width: 80px; /* Reducido de 100px */
            height: 80px; /* Reducido de 100px */
            background-color: white;
            border-radius: 50%;
            border: 3px solid var(--highlight);
            display: flex;
            justify-content: center;
            align-items: center;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
        }
        
        .certificate-emblem i {
            font-size: 28.8px; /* Reducido de 36px */
            color: var(--primary-color);
        }
        
        /* Cuerpo del certificado */
        .certificate-body {
            flex: 1;
            padding: 30px 40px 20px; /* Reducido el padding superior */
            text-align: center;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
        }
        
        .introduction {
            margin-bottom: 20px;
        }
        
        .intro-text {
            font-size: 14.4px; /* Reducido de 18px */
            color: var(--text-light);
            margin-bottom: 5px;
        }
        
        .recipient-name {
            font-family: 'Playfair Display', serif;
            font-size: 25.6px; /* Reducido de 32px */
            font-weight: 700;
            color: var(--primary-color);
            position: relative;
            display: inline-block;
            margin: 10px 0 30px;
        }
        
        .recipient-name::after {
            content: '';
            position: absolute;
            left: -10%;
            bottom: -10px;
            width: 120%;
            height: 2px;
            background: linear-gradient(90deg, transparent, var(--accent-color), transparent);
        }
        
        .award-text {
            font-size: 12.8px; /* Reducido de 16px */
            line-height: 1.6;
            margin-bottom: 15px;
        }
        
        .work-title {
            font-size: 17.6px; /* Reducido de 22px */
            font-weight: 600;
            font-style: italic;
            margin: 15px 0;
            color: var(--text-dark);
        }
        
        .authors-list {
            font-size: 11.2px; /* Reducido de 14px */
            color: var(--text-light);
            margin-bottom: 5px;
        }
        
        /* Información del congreso */
        .congress-info {
            background-color: var(--background-light);
            border-radius: 8px;
            border-left: 4px solid var(--accent-color);
            padding: 15px;
            margin: 5px auto;
            width: 80%;
            text-align: left;
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
        }
        
        .congress-name {
            font-weight: 700;
            color: var(--primary-color);
            font-size: 12.8px; /* Reducido de 16px */
            margin-bottom: 5px;
        }
        
        .congress-details {
            display: flex;
            align-items: center;
            font-size: 11.2px; /* Reducido de 14px */
            color: var(--text-dark);
        }
        
        .congress-details i {
            margin-right: 8px;
            color: var(--accent-color);
        }
        
        /* Tipo de presentación */
        .presentation-type {
            margin: 5px 0;
        }
        
        .presentation-badge {
            display: inline-block;
            background-color: var(--primary-color);
            color: white;
            padding: 6px 15px;
            border-radius: 4px;
            font-weight: 600;
            margin-right: 10px;
            text-transform: uppercase;
            font-size: 11.2px; /* Reducido de 14px */
            letter-spacing: 1px;
        }
        
        .group-badge {
            display: inline-block;
            background-color: var(--highlight);
            color: white;
            padding: 6px 15px;
            border-radius: 4px;
            font-weight: 600;
            font-size: 11.2px; /* Reducido de 14px */
        }
        
        /* Firmas */
        .signature-area {
            display: flex;
            justify-content: space-around;
            margin-top: 20px; /* Reducido de 30px */
        }
        
        .signature {
            text-align: center;
            width: 200px;
        }
        
        .signature-image {
            display: block;
            margin: 0 auto 10px;
            max-width: 180px;
            height: 60px;
            border-bottom: 1px solid var(--primary-color);
            padding-bottom: 5px;
        }
        
        .signature-name {
            font-weight: 700;
            font-size: 11.2px; /* Reducido de 14px */
            margin-bottom: 4px;
        }
        
        .signature-title {
            font-size: 9.6px; /* Reducido de 12px */
            color: var(--primary-light);
        }
        
        /* Sello de verificación */
        .verification-seal {
            position: absolute;
            bottom: 50px;
            right: 50px;
            width: 110px;
            height: 110px;
            transform: rotate(10deg);
            animation: sealAnimation 6s infinite ease-in-out;
            z-index: 10;
        }
        
        .seal-image {
            width: 100%;
            height: 100%;
            object-fit: contain;
            filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.3));
        }
        
        @keyframes sealAnimation {
            0% { transform: rotate(8deg); }
            50% { transform: rotate(12deg); }
            100% { transform: rotate(8deg); }
        }
        
        /* Pie de página */
        .certificate-footer {
            background-color: var(--background-light);
            border-top: 1px solid var(--border-light);
            padding: 10px 40px;
            font-size: 8.8px; /* Reducido de 11px */
            color: var(--text-dark);
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        
        .footer-left {
            text-align: left;
        }
        
        .footer-right {
            text-align: right;
        }
        
        /* Botones de utilidad */
        .utility-buttons {
            position: fixed;
            bottom: 20px;
            left: 50%;
            transform: translateX(-50%);
            display: flex;
            gap: 15px;
            z-index: 1000;
        }
        
        .btn {
            background-color: var(--primary-color);
            color: white;
            border: none;
            padding: 10px 20px;
            border-radius: 4px;
            cursor: pointer;
            display: flex;
            align-items: center;
            gap: 8px;
            font-family: 'Montserrat', sans-serif;
            font-weight: 600;
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
            transition: all 0.3s ease;
        }
        
        .btn:hover {
            background-color: var(--highlight);
            transform: translateY(-2px);
            box-shadow: 0 6px 8px rgba(0, 0, 0, 0.1);
        }
        
        /* Estilos de impresión */
        @media print {
            body {
                background: none;
                padding: 0;
                margin: 0;
            }
            
            .certificate-container {
                box-shadow: none;
                border-radius: 0;
                width: 100%;
                height: 100%;
            }
            
            .utility-buttons {
                display: none;
            }
            
            @page {
                size: landscape;
                margin: 0;
            }
        }
    </style>
</head>
<body>
    <div class="certificate-container">
        <!-- Fondo y bordes decorativos -->
        <div class="certificate-background"></div>
        <div class="certificate-border"></div>
        <div class="corner corner-top-left"></div>
        <div class="corner corner-top-right"></div>
        <div class="corner corner-bottom-left"></div>
        <div class="corner corner-bottom-right"></div>
        
        <div class="certificate-content">
            <!-- Encabezado -->
            <header class="certificate-header">
                <h1 class="certificate-title">Certificado de Participación</h1>
                <p class="certificate-subtitle">Reconocimiento de Excelencia Académica</p>
                
                <div class="certificate-emblem">
                    <i class="fas fa-microscope"></i>
                </div>
            </header>
            
            <!-- Cuerpo del certificado -->
            <div class="certificate-body">
                <div class="introduction">
                    <p class="intro-text">Este certificado se otorga a:</p>
                    <h2 class="recipient-name"><?php echo htmlspecialchars($autor_corresponsal); ?></h2>
                    
                    <p class="award-text">
                        Por su destacada participación como autor y presentador del trabajo científico titulado:
                    </p>
                    
                    <p class="work-title">
                        "<?php echo htmlspecialchars($trabajo['titulo']); ?>"
                    </p>
                    
                    <p class="authors-list">
                        <strong>Autores:</strong> <?php echo htmlspecialchars(implode(', ', $autores)); ?>
                    </p>
                </div>
                
                <!-- Información del congreso -->
                <div class="congress-info">
                    <p class="congress-name"> XXXIII VIRTUAL PANAMERICAN CONGRESS OF TRAUMA, CRITICAL CARE, AND EMERGENCY SURGERY OCTOBER 20-23, 2020</p>
                    <div class="congress-details">
                        <i class="far fa-calendar-alt"></i>
                        <span><?php echo date('d-m-Y'); ?> • <?php echo htmlspecialchars($area_tematica); ?></span>
                    </div>
                </div>
                
                <!-- Tipo de presentación -->
                <div class="presentation-type">
                    <span class="presentation-badge">
                        <?php echo htmlspecialchars(strtoupper($tipo_presentacion ?: 'PRESENTACIÓN ORAL')); ?>
                    </span>
                    
                    <span class="group-badge">
                        GRUPO <?php echo htmlspecialchars($trabajo['grupo'] ?: 'A'); ?>
                    </span>
                </div>
                
                <!-- Firmas -->
                <div class="signature-area">
                    <div class="signature">
                        <img src="./assets/img/firmafoianini.png" alt="Firma Dr. Esteban Foianini" class="signature-image" />
                        <p class="signature-name">Dr. Esteban Foianini, MD </p>
                        <p class="signature-title">President</p>
                    </div>
                    
                    <div class="signature">
                        <img src="./assets/img/firmaScalea.png" alt="Firma Thomas Scalea" class="signature-image" />
                        <p class="signature-name">Thomas Scalea, MD</p>
                        <p class="signature-title">Executive Director</p>
                    </div>
                </div>
                
                <!-- Sello de verificación -->
                <div class="verification-seal">
                    <img src="./assets/img/selloPST.png" alt="Sello PST" class="seal-image">
                </div>
            </div>
            
            <!-- Pie de página -->
            <footer class="certificate-footer">
                <div class="footer-left">
                    PANAMERICAN TRAUMA SOCIETY
                </div>
                <div class="footer-right">
                    ID: <?php echo htmlspecialchars($cert_id); ?>
                </div>
            </footer>
        </div>
    </div>
    
    <!-- Botones de utilidad -->
    <div class="utility-buttons">
        <button class="btn" id="printBtn">
            <i class="fas fa-print"></i> Imprimir
        </button>
        <button class="btn" id="downloadBtn">
            <i class="fas fa-download"></i> Descargar PDF
        </button>
    </div>
    
    <!-- Script para la funcionalidad de impresión y descarga -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.10.1/html2pdf.bundle.min.js"></script>
    <script>
        document.addEventListener('DOMContentLoaded', function() {
            // Configuración para html2pdf
            const pdfOptions = {
                margin: 0,
                filename: '<?php echo $filename; ?>.pdf',
                image: { type: 'jpeg', quality: 1 },
                html2canvas: { scale: 2, useCORS: true, logging: true },
                jsPDF: { unit: 'mm', format: 'a4', orientation: 'landscape' }
            };
            
            // Elemento a convertir
            const element = document.querySelector('.certificate-container');
            
            // Botón de impresión
            document.getElementById('printBtn').addEventListener('click', function() {
                window.print();
            });
            
            // Botón de descarga PDF
            document.getElementById('downloadBtn').addEventListener('click', function() {
                // Mostrar indicador de carga
                this.innerHTML = '<i class="fas fa-spinner fa-spin"></i> Procesando...';
                this.disabled = true;
                
                // Pequeño retraso para asegurar que la UI se actualice
                setTimeout(() => {
                    html2pdf().set(pdfOptions).from(element).save()
                        .then(() => {
                            // Restaurar botón
                            this.innerHTML = '<i class="fas fa-download"></i> Descargar PDF';
                            this.disabled = false;
                        });
                }, 100);
            });
            
            // Animación de sello
            const seal = document.querySelector('.verification-seal');
            
            // Animación sutil
            function animateSeal() {
                let rotation = 10;
                let direction = 1;
                
                setInterval(() => {
                    rotation += (0.05 * direction);
                    
                    if (rotation >= 12) direction = -1;
                    if (rotation <= 8) direction = 1;
                    
                    seal.style.transform = `rotate(${rotation}deg)`;
                }, 100);
            }
            
            animateSeal();
        });
    </script>
</body>
</html>
    <?php
    exit;
}
?>