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