Domov /
// URL JSON súboru s obsadenými slotmi const urlObsadeneSloty = "/wp-content/uploads/obsadene-sloty.json"; // funkcia načíta obsadené sloty async function nacitajObsadeneSloty() { try { const response = await fetch(urlObsadeneSloty); const data = await response.json(); return data.obsadene || []; } catch(e) { console.error("Chyba pri načítaní obsadených slotov:", e); return []; } } // generovanie slotov po 15 minútach od 08:00 do 20:45 async function generujSloty() { const casoveSlotyContainer = document.getElementById('casove-sloty'); const obsadeneSloty = await nacitajObsadeneSloty(); const startHodina = 8; const endHodina = 20; const minuty = [0,15,30,45]; for(let hodina=startHodina; hodina<=endHodina; hodina++){ minuty.forEach(min => { let hod = hodina < 10 ? '0'+hodina : hodina; let minText = min < 10 ? '0'+min : min; let cas = `${hod}:${minText}`; let slot = document.createElement('div'); slot.className = 'slot'; slot.innerText = cas; // obedná prestávka 12:00 – 12:45 if(hodina === 12){ slot.classList.add('nedostupny'); } // dynamické obsadené sloty if(obsadeneSloty.includes(cas)){ slot.classList.add('obsadene'); } casoveSlotyContainer.appendChild(slot); }); } // výber slotu document.querySelectorAll('.casove-sloty').forEach(slotContainer => { slotContainer.addEventListener('click', function(e){ if(e.target.classList.contains('slot') && !e.target.classList.contains('nedostupny') && !e.target.classList.contains('obsadene')) { document.querySelectorAll('.slot').forEach(s => s.classList.remove('vybrany')); e.target.classList.add('vybrany'); const tlacidlo = document.querySelector('.pokračovať-btn'); tlacidlo.style.animation = 'bounce 0.6s'; tlacidlo.addEventListener('animationend', () => { tlacidlo.style.animation = ''; }, { once: true }); tlacidlo.scrollIntoView({ behavior: 'smooth', block: 'center' }); } }); }); } // spustenie generovania slotov generujSloty(); // výber služby s bounce a scroll efektom document.querySelectorAll('.sluzba').forEach(sluzba => { sluzba.addEventListener('click', function() { document.querySelectorAll('.sluzba').forEach(s => s.dataset.vybrana = 'false'); this.dataset.vybrana = 'true'; const tlacidlo = document.querySelector('.pokračovať-btn'); tlacidlo.style.display = 'block'; tlacidlo.style.animation = 'bounce 0.6s'; tlacidlo.addEventListener('animationend', () => { tlacidlo.style.animation = ''; }, { once: true }); tlacidlo.scrollIntoView({ behavior: 'smooth', block: 'center' }); }); });