var narratorr_key = "qxGVOuAI"; var narratorr_path = "https://app.bringto.life"; var embedded = 0==1; var iframe; var iframecaptions; var initialized = false; setTimeout(function(){ console.log("init"); if (!initialized) init(); },500); window.onload = function() { if (!initialized) init(); } function init() { initialized =true; iframe = document.createElement("iframe"); iframe.src = narratorr_path + "/index.php?key=" + narratorr_key + "&embedded=1"; iframe.id = "btfmainFrame"; iframe.frameBorder = 0; iframe.allowTransparency="true"; iframe.style["z-index"] = 2001; //iframe.style["background-color"] = "#ff0000"; iframecaptions = document.createElement("iframe"); iframecaptions.id ="btfcaptionsFrame"; iframecaptions.src = narratorr_path + "/embediframe_captions.html"; iframecaptions.frameBorder = 0; iframecaptions.allowTransparency = "true"; iframecaptions.style["z-index"] = 2002; //iframecaptions.style.display = "none"; //iframecaptions.style["background-color"] = "#ff0000"; document.getElementsByTagName("body")[0].appendChild(iframe); document.getElementsByTagName("body")[0].appendChild(iframecaptions); window.addEventListener('resize', ResizeChildren, false); window.addEventListener('scroll', ResizeChildren); //setTimeout(function(){ResizeChildren();},3000); } window.addEventListener("message", receiveMessage, false); function receiveMessage(event) { switch (event.data.substring(0,3)) { case "OWR": ResizeChildren(); break; case "WRR": var str = event.data.substring(3); var response = JSON.parse(str); ResizeChildren_Response(response); break; case "OPP": var str = event.data.substring(3); //var data = JSON.parse(str); window.document.getElementById("btfcaptionsFrame").contentWindow.postMessage("OPP" + str,"*"); break; case "CPP": window.document.getElementById("btfcaptionsFrame").contentWindow.postMessage("CPP" ,"*"); break; case "3PQ": //Get text - third party query var str = event.data.substring(3); var response = eval(str + "();"); window.document.getElementById("btfmainFrame").contentWindow.postMessage("3PR" + response,"*"); break; default: console.log("Message: " + event.data); break; } } function ResizeChildren() { var doc = window.document.documentElement; var parentData = { innerWidth: doc.clientWidth, innerHeight: doc.clientHeight, left: (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0), top: (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0), }; window.document.getElementById("btfmainFrame").contentWindow.postMessage("OWR" + JSON.stringify(parentData),"*"); //if (avatarDiv!=undefined) { // var response = avatarDiv.onWindowResize(parentData); } function ResizeChildren_Response(response) { iframe.style.position = "fixed"; iframe.style.border = "none"; iframe.style.width = response.avatarFrame["width"]; iframe.style.height = response.avatarFrame["height"]; iframe.style.left = response.avatarFrame["left"]; iframe.style.top = response.avatarFrame["top"]; iframecaptions.style.position = "fixed"; iframecaptions.style.border = "none"; iframecaptions.style.width = response.captionsFrame["width"]; iframecaptions.style.height = response.captionsFrame["height"]; iframecaptions.style.left = response.captionsFrame["left"]; iframecaptions.style.top = response.captionsFrame["top"]; iframecaptions.style["pointer-events"] = "none"; //} } //THIRD PARTY TOOLS UTILITIES function narratorrPlay() { window.document.getElementById("btfmainFrame").contentWindow.postMessage("3PP","*"); } function narratorrSpeak(text) { window.document.getElementById("btfmainFrame").contentWindow.postMessage("3PR" + text,"*"); } //THIRD PARTY TOOLS TEXT GETTERS function test() { return "This is a third party tool test. This test is coded in embediframe javascript"; } function articulate_storyline() { return ($('.transcript_content').filter(function() {return $(this).css('display') === 'block'}).text()); } function getSorted(selector, attrName) { return $(selector.toArray().sort( function(a, b){ var aVal = parseInt(a.getAttribute(attrName)),bVal = parseInt(b.getAttribute(attrName)); return aVal - bVal; }) ); } function adobe_captivate() { return getSorted(window.parent.$('.cp-accessibility:not(#accStr)').filter(':not(#playbarSliderThumbaccStr)'),'offsetTop').text(); }