var Trackr={options:{timeout:2500,url:"/track.php",minData:10,capture:["load","mouseMove","click","unload"],offset:"body",canvas:true},actions:[],offset:{left:0,top:0},interval:null,init:function(a){this.options=$.extend(this.options,a||{});if($.inArray("load",this.options.capture)!=-1){$(function(b){Trackr.log("load",b)})}if($.inArray("mouseMove",this.options.capture)!=-1){$(document).mousemove(function(b){Trackr.log("mouseMove",b)})}if($.inArray("mouseUp",this.options.capture)!=-1){$(document).mouseup(function(b){Trackr.log("mouseUp",b)})}if($.inArray("mouseDown",this.options.capture)!=-1){$(document).mousedown(function(b){Trackr.log("mouseDown",b)})}if($.inArray("keyUp",this.options.capture)!=-1){$(document).keyup(function(b){Trackr.log("keyUp",b)})}if($.inArray("keyDown",this.options.capture)!=-1){$(document).keydown(function(b){Trackr.log("keyDown",b)})}if($.inArray("click",this.options.capture)!=-1){$(document).click(function(b){Trackr.log("click",b)})}if($.inArray("click",this.options.capture)!=-1){$("*").click(function(b){Trackr.log("click",b)})}if($.inArray("resize",this.options.capture)!=-1){$(window).resize(function(b){Trackr.log("resize",b);Trackr.calcOffset()})}else{$(window).resize(function(b){Trackr.calcOffset()})}if($.inArray("focus",this.options.capture)!=-1){$(window).focus(function(b){Trackr.log("focus",b)})}if($.inArray("blur",this.options.capture)!=-1){$(window).blur(function(b){Trackr.log("blur",b)})}if($.inArray("unload",this.options.capture)!=-1){$(window).unload(function(b){Trackr.log("unload",b);Trackr.send(true)})}else{$(window).unload(function(b){Trackr.send(true)})}if(this.options.timeout){this.interval=window.setInterval(function(){Trackr.send()},this.options.timeout)}this.calcOffset()},calcOffset:function(){this.offset=$(this.options.offset).offset()},stop:function(){window.clearInterval(this.interval)},clear:function(){this.actions=[]},log:function(a,c){var b={time:new Date().getTime(),type:a};switch(a){case"load":b.browser=window.navigator.userAgent;b.url=window.location.href.split("#")[0];b.screenHeight=window.screen.height;b.screenWidth=window.screen.width;b.pageHeight=$(document).height();b.pageWidth=$(document).width();b.winHeight=$(window).height();b.winWidth=$(window).width();break;case"mouseMove":b.x=c.pageX-this.offset.left;b.y=c.pageY-this.offset.top;b.cX=c.clientX-this.offset.left;b.cY=c.clientY-this.offset.top;break;case"mouseDown":case"mouseUp":case"click":b.x=c.pageX-this.offset.left;b.y=c.pageY-this.offset.top;b.cX=c.clientX-this.offset.left;b.cY=c.clientY-this.offset.top;b.which=c.which;break;case"keyUp":case"keyDown":case"keyPress":b.alt=c.altKey;b.shift=c.shiftKey;b.ctrl=c.ctrlKey;b.meta=c.metaKey;b.which=c.which;b.key=c.keyCode;break;case"resize":case"focus":case"blur":case"unload":break}this.actions.push(b)},buildData:function(){var b="url="+escape(window.location.href.split("#")[0])+"&",c;while(this.actions.length>0){c=this.actions.pop();for(var a in c){b+=("actions["+(this.actions.length-1)+"]["+a+"]="+escape(c[a])+"&")}}return b},send:function(a){if(this.actions.length>this.options.minData||a){$.ajax({type:"POST",url:this.options.url,data:this.buildData()})}},load:function(session){this.stop();if(!session){session="%"}$.ajax({url:this.options.url+"?session="+escape(session)+"&types="+this.options.capture.join(",")+"&url="+escape(window.location.href),type:"GET",complete:function(r,status){if(status=="success"){try{eval("var data = "+r.responseText);Trackr.overlay(data)}catch(e){if(console&&console.warn){console.warn("Error reading JSON data")}else{alert("Error reading JSON data")}}}else{if(console&&console.warn){console.warn("Error loading JSON data")}else{alert("Error loading JSON data")}}}})},overlay:function(c){$(this.options.offset).css("position","relative");$("html").css({height:"auto"});if(this.options.canvas){$("html").append($('<canvas width="'+$(this.options.offset).outerWidth()+'" height="'+$("html").height()+'" id="tracker-overlay"></canvas>'));this.canvasElement=document.getElementById("tracker-overlay");$(this.canvasElement).css({"min-height":"100%",position:"absolute",top:this.offset.top+"px",left:this.offset.left+"px",background:"rgba(255, 255, 255, 0.5)"});$("html").append(this.canvasElement);var a=this.canvasElement.getContext("2d");if(c.mouseMove){a.strokeStyle="rgba(0, 0, 255, 0.2)";a.fillStyle="rgba(255, 0, 0, 0.3)";a.beginPath();var d=c.mouseMove.shift();a.moveTo(d.x,d.y);for(var b=c.mouseMove.length-1;b>=0;b--){a.lineTo(c.mouseMove[b].x,c.mouseMove[b].y)}a.moveTo(d.x,d.y);a.closePath();a.stroke()}if(c.click){for(var b=c.click.length-1;b>=0;b--){a.beginPath();a.arc(c.click[b].x,c.click[b].y,5,0,Math.PI*2,true);a.closePath();a.fill()}}}else{if(c.mouseMove){for(var b=c.mouseMove.length-1;b>=0;b--){this.createDot(c.mouseMove[b].x,c.mouseMove[b].y,"#0f0")}}if(c.click){for(var b=c.click.length-1;b>=0;b--){this.createDot(c.click[b].x,c.click[b].y,"#f00")}}}},createDot:function(a,c,b){$(this.options.offset).append('<div style="position: absolute; top: '+(c-2)+"px; left: "+(a-2)+"px; width: 5px; height: 5px; background: "+b+'; opacity: 0.3;"></div><div style="position: absolute; top: '+(c-1)+"px; left: "+(a-1)+"px; width: 3px; height: 3px; background: "+b+'; opacity: 0.5;"></div><div style="position: absolute; top: '+c+"px; left: "+a+"px; width: 1px; height: 1px; background: "+b+'; opacity: 0.8;"></div>')},actionsToData:function(){var c={};for(var a=0;a<this.actions.length;a++){var b=this.actions[a];if(!c[b.type]){c[b.type]=[]}c[b.type].push(b)}return c}};