var klicklog = {
  base: 'http://klick.neuland-bfi.de/',
  isIE: document.uniqueID ? true : false,
  // Bookmarklet-Funktion, wird mit dem Namen des Mandanten aufgerufen, bspw:
  // javascript:window.klicklog.heatmap('mandantenname');void(0);
  heatmap: function(mandant, container) {
    var id = 'heatmap';
    var hmap = document.getElementById(id);
    var cont = klicklog.getContainer(container);
    var datestamp = klicklog.getDatestamp()
    if (hmap) {
			hmap.style.display = ('block' == hmap.style.display) ? 'none' : 'block';
		} else {
		  var body = document.getElementsByTagName('body')[0];
      var page = location.href.replace(/\W/g,'');
      var hmap = new Image();
      hmap.src = klicklog.base + mandant + '/' + page + '_' + datestamp + '.png';
      hmap.setAttribute('id', id);
      hmap.setAttribute('style', 'display:block;z-index:9999;position:absolute;');
      body.appendChild(hmap);
		}
		hmap.style.left = cont.offsetLeft + 'px';
		hmap.style.top = cont.offsetTop + 'px';
		return true;
  },
  // Logging-Funktion, erwartet, dass die Variable klicklog_mandant gesetzt wurde, bspw:
  // var klicklog_mandant = 'mandantenname';
  // var klicklog_container = 'wrapper';
  log: function(e) {
    var e = e || window.event;
    var cid = (typeof klicklog_container != 'undefined') ? klicklog_container : undefined;
    var c = klicklog.getContainer(cid);
    var x = ((klicklog.isIE) ? e.x + document.body.scrollLeft : e.pageX) - c.offsetLeft;
    var y = ((klicklog.isIE) ? e.y + document.body.scrollTop : e.pageY) - c.offsetTop;
    var url = klicklog.base + klicklog_mandant + '/klicklog.gif?x=' + x + '&y=' + y;
    var img = new Image();
    img.src = url;
    return true;
  },
  // Der Container ist die Begrenzung innerhalb der die Klicks gezählt werden
  getContainer: function(id) {
    return (typeof id != 'undefined') ?
      document.getElementById(id) :
      document.getElementsByTagName('body')[0];
  },
  // Datumsstempelgenerierung a la strftime('%Y%m%d')
  getDatestamp: function() {
    var date = new Date();
    var day = date.getDate();
    var mon = new Number(date.getMonth());
    mon += 1;
    var stamp = ""
    stamp += date.getFullYear();
    stamp += (mon < 10) ? "0" + mon : mon;
    stamp += (day < 10) ? "0" + day : day;
    return stamp;
  }
};

document.onmousedown = klicklog.log;