//***************************************************************************************************
//     Script for tracking file downloads, outbound links, and email clicks
//     Author: Brian J Clifton @ Omega Digital Media Ltd
//     Adjusted by Allaedin Ezzedin @ E-Nor to make the code work with Asynchronous & Event Tracking
//***************************************************************************************************

function addLinkerEvents(){
	var layout = document.getElementById("tracker");
	
	var as = layout.getElementsByTagName("a");
	var extTrack = ["sfmoma.org"];
	var extDoc = [".doc", ".docx", ".xls", ".xlsx", ".xlsm", ".ppt", ".pptx", ".exe", ".zip", ".pdf", ".js", ".txt"];
	
	for (var i = 0; i < as.length; i++) {
		var flag = 0;
		var tmp = as[i].getAttribute("onclick");
		
		if (tmp != null) {
			tmp = String(tmp);
			if (tmp.indexOf('_gaq.push') > -1) 
				continue;
		}
		
		// Tracking outbound links off site - not the GATC
		for (var j = 0; j < extTrack.length; j++) {
			if (as[i].href.indexOf(extTrack[j]) == -1 && as[i].href.indexOf('google-analytics.com') == -1) {
				flag++;
			}
		}
		
		if (flag == extTrack.length && as[i].href.indexOf("mailto:") == -1) {
			as[i].onclick = function(){
				var splitResult = this.href.split("//");
			    _gaq.push(['_trackEvent', 'Outbound', splitResult[1]]) + ';' + ((tmp != null) ? tmp + ';' : '');				
			};
		}
		
		// Tracking electronic documents - doc, xls, pdf, exe, zip
		for (var j = 0; j < extDoc.length; j++) {
			if (as[i].href.indexOf(extTrack[0]) != -1 && as[i].href.indexOf(extDoc[j]) != -1) {
				as[i].onclick = function(){
					var splitResult = this.href.split(extTrack[0]);
				    _gaq.push(['_trackEvent', 'Downloads', splitResult[1]]) + ';' + ((tmp != null) ? tmp + ';' : '');
				}
				break;
			}
		}
		
		// Tracking email clicks
		if (as[i].href.indexOf("mailto:") != -1) {
			as[i].onclick = function(){
				var splitResult = this.href.split(":");
				_gaq.push(['_trackEvent', 'Email Click', splitResult[1]]) + ';' + ((tmp != null) ? tmp + ';' : '');				
			}
		}
	}
}
