/* Add custom Js code below */
window.addEventListener("load", (event) => {
// ================== Riyadh Working Hours + Friday OFF ==================
const WORK_START_HOUR = 8; // 08:00
const WORK_END_HOUR = 17; // 17:00
function outOfHoursMessage() {
return "⏰ الدعم الفني متاح خلال وقت الدوام فقط: من ٨ صباحًا حتى ٥ مساءً (الجمعة عطلة)";
}
function getRiyadhPartsNow() {
try {
const parts = new Intl.DateTimeFormat("en-US", {
timeZone: "Asia/Riyadh",
weekday: "short", // Fri, Sat...
hour: "2-digit",
hour12: false,
}).formatToParts(new Date());
const hourStr = parts.find(p => p.type === "hour")?.value;
const weekdayStr = parts.find(p => p.type === "weekday")?.value; // Fri, Sat, ...
const hour = typeof hourStr === "string" ? parseInt(hourStr, 10) : null;
// تحويل "Fri" إلى رقم/حالة
const isFriday =
weekdayStr === "Fri" || weekdayStr === "Friday" || weekdayStr === "الجمعة";
return { hour, isFriday };
} catch (e) {
return { hour: null, isFriday: false };
}
}
function isWithinWorkingHoursRiyadh() {
const { hour, isFriday } = getRiyadhPartsNow();
// الجمعة عطلة
if (isFriday) return false;
// لو فشلنا نقرأ الساعة لأي سبب: نسمح مؤقتًا (تقدر تغيّرها لـ false لو تبغى منع)
if (typeof hour !== "number") return true;
return hour >= WORK_START_HOUR && hour < WORK_END_HOUR;
}
// =======================================================================
let popupTimeout;
let persistentTipInterval;
let chatIsOpen = false;
let popupVisible = false;
const chatTips = [
"هل تحتاج مساعدة؟ اضغط هنا 👋",
"مرحبًا! نحن جاهزون للإجابة على أسئلتك ✅",
"لا تتردد، تواصل معنا الآن 📞",
"اضغط لبدء المحادثة 💬",
"فريق الدعم بانتظارك الآن 🔧",
"عندك استفسار؟ خلينا نساعدك 👇",
];
function randomTip() {
return chatTips[Math.floor(Math.random() * chatTips.length)];
}
function getPopupText() {
return isWithinWorkingHoursRiyadh() ? randomTip() : outOfHoursMessage();
}
var openSvg = ``;
var closeSvg =
'";
var config = {
parentClass: "",
btnSize: 56,
btnLeft: "",
btnRight: 16,
btnTop: "",
btnBottom: 30,
liveChatUrl:
"https://brafco.a.gdms.cloud/liveChat?liveChatAccess=MF85NjYxMjgyZDMxM2Q0YWQ2YWM1ZTgwODE0ZGZmZmE1ZV9jMDc0YWRjNzVkM2EmZGQ1OWRlMTM4NjY4MzRmMjA0NjQ2Y2UwNjljNzI0OGM=",
liveChatWidth: 400,
liveChatHeight: 680,
expandDire: "",
};
initLiveChat(config);
function preventScroll(e) { e.preventDefault(); }
function createPersistentPopup() {
let popup = document.getElementById("chat-popup-tip");
if (!popup) {
popup = document.createElement("div");
popup.id = "chat-popup-tip";
popup.style.position = "fixed";
popup.style.bottom = "90px";
popup.style.right = "30px";
popup.style.padding = "12px 16px";
popup.style.backgroundColor = "#ffffff";
popup.style.borderRadius = "12px";
popup.style.boxShadow = "0 4px 16px rgba(0,0,0,0.15)";
popup.style.fontSize = "15px";
popup.style.color = "#333";
popup.style.zIndex = "100001";
popup.style.maxWidth = "280px";
popup.style.lineHeight = "1.5";
popup.style.transition = "opacity 0.4s ease";
popup.style.opacity = "0";
popup.style.pointerEvents = "auto";
popup.style.display = "flex";
popup.style.alignItems = "center";
popup.style.justifyContent = "space-between";
popup.style.gap = "12px";
const span = document.createElement("span");
span.id = "chat-popup-message";
span.innerText = getPopupText();
popup.appendChild(span);
const closeBtn = document.createElement("button");
closeBtn.innerText = "✖";
closeBtn.style.border = "none";
closeBtn.style.background = "transparent";
closeBtn.style.cursor = "pointer";
closeBtn.style.fontSize = "16px";
closeBtn.style.color = "#999";
closeBtn.onclick = () => { hidePopup(); schedulePopup(); };
popup.appendChild(closeBtn);
document.body.appendChild(popup);
}
popupVisible = true;
updatePopupMessage();
popup.style.opacity = "1";
startPopupLoop();
}
function hidePopup() {
const popup = document.getElementById("chat-popup-tip");
if (popup) popup.style.opacity = "0";
popupVisible = false;
}
function schedulePopup() {
clearTimeout(popupTimeout);
popupTimeout = setTimeout(() => {
if (!chatIsOpen) showPersistentPopup();
}, 90000);
}
function startPopupLoop() {
clearInterval(persistentTipInterval);
persistentTipInterval = setInterval(() => {
if (popupVisible && !chatIsOpen) {
// داخل الدوام فقط نغيّر الرسائل، الجمعة/خارج الدوام تبقى ثابتة
if (isWithinWorkingHoursRiyadh()) updatePopupMessage();
}
}, 90000);
}
function showPersistentPopup() {
if (chatIsOpen) return;
createPersistentPopup();
}
function updatePopupMessage() {
const span = document.getElementById("chat-popup-message");
if (span) {
span.innerText = getPopupText();
animatePopup();
}
}
function animatePopup() {
const popup = document.getElementById("chat-popup-tip");
if (popup) {
popup.style.transition = "transform 0.4s cubic-bezier(0.22, 1, 0.36, 1)";
popup.style.transform = "scale(1.2)";
setTimeout(() => { popup.style.transform = "scale(1)"; }, 230);
}
}
function initLiveChat(config) {
showPersistentPopup();
iframeInit();
var bodyDom = document.body;
if (config.parentClass) {
bodyDom = document.querySelector("." + config.parentClass);
}
if (!bodyDom.style.position) {
bodyDom.style.position = "relative";
}
var entryBtn = document.createElement("div");
entryBtn.className = "live-chat-entry close";
btnInitStyle();
btnCloseStyle();
bodyDom.appendChild(entryBtn);
entryBtn.onclick = function () {
// ======= الجمعة/خارج الدوام: امنع فتح الشات واعرض الرسالة =======
if (!isWithinWorkingHoursRiyadh()) {
chatIsOpen = false;
hidePopup();
showPersistentPopup();
const wrapper = document.getElementById("liveChatWrapper");
if (wrapper) {
wrapper.classList.remove("open");
wrapper.style.display = "none";
}
this.classList.remove("open");
this.classList.add("close");
btnCloseStyle();
return;
}
// ===============================================================
hidePopup();
var liveChatIframe = document.getElementById("liveChatIframe");
if (this.classList.contains("close")) {
this.classList.remove("close");
this.classList.add("open");
btnOpenStyle();
chatIsOpen = true;
if (liveChatIframe) {
iframeOpenStyle(liveChatIframe);
} else {
iframeInit();
iframeOpenStyle();
}
} else {
this.classList.remove("open");
this.classList.add("close");
btnCloseStyle();
chatIsOpen = false;
if (liveChatIframe) {
iframeCloseStyle(liveChatIframe);
}
}
};
entryBtn.addEventListener("mouseover", () => { entryBtn.style.backgroundColor = "#4299FC"; });
entryBtn.addEventListener("mouseout", () => { entryBtn.style.backgroundColor = "#3F8EF0"; });
function btnInitStyle() {
entryBtn.style.position = "fixed";
entryBtn.style.bottom = typeof config.btnBottom === "number" ? config.btnBottom + "px" : config.btnBottom;
entryBtn.style.right = typeof config.btnRight === "number" ? config.btnRight + "px" : config.btnRight;
entryBtn.style.zIndex = "9999";
entryBtn.style.top = typeof config.btnTop === "number" && config.btnTop >= 0 ? config.btnTop + "px" : config.btnTop;
entryBtn.style.left = typeof config.btnLeft === "number" && config.btnLeft >= 0 ? config.btnLeft + "px" : config.btnLeft;
entryBtn.style.width = config.btnSize >= 0 ? config.btnSize + "px" : "50px";
entryBtn.style.height = config.btnSize >= 0 ? config.btnSize + "px" : "50px";
entryBtn.style.borderRadius = config.btnSize >= 0 ? config.btnSize / 2 + "px" : "25px";
entryBtn.style.backgroundColor = "#3F8EF0";
entryBtn.style.padding = "12px";
entryBtn.style.cursor = "pointer";
entryBtn.style.userSelect = "none";
entryBtn.style.boxSizing = "border-box";
entryBtn.style.zIndex = 100000;
entryBtn.innerHTML = openSvg + closeSvg;
}
function btnCloseStyle() {
entryBtn.querySelectorAll("svg")[0].style.display = "block";
entryBtn.querySelectorAll("svg")[1].style.display = "none";
}
function btnOpenStyle() {
entryBtn.querySelectorAll("svg")[0].style.display = "none";
entryBtn.querySelectorAll("svg")[1].style.display = "block";
}
function iframeInit() {
const isMobile = window.innerWidth <= 768;
const iframeWrapper = document.createElement("div");
iframeWrapper.id = "liveChatWrapper";
iframeWrapper.style.position = "fixed";
iframeWrapper.style.zIndex = 99998;
if (isMobile) {
iframeWrapper.style.top = "0";
iframeWrapper.style.left = "0";
iframeWrapper.style.width = "100vw";
iframeWrapper.style.height = window.innerHeight + "px";
iframeWrapper.style.borderRadius = "12px";
iframeWrapper.style.backgroundColor = "#fff";
} else {
iframeWrapper.style.bottom = "20px";
iframeWrapper.style.right = "20px";
iframeWrapper.style.width = config.liveChatWidth + "px";
iframeWrapper.style.height = config.liveChatHeight + "px";
iframeWrapper.style.borderRadius = "12px";
iframeWrapper.style.backgroundColor = "#F5F7FA";
iframeWrapper.style.boxShadow = "0 2px 16px 0 #00000029";
}
iframeWrapper.style.border = "none";
iframeWrapper.style.overflow = "hidden";
const iframeBox = document.createElement("iframe");
iframeBox.id = "liveChatIframe";
iframeBox.src = config.liveChatUrl;
iframeBox.style.width = "100%";
iframeBox.style.height = "100%";
iframeBox.style.border = "none";
iframeBox.allow = "camera; microphone; autoplay; speaker; speaker-selection";
iframeBox.sandbox = "allow-same-origin allow-scripts allow-forms allow-popups allow-downloads";
iframeWrapper.appendChild(iframeBox);
document.body.appendChild(iframeWrapper);
iframeWrapper.style.display = "none";
}
function iframeOpenStyle() {
const wrapper = document.getElementById("liveChatWrapper");
if (wrapper) {
wrapper.style.display = "block";
setTimeout(() => { wrapper.classList.add("open"); }, 10);
const isMobile = window.innerWidth <= 768;
if (isMobile) {
document.body.style.overflow = "hidden";
document.addEventListener("touchmove", preventScroll, { passive: false });
}
}
}
function iframeCloseStyle() {
schedulePopup();
const wrapper = document.getElementById("liveChatWrapper");
if (wrapper) {
wrapper.classList.remove("open");
setTimeout(() => { wrapper.style.display = "none"; }, 300);
}
document.body.style.overflow = "";
document.removeEventListener("touchmove", preventScroll);
}
}
// تحديث النص كل دقيقة بدون إعادة تحميل (لو البوب اب ظاهر)
setInterval(() => {
if (popupVisible && !chatIsOpen) updatePopupMessage();
}, 60000);
});