/* ════════════════════════════════════════════════════════════
أكواد رقمي شوب المخصصة — الملف الموحد
1) نموذج صفحة «برمجة حسب الطلب»
2) نافذة المقترحات (تفتح من البانر)
3) تنبيه تسجيل الدخول لغير المسجل بعد الإضافة للسلة
4) رقيم — المرشد الخبير (يحل محل ودجت واتساب القديم)
ملاحظة: ودجت «كيف نقدر نخدمك؟» القديم أزيل — رقيم يقوم بوظائفه كلها.
════════════════════════════════════════════════════════════ */
/* نموذج «برمجة حسب الطلب» — يلصق في تطبيق الأكواد المخصصة (JavaScript).
يبني حقول النموذج داخل صفحة الخدمة ويشغل زر الإرسال لواتساب.
لا يعمل إلا في الصفحة التي تحوي العنصر rq-slot ولا يمس غيرها. */
(function () {
function init() {
var slot = document.getElementById('rq-slot');
if (!slot) return;
slot.style.textAlign = 'right';
slot.innerHTML =
''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ ''
+ '
اكتب وصف المهمة أولًا حتى نقدر نفيدك
'
+ 'أو راسلنا مباشرة: 966597093033+
';
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', init);
} else {
init();
}
document.addEventListener('click', function (ev) {
var b = ev.target.closest && ev.target.closest('#rq-send');
if (!b) return;
var v = function (id) {
var el = document.getElementById(id);
return el ? (el.value || '').trim() : '';
};
if (!v('rq-desc')) {
var h = document.getElementById('rq-hint');
if (h) h.style.display = 'block';
var d = document.getElementById('rq-desc');
if (d) d.focus();
return;
}
var m = '*طلب برمجة حسب الطلب*'
+ '\n━━━━━━━━━━━━━━'
+ '\n◆ *الاسم:* ' + (v('rq-name') || 'لم يذكر')
+ '\n\n◆ *المهمة المطلوبة:*\n' + v('rq-desc')
+ '\n\n◆ *المدخلات:* ' + (v('rq-in') || 'لم تذكر')
+ '\n◆ *المخرجات:* ' + (v('rq-out') || 'لم تذكر')
+ '\n◆ *حفظ السجلات:* ' + v('rq-save')
+ '\n◆ *الميزانية:* ' + v('rq-budget')
+ '\n◆ *موعد التسليم:* ' + (v('rq-when') || 'مرن')
+ '\n━━━━━━━━━━━━━━';
window.open('https://wa.me/966597093033?text=' + encodeURIComponent(m), '_blank');
});
})();
// نافذة المقترحات المستقلة — تفتح من بانر المقترحات وترسل لنفس جدول Google Sheets
(function () {
var ENDPOINT = "https://script.google.com/macros/s/AKfycbzG8UtGilLI9v2963p0TsqGuSJfpqggG5NqXVQ2UVJ_L_yueEpCvdhdLlnanFuJJ_5NWA/exec";
var built = false;
function buildModal() {
if (built) return;
built = true;
var css = ""
+ "#rqb-overlay{position:fixed;inset:0;background:rgba(10,20,28,.62);z-index:99998;display:none;opacity:0;transition:opacity .25s}"
+ "#rqb-overlay.rqb-show{display:block;opacity:1}"
+ "#rqb-modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-46%);width:min(430px,92vw);background:#fff;border-radius:22px;box-shadow:0 24px 70px rgba(0,0,0,.3);z-index:99999;display:none;opacity:0;transition:opacity .25s,transform .25s;direction:rtl;font-family:inherit;padding:26px 22px 22px}"
+ "#rqb-modal.rqb-show{display:block;opacity:1;transform:translate(-50%,-50%)}"
+ "#rqb-close{position:absolute;top:12px;right:14px;border:0;background:transparent;font-size:26px;line-height:1;color:#8a94a0;cursor:pointer}"
+ ".rqb-title{font-size:21px;font-weight:800;color:#1c2430;text-align:center;margin:2px 0 8px}"
+ ".rqb-desc{font-size:14px;color:#68727e;text-align:center;margin:0 0 14px;line-height:1.7}"
+ "#rqb-text{width:100%;box-sizing:border-box;min-height:110px;border:1.5px solid #2ecc71;border-radius:14px;padding:12px 14px;font-size:15px;font-family:inherit;resize:vertical;outline:none;color:#1c2430;background:#fff}"
+ "#rqb-text:focus{box-shadow:0 0 0 3px rgba(46,204,113,.18)}"
+ "#rqb-phone{width:100%;box-sizing:border-box;border:1.5px solid #dde3ea;border-radius:14px;padding:12px 14px;font-size:15px;font-family:inherit;margin-top:10px;outline:none;color:#1c2430;background:#fff}"
+ "#rqb-send{width:100%;border:0;border-radius:14px;background:#25b066;color:#fff;font-size:17px;font-weight:800;font-family:inherit;padding:14px;margin-top:12px;cursor:pointer}"
+ "#rqb-send:disabled{opacity:.6;cursor:default}"
+ "#rqb-status{font-size:13.5px;text-align:center;margin-top:10px;min-height:18px;color:#c0392b}"
+ "#rqb-status.rqb-ok{color:#1e8e50}"
+ ".rqb-done{text-align:center;padding:22px 6px}"
+ ".rqb-done-icon{width:64px;height:64px;border-radius:50%;background:#e6f7ee;color:#25b066;font-size:34px;line-height:64px;margin:0 auto 12px}";
var st = document.createElement("style");
st.textContent = css;
document.head.appendChild(st);
var ov = document.createElement("div");
ov.id = "rqb-overlay";
document.body.appendChild(ov);
var m = document.createElement("div");
m.id = "rqb-modal";
m.innerHTML = ""
+ ''
+ 'وش المنتج اللي تبحث عنه؟
'
+ 'اكتب لنا المنتج أو الأداة اللي كنت تبحث عنها وما حصلتها في المتجر.
'
+ ''
+ ''
+ ''
+ '';
document.body.appendChild(m);
ov.addEventListener("click", closeModal);
document.getElementById("rqb-close").addEventListener("click", closeModal);
document.getElementById("rqb-send").addEventListener("click", send);
document.addEventListener("keydown", function (e) {
if (e.key === "Escape") closeModal();
});
}
function openModal() {
buildModal();
document.getElementById("rqb-overlay").classList.add("rqb-show");
document.getElementById("rqb-modal").classList.add("rqb-show");
setTimeout(function () {
var t = document.getElementById("rqb-text");
if (t) t.focus();
}, 200);
}
function closeModal() {
var ov = document.getElementById("rqb-overlay");
var m = document.getElementById("rqb-modal");
if (ov) ov.classList.remove("rqb-show");
if (m) m.classList.remove("rqb-show");
}
function send() {
var text = document.getElementById("rqb-text").value.trim();
var phone = document.getElementById("rqb-phone").value.trim();
var btn = document.getElementById("rqb-send");
var status = document.getElementById("rqb-status");
if (!text) {
status.className = "";
status.textContent = "اكتب المنتج اللي تبحث عنه أولًا.";
document.getElementById("rqb-text").focus();
return;
}
btn.disabled = true;
btn.textContent = "جاري الإرسال...";
status.textContent = "";
fetch(ENDPOINT, {
method: "POST",
mode: "no-cors",
headers: { "Content-Type": "text/plain;charset=UTF-8" },
body: JSON.stringify({
action: "request",
request: text,
whatsapp: phone,
page_title: document.title,
page_url: location.href,
device: /Mobi|Android/i.test(navigator.userAgent) ? "جوال" : "كمبيوتر",
source: "رقمي شوب - بانر المقترحات"
})
}).then(function () {
var m = document.getElementById("rqb-modal");
m.innerHTML = ""
+ ''
+ '✔
'
+ '
وصلنا اقتراحك، شكرًا لك!
'
+ '
نراجع كل المقترحات، وإن كانت فكرتك تناسب المتجر فستجدها قريبًا.
';
document.getElementById("rqb-close").addEventListener("click", closeModal);
setTimeout(closeModal, 3500);
}).catch(function () {
btn.disabled = false;
btn.textContent = "إرسال الاقتراح";
status.className = "";
status.textContent = "تعذر الإرسال، حاول مرة أخرى.";
});
}
document.addEventListener("click", function (e) {
var a = e.target && e.target.closest ? e.target.closest('a[href*="rq-iqtirah"]') : null;
if (!a) return;
e.preventDefault();
e.stopPropagation();
openModal();
}, true);
// الفتح عبر الرابط من صفحة أخرى: نمسح العلامة فورًا حتى لا تعيد التحديثات فتح النافذة
if (window.location.hash === "#rq-iqtirah") {
try { history.replaceState(null, "", window.location.pathname + window.location.search); } catch (e) {}
setTimeout(openModal, 800);
}
})();
// تنبيه لطيف للزائر غير المسجل بعد إضافته للسلة: سجل دخولك لتحفظ سلتك
(function () {
var KEY = "rqb_login_nudge";
var SESSION_KEY = "rqb_login_nudge_s";
var MAX_SHOWS = 3;
var built = false, timer = null;
var T0 = Date.now();
function isGuest() {
try { return salla.config.get("user.type") === "guest"; } catch (e) { return false; }
}
function loginUrl() {
try { return salla.url.get("login"); } catch (e) { return "/login"; }
}
function shows() {
try { return parseInt(localStorage.getItem(KEY) || "0", 10) || 0; } catch (e) { return 0; }
}
function canShow() {
try { if (sessionStorage.getItem(SESSION_KEY)) return false; } catch (e) {}
return shows() < MAX_SHOWS;
}
function markShown() {
try { localStorage.setItem(KEY, String(shows() + 1)); } catch (e) {}
try { sessionStorage.setItem(SESSION_KEY, "1"); } catch (e) {}
}
function buildToast() {
if (built) return;
built = true;
var st = document.createElement("style");
st.textContent = ""
+ "#rqn-toast{position:fixed;left:50%;bottom:-220px;transform:translateX(-50%);width:min(420px,92vw);background:#fff;border-radius:18px;box-shadow:0 18px 50px rgba(0,0,0,.28);z-index:99990;direction:rtl;font-family:inherit;padding:18px 18px 16px;transition:bottom .45s cubic-bezier(.2,.8,.25,1)}"
+ "#rqn-toast.rqn-show{bottom:22px}"
+ "#rqn-close{position:absolute;top:8px;left:12px;border:0;background:transparent;font-size:22px;line-height:1;color:#98a2ae;cursor:pointer}"
+ ".rqn-title{font-size:16.5px;font-weight:800;color:#1c2430;margin:0 0 6px}"
+ ".rqn-body{font-size:13.5px;color:#68727e;line-height:1.7;margin:0 0 12px}"
+ ".rqn-row{display:flex;gap:8px}"
+ "#rqn-login{flex:1;border:0;border-radius:12px;background:#25b066;color:#fff;font-size:15px;font-weight:800;font-family:inherit;padding:11px;cursor:pointer;text-align:center;text-decoration:none;display:block}"
+ "#rqn-later{border:1.5px solid #dde3ea;border-radius:12px;background:#fff;color:#68727e;font-size:14px;font-family:inherit;padding:11px 16px;cursor:pointer}";
document.head.appendChild(st);
var t = document.createElement("div");
t.id = "rqn-toast";
t.innerHTML = ""
+ ''
+ 'أضفته للسلة؟ خلها محفوظة لك
'
+ 'سلتك الآن غير محفوظة. بتسجيل الدخول تبقى سلتك على كل أجهزتك.
'
+ '';
document.body.appendChild(t);
document.getElementById("rqn-close").addEventListener("click", hideToast);
document.getElementById("rqn-later").addEventListener("click", hideToast);
}
function showToast() {
buildToast();
var t = document.getElementById("rqn-toast");
t.classList.add("rqn-show");
markShown();
setTimeout(hideToast, 14000);
}
function hideToast() {
var t = document.getElementById("rqn-toast");
if (t) t.classList.remove("rqn-show");
}
// هل نافذة «تمت الإضافة إلى سلة التسوق» ظاهرة الآن؟
function addedModalVisible() {
try { return document.body.innerText.indexOf("تمت الإضافة إلى سلة التسوق") !== -1; } catch (e) { return false; }
}
function onCartActivity(payload) {
// تجاهل نبضة تحميل الصفحة الأولى حتى لا يظهر التنبيه دون فعل من الزائر
if (Date.now() - T0 < 4000) return;
var count = null;
try { count = payload && (payload.count != null ? payload.count : (payload.items ? payload.items.length : null)); } catch (e) {}
if (count === 0) return;
if (!isGuest() || !canShow()) return;
clearInterval(timer);
var started = Date.now();
timer = setInterval(function () {
var waited = Date.now() - started;
if (addedModalVisible() && waited < 12000) return;
clearInterval(timer);
setTimeout(function () { if (isGuest() && canShow()) showToast(); }, 900);
}, 800);
}
function hook() {
try { salla.event.on("cart::item-added", onCartActivity); } catch (e) {}
try { salla.event.on("cart::updated", onCartActivity); } catch (e) {}
}
if (typeof salla !== "undefined" && salla.event) hook();
else document.addEventListener("salla::ready", hook);
// الالتقاط الجذري: طلب الشبكة الذي تنفذه كل إضافة حقيقية للسلة
var ADD_RE = /\/item\/\d+\/add|cart\/add/i;
try {
var ox = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function (m, u) {
try {
if (String(m).toUpperCase() === "POST" && ADD_RE.test(String(u))) {
this.addEventListener("load", function () {
if (this.status >= 200 && this.status < 300) onCartActivity({ count: 1 });
});
}
} catch (e) {}
return ox.apply(this, arguments);
};
} catch (e) {}
try {
var of = window.fetch;
if (of) window.fetch = function (u, o) {
var url = typeof u === "string" ? u : (u && u.url) || "";
var method = (o && o.method) || (u && u.method) || "GET";
var p = of.apply(this, arguments);
try {
if (String(method).toUpperCase() === "POST" && ADD_RE.test(url))
p.then(function (r) { if (r && r.ok) onCartActivity({ count: 1 }); });
} catch (e) {}
return p;
};
} catch (e) {}
})();
/* ============================================================
رقيم — المرشد الخبير لرقمي شوب
شخصية حية على كل الصفحات: يعرف كل منتج بمعلومته ونصيحته،
ويجيب أسئلة الزائر السريعة (تجربة/تسليم/تفعيل/أسعار) بأزرار،
يرمش وتتبع عيناه المؤشر، يحتفل عند الإضافة للسلة، ويعرض
«نبرمجه لك خصيصًا» لمن لم يجد طلبه.
التركيب في سلة: التصميم ← الكود المخصص ← JavaScript.
============================================================ */
(function () {
"use strict";
if (window.__rqmRaqeem) return;
window.__rqmRaqeem = true;
/* ---------------- الإعدادات ---------------- */
var WA_NUMBER = "966597093033";
var WA_TEXT = "مرحبًا، أبحث عن برنامج غير موجود في المتجر وأود طلبه: ";
var REQ_ENDPOINT = "https://script.google.com/macros/s/AKfycbzG8UtGilLI9v2963p0TsqGuSJfpqggG5NqXVQ2UVJ_L_yueEpCvdhdLlnanFuJJ_5NWA/exec";
var FREE_QR_URL = "https://raqmishop.com/%D9%85%D9%88%D9%84%D8%AF-%D8%B1%D9%85%D8%B2-qr/p425395513";
var SIDE = "left";
var FIRST_DELAY_MS = 6000;
var COOLDOWN_MS = 40000;
var IDLE_MS = 35000;
var waLink = "https://wa.me/" + WA_NUMBER + "?text=" + encodeURIComponent(WA_TEXT);
/* ---------------- قاعدة معرفة المنتجات ---------------- */
// المطابقة على رابط الصفحة أولًا (الروابط قياسية) والعنوان احتياطًا فقط —
// العناوين التسويقية تحمل كلمات منتجات أخرى («أوراق تدريب الخط» أوقعتنا في
// «أوراق العمل»). الشرطات تطبع مسافات فتعمل الأنماط على الرابط والعنوان معًا.
var PRODUCTS = [
{ re: /المفرغ الصوتي|transcriber/i, name: "المفرغ الصوتي العربي",
one: "يحول تسجيلاتك ومحاضراتك إلى نص عربي — كل المعالجة على جهازك دون إنترنت.",
tip: "للمحاضرات الطويلة استخدم «وضع المحاضرة»: يفرغ الكلام أولًا بأول أثناء التسجيل، وجرب نموذج «دقة عالية سريعة» فهو الموصى به." },
{ re: /[أا]دوات pdf/i, name: "أدوات PDF العربية",
one: "عشر أدوات في برنامج واحد: دمج وتقسيم وضغط وتحويل مع OCR عربي للملفات الممسوحة.",
tip: "أقوى ما فيه أداة OCR: تحول الـPDF المصور إلى نص عربي قابل للنسخ والبحث." },
{ re: /السيرة الذاتية/i, name: "مولد السيرة الذاتية العربية",
one: "سير ذاتية احترافية ثنائية اللغة بمعاينة حية وقوالب متوافقة مع أنظمة التوظيف.",
tip: "أنشئ نسختين عربية وإنجليزية من نفس البيانات — أنظمة التوظيف الخليجية تطلب الاثنتين غالبًا." },
{ re: /ال[أا]رشيف العربي/i, name: "الأرشيف العربي الذكي",
one: "أرشفة مستنداتك بفهرسة وبحث عربي فوري يفهم اللغة لا الحروف فقط.",
tip: "البحث يتجاوز «ال» التعريف والتشكيل — اكتب «عقد» يجد «العقد» و«عَقد»." },
{ re: /شهادات التقدير/i, name: "مولد شهادات التقدير",
one: "شهادات تقدير بالجملة: الصق أسماء طلابك من إكسل واختر قالبًا واطبع الكل دفعة.",
tip: "جهز عمود الأسماء في إكسل والصقه كما هو — كل سطر يصبح شهادة باسم صاحبها." },
{ re: /الاختبارات و[أا]وراق|مولد الاختبارات/i, name: "مولد الاختبارات وأوراق العمل",
one: "أوراق اختبارات منسقة بنماذج متعددة ومفاتيح تصحيح مطابقة.",
tip: "فعل خلط الأسئلة لنموذجي أ وب — كل نموذج يخرج بمفتاح إجابته الصحيح تلقائيًا." },
{ re: /الناسخ الفوري/i, name: "الناسخ الفوري",
one: "اقتص أي نص يظهر على شاشتك — صورة أو فيديو أو برنامج — وينسخه لك نصًا عربيًا.",
tip: "يسكن بجوار الساعة ويعمل بمفتاح اختصار — اقتصاص فنسخ في ثانيتين." },
{ re: /ال[أا]سر المنتجة/i, name: "دفتر الأسر المنتجة",
one: "طلباتك وأرباحك وفواتيرك في مكان واحد — مصمم لمشاريع المنزل.",
tip: "سجل الطلب لحظة وصوله واطبع تقرير الربح الشهري بضغطة — ستعرف أي منتجاتك يربح فعلًا." },
{ re: /محرر pdf/i, name: "محرر PDF العربي",
one: "عبئ النماذج ووقّع واختم وظلل على أي PDF — دون تحويل ولا مواقع أجنبية.",
tip: "ارسم توقيعك مرة واحدة واحفظه — يصبح ختمًا جاهزًا تضعه في كل ملفاتك." },
{ re: /مستخرج الجداول|الجداول [إا]لى excel/i, name: "مستخرج الجداول إلى Excel",
one: "يحول جداول الصور وPDF إلى ملفات إكسل حقيقية قابلة للتحرير.",
tip: "كلما كانت حدود الجدول أوضح في الصورة كان الاستخراج أدق — صور المستند عموديًا وبإضاءة جيدة." },
{ re: /منشورات المتجر/i, name: "مصمم منشورات المتجر",
one: "منشورات مبيعات جاهزة للنشر بقوالب وألوان متعددة — اكتب العرض واختر الشكل.",
tip: "النسخة الكاملة تولد المنشورات بالجملة من ملف إكسل — حملة كاملة في دقائق." },
{ re: /دفتر المواعيد/i, name: "دفتر المواعيد",
one: "مواعيد عيادتك أو صالونك بشبكة يومية وباقات وتذكير واتساب وتقارير.",
tip: "فعل الباقات: جلسات كل عميلة تخصم تلقائيًا ويظهر رصيدها المتبقي عند الحجز." },
{ re: /كراس الخط/i, name: "كراس الخط",
one: "كراسات تحسين خط بنقاط تتبع حقيقية لمسار القلم — أربعة خطوط وثلاثة أحجام.",
tip: "لكل طالب كراسه باسمه دفعة واحدة، وابدأ المبتدئين بوضع «التأسيس» بمسطرة السطرين." },
{ re: /حافظ الملفات/i, name: "حافظ الملفات",
one: "نسخ احتياطي تزايدي لملفاتك المهمة لا يحذف شيئًا أبدًا، مع جدولة تلقائية.",
tip: "دعه يكتشف مجلدات بياناتك المهمة تلقائيًا — يعرف أماكن حفظ برامجك الشائعة." },
{ re: /منظم الملفات/i, name: "منظم الملفات",
one: "يرتب مجلداتك الفوضوية بقواعد عربية مع معاينة قبل التنفيذ وتراجع كامل.",
tip: "ابدأ بمجلد التنزيلات — الأكثر فوضى دائمًا — ثم فعل «الحارس التلقائي» ليبقى مرتبًا." },
{ re: /الموقع الدفعي/i, name: "الموقع الدفعي",
one: "توقيعك وختمك وتاريخ اليوم على كل صفحات PDF دفعة واحدة.",
tip: "مثالي للعقود والمعاملات الطويلة — وقّع ملف خمسين صفحة في ثوانٍ." },
{ re: /منظف المساحة/i, name: "منظف المساحة",
one: "خريطة تفاعلية تريك أين ذهبت مساحة قرصك، وتنظيف آمن كل ما فيه يمر بحجر قابل للاسترداد.",
tip: "لا تخف من التنظيف: لا حذف نهائيًا — كل شيء يبقى في الحجر قابلًا للاسترداد بضغطة." },
// أنواع عامة — تُفحص أخيرًا بعد المنتجات المحددة
{ re: /قالب excel|قوالب excel/i, name: "قالب Excel جاهز", file: true,
one: "ملف إكسل مصمم وجاهز للاستخدام — تحمله فور إتمام الطلب ويعمل على أوفيس عندك.",
tip: "احفظ نسخة أصلية من الملف قبل تعبئة بياناتك — لتعود إليها متى أردت البدء من جديد." },
{ re: /جاهز للطباعة/i, name: "ملف جاهز للطباعة", file: true,
one: "ملف PDF مصمم بعناية — تحمله فور إتمام الطلب وتطبعه مباشرة، لا برنامج ولا تثبيت.",
tip: "اطبعه بورق 80 غرامًا فأعلى تخرج الألوان بأفضل شكل، ويمكنك الطباعة بعدد ما تحتاج." }
];
/* ---------------- إجابات الأسئلة السريعة ---------------- */
var QA = {
trial: { label: "كيف أجرب مجانًا؟",
html: "كل برامجنا لها نسخة تجريبية مجانية 👌
في صفحة أي منتج ستجد زر تحميل النسخة التجريبية — جربها على جهازك براحتك، وإن أعجبك البرنامج اشترِ المفتاح وفعّله على نفس النسخة دون إعادة تنزيل." },
delivery: { label: "كيف يصلني البرنامج؟",
html: "فور إتمام الطلب يصلك على بريدك مفتاح التفعيل مع رابط التحميل 📧
وإن تأخر تفقد مجلد الرسائل غير المرغوبة، أو راسلنا واتساب ونرسله فورًا." },
activate: { label: "طريقة التفعيل",
html: "ثلاث خطوات ⚡
1) افتح البرنامج واذهب إلى الإعدادات ← الترخيص
2) الصق المفتاح
3) اضغط «تفعيل» — ويعمل فورًا دون إنترنت ولا يرتبط بجهاز محدد." },
prices: { label: "الأسعار والمدد",
html: "لكل برنامج خيارات مدة: 6 أشهر / سنة / سنتان — والسنة هي الأنسب سعرًا لأغلب عملائنا.
وقاعدتنا الثابتة: لا تجديد تلقائي أبدًا — تدفع مرة وتنتهي القصة." },
privacy: { label: "هل ملفاتي آمنة؟",
html: "هذا تخصصنا 🔒
كل برامجنا تعمل على جهازك بالكامل: ملفاتك وتسجيلاتك ونصوصك لا تُرفع إلى أي خادم — يشتغل أغلبها حتى دون إنترنت." },
custom: { label: "أبحث عن برنامج غير موجود",
html: "هذا تخصصنا 😊 نبني البرامج حسب الطلب ونبرمجه لك خصيصًا.
اكتب ما تحتاجه هنا ويصل طلبك لفريقنا فورًا:", form: true, wa: true, waLabel: "أو راسلنا واتساب مباشرة" },
deliveryFile: { label: "كيف يصلني الملف؟",
html: "فور إتمام الطلب يصلك رابط تحميل الملف مباشرة 📥
وتجده أيضًا في حسابك بالمتجر متى أردت إعادة تنزيله." }
};
var MAIN_CHIPS = ["trial", "delivery", "activate", "prices", "privacy", "custom"];
var FILE_CHIPS = ["deliveryFile", "privacy", "custom"];
/* ---------------- التخزين ---------------- */
function lsGet(k) { try { return localStorage.getItem(k); } catch (e) { return null; } }
function lsSet(k, v) { try { localStorage.setItem(k, v); } catch (e) {} }
function ssGet(k) { try { return sessionStorage.getItem(k); } catch (e) { return null; } }
function ssSet(k, v) { try { sessionStorage.setItem(k, v); } catch (e) {} }
var returning = lsGet("rqmraqeem_visited") === "1";
lsSet("rqmraqeem_visited", "1");
/* ---------------- تعرف الصفحة والمنتج ---------------- */
function decodedPath() {
try { return decodeURIComponent(location.pathname); } catch (e) { return location.pathname; }
}
function pageKind() {
var p = location.pathname;
if (/\/cart\b/.test(p)) return "cart";
var og = document.querySelector('meta[property="og:type"]');
if (og && /product/i.test(og.content || "")) return "product";
if (document.querySelector("salla-add-to-cart-button, form.product-form, [class*='product-single']")) return "product";
if (p === "/" || p === "" || /^\/(ar|en)\/?$/.test(p)) return "home";
return "browse";
}
var kind = pageKind();
// تطبيع للمطابقة: الشرطات مسافات (روابط سلة تفصل بالشرطات والعناوين بالمسافات)
function norm(s) { return String(s || "").replace(/[-_–—]/g, " ").toLowerCase(); }
var hayPath = norm(decodedPath());
var hayTitle = norm(document.title);
function currentProduct() {
if (kind !== "product") return null;
// الرابط أولًا — قياسي وموثوق؛ ثم العنوان احتياطًا للصفحات بروابط مختصرة
for (var i = 0; i < PRODUCTS.length; i++)
if (PRODUCTS[i].re.test(hayPath)) return PRODUCTS[i];
for (var j = 0; j < PRODUCTS.length; j++)
if (PRODUCTS[j].re.test(hayTitle)) return PRODUCTS[j];
return null;
}
function isQrPage() {
return kind === "product" && (/مولد رمز qr/.test(hayPath) || /مولد رمز qr/.test(hayTitle));
}
var product = currentProduct();
function greeting() {
var h = new Date().getHours();
return h >= 5 && h < 12 ? "صباح الخير" : "مساء الخير";
}
/* ---------------- الأنماط ---------------- */
var alignItems = SIDE === "left" ? "flex-start" : "flex-end";
var closeSide = SIDE === "left" ? "right" : "left";
var css = ""
// الحاوية LTR عمدًا: «بداية» المحاذاة تبقى حافة الشاشة فلا تقفز الشخصية عند اتساع البالون
+ "#rqm-raqeem{position:fixed;bottom:18px;" + SIDE + ":18px;z-index:99990;display:flex;flex-direction:column;align-items:" + alignItems + ";gap:10px;direction:ltr;font-family:inherit;-webkit-tap-highlight-color:transparent}"
+ "#rqm-raqeem *{box-sizing:border-box;margin:0;padding:0}"
+ "#rqm-rq-char{width:86px;height:100px;cursor:pointer;filter:drop-shadow(0 6px 18px rgba(58,200,176,.35));transform:translateY(150px);transition:transform .6s cubic-bezier(.34,1.56,.64,1);border:0;background:none;padding:0}"
+ "#rqm-raqeem.rqm-in #rqm-rq-char{transform:translateY(0)}"
+ ".rqm-body-bob{animation:rqmBob 3.4s ease-in-out infinite;transform-origin:50% 100%}"
+ "@keyframes rqmBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}"
+ ".rqm-arm-wave{transform-origin:74px 62px}"
+ "#rqm-raqeem.rqm-waving .rqm-arm-wave{animation:rqmWave 1.1s ease-in-out 3}"
+ "#rqm-rq-char:hover .rqm-arm-wave{animation:rqmWave 1.1s ease-in-out infinite}"
+ "@keyframes rqmWave{0%,100%{transform:rotate(0)}30%{transform:rotate(-26deg)}60%{transform:rotate(10deg)}}"
+ "#rqm-raqeem.rqm-cheer .rqm-arm-wave{animation:rqmCheerA .5s ease-in-out 4 alternate}"
+ "#rqm-raqeem.rqm-cheer .rqm-arm-side{animation:rqmCheerB .5s ease-in-out 4 alternate;transform-origin:26px 66px}"
+ "@keyframes rqmCheerA{0%{transform:rotate(0)}100%{transform:rotate(-38deg)}}"
+ "@keyframes rqmCheerB{0%{transform:rotate(0)}100%{transform:rotate(38deg)}}"
+ "#rqm-raqeem.rqm-cheer #rqm-rq-char{animation:rqmJump .5s ease-in-out 4 alternate}"
+ "@keyframes rqmJump{0%{transform:translateY(0)}100%{transform:translateY(-10px)}}"
+ ".rqm-antenna-dot{animation:rqmPulse 2.2s ease-in-out infinite}"
+ "@keyframes rqmPulse{0%,100%{opacity:1}50%{opacity:.35}}"
+ ".rqm-eyes{transition:transform .18s ease-out}"
+ ".rqm-blink{transform-origin:center;animation:rqmBlink .16s ease-in-out 1}"
+ "@keyframes rqmBlink{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.08)}}"
+ ".rqm-face-happy,.rqm-face-think{display:none}"
+ "#rqm-raqeem.rqm-exp-happy .rqm-face-normal{display:none}"
+ "#rqm-raqeem.rqm-exp-happy .rqm-face-happy{display:inline}"
+ "#rqm-raqeem.rqm-exp-think .rqm-face-normal{display:none}"
+ "#rqm-raqeem.rqm-exp-think .rqm-face-think{display:inline}"
+ "#rqm-rq-bubble{position:relative;direction:rtl;text-align:right;max-width:320px;background:#23262e;color:#e9eaf0;border:1px solid #3c404e;border-radius:16px;border-bottom-" + SIDE + "-radius:4px;padding:14px 36px 14px 16px;line-height:1.9;font-size:13.5px;box-shadow:0 10px 30px rgba(0,0,0,.35);opacity:0;transform:translateY(14px) scale(.96);transition:opacity .35s ease,transform .35s cubic-bezier(.34,1.56,.64,1);pointer-events:none}"
+ "#rqm-raqeem.rqm-open #rqm-rq-bubble{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}"
+ "#rqm-rq-bubble b{color:#3ac8b0;font-weight:700}"
+ "#rqm-rq-close{position:absolute;top:8px;" + closeSide + ":10px;border:0;background:none;color:#9aa0ae;font-size:15px;cursor:pointer;line-height:1;padding:4px}"
+ "#rqm-rq-close:hover{color:#e9eaf0}"
+ "#rqm-rq-wa{display:none;align-items:center;justify-content:center;gap:8px;margin-top:12px;background:#25d366;color:#0b2e1c;font-weight:700;font-size:13.5px;text-decoration:none;border-radius:12px;padding:10px 14px;transition:transform .15s ease,box-shadow .15s ease}"
+ "#rqm-raqeem.rqm-wa #rqm-rq-wa{display:flex}"
+ "#rqm-rq-wa:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(37,211,102,.35);color:#0b2e1c;text-decoration:none}"
+ "#rqm-rq-link{display:none;align-items:center;justify-content:center;gap:8px;margin-top:12px;background:#3ac8b0;color:#0d1f23;font-weight:700;font-size:13.5px;text-decoration:none;border-radius:12px;padding:10px 14px;transition:transform .15s ease,box-shadow .15s ease}"
+ "#rqm-raqeem.rqm-link #rqm-rq-link{display:flex}"
+ "#rqm-rq-link:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(58,200,176,.35);color:#0d1f23;text-decoration:none}"
// أزرار الأسئلة السريعة
+ "#rqm-rq-chips{display:none;flex-wrap:wrap;gap:9px;margin-top:14px}"
+ "#rqm-raqeem.rqm-chips #rqm-rq-chips{display:flex}"
+ "#rqm-raqeem .rqm-chip{border:1px solid rgba(58,200,176,.55);background:rgba(58,200,176,.08);color:#8fe0d0;font-size:12px;line-height:1.8;border-radius:24px;padding:8px 17px;cursor:pointer;font-family:inherit;transition:background .15s ease}"
+ "#rqm-raqeem .rqm-chip:hover{background:rgba(58,200,176,.22);color:#c8f0e8}"
+ "#rqm-rq-form{display:none;margin-top:12px}"
+ "#rqm-raqeem.rqm-form #rqm-rq-form{display:block}"
+ "#rqm-rq-req{width:100%;min-height:74px;box-sizing:border-box;background:#1a1c22;border:1px solid #3c404e;border-radius:12px;color:#e9eaf0;font-family:inherit;font-size:13px;line-height:1.8;padding:10px 12px;resize:vertical;outline:none}"
+ "#rqm-rq-req:focus,#rqm-rq-phone:focus{border-color:#3ac8b0;box-shadow:0 0 0 3px rgba(58,200,176,.15)}"
+ "#rqm-rq-phone{width:100%;box-sizing:border-box;background:#1a1c22;border:1px solid #3c404e;border-radius:12px;color:#e9eaf0;font-family:inherit;font-size:13px;padding:10px 12px;margin-top:8px;outline:none;direction:ltr;text-align:right}"
+ "#rqm-rq-send{width:100%;border:0;border-radius:12px;background:#3ac8b0;color:#0d1f23;font-weight:700;font-size:13.5px;font-family:inherit;padding:11px;margin-top:10px;cursor:pointer;transition:transform .15s ease}"
+ "#rqm-rq-send:hover{transform:translateY(-1px)}"
+ "#rqm-rq-send:disabled{opacity:.6;cursor:default;transform:none}"
+ "#rqm-rq-formstatus{font-size:12px;margin-top:8px;min-height:16px;color:#e07a7a;text-align:center}"
+ "#rqm-raqeem.rqm-typing #rqm-rq-form{display:none}"
+ "#rqm-rq-typing{display:none;gap:5px;padding:2px 0}"
+ "#rqm-raqeem.rqm-typing #rqm-rq-typing{display:flex}"
+ "#rqm-raqeem.rqm-typing #rqm-rq-text,#rqm-raqeem.rqm-typing #rqm-rq-wa,#rqm-raqeem.rqm-typing #rqm-rq-link,#rqm-raqeem.rqm-typing #rqm-rq-chips{display:none}"
+ "#rqm-rq-typing span{width:8px;height:8px;border-radius:50%;background:#3ac8b0;animation:rqmDot 1s ease-in-out infinite}"
+ "#rqm-rq-typing span:nth-child(2){animation-delay:.15s}"
+ "#rqm-rq-typing span:nth-child(3){animation-delay:.3s}"
+ "@keyframes rqmDot{0%,100%{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}"
+ "@media (max-width:480px){#rqm-rq-char{width:68px;height:80px}#rqm-rq-bubble{max-width:calc(100vw - 104px);font-size:12.5px}}"
+ "@media (prefers-reduced-motion:reduce){.rqm-body-bob,.rqm-antenna-dot{animation:none}}";
var style = document.createElement("style");
style.textContent = css;
document.head.appendChild(style);
/* ---------------- الشخصية (SVG) ---------------- */
var raqeemSvg = ""
+ '';
/* ---------------- البناء ---------------- */
var wrap = document.createElement("div");
wrap.id = "rqm-raqeem";
wrap.innerHTML = ""
+ ''
+ '';
document.body.appendChild(wrap);
var charBtn = document.getElementById("rqm-rq-char");
var textEl = document.getElementById("rqm-rq-text");
var chipsEl = document.getElementById("rqm-rq-chips");
var eyesEl = document.getElementById("rqm-eyes");
/* ---------------- الحياة: رمش وتتبع العيون ---------------- */
(function blinkLoop() {
setTimeout(function () {
if (eyesEl) {
eyesEl.classList.add("rqm-blink");
setTimeout(function () { eyesEl.classList.remove("rqm-blink"); }, 180);
}
blinkLoop();
}, 2800 + Math.random() * 3500);
})();
var eyeRaf = false;
document.addEventListener("mousemove", function (e) {
if (eyeRaf || !eyesEl) return;
eyeRaf = true;
requestAnimationFrame(function () {
eyeRaf = false;
var r = charBtn.getBoundingClientRect();
var cx = r.left + r.width / 2, cy = r.top + r.height * 0.45;
var dx = e.clientX - cx, dy = e.clientY - cy;
var d = Math.max(1, Math.hypot(dx, dy));
eyesEl.style.transform = "translate(" +
Math.max(-3.2, Math.min(3.2, dx / d * 3.2)).toFixed(1) + "px," +
Math.max(-2.4, Math.min(2.4, dy / d * 2.4)).toFixed(1) + "px)";
});
}, { passive: true });
/* ---------------- التعابير ---------------- */
function setExpression(exp) {
wrap.classList.remove("rqm-exp-happy", "rqm-exp-think");
if (exp === "happy") wrap.classList.add("rqm-exp-happy");
if (exp === "think") wrap.classList.add("rqm-exp-think");
}
function wave() { wrap.classList.remove("rqm-waving"); void wrap.offsetWidth; wrap.classList.add("rqm-waving"); }
function cheer() {
wrap.classList.remove("rqm-cheer"); void wrap.offsetWidth; wrap.classList.add("rqm-cheer");
setTimeout(function () { wrap.classList.remove("rqm-cheer"); }, 2200);
}
/* ---------------- عرض الرسائل ---------------- */
var lastShown = 0;
var expTimer = null;
function buildChips(chipKeys) {
chipsEl.innerHTML = "";
(chipKeys || []).forEach(function (item) {
var chip = document.createElement("button");
chip.className = "rqm-chip";
chip.type = "button";
if (typeof item === "string") {
chip.textContent = QA[item].label;
chip.addEventListener("click", function () { answerChip(item); });
} else {
chip.textContent = item.label;
chip.addEventListener("click", item.onClick);
}
chipsEl.appendChild(chip);
});
wrap.classList.toggle("rqm-chips", chipsEl.children.length > 0);
}
// opts: {exp, wa, waLabel, link:{href,label}, chips:[...], force}
function say(key, html, opts) {
opts = opts || {};
if (key && ssGet("rqmmsg_" + key)) return false;
if (!opts.force && Date.now() - lastShown < COOLDOWN_MS) return false;
if (key) ssSet("rqmmsg_" + key, "1");
lastShown = Date.now();
wrap.classList.add("rqm-open", "rqm-typing");
wrap.classList.toggle("rqm-wa", !!opts.wa);
if (opts.waLabel) document.getElementById("rqm-rq-wa-label").textContent = opts.waLabel;
wrap.classList.toggle("rqm-form", !!opts.form);
var hasLink = !!(opts.link && opts.link.href);
wrap.classList.toggle("rqm-link", hasLink);
if (hasLink) {
document.getElementById("rqm-rq-link").href = opts.link.href;
document.getElementById("rqm-rq-link-label").textContent = opts.link.label || "افتح الصفحة";
}
buildChips(opts.chips);
setExpression("think");
clearTimeout(expTimer);
setTimeout(function () {
wrap.classList.remove("rqm-typing");
textEl.innerHTML = html;
setExpression(opts.exp || "");
if (opts.exp === "happy") cheer(); else wave();
expTimer = setTimeout(function () { setExpression(""); }, 7000);
}, 850 + Math.random() * 450);
return true;
}
// إجابة سؤال سريع: تفاعل من الزائر — تتجاوز التهدئة، وتعرض «أسئلة أخرى» بعدها
function answerChip(qaKey) {
var qa = QA[qaKey];
var chips = MAIN_CHIPS.filter(function (k) { return k !== qaKey; }).slice(0, 4);
say(null, qa.html, { force: true, wa: !!qa.wa, waLabel: qa.waLabel, form: !!qa.form, chips: qa.form ? [] : chips, exp: qaKey === "custom" ? "think" : "happy" });
}
function productChips() {
var base = product && product.file ? FILE_CHIPS : MAIN_CHIPS.slice(0, 3);
var chips = [];
if (product) {
chips.push({ label: "💡 نصيحة خبير", onClick: function () {
say(null, "نصيحة من رقيم:
" + product.tip, { force: true, exp: "happy", chips: base });
} });
}
return chips.concat(base);
}
// إرسال طلب المنتج غير الموجود — نفس جدول Google Sheets ونفس الحقول
document.getElementById("rqm-rq-send").addEventListener("click", function () {
var reqEl = document.getElementById("rqm-rq-req");
var phoneEl = document.getElementById("rqm-rq-phone");
var btn = document.getElementById("rqm-rq-send");
var status = document.getElementById("rqm-rq-formstatus");
var text = reqEl.value.trim();
if (!text) {
status.textContent = "اكتب ما تحتاجه أولًا";
reqEl.focus();
return;
}
btn.disabled = true;
btn.textContent = "جارٍ الإرسال...";
status.textContent = "";
fetch(REQ_ENDPOINT, {
method: "POST",
mode: "no-cors",
headers: { "Content-Type": "text/plain;charset=UTF-8" },
body: JSON.stringify({
action: "request",
request: text,
whatsapp: phoneEl.value.trim(),
page_title: document.title,
page_url: location.href,
device: /Mobi|Android/i.test(navigator.userAgent) ? "جوال" : "كمبيوتر",
source: "رقمي شوب - رقيم"
})
}).then(function () {
reqEl.value = "";
phoneEl.value = "";
btn.disabled = false;
btn.textContent = "أرسل الطلب لفريقنا";
say(null, "وصلنا طلبك، شكرًا لك! 🎉
نراجع الطلبات أولًا بأول — وإن تركت رقمك فسنراسلك بما نصل إليه.", { force: true, exp: "happy", chips: ["trial", "prices"] });
}).catch(function () {
btn.disabled = false;
btn.textContent = "أرسل الطلب لفريقنا";
status.textContent = "تعذر الإرسال — حاول مرة أخرى أو راسلنا واتساب";
});
});
function closeBubble() { wrap.classList.remove("rqm-open"); }
document.getElementById("rqm-rq-close").addEventListener("click", function (e) {
e.stopPropagation();
closeBubble();
});
// النقر على رقيم يفتح قائمة المرشد دائمًا
charBtn.addEventListener("click", function () {
if (wrap.classList.contains("rqm-open")) { wrap.classList.remove("rqm-open"); return; }
var intro = product
? "أهلًا! أنا رقيم 👋 تشاهد الآن " + product.name + ".
اسألني ما تشاء:"
: "أهلًا! أنا رقيم، مرشدك في رقمي شوب 👋
اسألني ما تشاء:";
say(null, intro, { force: true, chips: product ? productChips() : MAIN_CHIPS });
});
/* ---------------- الرسائل التلقائية السياقية ---------------- */
// 1) الترحيب الأول حسب الصفحة
setTimeout(function () {
wrap.classList.add("rqm-in");
setTimeout(function () {
if (kind === "cart") {
say("cart", "خيار موفق! 🎉
بعد إتمام الطلب يصلك مفتاح التفعيل على بريدك، وطريقة التفعيل ثلاث خطوات فقط.", { exp: "happy", chips: ["activate", "delivery"] });
} else if (isQrPage()) {
say("qrfree:" + hayPath, "بشارة: هذا البرنامج مجاني 100% 🎁
بلا حدود وبلا اشتراك — أتم «الشراء» بصفر ريال ويصلك رابط التحميل، وهديتنا لك لتجرب جودة برامجنا.", { exp: "happy", chips: ["delivery", "privacy"] });
} else if (product) {
say("product:" + hayPath, "تشاهد " + product.name + " 👌
" + product.one, { chips: productChips() });
} else if (kind === "product") {
say("product:" + hayPath, greeting() + " 👋
لهذا البرنامج نسخة تجريبية مجانية — جربها قبل الشراء. وإن احترت فأنا هنا.", { chips: MAIN_CHIPS.slice(0, 3) });
} else if (returning) {
say("welcome_back", "أهلًا بعودتك! 😊
اسألني عن أي شيء، وإن لم تجد منتجًا تريده — نبرمجه لك خصيصًا.", { chips: MAIN_CHIPS });
} else {
say("welcome", greeting() + " 👋 أنا رقيم، مرشدك في رقمي شوب.
كل برامجنا عربية وتعمل على جهازك ولها نسخ تجريبية مجانية. اسألني ما تشاء:", { chips: MAIN_CHIPS });
}
}, FIRST_DELAY_MS);
}, 400);
// 1ب) اللمسة الثانية في التصفح: هدية مولد رمز QR
if (kind === "home" || kind === "browse") {
setTimeout(function () {
say("gift_qr",
"عندنا لك هدية 🎁
برنامج مولد رمز QR مجاني 100% — روابط وواتساب وواي فاي وبطاقات تعريف، بلا حدود وبلا اشتراك.",
FREE_QR_URL ? { link: { href: FREE_QR_URL, label: "حمله مجانًا" }, exp: "happy" } : { exp: "happy" });
}, FIRST_DELAY_MS + COOLDOWN_MS + 15000);
}
// 2) احتفال الإضافة للسلة — التقاط النداء الشبكي الحقيقي
var ADD_RE = /\/item\/\d+\/add|cart\/add/i;
function onAdded() {
setTimeout(function () {
say("added", "أضفته إلى السلة! 🎉
أكمل الطلب ويصلك مفتاح التفعيل على بريدك.", { exp: "happy", force: true, chips: ["activate", "delivery"] });
}, 900);
}
(function hookNetwork() {
var origOpen = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function (m, u) {
try { this.__rqmAdd = ADD_RE.test(String(u)); } catch (e) {}
return origOpen.apply(this, arguments);
};
var origSend = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send = function () {
if (this.__rqmAdd) {
this.addEventListener("load", function () {
if (this.status >= 200 && this.status < 300) onAdded();
});
}
return origSend.apply(this, arguments);
};
if (window.fetch) {
var origFetch = window.fetch;
window.fetch = function (input) {
var url = typeof input === "string" ? input : (input && input.url) || "";
var p = origFetch.apply(this, arguments);
if (ADD_RE.test(url)) {
p.then(function (res) { if (res && res.ok) onAdded(); }).catch(function () {});
}
return p;
};
}
})();
// 3) سكون طويل في صفحة منتج = زائر محتار (نصيحة المنتج نفسه إن عرفناه)
if (kind === "product") {
var idleTimer = null;
function resetIdle() {
clearTimeout(idleTimer);
idleTimer = setTimeout(function () {
if (product)
say("idle:" + hayPath, "محتار؟ 🤔 خذ نصيحتي في " + product.name + ":
" + product.tip, { exp: "think", chips: MAIN_CHIPS.slice(0, 3), wa: true, waLabel: "اسألنا واتساب" });
else
say("idle:" + hayPath, "محتار؟ 🤔
حمل النسخة التجريبية وجرب بنفسك، أو اسألنا مباشرة ونساعدك تختار.", { wa: true, waLabel: "اسألنا واتساب", exp: "think", chips: MAIN_CHIPS.slice(0, 3) });
}, IDLE_MS);
}
["scroll", "mousemove", "keydown", "touchstart"].forEach(function (ev) {
window.addEventListener(ev, resetIdle, { passive: true });
});
resetIdle();
}
// 4) نهاية الصفحة في التصفح = لم يجد ما يريده
if (kind === "home" || kind === "browse") {
window.addEventListener("scroll", function () {
if (window.innerHeight + window.scrollY >= document.documentElement.scrollHeight - 120) {
say("bottom", "وصلت إلى النهاية ولم تجد ما تبحث عنه؟
اكتب لنا ما تحتاجه — نبرمجه لك خصيصًا.", { wa: true, chips: ["custom", "trial"] });
}
}, { passive: true });
}
// 5) نية المغادرة (سطح المكتب)
document.addEventListener("mouseout", function (e) {
if (e.relatedTarget || e.clientY > 24) return;
say("exit", "لحظة قبل أن تذهب 🙏
إن لم تجد المنتج الذي تريده فهذا تخصصنا: اكتب لنا ونبرمجه لك خصيصًا.", { wa: true, chips: ["custom"] });
});
})();