document.addEventListener("DOMContentLoaded", function () {
(function () {
function getScriptOrigin() {
var scripts = document.getElementsByTagName("script");
for (var i = 0; i < scripts.length; i++) {
if (scripts[i].src && scripts[i].src.indexOf("chat-widget.js") !== -1) {
return new URL(scripts[i].src).origin;
}
if (scripts[i].src && scripts[i].src.indexOf("chat-resizable-widget.js") !== -1) {
return new URL(scripts[i].src).origin;
}
}
return null;
}
var origin = getScriptOrigin();
if (!origin) return;
fetch(origin + "/chat-embed/config")
.then(function (r) { return r.json(); })
.then(function (config) {
if (!config.is_active) return;
buildWidget(origin, config);
})
.catch(function (err) {
console.error("Chat widget config error:", err);
});
function buildWidget(domain, config) {
var isLeft = config.widget_position === "bottom-left";
var primaryColor = config.primary_color || "#667eea";
var width = config.widget_width || "350px";
var height = config.widget_height || "500px";
var buttonText = config.button_text || "Ask us!";
var autoOpen = config.auto_open || false;
var posH = isLeft ? "left:20px!important;" : "right:20px!important;";
var chatIcon = '';
var closeIcon = '';
var style = document.createElement("style");
style.textContent =
".tealsi-ai-widget-btn{" +
"position:fixed!important;bottom:20px!important;" + posH +
"background:" + primaryColor + "!important;" +
"color:#fff!important;border:none!important;" +
"width:56px!important;height:56px!important;" +
"border-radius:50%!important;" +
"cursor:pointer!important;z-index:10001!important;" +
"font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif!important;" +
"font-size:14px!important;font-weight:600!important;" +
"box-shadow:0 4px 16px rgba(0,0,0,0.2)!important;" +
"transition:all 0.25s ease!important;" +
"margin:0!important;padding:0!important;" +
"display:flex!important;align-items:center!important;justify-content:center!important;" +
"line-height:1!important;letter-spacing:normal!important;" +
"text-transform:none!important;text-decoration:none!important;" +
"min-width:auto!important;max-width:none!important;" +
"min-height:auto!important;max-height:none!important;" +
"float:none!important;opacity:1!important;visibility:visible!important;" +
"overflow:hidden!important;" +
"}" +
".tealsi-ai-widget-btn:hover{" +
"transform:scale(1.08)!important;" +
"box-shadow:0 6px 24px rgba(0,0,0,0.25)!important;" +
"}" +
".tealsi-ai-widget-btn svg{" +
"transition:transform 0.25s ease!important;" +
"}" +
".tealsi-ai-widget-btn-label{" +
"position:fixed!important;bottom:82px!important;" + posH +
"background:#1f2937!important;color:#fff!important;" +
"padding:6px 12px!important;border-radius:8px!important;" +
"font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif!important;" +
"font-size:13px!important;font-weight:500!important;" +
"white-space:nowrap!important;z-index:10001!important;" +
"box-shadow:0 2px 8px rgba(0,0,0,0.15)!important;" +
"pointer-events:none!important;opacity:0!important;" +
"transition:opacity 0.2s ease!important;" +
"margin:0!important;line-height:normal!important;" +
"}" +
".tealsi-ai-widget-btn:hover+.tealsi-ai-widget-btn-label{" +
"opacity:1!important;" +
"}" +
".tealsi-ai-widget-container{" +
"position:fixed!important;bottom:88px!important;" + posH +
"width:" + width + "!important;" +
"height:" + height + "!important;" +
"border-radius:12px!important;overflow:hidden!important;" +
"box-shadow:0 8px 32px rgba(0,0,0,0.18)!important;" +
"z-index:10000!important;" +
"display:" + (autoOpen ? "block" : "none") + ";" +
"margin:0!important;padding:0!important;" +
"border:1px solid rgba(0,0,0,0.08)!important;" +
"background:#fff!important;" +
"float:none!important;opacity:1!important;visibility:visible!important;" +
"}" +
".tealsi-ai-widget-container iframe{" +
"width:100%!important;height:100%!important;border:none!important;" +
"margin:0!important;padding:0!important;" +
"}";
document.head.appendChild(style);
// Container + iframe
var container = document.createElement("div");
container.className = "tealsi-ai-widget-container";
var iframe = document.createElement("iframe");
iframe.src = domain + "/chat-embed";
container.appendChild(iframe);
document.body.appendChild(container);
// Toggle button (circular with icon)
var btn = document.createElement("button");
btn.className = "tealsi-ai-widget-btn";
btn.innerHTML = chatIcon;
document.body.appendChild(btn);
// Tooltip label
var label = document.createElement("div");
label.className = "tealsi-ai-widget-btn-label";
label.textContent = buttonText;
document.body.appendChild(label);
var isOpen = autoOpen;
btn.addEventListener("click", function () {
isOpen = !isOpen;
container.style.display = isOpen ? "block" : "none";
btn.innerHTML = isOpen ? closeIcon : chatIcon;
label.style.display = isOpen ? "none" : "";
});
if (autoOpen) {
btn.innerHTML = closeIcon;
label.style.display = "none";
}
}
})();
});