DEBUG         = false;
ADDMSG_OPTION = true;

var Paths = new _Paths();

var TYPE_MENU = 0;


RS_METHODS_MENU[TYPE_MENU]    = "setMenu";





var MAX_OPTIONS = 10;
var VIEW_ALL = 0;

var RutaLink = "";


function jsrsExecuteMenu(rspage, callback, func, parms,ruta) {
  jsrsExecute(rspage, callback, func, parms, false, true);
}


//------------------------------------------------------------ EVENTS & CORE METHODS
function setIdDesplegado(params,ruta)
{
	RutaLink = ruta;
  	setId(TYPE_MENU,params);
}


function setId(theType,params)
{
	CURRENT_TYPE = theType;
    jsrsExecuteMenu(Paths.RS, funcionVacia,RS_METHODS_MENU[theType],params);
}

function funcionVacia()
{
	document.location.href = RutaLink;
}

var PadreActivo = "";

function enlaceOn(camino){
	var obj;
	eval("obj = document.getElementById(\"Enlace"+camino+"Izq\");")		
	obj.className = "FBSubMenuIzqOn";	
	eval("obj = document.getElementById(\"Enlace"+camino+"Cen\");")	
	obj.className = "FBSubMenuCenOn";
	eval("obj = document.getElementById(\"Enlace"+camino+"Der\");")		
	obj.className = "FBSubMenuDerOn";		
	eval("obj = document.getElementById(\"Enlace"+camino+"\");")		
	obj.className = "SubMenuOn";	
}

function desplegarRama(rutaCompleta){
	var nivel;	
	var NumNiveles = 0;
	var NumHijos = 0;
	var camino = "";
	var obj = null;
	
	if(rutaCompleta!=""){
		
		 nivel = rutaCompleta.split("_");
		 NumNiveles = nivel.length;	
				 
		 for(x=0;x<NumNiveles;x++){		 	
		 	camino = camino + nivel[x];
		 			 	
		 	eval("obj = document.getElementById('Hijo"+camino+"');");
		 	
		 	if(x==NumNiveles-1) {
		 		enlaceOn(camino);		 		
		 	}else {
		 		obj.className = "Visible";		 	
		 	}
		 	
		 	if(x>=0) camino+= "_";
		 }
				
		if(nivel.length==1){
			PadreActivo = nivel[0];
		}else if((nivel.length==2) || (nivel.length==3)){
			PadreActivo = nivel[0]+"_"+nivel[1];
		}		 		 		 
	}
}

function plegarRama(rutaCompleta){ 
	var nivel;	
	var obj = null;
	
	if(rutaCompleta!=""){
				
		eval("obj = document.getElementById('"+rutaCompleta+"');");
		nivel = rutaCompleta.split("_");
		
		if(obj!=null){
			if(nivel.length>1){			
				// El nivel 1 está desplegado
				// Cierro los hijos del último padre activo (nivel 1)
				plegarPadre(rutaCompleta);
			}
			// Cierro los hijos del nivel 0
			plegarPadre(nivel0Rama(rutaCompleta));				
		}		 		 		 		 
	}
}

function desplegarPadre(padre){
	var obj = null;
	var NumHijos = 0;		
	var nivelActual = "";
	var nivelActivo = "";
		
	eval("obj = document.getElementById('"+padre+"');");	
		
	nivelActual = padre.split("_");	
	nivelActivo = PadreActivo.split("_");
	
	if(padre!=PadreActivo){		
					
		if(nivelActual.length==nivelActivo.length){
			// El padre desplegado anterior y el nuevo son hermanos
			// Cierro el padre anterior abierto
			plegarPadre(PadreActivo);
			
			// despliego los hijos del padre actual			
			NumHijos = obj.getAttribute("numHijos");
			if(NumHijos>0){				
				eval("obj = document.getElementById('Hijo"+padre+"');");	
				obj.className = "Visible";			
			}			
		}else{
			
			if(nivel0Rama(PadreActivo)!=nivel0Rama(padre)){			
				// El padre a desplegar es de nivel 0 distinto a de la rama actual
				// Cierro toda la rama anterior
				plegarRama(PadreActivo);
			}
					
			// despliego los hijos del padre actual			
			NumHijos = obj.getAttribute("numHijos");
			if(NumHijos>0){				
				eval("obj = document.getElementById('Hijo"+padre+"');");	
				obj.className = "Visible";			
			}			
		}	
		// actualizo el padre activo
		PadreActivo = padre;
	}else{
		// El padreActivo y el padre a desplegar son el mismo		
	}	
	
}

function plegarPadre(padre){
	var obj = null;
	var NumHijos = 0;	
	eval("obj = document.getElementById('"+padre+"');");
	//alert(padre);
	if(obj!=null){		
		NumHijos = obj.getAttribute("numHijos");
		if(NumHijos>0){
			eval("obj = document.getElementById('Hijo"+padre+"');");
			obj.className = "Invisible";			
		}
	}	
}

function nivel0Rama(ruta){
	var nivel = -1;
	var temp;
	if(ruta!=""){
		temp = ruta.split("_");
		nivel = temp[0];	
	}
	return nivel;
}
