var swfobject=function(){var aq="undefined",aD="object",ab="Shockwave Flash",X="ShockwaveFlash.ShockwaveFlash",aE="application/x-shockwave-flash",ac="SWFObjectExprInst",ax="onreadystatechange",af=window,aL=document,aB=navigator,aa=false,Z=[aN],aG=[],ag=[],al=[],aJ,ad,ap,at,ak=false,aU=false,aH,an,aI=true,ah=function(){var a=typeof aL.getElementById!=aq&&typeof aL.getElementsByTagName!=aq&&typeof aL.createElement!=aq,e=aB.userAgent.toLowerCase(),c=aB.platform.toLowerCase(),h=c?/win/.test(c):/win/.test(e),j=c?/mac/.test(c):/mac/.test(e),g=/webkit/.test(e)?parseFloat(e.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,d=!+"\v1",f=[0,0,0],k=null;if(typeof aB.plugins!=aq&&typeof aB.plugins[ab]==aD){k=aB.plugins[ab].description;if(k&&!(typeof aB.mimeTypes!=aq&&aB.mimeTypes[aE]&&!aB.mimeTypes[aE].enabledPlugin)){aa=true;d=false;k=k.replace(/^.*\s+(\S+\s+\S+$)/,"$1");f[0]=parseInt(k.replace(/^(.*)\..*$/,"$1"),10);f[1]=parseInt(k.replace(/^.*\.(.*)\s.*$/,"$1"),10);f[2]=/[a-zA-Z]/.test(k)?parseInt(k.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof af.ActiveXObject!=aq){try{var i=new ActiveXObject(X);if(i){k=i.GetVariable("$version");if(k){d=true;k=k.split(" ")[1].split(",");f=[parseInt(k[0],10),parseInt(k[1],10),parseInt(k[2],10)]}}}catch(b){}}}return{w3:a,pv:f,wk:g,ie:d,win:h,mac:j}}(),aK=function(){if(!ah.w3){return}if((typeof aL.readyState!=aq&&aL.readyState=="complete")||(typeof aL.readyState==aq&&(aL.getElementsByTagName("body")[0]||aL.body))){aP()}if(!ak){if(typeof aL.addEventListener!=aq){aL.addEventListener("DOMContentLoaded",aP,false)}if(ah.ie&&ah.win){aL.attachEvent(ax,function(){if(aL.readyState=="complete"){aL.detachEvent(ax,arguments.callee);aP()}});if(af==top){(function(){if(ak){return}try{aL.documentElement.doScroll("left")}catch(a){setTimeout(arguments.callee,0);return}aP()})()}}if(ah.wk){(function(){if(ak){return}if(!/loaded|complete/.test(aL.readyState)){setTimeout(arguments.callee,0);return}aP()})()}aC(aP)}}();function aP(){if(ak){return}try{var b=aL.getElementsByTagName("body")[0].appendChild(ar("span"));b.parentNode.removeChild(b)}catch(a){return}ak=true;var d=Z.length;for(var c=0;c<d;c++){Z[c]()}}function aj(a){if(ak){a()}else{Z[Z.length]=a}}function aC(a){if(typeof af.addEventListener!=aq){af.addEventListener("load",a,false)}else{if(typeof aL.addEventListener!=aq){aL.addEventListener("load",a,false)}else{if(typeof af.attachEvent!=aq){aM(af,"onload",a)}else{if(typeof af.onload=="function"){var b=af.onload;af.onload=function(){b();a()}}else{af.onload=a}}}}}function aN(){if(aa){Y()}else{am()}}function Y(){var d=aL.getElementsByTagName("body")[0];var b=ar(aD);b.setAttribute("type",aE);var a=d.appendChild(b);if(a){var c=0;(function(){if(typeof a.GetVariable!=aq){var e=a.GetVariable("$version");if(e){e=e.split(" ")[1].split(",");ah.pv=[parseInt(e[0],10),parseInt(e[1],10),parseInt(e[2],10)]}}else{if(c<10){c++;setTimeout(arguments.callee,10);return}}d.removeChild(b);a=null;am()})()}else{am()}}function am(){var g=aG.length;if(g>0){for(var h=0;h<g;h++){var c=aG[h].id;var l=aG[h].callbackFn;var a={success:false,id:c};if(ah.pv[0]>0){var i=aS(c);if(i){if(ao(aG[h].swfVersion)&&!(ah.wk&&ah.wk<312)){ay(c,true);if(l){a.success=true;a.ref=av(c);l(a)}}else{if(aG[h].expressInstall&&au()){var e={};e.data=aG[h].expressInstall;e.width=i.getAttribute("width")||"0";e.height=i.getAttribute("height")||"0";if(i.getAttribute("class")){e.styleclass=i.getAttribute("class")}if(i.getAttribute("align")){e.align=i.getAttribute("align")}var f={};var d=i.getElementsByTagName("param");var k=d.length;for(var j=0;j<k;j++){if(d[j].getAttribute("name").toLowerCase()!="movie"){f[d[j].getAttribute("name")]=d[j].getAttribute("value")}}ae(e,f,c,l)}else{aF(i);if(l){l(a)}}}}}else{ay(c,true);if(l){var b=av(c);if(b&&typeof b.SetVariable!=aq){a.success=true;a.ref=b}l(a)}}}}}function av(b){var d=null;var c=aS(b);if(c&&c.nodeName=="OBJECT"){if(typeof c.SetVariable!=aq){d=c}else{var a=c.getElementsByTagName(aD)[0];if(a){d=a}}}return d}function au(){return !aU&&ao("6.0.65")&&(ah.win||ah.mac)&&!(ah.wk&&ah.wk<312)}function ae(f,d,h,e){aU=true;ap=e||null;at={success:false,id:h};var a=aS(h);if(a){if(a.nodeName=="OBJECT"){aJ=aO(a);ad=null}else{aJ=a;ad=h}f.id=ac;if(typeof f.width==aq||(!/%$/.test(f.width)&&parseInt(f.width,10)<310)){f.width="310"}if(typeof f.height==aq||(!/%$/.test(f.height)&&parseInt(f.height,10)<137)){f.height="137"}aL.title=aL.title.slice(0,47)+" - Flash Player Installation";var b=ah.ie&&ah.win?"ActiveX":"PlugIn",c="MMredirectURL="+af.location.toString().replace(/&/g,"%26")+"&MMplayerType="+b+"&MMdoctitle="+aL.title;if(typeof d.flashvars!=aq){d.flashvars+="&"+c}else{d.flashvars=c}if(ah.ie&&ah.win&&a.readyState!=4){var g=ar("div");h+="SWFObjectNew";g.setAttribute("id",h);a.parentNode.insertBefore(g,a);a.style.display="none";(function(){if(a.readyState==4){a.parentNode.removeChild(a)}else{setTimeout(arguments.callee,10)}})()}aA(f,d,h)}}function aF(a){if(ah.ie&&ah.win&&a.readyState!=4){var b=ar("div");a.parentNode.insertBefore(b,a);b.parentNode.replaceChild(aO(a),b);a.style.display="none";(function(){if(a.readyState==4){a.parentNode.removeChild(a)}else{setTimeout(arguments.callee,10)}})()}else{a.parentNode.replaceChild(aO(a),a)}}function aO(b){var d=ar("div");if(ah.win&&ah.ie){d.innerHTML=b.innerHTML}else{var e=b.getElementsByTagName(aD)[0];if(e){var a=e.childNodes;if(a){var f=a.length;for(var c=0;c<f;c++){if(!(a[c].nodeType==1&&a[c].nodeName=="PARAM")&&!(a[c].nodeType==8)){d.appendChild(a[c].cloneNode(true))}}}}}return d}function aA(e,g,c){var d,a=aS(c);if(ah.wk&&ah.wk<312){return d}if(a){if(typeof e.id==aq){e.id=c}if(ah.ie&&ah.win){var f="";for(var i in e){if(e[i]!=Object.prototype[i]){if(i.toLowerCase()=="data"){g.movie=e[i]}else{if(i.toLowerCase()=="styleclass"){f+=' class="'+e[i]+'"'}else{if(i.toLowerCase()!="classid"){f+=" "+i+'="'+e[i]+'"'}}}}}var h="";for(var j in g){if(g[j]!=Object.prototype[j]){h+='<param name="'+j+'" value="'+g[j]+'" />'}}a.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+f+">"+h+"</object>";ag[ag.length]=e.id;d=aS(e.id)}else{var b=ar(aD);b.setAttribute("type",aE);for(var k in e){if(e[k]!=Object.prototype[k]){if(k.toLowerCase()=="styleclass"){b.setAttribute("class",e[k])}else{if(k.toLowerCase()!="classid"){b.setAttribute(k,e[k])}}}}for(var l in g){if(g[l]!=Object.prototype[l]&&l.toLowerCase()!="movie"){aQ(b,l,g[l])}}a.parentNode.replaceChild(b,a);d=b}}return d}function aQ(b,d,c){var a=ar("param");a.setAttribute("name",d);a.setAttribute("value",c);b.appendChild(a)}function aw(a){var b=aS(a);if(b&&b.nodeName=="OBJECT"){if(ah.ie&&ah.win){b.style.display="none";(function(){if(b.readyState==4){aT(a)}else{setTimeout(arguments.callee,10)}})()}else{b.parentNode.removeChild(b)}}}function aT(a){var b=aS(a);if(b){for(var c in b){if(typeof b[c]=="function"){b[c]=null}}b.parentNode.removeChild(b)}}function aS(a){var c=null;try{c=aL.getElementById(a)}catch(b){}return c}function ar(a){return aL.createElement(a)}function aM(a,c,b){a.attachEvent(c,b);al[al.length]=[a,c,b]}function ao(a){var b=ah.pv,c=a.split(".");c[0]=parseInt(c[0],10);c[1]=parseInt(c[1],10)||0;c[2]=parseInt(c[2],10)||0;return(b[0]>c[0]||(b[0]==c[0]&&b[1]>c[1])||(b[0]==c[0]&&b[1]==c[1]&&b[2]>=c[2]))?true:false}function az(b,f,a,c){if(ah.ie&&ah.mac){return}var e=aL.getElementsByTagName("head")[0];if(!e){return}var g=(a&&typeof a=="string")?a:"screen";if(c){aH=null;an=null}if(!aH||an!=g){var d=ar("style");d.setAttribute("type","text/css");d.setAttribute("media",g);aH=e.appendChild(d);if(ah.ie&&ah.win&&typeof aL.styleSheets!=aq&&aL.styleSheets.length>0){aH=aL.styleSheets[aL.styleSheets.length-1]}an=g}if(ah.ie&&ah.win){if(aH&&typeof aH.addRule==aD){aH.addRule(b,f)}}else{if(aH&&typeof aL.createTextNode!=aq){aH.appendChild(aL.createTextNode(b+" {"+f+"}"))}}}function ay(a,c){if(!aI){return}var b=c?"visible":"hidden";if(ak&&aS(a)){aS(a).style.visibility=b}else{az("#"+a,"visibility:"+b)}}function ai(b){var a=/[\\\"<>\.;]/;var c=a.exec(b)!=null;return c&&typeof encodeURIComponent!=aq?encodeURIComponent(b):b}var aR=function(){if(ah.ie&&ah.win){window.attachEvent("onunload",function(){var a=al.length;for(var b=0;b<a;b++){al[b][0].detachEvent(al[b][1],al[b][2])}var d=ag.length;for(var c=0;c<d;c++){aw(ag[c])}for(var e in ah){ah[e]=null}ah=null;for(var f in swfobject){swfobject[f]=null}swfobject=null})}}();return{registerObject:function(a,e,c,b){if(ah.w3&&a&&e){var d={};d.id=a;d.swfVersion=e;d.expressInstall=c;d.callbackFn=b;aG[aG.length]=d;ay(a,false)}else{if(b){b({success:false,id:a})}}},getObjectById:function(a){if(ah.w3){return av(a)}},embedSWF:function(k,e,h,f,c,a,b,i,g,j){var d={success:false,id:e};if(ah.w3&&!(ah.wk&&ah.wk<312)&&k&&e&&h&&f&&c){ay(e,false);aj(function(){h+="";f+="";var q={};if(g&&typeof g===aD){for(var o in g){q[o]=g[o]}}q.data=k;q.width=h;q.height=f;var n={};if(i&&typeof i===aD){for(var p in i){n[p]=i[p]}}if(b&&typeof b===aD){for(var l in b){if(typeof n.flashvars!=aq){n.flashvars+="&"+l+"="+b[l]}else{n.flashvars=l+"="+b[l]}}}if(ao(c)){var m=aA(q,n,e);if(q.id==e){ay(e,true)}d.success=true;d.ref=m}else{if(a&&au()){q.data=a;ae(q,n,e,j);return}else{ay(e,true)}}if(j){j(d)}})}else{if(j){j(d)}}},switchOffAutoHideShow:function(){aI=false},ua:ah,getFlashPlayerVersion:function(){return{major:ah.pv[0],minor:ah.pv[1],release:ah.pv[2]}},hasFlashPlayerVersion:ao,createSWF:function(a,b,c){if(ah.w3){return aA(a,b,c)}else{return undefined}},showExpressInstall:function(b,a,d,c){if(ah.w3&&au()){ae(b,a,d,c)}},removeSWF:function(a){if(ah.w3){aw(a)}},createCSS:function(b,a,c,d){if(ah.w3){az(b,a,c,d)}},addDomLoadEvent:aj,addLoadEvent:aC,getQueryParamValue:function(b){var a=aL.location.search||aL.location.hash;if(a){if(/\?/.test(a)){a=a.split("?")[1]}if(b==null){return ai(a)}var c=a.split("&");for(var d=0;d<c.length;d++){if(c[d].substring(0,c[d].indexOf("="))==b){return ai(c[d].substring((c[d].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(aU){var a=aS(ac);if(a&&aJ){a.parentNode.replaceChild(aJ,a);if(ad){ay(ad,true);if(ah.ie&&ah.win){aJ.style.display="block"}}if(ap){ap(at)}}aU=false}}}}();Array.prototype.unique=function(){var c=[];var b=this.length;for(var e=0;e<b;e++){for(var d=e+1;d<b;d++){if(arguments[0].call(this,this[e],this[d])){d=++e}}c.push(this[e])}return c};Array.prototype.diff=function(){var e=this;var d=a2=null;var k=0;while(k<arguments.length){d=[];a2=arguments[k];var c=e.length;var b=a2.length;var h=true;for(var g=0;g<c;g++){for(var f=0;f<b;f++){if(arguments[1].call(this,e[g],a2[f])){h=false;break}}h?d.push(e[g]):h=true}e=d;k++}return d.unique(arguments[1])};var DateRange=Class.create({initialize:function(b,a){this.from=b;this.till=a},getDifference:function(e,a){var c=this.getArray(a);var b=e.getArray(a);var d=c.diff(b,function(g,f){return DateRange.compareDates(g,f,a)}.bind(this));return d},getArray:function(b){var d=[];var a=new Date();a.setTime(this.from.getTime());while(a<=this.till){var c=new Date();c.setTime(a.getTime());d.push(c);var e=new Date();e.setTime(a.getTime());a=e;if(b==Date.DAY){e.setDate(a.getDate()+1)}else{if(b==Date.HOUR){e.setHours(a.getHours()+1)}else{if(b==Date.MINUTE){e.setMinutes(a.getMinutes()+1)}else{if(b==Date.SECOND){e.setSeconds(a.getSeconds()+1)}}}}}return d},toString:function(){var a="[DateRange: From: "+this.from.toString()+" Till: "+this.till.toString()+"]";return a},getDiffRanges:function(c,b){var a=this.getDifference(c,b);return DateRange.detectRanges(a,b)},getLength:function(){return this.till.getTime()-this.from.getTime()}});DateRange.compareDates=function(b,a,d){var g=b.getYear()==a.getYear();var i=b.getMonth()==a.getMonth();var j=b.getDate()==a.getDate();var e=b.getHours()==a.getHours();var f=b.getMinutes()==a.getMinutes();var h=b.getSeconds()==a.getSeconds();var c=g&&i&&j;if(d==Date.DAY){return c}else{if(d==Date.HOUR){return c&&e}else{if(d==Date.MINUTE){return c&&e&&f}else{if(d==Date.SECOND){return c&&e&&f&&h}}}}};DateRange.detectRanges=function(a,d){var f=[];var e;for(var c=0;c<a.length;c++){if(e==null){e=a[c]}if(c==a.length-1||a[c+1].getTime()-a[c].getTime()>d){var b=new Date();b.setTime(e.getTime());var g=new Date();g.setTime(a[c].getTime());f.push(new DateRange(b,g));e=null}}return f};DateRange.getInterval=function(a){switch(a){case"second":return Date.SECOND;case"minute":return Date.MINUTE;case"hour":return Date.HOUR;case"day":return Date.DAY}};var DateRangeInterval={};DateRangeInterval.getInterval=function(a){if(a.getLength()<10*Date.MINUTE){return Date.SECOND}else{if(a.getLength()<3*Date.HOUR){return Date.MINUTE}else{if(a.getLength()<=3*Date.DAY){return Date.HOUR}else{return Date.DAY}}}};DateRangeInterval.formatDate=function(c,a){var b=this.getInterval(c);switch(b){case Date.SECOND:return a.strftime("%Y/%m/%d %H:%M:%S");break;case Date.MINUTE:return a.strftime("%Y/%m/%d %H:%M");break;case Date.HOUR:return a.strftime("%Y/%m/%d %H:%M");break;case Date.DAY:return a.strftime("%Y/%m/%d");break}return"no date"};DateRangeInterval.getAmtLabels=function(c){var b=this.getInterval(c);switch(b){case Date.SECOND:return 4;break;case Date.MINUTE:return 4;break;case Date.HOUR:return 4;break;case Date.DAY:var a=c.getLength()/Date.DAY;if(a==7){return 7}else{if(a==30){return 4}}break}return"no date"};var FlashProxy={websites:[],registerWebsite:function(a){this.websites.push(a)},handleFlashCommand:function(c,a){try{switch(c){case"connect":break;case"ping":this.pingRelatedWebsite(a);break}}catch(b){throw (b)}},pingRelatedWebsite:function(b){for(var a=0;a<this.websites.length;a++){if(this.websites[a].getHash()==b.currentTarget.uniqueHash){this.websites[a].handlePing(b)}}}};var StatGraph=Class.create({initialize:function(b,c,a){this.id=b;this.holder=$(b);this.holder.addClassName("graph");this.loader=new Loader();this.holder.appendChild(this.loader.holder);this.createZoom();this.chartId=b+"-chartholder";this.chartHolder=new Element("div",{id:this.chartId,"class":"chart"}).update("");this.holder.appendChild(this.chartHolder);this.callback=a&&a.callback?a.callback:null;if(!a||a.type==null){this.graph=new AreaGraph(this.chartHolder)}else{if(a.type=="sources"){this.graph=new SourcesGraph(this.chartHolder)}else{if(a.type=="bars"){this.graph=new BarGraph(this.chartHolder)}}}this.firstTime=true;this.stats=c},createZoom:function(){this.zoomElement=new GraphZoomElement({onChange:this.handleZoomLevelChanged.bind(this)});this.holder.appendChild(this.zoomElement.holder)},handleZoomLevelChanged:function(a){this.draw();this.doCallback()},doCallback:function(){if(this.callback){this.callback.call(this,this.zoomElement.getRange())}},draw:function(){this.loader.startLoading();this.stats.getRange(this.zoomElement.getRange(),DateRangeInterval.getInterval(this.zoomElement.getRange()),function(a){try{this.graph.draw(a,this.zoomElement.getRange());if(this.firstTime){this.doCallback()}this.firstTime=false}catch(b){}this.loader.stopLoading()}.bind(this))}});var AreaGraph=Class.create({initialize:function(a){this.chartHolder=a},draw:function(a,j){this.chartHolder.update("");var h=[];var c=[];var f=DateRangeInterval.getAmtLabels(j);var k=Math.ceil(a.length/f);var d=[];for(var g=0;g<a.length;g++){h.push(a[g].value);d.push(DateRangeInterval.formatDate(j,a[g].date)+" : "+a[g].value);if(g%k==k-1||g==0){c.push(DateRangeInterval.formatDate(j,a[g].date))}else{c.push("")}}var b={};if(BrowserDetect.browser=="Explorer"){b={grid:true,plot_padding:0,curve_amount:0,area_opacity:0.5,start_at_zero:true,label_rotation:0,font_size:11,colors:{visitors:"#00aeff"},background_color:"#fff",grid_color:"#ccf",draw_axis:false,}}else{b={grid:true,plot_padding:0,curve_amount:0,area_opacity:0.5,start_at_zero:true,stroke_width:3,label_rotation:0,font_size:11,colors:{visitors:"#00aeff"},background_color:"#fff",label_color:"#444",grid_color:"#ccf",markers:"value",draw_axis:false,labels:c,hide_empty_label_grid:true,datalabels:{visitors:function(i,l){return d[i]}},}}var e=new Grafico.AreaGraph(this.chartHolder,{visitors:h},b)}});var SourcesGraph=Class.create({initialize:function(a){this.chartHolder=a},draw:function(a,j){this.chartHolder.update("");var n=[];var k=[];var g=[];var d=[];var h=DateRangeInterval.getAmtLabels(j);var l=Math.ceil(a.length/h);var m=[],c=[],e=[];for(var f=0;f<a.length;f++){n.push(a[f].value.direct);k.push(a[f].value.search);g.push(a[f].value.referer);m.push(DateRangeInterval.formatDate(j,a[f].date)+" : "+a[f].value.direct+" direct");c.push(DateRangeInterval.formatDate(j,a[f].date)+" : "+a[f].value.referer+" referrer");e.push(DateRangeInterval.formatDate(j,a[f].date)+" : "+a[f].value.search+" search");if(f%l==l-1||f==0){d.push(DateRangeInterval.formatDate(j,a[f].date))}else{d.push("")}}var b={grid:true,plot_padding:0,curve_amount:0,area_opacity:0.5,start_at_zero:true,stroke_width:3,label_rotation:0,font_size:11,colors:{direct:"#77d4ff",search:"#00aeff",referer:"#0000ff"},background_color:"#fff",grid_color:"#ccf",draw_axis:false,hide_empty_label_grid:true,};b.datalabels={direct:function(i,o){return m[i]},search:function(i,o){return e[i]},referer:function(i,o){return c[i]}};b.labels=d;b.markers="value";b.label_color="#444";new Grafico.StackGraph(this.chartHolder,{direct:n,search:k,referer:g},b)}});var BarGraph=Class.create({initialize:function(a){this.chartHolder=a},draw:function(a,n){this.chartHolder.update("");var m=[];var d=[];var k=DateRangeInterval.getAmtLabels(n);var o=Math.ceil(a.length/k);var e=[];var f=[],c=[];var h=[],l=[];for(var j=0;j<a.length;j++){h.push(a[j].value.twitter);l.push(a[j].value.blogs);f.push(DateRangeInterval.formatDate(n,a[j].date)+" : "+a[j].value.twitter+" twitter");c.push(DateRangeInterval.formatDate(n,a[j].date)+" : "+a[j].value.blogs+" blogs");if(j%o==o-1||j==0){d.push(DateRangeInterval.formatDate(n,a[j].date))}else{d.push("")}}var b={colors:{twitter:"#00aeff",blogs:"#0000ff"},background_color:"#fff",grid_color:"#ccf"};b.labels=d;b.label_color="#444";b.datalabels={twitter:f,blogs:c};var g=new Grafico.StackedBarGraph(this.chartHolder,{twitter:h,blogs:l},b)}});var GraphZoomElement=Class.create({initialize:function(a){this.holder=new Element("div",{"class":"zoom"});this.currentWindow=Date.MINUTE;var d=new Date();var c=new Date();var b=a&&a.fromMinutes?a.fromMinutes:10;c.setMinutes(d.getMinutes()-b);this.range=new DateRange(c,d);if(a){if(a.onChange){this.onChange=a.onChange}}this.holder.update("");this.createScroll();this.createMenu()},needsUpdate:function(){return this.menu.selected()},getRange:function(){if(this.menu.selected()){return this.menu.getRange()}return this.range},createScroll:function(){var b=new Element("div",{"class":"scroll"});var c=new Element("a").update("&lt;&lt;");c.observe("click",function(){this.goBack(this.currentWindow)}.bind(this));b.appendChild(c);this.intervalSelect=new GraphIntervalSelect(function(d){this.setWindow(d);this.menu.deselect();this.doCallback()}.bind(this));b.appendChild(this.intervalSelect.holder);var a=new Element("a").update(">>");a.observe("click",function(){this.goForward(this.currentWindow)}.bind(this));b.appendChild(a);this.holder.appendChild(b)},createRangeSelector:function(){this.rangeSelector=new GraphRangeSelector();this.holder.appendChild(this.rangeSelector.holder)},createMenu:function(){this.menu=new GraphMenu(function(b,a){this.range=this.menu.getRange();this.setWindow(this.range.getLength());this.intervalSelect.select(this.range.getLength());this.doCallback()}.bind(this));this.menu.select(2);this.holder.appendChild(this.menu.holder)},goBack:function(a){this.menu.deselect();var c=this.range.from.copy();c.setTime(c.getTime()-a);var b=this.range.till.copy();b.setTime(b.getTime()-a);this.setRange(new DateRange(c,b))},setRange:function(a){this.range=a;this.doCallback()},goForward:function(a){this.menu.deselect();var c=this.range.from.copy();c.setTime(c.getTime()+a);var b=this.range.till.copy();b.setTime(b.getTime()+a);this.setRange(new DateRange(c,b))},setWindow:function(a){this.currentWindow=a;this.range.from.setTime(this.range.till.getTime()-this.currentWindow)},doCallback:function(){this.onChange.call(this)}});var GraphMenu=Class.create({initialize:function(a){this.callback=a;this.holder=new Element("div",{"class":"menu"});this.dropdown=new DropdownMenu();this.holder.appendChild(this.dropdown.menu);this.dropdown.addMenuItem("Last Minute",function(){this.selectLast(Date.MINUTE)}.bind(this));this.dropdown.addMenuItem("Last Hour",function(){this.selectLast(Date.HOUR)}.bind(this));this.dropdown.addMenuItem("Last 24 hours",function(){this.selectLast(Date.DAY)}.bind(this));this.dropdown.addMenuItem("Last 7 days",function(){this.selectLast(7*Date.DAY)}.bind(this));this.dropdown.addMenuItem("Last 30 days",function(){this.selectLast(30*Date.DAY)}.bind(this));this.addMonths();this.from=new Date();this.till=this.from.copy();this.updateFunction=this.updateLast.bind(this)},addMonths:function(){var a=new Date();var c=[];for(var b=0;b<4;b++){var d=a.getMonth();this.dropdown.addMenuItem(a.getMonthName(),function(e){this.selectMonth(e)}.bind(this,d));a.setMonth(a.getMonth()-1)}},select:function(a){this.dropdown.setItemSelected(a);this.interval=[Date.MINUTE,Date.HOUR,Date.DAY,7*Date.DAY,30*Date.DAY][a]},selectLast:function(a){this.interval=a;this.updateFunction=this.updateLast.bind(this);this.callback.call(this)},updateLast:function(){this.till=new Date();this.from=this.till.copy();this.from.setTime(this.from.getTime()-this.interval)},selectMonth:function(a){this.interval=30*Date.DAY;var b=new Date();this.from=new Date(b.getFullYear(),a,1);this.till=new Date(b.getFullYear(),a+1,1);this.updateFunction=null;this.callback.call(this)},getRange:function(b){if(this.updateFunction){this.updateFunction.call(this)}var a=new DateRange(this.from,this.till);return a},deselect:function(){this.dropdown.setItemSelected(-1)},selected:function(){return this.dropdown.selected!=null}});var GraphIntervalSelect=Class.create({initialize:function(a){this.callback=a;this.holder=new Element("div",{"class":"interval-select"});this.dropdown=new DropdownMenu();this.holder.appendChild(this.dropdown.menu);this.dropdown.addMenuItem("Minute",function(){this.selectInterval(Date.MINUTE)}.bind(this));this.dropdown.addMenuItem("Hour",function(){this.selectInterval(Date.HOUR)}.bind(this));this.dropdown.addMenuItem("Day",function(){this.selectInterval(Date.DAY)}.bind(this));this.dropdown.addMenuItem("Week",function(){this.selectInterval(7*Date.DAY)}.bind(this));this.dropdown.addMenuItem("Month",function(){this.selectInterval(30*Date.DAY)}.bind(this))},selectInterval:function(a){this.callback.call(this,a)},select:function(a){switch(a){case Date.MINUTE:this.dropdown.setItemSelected(0);break;case Date.HOUR:this.dropdown.setItemSelected(1);break;case Date.DAY:this.dropdown.setItemSelected(2);break;case 7*Date.DAY:this.dropdown.setItemSelected(3);break;case 30*Date.DAY:this.dropdown.setItemSelected(4);break;default:this.dropdown.setItemSelected(-1);break}}});var GraphRangeSelector=Class.create({initialize:function(){this.holder=new Element("div",{"class":"range-selector"});this.holder.appendChild(new Element("div",{"class":"label"}).update("From:"));this.from=new Element("div",{"class":"range-from"});this.holder.appendChild(this.from);this.holder.appendChild(new Element("div",{"class":"clear"}));this.holder.appendChild(new Element("div",{"class":"label"}).update("Till:"));this.till=new Element("div",{"class":"range-from"});this.holder.appendChild(this.till)},setRange:function(a){this.from.update(DateRangeInterval.formatDate(a,a.from));this.till.update(DateRangeInterval.formatDate(a,a.till))}});var Map=Class.create(EventDispatcher,{initialize:function(b,a){this.baseId=b;this.overlayId=a;this.setupBase();this.visitors=[];this.setDimensions();this.redraw();this.textFormat={font:"12px Fontin-Sans, Arial",fill:"#fff"}},setupBase:function(){var a=new Element("img",{src:"/images/earthmap1k.jpg",width:"100%",height:"100%"});$(this.baseId).appendChild(a)},redraw:function(){$(this.overlayId).update("");this.setDimensions();this.r=new Raphael(this.overlayId);for(var a=0;a<this.visitors.length;a++){this.drawVisitor(this.visitors[a],false)}this.frame=this.r.rect(10,10,200,40,5).attr({fill:"#fff",stroke:"#474747","stroke-width":2}).hide();this.frameText=this.r.text(60,10,"")},addVisitor:function(a){this.visitors.push(a);a.addEventListener("ping",this.handlePing.bind(this));a.addEventListener("remove",this.handleRemoveVisitor.bind(this));a.addEventListener("hover",this.handleHover.bind(this));a.addEventListener("unhover",this.handleUnhover.bind(this));this.drawVisitor(a,true)},handleHover:function(b){b.circle.animate({fill:"black"},100);this.showLabel=true;this.frame.show().animate({x:b.circle.attrs.cx,y:b.circle.attrs.cy},200);var a="Visitor from "+b.lastPing.city+", "+b.lastPing.country;this.frameText.attr({text:a}).show().animate({x:b.circle.attrs.cx+100,y:b.circle.attrs.cy+20},200)},handleUnhover:function(a){this.showLabel=false;a.circle.animate({fill:"#ffee00"},100);setTimeout(function(){if(this.showLabel){return}this.frame.hide();this.frameText.hide()}.bind(this),2000)},getDimensions:function(){return this.dimensions},setDimensions:function(){this.dimensions=$(this.baseId).getDimensions()},handlePing:function(a,b){a.circle.animate({fill:"#999999"},200,function(){a.circle.animate({fill:"#ffee00"})})},handleRemoveVisitor:function(b){b.circle.animate({r:0},500,function(){b.circle.remove()});for(var a=0;a<this.visitors.length;a++){if(this.visitors[a]==b){this.visitors.splice(a,1);return}}},drawVisitor:function(k,g){var h=this.getDimensions();var j=k.lastPing;var b=j.longitude;var e=j.latitude;var i=(b/180)*(h.width/2)+(h.width/2);var f=(-(e/90)*(h.height/2))+(h.height/2);var a=h.width/30;var d=g?500:0;k.circle=this.r.circle(i,f,0).animate({fill:"#ffee00","stroke-opacity":0.5,r:3},d);var c=this;k.circle.hover(function(l){k.hover()},function(l){k.unhover()})}});var Module=Class.create(EventDispatcher,{initialize:function(a,b,c){this.div=a;$(this.div).module=this;this.name=b;this.opened=true;$(this.div).select(".handle").each(function(d){d.observe("dblclick",function(f){if(this.maximized){this.minimize()}else{this.maximize()}}.bind(this))}.bind(this));$(this.div).select(".module-close").each(function(d){d.observe("click",function(f){this.close()}.bind(this))}.bind(this));$(this.div).select(".module-maximize").each(function(d){d.observe("click",function(f){this.maximize()}.bind(this))}.bind(this));$(this.div).select(".module-minimize").each(function(d){d.observe("click",function(f){this.minimize()}.bind(this))}.bind(this));this.placedInColumn=false;this.closable=true;this.redrawTime=100},redraw:function(){},open:function(){$(this.div).show();this.opened=true;this.redraw();$(this.div).fire("module:open")},close:function(){$(this.div).hide();this.opened=false;$(this.div).fire("module:close")},toggle:function(){if(!this.opened){this.open()}else{this.close()}},maximize:function(){$(this.div).fire("module:maximize");$(this.div).select(".module-maximize").each(function(a){a.setStyle({display:"none"})});$(this.div).select(".module-minimize").each(function(a){a.setStyle({display:"block"})});this.maximized=true;$("header-holder").setStyle({"z-index":"-1"})},minimize:function(){$(this.div).fire("module:minimize");$(this.div).select(".module-maximize").each(function(a){a.setStyle({display:"block"})});$(this.div).select(".module-minimize").each(function(a){a.setStyle({display:"none"})});this.maximized=false;$("header-holder").setStyle({"z-index":"10"})},getModuleId:function(a){return $(this.div+"-"+a)},timedRedraw:function(){if(this.dirty){this.redraw()}},setDirty:function(){this.dirty=true},listeningTo:function(a){return this.handlePing!=null},addListenerFor:function(a){if(this.listeningTo(a.id)){a.addEventListener("ping",this.handlePing.bind(this))}},isOpened:function(){return $(this.div)!=null&&this.getParentTab().visible()&&$(this.div).visible()},getParentTab:function(){var c=$(this.div).ancestors();for(var a=0;a<c.length;a++){var b=c[a];if(b.hasClassName("tab")){return b}}return null}});var NowOnlineModule=Class.create(Module,{initialize:function($super){this.website=StandaloneWebsite;$super("module-now-online","Now Online Module");this.dirty=true},redraw:function(){if(!this.isOpened()){return}this.getModuleId("now-online").update(parseInt(this.website.pingCollection.getAmountVisitors()));this.getModuleId("requests-per-second").update(this.website.pingCollection.getRequestsPerSecond())}});var WebsitesModule=Class.create(Module,{initialize:function($super,d,a,c,b){this.website_id=c;this.amountVisitorsOnline=b.pingCollection.getAmountVisitors();this.website=b;$super(d,""+a);this.chart=new StatGraph(this.div+"-holder",this.website.stats.visitors);this.setGraphDimensions();this.redraw()},setGraphDimensions:function(){this.width=this.getModuleId("holder").getWidth()-40;this.height=100},changeGraphPeriod:function(a){this.mode=a.currentTarget.value;this.drawChart(true)},setActiveStatRange:function(){switch(this.mode){case"minutes":return this.stats.minutes;case"hours":return this.stats.hours;case"days":return this.stats.days;case"pageviewsminutes":return this.website.pageViews.minutes;case"pageviewshours":return this.website.pageViews.hours;case"pageviewsdays":return this.website.pageViews.days}},maximize:function($super){$super();this.width=this.getModuleId("holder").getWidth()-40;this.height=this.getModuleId("holder").getHeight()-20;this.drawChart(true)},minimize:function($super){$super();this.setGraphDimensions();this.drawChart(true)},drawChart:function(a){if(a||this.chartDrawn==null||Util.getTime()-this.chartDrawn>10000){this.chart.draw();this.chartDrawn=Util.getTime()}},listeningTo:function(a){return a==this.website_id},redraw:function(){if(!this.isOpened()){return}this.drawChart();this.getModuleId("now-online").update(parseInt(this.website.pingCollection.getAmountVisitors()));this.getModuleId("reqs-per-sec").update(parseInt(this.website.pingCollection.getRequestsPerSecond()));this.getModuleId("this-hour").update(Util.formatNumber(this.website.stats.visitors.getThisHour()));this.getModuleId("this-day").update(Util.formatNumber(this.website.stats.visitors.getThisDay()));this.getModuleId("this-month").update(Util.formatNumber(this.website.stats.visitors.getThisMonth()));this.getModuleId("pageviews-this-hour").update(Util.formatNumber(this.website.stats.pageviews.getThisHour()));this.getModuleId("pageviews-this-day").update(Util.formatNumber(this.website.stats.pageviews.getThisDay()));this.getModuleId("pageviews-this-month").update(Util.formatNumber(this.website.stats.pageviews.getThisMonth()))},handlePing:function(a,b){this.setDirty()}});var StatsModule=Class.create(Module,{initialize:function($super,c,a,d,b){this.stats=d;$super(c,a);this.chart=new StatGraph(this.div+"-holder",d,b);this.redrawTime=60000;this.setDirty();this.redraw()},redraw:function(){if(!this.isOpened()){return}this.drawChart();this.setDirty()},maximize:function($super){$super();this.width=this.getModuleId("holder").getWidth()-40;this.height=this.getModuleId("holder").getHeight()-20;this.drawChart(true)},minimize:function($super){$super();this.setGraphDimensions();this.drawChart(true)},drawChart:function(a){if(!this.isOpened()){return}if(a||this.chartDrawn==null||(Util.getTime()-this.chartDrawn>this.redrawTime&&this.chart.zoomElement.needsUpdate())){this.chartDrawn=Util.getTime();this.chart.draw()}}});var UniquesModule=Class.create(StatsModule,{initialize:function($super,a,b){$super(a,"Unique Visitors",StandaloneWebsite.stats.visitors)}});var PageviewsModule=Class.create(StatsModule,{initialize:function($super,a,b){$super(a,"Page Views",StandaloneWebsite.stats.pageviews)}});var ActivityModule=Class.create(Module,{initialize:function($super,c,a){this.lastPings=a;$super(c,"Activity Module");this.stack=new AnimatedStack(this.div+"-last-pings",5);this.elementHeight=90;for(var b=this.lastPings.length-1;b>=0;b--){this.lastPings[b].ping.date=new Date(Date.parse(this.lastPings[b].ping.date));this.stack.addElement(this.createElement(this.lastPings[b].ping,this.odd),this.elementHeight,true);this.odd=!this.odd}},createElement:function(b,f){var c=f?"odd":"";var a=new Element("div",{"class":"entry "+c});a.appendChild(new Element("img",{src:"/images/page-icon.png","class":"page-image"}));var e=new Element("div",{"class":"holder"});var d=new Element("div",{"class":"meta"});d.appendChild(new Element("div",{"class":"date"}).update(Util.padDigits(b.date.getHours(),2)+":"+Util.padDigits(b.date.getMinutes(),2)+"."+Util.padDigits(b.date.getSeconds(),2)));d.appendChild(new Element("div",{"class":"ip"}).update((b.city==""?"":b.city+", ")+b.country+"<br />"+b.ip));d.appendChild(new Element("div",{"class":"clear"}));e.appendChild(d);e.appendChild(new Element("div",{"class":"title"}).update(Util.shorten(b.title,20)));e.appendChild(new Element("div",{"class":"page"}).update(new Element("a",{href:b.page,target:"_blank",title:b.page}).update(Util.shorten(b.page,30))));e.appendChild(new Element("div",{"class":"refererdesc"}).update("Referer:"));e.appendChild(new Element("div",{"class":"referer"}).update(new Element("a",{href:b.referer,target:"_blank",title:b.referer}).update(Util.shorten(b.referer,40))));a.appendChild(e);return a},minimize:function($super){$super();this.stack.stack=[];this.getModuleId("last-pings").update("")},handlePing:function(a,c){this.stack.max=this.getMax();var b=this.createElement(c,!this.odd);this.odd=!this.odd;this.stack.addElement(b,this.elementHeight);this.getModuleId("reqspersecond").update(a.pingCollection.getRequestsPerSecond())},getMax:function(){return this.maximized?10:5}});var TopModule=Class.create(Module,{initialize:function($super,b,a,c){$super(b,a);this.topItems=[];this.maxTimeAgo=300;this.getModuleId("select").observe("change",this.handleSelectBoxChanged.bind(this));this.topItems=c.sorted},handleSelectBoxChanged:function(a){this.maxTimeAgo=a.currentTarget.value;this.redraw()},redraw:function(){if(!this.isOpened()){return}this.getModuleId("content").update("");var c=new Element("div");var a=this.topItems.length>40?40:this.topItems.length;for(var b=0;b<a;b++){c.appendChild(this.createElement(this.topItems[b]))}this.getModuleId("content").appendChild(c);this.dirty=false},handlePing:function(a,b){this.setDirty()}});var TrafficSourcesModule=Class.create(StatsModule,{initialize:function($super,a,b){$super(a,"Unique Visitors",StandaloneWebsite.stats.sources,{type:"sources",callback:this.rangeUpdated.bind(this)})},rangeUpdated:function(a){this.dispatchEvent("updateRange")}});var SyncedModule=Class.create(Module,{initialize:function($super,b,a){$super(b,"Unique Visitors");this.parentModule=a;this.parentModule.addEventListener("updateRange",this.update.bind(this))},getUrl:function(){return""},update:function(){var a=this.parentModule.chart.zoomElement.getRange();var b=this.getUrl();new Ajax.Request(b,{method:"get",parameters:{from:a.from.toJSON(),till:a.till.toJSON()},onComplete:function(d,c){this.handleData(d.responseJSON)}.bind(this)})},handleData:function(a){this.getModuleId("holder").update("");this.data=a;this.refresh()}});var TopSourcesModule=Class.create(SyncedModule,{initialize:function($super,c,b,a){this.url=b;$super(c,a)},getUrl:function(){return this.url},refresh:function(){var e=$H(this.data).sortBy(function(g){return g[1]});if(e.length==0){this.noData()}for(var d=e.length-1;d>=0;d--){var b=e[d][1];var a=e[d][0];var c=new Element("div",{"class":"topitem"});var f=this.getNameElement(Util.shorten(a,40));c.appendChild(f);c.appendChild(new Element("div",{"class":"hits"}).update(b));c.appendChild(new Element("div",{"class":"clear"}));this.getModuleId("holder").appendChild(c)}},noData:function(){this.getModuleId("holder").update("<i>No data found.</i>")},getNameElement:function(a){return new Element("a",{"class":"name",target:"_blank",href:a}).update(a)}});var ReferersModule=Class.create(TopSourcesModule,{initialize:function($super,b,a){$super(b,StandaloneWebsite.stats.getTopReferersUrl(),a)}});var SearchTermsModule=Class.create(TopSourcesModule,{initialize:function($super,b,a){$super(b,StandaloneWebsite.stats.getTopSearchtermsUrl(),a)},getNameElement:function(a){return new Element("div",{"class":"name"}).update(a)}});var ContentModule=Class.create(TopModule,{initialize:function($super){$super("module-content","Top Content Module",StandaloneWebsite.content);this.setDirty()},createElement:function(a){var c=new Element("div",{"class":"topitem"});var b=a.groupedByField;if(b==""||b==undefined){c.appendChild((new Element("div",{"class":"groupedby"})).update(Util.shorten(b,40)))}else{c.appendChild((new Element("div",{"class":"groupedby"})).update(new Element("a",{href:b,target:"_blank"}).update(Util.shorten(b,40))))}c.appendChild((new Element("div",{"class":"hits"})).update(a.hits));c.appendChild((new Element("div",{"class":"clear"})));return c},handlePing:function(a,b){a.content.addPing(b);this.setDirty()}});var TopCountriesModule=Class.create(TopModule,{initialize:function($super){$super("module-topcountries","Top Countries Module",StandaloneWebsite.topCountries)},createElement:function(a){var b=new Element("div",{"class":"topitem"});b.appendChild((new Element("div",{"class":"groupedby"})).update(a.groupedByField));b.appendChild((new Element("div",{"class":"hits"})).update(a.hits));b.appendChild((new Element("div",{"class":"clear"})));return b},handlePing:function(a,b){a.topCountries.addPing(b);this.setDirty()}});var TopCitiesModule=Class.create(TopModule,{initialize:function($super){$super("module-topcities","Top Cities Module",StandaloneWebsite.topCities)},createElement:function(a){var b=new Element("div",{"class":"topitem"});b.appendChild((new Element("div",{"class":"groupedby"})).update(a.groupedByField));b.appendChild((new Element("div",{"class":"hits"})).update(a.hits));b.appendChild((new Element("div",{"class":"clear"})));return b},handlePing:function(a,b){a.topCities.addPing(b);this.setDirty()}});var GoogleMapsModule=Class.create(Module,{initialize:function($super,b){$super(b,"Geolocations Module");this.initializeMaps();this.initializeVisitorListening();for(var a=0;a<StandaloneWebsite.pingCollection.visitorCollection.visitors.length;a++){this.handleNewVisitor(StandaloneWebsite.pingCollection.visitorCollection.visitors[a])}},redraw:function(){if(!this.isOpened()){return}this.map.redraw();this.setDirty()},initializeMaps:function(){this.map=new Map(this.div+"-canvas",this.div+"-overlay");this.map.addEventListener("visitorHover",this.handleVisitorHover.bind(this));this.map.addEventListener("visitorUnhover",this.handleVisitorHover.bind(this))},maximize:function($super){$super();this.map.redraw()},minimize:function($super){$super();this.map.redraw()},initializeVisitorListening:function(){StandaloneWebsite.pingCollection.visitorCollection.addEventListener("newvisitor",this.handleNewVisitor.bind(this))},handleVisitorHover:function(a){if(a){$("map_status").update(a.lastPing.ip+" visited: "+a.lastPing.page)}else{$("map_status").update("")}},handleNewVisitor:function(a){this.map.addVisitor(a);return}});var DemoTrialModule=Class.create(Module,{initialize:function($super){$super("module-demo-trial","Demo/Trial Module");this.closable=false}});var VisitorListModule=Class.create(Module,{initialize:function($super){$super("module-visitorlist","Visitor List Module");this.stack=new AnimatedStack("module-visitorlist-list",10);this.odd=false;StandaloneWebsite.pingCollection.visitorCollection.addEventListener("newvisitor",this.handleNewVisitor.bind(this));this.elementHeight=90;for(var a=0;a<StandaloneWebsite.pingCollection.visitorCollection.visitors.length;a++){this.handleNewVisitor(StandaloneWebsite.pingCollection.visitorCollection.visitors[a],true)}},createElement:function(a){},handleNewVisitor:function(b,c){var a=new VisitorElement(b,this.odd);this.odd=!this.odd;b.addEventListener("ping",a.handlePing.bind(a));b.addEventListener("remove",function(){this.stack.removeElement(a.element)}.bind(this));this.stack.addElement(a.element,this.elementHeight,c)},handlePing:function(a,b){this.amountVisitorsOnline=a.pingCollection.getAmountVisitors();this.getModuleId("amtvisitors").update(this.amountVisitorsOnline);this.dirty=true}});var HitsModule=Class.create(Module,{initialize:function($super,b,a,c){$super(b,a);this.stack=new Stack(b+"-list",5);this.maxId=-1;if(c){this.addHits(c)}this.getModuleId("refresh").observe("click",this.requestNewHits.bind(this));setTimeout(this.requestNewHits.bind(this),3000)},addHits:function(b){for(var a=b.length-1;a>=0;a--){this.addHit(b[a])}},addHit:function(b){this.getModuleId("info").update("");var c=this.getObject(b);this.maxId=c.id>this.maxId?c.id:this.maxId;var a=this.createHit(b);this.stack.addElement(a.element)},requestNewHits:function(){var a=this.getUpdateUrl();a+="?since_id="+this.maxId;this.getModuleId("loader").show();new Ajax.Request(a,{method:"get",onComplete:function(){this.getModuleId("loader").hide()}.bind(this)})}});var BlogItemElement=Class.create({initialize:function(a){this.element=new Element("div",{"class":"bloghit"});this.element.appendChild(new Element("div",{"class":"title"}).appendChild(new Element("a",{href:a.url,target:"_blank"}).update(a.title)));this.element.appendChild(new Element("div",{"class":"clear"}));this.element.appendChild(new Element("div",{"class":"domain"}).update(a.domain));this.element.appendChild(new Element("div",{"class":"created_at"}).update(Util.formatDate(new Date(Date.parse(a.created_at_utc)))));this.element.appendChild(new Element("div",{"class":"clear"}));this.element.appendChild(new Element("div",{"class":"bcontent"}).update(a.content))}});var SocialHitElement=Class.create({initialize:function(b){this.element=new Element("div",{"class":"twitterhit"});var a=false;if(b.image_link&&b.image_link.length>0){var c=new Element("div",{"class":"avatar"});c.appendChild(new Element("img",{src:b.image_link,width:"48",height:"48"}));this.element.appendChild(c)}else{a=true}var d=new Element("div",{"class":"holder"});d.appendChild(new Element("div",{"class":"created_at"}).update(prettyDate(new Date(Date.parse(b.created_at_utc)))));d.appendChild(new Element("div",{"class":"title"}).appendChild(new Element("a",{href:b.link,target:"_blank"}).update(b.title)));if(a){d.appendChild(new Element("div",{"class":"domain"}).update(b.domain))}d.appendChild(new Element("p",{"class":"bcontent"}).update(b.text));this.element.appendChild(d);this.element.appendChild(new Element("div",{"class":"clear"}))}});var GoalsModule=Class.create(Module,{initialize:function($super,a){$super("module-goals","Goal Module")}});var AGoalModule=Class.create(Module,{initialize:function($super,c,a,b,d){this.stats=d;this.regexp=b;$super("module-agoal-"+c,a);this.chart=new StatGraph(this.div+"-holder",this.stats);this.setDirty();this.redraw()},redraw:function($super){if(!this.isOpened()){return}this.chart.draw();this.getModuleId("this-hour").update(Util.formatNumber(this.stats.getThisHour()));this.getModuleId("this-day").update(Util.formatNumber(this.stats.getThisDay()));this.getModuleId("this-month").update(Util.formatNumber(this.stats.getThisMonth()));this.setDirty()},maximize:function($super){$super();this.width=this.getModuleId("holder").getWidth()-40;this.height=this.getModuleId("holder").getHeight()-20;this.drawChart(true)},minimize:function($super){$super();this.setGraphDimensions();this.drawChart(true)},handlePing:function(a,b){if(b.page.search(new RegExp(this.regexp))!=-1){this.stats.addPing(b);this.setDirty()}}});var FeedbackModule=Class.create(Module,{initialize:function($super,a){$super("module-feedback","Feedback Module")}});var OverviewModule=Class.create(Module,{initialize:function($super,a,b){$super(a,"Overview Module");this.setDirty()},redraw:function(){if(!this.isOpened()){return}this.getModuleId("this-hour").update(Util.formatNumber(StandaloneWebsite.stats.visitors.getThisHour()));this.getModuleId("this-day").update(Util.formatNumber(StandaloneWebsite.stats.visitors.getThisDay()));this.getModuleId("this-month").update(Util.formatNumber(StandaloneWebsite.stats.visitors.getThisMonth()));this.getModuleId("pageviews-this-hour").update(Util.formatNumber(StandaloneWebsite.stats.pageviews.getThisHour()));this.getModuleId("pageviews-this-day").update(Util.formatNumber(StandaloneWebsite.stats.pageviews.getThisDay()));this.getModuleId("pageviews-this-month").update(Util.formatNumber(StandaloneWebsite.stats.pageviews.getThisMonth()))}});var SocialHitsModule=Class.create(SyncedModule,{initialize:function($super,b,a){$super(b,a)},refresh:function(){if(this.data.length==0){this.noData()}for(var a=0;a<this.data.length;a++){try{var b=this.createHit(this.data[a]);this.getModuleId("holder").appendChild(b)}catch(c){console.info(c)}}},createHit:function(b){var a=new SocialHitElement(b.social_hit);return a.element},noData:function(){this.getModuleId("holder").update("<i>No data found.</i>")},getNameElement:function(a){return new Element("a",{"class":"name",target:"_blank",href:a}).update(a)}});var TwitterSearchModule=Class.create(SocialHitsModule,{initialize:function($super,b,a){$super(b,a)},getUrl:function(){return"/websites/"+StandaloneWebsite.uniqueHash+"/social_searches/"+this.parentModule.socialSearchId+"/twitter"}});var BlogSearchModule=Class.create(SocialHitsModule,{initialize:function($super,b,a){$super(b,a)},getUrl:function(){return"/websites/"+StandaloneWebsite.uniqueHash+"/social_searches/"+this.parentModule.socialSearchId+"/blogs"}});var SocialSearchTermsModule=Class.create(Module,{initialize:function($super,b,a){this.terms=a;this.selectedId=this.terms.length>0?this.terms[0].social_search.id:-1;$super(b,"Social search terms module");this.refresh()},refresh:function(){this.getModuleId("terms").update("");for(var c=0;c<this.terms.length;c++){var a=this.terms[c].social_search;var d=this.selectedId==a.id?"selected":"";var b=new Element("a",{"class":d}).update(a.search_term);b.termId=a.id;b.observe("click",this.selectTerm.bind(this));this.getModuleId("terms").appendChild(b);if(c!=(this.terms.length-1)){this.getModuleId("terms").appendChild(new Element("span").update(", "))}}},selectTerm:function(a){this.selectedId=parseInt(a.currentTarget.termId);lSocialSearchStatsModule.loadSocialSearchId(this.selectedId);this.refresh()},addTerm:function(a){this.terms.push(a);this.selectedId=a.social_search.id;lSocialSearchStatsModule.loadSocialSearchId(this.selectedId);this.refresh()},destroyCurrent:function(){var c="/websites/"+StandaloneWebsite.uniqueHash+"/social_searches/"+this.selectedId;new Ajax.Request(c,{method:"delete",onComplete:function(e,d){}.bind(this)});var a=-1;for(var b=0;b<this.terms.length;b++){if(this.terms[b].social_search.id==this.selectedId){a=b}}this.terms.splice(a,1);this.selectedId=this.terms.length>0?this.terms[0].social_search.id:-1;this.refresh()}});var SocialSearchStatsModule=Class.create(StatsModule,{initialize:function($super,a,b){this.superC=$super;this.id=a;if(b!=null){this.init(b)}},init:function(a){this.setSocialSearchId(a);this.superC(this.id,"Social Search Stats",this.social_searches,{type:"bars",callback:this.rangeUpdated.bind(this),fromMinutes:Date.DAY/60});this.initialized=true},setSocialSearchId:function(a){this.socialSearchId=a;this.social_searches=new SyncedDataSource("/websites/"+StandaloneWebsite.uniqueHash+"/stats/social_searches?social_search_id="+this.socialSearchId,[])},loadSocialSearchId:function(a){if(!this.initialized){this.init(a)}else{this.setSocialSearchId(a);this.chart.stats=this.social_searches;this.drawChart(true)}this.dispatchEvent("updateRange")},rangeUpdated:function(a){this.dispatchEvent("updateRange")}});var ModuleManager=Class.create({initialize:function(a){this.modules=[];this.websites=[]},register:function(a){this.modules.push(a);for(var b=0;b<this.websites.length;b++){a.addListenerFor(this.websites[b])}$(a.div).observe("module:open",this.handleModuleOpened.bind(this));$(a.div).observe("module:close",this.handleModuleClosed.bind(this));$(a.div).observe("module:maximize",this.handleModuleMaximize.bind(this));$(a.div).observe("module:minimize",this.handleModuleMinimize.bind(this))},placeInColumn:function(a,b){$(this.sortables[b]).appendChild($(a.div));a.placedInColumn=true},createSortableColumns:function(){for(var a=0;a<this.sortables.length;a++){var b=$(this.sortables[a]);Sortable.create(b,{containment:this.sortables,constraint:false,tag:"div",only:"module",dropOnEmpty:true,handle:"handle",hoverclass:"block-hover",onUpdate:function(){if(this.initialized){this.settingsUpdated()}}.bind(this)})}},removeSortableColumns:function(){for(var a=0;a<this.sortables.length;a++){var b=$(this.sortables[a]);Sortable.destroy(b)}},toggleModules:function(){$(this.div).toggle()},handleMouseOver:function(){this.mouseOver=true},handleMouseOut:function(){this.mouseOver=false},handleHideModuleManager:function(){if(!this.mouseOver){$(this.div).fade()}},init:function(){this.initialized=true;this.initPingListeners();this.activateWebsiteProxies();this.initTimer()},initTimer:function(){this.interval=setInterval(this.handleTimerTick.bind(this),2000)},handleTimerTick:function(){for(var a=0;a<this.modules.length;a++){if(this.modules[a].opened){this.modules[a].timedRedraw()}}},getModuleDiv:function(){return $(this.div).select(".modules")[0]},initLinks:function(){this.links=[];this.getModuleDiv().update("");for(var c=0;c<this.modules.length;c++){var d=this.modules[c];if(!d.closable){continue}var b=new Element("div");b.checkbox=new Element("input",{type:"checkbox"});b.checkbox.module=d;b.appendChild(b.checkbox);var a=new Element("span").update(d.name);a.module=d;b.appendChild(a);b.module=d;if(d.opened){b.addClassName("open");b.checkbox.checked=true}b.observe("click",function(f){f.target.module.toggle()}.bind(this));d.link=b;this.links.push(b);this.getModuleDiv().appendChild(b)}},initListeners:function(){for(var a=0;a<this.modules.length;a++){var b=this.modules[a];$(b.div).observe("module:open",this.handleModuleOpened.bind(this));$(b.div).observe("module:close",this.handleModuleClosed.bind(this));$(b.div).observe("module:maximize",this.handleModuleMaximize.bind(this));$(b.div).observe("module:minimize",this.handleModuleMinimize.bind(this))}},initPingListeners:function(){for(var c=0;c<this.websites.length;c++){var b=this.websites[c];for(var a=0;a<this.modules.length;a++){this.modules[a].addListenerFor(b)}}},activateWebsiteProxies:function(){for(var b=0;b<this.websites.length;b++){for(var a=0;a<this.modules.length;a++){if(this.modules[a].listeningTo(this.websites[b].id)&&this.modules[a].opened){this.websites[b].initProxy()}}}},handleModuleOpened:function(a){if(a.target.module.link){a.target.module.link.addClassName("open");a.target.module.link.checkbox.checked=true}if(this.initialized){this.settingsUpdated()}this.activateWebsiteProxies()},handleModuleClosed:function(a){a.target.module.link.removeClassName("open");a.target.module.link.checkbox.checked=false;if(this.initialized){this.settingsUpdated()}},handleModuleMaximize:function(b){b.target.addClassName("module-maximized");b.target.setStyle({position:"fixed"});b.target.ancestors()[0].setStyle({position:""});b.target.setStyle({"z-index":"100"});for(var a=0;a<this.modules.length;a++){if(b.target!=$(this.modules[a].div)){$(this.modules[a].div).setStyle({display:"none"})}}},handleModuleMinimize:function(b){b.target.removeClassName("module-maximized");b.target.setStyle({position:"relative"});for(var a=0;a<this.modules.length;a++){if(this.modules[a].opened){$(this.modules[a].div).setStyle({display:"block"})}}},settingsUpdated:function(){var b=[];for(var a=0;a<this.sortables.length;a++){var d=$(this.sortables[a]);var c=d.select(".module");enabledModIds=[];c.each(function(e){if(e.style.display!="none"){enabledModIds.push(e.id)}});b.push(enabledModIds)}if(this.url!=""){new Ajax.Request(this.url,{parameters:{settings:b.toJSON()}})}},getModuleById:function(b){for(var a=0;a<this.modules.length;a++){if(this.modules[a].div==b){return this.modules[a]}}},loadSettings:function(){if(!this.settings){for(var b=0;b<this.modules.length;b++){this.placeInColumn(this.modules[b],0);this.modules[b].open()}return}for(var b=0;b<this.modules.length;b++){if(!this.modules[b].placedInColumn&&!this.modules[b].closable){this.placeInColumn(this.modules[b],0);this.modules[b].open()}}for(var b=0;b<this.settings.length;b++){for(var a=0;a<this.settings[b].length;a++){var d=this.getModuleById(this.settings[b][a]);try{this.placeInColumn(d,b);d.open()}catch(c){if(console){console.info(c)}}}}for(var b=0;b<this.modules.length;b++){if(!this.modules[b].placedInColumn){this.placeInColumn(this.modules[b],0)}}},handlePing:function(c){var a;for(var b=0;b<this.websites.length;b++){if(c.target.sHash==this.websites[b].uniqueHash){a=this.websites[b];a.addPing(c)}}for(var b=0;b<this.modules.length;b++){var d=this.modules[b];if(d.handlePing!=null){d.handlePing(this.pingCollection,c)}}},addWebsite:function(a){this.websites.push(a)}});var PingCollection=Class.create({initialize:function(b,a){this.pings=a;this.timeCreated=Util.getTime();this.visitorCollection=new VisitorCollection(b)},addPing:function(a){this.pings.push({ping:a});this.visitorCollection.addPing(a)},getAmountVisitors:function(){return this.visitorCollection.getAmount()},getRequestsPerSecond:function(){var b=0;var f=1000;for(var c=this.pings.length-1;c>0;c--){if(Util.getTime()-this.pings[c].ping.time_received<f){b++}}var h=[];for(var g=0;g<1;g++){var a=0;for(var c=this.pings.length-1;c>0;c--){var d=Util.getTime()-g*1000;var e=Util.getTime()-(g+1)*1000;if(this.pings[c].ping.time_received>e&&this.pings[c].ping.time_received<d){a++}if(this.pings[c].ping.time_received<e){break}}h[g]=a}return h[0]}});var PingReferers=["http://www.google.com/ig","http://www.reddit.com","http://news.ycombinator.com"];var PingTitles=["Home page","Dashboard page","Account Page"];var PingBrowsers=["firefox","chrome","ie"];var PingBrowserVersions=["3","4"];var PingPages=["http://www.demo.com/test","http://www.demo.com/signup"];var IpInfo=[{continent:"US",city:"West Orange",latitude:40.7919,country_code:"US",country:"United States",ip:"68.45.56.97",longitude:-74.264},{continent:"GB",city:"Burntwood",latitude:52.6833,country_code:"GB",country:"United Kingdom",ip:"81.149.224.174",longitude:-1.90000000000001},{continent:"BE",city:"Brussels",latitude:50.8333,country_code:"BE",country:"Belgium",ip:"158.169.131.14",longitude:4.33330000000001},{continent:"ES",city:"Madrid",latitude:40.4,country_code:"ES",country:"Spain",ip:"212.145.148.170",longitude:-3.6833},{continent:"BE",city:"Namur",latitude:50.4667,country_code:"BE",country:"Belgium",ip:"91.86.0.29",longitude:4.86670000000001},{continent:"SE",city:"Vallentuna",latitude:59.5333,country_code:"SE",country:"Sweden",ip:"192.71.148.10",longitude:18.0833},{continent:"GB",city:"London",latitude:51.5,country_code:"GB",country:"United Kingdom",ip:"217.171.129.73",longitude:-0.116700000000009},{continent:"ID",city:"Medan",latitude:3.58330000000001,country_code:"ID",country:"Indonesia",ip:"125.162.35.90",longitude:98.6667},{continent:"HU",city:"Budapest",latitude:47.5,country_code:"HU",country:"Hungary",ip:"213.16.71.199",longitude:19.0833},{continent:"DE",city:"Kuppenheim",latitude:48.8333,country_code:"DE",country:"Germany",ip:"84.56.238.245",longitude:8.25},{continent:"LT",city:"Vilnius",latitude:54.6833,country_code:"LT",country:"Lithuania",ip:"79.132.170.149",longitude:25.3167},{continent:"FR",city:"Lavardac",latitude:44.1833,country_code:"FR",country:"France",ip:"90.60.102.213",longitude:0.300000000000011},{continent:"IT",city:"Carini",latitude:38.1333,country_code:"IT",country:"Italy",ip:"79.18.160.23",longitude:13.1833},{continent:"NO",city:"Oslo",latitude:59.9167,country_code:"NO",country:"Norway",ip:"64.255.180.97",longitude:10.75},{continent:"BE",city:"Brussels",latitude:50.8333,country_code:"BE",country:"Belgium",ip:"81.246.23.14",longitude:4.33330000000001},{continent:"HU",city:"Kaposv?r",latitude:46.3667,country_code:"HU",country:"Hungary",ip:"94.248.152.59",longitude:17.8},{continent:"GB",city:"Coventry",latitude:52.4167,country_code:"GB",country:"United Kingdom",ip:"92.10.223.196",longitude:-1.55000000000001},{continent:"HU",city:"Budapest",latitude:47.5,country_code:"HU",country:"Hungary",ip:"145.236.68.197",longitude:19.0833},{continent:"FR",city:"Vitry-sur-seine",latitude:48.7833,country_code:"FR",country:"France",ip:"85.168.139.79",longitude:2.40000000000001},{continent:"US",city:"Amarillo",latitude:35.1743,country_code:"US",country:"United States",ip:"64.218.115.159",longitude:-101.9293},{continent:"FI",city:"Nokia",latitude:61.4667,country_code:"FI",country:"Finland",ip:"192.100.130.229",longitude:23.5},{continent:"HU",city:"R?koskereszt?r",latitude:47.4833,country_code:"HU",country:"Hungary",ip:"94.21.199.112",longitude:19.25},{continent:"PL",city:"Warsaw",latitude:52.25,country_code:"PL",country:"Poland",ip:"83.31.245.48",longitude:21},{continent:"BE",city:"Berchem",latitude:50.7833,country_code:"BE",country:"Belgium",ip:"217.136.57.183",longitude:3.5},{continent:"IN",city:"Pune",latitude:18.5333,country_code:"IN",country:"India",ip:"203.197.88.53",longitude:73.8667},{continent:"IT",city:"Rome",latitude:41.9,country_code:"IT",country:"Italy",ip:"85.18.216.77",longitude:12.4832},{continent:"SG",city:"Singapore",latitude:1.29310000000001,country_code:"SG",country:"Singapore",ip:"218.186.12.241",longitude:103.8558},{continent:"BE",city:"Sint-joris-winge",latitude:50.9167,country_code:"BE",country:"Belgium",ip:"62.235.176.14",longitude:4.86670000000001},{continent:"HU",city:"Sz?kesfeh?rv?r",latitude:47.2,country_code:"HU",country:"Hungary",ip:"92.249.234.63",longitude:18.4167},{continent:"US",city:"",latitude:38,country_code:"US",country:"United States",ip:"216.220.208.126",longitude:-97},{continent:"GB",city:"Barnet",latitude:51.65,country_code:"GB",country:"United Kingdom",ip:"90.208.188.142",longitude:-0.199999999999989},{continent:"HU",city:"Veszpr?m",latitude:47.1,country_code:"HU",country:"Hungary",ip:"89.135.30.1",longitude:17.9167},{continent:"US",city:"San Jose",latitude:37.3422,country_code:"US",country:"United States",ip:"64.255.164.65",longitude:-121.9052},{continent:"RS",city:"",latitude:44,country_code:"RS",country:"Serbia",ip:"82.114.69.24",longitude:21},{continent:"BE",city:"Antwerpen",latitude:51.2167,country_code:"BE",country:"Belgium",ip:"195.207.101.112",longitude:4.41669999999999},{continent:"MY",city:"",latitude:2.5,country_code:"MY",country:"Malaysia",ip:"180.72.106.24",longitude:112.5},{continent:"US",city:"Centereach",latitude:40.8732,country_code:"US",country:"United States",ip:"24.184.135.56",longitude:-73.0812},{continent:"CY",city:"Nicosia",latitude:35.1667,country_code:"CY",country:"Cyprus",ip:"217.175.220.183",longitude:33.3667},{continent:"TR",city:"Kocaeli",latitude:40.7669,country_code:"TR",country:"Turkey",ip:"85.99.59.108",longitude:29.9169},{continent:"IE",city:"Wicklow",latitude:52.975,country_code:"IE",country:"Ireland",ip:"89.124.235.230",longitude:-6.04939999999999},{continent:"NZ",city:"New Plymouth",latitude:-39.0667,country_code:"NZ",country:"New Zealand",ip:"125.239.226.54",longitude:174.0833},{continent:"BE",city:"Hasselt",latitude:50.9333,country_code:"BE",country:"Belgium",ip:"81.83.7.105",longitude:5.33330000000001},{continent:"BE",city:"Gent",latitude:51.05,country_code:"BE",country:"Belgium",ip:"78.22.163.84",longitude:3.7167},{continent:"HU",city:"Budapest",latitude:47.5,country_code:"HU",country:"Hungary",ip:"88.209.202.83",longitude:19.0833},{continent:"GB",city:"Newbury",latitude:51.4,country_code:"GB",country:"United Kingdom",ip:"212.183.140.100",longitude:-1.3167},{continent:"FI",city:"Nokia",latitude:61.4667,country_code:"FI",country:"Finland",ip:"192.100.130.229",longitude:23.5},{continent:"HU",city:"P?cs",latitude:46.0833,country_code:"HU",country:"Hungary",ip:"212.92.5.163",longitude:18.2332},{continent:"HU",city:"Budapest",latitude:47.5,country_code:"HU",country:"Hungary",ip:"213.16.71.199",longitude:19.0833},{continent:"AU",city:"Chatswood",latitude:-33.8,country_code:"AU",country:"Australia",ip:"110.33.40.105",longitude:151.1833},{continent:"LT",city:"Kaunas",latitude:54.9,country_code:"LT",country:"Lithuania",ip:"88.222.50.217",longitude:23.9},{continent:"BE",city:"Groot-bijgaarden",latitude:50.8667,country_code:"BE",country:"Belgium",ip:"89.202.151.130",longitude:4.25},{continent:"GB",city:"Preston",latitude:53.7667,country_code:"GB",country:"United Kingdom",ip:"78.150.170.108",longitude:-2.7167},{continent:"BE",city:"Brussels",latitude:50.8333,country_code:"BE",country:"Belgium",ip:"158.169.131.14",longitude:4.33330000000001},{continent:"FR",city:"Vitry-sur-seine",latitude:48.7833,country_code:"FR",country:"France",ip:"85.168.139.79",longitude:2.40000000000001},{continent:"BE",city:"Geel",latitude:51.1667,country_code:"BE",country:"Belgium",ip:"78.21.224.139",longitude:5},{continent:"NO",city:"Oslo",latitude:59.9167,country_code:"NO",country:"Norway",ip:"64.255.180.195",longitude:10.75},{continent:"CA",city:"Hamilton",latitude:43.25,country_code:"CA",country:"Canada",ip:"76.64.63.180",longitude:-79.8333},{continent:"CA",city:"London",latitude:42.9833,country_code:"CA",country:"Canada",ip:"99.254.71.9",longitude:-81.25},{continent:"NO",city:"",latitude:62,country_code:"NO",country:"Norway",ip:"94.246.127.57",longitude:10},{continent:"RS",city:"Beograd",latitude:44.8186,country_code:"RS",country:"Serbia",ip:"188.2.189.132",longitude:20.4681},{continent:"BE",city:"Antwerpen",latitude:51.2167,country_code:"BE",country:"Belgium",ip:"195.207.101.112",longitude:4.41669999999999},{continent:"US",city:"Merrick",latitude:40.6632,country_code:"US",country:"United States",ip:"24.188.122.232",longitude:-73.553},{continent:"RS",city:"Senta",latitude:45.9275,country_code:"RS",country:"Serbia",ip:"79.101.141.55",longitude:20.0772},{continent:"MK",city:"Skopje",latitude:42,country_code:"MK",country:"Macedonia, the Former Yugoslav Republic of",ip:"79.125.232.73",longitude:21.4333},{continent:"AU",city:"Sydenham",latitude:-37.7,country_code:"AU",country:"Australia",ip:"58.178.167.200",longitude:144.7667},{continent:"CA",city:"Laval",latitude:45.6,country_code:"CA",country:"Canada",ip:"66.131.253.80",longitude:-73.7333},{continent:"BE",city:"Brussels",latitude:50.8333,country_code:"BE",country:"Belgium",ip:"87.65.186.97",longitude:4.33330000000001},{continent:"IE",city:"Dublin",latitude:53.3331,country_code:"IE",country:"Ireland",ip:"93.107.5.202",longitude:-6.24889999999999},{continent:"BE",city:"Brussels",latitude:50.8333,country_code:"BE",country:"Belgium",ip:"217.136.223.189",longitude:4.33330000000001},{continent:"HU",city:"Budapest",latitude:47.5,country_code:"HU",country:"Hungary",ip:"146.110.157.38",longitude:19.0833},{continent:"IT",city:"Zanica",latitude:45.6333,country_code:"IT",country:"Italy",ip:"93.144.138.180",longitude:9.6833},{continent:"HU",city:"Budapest",latitude:47.5,country_code:"HU",country:"Hungary",ip:"94.21.160.222",longitude:19.0833},{continent:"PH",city:"Philippine",latitude:16.45,country_code:"PH",country:"Philippines",ip:"112.205.10.92",longitude:120.55},{continent:"HU",city:"Budapest",latitude:47.5,country_code:"HU",country:"Hungary",ip:"78.131.22.179",longitude:19.0833},{continent:"BE",city:"Sint-joris-winge",latitude:50.9167,country_code:"BE",country:"Belgium",ip:"62.235.176.14",longitude:4.86670000000001},{continent:"HU",city:"Budapest",latitude:47.5,country_code:"HU",country:"Hungary",ip:"213.16.71.199",longitude:19.0833},{continent:"IT",city:"Leghorn",latitude:43.55,country_code:"IT",country:"Italy",ip:"78.12.94.180",longitude:10.3167},{continent:"MK",city:"Skopje",latitude:42,country_code:"MK",country:"Macedonia, the Former Yugoslav Republic of",ip:"85.30.112.62",longitude:21.4333},{continent:"US",city:"Danville",latitude:36.6184,country_code:"US",country:"United States",ip:"67.187.11.70",longitude:-79.5372},{continent:"BE",city:"Brussels",latitude:50.8333,country_code:"BE",country:"Belgium",ip:"194.78.74.202",longitude:4.33330000000001},{continent:"BE",city:"Mariakerke",latitude:51.0667,country_code:"BE",country:"Belgium",ip:"81.83.4.132",longitude:3.6833},{continent:"US",city:"New York",latitude:40.8006,country_code:"US",country:"United States",ip:"160.39.180.229",longitude:-73.9653},{continent:"ZA",city:"Parow",latitude:-33.9,country_code:"ZA",country:"South Africa",ip:"198.54.202.210",longitude:18.6},{continent:"AU",city:"Surry Hills",latitude:-33.8861,country_code:"AU",country:"Australia",ip:"121.216.26.240",longitude:151.2144},{continent:"BE",city:"Mechelen",latitude:51.0333,country_code:"BE",country:"Belgium",ip:"78.20.66.253",longitude:4.4667},{continent:"HU",city:"Buda?rs",latitude:47.45,country_code:"HU",country:"Hungary",ip:"213.16.76.202",longitude:18.9667},{continent:"BE",city:"Brussels",latitude:50.8333,country_code:"BE",country:"Belgium",ip:"194.78.185.97",longitude:4.33330000000001},{continent:"GB",city:"",latitude:54,country_code:"GB",country:"United Kingdom",ip:"149.254.182.243",longitude:-2},{continent:"BE",city:"Brussels",latitude:50.8333,country_code:"BE",country:"Belgium",ip:"87.65.186.97",longitude:4.33330000000001},{continent:"BE",city:"Brussels",latitude:50.8333,country_code:"BE",country:"Belgium",ip:"194.78.74.202",longitude:4.33330000000001},{continent:"BE",city:"Brussels",latitude:50.8333,country_code:"BE",country:"Belgium",ip:"194.78.74.202",longitude:4.33330000000001},{continent:"US",city:"",latitude:38,country_code:"US",country:"United States",ip:"99.67.86.130",longitude:-97},{continent:"BE",city:"Brussels",latitude:50.8333,country_code:"BE",country:"Belgium",ip:"109.128.36.165",longitude:4.33330000000001},{continent:"IN",city:"Bombay",latitude:18.975,country_code:"IN",country:"India",ip:"114.143.59.226",longitude:72.8258},{continent:"MY",city:"Cheras",latitude:3.05000000000001,country_code:"MY",country:"Malaysia",ip:"60.50.61.89",longitude:101.7667},{continent:"BE",city:"Sint-laureins",latitude:51.25,country_code:"BE",country:"Belgium",ip:"78.21.177.183",longitude:3.51669999999999},{continent:"IT",city:"Ancona",latitude:43.6333,country_code:"IT",country:"Italy",ip:"87.7.71.76",longitude:13.5},{continent:"LV",city:"Ventspils",latitude:57.3894,country_code:"LV",country:"Latvia",ip:"78.84.230.56",longitude:21.5606},{continent:"MK",city:"Skopje",latitude:42,country_code:"MK",country:"Macedonia, the Former Yugoslav Republic of",ip:"79.125.232.73",longitude:21.4333},{continent:"US",city:"",latitude:38,country_code:"US",country:"United States",ip:"66.32.50.107",longitude:-97}];var PingSimulator=Class.create({initialize:function(a){this.uids=[];this.hashes=[];for(var b=0;b<a.length;b++){this.hashes.push(a[b].sHash)}},getRandomHash:function(){var a=this.getRandomElement(IpInfo);return{currentTarget:{uniqueHash:this.getRandomElement(this.hashes)},ip:a.ip,country:a.country,country_code:a.country_code,city:a.city,continent:a.continent,uid:a.ip,time_received:Util.getTime(),time:Util.getTime()-10,date:new Date(),latitude:a.latitude,longitude:a.longitude,referer:this.getRandomReferer(),title:this.getRandomElement(PingTitles),page:this.getRandomElement(PingPages),browser:this.getRandomElement(PingBrowsers),browser_version:this.getRandomElement(PingBrowserVersions)}},getRandomUid:function(){if(Math.random()>0.7||this.uids.length==0){var a="abcdefghijklmnopqrstuvwxyz123456";var c="";for(var b=0;b<6;b++){c+=this.getRandomElement(a)}this.uids.push(c)}return this.getRandomElement(this.uids);return c},getRandomReferer:function(){if(Math.random()>0.9){var a="abcdefghijklmnopqrstuvwxyz123456";var c="/";for(var b=0;b<3;b++){c+=this.getRandomElement(a)}PingReferers.push(this.getRandomElement(PingReferers)+c)}if(Math.random()>0.3){return this.getRandomElement(PingReferers)}return""},getRandomIp:function(){var a=[0,1,2,3,4,5,6,7,8,9];lIp="";for(var b=0;b<9;b++){lIp+=this.getRandomElement(a);if(b%3==2&&b!=8){lIp+="."}}return lIp},getRandomElement:function(b){var a=parseInt(Math.random()*(b.length));return b[a]},start:function(){setInterval(this.doRequest.bind(this),500)},doRequest:function(){if(Math.random()>0.7){FlashProxy.handleFlashCommand("ping",this.getRandomHash())}}});var TopItems=Class.create({initialize:function(b,a,c){this.top=c;this.sorted=this.top;this.collection=b;this.callback=a;this.sort()},addPing:function(b){var a;if(a=this.hasItem(b)){a.hits+=1}else{a={groupedByField:this.callback.call(this,b),hits:1};this.sorted.push(a)}this.sort()},hasItem:function(b){for(var a=0;a<this.sorted.length;a++){if(this.sorted[a].groupedByField==this.callback.call(this,b)){return this.sorted[a]}}return null},sort:function(){this.sorted.sort(function(d,c){return c.hits-d.hits})}});var Referers=Class.create(TopItems,{initialize:function($super,c,b){var d=[];for(var a in b){d.push({groupedByField:a,hits:b[a]})}$super(c,function(e){return e.referer},d)}});var Content=Class.create(TopItems,{initialize:function($super,c,b){var d=[];for(var a in b){d.push({groupedByField:a,hits:b[a]})}$super(c,function(e){return e.page},d)}});var TopCities=Class.create(TopItems,{initialize:function($super,c,b){var d=[];for(var a in b){d.push({groupedByField:a,hits:b[a]})}$super(c,function(e){return e.city},d)}});var TopCountries=Class.create(TopItems,{initialize:function($super,c,b){var d=[];for(var a in b){d.push({groupedByField:a,hits:b[a]})}$super(c,function(e){return e.country},d)}});var Stack=Class.create({initialize:function(a,b){this.holder=a;this.max=b;this.stack=[]},addElement:function(b){$(this.holder).insert({top:b});this.stack.unshift(b);for(var a=this.max;a<this.stack.length;a++){var c=this.stack[a];$(this.holder).removeChild(c);this.stack.splice(a,1)}},removeElement:function(b){for(var a=0;a<this.stack.length;a++){if(this.stack[a]==b){$(this.holder).removeChild(b);this.stack.splice(a,1);return}}}});var Stats=Class.create({initialize:function(a){this.hash=a;this.visitors=new SyncedDataSource("/websites/"+a+"/stats/visitors",[]);this.pageviews=new SyncedDataSource("/websites/"+a+"/stats/pageviews",[]);this.sources=new SyncedDataSource("/websites/"+a+"/stats/sources",[])},getTopReferersUrl:function(){return"/websites/"+this.hash+"/stats/topreferers"},getTopSearchtermsUrl:function(){return"/websites/"+this.hash+"/stats/topsearchterms"}});var SyncedDataSource=Class.create({initialize:function(a,b){this.url=a;this.data={day:[],hour:[],minute:[],second:[]}},getIntervalString:function(a){var b="day";switch(a){case Date.HOUR:b="hour";break;case Date.DAY:b="day";break;case Date.MINUTE:b="minute";break;case Date.SECOND:b="second";break}return b},getRange:function(h,f,b){var j=this.getIntervalString(f);var d=this.getData(j);var a=this.getLoadedRange(d);var c=a==null?[h]:h.getDiffRanges(a,f);if(c.length==0){b.call(this,this.getDataInRange(d,h))}else{var g=[];for(var e=0;e<c.length;e++){this.requestRange(c[e],j,d,function(){g.push(c[e]);if(g.length==c.length){b.call(this,this.getDataInRange(d,h))}})}}},getDataInRange:function(c,d){var b=[];for(var a=0;a<c.length;a++){var e=Date.parse(c[a].date);if(e>=d.from&&e<=d.till){b.push(c[a])}}return b},requestRange:function(f,b,e,a){if(b=="second"&&f.getLength()<10*Date.SECOND){var g=f.getArray(DateRange.getInterval(b));for(var c=0;c<g.length;c++){e.push({date:g[c],value:0})}a.call(this);return}var d=this.url;new Ajax.Request(d,{method:"get",parameters:{from:f.from.toJSON(),till:f.till.toJSON(),interval:b},onComplete:function(i,h){this.addData(e,b,i.responseJSON);a.call(this)}.bind(this)})},parseDate:function(b,a){var c=Date.parseSpecialDate(a);c.setTime(c.getTime()-Date.getUTCOffset());return c},addData:function(e,c,b){for(var d=0;d<b.length;d++){var a={date:this.parseDate(c,b[d].date),value:b[d].value};if(this.dataContainsDate(e,a.date,DateRange.getInterval(c))==-1){e.push(a)}}e.sort(function(g,f){return Date.parse(g.date)-Date.parse(f.date)})},dataContainsDate:function(d,a,c){for(var b=0;b<d.length;b++){if(DateRange.compareDates(d[b].date,a,c)){return b}}return -1},getLoadedRange:function(a){if(a.length==0){return null}return new DateRange(a[0].date,a[a.length-1].date)},getData:function(a){return this.data[a]},addPing:function(f){for(var b in this.data){var d=this.data[b];var c=this.dataContainsDate(d,f.date,DateRange.getInterval(b));if(c==-1){if(d.length>0){var a=new DateRange(d[d.length-1].date,f.date);var g=a.getArray(DateRange.getInterval(b));for(var e=0;e<g.length;e++){d.push({date:g[e],value:(e==g.length-1)?1:0})}}else{}}else{d[c].value+=1}}},getThis:function(a){lIndex=this.dataContainsDate(this.getData(a),new Date(),DateRange.getInterval(a));if(lIndex==-1){return 0}return this.getData(a)[lIndex].value},getThisHour:function(){return this.getThis("hour")},getThisDay:function(){return this.getThis("day")},getThisMonth:function(){var c=0;var a=new Date();var d=new Date(a.getFullYear(),a.getMonth(),1);var e=new Date(a.getFullYear(),a.getMonth(),31);for(var b=0;b<this.data.day.length;b++){if(this.data.day[b].date>d&&this.data.day[b].date<e){c+=this.data.day[b].value}}return c}});var TabManager={loadedTabs:["dashboard"],currentTab:"dashboard",isLoading:false,loadNewTab:function(a){if(this.isLoading){return false}var b=this.tabUrls[a];window.location.hash=a;this.currentTab=a;this.isLoading=true;if(this.tabLoaded(a)){this.startLoading();this.hideAllTabs();this.getTabElement(a).show();this.selectTabItem(a);this.stopLoading();this.isLoading=false}else{this.startLoading();new Ajax.Request(b,{method:"get",onComplete:function(c){this.stopLoading();this.isLoading=false;if(c.status!=200){return}this.hideAllTabs();this.getTabElement(a).show();this.selectTabItem(a);this.loadedTabs.push(a);this.isLoading=false}.bind(this),onFailure:function(c){this.stopLoading()}.bind(this),update:"tabcontainer"})}},loadTabInHashTag:function(){if(this.hasHashTag()&&this.getHashTag()!=this.currentTab){this.loadNewTab(window.location.hash.substring(1,window.location.hash.length))}},getHashTag:function(){return window.location.hash.substring(1,window.location.hash.length)},hasHashTag:function(){return window.location.hash!=""},tabLoaded:function(a){for(var b=0;b<this.loadedTabs.length;b++){if(this.loadedTabs[b]==a){return true}}return false},selectTabItem:function(a){for(var b in this.tabUrls){if(b==a){$("tab-item-"+b).addClassName("selected")}else{$("tab-item-"+b).removeClassName("selected")}}},hideAllTabs:function(){for(var a=0;a<this.loadedTabs.length;a++){this.getTabElement(this.loadedTabs[a]).hide()}},startLoading:function(){$("tabloader").show()},stopLoading:function(){$("tabloader").hide();$("tabcontainer").show()},getTabElement:function(a){return $("tab-"+a)}};var Visitor=Class.create(EventDispatcher,{initialize:function(a,b,c){this.uid=a;this.timeFirstVisit=b;this.amountPages=1;this.timeLastVisit=c.time_received;this.lastPing=c},getTimeSinceFirstVisit:function(){return Util.getTime()-this.timeFirstVisit},getTimeSinceLastVisit:function(){return Util.getTime()-this.timeLastVisit},addPing:function(a){this.amountPages++;this.timeLastVisit=a.time_received;this.lastPing=a;this.dispatchEvent("ping",this,a)},remove:function(){this.dispatchEvent("remove",this)},inactiveForTooLong:function(){return this.getTimeSinceLastVisit()>2*60000},hover:function(){this.dispatchEvent("hover",this)},unhover:function(){this.dispatchEvent("unhover",this)}});var VisitorCollection=Class.create(EventDispatcher,{initialize:function(b){this.visitors=[];for(var d=0;d<b.length;d++){var a=b[d];var c=Date.parse(a.firstVisit);a.lastPing.ping.date=Date.parse(a.lastPing.ping.date);a.lastPing.ping.time_received=a.lastPing.ping.date;lVisitor=new Visitor(a.lastPing.ping.uid,c,a.lastPing.ping);this.visitors.push(lVisitor)}this.timeCreated=Util.getTime()},getAmount:function(){return this.visitors.length},addPing:function(b){var a=this.getVisitor(b.uid);if(!a){a=new Visitor(b.uid,b.time_received,b);this.visitors.push(a);this.dispatchEvent("newvisitor",a)}else{a.addPing(b)}this.removeInactiveVisitors()},getVisitor:function(b){for(var a=0;a<this.visitors.length;a++){if(this.visitors[a].uid==b){return this.visitors[a]}}},removeInactiveVisitors:function(){for(var a=0;a<this.visitors.length;a++){if(this.visitors[a].inactiveForTooLong()){this.visitors[a].remove();this.visitors.splice(a,1)}}}});var VisitorElement=Class.create({initialize:function(a,b){this.visitor=a;this.visitor.addEventListener("hover",this.handleHover.bind(this));this.visitor.addEventListener("unhover",this.handleUnhover.bind(this));this.odd=b;this.element=this.create();this.element.visitor_element=this;this.element.observe("mouseover",this.handleMouseOver.bind(this));this.element.observe("mouseout",this.handleMouseOut.bind(this));this.updateInfo()},create:function(){var d="visitor";if(this.odd){d+=" oddvisitor"}var c=new Element("div",{"class":d});c.appendChild(new Element("img",{src:"/images/visitor-icon.png",style:"float:left;height:50px"}));c.appendChild(new Element("div",{"class":"ip"}).update(this.visitor.lastPing.ip));c.appendChild(new Element("div",{"class":"country"}).update("Someone from: <strong>"+(this.visitor.lastPing.city==""?"":this.visitor.lastPing.city+", ")+this.visitor.lastPing.country+"</strong>"));var e=new Element("div",{style:"float:left"});this.lastPageElement=new Element("div",{"class":"page"});e.appendChild(this.lastPageElement);var a=new Element("div",{"class":"referer"}).update("Referer: <br />");a.appendChild(new Element("a",{href:this.visitor.lastPing.referer,target:"_blank",title:this.visitor.lastPing.referer}).update(Util.shorten(this.visitor.lastPing.referer,30)));e.appendChild(a);c.appendChild(e);var b=new Element("div",{style:"float:right"});this.amtPagesElement=new Element("div",{"class":"amtpages"});b.appendChild(this.amtPagesElement);this.onlineElement=new Element("div",{"class":"online"});b.appendChild(this.onlineElement);c.appendChild(b);c.appendChild(new Element("div",{"class":"clear"}));return c},handlePing:function(){this.updateInfo();this.element.highlight({duration:0.1})},updateInfo:function(){this.amtPagesElement.update(this.visitor.amountPages+" pages");this.lastPageElement.update("Last page: <br />");this.lastPageElement.appendChild(new Element("a",{href:this.visitor.lastPing.page,target:"_blank",title:this.visitor.lastPing.page}).update(Util.shorten(this.visitor.lastPing.page,30)));this.onlineElement.update(parseInt((Util.getTime()-this.visitor.timeFirstVisit)/1000)+"s online")},handleMouseOver:function(a){this.visitor.hover()},handleMouseOut:function(a){this.visitor.unhover()},handleHover:function(a){this.element.addClassName("visitor-active")},handleUnhover:function(a){this.element.removeClassName("visitor-active")}});var Website=Class.create(EventDispatcher,{initialize:function(d,f,c,g,e,b,a){this.id=d;this.sHash=g;this.uniqueHash=f;this.url=c;this.pingCollection=new PingCollection(b,a);this.stats=new Stats(this.uniqueHash);this.utcOffset=e;this.pingCollection.visitorCollection.addEventListener("newvisitor",this.handleNewVisitor.bind(this));Event.observe(window,"load",function(){this.initProxy();FlashProxy.registerWebsite(this);setInterval(this.update.bind(this),5000)}.bind(this))},update:function(){this.pingCollection.visitorCollection.removeInactiveVisitors()},getProxyId:function(){return"proxy-"+this.id},initProxy:function(){if(this.proxyInitialized){return}var b=new Element("div",{id:this.getProxyId(),style:"display:block"});document.body.appendChild(b);var a={};a.socketHost=Settings.flashvars.socketHost;a.socketPort=Settings.flashvars.socketPort;a.callback=Settings.flashvars.callback;a.serviceUrl=Settings.flashvars.serviceUrl;a.url=this.url;a.uniqueHash=this.sHash;swfobject.embedSWF("/flash/proxy.swf",this.getProxyId(),1,1,"10.0.0","/flash/playerProductInstall.swf",a,{});this.proxyInitialized=true},getHash:function(){return this.sHash},handlePing:function(a){this.pingCollection.addPing(a);this.dispatchEvent("ping",this,a);this.stats.pageviews.addPing(a)},handleNewVisitor:function(a){this.stats.visitors.addPing(a.lastPing)}});if(!Control){var Control={}}Control.Slider=Class.create();Control.Slider.prototype={initialize:function(d,a,b){var c=this;if(d instanceof Array){this.handles=d.collect(function(f){return $(f)})}else{this.handles=[$(d)]}this.track=$(a);this.options=b||{};this.axis=this.options.axis||"horizontal";this.increment=this.options.increment||1;this.step=parseInt(this.options.step||"1");this.range=this.options.range||$R(0,1);this.value=0;this.values=this.handles.map(function(){return 0});this.spans=this.options.spans?this.options.spans.map(function(e){return $(e)}):false;this.options.startSpan=$(this.options.startSpan||null);this.options.endSpan=$(this.options.endSpan||null);this.restricted=this.options.restricted||false;this.maximum=this.options.maximum||this.range.end;this.minimum=this.options.minimum||this.range.start;this.alignX=parseInt(this.options.alignX||"0");this.alignY=parseInt(this.options.alignY||"0");this.trackLength=this.maximumOffset()-this.minimumOffset();this.handleLength=this.isVertical()?(this.handles[0].offsetHeight!=0?this.handles[0].offsetHeight:this.handles[0].style.height.replace(/px$/,"")):(this.handles[0].offsetWidth!=0?this.handles[0].offsetWidth:this.handles[0].style.width.replace(/px$/,""));this.active=false;this.dragging=false;this.disabled=false;if(this.options.disabled){this.setDisabled()}this.allowedValues=this.options.values?this.options.values.sortBy(Prototype.K):false;if(this.allowedValues){this.minimum=this.allowedValues.min();this.maximum=this.allowedValues.max()}this.eventMouseDown=this.startDrag.bindAsEventListener(this);this.eventMouseUp=this.endDrag.bindAsEventListener(this);this.eventMouseMove=this.update.bindAsEventListener(this);this.handles.each(function(f,e){e=c.handles.length-1-e;c.setValue(parseFloat((c.options.sliderValue instanceof Array?c.options.sliderValue[e]:c.options.sliderValue)||c.range.start),e);Element.makePositioned(f);Event.observe(f,"mousedown",c.eventMouseDown)});Event.observe(this.track,"mousedown",this.eventMouseDown);Event.observe(document,"mouseup",this.eventMouseUp);Event.observe(document,"mousemove",this.eventMouseMove);this.initialized=true},dispose:function(){var a=this;Event.stopObserving(this.track,"mousedown",this.eventMouseDown);Event.stopObserving(document,"mouseup",this.eventMouseUp);Event.stopObserving(document,"mousemove",this.eventMouseMove);this.handles.each(function(b){Event.stopObserving(b,"mousedown",a.eventMouseDown)})},setDisabled:function(){this.disabled=true},setEnabled:function(){this.disabled=false},getNearestValue:function(a){if(this.allowedValues){if(a>=this.allowedValues.max()){return(this.allowedValues.max())}if(a<=this.allowedValues.min()){return(this.allowedValues.min())}var c=Math.abs(this.allowedValues[0]-a);var b=this.allowedValues[0];this.allowedValues.each(function(d){var e=Math.abs(d-a);if(e<=c){b=d;c=e}});return b}if(a>this.range.end){return this.range.end}if(a<this.range.start){return this.range.start}return a},setValue:function(b,a){if(!this.active){this.activeHandleIdx=a||0;this.activeHandle=this.handles[this.activeHandleIdx];this.updateStyles()}a=a||this.activeHandleIdx||0;if(this.initialized&&this.restricted){if((a>0)&&(b<this.values[a-1])){b=this.values[a-1]}if((a<(this.handles.length-1))&&(b>this.values[a+1])){b=this.values[a+1]}}b=this.getNearestValue(b);this.values[a]=b;this.value=this.values[0];this.handles[a].style[this.isVertical()?"top":"left"]=this.translateToPx(b);this.drawSpans();if(!this.dragging||!this.event){this.updateFinished()}},setValueBy:function(b,a){this.setValue(this.values[a||this.activeHandleIdx||0]+b,a||this.activeHandleIdx||0)},translateToPx:function(a){return Math.round(((this.trackLength-this.handleLength)/(this.range.end-this.range.start))*(a-this.range.start))+"px"},translateToValue:function(a){return((a/(this.trackLength-this.handleLength)*(this.range.end-this.range.start))+this.range.start)},getRange:function(b){var a=this.values.sortBy(Prototype.K);b=b||0;return $R(a[b],a[b+1])},minimumOffset:function(){return(this.isVertical()?this.alignY:this.alignX)},maximumOffset:function(){return(this.isVertical()?(this.track.offsetHeight!=0?this.track.offsetHeight:this.track.style.height.replace(/px$/,""))-this.alignY:(this.track.offsetWidth!=0?this.track.offsetWidth:this.track.style.width.replace(/px$/,""))-this.alignY)},isVertical:function(){return(this.axis=="vertical")},drawSpans:function(){var a=this;if(this.spans){$R(0,this.spans.length-1).each(function(b){a.setSpan(a.spans[b],a.getRange(b))})}if(this.options.startSpan){this.setSpan(this.options.startSpan,$R(0,this.values.length>1?this.getRange(0).min():this.value))}if(this.options.endSpan){this.setSpan(this.options.endSpan,$R(this.values.length>1?this.getRange(this.spans.length-1).max():this.value,this.maximum))}},setSpan:function(b,a){if(this.isVertical()){b.style.top=this.translateToPx(a.start);b.style.height=this.translateToPx(a.end-a.start+this.range.start)}else{b.style.left=this.translateToPx(a.start);b.style.width=this.translateToPx(a.end-a.start+this.range.start)}},updateStyles:function(){this.handles.each(function(a){Element.removeClassName(a,"selected")});Element.addClassName(this.activeHandle,"selected")},startDrag:function(c){if(Event.isLeftClick(c)){if(!this.disabled){this.active=true;var d=Event.element(c);var e=[Event.pointerX(c),Event.pointerY(c)];var a=d;if(a==this.track){var b=Position.cumulativeOffset(this.track);this.event=c;this.setValue(this.translateToValue((this.isVertical()?e[1]-b[1]:e[0]-b[0])-(this.handleLength/2)));var b=Position.cumulativeOffset(this.activeHandle);this.offsetX=(e[0]-b[0]);this.offsetY=(e[1]-b[1])}else{while((this.handles.indexOf(d)==-1)&&d.parentNode){d=d.parentNode}if(this.handles.indexOf(d)!=-1){this.activeHandle=d;this.activeHandleIdx=this.handles.indexOf(this.activeHandle);this.updateStyles();var b=Position.cumulativeOffset(this.activeHandle);this.offsetX=(e[0]-b[0]);this.offsetY=(e[1]-b[1])}}}Event.stop(c)}},update:function(a){if(this.active){if(!this.dragging){this.dragging=true}this.draw(a);if(navigator.appVersion.indexOf("AppleWebKit")>0){window.scrollBy(0,0)}Event.stop(a)}},draw:function(b){var c=[Event.pointerX(b),Event.pointerY(b)];var a=Position.cumulativeOffset(this.track);c[0]-=this.offsetX+a[0];c[1]-=this.offsetY+a[1];this.event=b;this.setValue(this.translateToValue(this.isVertical()?c[1]:c[0]));if(this.initialized&&this.options.onSlide){this.options.onSlide(this.values.length>1?this.values:this.value,this)}},endDrag:function(a){if(this.active&&this.dragging){this.finishDrag(a,true);Event.stop(a)}this.active=false;this.dragging=false},finishDrag:function(a,b){this.active=false;this.dragging=false;this.updateFinished()},updateFinished:function(){if(this.initialized&&this.options.onChange){this.options.onChange(this.values.length>1?this.values:this.value,this)}this.event=null}};