document.addEventListener('DOMContentLoaded', function () {
    document.querySelectorAll('.apartament-gallery-swiper').forEach(function (el) {
        new Swiper(el, {
            slidesPerView: 1,
            spaceBetween: 10,
            loop: true,
            zoom: false,
            navigation: {
                nextEl: el.parentElement.querySelector('.swiper-button-next'),
                prevEl: el.parentElement.querySelector('.swiper-button-prev'),
            },
        });
    });

    Fancybox.bind('[data-fancybox]', {
        animated: true,
        showClass: 'fancybox-fadeIn',
        hideClass: 'fancybox-fadeOut',
    });
});

// Historia cen
document.addEventListener('DOMContentLoaded', function () {
    var overlay  = document.getElementById('price-history-overlay');
    var closeBtn = document.getElementById('price-history-close');
    var elTitle  = document.getElementById('price-history-title');
    var elPrice  = document.getElementById('price-history-price');
    var elPriceM2= document.getElementById('price-history-sqm');
    var elTbody  = document.getElementById('price-history-tbody');

    if (!overlay || !closeBtn || !elTitle || !elPrice || !elPriceM2 || !elTbody) {
        console.warn('[historia-cen] Brakuje elementów popupa w DOM:', {
            overlay: !!overlay, closeBtn: !!closeBtn,
            elTitle: !!elTitle, elPrice: !!elPrice,
            elPriceM2: !!elPriceM2, elTbody: !!elTbody
        });
        return;
    }

    function openPopup() {
        overlay.setAttribute('aria-hidden', 'false');
        overlay.classList.add('is-open');
        document.body.style.overflow = 'hidden';
    }

    function closePopup() {
        overlay.setAttribute('aria-hidden', 'true');
        overlay.classList.remove('is-open');
        document.body.style.overflow = '';
    }

    // Zamknij przyciskiem X
    closeBtn.addEventListener('click', closePopup);

    // Zamknij klikając na overlay (poza modalem)
    overlay.addEventListener('click', function (e) {
        if (e.target === overlay) closePopup();
    });

    // Zamknij klawiszem Escape
    document.addEventListener('keydown', function (e) {
        if (e.key === 'Escape' && overlay.classList.contains('is-open')) closePopup();
    });

    // Kliknięcie w przycisk Historia cen
    document.querySelectorAll('.btn-historia-cen').forEach(function (btn) {
        btn.addEventListener('click', function () {
            var postId = this.dataset.postId;
            if (!postId) return;

            // Reset i pokaż "Ładowanie..."
            elTitle.textContent   = 'Ładowanie...';
            elPrice.textContent   = '';
            elPriceM2.textContent = '';
            elTbody.innerHTML     = '';
            openPopup();

            // Sprawdź dostępność danych globalnych (wp_localize_script)
            if (typeof apartamentsData === 'undefined') {
                elTitle.textContent = 'Błąd konfiguracji';
                return;
            }

            // Buduj FormData
            var formData = new FormData();
            formData.append('action',  'apartamenty_get_price_history');
            formData.append('post_id', postId);
            formData.append('nonce',   apartamentsData.nonce);

            fetch(apartamentsData.ajaxUrl, {
                method: 'POST',
                body: formData,
                credentials: 'same-origin',
            })
            .then(function (res) { return res.json(); })
            .then(function (json) {
                if (!json.success) {
                    elTitle.textContent = 'Brak danych';
                    return;
                }

                var d = json.data;

                elTitle.textContent   = d.title || '';
                elPrice.textContent   = d.price   ? d.price   + ' zł' : '—';
                elPriceM2.textContent = d.price_m2 ? d.price_m2 + ' zł' : '—';

                if (!d.history || d.history.length === 0) {
                    elTbody.innerHTML = '<tr><td colspan="3">Brak historii cen</td></tr>';
                    return;
                }

                elTbody.innerHTML = d.history.map(function (row) {
                    return '<tr>' +
                        '<td>' + (row.recorded_at || '') + '</td>' +
                        '<td>' + (row.price_m2 ? row.price_m2 + ' zł/m²' : '—') + '</td>' +
                        '<td>' + (row.price ? row.price + ' zł' : '—') + '</td>' +
                    '</tr>';
                }).join('');
            })
            .catch(function () {
                elTitle.textContent = 'Błąd ładowania';
            });
        });
    });
});
