// ========================================================= // COMPLETE SALLA FOOTER ADDRESS INJECTION WITH MAP LINK // ========================================================= (function() { // Detect store language automatically var isArabic = document.documentElement.lang === 'ar' || document.documentElement.dir === 'rtl'; // Set address text and Google Maps link based on active language var addressText = isArabic ? "مصنع القريشي للرخام، ملهم، الرياض 15466، المملكة العربية السعودية" : "Quraishi Marble Factory, Malham, Riyadh 15466, Saudi Arabia"; var mapsUrl = isArabic ? "https://www.google.com/maps/search/?api=1&query=%D9%85%D8%B5%D9%86%D8%B9+%D8%A7%D9%84%D9%82%D8%B1%D9%8A%D8%B4%D9%8A+%D9%84%D9%84%D8%B1%D8%AE%D8%A7%D9%85+%D9%85%D9%84%D9%87%D9%85+%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6" : "https://www.google.com/maps/search/?api=1&query=Quraishi+Marble+Factory,+Malham,+Riyadh+15466,+Saudi+Arabia"; // Check every 500ms for Salla's dynamic contact list container var checkExist = setInterval(function() { var contactContainer = document.querySelector('.s-footer-contact-list ul') || document.querySelector('.s-contacts-list') || document.querySelector('.s-footer-contacts ul') || document.querySelector('[class*="contacts"] ul'); // If container is found and our custom address doesn't already exist, inject it if (contactContainer && !document.getElementById('custom-marble-address')) { clearInterval(checkExist); // Create the new list item wrapper var addressElement = document.createElement('li'); addressElement.id = 'custom-marble-address'; addressElement.className = 's-contacts-item s-contacts-address-item'; addressElement.style.display = 'flex'; addressElement.style.gap = '10px'; addressElement.style.marginTop = '12px'; // SVG Location Pin Icon (inherits styling from your CSS) var iconHTML = '
' + '' + '
'; // Create text container with clickable anchor link pointing directly to Google Maps var textHTML = '
' + '' + addressText + '' + '
'; // Combine components and append to the contact list addressElement.innerHTML = iconHTML + textHTML; contactContainer.appendChild(addressElement); } }, 500); // Fallback: Stop checking after 10 seconds to preserve performance setTimeout(function() { clearInterval(checkExist); }, 10000); })(); // ========================================================================= // 2. AUTO-ROTATE HERO SLIDER EVERY 2.5 SECONDS // ========================================================================= (function () { function speedUpAutoplay() { var swiperEl = document.querySelector('.home-slider .swiper') || document.querySelector('.s-slider-container') || document.querySelector('.swiper'); var sw = swiperEl ? swiperEl.swiper : null; if (sw && sw.params && sw.params.autoplay) { sw.params.autoplay.delay = 2500; sw.params.autoplay.disableOnInteraction = false; if (sw.autoplay) { sw.autoplay.stop(); sw.autoplay.start(); } return true; } return false; } var attempts = 0; var timer = setInterval(function () { attempts++; if (speedUpAutoplay() || attempts > 40) { clearInterval(timer); } }, 500); })(); // ========================================================================= // 3. TAG GALLERY SECTION + BILINGUAL HEADING ABOVE CENTER TABLES GRID // (Uses MutationObserver so it works whenever sections lazy-load, // no matter how long the visitor takes to scroll to them.) // ========================================================================= (function () { function tagGallery() { var gallery = document.querySelector('.s-block--banners'); if (gallery && !gallery.id) { gallery.id = 'qm-gallery-section'; } return !!(gallery && gallery.id); } function addHeading() { var list = document.querySelector('.s-products-list-wrapper'); if (list && !document.getElementById('qm-tables-heading')) { var heading = document.createElement('div'); heading.id = 'qm-tables-heading'; heading.innerHTML = '

Our Center Tables Collection

' + '

مجموعة طاولات الوسط الفاخرة لدينا

'; var anchor = list.closest('salla-products-list') || list; anchor.parentElement.insertBefore(heading, anchor); } return !!document.getElementById('qm-tables-heading'); } function runChecks() { var galleryDone = tagGallery(); var headingDone = addHeading(); return galleryDone && headingDone; } if (runChecks()) return; var observer = new MutationObserver(function () { if (runChecks()) { observer.disconnect(); } }); observer.observe(document.body, { childList: true, subtree: true }); // Safety net in case MutationObserver misses something var fallbackTries = 0; var fallbackTimer = setInterval(function () { fallbackTries++; if (runChecks() || fallbackTries > 120) { clearInterval(fallbackTimer); } }, 500); })(); // ========================================================================= // 5. GALLERY & CONTACT US SIDE PANEL (TOP-LEFT HAMBURGER) - BILINGUAL EN/AR // ========================================================================= (function () { if (document.getElementById('qm-side-toggle')) return; var email = 'sales@quraishimarble.com'; var phone = '+966 55 225 8436'; var phoneHref = 'tel:+966552258436'; var addressEn = 'Quraishi Marble Factory, Malham, Riyadh 15466, Saudi Arabia'; var addressAr = 'مصنع القريشي للرخام، ملهم، الرياض 15466، المملكة العربية السعودية'; var mapsUrl = 'https://www.google.com/maps/search/?api=1&query=Quraishi+Marble+Factory,+Malham,+Riyadh+15466,+Saudi+Arabia'; var toggle = document.createElement('button'); toggle.id = 'qm-side-toggle'; toggle.type = 'button'; toggle.setAttribute('aria-label', 'Open menu'); toggle.innerHTML = ''; var overlay = document.createElement('div'); overlay.id = 'qm-side-overlay'; var panel = document.createElement('aside'); panel.id = 'qm-side-panel'; var mailIcon = ''; var phoneIcon = ''; var pinIcon = ''; panel.innerHTML = '' + 'Our Gallery' + '' + '

Contact Us

' + '
تواصل معنا
' + '
' + mailIcon + '' + email + '
' + '
' + phoneIcon + '' + phone + '
' + '
' + pinIcon + '' + addressEn + '' + addressAr + '
'; document.body.appendChild(overlay); document.body.appendChild(panel); document.body.appendChild(toggle); function openPanel() { panel.classList.add('qm-open'); overlay.classList.add('qm-open'); } function closePanel() { panel.classList.remove('qm-open'); overlay.classList.remove('qm-open'); } toggle.addEventListener('click', openPanel); overlay.addEventListener('click', closePanel); panel.querySelector('.qm-close-btn').addEventListener('click', closePanel); panel.querySelector('.qm-gallery-link').addEventListener('click', function (e) { var target = document.querySelector('#qm-gallery-section'); closePanel(); if (target) { e.preventDefault(); setTimeout(function () { target.scrollIntoView({ behavior: 'smooth' }); }, 350); } }); })();