(function () {
var nav = document.querySelector('.xj-nav');
if (!nav) return;
function closeAll(except) {
var opened = nav.querySelectorAll('.xj-nav-dropdown.is-open');
for (var i = 0; i < opened.length; i++) {
if (opened[i] === except) continue;
opened[i].classList.remove('is-open');
var b = opened[i].querySelector('.xj-nav-dropdown-toggle');
if (b) b.setAttribute('aria-expanded', 'false');
}
}
function positionMenu(li) {
var toggle = li.querySelector('.xj-nav-dropdown-toggle');
var menu = li.querySelector('.xj-dropdown-menu');
if (!toggle || !menu) return;
if (getComputedStyle(menu).position !== 'fixed') return;
var r = toggle.getBoundingClientRect();
menu.style.top = r.bottom + 'px';
}
var toggles = nav.querySelectorAll('.xj-nav-dropdown-toggle');
for (var i = 0; i < toggles.length; i++) {
toggles[i].addEventListener('click', function (e) {
e.preventDefault();
e.stopPropagation();
var li = this.parentElement;
closeAll(li);
var open = li.classList.toggle('is-open');
this.setAttribute('aria-expanded', open ? 'true' : 'false');
if (open) positionMenu(li);
});
}
document.addEventListener('click', function (e) {
if (!e.target.closest || !e.target.closest('.xj-nav-dropdown')) closeAll(null);
});
function reposition() {
var li = nav.querySelector('.xj-nav-dropdown.is-open');
if (li) positionMenu(li);
}
window.addEventListener('scroll', reposition, { passive: true });
window.addEventListener('resize', reposition, { passive: true });
nav.querySelector('.xj-nav-inner') && nav.querySelector('.xj-nav-inner').addEventListener('scroll', reposition, { passive: true });
})();