
function ga_onloadListener(){
		if (window.addEventListener){
			window.addEventListener("load",ga_addListeners,false);
		}
		else if (window.attachEvent){
			window.attachEvent("onload",ga_addListeners);
		}
}
function ga_addListeners(){
	if (document.getElementsByTagName) {
	        // Initialize external link handlers
	        var hrefs = document.getElementsByTagName("a");
	       
	        for (var l = 0; l < hrefs.length; l++) {
	        	
				try{
				        if (hrefs[l].protocol == "mailto:") {
				            ga_startListening(hrefs[l],"click",ga_trackMailto);
				        } else if (hrefs[l].protocol == "javascript:") {
				            ga_startListening(hrefs[l],"click",ga_trackJavascript);
				        } else if (hrefs[l].hostname == location.host) {
				            var path = hrefs[l].pathname + hrefs[l].search;
					    	var isDoc = path.match(/\.(?:doc|eps|jpg|png|svg|xls|ppt|pdf|xls|zip|txt|vsd|vxd|js|css|rar|exe|wma|mov|avi|wmv|mp3)($|\&|\?)/);
				            if (isDoc) {
				    	    	ga_startListening(hrefs[l],"click",ga_trackExternalLinks);
				            }
				        } else {
				            ga_startListening(hrefs[l],"click",ga_trackExternalLinks);
				       	}
			}
				catch(e){
				continue;
			}
			} 
	}
}
function ga_startListening (obj,evnt,func) {
        if (obj.addEventListener) {
                obj.addEventListener(evnt,func,false);
        } else if (obj.attachEvent) {
                obj.attachEvent("on" + evnt,func);
        }
}
function ga_trackMailto (evnt) {
        var href = (evnt.srcElement) ? evnt.srcElement.href : this.href;
        var mailto = "/mailto/" + href.substring(7);
        _gaq.push(['_trackPageview',mailto]);
}
function ga_trackJavascript (evnt) {
        var href = (evnt.srcElement) ? evnt.srcElement.href : this.href;
        var js = "/javascript/" + href.substring(11);
        _gaq.push(['_trackPageview',js]);
}
function ga_trackExternalLinks (evnt) {
        var e = (evnt.srcElement) ? evnt.srcElement : this;
        while (e.tagName != "A") {
                e = e.parentNode;
        }
        var lnk = (e.pathname.charAt(0) == "/") ? e.pathname : "/" + e.pathname;
        if (e.search && e.pathname.indexOf(e.search) == -1) lnk += e.search;
        if (e.hostname != location.host) lnk = "/external/" + e.hostname + lnk;
        _gaq.push(['_trackPageview',lnk]); 
}
ga_onloadListener();
//look for on-site search querystring and send simpified PV with search term extracted if found.
function ga_trackSearch() {
	var qs =window.location.search
	qs = unescape(qs);
	if (qs.search('GET_SEARCH_RESULTS') >0) {
		//is a search page. get search text
		var ar = qs.match(/QueryText=\(\((.*?)\)\+/);
		var term = RegExp.$1;
		if (term.length>0) {
		 _gaq.push(['_trackPageview','/search/?q='+term]);
		}
	}
}
ga_trackSearch();
