/*****************************************************************************/
/********   CÓDIGO QUE SE EJECUTA DURANTE LA CARGA DE LA PÁGINA   ************/
/*****************************************************************************/

// Arrays para precargar imágenes de los botones pulsados
// La variable "ruta_botones" está definida en "portal_cas.js" ó "portal_val.js"
var botones       = Array();
var botones_over  = Array();
var botones_click = Array();
for(var cont_img = 1; cont_img <= 5; cont_img++)
{ 
  botones[cont_img] = new Image();
  botones[cont_img].src = ruta_botones+"/boton"+cont_img+"a.gif"; 

  botones_click[cont_img] = new Image();
  botones_click[cont_img].src = ruta_botones+"/boton"+cont_img+"b.gif";

  botones_over[cont_img] = new Image();
  botones_over[cont_img].src = ruta_botones+"/boton"+cont_img+"c.gif";
}	


// ****************************************************************************** 
// Cuando la página esté cargada completamente, se llama a la función inicializar

window.onload=inicializar;

// ****************************************************************************** 


/***********************************/
/********   FUNCIONES   ************/
/***********************************/

// Función que  que responde al evento window.onload
function inicializar()
{
	prepararMenus();
	enlacesExternos();
	preparaImagenEstadistica();
	document.getElementById("form_buscar").q.value = "";
    document.getElementById("form_buscar").onsubmit=validarFormularioBusqueda;
//	document.getElementById("form_buscar").words.focus();
	return;
}

// Función que hace los preparativos para que funcionen los menús
function prepararMenus()
{
	var menu = null;
	var opcion = null;
	var enlace = null;

	// Si el navegador es antiguo, no se hace nada
	if (!document.getElementsByTagName || !document.getElementById) return;

	// Onjeto que corresponde al menún principal
	menu = document.getElementById("menu_principal");
		
	// Para cada uno de los hijos ...
	for (var i = 0; i < menu.childNodes.length; i++) 
	{
		if(menu.childNodes[i].nodeName=="LI")  // ... que sea un elemento LI
		{
			opcion = menu.childNodes[i];

			// Se buscan sus hijos...
			for (var j = 0; j < opcion.childNodes.length; j++) 
			{
				if(opcion.childNodes[j].nodeName=="A") // ... que sean un elemento A (los enlaces de los botones)
				{
					enlace = opcion.childNodes[j];

					enlace.onmouseover = opcionOver;	// Y se establecen los métodos a llamar en los eventos				
					enlace.onmouseout  = enlace.onblur = opcionOut;										
					enlace.onclick     = opcionClick;
				}				
			}			
		}
	}
}


function opcionOver() 
{		
	var submenu = null;
	var imagen = null;
	var indice_menu = 0;

	// Si el navegador es antiguo, no se hace nada
	if (!document.getElementsByTagName || !document.getElementById) return;

	submenu = this.parentNode;  // El submenu del botón
	imagen  = submenu.getElementsByTagName('A')[0].getElementsByTagName('IMG')[0]; // La imagen del botón

	indice_menu = submenu.id.substring(submenu.id.length-1, submenu.id.length);

	// Mostrar la imagen OVER, sólo si el menú no está ya desplegado, si no no hacer nada
	if(!submenu.desplegado || submenu.desplegado == false)
	{
		imagen.src = botones_over[indice_menu].src;
//		imagen.src = imagen.src.substring(0, imagen.src.lastIndexOf(".")-1)+"c.gif";
	}

	return;
}


// Función que responde al evento onMouseOut de los enlaces de los botones
function opcionOut() 
{		
	var submenu = null;
	var imagen = null;
	var indice_menu = 0;

	// Si el navegador es antiguo, no se hace nada
	if (!document.getElementsByTagName || !document.getElementById) return;

	submenu = this.parentNode; // El submenu del botón		
	imagen  = submenu.getElementsByTagName('A')[0].getElementsByTagName('IMG')[0]; // La imagen del botón
			
	// Mostrar la imagen inicial, sólo si el menú no está ya desplegado, si no no hacer nada
	if(!submenu.desplegado || submenu.desplegado == false)
	{
		indice_menu = submenu.id.substring(submenu.id.length-1, submenu.id.length);
		imagen.src = botones[indice_menu].src;		
//		imagen.src = imagen.src.substring(0, imagen.src.lastIndexOf(".")-1)+"a.gif";
	}

	return;
}


// Función que responde al evento onClick de los enlaces de los botones
function opcionClick() 
{
	var menu = null; 
	var submenu = null;
	var imagen = null;
	var indice_menu = 0;
	
	// Si el navegador es antiguo, no se hace nada y se devuelve true para ejecutar el enlace
	if (!document.getElementsByTagName || !document.getElementById) return true;

	// <ul> que es el padre de todos los botones
	menu = document.getElementById("menu_principal");
	
	// Para cada uno de los botones
	for (var i = 0; i < menu.childNodes.length; i++)				
	{
		if(menu.childNodes[i].nodeName=="LI")
		{ 
			// Se obtiene el submenú que cuelga del botón (ul)
			submenu = menu.childNodes[i];
			// Se busca la imagen y en caso de estar PULSADO, se pone la alterativa (NO pulsado)
			imagen  = submenu.getElementsByTagName('A')[0].getElementsByTagName('IMG')[0];				

			indice_menu = submenu.id.substring(submenu.id.length-1, submenu.id.length);

			// Si ES el botón QUE SE HA PULSADO
			if(submenu == this.parentNode) 
			{
				// SE CAMBIA LA CLASE (para mostrar/ocultar el menú)
				submenu.className = (!submenu.desplegado || submenu.desplegado == false)?"pulsado":"";
				// Se le cambia el estado
				submenu.desplegado = !submenu.desplegado;
			
				// Se busca la imagen y se pone la alterativa (pulsado/no pulsado)
				if(submenu.desplegado && submenu.desplegado == true)
				{ imagen.src = botones_click[indice_menu].src; }
				//{ imagen.src = imagen.src.substring(0, imagen.src.lastIndexOf(".")-1)+"b.gif"; }
				else
				{ imagen.src = botones_over[indice_menu].src; } 
				//{ imagen.src = imagen.src.substring(0, imagen.src.lastIndexOf(".")-1)+"c.gif"; }
			}
			else // Si NO es el botón QUE SE HA PULSADO
			{				
				if(submenu.desplegado && submenu.desplegado == true)
				{imagen.src = botones[indice_menu].src; } 
				//{ imagen.src = imagen.src.substring(0, imagen.src.lastIndexOf(".")-1)+"a.gif"; }

				// SE CAMBIA LA CLASE (para OCULTAR el menú)
				submenu.className = "";
				submenu.desplegado = false;							
			}			
		}
	}										
	return false;	// Para que no se acceda a la página que está referenciada en el enlace
}



// Función que soluciona el problema de que en XHTML Strict no está permitido el atributo
// target en los enlaces.
// La función recorre los enlaces de las páginas con el atributo rel="external" y los 
// convierte (mediante DOM, que sí está permitido) a target="_blank".
function enlacesExternos() 
{
	var anchors = null;
	
	// Si el navegador es antiguo, no se hace nada
	if (!document.getElementsByTagName || !document.getElementById) return;

	anchors = document.getElementsByTagName("a");

	for (var i=0; i<anchors.length; i++) 
	{
		var anchor = anchors[i];
		if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external")
		{
			anchor.target = "_blank";
		}
	}
	return;
} 

// Prepara la propiedad SRC de la imagen ESTADÍSTICA con las propiedades de la página (ALTURA, ANCHURA, COLOR)
function preparaImagenEstadistica()
{
	if (document.getElementById)
	{
		document.getElementById("img_estadistica").src = "/contador/img_estadistica.php?w="+screen.width+"&h="+screen.height+"&c="+screen.colorDepth;
	}
}


// Función que valida el formulario
function validarFormularioBusqueda()
{
	var retorno = true;
	
	if(this.q.value == "")
	{
		alert("Debe introducir el/los término(s) de búsqueda");
		retorno = false;
	}	
	return retorno;
}