/* tennis-liga.at navbar (blocks/tl_navbar.html), no Bootstrap. [data-tl-nav-toggle] opens/closes the mobile menu; [data-tl-menu] + [data-tl-menu-toggle] are drop-downs (Info, language). Esc or a click outside closes open drop-downs. */ (function () { if (window.tlNavbarReady) return; window.tlNavbarReady = true; function setMenu(menu, open) { var toggle = menu.querySelector('[data-tl-menu-toggle]'); var panel = toggle && document.getElementById(toggle.getAttribute('aria-controls')); if (!toggle || !panel) return; toggle.setAttribute('aria-expanded', open ? 'true' : 'false'); panel.hidden = !open; menu.classList.toggle('is-open', open); } function closeMenus(except) { document.querySelectorAll('[data-tl-menu].is-open').forEach(function (menu) { if (menu !== except) setMenu(menu, false); }); } document.addEventListener('click', function (event) { var navToggle = event.target.closest('[data-tl-nav-toggle]'); if (navToggle) { var nav = navToggle.closest('[data-tl-nav]'); var open = !nav.classList.contains('is-open'); nav.classList.toggle('is-open', open); navToggle.setAttribute('aria-expanded', open ? 'true' : 'false'); return; } var menuToggle = event.target.closest('[data-tl-menu-toggle]'); if (menuToggle) { var menu = menuToggle.closest('[data-tl-menu]'); var willOpen = !menu.classList.contains('is-open'); closeMenus(menu); setMenu(menu, willOpen); return; } if (!event.target.closest('[data-tl-menu]')) closeMenus(null); }); document.addEventListener('keydown', function (event) { if (event.key !== 'Escape') return; var open = document.querySelector('[data-tl-menu].is-open'); if (!open) return; closeMenus(null); var toggle = open.querySelector('[data-tl-menu-toggle]'); if (toggle) toggle.focus(); }); })();