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"; } } })(); });