/* sacconi-frontend.js */
document.addEventListener('DOMContentLoaded', function() {
    function loadSacconiCal(container, offset) {
        var $container = jQuery(container);
        var postId = $container.data('post-id');

        // ⚡ FIX OPACITÀ: Sbiadiamo solo il calendario interno
        $container.find('.s-custom-cal').css('opacity', '0.5'); 

        // ⚡ IL CRONOMETRO: Aspetta 500ms prima di mostrare l'animazione
        var loaderTimer = setTimeout(function() {
            $container.append('<div class="sacconi-loader-overlay"><div class="s-dot" style="background-color: #333;"></div><div class="s-dot" style="background-color: #000;"></div><div class="s-dot" style="background-color: #000;"></div></div>');
        }, 500);

        // ⚡ CHIAMATA AJAX SILENZIOSA AL SERVER
        jQuery.ajax({
            url: sacconi_data.ajax_url,
            type: 'POST',
            global: false, // Nasconde la chiamata al Tema per evitare errori
            data: {
                action: 'sacconi_sync_nav_cal',
                nonce: sacconi_data.nonce,
                post_id: postId,
                offset: offset
            },
            success: function(response) {
                // SPEGNI IL CRONOMETRO se il server è stato veloce
                clearTimeout(loaderTimer);
                
                // Sostituisce il calendario (e cancella in automatico i vecchi pallini)
                $container.html(response);
            }
        });
    }

    // Caricamento iniziale
    document.querySelectorAll('.sacconi-cal-ajax-container').forEach(el => loadSacconiCal(el, 0));

    // Navigazione frecce
    document.addEventListener('click', function(e) {
        const btn = e.target.closest('.s-nav-arrow');
        if (btn) {
            e.preventDefault();
            const container = btn.closest('.sacconi-cal-ajax-container');
            loadSacconiCal(container, btn.getAttribute('data-offset'));
        }
    });

    // Logica Swipe
    let tX = 0;
    document.addEventListener('touchstart', function(e) {
        if (e.target.closest('.sacconi-cal-ajax-container')) tX = e.changedTouches[0].screenX;
    }, {passive: true});

    document.addEventListener('touchend', function(e) {
        const container = e.target.closest('.sacconi-cal-ajax-container');
        if (!container) return;
        let diff = tX - e.changedTouches[0].screenX;
        if (Math.abs(diff) > 60) {
            const arrow = (diff > 0) ? container.querySelector('.next') : container.querySelector('.prev');
            if (arrow) arrow.click();
        }
    }, {passive: true});
});

// Navigazione tramite menu a tendina (Selettore Mese)
 // Navigazione tramite menu a tendina (Selettore Mese) con Delayed Loader
    jQuery(document).on('change', '.sacconi-month-selector', function() {
        var container = jQuery(this).closest('.sacconi-cal-ajax-container');
        var postId = jQuery(this).data('post-id');
        var offset = jQuery(this).val(); 
        
        container.find('.s-custom-cal').css('opacity', '0.5');

        // ⚡ IL CRONOMETRO: Aspetta 500ms (mezzo secondo) prima di mostrare l'animazione
        var loaderTimer = setTimeout(function() {
            container.append('<div class="sacconi-loader-overlay"><div class="s-dot"></div><div class="s-dot"></div><div class="s-dot"></div></div>');
        }, 500);
        
        jQuery.ajax({
            url: sacconi_data.ajax_url,
            type: 'POST',
            global: false, 
            data: {
                action: 'sacconi_sync_nav_cal',
                nonce: sacconi_data.nonce,
                post_id: postId,
                offset: offset
            },
            success: function(response) {
                // ⚡ SPEGNI IL CRONOMETRO se il server è stato veloce
                clearTimeout(loaderTimer);
                
                // Aggiorna il calendario (questo cancella automaticamente anche i pallini, se erano apparsi)
                container.html(response);
            }
        });
    });  