/**
 * Script para corregir problemas de desplazamiento infinito
 * Este script reemplaza el comportamiento problemático del scroll
 */

document.addEventListener('DOMContentLoaded', function() {
    // Deshabilitar el scroll automático que podría estar causando el problema
    if (window.scrollTo) {
        // Guardar la función original
        const originalScrollTo = window.scrollTo;
        
        // Sobrescribir temporalmente para diagnosticar
        window.scrollTo = function(...args) {
            // Registrar en consola para debug
            console.log('Scroll to called with args:', args);
            
            // Solo permitir scroll manual o explícitamente permitido desde nuestra app
            if (window.allowProgrammaticScroll) {
                originalScrollTo.apply(window, args);
            } else {
                console.warn('Prevented automatic scroll that might cause infinite scroll issues');
            }
        };
    }
    
    // Corregir la navegación entre secciones
    const navButtons = document.querySelectorAll('.btn-next, .btn-prev');
    
    navButtons.forEach(button => {
        button.addEventListener('click', function(e) {
            // Detener cualquier comportamiento predeterminado que pueda causar scroll
            e.preventDefault();
            e.stopPropagation();
            
            // Obtener secciones
            const currentSection = this.closest('.form-section');
            let targetSectionNum;
            
            if (this.classList.contains('btn-next')) {
                targetSectionNum = parseInt(this.getAttribute('data-next'), 10);
            } else if (this.classList.contains('btn-prev')) {
                targetSectionNum = parseInt(this.getAttribute('data-prev'), 10);
            }
            
            if (!isNaN(targetSectionNum)) {
                // Encontrar todas las secciones y la sección de destino
                const allSections = document.querySelectorAll('.form-section');
                let targetSection = null;
                
                allSections.forEach(section => {
                    const sectionNum = parseInt(section.getAttribute('data-section'), 10);
                    section.classList.remove('active');
                    
                    if (sectionNum === targetSectionNum) {
                        targetSection = section;
                    }
                });
                
                // Activar la sección de destino
                if (targetSection) {
                    targetSection.classList.add('active');
                    
                    // Actualizar la barra de progreso
                    updateProgressIndicators(targetSectionNum);
                    
                    // Scroll controlado al inicio de la sección
                    window.allowProgrammaticScroll = true;
                    window.scrollTo({
                        top: 0,
                        behavior: 'auto' // Usar 'auto' en lugar de 'smooth' para evitar animaciones problemáticas
                    });
                    window.allowProgrammaticScroll = false;
                }
            }
        });
    });
    
    // Función para actualizar indicadores de progreso
    function updateProgressIndicators(activeStep) {
        // Actualizar círculos de paso
        const progressSteps = document.querySelectorAll('.step');
        if (progressSteps.length > 0) {
            progressSteps.forEach(step => {
                const stepNum = parseInt(step.getAttribute('data-step'), 10);
                step.classList.remove('active', 'completed');
                
                if (stepNum === activeStep) {
                    step.classList.add('active');
                } else if (stepNum < activeStep) {
                    step.classList.add('completed');
                }
            });
        }
        
        // Actualizar barra de progreso
        const progressFill = document.querySelector('.progress-fill');
        if (progressFill) {
            const totalSteps = document.querySelectorAll('.step').length;
            const progressPercentage = (((activeStep - 1) / (totalSteps - 1)) * 100) || 0;
            progressFill.style.width = `${progressPercentage}%`;
        }
    }
});