//--------Envía de una aplicación a otra------------------------------------------------------
function irAMenu(sEnlace){
	location.href=sEnlace;
}


//---------------------------------------------------------------------------------------------
//---------- FUNCIONES JS PARA EL MENU DE MANTENIMIENTO----------------------------------------
//---------------------------------------------------------------------------------------------

// Objeto principal del cual se acceden a los distintos elementos del menú
function menu(posN1,posN2){ 
	this.menus = new Array();
	this.posNivel1 	= posN1;
	this.posSubNiveles	= posN2;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Objeto que define un elemento de tipo menu
function elementoMenu(iId, iIdPadre, sNombre, sEnlace, iNivel, sColor,iMP,iMS){
	this.id 		= iId;
	this.idPadre	= iIdPadre;
	this.nombre	= sNombre;
	this.enlace 	= sEnlace;
	this.nivel 		= iNivel;
	this.color 		= sColor;
	this.mp = iMP;
	this.ms = iMS;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Añade un elemento al menu
function addMenu(oMenu, iId, iIdPadre, sNombre, sEnlace, iNivel, sColor,iMP, iMS){
	if(eval("oMenu.menus.length"))
		oMenu.menus[oMenu.menus.length] = new elementoMenu(iId, iIdPadre, sNombre, sEnlace, iNivel, sColor,iMP, iMS);
	else
		oMenu.menus[0] = new elementoMenu(iId, iIdPadre, sNombre, sEnlace, iNivel, sColor,iMP, iMS);
	return;
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// Devuele una cadena con el HTML necesario mostrar el menú de forma vertical
function escribirMenuVertical(iIdPadre){
	var sStr="";	
	if(eval("oMenu.menus.length")){
		sStr += "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"  bgcolor=\"#B9CADA\" >\n";
			
		for(var i=0;i<oMenu.menus.length;i++){
			
			if(iIdPadre == oMenu.menus[i].idPadre){
			    
				sStr += "<tr>\n";
					sStr += "<td class=\"menuHome\" style=\"border-top:1px solid #FFFFFF;\" onMouseOver=\"this.className='menuHomeOver'\" onMouseOut=\"this.className='menuHome'\">\n";
						sStr += "<div id=\"menu_" + oMenu.menus[i].id + "\"><table cellpadding=\"0\" cellspacing=\"0\" width=\"100%\"><tr><td style=\"white-space:nowrap;\"><a name=\"menu\" href=\"javascript:abrirMenu('" + oMenu.menus[i].id + "');\" class=\"textoBlanco\" onFocus=\"blur();\">" + oMenu.menus[i].nombre + "</a></td><td width=\"1%\" style=\"padding-left:10px;padding-right:3px;\"><img src=\""+sImagenHijos+"\"></td></tr></table></div>\n";
					sStr += "</td>\n";
					sStr += "<td style=\"vertical-align:top;\">\n";
						sStr += "<div id=\"submenu_" + oMenu.menus[i].id + "\" style=\"position:absolute; background-color:#FFFFFF; display:none; overflow:visible;\" onMouseLeave =\"ocultarResto(" + oMenu.menus[i].nivel + ");\"></div>\n"; 				
					sStr += "</td>\n";
				sStr += "</tr>\n";
				
					
			}
		}
		sStr += "<tr><td height=\"1\" bgcolor=\"#FFFFFF\" colspan\"\"><img src=\"img/comunes/pixel.gif\"></td></tr>\n";
		sStr += "</table>\n";
	}
	return sStr;
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// Devuele una cadena con el HTML necesario mostrar el menú de forma horizontal
function escribirMenuHorizontal(iIdPadre){
	var sStr="";
	var sColor="";
	var sResolucion = ((screen.width-779)/2)+10;
	
	if(eval("oMenu.menus.length")){	
	 
		sStr += "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" height=\"40\" width=\"100%\">\n";
		sStr += "<tr>\n";
		sStr += "<td width=\"19\" height=\"48\" bgcolor=\"#DEE1DC\"><img src=\"img/comunes/pixel.gif\"></td>\n";		
		for(var i=0;i<oMenu.menus.length;i++){
			if(iIdPadre == oMenu.menus[i].idPadre){
			
						if(comprobarHijos(oMenu.menus[i].id)){
							
							sStr += "<td height=\"48\" bgcolor=\"#FFFFFF\" align=\"center\">\n";
							sStr += "<div style=\"1\"><a name=\"menu\" href=\"javascript:abrirMenu('" + oMenu.menus[i].id + "');\"  onFocus=\"blur();\" onMouseOver=\"javascript:abrirMenu('" + oMenu.menus[i].id + "');document.images['menu"+oMenu.menus[i].id+"'].src='img/menus/es/on/"+oMenu.menus[i].nombre+"'\"  onMouseOut=\"document.images['menu"+oMenu.menus[i].id+"'].src='img/menus/es/of/"+oMenu.menus[i].nombre+"';\"><img src=\"img/menus/es/of/" + oMenu.menus[i].nombre + "\" alt=\"\" border=\"0\" name=\"menu"+oMenu.menus[i].id+"\"></a></div>\n";
							
							if(oMenu.menus[i].mp == oMenu.menus[i].id){
								sStr += "<div id=\"submenu_" + oMenu.menus[i].id + "\" class=\"submenu\" style=\"position:absolute;display:block;left:"+sResolucion+"px;overFlow:visible;top:81px;text-align:center;\"></div>\n";					
							}else{
								sStr += "<div id=\"submenu_" + oMenu.menus[i].id + "\" class=\"submenu\" style=\"position:absolute;display:none;left:"+sResolucion+"px;overFlow:visible;top:81px;text-align:center;\"></div>\n";		     	
							}
							sStr += "</td>\n";
							
						}else{
							
							sStr += "<td height=\"48\" bgcolor=\"#FFFFFF\" align=\"center\">\n";
							sStr += "<div style=\"1\"><a name=\"menu\" href=\"javascript:abrirMenu('" + oMenu.menus[i].id + "');\"  onFocus=\"blur();\" onClick=\"javascript:abrirMenu('" + oMenu.menus[i].id + "');\" onMouseOver=\"document.images['menu"+oMenu.menus[i].id+"'].src='img/menus/es/on/"+oMenu.menus[i].nombre+"';ocultarResto(2)\"  onMouseOut=\"document.images['menu"+oMenu.menus[i].id+"'].src='img/menus/es/of/"+oMenu.menus[i].nombre+"'\"><img src=\"img/menus/es/of/" + oMenu.menus[i].nombre + "\" alt=\"\" border=\"0\" name=\"menu"+oMenu.menus[i].id+"\"></a></div>\n";
							sStr += "</td>\n";
						}//fin del if
							
			}//fin del if
		}//fin del for
				 
   		sStr += "<td width=\"239\"><a href=\"index.asp\" onFocus=\"blur();\"><img src=\"img/comunes/logo.gif\" border=\"0\"></a></td>\n";
		sStr += "<td width=\"19\" height=\"48\" bgcolor=\"#DEE1DC\"><img src=\"img/comunes/pixel.gif\"></td>\n";
		sStr += "</tr>\n";
		
		sStr += "</table>\n";
		
		
	}
	//alert(sStr);
	return sStr;
			
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function escribirMenuHorizontal2(iIdPadre){
	var sStr="";
	var sColor="";	
	if(eval("oMenu.menus.length")){
		
		sStr += "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"502\"  >\n";
		sStr += "<tr>\n";		
			
			for(var i=0;i<oMenu.menus.length;i++){
			
				if(iIdPadre == oMenu.menus[i].idPadre){
				
							switch(parseInt(oMenu.menus[i].idPadre)){
							case 1:
								sColor="#AFB7A9";
							break;
							
							case 2:
								sColor="#C1BEAC";
							break;
							
							case 3:
								sColor="#ABABAB";
							break;
							}
					
							sStr += "<td height=\"24\" bgcolor=\""+sColor+"\" style=\"border-right:3px solid #F4F3F3;\" >\n";
		
									sStr += "<div id=\"menu_" + oMenu.menus[i].id + "\"><a class=\"Arial12NegroMenu\" name=\"menu\" href=\"index.asp?MP="+iIdPadre+"&MS="+oMenu.menus[i].id+"\"  onFocus=\"blur();\">" + oMenu.menus[i].nombre + "</a></div>\n";
					
							sStr += "</td>\n";
						}
					 }
	   
			sStr += "<td bgcolor=\""+sColor+"\" width=\"50\">&nbsp;</td>\n";
		sStr += "</tr>\n";
		sStr += "</table>\n";
	}
	return sStr;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Abre el elemento de menu seleccionado
function abrirMenu(iId){
	if(!comprobarHijos(iId)){		
		// llamada a función externa para el cambio de página
		// si fueran necesarios más parámetros, estos irían en el enlace para ello:
		// var item = comprobarItem(iId);
		// if(item)var enlace = "";
		// else var enlace = oMenu.menus[item].enlace;
		//irAMenu(iId,enlace);
		
		// llamada a función externa para el cambio de página
		 var item = comprobarItem(iId);
		 if(!item){
		     var enlace = "";
		 }else{ 
		    var enlace = "index.asp?MP="+ oMenu.menus[item].id+"&MS=0";
		  }
		  
		 irAMenu(enlace);
		return;
	}
		
	
	var oCapaMenu 	= document.getElementById("menu_" + iId);
	var oCapaSubMenu 	= document.getElementById("submenu_" + iId);
	var oCeldaFondo =  document.getElementById("celdaFondo");
	
	ocultarResto(obtenerNivel(iId));
	
	oCapaSubMenu.style.display 	= "block";
	
	if(oMenu.menus[1].mp==0){
		oCeldaFondo.style.background = 'url(img/comunes/fondoMenuHome.gif) no-repeat';
	}else{
		oCeldaFondo.style.background = 'url(img/comunes/fondoMenuInterior.gif) no-repeat';
	}	
	
	
	if(oMenu.posSubNiveles=="H"){
		oCapaSubMenu.innerHTML 	= escribirMenuHorizontal(iId);
	}
	else{
		oCapaSubMenu.innerHTML 	= escribirMenuHorizontal2(iId);
	}
	
	return;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// Compruba si un elemento del menú existe, de ser asi devuelve su posición
function comprobarItem(iId){
	if(eval("oMenu.menus.length")){
		for(i=0;i<oMenu.menus.length;i++){
			if(oMenu.menus[i].id == iId)
				return i;
		}
	}
	return false;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Compruba si un elemento del menú tiene hijos (submenú)
function comprobarHijos(iId){
	if(eval("oMenu.menus.length")){
		
		for(var i=0;i<oMenu.menus.length;i++){
			if(oMenu.menus[i].idPadre == iId){
				return true;
			}
		}
	}
	return false;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Obtiene el nivel de un elemento del menú
function obtenerNivel(iId){
	if(eval("oMenu.menus.length")){
		for(i=0;i<oMenu.menus.length;i++){
			if(oMenu.menus[i].id == iId)
				return oMenu.menus[i].nivel;
		}
	}
	return -1;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Oculta los posibles submenus de inferior nivel o mismo que pudieran estar visibles
function ocultarResto(iNivel){
	if(eval("oMenu.menus.length")){
		
		if(iNivel!=-1){
			for(i=0;i<oMenu.menus.length;i++){
				
				if(oMenu.menus[i].nivel >= iNivel){
					/*if(eval("document.all[\"submenu_" + oMenu.menus[i].id + "\"]")){
						mostrarSelects(oMenu.menus[i].id);
						document.all["submenu_" + oMenu.menus[i].id].style.visibility = "hidden";						
					}*/
					if(eval("document.getElementById(\"submenu_" + oMenu.menus[i].id + "\")")){
						//mostrarSelects(oMenu.menus[i].id);
						document.getElementById("submenu_" + oMenu.menus[i].id).style.display = "none";
						var oCeldaFondo =  document.getElementById("celdaFondo");
						if(oMenu.menus[i].mp==0){
							oCeldaFondo.style.background = 'url(img/comunes/fondoMenu.gif) no-repeat';
						}else{
							oCeldaFondo.style.background = 'url(img/comunes/fondoMenuInterior.gif) no-repeat';
						}						
					}
				}
			}
		}
	}
	return;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Oculta los selects que pudieran influir en la mala visualización del menú
function ocultarSelects(iId){
	//var oSubMenu = eval("document.all[\"submenu_" + iId + "\"]");
	var oSubMenu = eval("document.getElementById(\"submenu_" + iId + "\")");
	
	var oCliente = oSubMenu.getClientRects();
	
	// Coordenadas de la capa
	var iTop 	= oCliente[0].top + document.body.scrollTop;
	var iHeight = oSubMenu.clientHeight;
	var iLeft	= oCliente[0].left + document.body.scrollLeft;
	var iWidth = oSubMenu.clientWidth;
	
	
	if(eval("document.forms.length")){
		for(z=0;z<document.forms.length;z++){
			oForm = document.forms[z];
			if(eval(oForm)){
				for(y=0; y<oForm.elements.length;y++){
					if(oForm.elements[y].type=="select-one"){
						
						var oSelect = oForm.elements[y];
						var oSCliente = oSelect.getClientRects();
						
						// Coordenadas del select
						var iSTop 		= oSCliente[0].top + document.body.scrollTop;
						var iSHeight	= oSelect.clientHeight;
						var iSLeft		= oSCliente[0].left + document.body.scrollLeft;
						var iSWidth	= oSelect.clientWidth;
						
						if(((iSTop >= iTop) && (iSTop <= (iTop + iHeight)) && (iSLeft >= iLeft) && (iSLeft <= (iLeft + iWidth))) || ((iSTop >= iTop) && (iSTop <= (iTop + iHeight)) && (iSLeft + iSWidth >= iLeft))){
							if(oSelect.style.display!="none"){
								oSelect.datafld = iId;
								oSelect.style.display = "none";
							}
						}			

					}
				}
			}
	
		}
	}
	return;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Muestra los posibles selects que están ocultos
function mostrarSelects(iId){
	
	var oSubMenu = document.getElementById('submenu_' + iId);
	var oCliente = oSubMenu.getClientRects();
	
	// Coordenadas de la capa
	var iTop 	= oCliente[0].top + document.body.scrollTop;
	var iHeight = oSubMenu.clientHeight;
	var iLeft	= oCliente[0].left + document.body.scrollLeft;
	var iWidth = oSubMenu.clientWidth;
	
	
	if(eval("document.forms.length")){
		for(z=0;z<document.forms.length;z++){
			oForm = document.forms[z];
			if(eval(oForm)){
				for(y=0;y<oForm.elements.length;y++){
					if(oForm.elements[y].type=="select-one"){
						var oSelect = oForm.elements[y];
						if(oSelect.datafld==iId)
							oSelect.style.display = "block";						
					}
				}
			}
	
		}
	}
	return;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function escribirMenu(iNivel){
		if(oMenu.posNivel1=="H")
			return escribirMenuHorizontal(iNivel);
		else
			return escribirMenuVertical(iNivel);
}