var active = null;		
var activeName = null;	

function areAnyActive()
{
	return active != null;
}	

function menuMouseOver(button, name)
{
	if (!areAnyActive()) 
	{
		//button.src='images/' + name  + '_button_selected.png'; 
		showMenu(button, name);	
	}
	else if (areAnyActive() && active != button)
	{
		transition(button, name);
	}
}

function menuMouseOut(e, button, name)
{
    if ( !e ) {
      var e = window.event;
    }
    var f = e.target || e.srcElement;
    var g = e.relatedTarget || e.toElement;

    if (g.id != 'menu_item_data')
    {
  	    hideMenu(button, name);
  	}
    
//	if (!areAnyActive() || activeName != name)
//	{
		//button.src = 'images/' + name + '_button.png';
//	}
}



function transition(button, name)
{
	//active.src = 'images/' + activeName + '_button.png';
	hideMenu(active, activeName);
	//button.src = 'images/' + name + '_button_selected.png';
	showMenu(button, name);
}

//function menuMouseClick(button, name)
//{
//	// if this is a transition
//	if (areAnyActive()) 
//	{ 
//		hideMenu(button, name);
//	}
//	else 
//	{
//		showMenu(button, name);	
//	}
//}

function showMenu(button, name)
{
	// new click
	var e = document.getElementById(name + '_menu');
	var e2 = document.getElementById(name + '_button');

	if (e != null)
	{
		var modifier = 0;
		
		//alert('modifier:' + modifier);
		
		// relative position
		var position = findPosition(button);
		e.style.left = position[0] - modifier;
		e.style.top = position[1] + 30;
	
		// change to visible
		e.style.display = 'block';
	}

	active = button;
	activeName = name;
}

function hideMenu(button, name)
{
	// new click
	var e = document.getElementById(name + '_menu');

	// change to visible
	if (e != null)
	{
		e.style.display = '';
	}

	active = null;
	activeName = null;
}


function findPosition(obj) 
{
	var left = 0;
	var top = 0;

	if (obj.offsetParent) 
	{
		do 
		{
			left += obj.offsetLeft;
			top += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}
	return [left,top];
}
