var rolloverImgs = [];
var currentMenu = null;
var currentTD = null;
var timer = null;

function preload( img )
{
	var i = new Image();
	
	i.src = img;
	
	rolloverImgs[ rolloverImgs.length ] = i;
}

function preloadMenu( img )
{
	preload( img + '.jpg' );
	preload( img + '_2.jpg' );
}

function swapImg( link, on )
{
	var img = link.getElementsByTagName( 'img' )[0];
	var nome = img.src.replace( /(_2)?\.jpg$/, '' );
	
	if( on )
		nome += '_2';
	
	img.src = nome + '.jpg';
}

function getAbsLeft( el )
{
	var l = el.offsetLeft;

	while( el.offsetParent != null ) {
		var parent = el.offsetParent;
		
		l += parent.offsetLeft;
		el = parent;
	}
		
	return( l );
}

function getAbsTop( el )
{
	var t = el.offsetTop;

	while( el.offsetParent != null ) {
		var parent = el.offsetParent
		
		t += parent.offsetTop;
		el = parent;
	}

	return( t );
}

function openMenu( td, menu )
{
	var div = ( menu == '' ) ? null : document.getElementById( menu );

	closeMenuCallback();
	swapImg( td, true );
	
	if( div ) {
		var back = document.getElementById( 'menuBackground' );
		var posX = getAbsLeft( td );
		var posY = getAbsTop( td ) + 35;		
	
		div.style.display = 'block';
		div.style.top     = posY;
		div.style.left    = posX;
	
		back.style.display = 'block';
		back.style.top     = div.style.top;
		back.style.left    = div.style.left;
		back.style.width   = div.clientWidth;
		back.style.height  = div.clientHeight;
	}
	
	currentMenu = div;
	currentTD   = td;
}

function closeMenu()
{
	if( currentMenu )
		timer = setTimeout( 'closeMenuCallback()', 800 );
}

function resetTimer()
{
	if( timer ) {
	
		clearTimeout( timer );
		
		timer = null;
	}	
}
	
function closeMenuCallback()
{
	resetTimer();
		
	if( currentTD ) {
		
		swapImg( currentTD, false );
		
		currentTD = null;
	}

	if( currentMenu ) {
		var back = document.getElementById( 'menuBackground' );
				
		currentMenu.style.display = 'none';
		back.style.display        = 'none';
		
		currentMenu = null;
	}
}

function menuItemOver( item )
{
	resetTimer();
}

function menuItemOut( item )
{
	closeMenu();
}
