Difference between revisions of "MediaWiki:Common.js"

From Expat Wiki
Jump to navigation Jump to search
Line 8: Line 8:
 
   var h1 = 0xdeadbeef ^ seed,
 
   var h1 = 0xdeadbeef ^ seed,
 
       h2 = 0x41c6ce57 ^ seed;
 
       h2 = 0x41c6ce57 ^ seed;
 
+
  for (i = 0, ch; i < str.length; i++) {
 +
      ch = str.charCodeAt(i);
 +
      h1 = Math.imul(h1 ^ ch, 2654435761);
 +
      h2 = Math.imul(h2 ^ ch, 1597334677);
 +
  }
 +
  h1 = Math.imul(h1 ^ h1 >>> 16, 2246822507) ^ Math.imul(h2 ^ h2 >>> 13, 3266489909);
 +
  h2 = Math.imul(h2 ^ h2 >>> 16, 2246822507) ^ Math.imul(h1 ^ h1 >>> 13, 3266489909);
 +
  return 4294967296 * (2097151 & h2) + (h1 >>> 0);
 
};
 
};
  

Revision as of 19:17, 14 November 2021

/* Any JavaScript here will be loaded for all users on every page load. */

// == Google Analytics =========================================================


function cyrb53(str) {
   var seed = 0;
   var h1 = 0xdeadbeef ^ seed,
      h2 = 0x41c6ce57 ^ seed;
   for (i = 0, ch; i < str.length; i++) {
      ch = str.charCodeAt(i);
      h1 = Math.imul(h1 ^ ch, 2654435761);
      h2 = Math.imul(h2 ^ ch, 1597334677);
   }
   h1 = Math.imul(h1 ^ h1 >>> 16, 2246822507) ^ Math.imul(h2 ^ h2 >>> 13, 3266489909);
   h2 = Math.imul(h2 ^ h2 >>> 16, 2246822507) ^ Math.imul(h1 ^ h1 >>> 13, 3266489909);
   return 4294967296 * (2097151 & h2) + (h1 >>> 0);
};

var clientIP = "{$_SERVER['REMOTE_ADDR']}";
var validityInterval = Math.round (new Date() / 1000 / 3600 / 24 / 4);
var clientIDSource = clientIP + ";" + window.location.host + ";" + navigator.userAgent + ";" + navigator.language + ";" + validityInterval;
//var clientIDHashed = cyrb53(clientIDSource).toString(16);


(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');


ga('create', 'UA-158655997-1', {
   'storage': 'none',
   'clientId': 'clientIDHashed'
});
ga('set', 'anonymizeIp', true);
ga('send', 'pageview');


// == /Google Analytics =========================================================