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