// var debug = false; var murl = ""; var domain = "https://secure.drmicozzi.com/"; var pub = "OWCC37SN56UPLZXSCDF"; var buttonPromocode = "LINCPA05"; var buttonUrl = "https://secure.drmicozzi.com/OWCC37SN56UPLZXSCDF/LINCPA05/index.htm"; var videoFile = "https://s3.amazonaws.com/INCS/ColonCrisis/OneWord_ColonCrisis_29.flv"; var videoPlayer = "/videopromos/videolib/mplayer46.swf"; var lastSlide = "https://s3.amazonaws.com/INCS/Horizon/order_slide.gif"; var lastSlideHtml = ""; var videoWidth = 480; var videoHeight = 360; var videoVolume = 80; var useCompleteEvent = true; var endVideoAfter = 0; var autostartEnabled = true; var enableHtml5 = true; var hideOnReturn = false; var elementVisible = new Array(); // var elementVisibleAfter = {Array}; // var hideElementAfter = {0}; // var elementFadeIn = {0}; // var elementFadeOut = {0}; var plugVisibility = ([{"id":"theButton","time":[586,0,0,0]},{"id":"disclaimer","time":[586,0,0,0]}]); var done = false; var preventExitSplash = false; var defaultExitMessage = 'Wait. Read all the details, without having to watch the video presentation. Just click on STAY ON PAGE below, to read at your leisure.'; var ie9ExitMessage = ''; var iframeUrl = ""; function onFocusEmail(item) { if (item.value=="email address") { item.value = ""; item.style.color = "black"; } return true; } function onBlurEmail(item) { if (item.value=="") { item.value = "email address"; item.style.color = "#999"; } return true; } function displayExitSplash() { if (preventExitSplash == false) { oExitSignup = document.getElementById("exitSignup"); if (oExitSignup) { preventExitSplash = true; exitSignupHtml = oExitSignup.innerHTML; divtag = document.createElement("div"); divtag.setAttribute("id", "exitSignup"); divtag.style.display = "block"; divtag.style.position = "absolute"; divtag.style.width = "100%"; divtag.style.height = "100%"; divtag.style.zIndex = "99"; divtag.style.left = "0px"; divtag.style.top = "0px"; divtag.innerHTML = exitSignupHtml; theBody = getBody(); theBody.innerHTML = ""; theBody.topMargin = "0px"; theBody.rightMargin = "0px"; theBody.bottomMargin = "0px"; theBody.leftMargin = "0px"; theBody.style.overflow = "auto"; theBody.appendChild(divtag); window.scrollTo(0,0); if ((getInternetExplorerVersion() >= 9.0) || isChrome()) { return ie9ExitMessage; } else { return defaultExitMessage; } } } } if (typeof onFocusEmail != "function") { function onFocusEmail(item) { if (item.value=="email address") { item.value = ""; item.style.color = "black"; } return true; } function onBlurEmail(item) { if (item.value=="") { item.value = "email address"; item.style.color = "#999"; } return true; } } if (typeof onFocusEmail != "function") { function onFocusEmail(item) { if (item.value=="email address") { item.value = ""; item.style.color = "black"; } return true; } function onBlurEmail(item) { if (item.value=="") { item.value = "email address"; item.style.color = "#999"; } return true; } } var hideOnReturn_v2 = false; var elementVisible_v2 = new Array(); var elementVisibleAfter_v2 = {theButton: 586, disclaimer: 586}; var elementReplaced_v2 = replaceElementAfter_v2 = false; var iframeUrl_v2 = "https://secure.drmicozzi.com/OWCC37SN56UPLZXSCDF/LINCPA05/index.htm?pageNumber=1"; var buttonUrl_v2 = "https://secure.drmicozzi.com/OWCC37SN56UPLZXSCDF/LINCPA05/index.htm"; var cookieName = "vidOWCC37SN56UPLZXSCDF"; var cookieExpiry = 365; var cookieDomain = ""; var lastPosition = 0; var urlReferrer = ""; function track() { return false; var xhr; var ret; if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari xhr = new XMLHttpRequest(); } else { try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { xhr = false; } } } xhr.onreadystatechange = function() { if(xhr.readyState == 4) { if(xhr.status == 200) { // ok if (xhr.responseText != "") { //var ret = eval("(" + xhr.responseText + ")"); //alert(ret.msg); //alert(xhr.responseText); } } else { //alert("Error code " + xhr.status); } } }; // // get-method // var url = "/videopromos/OneWord/LINCPA05_CDF_OW_ColonCrisis_29.php?action=track&p="+buttonPromocode+"&t="+Math.round(currentPosition)+"&ref="+encodeURIComponent(urlReferrer); // xhr.open("GET", url, true); // xhr.send(null); // post-method var url = "/videopromos/OneWord/LINCPA05_CDF_OW_ColonCrisis_29.php"; var params = "action=track&p="+buttonPromocode+"&t="+Math.round(currentPosition)+"&ref="+encodeURIComponent(urlReferrer); xhr.open("POST", url, true); xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhr.setRequestHeader("Content-length", params.length); xhr.setRequestHeader("Connection", "close"); xhr.send(params); } function initPlugins() { for (var i in plugVisibility) elementVisible[plugVisibility[i].id] = false; var a = document.getElementsByTagName("A"); for (var i = 0; i < a.length; i++) { if (a[i].target !== "_blank") { addClickEvent(a,i, function(){ preventExitSplash = true; }); } else { addClickEvent(a,i, function() { preventExitSplash = false; }); } } window.onbeforeunload = displayExitSplash; if (!flashAvailable && !html5Available) { oExitSignup = document.getElementById("exitSignup"); if (oExitSignup) { preventExitSplash = true; exitSignupHtml = oExitSignup.innerHTML; divtag = document.createElement("div"); divtag.setAttribute("id", "exitSignup"); divtag.style.display = "block"; divtag.style.position = "absolute"; divtag.style.width = "100%"; divtag.style.height = "100%"; divtag.style.zIndex = "99"; divtag.style.left = "0px"; divtag.style.top = "0px"; divtag.innerHTML = exitSignupHtml; theBody = getBody(); theBody.innerHTML = ""; theBody.topMargin = "0px"; theBody.rightMargin = "0px"; theBody.bottomMargin = "0px"; theBody.leftMargin = "0px"; theBody.style.overflow = "auto"; theBody.appendChild(divtag); window.scrollTo(0,0); } } if (!flashAvailable && !html5Available) { oExitSignup = document.getElementById("exitSignup"); if (oExitSignup) { preventExitSplash = true; exitSignupHtml = oExitSignup.innerHTML; divtag = document.createElement("div"); divtag.setAttribute("id", "exitSignup"); divtag.style.display = "block"; divtag.style.position = "absolute"; divtag.style.width = "100%"; divtag.style.height = "100%"; divtag.style.zIndex = "99"; divtag.style.left = "0px"; divtag.style.top = "0px"; divtag.innerHTML = exitSignupHtml; theBody = getBody(); theBody.innerHTML = ""; theBody.topMargin = "0px"; theBody.rightMargin = "0px"; theBody.bottomMargin = "0px"; theBody.leftMargin = "0px"; theBody.style.overflow = "auto"; theBody.appendChild(divtag); window.scrollTo(0,0); } } visitCount = parseInt(getCookie()); if (isNaN(visitCount)) visitCount = 0; visitCount++; setCookie(visitCount); if (visitCount > 1) { elementVisibleAfter = elementVisibleAfter_v2; elementVisible = new Array(); for (var i in elementVisibleAfter) elementVisible[i] = false; iframeUrl = iframeUrl_v2; buttonUrl = buttonUrl_v2; } if (document.referrer != "") { urlReferrer = document.referrer; } // var cd = getCookie("cd"+buttonPromocode); // if (cd != "") { // deleteCookie("cd"+buttonPromocode, "/"); // track(); // } } function positionListener(obj) { if (obj==false) { if (eventMessages) debugMsg("Position Listener: "+obj); for(var i in plugVisibility) { setTimeout("showElement('"+plugVisibility[i].id+"')", plugVisibility[i].time[0] * 1000); } } else { currentPosition = obj.position; for (var i in plugVisibility) { var id = plugVisibility[i].id; if (!elementVisible[i]) { if ( (currentPosition >= plugVisibility[i].time[0]) && ( (plugVisibility[i].time[2]==0) || ((plugVisibility[i].time[2]>0) && (currentPosition < plugVisibility[i].time[2])) ) ) { elementVisible[i] = true; if (plugVisibility[i].time[1] > 0) { showElement(id, plugVisibility[i].time[1]); } else { showElement(id); } } } else { if ( ((plugVisibility[i].time[2]>0) && (currentPosition >= plugVisibility[i].time[2])) || (hideOnReturn && (currentPosition < plugVisibility[i].time[0])) ) { elementVisible[i] = false; if (plugVisibility[i].time[3] > 0) { hideElement(id, plugVisibility[i].time[3]); } else { hideElement(id); } } } } // for (var i in elementVisible) { // if (!elementVisible[i] && (currentPosition >= elementVisibleAfter[i])) { // if (typeof elementFadeIn[i] != "undefined") { // showElement(i, elementFadeIn[i]); // } else { // showElement(i); // } // } else if (elementVisible[i]) { // if ( ((typeof hideElementAfter[i] != "undefined") && (currentPosition >= hideElementAfter[i])) || (hideOnReturn && (currentPosition < elementVisibleAfter[i])) ) // { // if (typeof elementFadeOut[i] != "undefined") { // hideElement(i, elementFadeOut[i]); // } else { // hideElement(i); // } // } // } // } if (currentPosition > (lastPosition+60)) { lastPosition = currentPosition; // track(); } updateDebugger(); } } function stateListener(obj) { currentState = obj.newstate; if (useCompleteEvent && (obj.newstate == "COMPLETED")) { var theVideoFrame = document.getElementById("theVideoFrame"); if (theVideoFrame) { if (lastSlide != "") { theVideoFrame.innerHTML = ""; } else if (lastSlideHtml != "") { theVideoFrame.innerHTML = lastSlideHtml; disableLinksFunc(); disableFormsFunc(); } } } updateDebugger(); } function volumeListener(obj) { currentVolume = obj.percentage; if (!useCompleteEvent && (currentPosition >= endVideoAfter) && (lastSlide!="")) { var theVideoFrame = document.getElementById("theVideoFrame"); if (theVideoFrame) { if (lastSlide != "") { theVideoFrame.innerHTML = ""; } else if (lastSlideHtml != "") { theVideoFrame.innerHTML = lastSlideHtml; } } } updateDebugger(); } var currentPosition = 0; var currentVolume = videoVolume; var currentState = 'STOPPED'; var player = null; var eventsSupported = false; var eventMessages = false; var seekEnabled = false; var flashAvailable = false; var html5Available = false; var iidPlayerReadyHtml5 = false; var iidListenersHtml5 = false; var mediaProperties = ["error", "src", "currentSrc", "networkState", "preload", "buffered", "readyState", "seeking", "currentTime", "initialTime", "duration", "startOffsetTime", "paused", "defaultPlaybackRate", "playbackRate", "played", "seekable", "ended", "autoplay", "loop", "controls", "volume", "muted"]; var mediaEvents = new Array(); mediaEvents["loadstart"] = 0; mediaEvents["progress"] = 0; mediaEvents["suspend"] = 0; mediaEvents["abort"] = 0; mediaEvents["error"] = 0; mediaEvents["emptied"] = 0; mediaEvents["stalled"] = 0; mediaEvents["play"] = 0; mediaEvents["pause"] = 0; mediaEvents["loadedmetadata"] = 0; mediaEvents["loadeddata"] = 0; mediaEvents["waiting"] = 0; mediaEvents["playing"] = 0; mediaEvents["canplay"] = 0; mediaEvents["canplaythrough"] = 0; mediaEvents["seeking"] = 0; mediaEvents["seeked"] = 0; mediaEvents["timeupdate"] = 0; mediaEvents["ended"] = 0; mediaEvents["ratechange"] = 0; mediaEvents["durationchange"] = 0; mediaEvents["volumechange"] = 0; function getInternetExplorerVersion() { // Returns the version of Internet Explorer or a -1 // (indicating the use of another browser). var rv = -1; // Return value assumes failure. if (navigator.appName == "Microsoft Internet Explorer") { var ua = navigator.userAgent; var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})"); if (re.exec(ua) != null) rv = parseFloat( RegExp.$1 ); } return rv; } function isChrome() { return navigator.userAgent.toLowerCase().indexOf('"chrome') > -1; } function showElement(id, fade) { fade = fade | false; if (fade) { if (typeof fade == 'number') { jQuery('#'+id).fadeIn(fade); } else { jQuery('#'+id).fadeIn(); } } else { var o = document.getElementById(id); if (o) { o.style.display = "block"; o.style.visibility = "visible"; } } } function hideElement(id, fade) { if (fade) { if (typeof fade == 'number') { jQuery('#'+id).fadeOut(fade); } else { jQuery('#'+id).fadeOut(); } } else { var o = document.getElementById(id); if (o) { o.style.display = "none"; o.style.visibility = "hidden"; } } } function deleteCookie(name, path, domain) { document.cookie = name + '=' + ((path) ? ";path="+path : "") + ((domain) ? ";domain="+domain : "") + ";expires=Thu, 01-Jan-1970 00:00:01 GMT"; } function setCookie(value, aCookieName, aCookieExpiry) { var cn = exp = ''; if (typeof cookieName != 'undefined') cn = cookieName; // global setting if (typeof cookieExpiry != 'undefined') exp = cookieExpiry; // global setting if (aCookieName) cn = aCookieName; // individual cookie if (aCookieExpiry) cn = aCookieExpiry; var exdate = new Date(); exdate.setDate(exdate.getDate() + exp); var cookieValue = escape(value) + "; expires=" + exdate.toUTCString() + "; path=/;"; document.cookie = cn + "=" + cookieValue; } function getCookie(aCookieName) { var cn = ''; if (typeof cookieName != 'undefined') cn = cookieName; // global setting if (aCookieName) cn = aCookieName; // individual cookie var i,x,y,ARRcookies = document.cookie.split(";"); for (i=0; i'; o.scrollTop = o.scrollHeight; } } function bindEvent(el, eventName, eventHandler) { if (el.addEventListener) { el.addEventListener(eventName, eventHandler, false); } else if (el.attachEvent) { el.attachEvent('on'+eventName, eventHandler); } } ///////////////////////////////////////////////////////////////////////////////////// // VIDEO EVENTS ///////////////////////////////////////////////////////////////////////////////////// function createPlayer() { var ph = getPlayhead(); if (ph==false) { ph = 0; } if (eventMessages) debugMsg('Playhead cookie: '+ph); // check for html5 first // if (html5Available) { // createPlayerHtml5(); // } else if (flashAvailable) { // createPlayerFlash(); // } // check for flash first if (flashAvailable) { createPlayerFlash(); } else if (html5Available) { createPlayerHtml5(); } } function createPlayerFlash() { if (eventMessages) debugMsg('Creating player for FLASH'); // provider and start parameters don't work yet. Need to install server module. // see documentation for 'Video Delivery: HTTP Pseudo-Streaming' var flashvars = { file: videoFile+'?v='+Date.parse(new Date()), autostart: (autostartEnabled ? 'true' : 'false'), controlbar: 'none', type: 'video', stretching: 'exactfit', wmode: 'opaque', width: videoWidth, height: videoHeight, displayheight: videoHeight, frontcolor: 'ffffff', backcolor: 'ffffff', lightcolor: 'ffffff', screencolor: 'ffffff', bufferlength: '10', volume: videoVolume, enablejs: 'true', javascriptid: 'jstest' }; var params = { allowfullscreen: 'false', allowscriptaccess: 'always', wmode: 'transparent' }; var attributes = { id: 'player1', name: 'player1' }; var theVideoFrame = document.getElementById('theVideoFrame'); if (theVideoFrame) { theVideoFrame.innerHTML = '
...loading...
'; theVideoFrame.style.visibility = 'visible'; swfobject.embedSWF(videoPlayer, 'theVideo', videoWidth-2, videoHeight-2, "9.0.115", false, flashvars, params, attributes); } setTimeout('checkPlayHead()', 10000); } //this function is called by the flash-player when it's ready function playerReady(thePlayer) { if (flashAvailable) { if (eventMessages) debugMsg('FLASH player is ready...setting player-instance and adding listeners.'); player = document.getElementById(thePlayer['id']); addListenersFlash(); } } // this function is not called by the player, therefore I'm setting an interval to check for the readyState function playerReadyHtml5() { if (html5Available) { player = document.getElementById('player1'); iidPlayerReadyHtml5 = window.setInterval(function(t) { if (player.readyState > 0) { if (eventMessages) debugMsg('HTML5 Player ready to rock\'n\'roll!'); addListenersHtml5(); clearInterval(iidPlayerReadyHtml5); } else { if (eventMessages) debugMsg('HTML5 Player not ready yet. Trying again...'); } }, 500); } } // this function is called after 10 seconds to doublecheck that playhead events are available function checkPlayHead() { if (eventMessages) debugMsg('Checking playhead availability...'); // find out if playhead can be read, if not, use old timeout method // eventsSupported will be true if player-ready event occurs within 7 secons if (!eventsSupported) { if (eventMessages) debugMsg('Playhead events are not supported. Using setTimeout instead.'); setTimeout('positionListener(false)', 1000); // run the positionListener every second for alternative event-handling } else { if (eventMessages) debugMsg('Everything ok, playhead events are supported.'); } } function addListenersFlash() { if (eventMessages) debugMsg('Adding FLASH listeners.'); if (player) { eventsSupported = true; player.addModelListener('TIME', 'positionListener'); player.addModelListener('STATE', 'stateListener'); player.addControllerListener('VOLUME', 'volumeListener'); if (debug) addDebuggerEvents(); } else { if (eventMessages) debugMsg('Not ready to add FLASH listeners yet. Trying again...'); setTimeout("addListenersFlash()", 500); } } function addListenersHtml5() { if (eventMessages) debugMsg('Adding HTML5 listeners.'); if (player) { eventsSupported = true; for (key in mediaEvents) { switch(key) { case 'timeupdate': case 'pause': case 'ended': case 'volumechange': if (eventMessages) debugMsg('Adding '+key+' handler...'); bindEvent(player, key, captureMediaEvent); } } if (debug) addDebuggerEvents(); } else { if (eventMessages) debugMsg('Not ready to add HTML5 listeners yet. Trying again...'); setTimeout("addListenersHtml5()", 500); } } function captureMediaEvent(event) { var obj = { oldstate: currentState }; if (player.paused) { currentState = 'PAUSED'; } else if (player.ended) { currentState = 'COMPLETED'; } else { currentState = 'PLAYING'; } obj.newstate = currentState; if (obj.oldstate != obj.newstate) stateListener(obj); if (currentState == 'COMPLETED') { return; } switch (event.type) { case 'timeupdate': obj.position = Math.round(player.currentTime * 100) / 100; obj.duration = Math.round(player.duration * 100) / 100; // if (eventMessages) debugMsg(currentState+': '+event.type+': position='+obj.position+', duration='+obj.duration); positionListener(obj); break; case 'volumechange': currentVolume = Math.round(player.volume * 100); obj.volume = currentVolume; obj.percentage = currentVolume; volumeListener(obj); break; // case 'pause': // obj.oldstate = currentState; // currentState = 'PAUSED'; // obj.newstate = currentState; // if (eventMessages) debugMsg(currentState+': '); // stateListener(obj); // break; } } function createPlayerHtml5() { if (eventMessages) debugMsg('Creating player for HTML5'); var theVideoFrame = document.getElementById('theVideoFrame'); if (theVideoFrame) { var videoBasePath = videoFile.substr(0, videoFile.length-4); theVideoFrame.innerHTML = '
' +'' +'
'; // +' controls="controls"' theVideoFrame.style.visibility = 'visible'; playerReadyHtml5(); } } // @todo: this is used by the welcome-back plugin and should be defined there function ocRestart() { if (player) { currentPosition = 0; seekDone = true; if (flashAvailable) { if (typeof player.sendEvent == 'function') { player.sendEvent('SEEK', 0); } } else if (html5Available) { } } return false; } function addDebuggerEvents() { if (eventMessages) debugMsg('Adding Debugger listeners.'); var obj = document.getElementById('ctrlPlay'); if (obj) bindEvent(obj, 'click', function(e) { if (player) { if (flashAvailable) { if (typeof player.sendEvent == 'function') { player.sendEvent('PLAY'); } } else if (html5Available) { if (player.paused) { player.play(); } else { player.pause(); } } } updateDebugger(); }); var obj = document.getElementById('ctrlStop'); if (obj) bindEvent(obj, 'click', function(e) { if (player) { if (flashAvailable) { if (typeof player.sendEvent == 'function') { player.sendEvent('STOP'); } } else if (html5Available) { // stop doesn't exist, so I'm just seeking back to the beginning and pausing the video player.pause(); player.currentTime = 0; currentPosition = 0; } } updateDebugger(); }); var obj = document.getElementById('ctrlSeekPlus'); if (obj) bindEvent(obj, 'click', function(e) { if (player) { if (flashAvailable) { if (typeof player.sendEvent == 'function') { player.sendEvent('SEEK', currentPosition + 60); } } else if (html5Available) { player.currentTime += 60; } } updateDebugger(); }); var obj = document.getElementById('ctrlSeekMinus'); if (obj) bindEvent(obj, 'click', function(e) { if (player) { if (flashAvailable) { if (typeof player.sendEvent == 'function') { player.sendEvent('SEEK', currentPosition - 60); } } else if (html5Available) { player.currentTime -= 60; } } updateDebugger(); }); var obj = document.getElementById('ctrlVolUp'); if (obj) bindEvent(obj, 'click', function(e) { if (player) { if (flashAvailable) { if (typeof player.sendEvent == 'function') { player.sendEvent('VOLUME', currentVolume + 10) } } else if (html5Available && (player.volume <= 0.9)) { player.volume += 0.1; } } updateDebugger(); }); var obj = document.getElementById('ctrlVolDown'); if (obj) bindEvent(obj, 'click', function(e) { if (player) { if (flashAvailable) { if (typeof player.sendEvent == 'function') { player.sendEvent('VOLUME', currentVolume - 10) } } else if (html5Available && (player.volume >= 0.1)) { player.volume -= 0.1; } } updateDebugger(); }); } function updateDebugger() { if (debug) { var obj = document.getElementById('currentPosition'); if (obj) { obj.innerHTML = currentPosition; } var obj = document.getElementById('currentVolume'); if (obj) { obj.innerHTML = currentVolume; } var obj = document.getElementById('currentState'); if (obj) { obj.innerHTML = currentState; } var obj = document.getElementById('ctrlPlay'); if (obj) { if (currentState=='PLAYING') { obj.innerHTML = '[pause]'; } else { obj.innerHTML = '[play]'; } } } } function createDebugger() { if (debug) { o = document.createElement('div'); o.setAttribute('id', 'videoDebug'); o.innerHTML = (eventMessages ? '
' : '')+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ '
[play][stop][\+60sec][\-60sec][volume up][volume down]volume:'+currentVolume+'position:'+currentPosition+'state: '+currentState+'
'; o.style.textAlign = 'center'; o.style.width = '100%'; o.style.position = 'fixed'; o.style.top = 'auto'; o.style.right = '0px'; o.style.left = '0px'; o.style.bottom = '20px'; o.style.borderTop = '1px solid #888'; o.style.borderBottom = '1px solid #888'; o.style.backgroundColor = '#ffe'; theBody = getBody(); if (theBody) theBody.appendChild(o); } } main = function() { flashAvailable = (swfobject.hasFlashPlayerVersion('1')); html5Available = !!document.createElement('video').canPlayType; if (!enableHtml5) html5Available = false; // if (html5Available) flashAvailable = false; // check for html5 first, if available then turn flash off if (typeof isAutoStartEnabled == 'function') { // allows you to override autostart-flag before players are created autostartEnabled = isAutoStartEnabled(); } disableLinksFunc(); disableFormsFunc(); createDebugger(); initPlugins(); createPlayer(); var oForm = document.getElementById('theOrderButton'); if (oForm) { oForm.action = buttonUrl; } else { // alert('Exception Error: theOrderButton does not exist.'); } }; addLoadEvent(main);