
var gCapesMenu = Array();
var gCapesSubmenu = Array();
var gTimeoutsMenu = Array();
var gAlphaMenu = Array();
var gAlphaFinalMenu = Array();
var gColorOpMenu = Array();
var gMenuSel = -1;

function menu_init()
{
	if (gMenuSel != ""){
		gCapesMenu[gMenuSel] = document.getElementById("highlightMenuDiv_"+gMenuSel);
	}
}

function menu_setAlpha(obj, a)
{
	if (!obj || !obj.style) return;
	obj.style.filter = "alpha(opacity=" + a + ");";
	obj.style.MozOpacity = a/100.0;
	obj.style.opacity = a/100.0;
	if (a == 0)	obj.style.display = "none";
	else 		obj.style.display = "block";
}

function menu_setClass(obj, strClass)
{
	if (!obj || !obj.style) return;
	obj.setAttribute("class", strClass);
	obj.setAttribute("className", strClass);

}

function menu_setActive(menuSeleccionat)
{
	gMenuSel = menuSeleccionat;
}

/**
 *	Canvia l'alpha del highlight (fons) del menu i dels submenus
 *
 *	@param idCapa (string) ID del DIV a canviar l'alpha
 *	@param afinal (int) Alpha que es vol al final (normalment o zero si mouseOut o 100  si mouseOver)
 */
function menu_canviaAlpha(idCapa, afinal)
{
	var opSel = (!isNaN(gMenuSel) && idCapa == gMenuSel) ? true : false;
	
	if(gCapesMenu[idCapa] == undefined) gCapesMenu[idCapa] = document.getElementById("highlightMenuDiv_"+idCapa);
	if(gCapesMenu[idCapa] == undefined) alert("Alarm");

	if(gCapesSubmenu[idCapa] == undefined) gCapesSubmenu[idCapa] = document.getElementById("submenuDiv_"+idCapa);
	
	// guaqrdem l'alpha final si s'ha cridat la funció per un event i no un setTimeout()
	if (afinal != -1) gAlphaFinalMenu[idCapa] = afinal;

	afinal = gAlphaFinalMenu[idCapa];

	// Si afinal != 0 suposem que hem d'incrementar l'alpha.
	var incAlp = 20;
	if (afinal == 0) incAlp = -incAlp;

	if (gColorOpMenu[idCapa] == undefined) gColorOpMenu[idCapa] = document.getElementById("colorMenuA_"+idCapa);
	if (gColorOpMenu[idCapa] == undefined) alert("Alarm");

	var a = (gAlphaMenu[idCapa] != undefined) ? gAlphaMenu[idCapa] : 0;

	var tA = a + incAlp;
	if (incAlp > 0 && tA > afinal) tA = afinal;
	else if (incAlp < 0 && tA < afinal) tA = afinal;

	// Canviem el color del menu
	if (!opSel){
		if (incAlp > 0 ) 	menu_setClass(gColorOpMenu[idCapa], "blau");
		else 							menu_setClass(gColorOpMenu[idCapa], "blanc");
	}
	
	gAlphaMenu[idCapa] = tA;
	menu_setAlpha(gCapesMenu[idCapa], tA);
	
	// Canviem l'alpha del submenu (si es que n'hi ha)
	if (gCapesSubmenu[idCapa]){
		if (tA > 0 && gCapesSubmenu[idCapa].style.display != "block") gCapesSubmenu[idCapa].style.display = "block";
		menu_setAlpha(gCapesSubmenu[idCapa], tA);
		if (tA <= 0)  gCapesSubmenu[idCapa].style.display = "none";
	}
	
	// Si no hem acabat, tornem a quridar la funció amb un setTimeout
	if (tA != afinal){
		if(gTimeoutsMenu[idCapa] != undefined) {
			clearTimeout(gTimeoutsMenu[idCapa]);
		}
		gTimeoutsMenu[idCapa] = setTimeout("menu_canviaAlpha("+idCapa+", -1);", 20);
	}
		
}

