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 = '