/*********************************************************************
 * Funcion constructora de objectos creadores de botones, los parámetros deben
 * ser objetos de tipo Style.
 * Para que el funcionamiento sea consistente se recomienda que mouseFuera
 * corresponda con el estilo inicial del botón, pero no es
 * @param estiloSobre El estilo que se debe aplicar al botón cuando el mouse
 * pasa sobre él.
 * @param estiloFuera El estilo que se debe aplicar al botón cuando el mouse
 * sale de su área.
 * @param estiloAbajo El estilo que se debe aplicar al botón cuando el mouse
 * es presionado sobre el.
 * @param estiloArriba El estilo que se debe aplicar al botón cuando el mouse
 * es liberado (se deja de presionar el botón).
 *********************************************************************/
function descriptorBoton(estiloSobre,estiloFuera,estiloAbajo,estiloArriba) {
	this.estiloSobre = estiloSobre;
	this.estiloFuera = estiloFuera;
	this.estiloAbajo = estiloAbajo;
	this.estiloArriba = estiloArriba;
}

/*********************************************************************
 * Funcion constructora de estilos para botones. Con esta función se pueden
 * construir diferentes estilos que pueden ser utilizador con los descriptores
 * de botones. Sus parámetros se dividen en cuatro partes:
 * 1. Fuentes (estilo, peso, familia)
 * 2. Texto (alineamiento, decoración)
 * 3. Borde (general, izquierda, derecha, arriba, abajo).
 * 4. Fondo y color (background,color), información general del background
 * Cuando no se desea especificar un parámetro se debe utilizar ''.
 *********************************************************************/
function estiloBoton(
	// fuente
	fontStyle,fontWeight,fontFamily,
	// texto
	textAlign,textDecoration,
	//borde
	border,borderLeft,borderRight,borderTop,borderBottom,
	//fondo y color
	background,color)
{
	this.fontStyle = fontStyle;
	this.fontWeight = fontWeight;
	this.fontFamily = fontFamily;
	this.textAlign = textAlign;
	this.textDecoration = textDecoration;
	this.border = border;
	this.borderLeft = borderLeft;
	this.borderRight = borderRight;
	this.borderTop = borderTop;
	this.borderBottom = borderBottom;
	this.background = background;
	this.color = color;
}

/*********************************************************************
 * Funciones para el manejo de botones.
 *********************************************************************/
function mouseSobre(nomElem,descriptor) {
	elem = document.getElementById(nomElem);

	// Modificaciones de la fuente
	if(descriptor.estiloSobre.fontStyle != '')
		elem.style.fontStyle = descriptor.estiloSobre.fontStyle;
	if(descriptor.estiloSobre.fontWeight != '')
		elem.style.fontWeight = descriptor.estiloSobre.fontWeight;
	if(descriptor.estiloSobre.fontDecoration != '')
		elem.style.fontDecoration = descriptor.estiloSobre.fontDecoration;
	if(descriptor.estiloSobre.fontFamily != '')
		elem.style.fontFamily = descriptor.estiloSobre.fontFamily;

	// Modificaciones del texto
	if(descriptor.estiloSobre.textAlign != '')
		elem.style.textAlign = descriptor.estiloSobre.textAlign;
	if(descriptor.estiloSobre.textDecoration != '')
		elem.style.textDecoration = descriptor.estiloSobre.textDecoration;

	// Modificaciones del borde
	if(descriptor.estiloSobre.border != '')
		elem.style.border = descriptor.estiloSobre.border;
	if(descriptor.estiloSobre.borderLeft != '')
		elem.style.borderLeft = descriptor.estiloSobre.borderLeft;
	if(descriptor.estiloSobre.borderRight != '')
		elem.style.borderRight = descriptor.estiloSobre.borderRight;
	if(descriptor.estiloSobre.borderBottom != '')
		elem.style.borderBottom = descriptor.estiloSobre.borderBottom;
	if(descriptor.estiloSobre.borderTop != '')
		elem.style.borderTop = descriptor.estiloSobre.borderTop;

	// Modificaciones del fondo y color
	if(descriptor.estiloSobre.background != '')
		elem.style.background = descriptor.estiloSobre.background;
	if(descriptor.estiloSobre.color != '')
		elem.style.color = descriptor.estiloSobre.color;
}

function mouseFuera(nomElem,descriptor) {
	elem = document.getElementById(nomElem);

	// Modificaciones de la fuente
	if(descriptor.estiloFuera.fontStyle != '')
		elem.style.fontStyle = descriptor.estiloFuera.fontStyle;
	if(descriptor.estiloFuera.fontWeight != '')
		elem.style.fontWeight = descriptor.estiloFuera.fontWeight;
	if(descriptor.estiloFuera.fontDecoration != '')
		elem.style.fontDecoration = descriptor.estiloFuera.fontDecoration;
	if(descriptor.estiloFuera.fontFamily != '')
		elem.style.fontFamily = descriptor.estiloFuera.fontFamily;

	// Modificaciones del texto
	if(descriptor.estiloFuera.textAlign != '')
		elem.style.textAlign = descriptor.estiloFuera.textAlign;
	if(descriptor.estiloFuera.textDecoration != '')
		elem.style.textDecoration = descriptor.estiloFuera.textDecoration;

	// Modificaciones del borde
	if(descriptor.estiloFuera.border != '')
		elem.style.border = descriptor.estiloFuera.border;
	if(descriptor.estiloFuera.borderLeft != '')
		elem.style.borderLeft = descriptor.estiloFuera.borderLeft;
	if(descriptor.estiloFuera.borderRight != '')
		elem.style.borderRight = descriptor.estiloFuera.borderRight;
	if(descriptor.estiloFuera.borderBottom != '')
		elem.style.borderBottom = descriptor.estiloFuera.borderBottom;
	if(descriptor.estiloFuera.borderTop != '')
		elem.style.borderTop = descriptor.estiloFuera.borderTop;

	// Modificaciones del fondo y color
	if(descriptor.estiloFuera.background != '')
		elem.style.background = descriptor.estiloFuera.background;
	if(descriptor.estiloFuera.color != '')
		elem.style.color = descriptor.estiloFuera.color;
}

function mouseAbajo(nomElem,descriptor) {
	elem = document.getElementById(nomElem);

	// Modificaciones de la fuente
	if(descriptor.estiloAbajo.fontStyle != '')
		elem.style.fontStyle = descriptor.estiloAbajo.fontStyle;
	if(descriptor.estiloAbajo.fontWeight != '')
		elem.style.fontWeight = descriptor.estiloAbajo.fontWeight;
	if(descriptor.estiloAbajo.fontDecoration != '')
		elem.style.fontDecoration = descriptor.estiloAbajo.fontDecoration;
	if(descriptor.estiloAbajo.fontFamily != '')
		elem.style.fontFamily = descriptor.estiloAbajo.fontFamily;

	// Modificaciones del texto
	if(descriptor.estiloAbajo.textAlign != '')
		elem.style.textAlign = descriptor.estiloAbajo.textAlign;
	if(descriptor.estiloAbajo.textDecoration != '')
		elem.style.textDecoration = descriptor.estiloAbajo.textDecoration;

	// Modificaciones del borde
	if(descriptor.estiloAbajo.border != '')
		elem.style.border = descriptor.estiloAbajo.border;
	if(descriptor.estiloAbajo.borderLeft != '')
		elem.style.borderLeft = descriptor.estiloAbajo.borderLeft;
	if(descriptor.estiloAbajo.borderRight != '')
		elem.style.borderRight = descriptor.estiloAbajo.borderRight;
	if(descriptor.estiloAbajo.borderBottom != '')
		elem.style.borderBottom = descriptor.estiloAbajo.borderBottom;
	if(descriptor.estiloAbajo.borderTop != '')
		elem.style.borderTop = descriptor.estiloAbajo.borderTop;

	// Modificaciones del fondo y color
	if(descriptor.estiloAbajo.background != '')
		elem.style.background = descriptor.estiloAbajo.background;
	if(descriptor.estiloAbajo.color != '')
		elem.style.color = descriptor.estiloAbajo.color;
}

function mouseArriba(nomElem,descriptor) {
	elem = document.getElementById(nomElem);

	// Modificaciones de la fuente
	if(descriptor.estiloArriba.fontStyle != '')
		elem.style.fontStyle = descriptor.estiloArriba.fontStyle;
	if(descriptor.estiloArriba.fontWeight != '')
		elem.style.fontWeight = descriptor.estiloArriba.fontWeight;
	if(descriptor.estiloArriba.fontDecoration != '')
		elem.style.fontDecoration = descriptor.estiloArriba.fontDecoration;
	if(descriptor.estiloArriba.fontFamily != '')
		elem.style.fontFamily = descriptor.estiloArriba.fontFamily;

	// Modificaciones del texto
	if(descriptor.estiloArriba.textAlign != '')
		elem.style.textAlign = descriptor.estiloArriba.textAlign;
	if(descriptor.estiloArriba.textDecoration != '')
		elem.style.textDecoration = descriptor.estiloArriba.textDecoration;

	// Modificaciones del borde
	if(descriptor.estiloArriba.border != '')
		elem.style.border = descriptor.estiloArriba.border;
	if(descriptor.estiloArriba.borderLeft != '')
		elem.style.borderLeft = descriptor.estiloArriba.borderLeft;
	if(descriptor.estiloArriba.borderRight != '')
		elem.style.borderRight = descriptor.estiloArriba.borderRight;
	if(descriptor.estiloArriba.borderBottom != '')
		elem.style.borderBottom = descriptor.estiloArriba.borderBottom;
	if(descriptor.estiloArriba.borderTop != '')
		elem.style.borderTop = descriptor.estiloArriba.borderTop;

	// Modificaciones del fondo y color
	if(descriptor.estiloArriba.background != '')
		elem.style.background = descriptor.estiloArriba.background;
	if(descriptor.estiloArriba.color != '')
		elem.style.color = descriptor.estiloArriba.color;
}

/*********************************************************************
 * Estilos de botones predefinidos
 *********************************************************************/
// fontStyle,fontWeight,fontFamily,textAlign,textDecoration,border,borderLeft,borderRight,borderTop,borderBottom,background,color

/*********************************************************************
 * Botones de menú
 *********************************************************************/
var menuSobre = new estiloBoton('','','','','','','','','','','url(../images/menu_mouse_sobre_bg.png)','');
var menuFuera = new estiloBoton('','','','','','','','','','','url(../images/menu_bg.png)','');
var menuAbajo = new estiloBoton('','','','','','','','','','','','');
var menuArriba = new estiloBoton('','','','','','','','','','','','');

var botonMenu = new descriptorBoton(menuSobre,menuFuera,menuAbajo,menuArriba);

/*********************************************************************
 * Botones de menú especiales
 *********************************************************************/
var menuDifSobre = new estiloBoton('','','','','','','','','','','url(../images/menu_dif_mouse_sobre_bg.png)','white');
var menuDifFuera = new estiloBoton('','','','','','','','','','','url(../images/menu_dif_bg.png)','#007755');
var menuDifAbajo = new estiloBoton('','','','','','','','','','','','');
var menuDifArriba = new estiloBoton('','','','','','','','','','','','');

var botonMenuDif = new descriptorBoton(menuDifSobre,menuDifFuera,menuDifAbajo,menuDifArriba);

/*********************************************************************
 * Botones de menú (sub categorías)
 *********************************************************************/
var submenuSobre = new estiloBoton('','','','','','','','','','','url(../images/submenu_mouse_sobre_bg.png)','');
var submenuFuera = new estiloBoton('','','','','','','','','','','url(../images/submenu_bg.png)','');
var submenuAbajo = new estiloBoton('','','','','','','','','','','','');
var submenuArriba = new estiloBoton('','','','','','','','','','','','');

var botonSubmenu = new descriptorBoton(submenuSobre,submenuFuera,submenuAbajo,submenuArriba);

/*********************************************************************
 * Botones de encuesta
 *********************************************************************/
var encuestaSobre = new estiloBoton('','','','','underline','','','','','','','');
var encuestaFuera = new estiloBoton('','','','','none','','','','','','','black');
var encuestaAbajo = new estiloBoton('','','','','','','','','','','','green');
var encuestaArriba = new estiloBoton('','','','','','','','','','','','black');

var botonEncuesta = new descriptorBoton(encuestaSobre,encuestaFuera,encuestaAbajo,encuestaArriba);

/*********************************************************************
 * Botones centrales.
 *********************************************************************/
var adminPrincipalSobre = new estiloBoton('','bold','','','','outset 2px #F7EFCE','','','','','#F7EFCE','#007755');
var adminPrincipalFuera = new estiloBoton('','normal','','','','outset 2px #007755','','','','','#007755','#F7EFCE');
var adminPrincipalAbajo = new estiloBoton('','bold','','','','inset 2px #F7EFCE','','','','','#F7EFCE','#007755');
var adminPrincipalArriba = new estiloBoton('','bold','','','','outset 2px #F7EFCE','','','','','#F7EFCE','#007755');

var botonAdminPrincipal = new descriptorBoton(adminPrincipalSobre,adminPrincipalFuera,adminPrincipalAbajo,adminPrincipalArriba);

/*********************************************************************
 * Botones de documentos
 *********************************************************************/
var documentosSobre = new estiloBoton('','','','','none','outset 2px #0077755','','','','','#007755','white');
var documentosFuera = new estiloBoton('','','','','underline','solid 2px white','','','','','white','#007755');
var documentosAbajo = new estiloBoton('','','','','none','inset 2px #007755','','','','','#007755','white');
var documentosArriba = new estiloBoton('','','','','none','solid 2px white','','','','','white','#007755');

var botonDocumentos = new descriptorBoton(documentosSobre,documentosFuera,documentosAbajo,documentosArriba);


/*********************************************************************
 * Botones de titulos de noticias
 *********************************************************************/
var tituloUltimaNoticiaSobre = new estiloBoton('','','','','underline','','','','','','','#007755');
var tituloUltimaNoticiaFuera = new estiloBoton('','','','','none','','','','','','','black');
var tituloUltimaNoticiaAbajo = new estiloBoton('','','','','','','','','','','','');
var tituloUltimaNoticiaArriba = new estiloBoton('','','','','','','','','','','','');

var botonTituloUltimaNoticia = new descriptorBoton(tituloUltimaNoticiaSobre,tituloUltimaNoticiaFuera,tituloUltimaNoticiaAbajo,tituloUltimaNoticiaArriba);

/*********************************************************************
 * Funciones para el manejo del despliegue de los botones de titulos de
 * noticias
 *********************************************************************/
var tituloNoticiaSobre = new estiloBoton('','','','','underline','','','','','','','#007755');
var tituloNoticiaFuera = new estiloBoton('','','','','none','','','','','','','black');
var tituloNoticiaAbajo = new estiloBoton('','','','','','','','','','','','');
var tituloNoticiaArriba = new estiloBoton('','','','','','','','','','','','');

var botonTituloNoticia = new descriptorBoton(tituloNoticiaSobre,tituloNoticiaFuera,tituloNoticiaAbajo,tituloNoticiaArriba);

/*********************************************************************
 * Funciones para el manejo del despliegue del botón de búsqueda
 *********************************************************************/
// fontStyle,fontWeight,fontFamily,textAlign,textDecoration,border,borderLeft,borderRight,borderTop,borderBottom,background,color
var botonCategoriaSobre = new estiloBoton('','','','','underline','','','','','','','');
var botonCategoriaFuera = new estiloBoton('','','','','none','','','','','','','');
var botonCategoriaAbajo = new estiloBoton('','','','','','','','','','','','');
var botonCategoriaArriba = new estiloBoton('','','','','','','','','','','','');

var botonCategoria = new descriptorBoton(botonCategoriaSobre,botonCategoriaFuera,botonCategoriaAbajo,botonCategoriaArriba);
