<?php
// pages/registration.php
// Página de registro - Etapa final do funil

// Configurações iniciais
if (!defined('BASE_PATH')) {
    define('BASE_PATH', dirname(dirname(__FILE__)));
}

require_once BASE_PATH . '/includes/config.php';
require_once BASE_PATH . '/includes/db.php';
require_once BASE_PATH . '/includes/functions.php';

// Arquivo opcional de anúncios
if (file_exists(BASE_PATH . '/includes/ads-functions.php')) {
    require_once BASE_PATH . '/includes/ads-functions.php';
}

// Adicione após carregar os dados da página
require_once BASE_PATH . '/includes/unique-visits-tracker.php';

if (isset($page) && $page) {
    $uniqueVisitsTracker->trackUniqueVisit($page['id'], null, $page['title']);
}

// Inclui sistema de tracking UTM
if (file_exists(BASE_PATH . '/includes/utm-tracking.php')) {
    require_once BASE_PATH . '/includes/utm-tracking.php';
    
    // Apenas inicializa tracking
    try {
        initUtmTracking();
    } catch (Exception $e) {
        if (function_exists('logError')) {
            logError("Erro na inicialização do tracking UTM: " . $e->getMessage());
        }
    }
} else {
    // Fallback se arquivo não existir
    if (function_exists('logError')) {
        logError("Arquivo utm-tracking.php não encontrado");
    }
}

// Carrega helpers do WhatsApp de forma segura
$whatsappDynamicAvailable = false;
try {
    if (file_exists(BASE_PATH . '/includes/whatsapp-helper.php') && 
        file_exists(BASE_PATH . '/includes/whatsapp-dynamic.php')) {
        
        require_once BASE_PATH . '/includes/whatsapp-helper.php';
        require_once BASE_PATH . '/includes/whatsapp-dynamic.php';
        $whatsappDynamicAvailable = true;
    }
} catch (Exception $e) {
    error_log("Erro ao carregar WhatsApp helpers: " . $e->getMessage());
}

// Inicializa tracking da página
$pageType = 'registration';
$pageId = isset($_GET['id']) ? intval($_GET['id']) : null;
$slug = isset($_GET['slug']) ? sanitizeInput($_GET['slug']) : null;

// Busca a página no banco de dados
try {
    $landingId = isset($_GET['landing']) ? intval($_GET['landing']) : null;
    
    if ($landingId) {
        // Se chegou via ?landing=7, busca registration específico vinculado à landing 7
        $db->query("SELECT * FROM pages WHERE landing_page_id = :landing_id AND type = :type AND published = 1 ORDER BY sequence ASC LIMIT 1");
        $db->bind(':landing_id', $landingId);
        $db->bind(':type', $pageType);
    } else if ($pageId) {
        // Busca por ID específico
        $db->query("SELECT * FROM pages WHERE id = :id AND type = :type AND published = 1");
        $db->bind(':id', $pageId);
        $db->bind(':type', $pageType);
    } else if ($slug) {
        // Busca por slug
        $db->query("SELECT * FROM pages WHERE slug = :slug AND type = :type AND published = 1");
        $db->bind(':slug', $slug);
        $db->bind(':type', $pageType);
    } else {
        // Busca qualquer registration
        $db->query("SELECT * FROM pages WHERE type = :type AND published = 1 ORDER BY sequence ASC LIMIT 1");
        $db->bind(':type', $pageType);
    }
    
    $page = $db->single();
    
    if (!$page) {
        // Define valores padrão para evitar erro
        $pageTitle = 'Página não encontrada';
        $metaDescription = 'A página solicitada não foi encontrada.';
        $currentPage = 'registration';
        $showHeader = false;
        
        require_once BASE_PATH . '/includes/header.php';
        echo '<div class="container mt-5"><div class="alert alert-warning text-center"><h4>Página não encontrada</h4><p>A página que você está procurando não existe ou foi removida.</p><a href="/" class="btn btn-primary">Voltar ao início</a></div></div>';
        require_once BASE_PATH . '/includes/footer.php';
        exit;
    }
    
    // DEFINIR VARIÁVEIS PARA O HEADER (ANTES DE INCLUIR)
    $pageTitle = $page['title'];
    $metaDescription = $page['meta_description'] ?: 'Complete seu registro e obtenha acesso ao curso gratuito completo';
    $metaKeywords = 'registro curso gratuito, inscrição online, acesso completo, certificado gratuito';
    $currentPage = 'registration';
    $showHeader = false; // Usaremos hero customizado
    $pageDescription = $page['excerpt'] ?: '¡El último paso para acceder a tu curso gratuito!';
    
    // Buscar informações da landing page para breadcrumbs
    $landingPageTitle = 'Curso';
    $landingPageSlug = '';
    $stepPageSlug = '';
    if (!empty($page['landing_page_id'])) {
        try {
            $db->query("SELECT title, slug FROM pages WHERE id = :id AND type = 'landing'");
            $db->bind(':id', $page['landing_page_id']);
            $landingPage = $db->single();
            if ($landingPage) {
                $landingPageTitle = $landingPage['title'];
                $landingPageSlug = $landingPage['slug'];
            }
            
            // Buscar página step1 para breadcrumb
            $db->query("SELECT slug FROM pages WHERE landing_page_id = :id AND type = 'step1' LIMIT 1");
            $db->bind(':id', $page['landing_page_id']);
            $stepPage = $db->single();
            if ($stepPage) {
                $stepPageSlug = $stepPage['slug'];
            }
        } catch (Exception $e) {
            error_log("Erro ao buscar páginas relacionadas: " . $e->getMessage());
        }
    }
    
    // Breadcrumbs
    $breadcrumbs = [
        '/cursos.php' => 'Cursos',
        '/pages/landing/' . $landingPageSlug => $landingPageTitle,
        '/pages/step1/' . $stepPageSlug => 'Contenido',
        '' => 'Registro'
    ];
    
    // Estilos customizados para esta página
    $customStyles = '
        /* ===== PRELOADER STYLES ===== */
        #preloader {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: linear-gradient(135deg, #4F46E5, #7C3AED);
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 9999;
            transition: opacity 0.5s ease;
        }

        #preloader.fade-out {
            opacity: 0;
            pointer-events: none;
        }

        .preloader-content {
            text-align: center;
            color: white;
            font-family: "Poppins", sans-serif;
        }

        .preloader-logo {
            margin-bottom: 2rem;
        }

        .preloader-logo i {
            font-size: 3rem;
            margin-bottom: 1rem;
            display: block;
        }

        .preloader-logo h2 {
            font-size: 1.5rem;
            font-weight: 600;
            margin: 0;
        }

        .preloader-spinner {
            width: 40px;
            height: 40px;
            border: 4px solid rgba(255, 255, 255, 0.3);
            border-top: 4px solid white;
            border-radius: 50%;
            margin: 2rem auto;
            animation: preloaderSpin 1s linear infinite;
        }

        .preloader-progress-bar {
            width: 200px;
            height: 4px;
            background: rgba(255, 255, 255, 0.3);
            border-radius: 2px;
            margin: 1rem auto;
            overflow: hidden;
        }

        .preloader-progress {
            height: 100%;
            background: white;
            border-radius: 2px;
            width: 0%;
            transition: width 0.1s ease;
        }

        .preloader-text {
            font-size: 0.9rem;
            opacity: 0.8;
            margin-top: 1rem;
        }

        @keyframes preloaderSpin {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }

        body.loading {
            overflow: hidden;
        }

        /* Modificar estas regras no seu CSS */
body.loading .main-wrapper {
    opacity: 0; /* Em vez de display: none */
    pointer-events: none;
    transition: opacity 0.5s ease;
}

body:not(.loading) .main-wrapper {
    opacity: 1;
    pointer-events: auto;
}

        @media (max-width: 768px) {
            .preloader-logo i { font-size: 2.5rem; }
            .preloader-logo h2 { font-size: 1.2rem; }
            .preloader-progress-bar { width: 150px; }
        }
        /* ===== FIM PRELOADER STYLES ===== */

        .hero-section {
    background: white; /* alterado de var(--gradient) para branco */
    color: #111; /* cor escura para o texto */
    padding: 3rem 0;
    position: relative;
    overflow: hidden;
}

        .hero-section::before {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1000 100\" fill=\"rgba(255,255,255,0.1)\"><polygon points=\"1000,100 1000,0 0,100\"/></svg>") no-repeat bottom;
            background-size: cover;
        }
        
        .hero-content {
            max-width: 800px;
            margin: 0 auto;
            position: relative;
            z-index: 1;
        }
        
        .hero-title {
            font-size: 1.5rem;
            font-weight: 700;
            margin-bottom: 1rem;
            text-shadow: 0 2px 4px rgba(0,0,0,0.1);
        }
        
        .hero-subtitle {
            font-size: 1.1rem;
            margin-bottom: 2rem;
            opacity: 0.95;
            text-shadow: 0 1px 2px rgba(0,0,0,0.1);
        }
        
        .step-indicator {
            display: flex;
            justify-content: center;
            align-items: center;
            margin: 2rem 0;
            max-width: 600px;
            margin-left: auto;
            margin-right: auto;
        }
        
        .step {
            width: 55px;
            height: 55px;
            border-radius: 50%;
            background: #e0e0e0;
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 600;
            position: relative;
            z-index: 2;
            text-decoration: none;
            color: #666;
            cursor: pointer;
            transition: all 0.3s ease;
            flex-shrink: 0;
        }
        
        .step-active {
            background: var(--gradient);
            color: white;
            animation: pulse 2s infinite;
        }
        
        .step-complete {
            background: #10B981;
            color: white;
        }
        
        .step-line {
            flex-grow: 1;
            height: 4px;
            background: #e0e0e0;
            margin: 0 20px;
            max-width: 150px;
            position: relative;
            flex-shrink: 0;
        }
        
        .step-line-active {
            background: var(--gradient);
        }
        
        .step-line-complete {
            background: #10B981;
        }
        
        .step-label {
            display: block;
            text-align: center;
            margin-top: 0.7rem;
            font-size: 0.85rem;
            font-weight: 500;
            color: #666;
            position: absolute;
            top: 100%;
            left: 50%;
            transform: translateX(-50%);
            white-space: nowrap;
        }
        
        .step-active .step-label {
            color: var(--primary-color);
            font-weight: 600;
        }
        
        .step-complete .step-label {
            color: #10B981;
        }
        
        .main-content {
            background: white;
            padding: 3rem 0;
            border-radius: 1rem;
            margin-top: -2rem;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
            position: relative;
            z-index: 2;
        }
        
        .content-block {
            max-width: 800px;
            margin: 0 auto;
            padding: 0 1.5rem;
        }
        
        .cta-button {
            display: inline-block;
            background: linear-gradient(90deg, #facc15, #fbbf24);
            color: #000 !important;
            font-weight: 600;
            padding: 1.5rem 3rem;
            border-radius: 12px;
            text-decoration: none !important;
            transition: all 0.3s ease;
            box-shadow: 0 6px 20px rgba(250, 204, 21, 0.4);
            font-size: 1.2rem;
            border: none;
            cursor: pointer;
            position: relative;
            overflow: hidden;
        }

        .cta-button::before {
            content: "";
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
            transition: left 0.5s;
        }

        .cta-button:hover::before {
            left: 100%;
        }

        .cta-button:hover {
            transform: translateY(-3px);
            box-shadow: 0 10px 30px rgba(250, 204, 21, 0.6);
            color: #000 !important;
            background: linear-gradient(90deg, #fbbf24, #f59e0b);
        }
        
        .whatsapp-cta-container {
            text-align: center;
            margin: 30px 0;
            padding: 25px;
            background-color: rgba(37, 211, 102, 0.1);
            border-radius: 12px;
            border: 1px solid rgba(37, 211, 102, 0.2);
        }

        .whatsapp-title {
            color: #075E54;
            font-size: 1.25rem;
            font-weight: 600;
            margin-bottom: 20px;
            text-align: center;
        }

        .whatsapp-cta-button {
            display: inline-block;
            background-color: #25D366;
            color: white !important;
            font-weight: 600;
            font-size: 16px;
            padding: 15px 25px;
            border-radius: 8px;
            text-decoration: none !important;
            transition: all 0.3s ease;
            box-shadow: 0 4px 15px rgba(37, 211, 102, 0.4);
            border: none;
        }

        .whatsapp-cta-button:hover {
            background-color: #20bf5b;
            transform: translateY(-2px);
            box-shadow: 0 6px 20px rgba(37, 211, 102, 0.5);
            color: white !important;
        }

        .whatsapp-cta-button i {
            margin-right: 10px;
            font-size: 20px;
        }    
        
        .benefits-section {
            background: rgba(16, 185, 129, 0.05);
            border-radius: 15px;
            padding: 2rem;
            margin: 3rem 0;
            border: 1px solid rgba(16, 185, 129, 0.2);
        }
        
        .benefits-section h3 {
            color: var(--success-color);
            margin-bottom: 1.5rem;
            font-weight: 600;
            text-align: center;
        }
        
        .benefits-list {
            list-style-type: none;
            padding-left: 0;
            margin: 0;
        }
        
        .benefits-list li {
            padding: 1rem 0;
            border-bottom: 1px solid rgba(16, 185, 129, 0.1);
            display: flex;
            align-items: center;
            transition: all 0.3s ease;
        }
        
        .benefits-list li:last-child {
            border-bottom: none;
        }
        
        .benefits-list li:hover {
            background: rgba(16, 185, 129, 0.05);
            padding-left: 1rem;
            border-radius: 8px;
        }
        
        .benefits-list li i {
            color: var(--success-color);
            margin-right: 1rem;
            font-size: 1.3rem;
            min-width: 24px;
        }
        
        .faq-section {
            margin-top: 3rem;
        }
        
        .faq-section h3 {
            text-align: center;
            color: var(--dark-color);
            margin-bottom: 2rem;
            font-weight: 600;
        }
        
        .faq-item {
            margin-bottom: 1rem;
            border: 1px solid var(--border-color);
            border-radius: 12px;
            overflow: hidden;
            transition: all 0.3s ease;
            background: white;
        }
        
        .faq-item:hover {
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
            transform: translateY(-2px);
        }
        
        .faq-question {
            padding: 1.5rem;
            background-color: rgba(79, 70, 229, 0.05);
            cursor: pointer;
            font-weight: 600;
            display: flex;
            align-items: center;
            justify-content: space-between;
            transition: all 0.3s ease;
            color: var(--dark-color);
        }
        
        .faq-question:hover {
            background-color: rgba(79, 70, 229, 0.1);
        }
        
        .faq-question i {
            color: var(--primary-color);
            transition: transform 0.3s ease;
        }
        
        .faq-question.active i {
            transform: rotate(180deg);
        }
        
        .faq-answer {
            padding: 1.5rem;
            border-top: 1px solid var(--border-color);
            display: none;
            color: var(--text-color);
            line-height: 1.6;
        }
        
         .progress-bar-container {
            width: 100%;
            background-color: #e0e0e0;
            border-radius: 1rem;
            margin: 1rem 0;
            height: 8px;
            overflow: hidden;
        }
        
        .progress-bar {
            height: 100%;
            background: var(--gradient);
            width: 100%;
            border-radius: 1rem;
            transition: width 0.8s ease;
        }
        
        .navigation-buttons {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-top: 3rem;
            gap: 1rem;
        }
        
        .prev-button {
            background: white;
            color: var(--primary-color);
            border: 2px solid var(--primary-color);
            padding: 0.75rem 1.5rem;
            border-radius: 8px;
            text-decoration: none;
            font-weight: 500;
            transition: all 0.3s ease;
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
        }
        
        .prev-button:hover {
            background: var(--primary-color);
            color: white;
            transform: translateY(-2px);
            box-shadow: 0 4px 15px rgba(79, 70, 229, 0.3);
        }

        .author-info {
            margin-top: 3rem;
            padding: 1.5rem;
            background: linear-gradient(to right, rgba(79, 70, 229, 0.05), rgba(124, 58, 237, 0.05));
            border-radius: 12px;
            position: relative;
            box-shadow: 0 3px 10px rgba(0, 0, 0, 0.03);
            transition: all 0.3s ease;
        }

        .author-info:hover {
            box-shadow: 0 5px 15px rgba(79, 70, 229, 0.1);
            transform: translateY(-2px);
        }

        .author-info:before {
            content: "";
            position: absolute;
            left: 0;
            top: 0;
            height: 100%;
            width: 4px;
            background: var(--gradient);
            border-radius: 12px 0 0 12px;
        }

        .post-meta {
            display: flex;
            flex-wrap: wrap;
            gap: 1.5rem;
            align-items: center;
            margin: 0;
            font-size: 0.95rem;
            color: var(--dark-color);
        }

        .post-meta .author, 
        .post-meta .date {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            padding: 0.5rem 0.8rem;
            background-color: white;
            border-radius: 8px;
            box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
            transition: all 0.3s ease;
        }

        .post-meta .author:hover, 
        .post-meta .date:hover {
            background-color: rgba(255, 255, 255, 0.9);
            box-shadow: 0 3px 8px rgba(0, 0, 0, 0.08);
            transform: translateY(-1px);
        }

        .post-meta i {
            color: var(--primary-color);
            font-size: 1rem;
        }

        .post-meta .author i {
            color: #7C3AED;
        }

        .post-meta .date i {
            color: #4F46E5;
        }

        .cta-section {
            background: linear-gradient(135deg, rgba(250, 204, 21, 0.1), rgba(251, 191, 36, 0.1));
            padding: 3rem 2rem;
            margin: 3rem 0;
            border-radius: 20px;
            text-align: center;
            border: 2px solid rgba(250, 204, 21, 0.3);
            position: relative;
            overflow: hidden;
        }

        .cta-section::before {
            content: "";
            position: absolute;
            top: -50%;
            left: -50%;
            width: 200%;
            height: 200%;
            background: radial-gradient(circle, rgba(250, 204, 21, 0.1) 0%, transparent 70%);
            animation: float 6s ease-in-out infinite;
        }

        @keyframes float {
            0%, 100% { transform: translateY(0) rotate(0deg); }
            50% { transform: translateY(-20px) rotate(180deg); }
        }

        .cta-section h3 {
            font-size: 1.8rem;
            margin-bottom: 1rem;
            color: var(--dark-color);
            position: relative;
            z-index: 1;
        }

        .cta-section p {
            font-size: 1.1rem;
            margin-bottom: 2rem;
            color: var(--text-color);
            position: relative;
            z-index: 1;
        }

        .urgency-notice {
            background: linear-gradient(135deg, #EF4444, #DC2626);
            color: white;
            padding: 1rem;
            border-radius: 10px;
            margin: 2rem 0;
            text-align: center;
            font-weight: 600;
            animation: pulse-red 2s infinite;
        }

        @keyframes pulse-red {
            0%, 100% { transform: scale(1); }
            50% { transform: scale(1.02); }
        }

        @keyframes pulse {
            0% { box-shadow: 0 0 0 0 rgba(79, 70, 229, 0.4); }
            70% { box-shadow: 0 0 0 10px rgba(79, 70, 229, 0); }
            100% { box-shadow: 0 0 0 0 rgba(79, 70, 229, 0); }
        }
        
        .floating-cta {
            position: fixed;
            bottom: 20px;
            right: 20px;
            z-index: 1000;
            animation: bounce 2s infinite;
        }

        @keyframes bounce {
            0%, 100% { transform: translateY(0); }
            50% { transform: translateY(-10px); }
        }
        
        @media (max-width: 768px) {
            .hero-title {
                font-size: 1.5rem;
            }
            
            .hero-subtitle {
                font-size: 1rem;
            }
            
            .hero-section {
                padding: 2rem 0;
            }
            
            .navigation-buttons {
                flex-direction: column;
                gap: 1rem;
            }
            
            .prev-button, .cta-button {
                width: 100%;
                text-align: center;
                justify-content: center;
            }
            
            .step-indicator {
                max-width: 400px;
            }
            
            .step {
                width: 45px;
                height: 45px;
                font-size: 14px;
            }
            
            .step-line {
                margin: 0 15px;
                max-width: 100px;
            }

            .step-label {
                font-size: 0.8rem;
            }

            .author-info {
                padding: 1rem;
                margin-top: 2rem;
            }
            
            .post-meta {
                flex-direction: column;
                align-items: flex-start;
                gap: 0.8rem;
            }
            
            .post-meta .author, 
            .post-meta .date {
                width: 100%;
            }

            .cta-button {
                font-size: 1rem;
                padding: 1.2rem 2rem;
            }

            .benefits-section {
                padding: 1.5rem;
            }

            .faq-question {
                padding: 1rem;
            }

            .faq-answer {
                padding: 1rem;
            }

            .floating-cta {
                bottom: 10px;
                right: 10px;
            }
        }
    ';
    
    // Processar o conteúdo para inserir anúncios
    if (function_exists('insertAdsInContent')) {
        $page['content'] = insertAdsInContent($page['content'], $pageType);
    }    
        
    // Registra visualização da página
    $db->query("INSERT INTO page_views (page_id, visitor_ip, user_agent) 
               VALUES (:page_id, :visitor_ip, :user_agent)");
    $db->bind(':page_id', $page['id']);
    $db->bind(':visitor_ip', $_SERVER['REMOTE_ADDR']);
    $db->bind(':user_agent', $_SERVER['HTTP_USER_AGENT'] ?? '');
    $db->execute();
    
    // ==========================================
    // TRACKING UTM COM DADOS DA PÁGINA CARREGADOS
    // ==========================================
    
    // Registra page view com UTMs (agora que temos os dados da página)
    if (function_exists('registerConversion')) {
        try {
            registerConversion($page['id'], 'page_view', [
                'page_type' => 'registration',
                'page_title' => $page['title'] ?? '',
                'landing_page_id' => $page['landing_page_id'] ?? null
            ]);
        } catch (Exception $e) {
            if (function_exists('logError')) {
                logError("Erro no registro de conversão: " . $e->getMessage());
            }
        }
    }
    
    // Registra acesso com pixel se a página estiver associada a uma landing
    if (isset($page) && !empty($page['landing_page_id'])) {
        try {
            if (isset($pixelIntegraOn) && is_object($pixelIntegraOn)) {
                $pixelIntegraOn->registerAccess($page['id'], $_SESSION['utm_params'] ?? []);
            }
        } catch (Exception $e) {
            if (function_exists('logError')) {
                logError("Erro no registro do pixel: " . $e->getMessage());
            }
        }
    }
    
    // Define as URLs baseadas na landing_page_id desta página
    $landingPageId = $page['landing_page_id'] ?? $landingId ?? 0;
    
    // URLs de navegação
    $landingUrl = '/pages/landing?id=' . $landingPageId;
    $step1Url = '/pages/step1?landing=' . $landingPageId;
    
    // Navegação
    $prevPageUrl = $step1Url;  // Voltar para step1
    
    // Define o link do CTA (usa o configurado da página)
    $ctaLink = !empty($page['cta_link']) ? $page['cta_link'] : '#';
    
} catch (Exception $e) {
    if (function_exists('logError')) {
        logError("Erro ao carregar página registration: " . $e->getMessage());
    }
    
    // Define valores padrão em caso de erro
    $pageTitle = 'Erro ao carregar página';
    $metaDescription = 'Ocorreu um erro ao carregar a página solicitada.';
    $currentPage = 'registration';
    $showHeader = false;
    
    require_once BASE_PATH . '/includes/header.php';
    echo '<div class="container mt-5"><div class="alert alert-danger text-center"><h4>Erro</h4><p>Ocorreu um erro ao carregar a página. Por favor, tente novamente mais tarde.</p><a href="/" class="btn btn-primary">Voltar ao início</a></div></div>';
    require_once BASE_PATH . '/includes/footer.php';
    exit;
}

// INCLUIR O HEADER (APÓS DEFINIR TODAS AS VARIÁVEIS)
require_once BASE_PATH . '/includes/header.php';
?>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9919806376063326"
     crossorigin="anonymous"></script>
    <script>
    // Adiciona classe loading ao body imediatamente
    document.body.classList.add('loading');
    </script>

    <div id="preloader">
        <div class="preloader-content">
            <div class="preloader-logo">
                <i class="fas fa-graduation-cap"></i>
                <h2>Curso Gratuito</h2>
            </div>
            
            <div class="preloader-spinner"></div>
            
            <div class="preloader-progress-bar">
                <div class="preloader-progress" id="preloaderProgress"></div>
            </div>
            
            <p class="preloader-text">Cargando registro...</p>
        </div>
    </div>

    <div class="main-wrapper">
        <header class="hero-section">
            <div class="container">
                <div class="hero-content text-center">
                    <h1 class="hero-title"><?php echo htmlspecialchars($page['title']); ?></h1>
                     <center><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9919806376063326"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-9919806376063326"
     data-ad-slot="3186050435"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></center><br>
                    <p class="hero-subtitle"><?php echo htmlspecialchars($pageDescription); ?></p>
                    
                </div>
            </div>
        </header>

        <div class="container">
            <div class="step-indicator">
                <a href="<?php echo htmlspecialchars($prevPageUrl); ?>" class="step step-complete" title="Página Inicial - Completa">
                    <i class="fas fa-check"></i>
                </a>
                
                <div class="step-line step-line-complete"></div>
                
                <div class="step step-complete" title="Conteúdo do Curso - Completo">
                    <i class="fas fa-check"></i>
                </div>
                
                <div class="step-line step-line-complete"></div>            
                <div class="step step-active" title="Registro">
                    <i class="fas fa-graduation-cap"></i>
                </div>
            </div>
            
             <div class="progress-bar-container" title="Progresso: 100% completo">
                <div class="progress-bar"></div>
            </div>
            
            <div class="main-content">
                <div class="content-block">
                    <div class="mb-4">
                        <?php 
                        try {
                            if ($whatsappDynamicAvailable && isset($whatsappDynamic) && is_object($whatsappDynamic)) {
                                // Usa o sistema dinâmico se estiver disponível
                                $content = $whatsappDynamic->processContent($page['content']);
                            } else {
                                // Fallback: exibe o conteúdo original
                                $content = $page['content'];
                            }
                            
                            // Divide o conteúdo em parágrafos
                            $paragraphs = explode('</p>', $content);
                            
                            // Exibe os primeiros 4 parágrafos
                            for ($i = 0; $i < 4 && isset($paragraphs[$i]); $i++) {
                                echo $paragraphs[$i] . '</p>';
                            }
                            
                        } catch (Exception $e) {
                            // Em caso de erro, sempre exibe o conteúdo original
                            error_log("Erro no processamento do WhatsApp dinâmico: " . $e->getMessage());
                            echo $page['content'];
                        }
                        ?>
                    </div>
                    
                    <div id="secao-cta" class="cta-section">
                        <h3>📚 Acceso al Curso Completo</h3>
                        <p class="mb-4">Para inscribirte y acceder al contenido completo del curso, visita el sitio oficial.</p>
                        <a href="<?php echo htmlspecialchars($ctaLink); ?>" 
                           class="cta-button" 
                           onclick="registrarRedirecionamiento('acceso_sitio', <?php echo $page['id']; ?>)"
                           <?php if(strpos($ctaLink, 'http') === 0) echo 'target="_blank"'; ?>>
                            <i class="fas fa-external-link-alt me-2"></i>
                            <?php echo htmlspecialchars($page['cta_text'] ?: 'Visitar Sitio Oficial'); ?>
                            <i class="fas fa-arrow-right ms-2"></i>
                        </a>
                    </div>
                    
                    <?php
                        // Exibe o restante do conteúdo
                        for ($i = 4; $i < count($paragraphs); $i++) {
                            if (trim($paragraphs[$i]) !== '') {
                                echo $paragraphs[$i] . '</p>';
                            }
                        }
                    ?>

                    <div class="benefits-section">
                        <h3>📋 Conteúdo do Curso:</h3>
                        <ul class="benefits-list">
                            <li><i class="fas fa-check-circle"></i> Acesso ao conteúdo educativo completo</li>
                            <li><i class="fas fa-check-circle"></i> Material didático de apoio</li>
                            <li><i class="fas fa-check-circle"></i> Certificado de participação digital</li>
                            <li><i class="fas fa-check-circle"></i> Suporte através de canais oficiais</li>
                            <li><i class="fas fa-check-circle"></i> Atualizações de conteúdo</li>
                            <li><i class="fas fa-check-circle"></i> Acesso à comunidade de estudantes</li>
                            <li><i class="fas fa-check-circle"></i> Recursos complementares disponíveis</li>
                        </ul>
                    </div>

                    <div class="faq-section">
                        <h3>❓ Preguntas Frecuentes</h3>
                        
                        <div class="faq-item">
                            <div class="faq-question" onclick="toggleFaq(this)">
                                <span>¿El curso es realmente 100% gratuito?</span>
                                <i class="fas fa-chevron-down"></i>
                            </div>
                            <div class="faq-answer">
                                <p><strong>Sim!</strong> O curso é oferecido sem custo para os participantes. Não há taxas de inscrição ou mensalidades.</p>
                            </div>
                        </div>
                        
                        <div class="faq-item">
                            <div class="faq-question" onclick="toggleFaq(this)">
                                <span>¿Por cuánto tiempo tendré acceso al contenido?</span>
                                <i class="fas fa-chevron-down"></i>
                            </div>
                            <div class="faq-answer">
                                <p>Você terá <strong>acesso permanente</strong> ao conteúdo do curso após a inscrição. Poderá acessar quando desejar, de qualquer dispositivo.</p>
                            </div>
                        </div>
                        
                        <div class="faq-item">
                            <div class="faq-question" onclick="toggleFaq(this)">
                                <span>¿Puedo acceder desde mi celular o tablet?</span>
                                <i class="fas fa-chevron-down"></i>
                            </div>
                            <div class="faq-answer">
                                <p><strong>Claro!</strong> A plataforma é responsiva e pode ser acessada de smartphones, tablets, computadores e notebooks.</p>
                            </div>
                        </div>

                        <div class="faq-item">
                            <div class="faq-question" onclick="toggleFaq(this)">
                                <span>¿Recibiré un certificado al finalizar?</span>
                                <i class="fas fa-chevron-down"></i>
                            </div>
                            <div class="faq-answer">
                                <p><strong>Sim!</strong> Ao completar o curso você receberá um certificado digital que poderá ser baixado e compartilhado.</p>
                            </div>
                        </div>

                        <div class="faq-item">
                            <div class="faq-question" onclick="toggleFaq(this)">
                                <span>¿Hay límite de tiempo para completar el curso?</span>
                                <i class="fas fa-chevron-down"></i>
                            </div>
                            <div class="faq-answer">
                                <p><strong>Não há prazos rígidos.</strong> Você pode estudar no seu próprio ritmo. O conteúdo fica disponível para acesso a qualquer momento.</p>
                            </div>
                        </div>
                    </div>
                    
                    <div class="navigation-buttons">
                        <a href="<?php echo htmlspecialchars($prevPageUrl); ?>" class="prev-button" onclick="registrarRedirecionamento('anterior', <?php echo $page['id']; ?>)">
                            <i class="fas fa-arrow-left"></i>
                            Volver al Contenido
                        </a>
                        
                        <a href="<?php echo htmlspecialchars($ctaLink); ?>" class="cta-button" onclick="registrarRedirecionamento('visita_oficial', <?php echo $page['id']; ?>)" <?php if(strpos($ctaLink, 'http') === 0) echo 'target="_blank"'; ?>>
                            Acceder al Sitio Oficial
                            <i class="fas fa-external-link-alt ms-2"></i>
                        </a>
                    </div>

                    <div class="author-info">
                        <?php
                        try {
                            $publishDate = new DateTime($page['created_at'] ?? 'now');
                            $formattedDate = $publishDate->format('d/m/Y');
                            
                            // Nome do autor
                            $authorName = "Sebastian Álvarez";
                            if (!empty($page['author_id'])) {
                                $db->query("SELECT username FROM admins WHERE id = :author_id");
                                $db->bind(':author_id', $page['author_id']);
                                $author = $db->single();
                                if ($author && isset($author['username'])) {
                                    $authorName = htmlspecialchars($author['username']);
                                }
                            }
                        } catch (Exception $e) {
                            error_log("Erro ao buscar info do autor: " . $e->getMessage());
                            $authorName = "Sebastian Álvarez";
                            $formattedDate = date('d/m/Y');
                        }
                        ?>
                        <p class="post-meta">
                            <span class="author">
                                <i class="fas fa-user-edit"></i> 
                                <?php echo $authorName; ?>
                            </span>
                            <span class="date">
                                <i class="fas fa-calendar-alt"></i> 
                                <?php echo $formattedDate; ?>
                            </span>
                            <span class="date">
                                <i class="fas fa-folder"></i> 
                                Cursos Gratuitos
                            </span>
                        </p>
                    </div>
                </div>
            </div>
        </div>

        <div class="floating-cta d-md-none">
            <a href="<?php echo htmlspecialchars($ctaLink); ?>" class="cta-button" onclick="registrarRedirecionamento('cta_floating', <?php echo $page['id']; ?>)" <?php if(strpos($ctaLink, 'http') === 0) echo 'target="_blank"'; ?>>
                <i class="fas fa-external-link-alt"></i>
            </a>
        </div>
    </div>

    <script>
    // PRELOADER JAVASCRIPT
    document.addEventListener('DOMContentLoaded', function() {
        const preloader = document.getElementById('preloader');
        const progress = document.getElementById('preloaderProgress');
        
        let progressValue = 0;
        const duration = 2000; // 3 segundos
        const interval = 50;
        const increment = (100 * interval) / duration;
        
        const progressInterval = setInterval(() => {
            progressValue += increment;
            
            if (progressValue >= 100) {
                progressValue = 100;
                clearInterval(progressInterval);
                
                setTimeout(() => {
                    preloader.classList.add('fade-out');
                    document.body.classList.remove('loading');
                    
                    setTimeout(() => {
                        if (preloader.parentNode) {
                            preloader.parentNode.removeChild(preloader);
                        }
                    }, 500);
                }, 200);
            }
            
            if (progress) {
                progress.style.width = progressValue + '%';
            }
        }, interval);
        
        // CÓDIGO DA PÁGINA (após o preloader)
        setTimeout(() => {
            // ==========================================
            // FUNÇÃO CORRIGIDA PARA TRACKING COM UTMs
            // ==========================================
            function registrarRedirecionamiento(tipo, pageId) {
                // Coleta UTMs do localStorage se disponível
                const utmData = {};
                const utmParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'gclid', 'fbclid'];
                
                // Tenta coletar UTMs da URL atual
                const urlParams = new URLSearchParams(window.location.search);
                utmParams.forEach(param => {
                    if (urlParams.has(param)) {
                        utmData[param] = urlParams.get(param);
                    }
                });
                
                // Dados para envio
                const trackingData = {
                    action: 'redirect',
                    tipo: tipo,
                    page_id: pageId,
                    utm_data: utmData,
                    referrer: document.referrer,
                    timestamp: Date.now()
                };
                
                if (typeof fetch !== 'undefined') {
                    fetch('/includes/track.php', {
                        method: 'POST',
                        headers: {
                            'Content-Type': 'application/json',
                        },
                        body: JSON.stringify(trackingData)
                    })
                    .then(response => response.json())
                    .then(data => {
                        console.log('Tracking successful:', data);
                        
                        // Envia para pixels se disponíveis
                        sendToPixels(tipo, utmData);
                    })
                    .catch(error => {
                        console.error('Tracking error:', error);
                    });
                }
            }

            // Função para enviar dados aos pixels
            function sendToPixels(eventType, utmData) {
                // Facebook Pixel
                if (typeof fbq !== 'undefined') {
                    fbq('track', 'CustomEvent', {
                        event_type: eventType,
                        utm_source: utmData.utm_source || '',
                        utm_campaign: utmData.utm_campaign || ''
                    });
                }
                
                // Google Analytics
                if (typeof gtag !== 'undefined') {
                    gtag('event', eventType, {
                        custom_map: utmData
                    });
                }
                
                // JoinAds
                if (typeof window.joinads !== 'undefined') {
                    window.joinads.track(eventType, utmData);
                }
            }

            // Auto-captura UTMs na primeira carga
            const urlParams = new URLSearchParams(window.location.search);
            const utmParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'gclid', 'fbclid'];
            const hasUtms = utmParams.some(param => urlParams.has(param));
            
            if (hasUtms) {
                console.log('UTMs detectados na URL:', Object.fromEntries(urlParams));
                
                // Registra page view automaticamente se há UTMs
                registrarRedirecionamiento('auto_page_view', <?php echo $page['id'] ?? 0; ?>);
            }

            // Expor funções globalmente
            window.registrarRedirecionamiento = registrarRedirecionamiento;
            window.registrarRedirecionamento = registrarRedirecionamiento; // Compatibilidade português
            
            // Função para alternar exibição de FAQs
            window.toggleFaq = function(element) {
                const answer = element.nextElementSibling;
                const icon = element.querySelector('i');
                
                // Fechar outros FAQs abertos
                document.querySelectorAll('.faq-question').forEach(q => {
                    if (q !== element) {
                        q.classList.remove('active');
                        q.nextElementSibling.style.display = 'none';
                        q.querySelector('i').classList.remove('fa-chevron-up');
                        q.querySelector('i').classList.add('fa-chevron-down');
                    }
                });
                
                if (answer.style.display === 'block') {
                    answer.style.display = 'none';
                    icon.classList.remove('fa-chevron-up');
                    icon.classList.add('fa-chevron-down');
                    element.classList.remove('active');
                } else {
                    answer.style.display = 'block';
                    icon.classList.remove('fa-chevron-down');
                    icon.classList.add('fa-chevron-up');
                    element.classList.add('active');
                }
            }
            
            // Animação da barra de progresso
            const progressBar = document.querySelector('.progress-bar');
            if (progressBar) {
                setTimeout(() => {
                    progressBar.style.width = '100%';
                }, 500);
            }

            // Rastrear cliques nas etapas
            const stepLinks = document.querySelectorAll('.step-indicator .step');
            
            stepLinks.forEach(function(link) {
                link.addEventListener('click', function(e) {
                    const currentStep = '<?php echo $pageType; ?>';
                    
                    // Registrar navegação na etapa
                    fetch('/includes/track.php', {
                        method: 'POST',
                        headers: {
                            'Content-Type': 'application/x-www-form-urlencoded',
                        },
                        body: 'action=step_navigation&from=' + currentStep + '&to=' + this.getAttribute('href') + '&page_id=' + <?php echo $page['id']; ?>
                    })
                    .then(response => response.json())
                    .catch(error => console.error('Tracking error:', error));
                });
            });

            // Intersection Observer para animações
            const observerOptions = {
                threshold: 0.1,
                rootMargin: '0px 0px -50px 0px'
            };

            const observer = new IntersectionObserver((entries) => {
                entries.forEach(entry => {
                    if (entry.isIntersecting) {
                        entry.target.style.opacity = '1';
                        entry.target.style.transform = 'translateY(0)';
                    }
                });
            }, observerOptions);

            // Observa elementos para animação
            document.querySelectorAll('.benefits-section, .faq-section, .author-info, .cta-section, .navigation-buttons').forEach(el => {
                el.style.opacity = '0';
                el.style.transform = 'translateY(20px)';
                el.style.transition = 'opacity 0.8s ease, transform 0.8s ease';
                observer.observe(el);
            });

            // Loading states para botões
            document.querySelectorAll('.cta-button, .prev-button').forEach(button => {
                button.addEventListener('click', function() {
                    if (!this.classList.contains('loading')) {
                        this.classList.add('loading');
                        const originalText = this.innerHTML;
                        this.innerHTML = '<i class="fas fa-spinner fa-spin me-2"></i>Procesando...';
                        
                        // Remove o loading após 3 segundos
                        setTimeout(() => {
                            this.classList.remove('loading');
                            this.innerHTML = originalText;
                        }, 3000);
                    }
                });
            });

            // Auto-scroll para CTA após 5 segundos
            setTimeout(() => {
                const ctaSection = document.getElementById('secao-cta');
                if (ctaSection && window.scrollY < 200) {
                    ctaSection.scrollIntoView({ 
                        behavior: 'smooth', 
                        block: 'center' 
                    });
                }
            }, 5000);

            // Efeito de confetti ao clicar no CTA principal (opcional)
            document.querySelectorAll('.cta-button').forEach(button => {
                button.addEventListener('click', function(e) {
                    createConfetti(e.target);
                });
            });

            // Debug UTMs (apenas se debug=1 na URL)
            if (urlParams.has('debug') && urlParams.get('debug') === '1') {
                console.log('=== DEBUG UTM ===');
                console.log('UTMs na URL:', Object.fromEntries(urlParams));
                console.log('UTMs no sessionStorage:', {
                    utm_source: sessionStorage.getItem('utm_source'),
                    utm_medium: sessionStorage.getItem('utm_medium'),
                    utm_campaign: sessionStorage.getItem('utm_campaign')
                });
            }
        }, 3500); // Executa após o preloader
    });

    // Função para criar efeito de confetti
    function createConfetti(element) {
        const colors = ['#f43f5e', '#eab308', '#22c55e', '#3b82f6', '#a855f7'];
        for (let i = 0; i < 50; i++) {
            const confetti = document.createElement('div');
            confetti.style.position = 'absolute';
            confetti.style.width = '10px';
            confetti.style.height = '10px';
            confetti.style.backgroundColor = colors[Math.floor(Math.random() * colors.length)];
            confetti.style.left = Math.random() * 100 + '%';
            confetti.style.animationDuration = Math.random() * 3 + 2 + 's';
            confetti.style.animationName = 'fall';
            confetti.style.pointerEvents = 'none';
            confetti.style.zIndex = '9999';
            
            document.body.appendChild(confetti);
            
            setTimeout(() => {
                confetti.remove();
            }, 5000);
        }
    }

    // CSS adicional para estados de loading e confetti
    const style = document.createElement('style');
    style.textContent = `
        .loading {
            opacity: 0.7;
            pointer-events: none;
        }
        
        .loading:hover {
            transform: none !important;
        }

        @keyframes fall {
            to {
                transform: translateY(100vh) rotate(360deg);
            }
        }
    `;
    document.head.appendChild(style);
    </script>

    <script>
    // Preserva UTMs durante navegação
    (function() {
        // Captura UTMs da URL atual
        const urlParams = new URLSearchParams(window.location.search);
        const utmParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'gclid', 'fbclid'];
        const currentUtms = {};
        
        utmParams.forEach(param => {
            if (urlParams.has(param)) {
                currentUtms[param] = urlParams.get(param);
                // Preserva no sessionStorage
                sessionStorage.setItem(param, urlParams.get(param));
            }
        });
        
        // Adiciona UTMs preservados aos links internos
        document.addEventListener('DOMContentLoaded', function() {
            const internalLinks = document.querySelectorAll('a[href^="/"], a[href^="./"], a[href^="../"]');
            
            internalLinks.forEach(link => {
                link.addEventListener('click', function() {
                    const href = this.getAttribute('href');
                    const hasQuery = href.includes('?');
                    const separator = hasQuery ? '&' : '?';
                    
                    // Adiciona UTMs preservados ao link
                    const utmString = utmParams
                        .filter(param => sessionStorage.getItem(param))
                        .map(param => `${param}=${encodeURIComponent(sessionStorage.getItem(param))}`)
                        .join('&');
                        
                    if (utmString) {
                        this.setAttribute('href', href + separator + utmString);
                    }
                });
            });
        });
    })();
    </script>

    <script>
    document.addEventListener('DOMContentLoaded', function() {
        // Envia UTMs para todos os pixels configurados
        <?php
        if (function_exists('sendUtmsToPixels')) {
            sendUtmsToPixels();
        }
        ?>
    });
    </script>
<script>
function registrarConversao(tipo, pageId, valor = null) {
    // Dados adicionais da conversão
    const conversionData = {
        page_url: window.location.pathname,
        page_title: document.title,
        timestamp: Date.now(),
        user_agent: navigator.userAgent
    };
    
    // Envia via AJAX
    fetch('/includes/track-conversion.php', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
        },
        body: JSON.stringify({
            page_id: pageId,
            conversion_type: tipo,
            conversion_value: valor,
            conversion_data: conversionData
        })
    })
    .then(response => response.json())
    .then(data => {
        if (data.success) {
            console.log('Conversão registrada:', tipo);
        }
    })
    .catch(error => {
        console.error('Erro ao registrar conversão:', error);
    });
}

// Exemplo de uso nos botões
document.addEventListener('DOMContentLoaded', function() {
    // CTAs principais
    document.querySelectorAll('.cta-button').forEach(button => {
        button.addEventListener('click', function() {
            const pageId = this.getAttribute('data-page-id') || 0;
            registrarConversao('cta_click', pageId, this.textContent);
        });
    });
    
    // Links do WhatsApp
    document.querySelectorAll('.whatsapp-cta-button').forEach(button => {
        button.addEventListener('click', function() {
            const pageId = this.getAttribute('data-page-id') || 0;
            registrarConversao('whatsapp_click', pageId, this.href);
        });
    });
    
    // Formulários
    document.querySelectorAll('form').forEach(form => {
        form.addEventListener('submit', function() {
            const pageId = this.getAttribute('data-page-id') || 0;
            registrarConversao('form_submit', pageId, this.action);
        });
    });
});
</script>
<script>
function initializeAdsense() {
    // Aguarda o preloader terminar
    setTimeout(function() {
        // Verifica se o AdSense ainda não foi inicializado
        if (typeof adsbygoogle !== 'undefined') {
            // Encontra todos os anúncios não inicializados
            const ads = document.querySelectorAll('.adsbygoogle');
            ads.forEach(function(ad) {
                if (!ad.dataset.adsbygoogleStatus) {
                    (adsbygoogle = window.adsbygoogle || []).push({});
                }
            });
        }
    }, 4000); // Após o preloader + margem de segurança
}

// Inicializa quando a página estiver pronta
if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', initializeAdsense);
} else {
    initializeAdsense();
}
</script>
<?php
// Incluir o footer
require_once BASE_PATH . '/includes/footer.php';
?>