(function() { var domain = '//stats.jove.com/'; if (!Date.now) { Date.now = function() { return new Date().getTime(); } } $(document).ready(function() { try { trackView(); } catch(err) {}; }); $(window).on('beforeunload', function(){ if (getStatsCookie('JoVEUser2')) { var JoVEUser = getStatsCookie('JoVEUser2'); pageData = $('#jove_stats').html().split("::"); recordId = pageData[0]; timestart = pageData[1]; timeend = Math.floor((Date.now() / 1000)); timeonpage = timeend - timestart; var dataText = {'joveuser':JoVEUser,'recordId':recordId,'timeonpage':timeonpage}; if(navigator.sendBeacon){ var jsondata = new FormData(); jsondata.append('joveuser',JoVEUser); jsondata.append('recordId',recordId); jsondata.append('timeonpage',timeonpage); navigator.sendBeacon(domain + 'update_stats.php',jsondata); }else{ $.ajax({url: domain+ 'update_stats.php', type: 'POST', data: dataText, async: false }); } } }); function update_time_on_page(recordId, timestart){ if (getStatsCookie('JoVEUser2')) { var JoVEUser = getStatsCookie('JoVEUser2'); timeend = Math.floor((Date.now() / 1000)); timeonpage = (timeend - timestart) <= 1 ? 1 : timeend - timestart; var dataText = {'joveuser':JoVEUser,'recordId':recordId,'timeonpage':timeonpage}; $.ajax({url: domain+ 'update_stats.php', type: 'POST', data: dataText, async: false }).always(function(){ setTimeout(function(){update_time_on_page(recordId, timestart);}, 15000); }); } } function trackView() { if (getStatsCookie('JoVEUser2')) { var JoVEUser = getStatsCookie('JoVEUser2'); } else { //var JoVEUser = ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)); var JoVEUser = ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, function(c) { return (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16) }); setStatsCookie('JoVEUser2',JoVEUser,360) } var access = 0; if (document.getElementById('access_level')) { var access = document.getElementById('access_level').value; } var user_id = 0; if (document.getElementById('user_id')) { var user_id = document.getElementById('user_id').value; } var country = 'Unknown'; if (document.getElementById('stats_country')) { var country = document.getElementById('stats_country').value; } var dataText = 'page='+escape(window.location.href.replace(/https?:\/\//,''))+'&referrer='+escape(document.referrer.replace(/https?:\/\//,''))+'&joveuser='+JoVEUser+'&browser='+escape(navigator.userAgent)+'&access='+access+'&user_id='+user_id+'&country='+country; $.get(domain + 'process.php?'+dataText,function(data){ curtime = Math.floor((Date.now() / 1000)); $('#jove_stats').html(data+ '::' + curtime).css('display','none'); update_time_on_page(data, curtime); }); } function setStatsCookie(c_name,value,exdays) { var exdate=new Date(); exdate.setDate(exdate.getDate() + exdays); var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString()); document.cookie=c_name + "=" + c_value + ";domain=" + window.location.hostname + ";secure"; } function getStatsCookie(c_name) { var i,x,y,ARRcookies=document.cookie.split(";"); for (i=0;i