// Cross-browser implementation of element.addEventListener()
function addListener(element, type, expression, bubbling) {
	bubbling = bubbling || false;

	if (window.addEventListener) { // Standard
		element.addEventListener(type, expression, bubbling);
		return true;
	} else if (window.attachEvent) { // IE
		element.attachEvent('on' + type, expression);
		return true;
	} else return false;
}

//This tracks a link via GA
function trackOutgoingLink(tg){
	var baseLink = tg.href;
	try {

		pageTracker._trackEvent("Outgoing links", "Click", baseLink);
        } catch (err) {
		//alert('error: ' + err);
	}
}

//This is what i want to do whenever someone clicks on the page
function hasClicked(evt) {

	//Get the clicket element
	var tg = (window.event) ? evt.srcElement : evt.target;

	//If it is an A element
	if (tg.nodeName == 'A' && tg.href.substring(0,4) == "http") {

		//If it is an external link: track it
		if (tg.href.indexOf(location.host) == -1) { trackOutgoingLink(tg); }
	
	//Or if it is an e.g. IMG or SPAN within an A
	} else if (tg.parentNode.nodeName == 'A' && tg.parentNode.href.substring(0,4) == "http") {

		//If it is an external link: track it
		if (tg.parentNode.href.indexOf(location.host) == -1) { trackOutgoingLink(tg.parentNode); }
	}
}

//Add to document.onload
addLoadEvent(addListener(document, 'click', hasClicked));

