


    function mn(myStr, nivel, id)
    {
		  var cadena = '';
		  if( !id ) id = null;
		  for(var i=0; i < myStr.length; i++)
		  { 
				switch( nivel ){
					case 1:
						var estiloNivel = 'flevel';
					break;
					case 2:
						var estiloNivel = 'slevel';
					break;
					case 3:
						var estiloNivel = 'tlevel';
					break;	
					case 4:
						var estiloNivel = 'folevel';
					break;
				}	
			   
			   if(nivel == 1)
				cadena += '<div id="mn_' + myStr[i].id + '" class="' + estiloNivel + 'off" nv="'+ nivel +'" style="display:block;">' + myStr[i].nombre + '</div>\n';
			   else
				cadena += '<div id="mn_' + myStr[i].id + '" class="' + estiloNivel + 'off" nv="'+ nivel +'" style="display:block;"><a href="javascript:VisualizarMenu(' + myStr[i].id + ',\'' + myStr[i].url + '\',\''+ myStr[i].idSection +'\');">' + myStr[i].nombre + '</a></div>\n';
			   
			   if( myStr[i].hijos.length > 0 )  cadena += '<div id="blq_' + myStr[i].id + '" style="display:none;">\n'+ mn(myStr[i].hijos, nivel+1, myStr[i].id) + '</div>\n';
		  } 
		  

		  return cadena;
    }


	var currentBlq = null;
	var currentTopHs = null;

	function changeToOn( el ){
		if(el) el.className = el.className.replace( /off/i,"on" );
	}

	function changeToOff( el ){
		if(el)
		{
			el.className = el.className.replace( /on/i,"off" );
			el.className = el.className.replace( /active/i,"off" );
		}
	}
	
	function changeToActive( el ){
		if(el)
			if(el.className == 'sleveloff' || el.className == 'tleveloff') el.className = el.className.replace( /off/i,"active" );
	}

	
	function VisualizarMenu(id,url,idPrnt)
	{
		var mn = document.getElementById("mn_" + id);
		var hs = document.getElementById("hs_" + id);	
		var blq = document.getElementById("blq_" + id);
		if( mn ){
			mn.style.display = "block";
			changeToOn(mn);
			changeAllToOff( id );
			changeParentToOff( id );
		}
		if( hs ){
			changeToOn(hs);
			changeAllTopToOff( id );
		}
		if( blq ){
			blq.style.display = "block";
			
			if( !blq.back ){
				blq.back = true;
				closeBrothers(id);
				currentBlq = blq;
			}
			else{
				changeChildrenToOff(id);
				changeChildrenDisplayToNone(id);
				if( mn ) changeToOff(mn);
				if( hs ) changeToOff(hs);				
				blq.style.display = "none";
				openParent(blq);
				openBrothers(blq.id.replace( /blq_|mn_/i,"" ));
				blq.back = false;
			}
			openParent( blq );
		}
	}

	function VisualizarTopMenu(id,url,idPrnt)
	{
		var mn = document.getElementById("mn_" + id);
		var hs = document.getElementById("hs_" + id);
		var blq = document.getElementById("blq_" + id);
		if( mn ){
			mn.style.display = "block";
			changeToOn(mn);
			changeAllToOff( id );
			changeParentToOff( id );
		}
		if( hs ){
			changeToOn(hs);
			changeAllTopToOff( id );
			if( currentTopHs ) changeToOff(currentTopHs);
			currentTopHs = hs;
		}
		closeBrothers(id);
		if( !blq ){
			openBrothers(id);
			var parent = document.getElementById("blq_" + idPrnt);
			parent.style.display = "block";
			closeBrothers(idPrnt);
		}
		else{
			changeChildrenToOff(id);
			blq.style.display = "block";
			openParent( blq );
		}
	}

	function openParent( el ){
		if( el ){
			var parent = el.parentNode;
			if( parent ){
				parent.style.block = "block";
				parent.back = true;
				if( parent.id != "menu" ){ 
					closeBrothers(parent.id.replace( /blq_|mn_/i,"" ));
					openParent(parent);
				}
			}
		}
	}

	function closeBrothers( id ){
		var el = document.getElementById("mn_" + id);  
		if( el ){
			var parent = el.parentNode;
			if( parent ){
				var children = parent.childNodes;
				for( var i = 0; i < children.length; i++ ){
					if( (children[i].id != "mn_" + id) && (children[i].id != "blq_" + id) ){
						children[i].style.display = "none";
						children[i].back = false;
					}
					else{
						children[i].style.display = "block";
						children[i].back = true;					
					}
				}
			}
		}
	}


	function openBrothers( id ){
		var el = document.getElementById("mn_" + id);  
		if( el ){
			var parent = el.parentNode;
			if( parent ){
				var children = parent.childNodes;
				for( var i = 0; i < children.length; i++ ){
					if( children[i].id.indexOf("mn_") != -1 ){
						children[i].style.display = "block";
					}
				}
			}
		}
	}


	function changeAllToOff( id ){
		var el = document.getElementById("mn_" + id);  
		if( el ){
			var parent = el.parentNode;
			if( parent ){
				var children = parent.childNodes;
				for( var i = 0; i < children.length; i++ ){
					if( (children[i].id != "mn_" + id) && (children[i].id != "blq_" + id) ){
						changeToOff(children[i]);
					}
				}
			}
		}
	}

	function changeAllTopToOff( id ){
		var el = document.getElementById("hs_" + id);  
		if( el ){
			var parent = el.parentNode;
			if( parent ){
				var children = parent.childNodes;
				for( var i = 0; i < children.length; i++ ){
					if( (children[i].id != "hs_" + id) ){
						changeToOff(children[i]);
					}
				}
			}
		}
	}


	function changeParentToOff( id ){
		var el = document.getElementById("mn_" + id);  
		if( el ){
			var parent = el.parentNode;
			if( parent ){
				var newid = parent.id.replace( /blq_|mn_/i,"" );
				var mn = document.getElementById("mn_" + newid);
				changeToOff(mn);
				changeToActive(mn);
			}
		}
	}


	function changeChildrenToOff( id ){
		var el = document.getElementById("blq_" + id);  
		if( el ){
			var children = el.childNodes;
			for( var i = 0; i < children.length; i++ ){
				if( (children[i].id != "mn_" + id) && (children[i].id != "blq_" + id) ){
					changeToOff(children[i]);
				}
			}
		}
	}
	
	
	function changeChildrenDisplayToNone( id ){
		var el = document.getElementById("blq_" + id);  
		if( el ){
			var children = el.childNodes;
			for( var i = 0; i < children.length; i++ ){
				if( children[i].id.indexOf("blq_") != -1 ){
					children[i].style.display = "none";
					children[i].back = false;
				}	
				else children[i].style.display = "block";
			}
			
		}
	}


