var scriptCounter = (scriptCounter || 0); (function() { var contentContainer = null; var src = null; contentContainer = document.createElement('iframe'); var url = "https://services.gastronovi.com/restaurants/5722/channels/16219/windowWidth/862/windowHeight/650?embed=1&companyRoute=1"; contentContainer.id = "gastronaviChannel16219"; contentContainer.src = url; contentContainer.width = "862"; contentContainer.height = "650"; contentContainer.setAttribute("style", "max-width: 100%; display: block;"); contentContainer.frameBorder = "0"; var scripts = document.getElementsByTagName('script'); for(var i=0; i < scripts.length; i++){ if(scripts[i].src && scripts[i].src.indexOf('/restaurants/5722/scripts/channel?item=16219&width=862&height=650') != -1){ src = scripts[i]; break; } } var wrapper = document.createElement('div'); wrapper.setAttribute("style", "position: relative; width: 862; margin:auto;"); wrapper.style.width = "862px"; var loadingOverlay = document.createElement('div'); loadingOverlay.setAttribute("style", "z-index: 99; position: absolute; left: 0; top: 0; right: 0; bottom: 0;"); var innerHtml = ''; innerHtml += ''; innerHtml += ''; loadingOverlay.innerHTML = innerHtml; contentContainer.style.visibility = "hidden"; wrapper.appendChild(loadingOverlay); wrapper.appendChild(contentContainer); var showContentContainerHandler = function() { if (wrapper.contains(loadingOverlay)) { wrapper.removeChild(loadingOverlay); } contentContainer.style.visibility = "visible"; }; contentContainer.addEventListener('load', function(e) { window.setTimeout(function() { if (wrapper.contains(loadingOverlay)) { console.warn("loadingOverlay timed out, hide overlay before getting initialized from iframe"); showContentContainerHandler(); } }, 5000); // fallback ... always remove overlay after load + 5sec }); window.addEventListener('message', function(e) { var contentContainer = document.getElementById("gastronaviChannel16219"); var eventName = e.data[0]; var data = e.data[1]; switch(eventName) { case 'setHeight': contentContainer.height = data; contentContainer.style.height = data + (data.toString().match(/(%|px)/) ? "" : "px"); break; case 'initialized': showContentContainerHandler(); break; } }, false); if(src) src.parentNode.insertBefore(wrapper, src); })();