!function(window){ var targetWindow = (window.inDapIF) ? window.parent : window; function buildPlaceHolder() { var placeHolder = document.createElement("div"); if(window.inDapIF) appendToBody(placeHolder); else insertBeforeScriptTag(placeHolder); return placeHolder; } function appendToBody(placeHolder) { document.getElementsByTagName("body")[0].appendChild(placeHolder); } function insertBeforeScriptTag(placeHolder) { var script = document.getElementById("biowebben"); if(script == null) return; var scriptParent = script.parentNode; scriptParent.insertBefore(placeHolder, script); } function buildIframe() { var newIframe = document.createElement("iframe"); newIframe.setAttribute("data-src","http://biowebb-data.s3.amazonaws.com/pages/12/city/56/date/today/index.html"); newIframe.setAttribute("frameborder","0"); newIframe.setAttribute("scrolling","no"); newIframe.setAttribute("width", "980"); newIframe.setAttribute("height", "1000"); placeHolder.appendChild(newIframe); return newIframe; } function getParentIframe() { var iframes = targetWindow.document.getElementsByTagName("iframe"); for (var i=0, length = iframes.length; i < length; ++i) { var frame = iframes[i]; if (frame.contentWindow == window) { return frame; } } } function insertImpressionLink() { var image = new Image(); image.setAttribute("width", 1); image.setAttribute("height", 1); image.setAttribute("alt", ""); image.setAttribute("src", "//de17a.com/a/57409.counter?tags=3376.1x1,3357.262x75,3932.122x146,3330.122x146,4087.122x146,3737.122x146,4089.262x344,4099.262x344,3734.262x344,3868.262x344"); placeHolder.appendChild(image); } function addEventListener(evt, fn){ targetWindow.addEventListener ? targetWindow.addEventListener(evt, fn, false) : (targetWindow.attachEvent) ? targetWindow.attachEvent('on' + evt, fn) : targetWindow['on' + evt] = fn; }; function loadIframe (el) { var dataSrc = el.getAttribute("data-src"); if(dataSrc != el.src) el.src = dataSrc; } function isElementInViewport(el, offsetTop) { offsetTop = parseInt(offsetTop,10)||0; var rect = el.getBoundingClientRect(); return (rect.top >= 0 && rect.left >= 0 && rect.top+offsetTop <= (targetWindow.innerHeight || targetWindow.document.documentElement.clientHeight)) } var placeHolder = buildPlaceHolder(); insertImpressionLink(); iframe = buildIframe(); targetIframe = (window.inDapIF) ? getParentIframe() : iframe; var offsetTop = "-300px"; var processScroll = function(){ if (isElementInViewport(targetIframe, offsetTop)) { loadIframe(iframe); } }; processScroll(); addEventListener('scroll',processScroll); }(this);