//Taken, in part, from: http://www.ejeliot.com/blog/31
// create object
var linkTracking = {}

linkTracking.current_page = '';

// constructor (sort of)
linkTracking.init = function() {
  // check for support of required methods
  if (!document.getElementsByTagName) {
    return false;
  }
  // get all links on the page
  var links = document.getElementsByTagName('a');
  // assign event handlers
  YAHOO.util.Event.addListener(links, 'mouseup', linkTracking.mouseUp);
  YAHOO.util.Event.addListener(links, 'keypress', linkTracking.keyPress);
  return true;
}

linkTracking.mouseUp = function(e) {
  linkTracking.redirectHandler(YAHOO.util.Event.getTarget(e), e);
}

linkTracking.keyPress = function(e) {
  // check for return key press
  if (YAHOO.util.Event.getCharCode(e) == 13) {
    linkTracking.redirectHandler(YAHOO.util.Event.getTarget(e), e);
  }
}

linkTracking.redirectHandler = function(link, obj) {
  // check for valid href, don't want to track anchors
  if (link.getAttribute('href')) {
    var url = link.getAttribute('href');
    var title = link.childNodes[0].nodeValue;
    // check for title attribute, otherwise use link text
    if (link.getAttribute('title')) {
      title = link.getAttribute('title');
    }

    // track click by requesting URL through new image object
    //Position code found here: http://www.emanueleferonato.com/2006/09/02/click-image-and-get-coordinates-with-javascript/
    pos_x = obj.offsetX?(obj.offsetX):obj.pageX;
    pos_y = obj.offsetY?(obj.offsetY):obj.pageY;
    track_link(url, title, linkTracking.current_page, pos_x, pos_y);
  }
}

YAHOO.util.Event.addListener(window, 'load', linkTracking.init);

