var selectedHyperLinkG = '';

function LinkTracker()
{
	this.allLinks = document.getElementsByTagName('a');
}

LinkTracker.prototype.initLinks = function()
{
	for(var i=0; i < this.allLinks.length; i++)
	{
		this.allLinks[i].onclick = function()
		{
			selectedHyperLinkG = this.href;
			var link = reformatLink(selectedHyperLinkG);
			processLinkReq(link);
			return false;
		}
	}
}

function cleanHref(href)
{
	if(href.indexOf('#') > 0)
	{
		href = href.substring(0, href.indexOf('#'));
	}
	else if(href.indexOf('?') > 0)
	{
		href = href.substring(0, href.indexOf('?'));
	}
	return href;
}

function processLinkReq(href)
{
	processLinksReqG = createXMLHttpRequest();
	
	var nameValue = 'action=processLink&' + 'href=' + cleanHref(href);
	
	httpRequest(processLinksReqG, 'POST', '/LinkTracker.php', true, processLinkResp, nameValue);
}



function processLinkResp()
{
	if(processLinksReqG.readyState == 4)
	{
		if(processLinksReqG.status == 200)
		{
			location.href = selectedHyperLinkG;
		}
	}
}

function getNameValue(links)
{
	var nameValue = '';
	
	for(var i=0; i < links.length; i++)
	{
		nameValue += 'link_' + i + '=' + links[i];
		
		if(i < links.length-1)
		{
			nameValue += '&';
		}
	}
	return nameValue;
}


function reformatLink(derivedUrl)
{
	var host = 'http://' + location.host;
	
	if(derivedUrl.substring(0, host.length) == host)
	{
		return '/' + derivedUrl.substring(host.length+1, derivedUrl.length);
	}
	else
	{
		return derivedUrl;
	}
}
