if (typeof console === "undefined" || typeof console.log === "undefined") {
	console = {
		log: function () {
		}
	};
}

if (typeof __advisorMessageListener !== "function") {
	window.__advisorMessageListener = function (event) {
		if (event.data && event.data.type && event.data.cid) {
			var __advisorIframe = document.getElementById(event.data.cid);
			if (__advisorIframe) {
				switch (event.data.type) {
					case "size":
						__advisorIframe.style.overflow = "hidden";
						__advisorIframe.style.height = event.data.value + "px";
						break;
					case "geturl":
						if(__advisorIframe.contentWindow) {
							__advisorIframe.contentWindow.postMessage({
								"type": "seturl",
								"value": window.location.href
							}, "*");
						}
						break;
					case "scrollToTop":
						if (typeof __advisorIframe.scrollIntoView !== "undefined") {
							__advisorIframe.scrollIntoView(true);
							if (window.scrollTo) {
								var offset = event.data.value ? event.data.value : 0;
								offset -= 80;
								window.scrollTo({
									top: window.scrollY + offset,
									behavior: "smooth"
								});
							}
						}
						break;
				}
			}
		}
	}
}


(function () {
	// attach the listener
	if (window.addEventListener){
		window.addEventListener("message", __advisorMessageListener, false)
	} else {
		window.attachEvent("onmessage", __advisorMessageListener)
	}

	var __advisorFrames = document.querySelectorAll('iframe[id^="advisorframe"]');
	if(__advisorFrames.length > 0) {
		window.onscroll = function() {
			for(var i=0; i<__advisorFrames.length; i++) {
				__advisorFrames[i].contentWindow.postMessage({
					"type": "scroll",
					"value": window.scrollY,
					"height": window.innerHeight,
					"offset": __advisorFrames[i].getBoundingClientRect().y
				}, "*");
			}
		};

		// mouseout event for exit intend
		document.addEventListener('mouseout', e => {
			if (!e.toElement && !e.relatedTarget) {
				for(var i=0; i<__advisorFrames.length; i++) {
					__advisorFrames[i].contentWindow.postMessage({
						"type": "exit"
					}, "*");
				}
			}
		});
	}
}());
