// ulinx.co.uk - callout.js
// user callout functions
// copyright ulinx 2008

var nCurHeight = 300;

if (document.getElementById || document.all)
{
	document.write('<div id="calloutid">');
	document.write('</div>');
}

function getCalloutStyle()
{
	if (document.getElementById)
	{
		return document.getElementById("calloutid").style;
	}
	else
	{
		if (document.all)
		{
			return document.all.calloutid.style;
		}
	}
}

function getCalloutElement()
{
	if (document.getElementById)
	{
		return document.getElementById("calloutid");
	}
	else 
	{ 
		if (document.all)
		{
			return document.all.calloutid;
		}
	}
}

function getBody()
{
	if (!window.opera && document.compatMode && document.compatMode!="BackCompat") 
	{
		return document.documentElement;
	}
	else
	{
		return document.body;
	}
}

function imagecallout(sImage, nHeight, sCaption)
{
	if (nHeight > 0)
	{
		nCurHeight = nHeight;
	}
	else
	{
		nCurHeight = 300;
	}

	document.onmousemove = trackmouse;

 	sHTML = '<div style="padding: 5px; background-color: #FFF; border: 1px solid #888;">';
	sHTML = sHTML + '<div align="center" style="padding: 8px 2px 2px 2px"><font face="tahoma">' + sCaption + '</font><br />';
	sHTML = sHTML + '<img id="trackimageid" src="' + sImage + '" border="0"></div>';
	sHTML = sHTML + '</div>';

	getCalloutElement().innerHTML = sHTML;
	getCalloutStyle().display     = "inline";
	
}

function textcallout(sCaption)
{
    if( sCaption == "" )
    {
        hidecallout();
        return;

    }

	nCurHeight = 50;

	document.onmousemove = trackmouse;

	sHTML = '<div style="padding: 2px; background-color: #FFF; border: 1px solid #888; width: 300px">';
	sHTML = sHTML + '<div align="left" style="padding: 2px 2px 2px 2px;"><font face="tahoma">' + sCaption + '</font>';
	sHTML = sHTML + '</div>';
	sHTML = sHTML + '</div>';

	getCalloutElement().innerHTML = sHTML;
	getCalloutStyle().display     = "inline";

}

function hidecallout()
{

	getCalloutStyle().innerHTML = " ";
	getCalloutStyle().display   = "none";
	document.onmousemove        = "";
	getCalloutStyle().left      = "-500px";
}

function trackmouse(e)
{
	var xcoord = 10;
	var ycoord = 10;

	var docwidth  = 0;
	var docheight = 0;

	if( document.all ) 
	{
		docwidth  = getBody().scrollLeft + getBody().clientWidth;
		docheight = Math.min(getBody().scrollHeight, getBody().clientHeight);
	}
	else
	{
		docwidth  = window.innerWidth - 15;
		docheight = window.innerHeight;
	}

	if (typeof e != "undefined")
	{
		if (docwidth - e.pageX < 380)
		{
			xcoord = e.pageX - xcoord - 400; 
		} 
		else 
		{
			xcoord += e.pageX;
		}

		if (docheight - e.pageY < (nCurHeight + 110))
		{
			ycoord += e.pageY - Math.max(0,(110 + nCurHeight + e.pageY - docheight - getBody().scrollTop));
		} 
        else 
		{
			ycoord += e.pageY;
		}

	} 
	else
	{
		if (typeof window.event != "undefined")
		{
			if (docwidth - event.clientX < 380)
			{
				xcoord = event.clientX + getBody().scrollLeft - xcoord - 400; 
			} 
			else 
			{
				xcoord += getBody().scrollLeft+event.clientX
			}

			if (docheight - event.clientY < (nCurHeight + 110))
			{
				ycoord += event.clientY + getBody().scrollTop - Math.max(0,(110 + nCurHeight + event.clientY - docheight));
			} 
			else 
			{
				ycoord += getBody().scrollTop + event.clientY;
			}
		}
	}

	if (ycoord < 0) 
	{ 
		ycoord = ycoord * -1; 
	}

	getCalloutStyle().left = xcoord + "px";
	getCalloutStyle().top  = ycoord + "px";
}


