document.write('<'+'script type="text/javascript" id="ErrorLogger"><'+'/script>');
var ErrorLogger = {
 encode: encodeURIComponent || escape,
 releaseTime: 1000,
 releaseTimer: "",
 releaseURL: document.location.protocol + "//" + document.location.hostname + "/jslog.php?",
 srcElement: document.getElementById("ErrorLogger"),
 log: [],
 cache: {},
 catchError: function(){
  var a = arguments;
  ErrorLogger.logError({
   m: a[0],
   f: a[1],
   l: a[2],
   c: a.callee && a.callee.caller && a.callee.caller.name || null,
   h: document.location.href,
   a: navigator.userAgent,
   d: new Date().toUTCString()
  });
  return false;
 },
 logError: function(obj) {
  var a = "mfla", t="";
  for (var i=0; i<a.length; i++)
   t += obj[a.charAt(i)].toString();
  obj.x = this.xor(t);

  this.log[this.log.length] = this.cache[obj.x]
   ? { x: obj.x }
   : (this.cache[obj.x] = obj);

  clearTimeout(this.releaseTimer);
  this.releaseTimer = setTimeout(this.releaseLog, this.releaseTime);
 },
 releaseLog: function(){
  var log = ErrorLogger.log, cache = ErrorLogger.cache, t = {}, send = {};
  for (var i=0; i<log.length; i++) {
   if (t[log[i].x]) t[log[i].x].t++;
   else { t[log[i].x] = log[i]; log[i].t = 1 };
  }

  var s = "", k = 0, l = "mflchadxt";
  for (var i in t)
   if (!Object.prototype[i]) {
    for (var j=0; j<l.length; j++) {
     if (typeof t[i][l.charAt(j)] != "undefined")
      s += "e["+ k +"]["+ l.charAt(j) +"]="+ ErrorLogger.encode(t[i][l.charAt(j)]) +"&";
    }
    k++;
   }

  var script = document.createElement("script");
  script.src = ErrorLogger.releaseURL + s;
  ErrorLogger.srcElement.parentNode.insertBefore(script, ErrorLogger.srcElement);
  log.length = 0;
 },
 xor: function(a){
  var res = a.charCodeAt(0);
  for(var i=1; i < a.length; i++)
    res ^= a.charCodeAt(i);

  return res;
 }
};

window.onerror = ErrorLogger.catchError;