// Google Analytics Function File
// 
// Version 1.1
// (c) Panalysis Pty Ltd 2008
// 
// To use add to the RHSA website at a known location. E.g. http://www.rhsa.com.au/includes/rhsa-gautils.js
// Add script reference to both RHSA and Realestate.com.au websites below the current Google Analytics code
// <script type="text/javascript" src="http://www.rhsa.com.au/includes/rhsa-gautils.js"></script>
//
// IMPORTANT. This script uses variables and data contained within the current implementation of the RHSA and Realestate.com.au
// websites. If these sites change then this script should be tested for compatibility and alterations made
// In the event that the site changes, please contact Panalysis support for assistance

// Google Analytics variables
var _gac = "UA-2618585-2";
var _gd='';
var _isrhsa=0;
var _bd="rhsa";
if(window.location.hostname.indexOf('rhsa')>=0)
{
	_isrhsa=1;
	_bd="realestate";
	_gd="rhsa.com.au";
}
else
	_gd="realestate.com.au";

	
if(self.pageTracker) // ga.js version
{
	var pageTracker2 = _gat._getTracker(_gac);                     // Account code
	pageTracker2._setAllowHash(false);                            // Turn domain hashing off 
	pageTracker2._setDomainName(_gd);                             // set the domain so that the cookies have the appropriate scope
	pageTracker2._setAllowLinker(true);                           // turn on linking between RHSA and Realestate.com.au
	pageTracker2._addIgnoredRef('agents.realestate.com.au');      // Ignore Realestate.com.au as a referring site
	pageTracker2._addIgnoredRef('rhsa.com.au');                   // Ignore Realestate.com.au as a referring site
}
else // urchin.js version
{
	_uacct = _gac;                                                // Account code
	_uhash="off";                                                 // Turn domain hashing off 
	_udn=_gd;                                                     // set the domain so that the cookies have the appropriate scope
	_ulink=1;                                                     // turn on linking between RHSA and Realestate.com.au
	_uRno[0]="rhsa.com.au";                                       // Ignore RHSA as a referring site
	_uRno[1]="agents.realestate.com.au";                          // Ignore Realestate.com.au as a referring site
	_uff =0;                                                      // reset the urchinTracker function
}
// Try get the agent ID by looking at the link with the text Visit Web >>
// Extract the website and then get the directory name from the URL

var mL = document.getElementsByTagName("a");
var re1 = new RegExp("http[s]?:\/\/[^\/]*?\/(.*?)(\/|$)");
var ml="";
var agL="";
var pid = _uGetParam("id");
var aid = _uGetParam("st_Agent");
if(! aid)
	aid = _uGetParam('ag');

var uStr ='';
for(var i=0;i<mL.length;i++)
{
	try
	{
		var mt = mL[i].text.toLowerCase();
		if(mt.indexOf("isit web")>0)
		{
			ml = re1.exec(mL[i].href.toLowerCase());
			if(ml[1] !="")
			{
				agL = ml[1];
			}
		}
	}
	catch(err)
	{}
}


if(self.gaurl) // if there is a variable set in the website gaurl, then this overrides all other functions
{
	_uSend(gaurl);
}
else if(aid != "" && _isrhsa!=1) // if there is an agent ID in the URL then extract the parameters from Realestate
{
	var strP="";
	uStr = _uGetRHSASite(aid);

	if(_uGetParam('altTemplate') !="")
		strP= _uGetParam('altTemplate');
	else if(_uGetParam('a') == "pf")
		strP = 'printbrochure';
	else if(_uGetParam('sold') !="")
		strP = 'sold';
	else if(_uGetParam('id') !="")
		strP = 'properties';
	else if(_uGetParam('vtour') !="")
		strP = 'vtour';
	else if(_uGetParam('t') !="")
		strP = _uGetParam('t');
	
	switch (strP)
	{
		case 'res':
			uStr += "residential-buy/";
			break;
		case 'rur':
			uStr += "rural/";
			break;
		case 'lan':
			uStr += "land/";
			break;
		case 'est':
			uStr += "estate/";
			break;
		case 'ren':
			uStr += "residential-rent/";
			break;
		case 'sold':
			uStr += "sold-properties/";
			break;
		case 'StaffProfiles':
			uStr += "staff-profiles/";
			break;
		case 'Contact':
			uStr += "contact/view-form/";
			break;
		case 'Sent':
			uStr += "contact/sent-form/";
			break;
		case 'properties':
			uStr += "properties/" + _uGetParam('id') + "/view";
			break;
		case 'printbrochure':
			uStr += "properties/" + _uGetParam('id') + "/brochure";
			break;
		case 'vtour':
			uStr += "virtual-tours/";
			break;
		
	}
	_uSend(uStr);
}
else if(agL != "" && pid !="" && _isrhsa!=1) // catch any properties viewed without going via an agent site
{
	uStr = "/" + agL + "/properties/" + pid;
	_uSend(uStr);
}
else // just send the URL if nothing else matches
{
	_uSend();
}

// loop throught the links and append the linking cookie data to the URL as required and track clicks on mailto addresses.
var myLL = document.getElementsByTagName("a");

for (var i=0;i<myLL.length;i++)
{
	var ml;
	
	try
	{
		ml = myLL[i].getAttribute('href').toLowerCase();
		
		if(ml.indexOf('mailto:')>=0) // is this a mailto link
		{
			if(self.pageTracker)
			{
				myLL[i].onclick = function () { pageTracker2._trackPageview('/email/' + this.href); };
			}
			else if (self.urchinTracker)
			{
				myLL[i].onclick = function () { urchinTracker('/email/' + this.href); };
			}
		}
		else if(ml.indexOf(_bd) >= 0)
		{
			if(self.pageTracker)
			{
				myLL[i].onclick = function () { pageTracker2._link(this.href); return false; };
			}
			else if (self.urchinTracker)
			{
				myLL[i].onclick = function () { __utmLinker(this.href); return false; };
			}
		}

	}
	catch(e)
	{
		
	}
}
if(_isrhsa==1)
{
	var myFL = document.getElementsByTagName("form");
	for (var i=0;i<myFL.length;i++)
	{
		if(myFL[i].action.indexOf("realestate.com.au")>0)
		{
			if(myFL[i].onsubmit)
			{
				
				myFL[i].onsubmit = function () {
					try
					{
						if(self.urchinTracker)
							__utmLinkPost(this);
						else if(self.pageTracker)
							pageTracker2._linkByPost(this);
					}
					catch(e)
					{
					
					}
					return SubmitForm(this);
				}
			}
			else
			{
				myFL[i].onsubmit = function () {
					try
					{
						if(self.urchinTracker)
						{
							__utmLinkPost(this);
						}
						else if(self.pageTracker)
							pageTracker2._linkByPost(this);
					}
					catch(e)
					{
					
					}
				}
			}
		}
	}
}
// _uGetParam - extraced a specific URL query parameter by name
function _uGetParam(strParam){
	var _pstr = document.location.search.substring(1);
	var _uparams = _pstr.split("&");
	for(i = 0; i < _uparams.length; i++){
		var np = _uparams[i].split("=");
		if(trim(np[0].toLowerCase()) == strParam.toLowerCase())
			return trim(np[1]);
	}
	return "";
}

// trim - remove whitespace
function trim(val){ return val.replace(/^\s+|\s+$/g, '') ; }

function _uSend(strU)
{
	if(strU !="") // send the value of strU to Google Analytics
	{	
		if(self.urchinTracker)
			urchinTracker(strU);
		else if (self.pageTracker)
			pageTracker2._trackPageview(strU);
			
	}
	else
	{
		// otherwise just record the URL of the current page
		if(self.urchinTracker)
			urchinTracker();
		else if (self.pageTracker)
			pageTracker2._trackPageview();
	}
}
function _uGetRHSASite(p)
{
	var strD='';
	switch (p)
	{
		case 'TORBIR':
				strD='/birdwood/';
				break;
		case 'TORBLA':
				strD='/blackwood/';
				break;
		case 'NVWEZI':
				strD='/brightonhallettcove/';
				break;
		case 'TORCOL':
				strD='/burnsidenorwood/';
				break;
		case 'TORDAW':
				strD='/citysouthside/';
				break;
		case 'OLZIMJ':
				strD='/coffinbay/';
				break;
		case 'LBABFK':
				strD='/cooberpedy/';
				break;
		case 'SMVXJB':
				strD='/craigmoreelizabeth/';
				break;
		case 'ALDFLI':
				strD='/flinderspark/';
				break;
		case 'XRHFRF':
				strD='/fullarton/';
				break;
		case 'DORJJD':
				strD='/gawler/';
				break;
		case 'XRHCAY':
				strD='/glynde/';
				break;
		case 'TRCSGM':
				strD='/goolwa/';
				break;
		case 'CGTSXE':
				strD='/headoffice/';
				break;
		case 'KUDXUA':
				strD='/kangarooisland/';
				break;
		case 'TORKAP':
				strD='/kapunda/';
				break;
		case 'VUMAEZ':
				strD='/kingston/';
				break;
		case 'GTZZIV':
				strD='/mannum/';
				break;
		case 'TORMCL':
				strD='/mclarenvale/';
				break;
		case 'XRHMEA':
				strD='/meadows/';
				break;
		case 'TORMEN':
				strD='/meningie/';
				break;
		case 'TOROLD':
				strD='/morphettvalechristiesbeachreynellawoodcroft/';
				break;
		case 'XRHMBA':
				strD='/mountbarker/';
				break;
		case 'KAILYX':
				strD='/murraybridge/';
				break;
		case 'TORTEA':
				strD='/northeast/';
				break;
		case 'TOROAK':
				strD='/oakbank/';
				break;
		case 'TORPRO':
				strD='/prospect/';
				break;
		case 'DJHWGV':
				strD='/ptaugusta/';
				break;
		case 'TORPOR':
				strD='/ptlincoln/';
				break;
		case 'IYINWG':
				strD='/ptpirie/';
				break;
		case 'ISJKMM':
				strD='/robe/';
				break;
		case 'CEUQDH':
				strD='/roxbydowns/';
				break;
		case 'TORSAL':
				strD='/salisbury/';
				break;
		case 'TORSEM':
				strD='/semaphore/';
				break;
		case 'TORSTI':
				strD='/stirling/';
				break;
		case 'XRHSTT':
				strD='/strathalbyn/';
				break;
		case 'HUVWST':
				strD='/tailembend/';
				break;
		case 'UTBGTR':
				strD='/tanunda/';
				break;
		case 'GLKKCX':
				strD='/tumbybay/';
				break;
		case 'UVTJLD':
				strD='/twowells/';
				break;
		case 'XRHVIC':
				strD='/victorharbor/';
				break;
		case 'HQBFWA':
				strD='/whyalla/';
				break;
		case 'XRHABE':
				strD='/aberfoyleflagstaff/';
				break;
	}
	
	return strD;
}