document.addEventListener('DOMContentLoaded', function() {
    // Tooltips para botones
    const tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
    tooltipTriggerList.map(function (tooltipTriggerEl) {
        return new bootstrap.Tooltip(tooltipTriggerEl);
    });
    
    // Mostrar/ocultar submenús en móviles
    if (window.innerWidth <= 768) {
        const dropdowns = document.querySelectorAll('.dropdown-toggle');
        dropdowns.forEach(dropdown => {
            dropdown.addEventListener('click', function(e) {
                if (this.parentElement.classList.contains('show')) {
                    return;
                }
                
                // Cerrar otros dropdowns abiertos
                document.querySelectorAll('.dropdown-menu').forEach(menu => {
                    menu.classList.remove('show');
                });
                
                const parent = this.parentElement;
                const menu = this.nextElementSibling;
                menu.classList.add('show');
                
                // Cerrar al hacer clic fuera
                document.addEventListener('click', function closeMenu(e) {
                    if (!parent.contains(e.target)) {
                        menu.classList.remove('show');
                        document.removeEventListener('click', closeMenu);
                    }
                });
            });
        });
    }

    // Funcionalidad específica para la página de asignación
if (document.getElementById('assignModal')) {
    // Selección múltiple
    const selectAll = document.getElementById('selectAll');
    const checkboxes = document.querySelectorAll('tbody .form-check-input');
    const massAssignBtn = document.getElementById('massAssignBtn');
    
    selectAll.addEventListener('change', function() {
        checkboxes.forEach(checkbox => {
            checkbox.checked = selectAll.checked;
            toggleRowSelection(checkbox);
        });
        updateMassAssignButton();
    });
    
    checkboxes.forEach(checkbox => {
        checkbox.addEventListener('change', function() {
            toggleRowSelection(this);
            updateSelectAllCheckbox();
            updateMassAssignButton();
        });
    });
    
    function toggleRowSelection(checkbox) {
        const row = checkbox.closest('tr');
        if (checkbox.checked) {
            row.classList.add('selected');
        } else {
            row.classList.remove('selected');
        }
    }
    
    function updateSelectAllCheckbox() {
        const allChecked = [...checkboxes].every(checkbox => checkbox.checked);
        const someChecked = [...checkboxes].some(checkbox => checkbox.checked);
        
        selectAll.checked = allChecked;
        selectAll.indeterminate = someChecked && !allChecked;
    }
    
    function updateMassAssignButton() {
        const anyChecked = [...checkboxes].some(checkbox => checkbox.checked);
        massAssignBtn.disabled = !anyChecked;
    }
    
    // Asignación individual
    const assignButtons = document.querySelectorAll('[data-bs-target="#assignModal"]');
    assignButtons.forEach(button => {
        button.addEventListener('click', function() {
            // Aquí iría la lógica para cargar los datos del aspirante en el modal
            console.log('Preparando asignación para:', 
                        this.closest('tr').querySelector('h6').textContent);
        });
    });
    
    // Filtros avanzados
    const filterBtn = document.querySelector('[data-bs-toggle="collapse"]');
    if (filterBtn) {
        filterBtn.addEventListener('click', function() {
            this.querySelector('i').classList.toggle('fa-rotate-90');
        });
    }
}

    // Simulación de carga de datos
    if (document.querySelector('.table')) {
        console.log('Cargando datos del dashboard...');
        // Aquí iría la llamada AJAX para obtener datos reales
    }

    // Funcionalidad específica para la página de estatus
if (document.getElementById('reassignModal')) {
    // Reasignación de candidatos
    document.querySelectorAll('[data-bs-target="#reassignModal"]').forEach(btn => {
        btn.addEventListener('click', function() {
            const row = this.closest('tr');
            const candidateName = row.querySelector('h6').textContent;
            const currentRecruiter = row.querySelector('td:nth-child(2)').textContent;
            
            console.log(`Preparando reasignación de ${candidateName} (actual: ${currentRecruiter})`);
            
            // Aquí iría la lógica para cargar datos en el modal
        });
    });
    
    // Filtrado por reclutador
    const filterDropdownItems = document.querySelectorAll('#statusFilterDropdown ~ .dropdown-menu .dropdown-item');
    filterDropdownItems.forEach(item => {
        item.addEventListener('click', function(e) {
            e.preventDefault();
            
            // Remover active de todos
            filterDropdownItems.forEach(i => i.classList.remove('active'));
            
            // Agregar active al seleccionado
            this.classList.add('active');
            
            // Actualizar texto del botón
            document.getElementById('statusFilterDropdown').querySelector('span').textContent = 
                this.textContent === 'Todos los reclutadores' ? 'Filtrar por reclutador' : this.textContent;
            
            // Aquí iría la lógica para filtrar la tabla
            console.log('Filtrando por:', this.textContent);
        });
    });
    
    // Paginación
    const paginationItems = document.querySelectorAll('.pagination .page-item');
    paginationItems.forEach(item => {
        item.addEventListener('click', function(e) {
            e.preventDefault();
            
            if (this.classList.contains('disabled')) return;
            
            // Remover active de todos
            paginationItems.forEach(i => i.classList.remove('active'));
            
            // Agregar active al seleccionado
            if (this.querySelector('.page-link').textContent.match(/^\d+$/)) {
                this.classList.add('active');
            }
            
            // Aquí iría la lógica para cargar la página
            console.log('Cargando página:', this.querySelector('.page-link').textContent);
        });
    });
}
});