// 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' });
});
});