RGW Palestine - Gaza Humanitarian Aid Update 2024
(function(){
var burger = document.getElementById('nvBurger');
var overlay = document.getElementById('nvOverlay');
var panel = document.getElementById('nvPanel');
var closeBtn = document.getElementById('nvClose');
function openMenu(){
panel.classList.add('nv-show');
overlay.classList.add('nv-show');
burger.classList.add('nv-active');
burger.setAttribute('aria-expanded','true');
document.body.style.overflow = 'hidden';
}
function closeMenu(){
panel.classList.remove('nv-show');
overlay.classList.remove('nv-show');
burger.classList.remove('nv-active');
burger.setAttribute('aria-expanded','false');
document.body.style.overflow = '';
}
burger.addEventListener('click', function(){
panel.classList.contains('nv-show') ? closeMenu() : openMenu();
});
overlay.addEventListener('click', closeMenu);
closeBtn.addEventListener('click', closeMenu);
window.addEventListener('keydown', function(e){
if (e.key === 'Escape') closeMenu();
});
// Mobile accordion (About / Initiatives / Giving)
var accs = document.querySelectorAll('.nv-acc');
accs.forEach(function(acc){
var toggle = acc.querySelector('.nv-acc-toggle');
toggle.addEventListener('click', function(){
var isOpen = acc.classList.contains('nv-open');
accs.forEach(function(a){ a.classList.remove('nv-open'); a.querySelector('.nv-acc-toggle').setAttribute('aria-expanded','false'); });
if (!isOpen){
acc.classList.add('nv-open');
toggle.setAttribute('aria-expanded','true');
}
});
});
// Mobile nested accordion (Other, inside Initiatives)
document.querySelectorAll('.nv-subacc').forEach(function(sub){
var toggle = sub.querySelector('.nv-subacc-toggle');
toggle.addEventListener('click', function(){
var isOpen = sub.classList.toggle('nv-open');
toggle.setAttribute('aria-expanded', isOpen ? 'true' : 'false');
});
});
// Desktop dropdown: click-to-toggle as well as hover (helps touch/tablet-desktop hybrids)
var drops = document.querySelectorAll('.nv-has-drop');
var subs = document.querySelectorAll('.nv-sub');
function closeSubs(){
subs.forEach(function(s){
s.classList.remove('nv-sub-open');
s.querySelector('.nv-sub-toggle').setAttribute('aria-expanded','false');
});
}
function closeDrops(){
drops.forEach(function(d){
d.classList.remove('nv-open');
d.querySelector('.nv-top-link').setAttribute('aria-expanded','false');
});
closeSubs();
}
drops.forEach(function(drop){
var btn = drop.querySelector('.nv-top-link');
btn.addEventListener('click', function(e){
e.stopPropagation();
var isOpen = drop.classList.contains('nv-open');
closeDrops();
if (!isOpen){
drop.classList.add('nv-open');
btn.setAttribute('aria-expanded','true');
}
});
// reset any click-opened sub menu once the pointer leaves the dropdown
drop.addEventListener('mouseleave', closeSubs);
});
// Desktop sub dropdown (Other): hover opens it, click/tap toggles it
subs.forEach(function(sub){
var btn = sub.querySelector('.nv-sub-toggle');
btn.addEventListener('click', function(e){
e.stopPropagation();
var isOpen = sub.classList.toggle('nv-sub-open');
btn.setAttribute('aria-expanded', isOpen ? 'true' : 'false');
});
});
document.addEventListener('click', closeDrops);
// Close mobile panel on resize back to desktop
window.addEventListener('resize', function(){
if (window.innerWidth > 1000) closeMenu();
});
})();