const widgetInitUrl = localStorage.getItem('widgetInitUrl') || 'https://prod-messenger.mozeo.com/'; // const widgetInitUrl = localStorage.getItem('widgetInitUrl') || 'https://abc-messenger.mozeo.com/'; const kmDivWidget2Id = localStorage.getItem('kmDivWidget2Id') || 'km-widget-mOrxD'; const kmDivWidget2Classname = localStorage.getItem('kmDivWidget2Classname') || 'km-widget-sUZuG'; const kmDivWidgetId = localStorage.getItem('kmDivWidgetId') || 'km-widget-asuDL'; let cardConf; //dynamic messenger height window.parent.onresize = () => sendPostMessage(); /* MOZEO MESSENGER VERSION = 1.1.1 */ function openMozWidget(cardName = null) { const cardNames = [ 'chat', 'text', 'email', 'appt' ]; let heightParam = 0; if (!cardName || cardNames.indexOf(cardName) === -1) { cardName = ''; } if (!cardConf.showChat && cardName === 'chat') { cardName = null; } if (!cardConf.showTextMessages && cardName === 'text') { cardName = null; } if (!cardConf.showEmail && cardName === 'email') { cardName = null; } if (!cardConf.showScheduler && cardName === 'appt') { cardName = null; } const iframe = $('#moz-frame'); const url = new URL(iframe.attr('src')); url.searchParams.set('oc', cardName); let ifr = document.getElementById('moz-frame'); iframe.attr('src', url.href); MozeoMessenger('toggle'); ifr.onload = function() { setTimeout(() => { sendPostMessage(heightParam); }, 100); }; } function MozeoMessenger() { $("#mozmess-Popup").toggle(); $("#mozmess-Popup").toggleClass("mozmess-fullscreen"); $("#moz-launcheropen").toggle(); $("#moz-launcherclose").toggle(); } function sendPostMessage () { window.postMessage({ mozFrameHeight: 450 }, '*'); } function sendMozeoMessengerVars() { if (window.mozeoSettings.mozeomessengerVarsAutoPushInterval && window.mozeoSettings.mozeomessengerVarsAutoPushInterval > 0) { let frame = document.getElementById('moz-frame'); setInterval(() => { frame.contentWindow.postMessage({ mozeomessengerVars: JSON.stringify(window.mozeoSettings.mozeomessengerVars), }, '*'); }, window.mozeoSettings.mozeomessengerVarsAutoPushInterval * 1000); } } window.onmessage = function(e) { //uncomment this strings to enable dynamic messenger height var h = window.innerHeight; if (e.data.hasOwnProperty("mozFrameHeight")) { if(100 < e.data.mozFrameHeight && e.data.mozFrameHeight <= h - 200) { document.getElementById("moz-frame").style.height = `${e.data.mozFrameHeight + 30}px`; } else { document.getElementById("moz-frame").style.height = `${h - 200}px`; } } if (e.data.hasOwnProperty('cardConf')) { cardConf = e.data.cardConf; } if (e.data.hasOwnProperty('contentLoaded')) { //show launcher only after styles are loaded setTimeout(() => { let frame = document.getElementById('moz-frame'); frame.contentWindow.postMessage({ mozeomessengerVars: JSON.stringify(window.mozeoSettings.mozeomessengerVars), mozeomessengerVarsExample: JSON.stringify(window.mozeoSettings.mozeomessengerVarsExample), }, '*'); if (typeof cardConf !== 'undefined' && (cardConf.showChat || cardConf.showEmail || cardConf.showScheduler || cardConf.showTextMessages)) { document.getElementById('mozmess-launcher').removeAttribute('hidden'); if (mozeoSettings.attentionGrabber.active === 'Yes') { $('#at-grab-head').text(mozeoSettings.attentionGrabber.title); $('#at-grab-mess').text(mozeoSettings.attentionGrabber.message); setTimeout(() => { if(window.showAttentionGrabber && localStorage.getItem('showAttentionGrabber') === 'true') { $('#at-grab').show(); } }, mozeoSettings.attentionGrabber.delay * 1000) } } sendMozeoMessengerVars(); }, 1500) } if (e.data.hasOwnProperty('messengerConf')) { // window.mozeoSettings = e.data.messengerConf; Object.keys(e.data.messengerConf).forEach(key => { if (typeof window.mozeoSettings[key] === 'undefined') { window.mozeoSettings[key] = e.data.messengerConf[key]; } }); // localStorage.setItem('mozeoSettings', JSON.stringify(window.mozeoSettings)); if (window.mozeoSettings.footerlink && window.mozeoSettings.footerlink !== 'yes') { document.getElementById('moz-footer').hidden = true; } if (window.mozeoSettings.headertitle && window.mozeoSettings.headertitle !== '') { document.getElementById('headertitle').innerText = window.mozeoSettings.headertitle; } if (window.mozeoSettings.headersubtitle && window.mozeoSettings.headersubtitle !== '') { document.getElementById('headersubtitle').innerText = window.mozeoSettings.headersubtitle; } if (window.mozeoSettings.embed !== 'yes') { configureLayout(); } } }; init(); function init() { // localStorage.setItem('mozeoSettings', window.mozeoSettings); const kmDivWidget = document.createElement('div'); const kmDivWidget2 = document.createElement('div'); kmDivWidget2.id = kmDivWidget2Id; kmDivWidget2.className = kmDivWidget2Classname; kmDivWidget.id = kmDivWidgetId; kmDivWidget.appendChild(kmDivWidget2); document.body.appendChild(kmDivWidget); widgetProcess(); } function widgetProcess() { let jQuery; // Localize jQuery variable /******** Load jQuery if not present *********/ if (window.jQuery === undefined || window.jQuery.fn.jquery !== '3.3.1') { let scriptTag = document.createElement('script'); scriptTag.setAttribute("type","text/javascript"); scriptTag.setAttribute("src", "https://code.jquery.com/jquery-3.3.1.min.js"); if (scriptTag.readyState) { scriptTag.onreadystatechange = function () { // For old versions of IE if (this.readyState == 'complete' || this.readyState == 'loaded') { scriptLoadHandler(); } }; } else { scriptTag.onload = scriptLoadHandler; } // Try to find the head, otherwise default to the documentElement (document.getElementsByTagName("head")[0] || document.documentElement).appendChild(scriptTag); } else { // The jQuery version on the window is the one we want to use jQuery = window.jQuery; main(); } /******** Called once jQuery has loaded ******/ function scriptLoadHandler() { // Restore $ and window.jQuery to their previous values and store the // new jQuery in our local jQuery variable jQuery = window.jQuery.noConflict(true); // Call our main function main(); } /******** Our main function ********/ function main() { jQuery(document).ready(($) => { // console.log(widgetInitUrl + window.mozeoSettings.messengerid); $.get( widgetInitUrl + window.mozeoSettings.messengerid, (data) => { $('#' + kmDivWidget2Id).html(data); }); }); } }