// WebDozerClt.Web.ExitTracking Version 1.3
// José Proença
// 2008-02-11


// References: WebDozerClt
if (!('WebDozerClt' in this))
	alert('Error WebDozerClt.Web.ExitTracking.00. WebDozerClt not found.');

// References: WebDozerClt.Web
if (!('Web' in WebDozerClt))
	alert('Error WebDozerClt.Web.ExitTracking.00. WebDozerClt.Web not found.');

// References: WebDozerClt.Web.Url
if (!('Url' in WebDozerClt.Web))
	alert('Error WebDozerClt.Web.ExitTracking.00. WebDozerClt.Web.Url not found.');


if (!('ExitTracking' in WebDozerClt.Web))
	WebDozerClt.Web.ExitTracking = new Object();

WebDozerClt.Web.ExitTracking.HighjackTags = function()
{
	WebDozerClt.Web.ExitTracking._HighjackElements(document.body, window.location + '');
}

WebDozerClt.Web.ExitTracking.Track = function(originalURL, exitURL, originalOnClick)
{
	this.originalURL = originalURL;
	this.exitURL = exitURL;
	this.originalOnClick = originalOnClick;
}

WebDozerClt.Web.ExitTracking.CallServer = function(e)
{
	var exit = true;
	if (this.webDozerExitTracking.originalOnClick && this.webDozerExitTracking.originalOnClick != null)
		exit = this.webDozerExitTracking.originalOnClick(e);
	
	if (typeof(exit) == 'undefined')
		exit = true;
	
	if (exit == true)
	{
		if (!e)
			e = event;
	
		var origUrl = this.webDozerExitTracking.originalURL;
		var trkUrl = WebDozerClt.Web.Url.BuildProjectURL('ExitTracking.htm', origUrl);
		trkUrl = WebDozerClt.Web.Url.AddQueryParam(trkUrl, 'originurl', origUrl);
		trkUrl = WebDozerClt.Web.Url.AddQueryParam(trkUrl, 'posid', e.clientX + ',' + e.clientY);
		trkUrl = WebDozerClt.Web.Url.AddQueryParam(trkUrl, 'timeid', (new Date()).valueOf());
		trkUrl = WebDozerClt.Web.Url.AddQueryParam(trkUrl, 'exitUrl', this.webDozerExitTracking.exitURL);
// alert(trkUrl);
		var img = document.createElement('IMG');
		img.style.display = "none";
		document.appendChild(img);
		img.src = trkUrl;
	}
	return exit;
}

WebDozerClt.Web.ExitTracking._HighjackElements = function(startNode, originalURL)
{
	if (startNode && 'tagName' in startNode)
	{
		if (startNode.tagName == 'A' || startNode.tagName == 'AREA')
		{
			var href = startNode.href;
			var protocol = startNode.protocol.toLowerCase();
			var host = startNode.host.toLowerCase();
			if (href != null && href.length > 0 && (protocol.substr(0,5) == 'http:' || protocol.substr(0,6) == 'https:' || protocol.substr(0,7) == 'mailto:' ) && host != window.location.host.toLowerCase() && host.substr(0, 11) != "www.deditor")
			{
				startNode.webDozerExitTracking = new WebDozerClt.Web.ExitTracking.Track(originalURL, href, startNode.onclick);
				startNode.onclick = WebDozerClt.Web.ExitTracking.CallServer;
			}
		}
	}
	
	if (startNode && 'childNodes' in startNode && startNode.childNodes != null)
	{
		var n;
		for(n=0; n < startNode.childNodes.length; n++)
			this._HighjackElements(startNode.childNodes.item(n), originalURL);
	}
}

WebDozerClt.Web.BodyOnload.Append(WebDozerClt.Web.ExitTracking.HighjackTags);

