// JScript source code
var owga_codes = new Array();
var owga_domains = new Array();

//owga_codes[]="";	owga_domains[]="";
//owga_codes[0]="UA-516284-1";	owga_domains[0]="www.isl.ca";
owga_codes[0]="UA-2512430-1";	owga_domains[0]="www.domusrealty.ca";

// -- Google Analytics Tracking Code -- //
var owga_code = '<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script>';
owga_code += '<style type="text/css">a.' + owga_TRACK_DOWNLOAD + ' { } a.' + owga_TRACK_EXTERNAL + ' { }</style>';
document.writeln(owga_code);

owga_AppendLoadEvent(owga_Initialize);

// -- Google Analytics Tracking Code -- // 

var owga_TRACK_DOWNLOAD = "trackDownload";
var owga_TRACK_EXTERNAL = "trackExternal";
var owga_includeSubDirs = false;
	
// add the css classes
//var ss = document.styleSheets[document.styleSheets.length-1];
//ss.addRule("a." + owga_TRACK_DOWNLOAD, " ");
//ss.addRule("a." + owga_TRACK_EXTERNAL, " ");


// --------------------------------------------------------------------------------
// owga_Initialize()
// Initializes the Google Analytics implementation.
// --------------------------------------------------------------------------------
// Arguments:
//	- none
// Returns:
//	- none
// --------------------------------------------------------------------------------
function owga_Initialize() {
	// set the account profile and track the page view
	_uacct = owga_GetAccountProfile();
	var body = document.getElementsByTagName("body")[0];
	if (body!=null && body.getAttribute("track")!=null && body.getAttribute("track").length>0)
		owga_Track(body.getAttribute("track"));
	else if (body!=null && body.getAttribute("trackAndRedirect")!=null && body.getAttribute("trackAndRedirect").length>0) {
		var addrs = body.getAttribute("trackAndRedirect").split(",",2);
		if (addrs.length==1)
			owga_TrackAndRedirect(null, addrs[0]);
		else if (addrs[0].length==0)
			owga_TrackAndRedirect(null, addrs[1]);
		else
			owga_TrackAndRedirect(addrs[2], addrs[1]);
	} else
		owga_Track();
	
	// set up the tracking links
	owga_SetTrackingLinks();
}

// --------------------------------------------------------------------------------
// owga_GetAccountProfile()
// Determines and returns the Google Analytics user account for the current request.
// --------------------------------------------------------------------------------
// Arguments:
//	- none
// Returns:
//	- none
// --------------------------------------------------------------------------------
function owga_GetAccountProfile() {
	// set default if domain name not available
	var dn=document.location.hostname,j=0;
	if (dn==null||dn=="") return _uacct=owga_codes[0];
	// enumerate the hard-coded domains
	for (var i=0;i<owga_domains.length;i++) {
		if (dn.toLowerCase().indexOf(owga_domains[i].toLowerCase()) > -1) return owga_codes[i];
	}
}

// --------------------------------------------------------------------------------
// owga_SetTrackingLinks()
// Sets up the links on the page to be tracked.
// --------------------------------------------------------------------------------
// Arguments:
//	- none
// Returns:
//	- none
// --------------------------------------------------------------------------------
function owga_SetTrackingLinks() {
	var links = document.getElementsByTagName("a");
	var a = null;
	for (var i = 0; i < links.length; i++) {
		a = links[i];
		if (	(a.getAttribute("track")!=null && a.getAttribute("track")!="") ||
				(a.className==owga_TRACK_DOWNLOAD && a.href!=null && a.href!="") ||
				(a.className==owga_TRACK_EXTERNAL && a.href!=null && a.href!="") )
			// create the onclick handler
			owga_AddEvent(a, "click", owga_TrackOnClick, false);
	}
	
	links = document.getElementsByTagName("area");
	a = null;
	for (var i = 0; i < links.length; i++) {
		a = links[i];
		if (	(a.getAttribute("track")!=null && a.getAttribute("track")!="") ||
				(a.className==owga_TRACK_DOWNLOAD && a.href!=null && a.href!="") ||
				(a.className==owga_TRACK_EXTERNAL && a.href!=null && a.href!="") )
			// create the onclick handler
			owga_AddEvent(a, "click", owga_TrackOnClick, false);
	}
	
}

// --------------------------------------------------------------------------------
// owga_TrackOnClick()
// The OnClick handler that formats the track address and calls the urchin tracker.
// --------------------------------------------------------------------------------
// Arguments:
//	- none
// Returns:
//	- none
// --------------------------------------------------------------------------------
function owga_TrackOnClick() {
	var a = this;
	if (window.event) a = event.srcElement;
	
	//loop up until we are at the anchor tag
	while (a.parentNode!=null && a.tagName.toLowerCase()!="a" && a.tagName.toLowerCase()!="area")
		a=a.parentNode;
	
	var track="";
	if (a.getAttribute("track") && a.getAttribute("track")!="")
		track = a.getAttribute("track");
	else if (a.className==owga_TRACK_DOWNLOAD && a.href!=null && a.href!="")
		track = "/download" + owga_FormatLink(a.href, !owga_includeSubDirs);
	else if (a.className==owga_TRACK_EXTERNAL && a.href!=null && a.href!="")
		track = "/external" + owga_FormatLink(a.href, !owga_includeSubDirs);
	else
		return;
	
	// track the click
	owga_Track(track);
}

// --------------------------------------------------------------------------------
// owga_Track()
// Tracks the submitted address.
// --------------------------------------------------------------------------------
// Arguments:
//	- none
// Returns:
//	- none
// --------------------------------------------------------------------------------
function owga_Track(address) {
	// call the urchin tracker method
	//if (confirm(address))
		urchinTracker(address);	
}


// --------------------------------------------------------------------------------
// owga_TrackAndRedirect(address, redirect)
// Tracks the submitted address, then redirects the user.
// --------------------------------------------------------------------------------
// Arguments:
//	- address:	page address to track
//	- redirect:	page to redirect the user to
// Returns:
//	- none
// --------------------------------------------------------------------------------
function owga_TrackAndRedirect(address, redirect) {
	// call the urchin tracker method
	owga_Track(address);
	document.location.href=redirect;
}

// --------------------------------------------------------------------------------
// owga_FormatLink()
// Formats the href address into a link address trackable as a Google Analytics page view.
// --------------------------------------------------------------------------------
// Arguments:
//	- address: address to be parsed
//	- fileOnly: should it use the full path of the address, or just the file name
// Returns:
//	- string
// --------------------------------------------------------------------------------
function owga_FormatLink(address, fileOnly) {
	var host = "", query="", i=0;

	if (address==null||address=="") return "/";
	if (address.indexOf("://")>0) address=address.substring(address.indexOf("://")+3);
	if (address.indexOf("?")>0) {
		query=address.substring(address.indexOf("?"), address.length);
		address=address.substring(0,address.indexOf("?"));
	}
	if (address.charAt(0)!="/") {
		if ((i=address.indexOf("/"))<0) {
			host=address;
			address = "";
		} else {
			host=address.substring(0,i);
			address = address.substring(i,address.length);
		}
		if (document.location.hostname==host) host="";
		
		// reformat the domain name
		host=host.replace(/\./g, "_");
	}
	// add beginning slash if necessary
	if (address.charAt(0)!="/") address = "/" + address;
	// see if we need to make the path absolute
	if (fileOnly)
		address=address.substring(address.lastIndexOf("/",address.length));
	if (host.length>0)
		return "/" + host + address + query;
	else
		return address + query;
}

// --------------------------------------------------------------------------------
// owga_AppendLoadEvent()
// Append a function to be executed when the onload event fires.
// Normally ow_f_AddEvent() already does this, but IE seems to execute all functions
// in reverse order than how they were added.
// --------------------------------------------------------------------------------
// Arguments:
//	- f: function to be appended [function]
// Returns:
//	- nothing
// --------------------------------------------------------------------------------
function owga_AppendLoadEvent(f) {
  var oldonload = window.onload;
  
  if (typeof window.onload != "function") {
    window.onload = f;
  } else {
    window.onload = function() {
      oldonload();
      f();
    }
  }
}

// --------------------------------------------------------------------------------
// owga_AddEvent()
// Attach an event handler to an element.
// --------------------------------------------------------------------------------
// Arguments:
//	- elm: element to assign event handler to [object]
//	- evType: event to handle (i.e. "load", "click") [string]
//	- fn: name of function which will handle the event [function]
//	- useCapture: use Event capturing model? [boolean]
// Returns:
//	- nothing
// --------------------------------------------------------------------------------
function owga_AddEvent(elm, evType, fn, useCapture) {
	if (elm.addEventListener) {
		elm.addEventListener(evType, fn, useCapture);
		return true;
	} else if (elm.attachEvent) {
		var r = elm.attachEvent("on" + evType, fn);
		return r;
	} else {
		elm.setAttribute("on" + evType, fn);
	}
}

