//Existem 3 níveis de menus
var NUM_MENUS = 4;
var SelectedMenu = new Array(-1,-1,-1,-1);
var SelectedMenuClassOff = new Array(-1,-1,-1,-1);
var VisibleSubmenu = new Array(-1,-1,-1);
var bulletStr = '&bull;&nbsp;&nbsp;';

//-------------------------------------
// Activates a menu
//-------------------------------------
function SelectMenu(MenuId, menulevel, classOn, classOff) {
	cancelTimeout();

	//If the menu is already selected do nothing
	if (SelectedMenu[menulevel] == MenuId)
		return;

	//First deactivate all the sub menus
	UnselectMenu(menulevel);

	//Save the active menu info
	SelectedMenu[menulevel] = MenuId;
	SelectedMenuClassOff[menulevel] = classOff;

	//Activate the menu
	MenuId.className = classOn;

}

//-------------------------------------
// Desactivates a menu 
//-------------------------------------
function UnselectMenu(menulevel) {
	cancelTimeout();
	for (i=menulevel; i<NUM_MENUS; i++) {
		if (i<NUM_MENUS-1) HideSubmenu(i);
		if (SelectedMenu[i] != -1) {
			SelectedMenu[i].className = SelectedMenuClassOff[i];
			SelectedMenu[i] = -1;
		}
	}
}

//-------------------------------------
// Shows a menu
//-------------------------------------
function ShowSubmenu(MenuId, SubmenuId, menulevel, classOn, classOff) {
	cancelTimeout();
	if (VisibleSubmenu[menulevel] == SubmenuId)
		return;
	UnselectMenu(menulevel, classOff);
	SelectMenu(MenuId, menulevel, classOn, classOff);
	SubmenuId.style.visibility = 'visible';
	VisibleSubmenu[menulevel] = SubmenuId;
}

//-------------------------------------
// Hides a menu
//-------------------------------------
function HideSubmenu(menulevel) {
	if (VisibleSubmenu[menulevel] != -1) {
		VisibleSubmenu[menulevel].style.visibility = 'hidden';
		VisibleSubmenu[menulevel] = - 1;
	}
} 


var hideMenuTimer;
//-------------------------------------
function cancelTimeout() {
	if (hideMenuTimer) clearTimeout(hideMenuTimer);
	hideMenuTimer = null;
}

//-------------------------------------
function startTimeout(menulevel) {
	if (hideMenuTimer) clearTimeout(hideMenuTimer);
	hideMenuTimer = setTimeout("UnselectMenu("+menulevel+")", 700);
}
