(function () { const style = "styles.css"; const runtime_script = "runtime.js"; const polyfills_script = "polyfills.js"; const main_script = "main.js"; const commsl_script = "commslchat.js"; const skill_id_key = "skill-id"; const campaign_id_key = "campaign-id"; const domain_key = "domain"; const path = "https://storagecommslbr.blob.core.windows.net/chatscript/dist/"; //const path = "https://storagecommslbr.blob.core.windows.net/chatscript/stage/dist/"; //const path = "https://storagecommslbr.blob.core.windows.net/chatscript/prod/dist/"; //const path = "https://siscrm.blob.core.windows.net/chatscript/dist/"; document.addEventListener("DOMContentLoaded", function (event) { var scriptParams = getParams(commsl_script); let campaignId = scriptParams["campaign"]; let skillId = scriptParams["skill"]; sessionStorage.setItem(domain_key, scriptParams["domain"]); if (campaignId) sessionStorage.setItem(campaign_id_key, campaignId); if (skillId) sessionStorage.setItem(skill_id_key, skillId); let loadCom = scriptParams["loadCom"]; if (!loadCom) { addFrame(skillId || campaignId); } else { addStyle(style, path); addApp(skillId || campaignId); addScript(runtime_script, path); addScript(polyfills_script, path); addScript(main_script, path); } }); function addFrame(id) { var scriptParams = getParams(commsl_script); let campaignId = scriptParams["campaign"]; let skillId = scriptParams["skill"]; let domain = scriptParams["domain"]; var path = getOriginalPath(commsl_script); var doc = document.implementation.createDocument('http://www.w3.org/1999/xhtml', 'html', null); var head = document.createElement('head'); doc.documentElement.appendChild(head); var body = document.createElementNS('http://www.w3.org/1999/xhtml', 'body'); doc.documentElement.appendChild(body); //CREATE IFRAME var localFile = path + commsl_script; var source = '' var iframe = document.createElement('iframe'); iframe.setAttribute('id', 'chat-frame'); document.body.appendChild(iframe); var html = doc.body.innerHTML; iframe.srcdoc = source iframe.src = 'data:text/html;charset=utf-8,' + encodeURI(html);; iframe.setAttribute('allowtransparency', 'true'); iframe.setAttribute('allow', 'autoplay'); iframe.setAttribute('scrolling', 'no'); iframe.setAttribute('marginwidth', '50'); iframe.setAttribute('marginwidth', '50'); iframe.style = "z-index: 999; width: auto; height: auto; padding: 0px; background-image: none; background-position: 0% 0%; background-size: initial; background-attachment: scroll; background-origin: initial; background-clip: initial; background-color: rgba(0, 0, 0, 0); border-width: 0px; float: none; position: absolute; bottom: 0px; right: 0px; transition: none 0s ease 0s !important;"; //div.style = "border: 0; height: 100%; left: 0; position: absolute; top: 0; width: 100%;"; //position: absolute; bottom: 0px; right: 0px; } function getParams(script_name) { // Find all script tags var scripts = document.getElementsByTagName("script"); // Look through them trying to find ourselves for (var i = 0; i < scripts.length; i++) { if (scripts[i].src.indexOf("/" + script_name) > -1) { // Get an array of key=value strings of params var pa = scripts[i].src.split("?").pop().split("&"); // Split each key=value into array, the construct js object var p = {}; for (var j = 0; j < pa.length; j++) { var kv = pa[j].split("="); p[kv[0]] = kv[1]; } return p; } } // No scripts match return {}; } function getPath(script_name) { var path = ""; var scripts = document.getElementsByTagName("script"); for (var i = 0; i < scripts.length; i++) { if (scripts[i].src.indexOf("/" + script_name) > -1) { var values = scripts[i].src.split(script_name); path = values[0] + "dist/"; break; } } return path; } function getOriginalPath(script_name) { var path = ""; var scripts = document.getElementsByTagName("script"); for (var i = 0; i < scripts.length; i++) { if (scripts[i].src.indexOf("/" + script_name) > -1) { var values = scripts[i].src.split(script_name); path = values[0]; break; } } return path; } function addStyle(script_name, path) { if (document.getElementById(script_name)) return; var element = document.createElement('link'); element.id = script_name element.rel = "stylesheet"; element.charset = "UTF-8"; element.href = path + script_name document.head.appendChild(element); } function addScript(script_name, path) { if (document.getElementById(script_name)) return; var element = document.createElement('script'); element.id = script_name element.type = "text/javascript"; element.charset = "UTF-8"; element.src = path + script_name document.body.appendChild(element); } function addApp(id) { var id = `chat-${id}`; if (document.getElementById(id)) return; var element = document.createElement('chat-app'); element.id = id document.body.appendChild(element); } })();