var HoverInfo = document.createElement ( 'div' );
HoverInfo.className = 'HoverInfo';
HoverInfo.style.position = 'absolute';
HoverInfo.style.width = '160px';
HoverInfo.style.height = '2px';
HoverInfo.style.background = '#fff';
HoverInfo.style.color = '#000';
HoverInfo.style.border = '1px solid #000';
HoverInfo.style.visibility = 'hidden';
HoverInfo.style.zIndex = 10;
HoverInfo.ticker = 0;
HoverInfo.tickerTarget = 0;
var HoverTicks = 5;
setOpacity ( HoverInfo, 0 );
document.getElementById ( 'javascript' ).appendChild ( HoverInfo );

/**
 * Adjust alpha for the hover info box if it is over a target or not
**/
function HoverInfoTickerAlpha ( )
{
	var over = false;
	
	var _wox = getElementLeft ( document.getElementById ( 'projectbox' ) );
	var _woy = getElementTop ( document.getElementById ( 'projectbox' ) );

	if ( document._projectelement )
	{
		var mx = mousex - _wox;
		var my = mousey - _woy;
		for ( var a in document.HoverItems )
		{
			if ( 
				mx >= document.HoverItems[ a ].x && mx < document.HoverItems[ a ].x + document.HoverItems[ a ].w &&
				my >= document.HoverItems[ a ].y && my < document.HoverItems[ a ].y + document.HoverItems[ a ].h 
			)
			{
				HoverInfo.tickerTarget = HoverTicks;
				if ( HoverInfo.childNodes[ 1 ] ) HoverInfo.style.height = getElementHeight ( HoverInfo.childNodes[ 1 ] ) + 'px';
				break;
			}
		}
		if ( HoverInfo.tickerTarget > HoverInfo.ticker )
			HoverInfo.ticker += 0.5;
	}
	if ( HoverInfo.tickerTarget < HoverInfo.ticker )
	{
		HoverInfo.ticker--;
	}
	else if ( HoverInfo.ticker == 0 )
	{
		HoverInfo.style.visibility = 'hidden';
	}
	else if ( HoverInfo.ticker == HoverInfo.tickerTarget )
	{
		HoverInfo.tickerTarget = 0;
	}
	if ( HoverInfo.ticker > 0 ) setOpacity ( HoverInfo, ( HoverInfo.ticker * 0.8 ) / HoverTicks );
}
setInterval ( 'HoverInfoTickerAlpha()', 50 );

addOnload ( 
	function ( )
	{
		addAction ( function ( )
		{
			if ( document._projectelement && HoverInfo.ticker > 0 )
			{
				HoverInfo.style.top = ( mousey - 30 ) + 'px';
				if ( !document._width )
					document._width = getDocumentWidth ( );
				if ( mousex + 50 + 155 > document._width )
					HoverInfo.style.left = ( mousex - 210 ) + 'px';
				else
					HoverInfo.style.left = ( mousex + 50 ) + 'px';
				HoverInfo.style.visibility = 'visible';
			}
			else if ( HoverInfo.ticker <= 0 )
			{
				document._projectelement = false;
			}
		}
		);
	}
);

/**
 * Load project info through ajax
**/
function loadProjectInfo ( varid, ele )
{
	document._projectelement = ele;
	HoverInfo.tickerTarget = HoverTicks;
	if ( document.HoverItems )
	{
		var obj = document.HoverItems[ varid ];
		HoverInfo.innerHTML = 
			'<div class="paddedContent compressed">' +
			'<p><strong style="color: ' + obj.color + '">' + obj.name + '</strong></p>' +
			'<p><em>Location:</em> ' + obj.location + '</p>' +
			'<p><em>Date:</em> ' + obj.date + '</p>' +
			'</div>';
		if ( HoverInfo.childNodes[ 1 ] )
			HoverInfo.style.height = getElementHeight ( HoverInfo.childNodes[ 1 ] ) + 'px';
		else if ( HoverInfo.childNodes[ 0 ] )
			HoverInfo.style.height = getElementHeight ( HoverInfo.childNodes[ 0 ] ) + 'px';
		HoverInfoTickerAlpha ( );
	}
}

function fetchProjectNames ( lid )
{
	document.coordinateJax = new bajax ( );
	document.coordinateJax.openUrl ( 'work/loadprojects/?lid=' + lid, 'get', true );
	document.coordinateJax.onload = function ( )
	{
		eval ( this.getResponseText ( ) );
	}
	document.coordinateJax.send ( );
}
