// GA Utils.js
// Customised Google Analytics tracking code. 
// Author: Panalysis www.panalysis.com
// Support & questions: support@panalysis.com.au
// Version 1.00
// 2009-07-29

var _gaCode="UA-10001649-1";

var _gaBaseURL="livinggreener.gov.au";
// Restore above to value below immediately prior to going live
// var _gaBaseURL="livinggreener.gov.au";

var _gaDTypes = new Array(".pdf",".doc",".xls",".exe",".zip",".rtf");
var _gaLocalGifPath="";

// The page title for the error page.
//var _gaErrorPageTitle="404 Page Not Found - LivingGreener.gov.au";
var _gaErrorPageTitle="";

// additional search engines not tracked in Google Analytics can be added here
var _gaAddSearch = new Array();
_gaAddSearch[0]= new Array("govsearch.australia.gov.au","query");
_gaAddSearch[1]= new Array("sensis","find");


// no user settable features below this line 
var _gaMyDest="";

function _gaTrackThis(u,t)
{
	_gaMyDest = u;
	if(t=="o")
	{
		u = u.replace(/http[s]?:\/\//,"");
		u = "/external-links/" + u;
	}
	else if(t=="d")
	{
		var re1 = new RegExp("http[s]?://[^\/]*?(\/.*)");
		var m = re1.exec(u);
		if(m)
			u = m[1];
	}
	else if (t=="e")
	{
		var re1 = new RegExp("mailto:(.*)");
		var m = re1.exec(u);
		if(m)
			u = "/email/" + m[1];
	}

	if(self.urchinTracker)
	{
		urchinTracker(u);
	}
	else if(self.pageTracker)
	{
		pageTracker._trackPageview(u);
	}
	if(t =="e")
	{
		return true;
	}
	else
	{
		setTimeout("_gaSendToDest()",500); // delay for 1/2 second
		return false;
	}
	
}


function _gaSendToDest()
{
	document.location.href=_gaMyDest;
}

function _gaTrackLinks()
{
	if(! self.pageTracker && ! self.urchinTracker)
		return true;
		
	var mL = document.getElementsByTagName("a");
	
	for(var i=0;i<mL.length;i++)
	{
		var re1 = new RegExp("http[s]?:\/\/([^\/]*?)(\/.*)");
		var re2 = new RegExp("mailto:(.*)");
		var m = re1.exec(mL[i].href.toLowerCase());
		var m2 = re2.exec(mL[i].href.toLowerCase());
		if(m)
		{
			if(m[2].indexOf(_gaBaseURL)<0)
				mL[i].onclick = function () { _gaTrackThis(this.href,'o'); return false;};
		}
		else if (m2)
		{
			mL[i].onclick = function () { _gaTrackThis(this.href,'e');  return true;};
		}
		for(x=0;x<_gaDTypes.length;x++)
		{
			if(mL[i].href.toLowerCase().indexOf(_gaDTypes[x])>-1)
			{
				mL[i].onclick = function () { _gaTrackThis(this.href,'d'); return false;};
			}
		}
		
	}
}

function _gaTrackError()
{
	var strURL = "/errors" + document.location.pathname;
	if(document.location.search !="")
		strURL += "?" + document.location.search ;
	
	if(document.referrer != "")
	{
		if(strURL.indexOf("?")>0)
			strURL += "&";
		else
			strURL += "?";
		
		strURL += "referrer=" + document.referrer;
	}

	pageTracker._trackPageview(strURL);
}

// initialise the GA tracking code and send the request
try {
// remove all comments before placing this code into production.
// replace the account code UA-00000-0 with the actual Google Analytics tracking code for the site
	var pageTracker = _gat._getTracker(_gaCode);
	
// set the domain name in case there is a sub domain
	if(_gaBaseURL !="")
		pageTracker._setDomainName("." + _gaBaseURL);
	
	if(_gaLocalGifPath != "")
	{
		pageTracker._setLocalRemoteServerMode();
		pageTracker._setLocalGifPath(_gaLocalGifPath);
	}
	
// Add in extra local search engines
	if(_gaAddSearch.length>0)
	{
		for(var i=0; i<_gaAddSearch.length; i++)
		{
			pageTracker._addOrganic(_gaAddSearch[i][0],_gaAddSearch[i][1]);
		}
	}
	
// if this is an error page record this separately
	if(
		(_gaErrorPageTitle !="" && document.title.toLowerCase().indexOf(_gaErrorPageTitle.toLowerCase()>=0)) ||
		(self.statusCode && self.statusCode>=400)
	)
		_gaTrackError();
	else if(self.docURL && docURL != "")
		pageTracker._trackPageview(docURL);
	else
		pageTracker._trackPageview();
} catch(err) {}

// set up the link tracking
_gaTrackLinks();