document.addEventListener('DOMContentLoaded', function () {
    const navbar = document.getElementById('navbar');
    const currentPage = window.location.pathname;

    // Verificar si estamos en la página de detalle de producto
    if (currentPage.includes('detalleProducto.php') || currentPage.includes('detalleBlog.php')) {
        // Aplicar el estilo de scroll permanentemente en detalle producto
        navbar.classList.add('scrolled');
    } else {
        // Aplicar funcionalidad normal de scroll en otras páginas
        initScrollNavbar();
    }

    // Manejar navegación a secciones desde otras páginas
    handleSectionNavigation();

    // Manejar formulario de contacto
    const contactForm = document.getElementById('contactForm');

    if (contactForm) {
        contactForm.addEventListener('submit', function (e) {
            e.preventDefault();

            // Validar campos
            const name = contactForm.querySelector('input[name="name"]').value.trim();
            const email = contactForm.querySelector('input[name="email"]').value.trim();
            const phone = contactForm.querySelector('input[name="phone"]').value.trim();
            const city = contactForm.querySelector('input[name="city"]').value.trim();
            const message = contactForm.querySelector('textarea[name="message"]').value.trim();

            if (!name || !email || !phone || !city || !message) {
                notyf.error('Por favor, completa todos los campos obligatorios');
                return;
            }

            // Validar email
            const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
            if (!emailRegex.test(email)) {
                notyf.error('Por favor, ingresa un email válido');
                return;
            }

            // Validar teléfono (opcional - solo números y algunos caracteres)
            const phoneRegex = /^[\d\s\-\(\)\+]+$/;
            if (!phoneRegex.test(phone)) {
                notyf.error('Por favor, ingresa un teléfono válido');
                return;
            }

            // Mostrar loading
            const submitBtn = contactForm.querySelector('.btn-send');
            const originalText = submitBtn.textContent;
            submitBtn.textContent = 'Enviando...';
            submitBtn.disabled = true;

            const formData = new FormData();
            formData.append('name', name);
            formData.append('email', email);
            formData.append('phone', phone);
            formData.append('city', city);
            formData.append('message', message);

            // Enviar formulario
            fetch('php/enviarmail.php', {
                method: 'POST',
                body: formData
            })
                .then(response => response.json())
                .then(data => {
                    if (data.success) {
                        notyf.success(data.message || 'Mensaje enviado con éxito. Nos pondremos en contacto contigo pronto.');

                        // Limpiar formulario
                        contactForm.reset();

                        // Scroll suave hacia arriba de la sección contacto (opcional)
                        document.getElementById('contacto').scrollIntoView({
                            behavior: 'smooth',
                            block: 'start'
                        });

                    } else {
                        notyf.error(data.message || 'Error al enviar el mensaje. Por favor, intenta nuevamente.');
                    }
                })
                .catch(error => {
                    console.error('Error:', error);
                    notyf.error('Error de conexión. Verifica tu internet e intenta nuevamente.');
                })
                .finally(() => {
                    // Restaurar botón
                    submitBtn.textContent = originalText;
                    submitBtn.disabled = false;
                });
        });
    }

    // Manejar formulario de cotización del carrito
    const form = document.getElementById('formCotizacion');

    if (form) {
        form.addEventListener('submit', function (e) {
            e.preventDefault();

            // Validar campos
            const name = document.getElementById('name').value.trim();
            const email = document.getElementById('email').value.trim();
            const phone = document.getElementById('phone').value.trim();
            const city = document.getElementById('city').value.trim();

            if (!name || !email || !phone || !city) {
                notyf.error('Por favor, completa todos los campos obligatorios');
                return;
            }

            // Validar email
            const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
            if (!emailRegex.test(email)) {
                notyf.error('Por favor, ingresa un email válido');
                return;
            }

            // Validar carrito
            const cartItems = JSON.parse(localStorage.getItem('cart')) || [];
            if (cartItems.length === 0) {
                notyf.warning('Tu carrito está vacío. Agrega productos antes de solicitar cotización');
                return;
            }

            // Mostrar loading
            const submitBtn = form.querySelector('.btn-cart');
            const originalText = submitBtn.textContent;
            submitBtn.textContent = 'Enviando...';
            submitBtn.disabled = true;

            const formData = new FormData();
            formData.append('name', name);
            formData.append('email', email);
            formData.append('phone', phone);
            formData.append('city', city);

            // Agregar productos del carrito
            const productNames = [];
            const quantities = [];
            const prices = [];
            const totals = [];

            cartItems.forEach(item => {
                // Usar el nombre que ya incluye el color si aplica
                productNames.push(item.name);
                quantities.push(item.quantity);
                prices.push(item.price || 0);
                totals.push(item.price * item.quantity || 0);
            });

            if (productNames.length !== quantities.length ||
                productNames.length !== prices.length ||
                productNames.length !== totals.length) {
                notyf.error('Error en los datos del carrito. Por favor, recarga la página.');
                return;
            }

            const grandTotal = totals.reduce((sum, total) => sum + total, 0);
            console.log('Datos del carrito:', {
                productNames,
                quantities,
                prices,
                totals,
                grandTotal
            });

            productNames.forEach(name => formData.append('product_names[]', name));
            quantities.forEach(qty => formData.append('quantities[]', qty));
            prices.forEach(price => formData.append('prices[]', price));
            totals.forEach(total => formData.append('totals[]', total));



            formData.append('grand_total', grandTotal);

            // Enviar formulario
            fetch('php/cotizacion.php', {
                method: 'POST',
                body: formData
            })
                .then(response => response.json())
                .then(data => {
                    if (data.success) {
                        notyf.success(data.message || 'Cotización enviada con éxito. Nos pondremos en contacto contigo pronto.');

                        // Limpiar formulario
                        form.reset();

                        // Limpiar carrito después de enviar
                        localStorage.removeItem('cart');
                        if (typeof cart !== 'undefined') {
                            cart.items = [];
                            cart.updateCartCounter();
                            cart.loadCartContent();
                        }

                        // Cerrar sidebar después de un delay
                        setTimeout(() => {
                            document.getElementById('cart-sidebar').classList.remove('open');
                            document.getElementById('cart-overlay').classList.remove('open');
                            document.body.style.overflow = '';
                        }, 2000);

                    } else {
                        notyf.error(data.message || 'Error al enviar la cotización. Por favor, intenta nuevamente.');
                    }
                })
                .catch(error => {
                    console.error('Error:', error);
                    notyf.error('Error de conexión. Verifica tu internet e intenta nuevamente.');
                })
                .finally(() => {
                    // Restaurar botón
                    submitBtn.textContent = originalText;
                    submitBtn.disabled = false;
                });
        });
    }
});

function handleSectionNavigation() {
    // Verificar si hay un hash en la URL al cargar la página
    if (window.location.hash) {
        const targetSection = window.location.hash.substring(1); // Remover el #
        scrollToSection(targetSection);
    }

    // Agregar event listeners a los enlaces de navegación
    document.querySelectorAll('a[data-section]').forEach(link => {
        link.addEventListener('click', function (e) {
            const currentPage = window.location.pathname;
            const targetSection = this.getAttribute('data-section');

            // Si ya estamos en index.php, hacer scroll directo
            if (currentPage.includes('index.php') || currentPage === '/') {
                e.preventDefault();
                scrollToSection(targetSection);
                // Actualizar URL sin recargar
                history.pushState(null, null, `#${targetSection}`);
            }
            // Si estamos en otra página, dejar que navegue normalmente a index.php#seccion
        });
    });
}

function scrollToSection(sectionId) {
    // Esperar un poco para asegurar que el contenido esté cargado
    setTimeout(() => {
        const targetElement = document.getElementById(sectionId);
        if (targetElement) {
            const navbarHeight = document.getElementById('navbar').offsetHeight;
            const targetPosition = targetElement.offsetTop - navbarHeight - 20;

            window.scrollTo({
                top: targetPosition,
                behavior: 'smooth'
            });
        }
    }, 100);
}

//Verificar hash al cargar dinámicamente
function checkHashOnLoad() {
    if (window.location.hash) {
        const targetSection = window.location.hash.substring(1);
        scrollToSection(targetSection);
    }
}


function initScrollNavbar() {
    window.addEventListener('scroll', function () {
        const navbar = document.getElementById('navbar');
        const scrollPosition = window.scrollY;

        // Remover todas las clases de transición
        navbar.classList.remove('transitioning-25', 'transitioning-50', 'transitioning-75', 'scrolled');

        if (scrollPosition > 150) {
            navbar.classList.add('scrolled');
        } else if (scrollPosition > 100) {
            navbar.classList.add('transitioning-75');
        } else if (scrollPosition > 60) {
            navbar.classList.add('transitioning-50');
        } else if (scrollPosition > 30) {
            navbar.classList.add('transitioning-25');
        }
    });
}

const notyf = new Notyf({
    duration: 4000,
    position: {
        x: 'center',
        y: 'top'
    },
    types: [
        {
            type: 'success',
            background: '#4CAF50',
            icon: {
                className: 'fa fa-check',
                tagName: 'i',
                color: 'white'
            },
            dismissible: true
        },
        {
            type: 'error',
            background: '#f44336',
            icon: {
                className: 'fa fa-times',
                tagName: 'i',
                color: 'white'
            },
            dismissible: true
        },
        {
            type: 'warning',
            background: '#ff6e01',
            icon: {
                className: 'fa fa-exclamation-triangle',
                tagName: 'i',
                color: 'white'
            },
            dismissible: true
        }
    ]
});