/*******************************************************************************
****** JAVASCRIPT PARA MENU DESPLEGABLE ****************************************
*******************************************************************************/
/*
    Creado por: Álvaro Marín
	  Fecha de creación: 2 de Noviembre de 2004
		Fecha de modificación: 17 de Diciembre de 2004
*/	
/****** DESCRIPCIÓN ************************************************************ 

Requerimientos: finddom.js

En este caso utilizamos el atributo "visibility" para ocultar o visualizar el
submenu. De este modo podemos obtener las dimensiones del submenu que queremos
visualizar para asignar la posición de este en pantalla sin tener que hacerlo
visible antes.

Desarrollamos dos funciones: una para mostrar la capa y otra para ocultarla.
  mostrar_capa() y ocultar_capa()

IDboton -> id del boton desde el que se activa el submenu
IDsubmenu -> id del submenu que se va ha mostrar
distrib -> horientacion del submenu, cuyas opciones son: derecha, izquierda,
arriba, debajo
totalSubmenus -> el número total de submenus que forman el barra de menu 


*******************************************************************************/


//****** Desarrollo de la función para mostrar capa ****************************

function mostrar_capa( IDboton, IDsubmenu, distrib, totalSubmenus )
{
	
  //*** DOM's del menu desde donde se llama a la función ***********************
	
	var domBoton = findDOM( 'boton'+IDboton, 0 );
	var domSubmenu = findDOM( 'submenu'+IDsubmenu, 1 );
	var domSubDIM = findDOM( 'submenu'+IDsubmenu, 0 );
	
  //****************************************************************************

  var botonPosLeft = domBoton.offsetLeft; // posición horizontal del botón
	var botonPosTop = domBoton.offsetTop;	 // posición vertical del botón
	var botonHeight = domBoton.offsetHeight; // alto del botón
	var botonWidth = domBoton.offsetWidth; // ancho del boton
	var submenuHeight = domSubDIM.offsetHeight; // alto total del submenu
	var submenuWidth = domSubDIM.offsetWidth; // ancho total del submenu

  // Ocultamos todos los submenus que estén visibles
	for( i = 1; i <= totalSubmenus; i++ )
	{
	  if( i != IDsubmenu )
	  {
		  var domSub =  findDOM( 'submenu'+i, 1 );
			var domBotones = findDOM( 'boton'+i, 0 );
						    
		  if ( domSub.visibility == 'visible' )
		  {
		    domSub.visibility = 'hidden';
				domBotones.className = 'no_act'; // cambiamos la clase del botón
	    }
		}
	}
		
	switch( distrib ) // Colocamos el submenu según la distribución elegida
  {
	  case 'derecha':
	    var SubmenuPosLeft = ( botonPosLeft + botonWidth ) + 'px'; // asignación de la posición horizontal del submenu
	    var SubmenuPosTop = botonPosTop + 'px'; // asignación de la posición vertical del submenu
		  break;
	  case 'izquierda':
	    var SubmenuPosLeft = ( botonPosLeft - submenuWidth ) + 'px'; // asignación de la posición horizontal del submenu
	    var SubmenuPosTop = botonPosTop + 'px'; // asignación de la posición vertical del submenu
			break;
	  case 'arriba':
	    var SubmenuPosLeft = botonPosLeft +  'px'; // asignación de la posición horizontal del submenu
		  var SubmenuPosTop = ( botonPosTop - submenuHeight ) + 'px'; // asignación de la posición vertical del submenu
		    
		  if ( submenuWidth < botonWidth )
		  {
	      domSubmenu.width = botonWidth + 1 + 'px';
		  }
		  break;
	  case 'abajo':
	    var SubmenuPosLeft = botonPosLeft + 'px';  // asignación de la posición horizontal del submenu
	    var SubmenuPosTop = ( botonPosTop +  botonHeight ) + 'px';  // asignación de la posición vertical del submenu
			
		  if ( submenuWidth < botonWidth )
		  {
	      domSubmenu.width = botonWidth + 1 + 'px';
		  }
		  break;
		default:
		  var SubmenuPosLeft = botonPosLeft + 'px';  // asignación de la posición horizontal del submenu
	    var SubmenuPosTop = ( botonPosTop +  botonHeight ) + 'px';  // asignación de la posicion vertical del submenu
			break;
	} 
		
	domSubmenu.top = SubmenuPosTop; // posición vertical del submenu
	domSubmenu.left = SubmenuPosLeft; // posición horizontal del submenu
	domSubmenu.visibility = 'visible'; // mostramos el submenu
	domSubmenu.zIndex = 1000;
	domBoton.className = 'act'; // cambiamos la clase del botón
} 

//******************************************************************************

//****** Desarrollo de la función para ocultar capa ****************************

function ocultar_capa( IDboton, IDsubmenu )
{
  //*** DOM's del menu desde donde se llama a la función ***********************
	
	var domBoton = findDOM( 'boton'+IDboton, 0 );
	var domSubmenu = findDOM( 'submenu'+IDsubmenu, 1 );
	
  //****************************************************************************

  domSubmenu.visibility = 'hidden'; // mostramos el submenu
	domBoton.className = 'no_act'; // cambiamos la clase del botón
	
}

//****************************************************************************** 