/* array of href patterns to track */

var _analyticsTrackHrefs = new Array([/^http:\/\/realserver\.bu\.edu:8080\/ramgen\/a\/v\/av\/today\/(.*)$/,
				      "/today/av/$1"]);

/* returns URI to track, or false if not trackable */
function getTrackingURI(href)
{
   var track = false;
   
   // http://realserver.bu.edu:8080/ramgen/a/v/av/today/mlk-1.rm
   
   for (var i=0; i < _analyticsTrackHrefs.length; i++) 
     {
	var pattern = _analyticsTrackHrefs[i];
	
	if (href.search(pattern[0]) != -1) 
	  {
	     track = href.replace(pattern[0], pattern[1]);
	     break;
	  }
     }
      
   return track;
}

/* adds the tracking handler to an element's onclick event */
function addTrackingHandler(element)
{
   var eventType = "click";
   var capture = false;
   
   var track = function(href)
     {
	return function()
	  {
	     try 
	       {
		  var track = getTrackingURI(href);
		  
		  if (track) 
		    {
		       urchinTracker(track);
		    }
	       }
	     catch (e)
	       {
	       }
	     
	  }
     };
   
   try 
     {
	var handler = track(element.getAttribute("href"));
	
	if (element.addEventListener) 
	  {
	     element.addEventListener(eventType, handler, capture);
	     return true;
	  }
	else if (element.attachEvent) 
	  {
	     var rc = element.attachEvent('on' + eventType, handler);
	     return rc;
	  }
	else 
	  {
	     element['on' + eventType] = handler;
	  }
     }
   catch (e) 
     {
     }
}

/* adds tracking handlers to anchors with matching hrefs */
function addTrackingHandlers()
{
   try 
     {
	var anchors = document.getElementsByTagName("a");
	
	for (var i=0; i < anchors.length; i++) 
	  {
	     var href = anchors[i].getAttribute("href");
	     	     
	     if (getTrackingURI(href)) 
	       {
		  addTrackingHandler(anchors[i]);
	       }
	  }
	
     }
   catch (e)
     {
     }
}

