/* أوتوكور — شريط إعلان متحرك + زر واتساب في الهيدر + زر واتساب عائم (2026-10-12) نص الشريط يُكتب من لوحة سلة (إعلانات المتجر)، وكل رسالة يُفصل بينها بـ « • » فتظهر كبنر مستقل في الشريط المتحرك. الشريط يُبنى هنا من بيانات الإعلان نفسها، لأن مكوّن سلة ما يكمل تحميله في ثيم رائد. */ (function () { var WA = 'https://wa.me/966536790096?text='; // يظهر فقط لو فشل جلب الإعلان من سلة var FALLBACK = { description: 'أرسل رقم الهيكل على واتساب ونحدد لك القطعة المطابقة لسيارتك • خصم 5% على الطلبات عبر واتساب • شحن مجاني للطلبات فوق 200 ريال', url: WA + encodeURIComponent('السلام عليكم، أبغى قطعة لسيارتي (من شريط موقع أوتوكور)'), colors: { bg: '#03624C', text: '#ffffff' } }; var ICON = ''; // كل زر له وسم مختلف في الرسالة، عشان نعرف من الرسائل من وين جا العميل function waLink(msg, tag) { return WA + encodeURIComponent(msg + '\n(' + tag + ')'); } function esc(t) { return String(t).replace(/&/g, '&').replace(/' + esc(t) + ''; }).join(''); var bar = document.createElement('div'); bar.className = 'ac-bar'; bar.setAttribute('role', 'region'); bar.setAttribute('aria-label', 'عروض أوتوكور'); var c = ad.colors || FALLBACK.colors; bar.style.backgroundColor = c.bg || FALLBACK.colors.bg; bar.style.color = c.text || FALLBACK.colors.text; var track = document.createElement('div'); track.className = 'ac-ticker'; bar.appendChild(track); var host = document.querySelector('salla-advertisement'); if (host && host.parentNode) host.parentNode.insertBefore(bar, host); else document.body.insertBefore(bar, document.body.firstChild); // نسختين متطابقتين (أو أكثر) عشان الحركة تدور بلا فراغ var n = 0; do { track.insertAdjacentHTML('beforeend', '' + ''); n += 2; } while (track.scrollWidth / 2 < window.innerWidth + 200 && n < 12); // الروابط المكررة ما تاخذ تركيز الكيبورد track.querySelectorAll('[aria-hidden="true"] a').forEach(function (a) { a.setAttribute('tabindex', '-1'); }); // سرعة ثابتة تقريباً مهما كان طول النص (~60 بكسل بالثانية) track.style.animationDuration = Math.max(20, Math.round(track.scrollWidth / 2 / 60)) + 's'; } function ticker() { var slug = (window.salla && salla.config && salla.config.get('page.slug')) || null; var p = (window.salla && salla.api && salla.api.advertisement) ? salla.api.advertisement.fetch(slug) : Promise.reject(); p.then(function (r) { var ad = r && Array.isArray(r.data) && r.data[0]; buildBar(ad || FALLBACK); }).catch(function () { buildBar(FALLBACK); }); } // 2) زر واتساب في الهيدر بدل رقم الاتصال function headerButton() { var c = document.querySelector('salla-contacts.s-contacts-header'); if (!c) return false; if (document.querySelector('.ac-wa-top')) return true; var b = document.createElement('a'); b.className = 'ac-wa-top'; b.href = waLink('السلام عليكم، أبغى أسأل عن قطعة لسيارتي', 'من زر أعلى موقع أوتوكور'); b.target = '_blank'; b.rel = 'noopener'; b.innerHTML = ICON + 'اطلب عبر واتساب053 679 0096'; c.parentNode.insertBefore(b, c); return true; } // 3) زر واتساب عائم ثابت في كل الصفحات (في صفحة المنتج: اسم القطعة ورابطها) function floatButton() { if (!document.body) return false; if (document.querySelector('.ac-wa-float')) return true; var msg = 'السلام عليكم، أبغى أسأل عن قطعة لسيارتي'; var h1 = document.querySelector('h1'); if (isProduct() && h1) { var url = location.origin + location.pathname; try { url = decodeURI(url); } catch (e) {} msg = 'السلام عليكم، أبغى أسأل عن هذي القطعة: ' + h1.textContent.trim() + '\n' + url; } var f = document.createElement('a'); f.className = 'ac-wa-float'; f.href = waLink(msg, 'من زر واتساب العائم في موقع أوتوكور'); f.target = '_blank'; f.rel = 'noopener'; f.setAttribute('aria-label', 'اطلب عبر واتساب'); f.innerHTML = ICON + 'اطلب عبر واتساب'; document.body.appendChild(f); return true; } function start() { ticker(); // نعيد المحاولة ١٠ ثواني: الثيم يعيد رسم الشريط العلوي بعد التحميل ويمسح الزر أحياناً var tries = 0; var timer = setInterval(function () { tries++; headerButton(); floatButton(); if (tries > 40) clearInterval(timer); }, 250); } if (window.salla && salla.onReady) salla.onReady(start); else if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', start); else start(); })();