/****************************************************
     Based on Brian Clifton's script
   Url: http://www.advanced-web-metrics.com
   
   Author: Julien Bissonnette (Magnet Search Marketing)
   
   Version: 2.06
****************************************************/

function customLink(gaTracker, utm_action, utm_actionelement, gaparams){
if(typeof(utm_actionelement)=="undefined"||utm_actionelement==""){
  utm_actionelement=utm_action;
}  
gaTracker._trackPageview(self.location.pathname+self.location.search+(self.location.search.length>0?"&":"?")+"utm_action="+utm_action+(utm_actionelement.length>0?"&utm_actionelement="+utm_actionelement:"")+(gaparams.length>0?"&"+gaparams:""));
}
function _AttachEvent(_mLink, _mEvent, _mMethod, _mCurrentOnclick) {
  if (_mLink.attachEvent) {
    var f = new Function(_mMethod + _mCurrentOnclick);
    _mLink.onclick = f;
  } else {
    _mLink.setAttribute(_mEvent, _mMethod + _mCurrentOnclick);
  } 
}

// Only links written to the page (already in the DOM) will be tagged
// This version is for ga.js (July 15th 2008)

function addLinkerEvents(pageTrackerName, extTrack, extDoc, gaparams) {
  var as = document.getElementsByTagName("a");
  var areas = document.getElementsByTagName("area");
  
  var tags = new Array(as.length+areas.length);
  for(var i=0; i<as.length; i++) {
    tags[i]=as[i];
  }
  for(var i=0; i<areas.length; i++) {
    tags[as.length+i]=areas[i];
  }

  /*If you edit no further below this line, Top Content will report as follows:
    /custom/exit/url-of-external-site
    /downloads/filename
    /mailto/email-address-clicked
  */
  
  for(var i=0; i<tags.length; i++) {
    var flag = true;
    var found = false;
    var current_host = null;
    
    var currentOnclick = '';
    if (tags[i].attachEvent)  {
      currentOnclick = tags[i].attributes['onclick'].value;
    } else {
      currentOnclick = tags[i].getAttribute("onclick");
    }
    
    tmp = (currentOnclick != null) ? String(currentOnclick) : '';
    tmp = tmp.replace(/javascript:/i, '');
    
    if (tmp.indexOf('urchinTracker') > -1 || tmp.indexOf('_trackPageview') > -1 || tmp.indexOf('customLink') > -1) continue;
    if (tags[i].href.indexOf('google-analytics.com') != -1 || tags[i].href.toLowerCase().indexOf('javascript:') != -1) continue;
    
    // Fix Magnet to prevent exit links on <a> tags without href attribute
    if (tags[i].href.length > 0) {
      // Tracking electronic documents
      for (var j=0; j<extDoc.length; j++) {
        if (tags[i].href.search(eval('/'+extDoc[j].replace(/\./,'\\.')+'$/i')) != -1) {
          var result = tags[i].href.replace(/https?:\/\//, '');
          _AttachEvent(tags[i], 'onclick', "customLink("+pageTrackerName+",'download','"+result+"','"+gaparams+"');", tmp);
          found = true;
          break;
        }
      }

      // Tracking mailto links
      if (tags[i].href.search(/mailto:/i) != -1) {
        var result = tags[i].href.replace(/mailto:/i, '');
        _AttachEvent(tags[i], 'onclick', "customLink("+pageTrackerName+",'mailto','"+result+"','"+gaparams+"');", tmp);
        found = true;
      }
    
      if (found == false) {
        // Tracking outbound links
        for (var j=0; j<extTrack.length; j++) {          
          var regex = new RegExp('^(http|https):\/\/([^/]*)'+extTrack[j]+'.*', "i");
          if (regex.test(tags[i].href)) {
            flag = false;
            break;
          }
        }
      
        if (flag) {
          var result = tags[i].href.replace(/https?:\/\//, '');
          _AttachEvent(tags[i], 'onclick', "customLink("+pageTrackerName+",'exit','"+result+"','"+gaparams+"');", tmp);
        }
      }
    }
  }
  
  // Debugging
  //var as = document.getElementsByTagName("a");
  //var areas = document.getElementsByTagName("area");

  //for(var i=0; i<as.length; i++) {
  //  alert(as[i].getAttribute("onclick"));
  //}
}