
/* GA autoTrack Async START */

// Asnyc - V.1.3.4
// Updated Oct. 28, 2011 RB
// 1. Re-instated most recent version of outbount link tracking
// 2. Added support for local domains as outbound links
// 3. Remove tracking to SEP account

/*Configuration & Setup */
var gaAccount = 'UA-24125186-1'; // Setup your Google Analytics ID
var extId  = '/outbound/'; //Identifier for 'Outbound' links
var docId  = '/download/'; //Identifier for 'Download' links
var mailId = '/mailto/'; //Identifier for 'Email' links
var extdomains = ['occ.hts.on.ca']; // subdomains to be tracked as external links
var domains = ['hts.on.ca']; //Domains to be tracked (list). For outbound links and cross domain tracking.
var gaDomain = '.hts.on.ca'; //Google Analytics Main Domain definition 
var fileTypes  = [".doc",".xls",".exe",".zip",".pdf",".docx",".pptx",".xlsx"]; //File Types seen as downloads // TODO: Use RegExp
var vpvEnabled = true; //Set to 'true' to record a Virtual Page View
var evtEnabled = true; //Set to 'true' to record an Event
var trackDelay = 200; // Delay after tracking request - miliseconds

// START Standard GA Call 
var _gaq = _gaq || [];
_gaq.push(['_setAccount', gaAccount]);
_gaq.push(['_setDomainName', gaDomain]);
_gaq.push(['_trackPageview']);
_gaq.push(['_trackPageLoadTime']);
 
(function() {
	var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
// END Standard GA Call

/* CUSTOM PLUGINS & FUNC - START */

/* CUSTOM PLUGINS & FUNC - END */

/* DO NOT CHANGE BEYOND THIS POINT */
var debug;
function listenToClicks() {
	if(document.getElementsByTagName) {
		var aTags=document.getElementsByTagName('a');
		ANCHOR:
		for(var i=0;i<aTags.length;i++) {
			if(aTags[i]=="") {
				continue ANCHOR
			}
			if(typeof aTags[i].hostname=="undefined") {
				continue ANCHOR
			}
			if(aTags[i].protocol.indexOf("javascript")!=-1) {
				continue ANCHOR
			}
			if(aTags[i].protocol.indexOf("mailto")!=-1) {
				startListening(aTags[i],"click",trackMailto);
				continue ANCHOR
			}
			for(var j=0;j<extdomains.length;j++) {
				if(aTags[i].hostname.indexOf(extdomains[j])!=-1) {
					startListening(aTags[i],"click",trackExternalLinks);
					continue ANCHOR
				}
			}
			DOMAIN:
			for(var j=0;j<domains.length;j++) {
				if(aTags[i].hostname.indexOf(domains[j])!=-1) {
					FILE:
					for(k=0;k<fileTypes.length;k++) {
						if(aTags[i].pathname.indexOf(fileTypes[k])!=-1) {
							startListening(aTags[i],"click",trackDocuments);
							continue ANCHOR
						}
					}
					if(window.location.href.indexOf(domains[j])==-1) {
						startListening(aTags[i],"click",useLinker);
						continue ANCHOR
					}
					else {
						continue ANCHOR
					}
				}
			}
			startListening(aTags[i],"click",trackExternalLinks);
			continue ANCHOR
		}
	}
}
function startListening(obj,evnt,func) {
	if(obj.addEventListener)obj.addEventListener(evnt,func,false);
	else if(obj.attachEvent)obj.attachEvent("on"+evnt,func)
}
function useLinker(evnt) {
	evnt=evnt||event;
	var elmnt=evnt.srcElement||evnt.target;
	if(elmnt) {
		while(elmnt.tagName!="A")elmnt=elmnt.parentNode
	}
	var lnkPath="http://"+elmnt.hostname+'/'+elmnt.pathname.replace(/^\//,'');
	_gaq.push(['_link',elmnt.href]);
	if( elmnt.target && elmnt.target != '_self' && elmnt.target != '_top' && 
		elmnt.target != '_parent' )
		return;
	window.setTimeout(function() { location.href = elmnt.href; },trackDelay);
	if(evnt.preventDefault)
		evnt.preventDefault();
	return false
}
function trackDocuments(evnt) {
	evnt=evnt||event;
	var elmnt=evnt.srcElement||evnt.target;
	if(elmnt) {
		while(elmnt.tagName!="A")elmnt=elmnt.parentNode
	}
	var docPathName=elmnt.pathname.replace(/^\//,'');
	evtEnabled?_gaq.push(['_trackEvent',docId,'click','/'+docPathName]):debug=1;
	vpvEnabled?_gaq.push(['_trackPageview',docId+docPathName]):debug=1;
	if( elmnt.target && elmnt.target != '_self' && elmnt.target != '_top' && 
		elmnt.target != '_parent' )
		return;
	window.setTimeout(function() { location.href = elmnt.href; },trackDelay);
	if(evnt.preventDefault)
		evnt.preventDefault();
	return false;
}
function trackExternalLinks(evnt) {
	evnt=evnt||event;
	var elmnt=evnt.srcElement||evnt.target;
	var url = '';
	if(elmnt) {
		while(elmnt.tagName!="A")elmnt=elmnt.parentNode;
		if(/http/.test(elmnt.protocol)) {
			url=extId+elmnt.href.substr(elmnt.href.indexOf('//')+2,Infinity)
		}
	}
	else {
		if(/http/.test(this.protocol)) {
			url=extId+this.href.substr(this.href.indexOf('//')+2,Infinity)
		}
	}
	if(url.length>0) {
		evtEnabled?_gaq.push(['_trackEvent',extId,'click',url]):debug=1;
		vpvEnabled?_gaq.push(['_trackPageview',url]):debug=1;
	if( elmnt.target && elmnt.target != '_self' && elmnt.target != '_top' && 
		elmnt.target != '_parent' )
		return;
		window.setTimeout(function() { location.href = elmnt.href; },trackDelay);
		if(evnt.preventDefault)
			evnt.preventDefault();
		return false;
	}
}
function trackMailto(evnt) {
	evnt=evnt||event;
	var elmnt=evnt.srcElement||evnt.target;
	var url = '';
	if(elmnt) {
		while(elmnt.tagName!="A")elmnt=elmnt.parentNode;
		if(elmnt.protocol=="mailto:") {
			url=mailId+elmnt.href.replace(/mailto:/,"")
		}
	}
	else {
		if(this.protocol=="mailto:") {
			url=mailId+this.href.replace(/mailto:/,"")
		}
	}
	if(url.length>0) {
		evtEnabled?_gaq.push(['_trackEvent',mailId,'click',url]):debug=1;
		vpvEnabled?_gaq.push(['_trackPageview',url]):debug=1;
		if( elmnt.target && elmnt.target != '_self' && elmnt.target != '_top' && 
			elmnt.target != '_parent' )
			return;
		window.setTimeout(function() { location.href = elmnt.href; },trackDelay);
		if(evnt.preventDefault)
			evnt.preventDefault();
		return false;
	}
}
startListening(window,'load',listenToClicks);

/* GA Autotrack Async END */
