/**
 * assets/js/admin/pending-orders.js
 *
 * Script Geral para o Painel de Administração do 1MZ For Artists.
 * Funcionalidades:
 * 1. Gestão exclusiva dos players de áudio (Pausa outros ao tocar um).
 * 2. Modal genérico para visualização de imagens/comprovativos.
 */

document.addEventListener('DOMContentLoaded', function() {

    /**
     * ==========================================================================
     * 1. GESTÃO DE ÁUDIO (PÁGINA DE AUDIÇÕES)
     * Garante que apenas uma música toca de cada vez.
     * ==========================================================================
     */
    const audioPlayers = document.querySelectorAll('audio');

    if (audioPlayers.length > 0) {
        audioPlayers.forEach(player => {
            player.addEventListener('play', function() {
                // Pausar todos os outros players
                audioPlayers.forEach(otherPlayer => {
                    if (otherPlayer !== player && !otherPlayer.paused) {
                        otherPlayer.pause();
                        otherPlayer.currentTime = 0; // Opcional: Reiniciar o outro player
                    }
                });
            });
        });
    }

    /**
     * ==========================================================================
     * 2. MODAL DE VISUALIZAÇÃO DE COMPROVATIVOS
     * Abre imagens em popup quando se clica em links com a classe .rmbz-view-screenshot
     * (Requer o HTML do modal presente no footer ou injetado via PHP)
     * ==========================================================================
     */
    
    // Cria o HTML do modal dinamicamente se não existir
    if (!document.getElementById('rmbz-screenshot-modal')) {
        const modalHTML = `
            <div id="rmbz-screenshot-modal" class="screenshot-modal-overlay">
                <span id="rmbz-modal-close" class="screenshot-modal-close">&times;</span>
                <img id="rmbz-modal-image" class="screenshot-modal-image" src="" alt="Visualização">
            </div>
        `;
        document.body.insertAdjacentHTML('beforeend', modalHTML);
    }

    const modalOverlay = document.getElementById('rmbz-screenshot-modal');
    const modalImage = document.getElementById('rmbz-modal-image');
    const modalClose = document.getElementById('rmbz-modal-close');

    // Função para abrir
    const openModal = (src) => {
        modalImage.src = src;
        modalOverlay.classList.add('active'); // Usa a classe definida no CSS
        modalOverlay.style.visibility = 'visible';
        modalOverlay.style.opacity = '1';
    };

    // Função para fechar
    const closeModal = () => {
        modalOverlay.classList.remove('active');
        modalOverlay.style.visibility = 'hidden';
        modalOverlay.style.opacity = '0';
        setTimeout(() => { modalImage.src = ''; }, 300); // Limpa src após transição
    };

    // Event Delegation: Detetar cliques em qualquer tabela do admin
    const adminBody = document.querySelector('body.wp-admin');
    
    if (adminBody) {
        adminBody.addEventListener('click', function(e) {
            // Verifica se clicou num link de ver imagem
            const link = e.target.closest('.rmbz-view-screenshot');
            if (link) {
                e.preventDefault();
                const imageSrc = link.dataset.src || link.href;
                if (imageSrc) openModal(imageSrc);
            }
        });
    }

    // Fechar modal ao clicar no X
    if (modalClose) {
        modalClose.addEventListener('click', closeModal);
    }

    // Fechar modal ao clicar no fundo
    if (modalOverlay) {
        modalOverlay.addEventListener('click', function(e) {
            if (e.target === modalOverlay) closeModal();
        });
    }

    // Fechar com ESC
    document.addEventListener('keydown', function(e) {
        if (e.key === 'Escape' && modalOverlay && modalOverlay.classList.contains('active')) {
            closeModal();
        }
    });

});