(() => { 'use strict'; const root = document.currentScript?.closest('.md-page') || document.querySelector('.md-page'); if (!root) return; const $ = (s,c=root) => c.querySelector(s); const $$ = (s,c=root) => [...c.querySelectorAll(s)]; const panel = $('.md-mobile-panel'); const hamb = $('.md-hamb'); if (hamb && panel) { hamb.addEventListener('click', () => { panel.classList.toggle('md-open'); hamb.setAttribute('aria-expanded', panel.classList.contains('md-open')); }); } $$('.md-faq-q').forEach(b => b.addEventListener('click', () => { const item = b.closest('.md-faq-item'); if (item) item.classList.toggle('md-open'); })); if ('IntersectionObserver' in window) { const obs = new IntersectionObserver(entries => entries.forEach(e => { if (e.isIntersecting) e.target.classList.add('md-visible'); }), {threshold:.08}); $$('.md-reveal').forEach(el => obs.observe(el)); } else { $$('.md-reveal').forEach(el => el.classList.add('md-visible')); } const progress = $('.md-top-progress'); const onScroll = () => { if (!progress) return; const h = document.documentElement; const denom = Math.max(1, h.scrollHeight - h.clientHeight); progress.style.width = (h.scrollTop / denom * 100) + '%'; }; window.addEventListener('scroll', onScroll, {passive:true}); onScroll(); $$('.md-filter-btn').forEach(b => b.addEventListener('click', () => { $$('.md-filter-btn').forEach(x => x.classList.remove('md-active')); b.classList.add('md-active'); const f = b.dataset.filter; $$('.md-project-card[data-type]').forEach(c => { c.style.display = (f === 'all' || c.dataset.type === f) ? '' : 'none'; }); })); const form = $('#md-quoteWizard'); if (form) { const steps = $$('.md-form-step', form); const bars = $$('.md-form-progress span', form); let i = 0; const show = () => { steps.forEach((s,n) => s.classList.toggle('md-active', n === i)); bars.forEach((b,n) => b.classList.toggle('md-active', n <= i)); }; $$('.md-next', form).forEach(b => b.addEventListener('click', () => { if (i < steps.length - 1) { i++; show(); } })); $$('.md-prev', form).forEach(b => b.addEventListener('click', () => { if (i > 0) { i--; show(); } })); form.addEventListener('submit', e => { e.preventDefault(); $$('.md-form-step', form).forEach(s => s.style.display = 'none'); const fp = $('.md-form-progress', form); if (fp) fp.style.display = 'none'; const success = $('.md-form-success', form); if (success) success.classList.add('md-show'); // BRICKS/WORDPRESS: tutaj podepnij endpoint REST, webhook n8n albo formularz Bricks. }); show(); } $$('form[data-demo]').forEach(f => f.addEventListener('submit', e => { e.preventDefault(); const btn = $('button[type="submit"]', f); if (btn) { btn.textContent = 'Dziękujemy — odezwiemy się'; btn.disabled = true; } })); })();
Przejdź do głównej treści