var ip = "3.134.90.44"; // Customize next four variables. var PlayRecorderURL = "/videorecipes/PlayLogger.php"; var PlayViewcountURL = "/videorecipes/PlayViewer.php"; var PlayViewCountFile = "/videorecipes/PlayLog.txt"; var CountID = "recipe-video-play-count"; // End of customization. // Another line of customization. var URL = "https://willbontrager.com/videorecipes/LogEvent.php"; // End of customization. var viewerID = String((new Date()).getTime()).substr(-5) + "" + String( parseInt(Math.random() * (99999 - 10000) + 1000)); var VolumnChangeSent = false; var v = document.getElementById('recipeVideo'); v.addEventListener('ended',endedHandler,false); v.addEventListener('pause',pauseHandler,false); v.addEventListener('playing',playingHandler,false); v.addEventListener('seeked',seekedHandler,false); v.addEventListener('seeking',seekingHandler,false); //v.addEventListener('suspend',suspendHandler,false); v.addEventListener('volumechange',volumechangeHandler,false); function MarkChange(id,tm,evnt) { var http = new XMLHttpRequest(); if(! http) { return; } var param = new Array(); param.push(param,"id="+encodeURIComponent(id)); param.push(param,"tm="+encodeURIComponent(tm)); param.push(param,"evnt="+encodeURIComponent(evnt)); param.push(param,"ip="+encodeURIComponent(ip)); param.push(param,"url="+encodeURIComponent(document.URL)); param.push(param,"ua="+encodeURIComponent(navigator.userAgent)); param.push(param,"cookie="+encodeURIComponent(document.cookie)); http.open("POST",URL,true); http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); http.send( param.join("&") ); } function endedHandler(e) { MarkChange(viewerID,(new Date()).getTime(),"ended"); } function pauseHandler(e) { MarkChange(viewerID,(new Date()).getTime(),"pause"); } function playingHandler(e) { RecordCount(); MarkChange(viewerID,(new Date()).getTime(),"playing"); } function seekedHandler(e) { MarkChange(viewerID,(new Date()).getTime(),"seeked"); } function seekingHandler(e) { MarkChange(viewerID,(new Date()).getTime(),"seeking"); } function suspendHandler(e) { MarkChange(viewerID,(new Date()).getTime(),"suspend"); } function volumechangeHandler(e) { if( VolumnChangeSent ) { return; } VolumnChangeSent = true; MarkChange(viewerID,(new Date()).getTime(),"volumechange"); } function RecordCount() { var http = new XMLHttpRequest(); if(! http) { return; } var param = new Array(); param.push(param,"fileLocation="+encodeURIComponent(PlayViewCountFile)); param.push(param,"ip="+encodeURIComponent(ip)); http.open("POST",PlayRecorderURL,true); http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); http.send( param.join("&") ); } function PublishPlayCount() { var http = new XMLHttpRequest(); if(! http) { return; } var param = new Array(); param.push(param,"fileLocation="+encodeURIComponent(PlayViewCountFile)); http.onreadystatechange = function() { if(http.readyState == 4 && http.status == 200) { document.getElementById(CountID).innerHTML = http.responseText; } } http.open("POST",PlayViewcountURL,true); http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); http.send( param.join("&") ); }