/***********************************************************/
/*            (C) 2003 Pablo Suárez González               */
/* _______________________________________________________ */
/*                                                         */
/* Scripts para el manejo de menúes desplegables. El panel */
/* por donde salen los menúes debe estar configurado como  */
/* una capa situada por encima de ellos. Al pasar sobre    */
/* el elemento interactivo, el menú correspondiente se     */
/* despliega hacia abajo con un setInterval que llama a    */
/* otra función para incrementar pixelTop. El hecho de que */
/* la página esté centrada obliga a usar un algoritmo para */
/* colocar las capas con posición absoluta.                */
/***********************************************************/




// Variables globales
var menues = new Array();		/* Array bidimensional con datos de los menúes */
menues[1] = new Array(189, 5, 77);	/* De cada menú se guarda: */
menues[2] = new Array(366, -10, 77);	/* posición absoluta desde el extremo de la tabla, */
menues[3] = new Array(582, 20, 77);	/* pixelTop recogido y pixelTop estirado */
var tirar = new Array(4);		/* Arrays donde se guardarán las referencias de los */
var recoger = new Array(4);		/* setInterval de cada menú */
	

// Colocación (x, y) de los menúes para cualquier resolución y tamaño de ventana:
// y es fija y se toma del array; x es la distancia constante desde el extremo de la
// tabla + la cantidad que varía según el ancho de ventana (ancho de ventana disponible-ancho tabla)/2
function colocarMenues()
	{
	var capa, i;
	var ancholibre = document.body.clientWidth - 745;
	for(i=1;i<menues.length;i++)
		{
		capa = document.all["menu"+i];
		capa.style.pixelTop = menues[i][1];
		if(ancholibre>0) capa.style.pixelLeft = Math.floor(ancholibre/2) + menues[i][0];
		else capa.style.pixelLeft = menues[i][0];
		}
	}


// Inicio del despliegue de un menú: cancela la recogida e incia un intervalo llamando a pulldown
function pull(num_menu)
	{						
	clearInterval(recoger[num_menu]);
	tirar[num_menu] = setInterval("pulldown("+num_menu+")", 50);
	}


// Inicio de la recogida de un menú: cancela el despliegue e inicia un intervallo llamando a drawup
function draw(num_menu)
	{
	clearInterval(tirar[num_menu]);
	recoger[num_menu] = setInterval("drawup("+num_menu+")", 50);
	}


// Incrementa el pixelTop de una capa de menú y elimina el intervalo cuando llega al tope
function pulldown(num_menu)
	{			
	var menu = document.all["menu"+num_menu];
	var speed = 15;

	if(menu.style.pixelTop<menues[num_menu][2]) menu.style.pixelTop += speed;
	else clearInterval(tirar[num_menu]);
	}


// Decrementa el pixelTop de una capa de menú y elimina el intervalo cuando llega al tope
function drawup(num_menu)
	{
	var menu = document.all["menu"+num_menu];
	var speed = 15;

	if(menu.style.pixelTop>menues[num_menu][1]) menu.style.pixelTop -= speed;
	else clearInterval(recoger[num_menu]);
	}


// Cambia las propiedades de una fila en un menú, según la opción sea 1 (destacada) ó 0 (normal)
function highlight(fila, num_menu, num_fila, opc)
	{
	var imagen = document.all["item"+num_menu+num_fila];
			
	if(opc==1)
		{
		fila.style.cursor = "hand";
		fila.style.backgroundColor = "#E6E6E6";
		imagen.src = "img/selec.gif";
		}
	else
		{
		fila.style.backgroundColor = "#FFFFFF";
		imagen.src = "img/nonselec.gif";
		}
	}
