/* ===== Salla Raed-compatible side menu (no HTML required) ===== */ document.addEventListener('DOMContentLoaded', function () { // لا ننفذ مرتين لو السكربت سبق ووُضع if (document.getElementById('customMenuBtn')) return; // محاولة إيجاد الهيدر الصحيح const header = document.querySelector('#mainnav, .main-nav-container, .header, header, .site-header'); // لو ما لاقيناش الهيدر، نضيف الزر في body كحل احتياطي const insertTargets = [ header && header.querySelector('.flex.items-center'), header && header.querySelector('.flex.items-stretch'), header && header.querySelector('.container'), header, document.querySelector('.navbar-brand'), document.body ]; let insertTarget = null; for (let el of insertTargets) { if (el) { insertTarget = el; break; } } if (!insertTarget) insertTarget = document.body; // زر القائمة const btn = document.createElement('button'); btn.id = 'customMenuBtn'; btn.type = 'button'; btn.setAttribute('aria-expanded', 'false'); btn.setAttribute('aria-label', 'فتح القائمة'); btn.innerHTML = ''; // نضيف الزر بعد الشعار (navbar-brand) const brand = document.querySelector('#mainnav .navbar-brand, .navbar-brand'); if (brand && brand.parentNode) { brand.parentNode.insertBefore(btn, brand); } else { insertTarget.prepend(btn); } // عنصر الـ overlay const overlay = document.createElement('div'); overlay.className = 'custom-menu-overlay'; overlay.id = 'customMenuOverlay'; document.body.appendChild(overlay); // نحاول سحب شعار الهيدر إن وجد let logoSrc = ''; const logoImg = document.querySelector('#mainnav .navbar-brand img, .navbar-brand img, #mainnav img, header img'); if (logoImg && logoImg.src) { logoSrc = logoImg.src; } else { // placeholder لو مفيش لوجو logoSrc = 'https://via.placeholder.com/260x80?text=Logo'; } // نحاول استخراج الروابط من القائمة المحمولة الأصلية (#mobile-menu) لو موجودة function buildLinksFromSource() { const srcUL = document.querySelector('#mobile-menu ul, #mobile-menu .main-menu, .mobile-menu ul, .main-menu'); if (!srcUL) return null; let html = ''; // ناخد كل روابط داخل الـ srcUL const anchors = srcUL.querySelectorAll('a'); anchors.forEach(a => { const href = a.getAttribute('href') || '#'; const text = (a.textContent || a.innerText || '').trim(); if (text) { html += `
  • ${text}
  • `; } }); return html || null; } const extractedLinks = buildLinksFromSource(); // لو ما فيش روابط مُستخرجة، نعرض روابط افتراضية (عدلها حسب متجرك) // بناء القائمة الجانبية (ننشئها ديناميكياً) const sideMenu = document.createElement('aside'); sideMenu.id = 'customSideMenu'; sideMenu.className = 'custom-side-menu'; sideMenu.setAttribute('aria-hidden', 'true'); sideMenu.innerHTML = ` `; document.body.appendChild(sideMenu); // عمليات فتح / غلق const closeBtn = document.getElementById('customCloseBtn'); const menu = document.getElementById('customSideMenu'); function openMenu() { menu.classList.add('active'); overlay.classList.add('active'); document.body.style.overflow = 'hidden'; btn.style.display = 'none'; // اخفاء الزر menu.setAttribute('aria-hidden', 'false'); btn.setAttribute('aria-expanded', 'true'); } function closeMenu() { menu.classList.remove('active'); overlay.classList.remove('active'); document.body.style.overflow = ''; btn.style.display = ''; // اظهار الزر (يرجع للـ inline) menu.setAttribute('aria-hidden', 'true'); btn.setAttribute('aria-expanded', 'false'); } // حدثات btn.addEventListener('click', function (e) { e.stopPropagation(); openMenu(); }); closeBtn.addEventListener('click', function (e) { e.stopPropagation(); closeMenu(); }); // غلق لو ضغطت على الـ overlay overlay.addEventListener('click', function () { closeMenu(); }); // غلق بالEscape document.addEventListener('keydown', function (ev) { if (ev.key === 'Escape' || ev.key === 'Esc') { if (menu.classList.contains('active')) closeMenu(); } }); // غلق عند الضغط على أي رابط داخل القائمة (وليُعاد اظهار الزر) menu.addEventListener('click', function (ev) { const a = ev.target.closest('a'); if (a) { // نسمح بالانتقال للرابط ثم نغلق القائمة بعد تأخير صغير setTimeout(closeMenu, 150); } }); });