/* Global site Javascript
 * Copyright (c) 2007, Canterbury City Council
 */

  function kliktrak_click3 (mode, x, y, sx, sy) {
    
    if (typeof XMLHttpRequest != "undefined") {
      req = new XMLHttpRequest ();
      mode = mode + "X";
    } else if (window.ActiveXObject) {
      req = new ActiveXObject ("Microsoft.XMLHTTP");
      mode = mode + "M";
    } else {
      return true;
    }
    req.open ("GET", "/kliktrak.php?mode=" + escape (mode) + "&url=" + escape (window.location) + "&x=" + escape (x) + "&y=" + escape (y) + "&sx=" + escape (sx) + "&sy=" + escape (sy), true);
    req.send (null);
    return true;
  }
  function kliktrak_click2 (mode, x, y) {
    if (window.innerWidth && window.innerHeight) return kliktrak_click3 (mode + "w", x, y, window.innerWidth, window.innerHeight);
    if (document.body.clientWidth && document.body.clientHeight) return kliktrak_click3 (mode + "b", x, y, document.body.clientWidth, document.body.clientHeight);
    if (document.documentElement.clientWidth && document.documentElement.clientHeight) return kliktrak_click3 (mode + "d", x, y, document.documentElement.clientWidth, document.documentElement.clientHeight);
    return kliktrak_click3 (mode, x, y, -1, -1);
  }
  function kliktrak_click (e) {
    if (e) {
      if (e.offsetX && e.offsetY) {
        x = e.offsetX;
        y = e.offsetY;
        p = null;
        if (e.srcElement) p = e.srcElement; else if (e.target) p = e.target;
        while (p && (p.style.position == '')) {
          if (p.offsetLeft) x += p.offsetLeft;
          if (p.offsetTop) y += p.offsetTop;
          p = p.offsetParent;
        }
        return kliktrak_click2 ("o", x, y);
      }
      if (e.clientX && e.clientY) {
        if (window.pageXOffset || window.pageYOffset) return kliktrak_click2 ("cp", e.clientX + window.pageXOffset, e.clientY + window.pageYOffset);
        if (document.body) {
          if (document.body.scrollLeft || document.body.scrollTop) return kliktrak_click2 ("cb", e.clientX + document.body.scrollLeft, e.clientY + document.body.scrollTop);
        }
        if (document.documentElement) {
          if (document.documentElement.scrollLeft || document.documentElement.scrollTop) return kliktrak_click2 ("cd", e.clientX + document.documentElement.scrollLeft, e.clientY + document.documentElement.scrollTop);
        }
        return kliktrak_click2 ("c", e.clientX, e.clientY);
      }
      return true;
    }
    if (window.event) return kliktrak_click (window.event);
    if (event) return kliktrak_click (event);
    return true;
  }
  document.onclick = kliktrak_click;