//obtained from http://groups.google.com/group/analytics-help-tracking/browse_frm/thread/27e5d072204a0146/d31038f4aed5b55d#d31038f4aed5b55d
//http://groups.google.com/group/analytics-help-tracking/browse_frm/thread/d270b6baeb450aeb/801af4980511b1d6?lnk=gst&q=Initialize+external+link+handlers&rnum=1#801af4980511b1d6

if (document.getElementsByTagName) {
	// Initialize external link handlers
	var hrefs = document.getElementsByTagName("a");
	for (var l = 0; l < hrefs.length; l++) {
		//protocol, host, hostname, port, pathname, search, hash
		if (hrefs[l].hostname == location.host) {
			var path = hrefs[l].pathname;
			if (path.match(/\.(doc|pdf|xls|ppt|zip|txt|vsd|vxd|js|css|rar|exe|wma|mov|avi|wmv|mp3|png)$/))
				startListening(hrefs[l],"click",trackDocuments);
		}
		else {
			startListening(hrefs[l],"click",trackExternalLinks);
		}
	}
}

function startListening (obj,evnt,func) {
	if (obj.addEventListener) {
		obj.addEventListener(evnt,func,false);
	}
	else if (obj.attachEvent) {
		obj.attachEvent("on" + evnt,func);
	}
}

function trackDocuments (evnt) {
	var url = (evnt.srcElement) ? "/" + evnt.srcElement.pathname : this.pathname;
	if (typeof(urchinTracker) == "function")
		urchinTracker(url);
}

function trackExternalLinks (evnt) {
	var lnk;
	if (evnt.srcElement) {
		var elmnt = evnt.srcElement;
		while (elmnt.tagName != "A") {
			var newelmnt = elmnt.parentNode;
			elmnt = newelmnt;
		}
		lnk = "/external/" + elmnt.hostname + "/" + elmnt.pathname + elmnt.search;
	}
	else {
		lnk = "/external/" + this.hostname + this.pathname + this.search;
	}
	if (typeof(urchinTracker) == "function")
		urchinTracker(lnk);
}