(function (){
let closeTimer;
function getId(el){
const match=el.className.match(/mega-trigger-([^\s"']+)/);
return match ? match[1]:null;
}
function closePanels(){
document.querySelectorAll('.mega-panel').forEach(panel=> {
panel.classList.remove('is-open');
});
document.querySelectorAll('[class*="mega-trigger-"]').forEach(trigger=> {
trigger.classList.remove('mega-active');
});
}
function openPanel(id){
clearTimeout(closeTimer);
closePanels();
const panel=document.getElementById('mega-' + id);
const trigger=document.querySelector('.mega-trigger-' + id);
if(panel) panel.classList.add('is-open');
if(trigger) trigger.classList.add('mega-active');
}
function scheduleClose(){
clearTimeout(closeTimer);
closeTimer=setTimeout(closePanels, 200);
}
document.addEventListener('mouseover', function (e){
const trigger=e.target.closest('[class*="mega-trigger-"]');
const panel=e.target.closest('.mega-panel');
if(trigger){
const id=getId(trigger);
if(id) openPanel(id);
}
if(panel){
clearTimeout(closeTimer);
}});
document.addEventListener('mouseout', function (e){
const fromTrigger=e.target.closest('[class*="mega-trigger-"]');
const fromPanel=e.target.closest('.mega-panel');
const toEl=e.relatedTarget;
if(!fromTrigger&&!fromPanel) return;
const toTrigger=toEl&&toEl.closest('[class*="mega-trigger-"]');
const toPanel=toEl&&toEl.closest('.mega-panel');
if(!toTrigger&&!toPanel){
scheduleClose();
}});
})();