1 window.Perf = (function($, Perf) {
4 revUrl: 'stats/rev.php',
6 // should be defined before report or poll are run
9 report: function( data, after ) {
11 pathname: location.pathname,
13 agentFull: window.navigator.userAgent,
14 agentVersion: this.agentVersion()
17 $.post( this.reportUrl, data, after );
23 setInterval(function() {
24 $.get( self.revUrl, function( data ) {
26 // if there's a new revision refresh or currentRev isn't being set
27 if( self.currentRev && self.currentRev !== data ){
28 location.href = location.href;
34 setCurrentRev: function() {
37 $.get( self.revUrl, function( data ) {
38 self.currentRev = data;
43 var agent = window.navigator.userAgent;
45 for( name in this.agents ) {
46 if( agent.indexOf( this.agents[name] ) > -1 ) {
47 return this.agents[name];
54 agentVersion: function() {
55 var agent = window.navigator.userAgent;
57 agent.search(this.vRegexs[this.agent()] || "");
59 return RegExp.$1 ? RegExp.$1 : "0.0";
64 WP: "Windows Phone OS",
66 IPAD: "iPad; U; CPU OS",
67 BLACKBERRY: "BlackBerry"
73 Perf.vRegexs[Perf.agents.ANDROID] = /([0-9].[0-9])(.[0-9])?/;
74 Perf.vRegexs[Perf.agents.WP] = /Windows Phone OS ([0-9].[0-9]);/;
75 Perf.vRegexs[Perf.agents.IPHONE] = /iPhone OS ([0-9]_[0-9])/;
76 Perf.vRegexs[Perf.agents.IPAD] = /iPad; U; CPU OS ([0-9]_[0-9])/;
77 Perf.vRegexs[Perf.agents.BLACKBERRY] = /BlackBerry ([0-9]{4})/;
80 })(jQuery, window.Perf || {});