//	Javascript to tag file downloads and external links in Google Analytics
//	To use, place reference to this file should be placed at the bottom of all pages, 
//	just above the Google Analytics tracking code.
//	All outbound links and links to non-html files should now be automatically tracked.

//	Based on a script created by: 	Colm McBarron, colm.mcbarron@iqcontent.com
//
// heavily modified by: Adam Anderson, adambanderson@gmail.com

function addTrackers()
{
    var hrefs = document.getElementsByTagName("a");
    var link_path = "";
    for (var l = 0; l < hrefs.length; l++) {
		    try {
			    var link_path = hrefs[l].pathname;
			    if (location.host == hrefs[l].host) {
				    if (link_path.match(/\.(doc|pdf|xls|ppt|zip|txt|vsd|vxd|js|css|rar|exe|wma|mov|avi|wmv|mp3|dwg|dxf|igs|prt|sldprt|stp)$/)) {
					    addtrackerlistener(hrefs[l]);
				    }
			    } else {
				    addtrackerlistener(hrefs[l]);
			    }
		    }
		    catch(err) { }
    }
}


function addtrackerlistener(obj) {

    var fn = trackfiles;
    var evt = 'click';
    
	if (obj.addEventListener && obj[evt] != fn) {
	
		obj.addEventListener('click', fn, true);
		
	} else if (obj.attachEvent) {
	
	    evt = 'on' + evt;
	    
	    if (obj[evt] != fn)
		    obj.attachEvent(evt, fn);
	}
}

function trackfiles(array_element) {
	file_path = "";
	
	if (location.host != this.host) {
		file_path = "external:" + ((array_element.srcElement) ? "/" + array_element.srcElement.host : this.host);
	}
	
	file_path = file_path + ((array_element.srcElement) ? "/" + array_element.srcElement.pathname : this.pathname);
	
	pageTracker._trackPageview(file_path);
}

if (Sys)
{
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    
    if (prm)
    {
       prm.add_endRequest(EndRequest);
    }
}

       
function EndRequest(sender, args)
{
   addTrackers();
}

addTrackers();
