
window.onload = function() { attachDateEvents(); attachHrefEvents(); }
window.onunload = function() { sendOnUnload(); }

var params = "";
var linkhref = "";

function attachHrefEvents() {
  list_of_links = document.getElementsByTagName("a");
  for(i=0;i<list_of_links.length;i++){
    addEventToObject(list_of_links.item(i), 'onclick', saveLinkHref);
  }
}

function saveLinkHref() {
  linkhref = encodeURIComponent(this.href);
}

function attachDateEvents() {
  obj_id = window.document;
  addEventToObject(obj_id, 'onmousedown', sendCoordinates);
}

function addEventToObject(obj, evt, func) {
  var oldhandler = obj[evt];
  obj[evt] = (typeof obj[evt] != 'function') ? func : function(){oldhandler();func();};
}

function sendOnUnload() {
  if(params != "")
    getRequest(params + linkhref, "./click_tracker/post.php");
}

function sendCoordinates(e) {
  if (!e) var e = window.document.event;
  
  var xPos = 0;
  var yPos = 0;
  if (!e) var e = window.event;
  if (e.pageX || e.pageY)
  {
    width = window.innerWidth;
    xPos = e.pageX;
    yPos = e.pageY;
  }
  else if (e.clientX || e.clientY)
  {
    width = document.body.clientWidth;
    xPos = e.clientX + document.body.scrollLeft;
    yPos = e.clientY + document.body.scrollTop;
  }

  var url = encodeURIComponent(window.location.href);

  params = "x="+xPos+"&y="+yPos+"&url="+url+"&width="+width+"&href=";
  
  //alert(params);
  //getRequest(params, "./post.php");
  //document.getElementById("debug").innerHTML = params;
}

var http_request = false;

function getRequest(parameters, url)
{
  var ajax = createAjax();
  
  if (ajax)
  {
    /*
    ajax.onreadystatechange = function()
    {
      if(ajax.readyState == 4)
        document.getElementById("response").innerHTML = ajax.responseText;
    };
    */
    //alert(url + "?" + parameters);
    ajax.open("GET", url + "?" + parameters, true);
    ajax.send(null);
    delete ajax;
  }
  else { alert("Send Request Unable To Be Created"); }
}

function createAjax()
{
  var ajaxobject = null;

  try { ajaxobject = new ActiveXObject("Msxml2.XMLHTTP"); }
  catch(c)
  {
    try { ajaxobject = new ActiveXObject("Microsoft.XMLHTTP"); }
    catch(b) { ajaxobject = null; }
  }

  if (!ajaxobject && typeof XMLHttpRequest != "undefined") { ajaxobject = new XMLHttpRequest(); }

  return ajaxobject;
}