function showRes1(x) { if (x.checked) { document.getElementById("res1").style.display="block"; } else { document.getElementById("res1").style.display="none"; } } function showRes2(x) { if (x.checked) { document.getElementById("res2").style.display="block"; } else { document.getElementById("res2").style.display="none"; } } function showRes3(x) { if (x.checked) { document.getElementById("res3").style.display="block"; } else { document.getElementById("res3").style.display="none"; } } function showRes4(x) { if (x.checked) { document.getElementById("res4").style.display="block"; } else { document.getElementById("res4").style.display="none"; } } function showRes5(x) { if (x.checked) { document.getElementById("res5").style.display="block"; } else { document.getElementById("res5").style.display="none"; } } function showRes6(x) { if (x.checked) { document.getElementById("res6").style.display="block"; } else { document.getElementById("res6").style.display="none"; } } function showRes7(x) { if (x.checked) { document.getElementById("res7").style.display="block"; } else { document.getElementById("res7").style.display="none"; } } function showRes8(x) { if (x.checked) { document.getElementById("res8").style.display="block"; } else { document.getElementById("res8").style.display="none"; } } function showRes9(x) { if (x.checked) { document.getElementById("res9").style.display="block"; } else { document.getElementById("res9").style.display="none"; } } function showRes10(x) { if (x.checked) { document.getElementById("res10").style.display="block"; } else { document.getElementById("res10").style.display="none"; } } function showRes11(x) { if (x.checked) { document.getElementById("res11").style.display="block"; } else { document.getElementById("res11").style.display="none"; } } function showRes12(x) { if (x.checked) { document.getElementById("res12").style.display="block"; } else { document.getElementById("res12").style.display="none"; } } function showRes13(x) { if (x.checked) { document.getElementById("res13").style.display="block"; } else { document.getElementById("res13").style.display="none"; } } function showRes14(x) { if (x.checked) { document.getElementById("res14").style.display="block"; } else { document.getElementById("res14").style.display="none"; } } function showRes15(x) { if (x.checked) { document.getElementById("res15").style.display="block"; } else { document.getElementById("res15").style.display="none"; } } function showRes16(x) { if (x.checked) { document.getElementById("res16").style.display="block"; } else { document.getElementById("res16").style.display="none"; } } function showRes17(x) { if (x.checked) { document.getElementById("res17").style.display="block"; } else { document.getElementById("res17").style.display="none"; } } function showRes18(x) { if (x.checked) { document.getElementById("res18").style.display="block"; } else { document.getElementById("res18").style.display="none"; } } function showRes19(x) { if (x.checked) { document.getElementById("res19").style.display="block"; } else { document.getElementById("res19").style.display="none"; } } function showRes20(x) { if (x.checked) { document.getElementById("res20").style.display="block"; } else { document.getElementById("res20").style.display="none"; } } function showRes21(x) { if (x.checked) { document.getElementById("res21").style.display="block"; } else { document.getElementById("res21").style.display="none"; } } function showRes22(x) { if (x.checked) { document.getElementById("res22").style.display="block"; } else { document.getElementById("res22").style.display="none"; } } function showRes23(x) { if (x.checked) { document.getElementById("res23").style.display="block"; } else { document.getElementById("res23").style.display="none"; } } function showRes24(x) { if (x.checked) { document.getElementById("res24").style.display="block"; } else { document.getElementById("res24").style.display="none"; } } function showRes25(x) { if (x.checked) { document.getElementById("res25").style.display="block"; } else { document.getElementById("res25").style.display="none"; } } function showRes26(x) { if (x.checked) { document.getElementById("res26").style.display="block"; } else { document.getElementById("res26").style.display="none"; } } function showRes27(x) { if (x.checked) { document.getElementById("res27").style.display="block"; } else { document.getElementById("res27").style.display="none"; } } function showRes28(x) { if (x.checked) { document.getElementById("res28").style.display="block"; } else { document.getElementById("res28").style.display="none"; } } function showRes29(x) { if (x.checked) { document.getElementById("res29").style.display="block"; } else { document.getElementById("res29").style.display="none"; } } function showRes30(x) { if (x.checked) { document.getElementById("res30").style.display="block"; } else { document.getElementById("res30").style.display="none"; } } function showRes32(x) { if (x.checked) { document.getElementById("res32").style.display="block"; } else { document.getElementById("res32").style.display="none"; } } function showRes33(x) { if (x.checked) { document.getElementById("res33").style.display="block"; } else { document.getElementById("res33").style.display="none"; } } function showRes34(x) { if (x.checked) { document.getElementById("res34").style.display="block"; } else { document.getElementById("res34").style.display="none"; } } function showRes35(x) { if (x.checked) { document.getElementById("res35").style.display="block"; } else { document.getElementById("res35").style.display="none"; } } function showRes36(x) { if (x.checked) { document.getElementById("res36").style.display="block"; } else { document.getElementById("res36").style.display="none"; } } function showRes37(x) { if (x.checked) { document.getElementById("res37").style.display="block"; } else { document.getElementById("res37").style.display="none"; } } function showRes38(x) { if (x.checked) { document.getElementById("res38").style.display="block"; } else { document.getElementById("res38").style.display="none"; } } function showRes39(x) { if (x.checked) { document.getElementById("res39").style.display="block"; } else { document.getElementById("res39").style.display="none"; } } function showRes40(x) { if (x.checked) { document.getElementById("res40").style.display="block"; } else { document.getElementById("res40").style.display="none"; } } function showRes41(x) { if (x.checked) { document.getElementById("res41").style.display="block"; } else { document.getElementById("res41").style.display="none"; } } function showRes42(x) { if (x.checked) { document.getElementById("res42").style.display="block"; } else { document.getElementById("res42").style.display="none"; } } function showRes43(x) { if (x.checked) { document.getElementById("res43").style.display="block"; } else { document.getElementById("res43").style.display="none"; } } function showRes44(x) { if (x.checked) { document.getElementById("res44").style.display="block"; } else { document.getElementById("res44").style.display="none"; } } function showRes45(x) { if (x.checked) { document.getElementById("res45").style.display="block"; } else { document.getElementById("res45").style.display="none"; } } function showRes46(x) { if (x.checked) { document.getElementById("res46").style.display="block"; } else { document.getElementById("res46").style.display="none"; } } function showRes47(x) { if (x.checked) { document.getElementById("res47").style.display="block"; } else { document.getElementById("res47").style.display="none"; } } function showRes48(x) { if (x.checked) { document.getElementById("res48").style.display="block"; } else { document.getElementById("res48").style.display="none"; } } function showRes49(x) { if (x.checked) { document.getElementById("res49").style.display="block"; } else { document.getElementById("res49").style.display="none"; } } (function () { function initArenaSuggestion() { var form = document.querySelector('form[data-arena-suggestion-form]'); var backdrop = document.querySelector('[data-arena-suggestion-modal]'); if (!form || !backdrop) { return; } var list = backdrop.querySelector('[data-arena-suggestion-list]'); var cancelButton = backdrop.querySelector('[data-arena-suggestion-cancel]'); var confirmButton = backdrop.querySelector('[data-arena-suggestion-confirm]'); var currentCandidates = []; var lastSubmitter = null; var lastFocused = null; var bypassSuggestion = false; function findCandidates() { var candidates = []; var selects = form.querySelectorAll('select[data-arena-hour-id][data-arena-empty="1"]'); for (var index = 0; index < selects.length; index++) { var select = selects[index]; var hourId = select.getAttribute('data-arena-hour-id'); var minimum = parseInt(select.getAttribute('data-arena-min-players'), 10) || 8; var count = parseInt(select.value, 10) || 0; var selectedHour = form.querySelector('[name="check_hour' + hourId + '"]'); var wholeArena = form.querySelector('[name="full_arena' + hourId + '"]'); if (selectedHour && selectedHour.checked && wholeArena && !wholeArena.checked && count >= minimum) { candidates.push({ hourId: hourId, count: count, time: select.getAttribute('data-arena-time') || '', wholeArena: wholeArena }); } } return candidates; } function createCandidateOption(candidate) { var option = document.createElement('label'); var checkbox = document.createElement('input'); var details = document.createElement('span'); var time = document.createElement('strong'); var players = document.createElement('small'); var wholeArenaLabel = document.createElement('span'); option.className = 'arena-suggestion-option'; checkbox.type = 'checkbox'; checkbox.setAttribute('data-arena-suggestion-hour-id', candidate.hourId); checkbox.checked = candidate.wholeArena.checked; time.textContent = candidate.time; players.textContent = candidate.count + ' ' + (list.getAttribute('data-players-label') || ''); details.className = 'arena-suggestion-details'; details.appendChild(time); details.appendChild(players); wholeArenaLabel.className = 'arena-suggestion-whole-label'; wholeArenaLabel.textContent = list.getAttribute('data-whole-arena-label') || ''; option.appendChild(checkbox); option.appendChild(details); option.appendChild(wholeArenaLabel); return option; } function openModal(candidates) { currentCandidates = candidates; list.textContent = ''; for (var index = 0; index < candidates.length; index++) { list.appendChild(createCandidateOption(candidates[index])); } lastFocused = document.activeElement; backdrop.hidden = false; document.body.classList.add('arena-suggestion-open'); cancelButton.focus(); } function closeModal() { backdrop.hidden = true; document.body.classList.remove('arena-suggestion-open'); currentCandidates = []; if (lastFocused && typeof lastFocused.focus === 'function') { lastFocused.focus(); } } function submitReservation() { bypassSuggestion = true; var submitter = lastSubmitter || form.querySelector('[type="submit"][name="ulozit_rezervaci"]'); if (typeof form.requestSubmit === 'function') { if (submitter) { form.requestSubmit(submitter); } else { form.requestSubmit(); } return; } if (submitter && submitter.name) { var submitValue = document.createElement('input'); submitValue.type = 'hidden'; submitValue.name = submitter.name; submitValue.value = submitter.value || '1'; form.appendChild(submitValue); } form.submit(); } form.addEventListener('click', function (event) { var target = event.target; if (target && (target.type === 'submit' || target.tagName === 'BUTTON' && target.getAttribute('type') === 'submit')) { lastSubmitter = target; } }); form.addEventListener('submit', function (event) { if (bypassSuggestion) { bypassSuggestion = false; return; } lastSubmitter = event.submitter || lastSubmitter; var candidates = findCandidates(); if (!candidates.length) { return; } event.preventDefault(); openModal(candidates); }); cancelButton.addEventListener('click', closeModal); confirmButton.addEventListener('click', function () { for (var index = 0; index < currentCandidates.length; index++) { var candidate = currentCandidates[index]; var modalCheckbox = list.querySelector('[data-arena-suggestion-hour-id="' + candidate.hourId + '"]'); candidate.wholeArena.checked = !!(modalCheckbox && modalCheckbox.checked); if (candidate.wholeArena.checked) { candidate.wholeArena.disabled = false; } } closeModal(); submitReservation(); }); backdrop.addEventListener('click', function (event) { if (event.target === backdrop) { closeModal(); } }); document.addEventListener('keydown', function (event) { if (event.key === 'Escape' && !backdrop.hidden) { closeModal(); } }); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initArenaSuggestion); } else { initArenaSuggestion(); } }());