chartbeat.js

Javascript code posted by chartbeat.com
created at 09 Jul 15:50, updated at 22 Feb 01:57

Edit | Back
1
if(!pSUPERFLY){var pSUPERFLY={version:2,ready:false,readyList:[],query:{},interval:10*1000,newToSite:0,newToPage:1,count:0,scrolls:0,keydowns:0,mousemoves:0,pagehash:"",domain:"",uid:"",connSpeed:0,started:0,staticRoot:(("https:"==document.location.protocol)?"https://s3.amazonaws.com/static.chartbeat.net/":"http://static.chartbeat.net/"),agg:{scrolls:0,keydowns:0,mousemoves:0},init:function(){if(pSUPERFLY.readCookie("_SUPERFLY_nosample")){return}this.started=(new Date()).getTime();var g=document.getElementsByTagName("script");var f=g[g.length-1];if(f){this.query=this.parseQueryString(f.src.split("?")[1])}if(this.query){this.uid=pSUPERFLY.query.uid;this.domain=this.query.domain||location.host}else{this.domain=location.host}this.pageSession=this.uuid();this.host=location.host;this.host=this.host.replace(/^www./,"");this.domain=this.domain.replace(/^www./,"");this.pathname=location.pathname+location.search;this.pathname=this.pathname.replace(/PHPSESSID=[^&]+/,"");this.pathname=this.pathname.replace(/\/$/,"");this.pagehash=this.crc32(pSUPERFLY.pathname);try{var c=this.readCookie("_SUPERFLY");this._pSUPERFLY=c?this.json_decode(c):null}catch(d){}if(this._pSUPERFLY==null||this._pSUPERFLY.hist==null){if(!this.readCookie("_sfu")){this.newToSite=1}this._pSUPERFLY={user:this.uuid(),hist:[]}}this.persistantUser=this._pSUPERFLY.user;for(var b=0;b<this._pSUPERFLY.hist.length;b++){if(this._pSUPERFLY.hist[b].p==this.pagehash){this.newToPage=0}}this._pSUPERFLY.hist.unshift({p:this.pagehash,t:(new Date()).getTime()});this._pSUPERFLY.hist=this._pSUPERFLY.hist.slice(0,25);this.createCookie("_SUPERFLY",this.json_encode(this._pSUPERFLY),365*3);var a=(window.onscroll)?window.onscroll:function(){};window.onscroll=function(){a();pSUPERFLY.scrolls++;pSUPERFLY.agg.scrolls++};var a=(document.body.onkeydown)?document.body.onkeydown:function(){};document.body.onkeydown=function(){a();pSUPERFLY.keydowns++;pSUPERFLY.agg.keydowns++};var a=(document.body.onmousemove)?document.body.onmousemove:function(){};document.body.onmousemove=function(){a();pSUPERFLY.mousemoves++;pSUPERFLY.agg.mousemoves++};if(typeof(window.addEventListener)!="undefined"){window.addEventListener("load",this.onPageLoad,false)}else{if(typeof(document.addEventListener)!="undefined"){document.addEventListener("load",this.onPageLoad,false)}else{if(typeof window.attachEvent!="undefined"){window.attachEvent("onload",this.onPageLoad)}}}this.defer(function(){pSUPERFLY.checkSpeed();pSUPERFLY.intervalTimer=setInterval(pSUPERFLY.checkLog,10*1000);pSUPERFLY.timer=setTimeout(pSUPERFLY.logAndReschedule,500)})},parseQueryString:function(g){var a={};if(g==undefined){g=location.search?location.search:""}if(g.charAt(0)=="?"){g=g.substring(1)}g=g.replace("+"," ");var d=g.split(/[&;]/g);for(var c=0;c<d.length;c++){var f=d[c].split("=");var b=decodeURIComponent(f[0]);var e=decodeURIComponent(f[1]);a[b]=e}return a},json_decode:function(json_string){return eval("("+json_string+")")},uuid:function(){var a,c,b;a="";for(b=0;b<16;b++){c=Math.floor(Math.random()*36).toString(36);a=a+c}return a},createCookie:function(c,d,f,e){if(!e){e="/"}if(f){var b=new Date();b.setTime(b.getTime()+(f*24*60*60*1000));var a="; expires="+b.toGMTString()}else{var a=""}document.cookie=c+"="+d+a+"; path="+e},readCookie:function(b){var e=b+"=";var a=document.cookie.split(";");for(var d=0;d<a.length;d++){var f=a[d];while(f.charAt(0)==" "){f=f.substring(1,f.length)}if(f.indexOf(e)==0){return f.substring(e.length,f.length)}}return null},checkLog:function(){var a=new Date();if(pSUPERFLY.nextRun-a.getTime()>10*1000&&(pSUPERFLY.mousemoves||pSUPERFLY.keydowns||pSUPERFLY.scrolls)){pSUPERFLY.interval=10000;pSUPERFLY.logAndReschedule()}},logAndReschedule:function(){clearTimeout(pSUPERFLY.timer);if(((new Date()).getTime()-pSUPERFLY.started)>60*60*1000){return}pSUPERFLY.interval=pSUPERFLY.interval*2;if(pSUPERFLY.interval>80000){pSUPERFLY.interval=10000}pSUPERFLY.log();pSUPERFLY.nextRun=(new Date()).getTime()+pSUPERFLY.interval;pSUPERFLY.timer=setTimeout(pSUPERFLY.logAndReschedule,pSUPERFLY.interval)},log:function(){pSUPERFLY.lastRun=(new Date()).getTime();var g=[0,0];if(typeof(window.pageYOffset)=="number"){g=[window.pageXOffset,window.pageYOffset]}else{if(document.body&&(document.body.scrollLeft||document.body.scrollTop)){g=[document.body.scrollLeft,document.body.scrollTop]}else{if(document.documentElement&&(document.documentElement.scrollLeft||document.documentElement.scrollTop)){g=[document.documentElement.scrollLeft,document.documentElement.scrollTop]}}}if(g[1]=="undefined"){g[1]=0}var h=location.pathname;if(location.search){h+=location.search}var f=write=idle=0;if(pSUPERFLY.agg.keydowns>0){write=1}else{if(pSUPERFLY.agg.mousemoves>0||pSUPERFLY.agg.scrolls>0){f=1}else{idle=1}}var d="";var c=0;if(pSUPERFLY._pSUPERFLY.hist&&pSUPERFLY._pSUPERFLY.hist.length>1){d=pSUPERFLY._pSUPERFLY.hist[1].p;c=(pSUPERFLY.started-pSUPERFLY._pSUPERFLY.hist[1].t)/1000}var a=(location.protocol||"http:")+"//ping.chartbeat.net/ping?h="+encodeURIComponent(pSUPERFLY.domain);a+="&p="+encodeURIComponent(h);if(document.referrer.indexOf(document.domain)!=-1){a+="&v="+encodeURIComponent(document.referrer||"")}else{a+="&r="+encodeURIComponent(document.referrer||"")}a+="&d="+encodeURIComponent(location.host.replace(/^www./,""));a+="&s="+pSUPERFLY.agg.scrolls;a+="&k="+pSUPERFLY.agg.keydowns;a+="&m="+pSUPERFLY.agg.mousemoves;a+="&u="+pSUPERFLY.persistantUser;a+="&t="+pSUPERFLY.pageSession;a+="&c="+pSUPERFLY.count++;a+="&x="+g[1];a+="&y="+(document.body.scrollHeight||0);a+="&w="+(window.innerHeight||document.body.offsetHeight||0);a+="&n="+pSUPERFLY.newToSite;a+="&e="+pSUPERFLY.newToPage;a+="&o="+d;a+="&l="+c;a+="&i="+encodeURIComponent(document.title.slice(0,100));a+="&g="+pSUPERFLY.uid;a+="&q="+pSUPERFLY.connSpeed;a+="&j="+pSUPERFLY.interval/1000;a+="&R="+f;a+="&W="+write;a+="&I="+idle;a+="&ts="+(new Date()).getTime();if(pSUPERFLY.pagetimer){a+="&b="+pSUPERFLY.pagetimer}var e=[-pSUPERFLY.scrolls,-pSUPERFLY.keydowns,-pSUPERFLY.mousemoves];setTimeout(function(){pSUPERFLY.agg.scrolls+=e[0];pSUPERFLY.agg.keydowns+=e[1];pSUPERFLY.agg.mousemoves+=e[2]},60*1000);pSUPERFLY.scrolls=pSUPERFLY.keydowns=pSUPERFLY.mousemoves=0;var b=new Image(1,1);b.onload=function(){return};b.onerror=pSUPERFLY.onPingError;b.src=a;pSUPERFLY.killStatusBar();if(pSUPERFLY.count>=360){clearInterval(pSUPERFLY.intervalTimer)}},onPingError:function(){clearTimeout(pSUPERFLY.timer);clearInterval(pSUPERFLY.intervalTimer);pSUPERFLY.createCookie("_SUPERFLY_nosample",1,0.007)},defer:function(a){if(this.ready){a.apply(document,[pSUPERFLY])}else{this.readyList.push(function(){return a.apply(this,[pSUPERFLY])})}},onPageLoad:function(){pSUPERFLY.ready=true;if(typeof(_sf_startpt)=="number"){pSUPERFLY.pagetimer=(new Date()).getTime()-_sf_startpt}for(var a=0;a<pSUPERFLY.readyList.length;++a){pSUPERFLY.readyList[a].apply(document,[pSUPERFLY])}},checkSpeed:function(){pSUPERFLY.speedStart=(new Date()).getTime();var a=new Image(1,1);a.src=pSUPERFLY.staticRoot+"images/speedtest.jpg?"+(new Date()).getTime();a.onload=function(){var c=new Date();var b=Math.round((c.getTime()-pSUPERFLY.speedStart)/10)/100;pSUPERFLY.connSpeed=Math.round(20866/b/1000)}},killStatusBar:function(){if(navigator.userAgent.indexOf("Firefox")==-1){return}var a=new Image(1,1);a.src=pSUPERFLY.staticRoot+"images/transpixel.gif";a.onload=function(){return}},crc32:function(d){var c=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918000,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];var b=~0;for(var a=0;a<d.length;a++){b=(b>>>8)^c[(b^d.charCodeAt(a))&255]}b=(~b>>>16)&32767;return b==0?1:b},json_encode:function json_encode(a){var g,e,b,f="",d;switch(typeof a){case"object":if(a){if(a.constructor==Array){for(e=0;e<a.length;++e){d=json_encode(a[e]);if(f){f+=","}f+=d}return"["+f+"]"}else{if(typeof a.toString!="undefined"){for(e in a){d=json_encode(a[e]);if(typeof d!="function"){if(f){f+=","}f+=json_encode(e)+":"+d}}return"{"+f+"}"}}}return"null";case"number":return isFinite(a)?String(a):"null";case"string":b=a.length;f='"';for(e=0;e<b;e+=1){g=a.charAt(e);if(g>=" "){if(g=="\\"||g=='"'){f+="\\"}f+=g}else{switch(g){case"\b":f+="\\b";break;case"\f":f+="\\f";break;case"\n":f+="\\n";break;case"\r":f+="\\r";break;case"\t":f+="\\t";break;default:g=g.charCodeAt();f+="\\u00"+Math.floor(g/16).toString(16)+(g%16).toString(16)}}}return f+'"';case"boolean":return String(a);default:return"null"}}};pSUPERFLY.init()};
10.8 KB in 36 ms with coderay