//------- MENU.JS --------
/*************************************************************************************************************************
Nombres que deben tener los botones: boton0, boton1,...,botonM
Nombres que deben tener las opciones: opcion0,opcion1...,opcionN

Ejemplo de implementación en MENU
id="boton1" style="visibility: show; position: relative; top : 0; left : 0px; z-index:10;" 
onmouseover="mover('opcion1',0)" onmouseout="volver('opcion1',0)"

Ejemplo de implementación en OPCION
id="opcion1" style="visibility: hidden; position: absolute; top : 20px; left : 0px; background-color: transparent;-moz-opacity:.8; filter:alpha(opacity=85);" 
onmouseover="mover('opcion1',0)" onmouseout="volver('opcion1',0)"


num es un identificador, relaciona el menu con sus opciones
***********************************************************************************************************************/





//------------ SOBRE LAS VARIABLES DE CONTROL
/******************************************************************************************************
vel = velocidad inicial (default = 0)
acel = aceleracion cuando va (default = 0.5)
acel2 = aceleracion cuando viene (default = 0.15)
pos_inicio = posicion de menu inactivo (default = 0);
pos_final = posicion final del menu (default = 100);
posi, der, izq, sen, num: son variables y arreglos que se utilizan en las funciones. No cambiar.
******************************************************************************************************/
//var pos_inicio = 50;
//var pos_final = 120;
var vel = 1;
//var acel = 0.6;
//var acel2 = 1;


var posi = new Array(25,25,25,25,25,25,25,25,25,25,110,110,110,110,110,110,110,110,110,110);
var der = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
var izq = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
var sen = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
var parar = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
var num;


function mover(acel,menu,num,pos_inicio,pos_final)
{
// si se esta yendo hacia la izquierda finaliza el proceso
clearInterval(izq[num]);
// si no esta en el final comienza el proceso "derecha'
if (sen[num] != 2)
	der[num] = setInterval("derecha(\""+menu+"\","+num+","+pos_inicio+","+pos_final+","+acel+")",15);
}



function volver(acel2,menu,num,pos_inicio,pos_final)
{
// si se esta yendo hacia la derecha finaliza el proceso
clearInterval(der[num]);
// si no esta en el inicio comienza el proceso "izquierda"
if (sen[num] != 0)
	izq[num] = setInterval("izquierda(\""+menu+"\","+num+","+pos_inicio+","+pos_final+","+acel2+")",15);
	

}



function derecha (menu,num,pos_inicio,pos_final,acel)
{
document.getElementById(menu).style.visibility = "visible";
// si NO se llegó al final
if (posi[num] < pos_final)
	{
	vel = vel + (0.5+vel)*(acel*acel)/2; // ecuacion para la velocidad, podría ser también simplemente vel = vel + acel;
	posi[num] = posi[num] + vel;
	document.getElementById(menu).style.left = posi[num];
	sen[num] = 1;
	}
// si SE llegó al final
else 
	{
	// establece los valores finales de las variables para cuando llegó al tope
	vel = 0;
	posi[num] = pos_final;
	clearInterval(der[num]);
	sen[num] = 2;
	}

return false;
}


function izquierda (menu,num,pos_inicio,pos_final,acel2)
{
//document.getElementById(menu).style.visibility = "visible";
if (posi[num] > pos_inicio)
	{
	vel = vel + acel2;
	posi[num] = posi[num] - vel;
	document.getElementById(menu).style.left = posi[num];
	sen[num] = 1;
	}
else 
	{
	// establece los valores finales de las variables para cuando llegó al inicio
	vel = 0;
	posi[num] = pos_inicio;
	clearInterval(izq[num]);
	sen[num] = 0;
	document.getElementById(menu).style.visibility = "hidden";
	}

return false;
}

