// var debug = false; var murl = ""; var domain = "https://secure.drmicozzi.com/"; var pub = "PainRelief"; var buttonPromocode = "WOV2N6DF"; var buttonUrl = "https://secure.drmicozzi.com/PainRelief/WOV2N6DF/index.htm"; var videoFile = "https://s3.amazonaws.com/PainCure/PAIN_Prometheus_25.flv"; var videoPlayer = "/videopromos/videolib/mplayer46.swf"; var lastSlide = "https://s3.amazonaws.com/PainCure/PAIN_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":[865,0,0,0]},{"id":"disclaimer","time":[865,0,0,0]}]); var done = false; var preventExitSplash = false; var defaultExitMessage = 'The Prometheus Pain Cure. Why does this simple substance relieve arthritis pain when others cannot? Scientists finally know why! Read all the details, without having to watch the video presentation. Just click STAY ON THIS PAGE or CANCEL below to read the video transcript at your leisure.'; var ie9ExitMessage = 'The Prometheus Pain Cure. Why does this simple substance relieve arthritis pain when others cannot? Scientists finally know why! Read all the details, without having to watch the video presentation. Just click STAY ON THIS PAGE or CANCEL below to read the video transcript at your leisure.'; var iframeUrl = "https://secure.drmicozzi.com/PainRelief/WOV2N6DF/"; 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 displayExitSplash() { if (preventExitSplash == false) { document.location.href = iframeUrl; 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; } } var hideOnReturn_v2 = false; var elementVisible_v2 = new Array(); var elementVisibleAfter_v2 = {theButton: 865, disclaimer: 865}; var elementReplaced_v2 = replaceElementAfter_v2 = false; var iframeUrl_v2 = "https://secure.drmicozzi.com/PainRelief/WOV2N6DF/index.htm?pageNumber=1"; var buttonUrl_v2 = "https://secure.drmicozzi.com/PainRelief/WOV2N6DF/index.htm"; var cookieName = "vidPainRelief"; 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/PainCure/OV2SRPAIN_Prometheus.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/PainCure/OV2SRPAIN_Prometheus.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); } } 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);