const ninodemTestimonialsFilter = {
    init() {
        // Seleciona todos os carousels de depoimentos
        document.querySelectorAll('.testimonials-carousel .carousel').forEach(carousel => {
            // Obtém o container do carousel e depois encontra os botões de filtro
            const parentContainer = carousel.closest('.testimonials');
            const filterButtons = parentContainer.querySelectorAll('.wp-block-buttons .wp-block-button');
            const slides = carousel.querySelectorAll('.carousel-item');
            const indicatorsContainer = carousel.querySelector('.carousel-indicators');

            if (!filterButtons.length) return; // Sai se não houver botões

            // Obtém o primeiro botão e define como ativo
            const firstButton = filterButtons[0];
            firstButton.classList.add('active');
            const firstFilterSector = firstButton.querySelector('a').getAttribute('href').substring(1);
            const firstFilterClass = 'is-setor-' + firstFilterSector;

            // Função para atualizar os slides e os indicadores com base no setor selecionado
            function updateCarousel(filterClass) {
                slides.forEach(slide => {
                    slide.classList.remove('active');
                    slide.style.display = slide.classList.contains(filterClass) ? '' : 'none';
                });

                const visibleSlides = carousel.querySelectorAll('.carousel-item:not([style*="display: none"])');
                indicatorsContainer.innerHTML = '';

                visibleSlides.forEach((slide, index) => {
                    if (index === 0) {
                        slide.classList.add('active');
                    }
                    const indicatorBtn = document.createElement('button');
                    indicatorBtn.setAttribute('type', 'button');
                    indicatorBtn.setAttribute('data-bs-target', `#${carousel.id}`);
                    indicatorBtn.setAttribute('data-bs-slide-to', index);
                    if (index === 0) {
                        indicatorBtn.classList.add('active');
                    }
                    indicatorsContainer.appendChild(indicatorBtn);
                });
            }

            // Adiciona eventos de clique nos botões de filtro
            filterButtons.forEach(button => {
                button.addEventListener('click', function(e) {
                    e.preventDefault();
                    filterButtons.forEach(b => b.classList.remove('active'));
                    button.classList.add('active');

                    const filterSector = button.querySelector('a').getAttribute('href').substring(1);
                    updateCarousel('is-setor-' + filterSector);
                });
            });

            // Aplica o filtro inicial baseado no primeiro botão
            updateCarousel(firstFilterClass);
        });
    }
};

document.addEventListener('DOMContentLoaded', () => ninodemTestimonialsFilter.init());
