
var nodes = new Array();

function navBar(name,navBarTree,arrowImageSrc) {
    var documentCode;
    var document2Code = '';
	var document3Code = '';
    nodes = navBarTree;                                                                                             
                                                                                                                   
    for (var i = 0; i < nodes.length; i++) {                                                                              
        var nodeValues = nodes[i].split("|");                                                                                
        var nodeRef    = nodeValues[0];                                                                                    
        var nodeParent = nodeValues[1];
        var nodeName   = nodeValues[2];
        var nodeUrl    = nodeValues[3];
        var nodeTarget = nodeValues[4];

        hcn = hasChildNode(nodeRef);
                                    
        if (nodeParent == 0) { // Menu Principa
            documentCode = "<div id=\"layerNavBar_" + nodeRef + "\" class=\"" + name + "\" ";
            if (hcn) {
                documentCode += " onClick=\"expandNavBar(this,'" + nodeRef + "',event)\" ";
            } else {
                documentCode += " onClick=\"parent.location.href='" + nodeUrl  + "'\" ";
            }
            documentCode += " onMouseOver=\"navBarOver(this)\" onMouseOut=\"navBarOut(this)\">";          
            documentCode += nodeName;  
            if (hcn) {
                documentCode += "&nbsp;&nbsp;<img src=\"" + arrowImageSrc + "\" width=\"10\" height=\"7\">";
            } else {
                documentCode += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
            }                                                           
            documentCode += "</div>";
            document.write(documentCode); 
        } else { // Menu Secundario

        }
        if (hcn) {
            document2Code += "<div id=\"layerNavBarOptions_" + nodeRef + "\"  class=\"" + name + "Options\">";  
            for (var j = 0; j < nodes.length; j++) {   
                var node2Values = nodes[j].split("|");                                                                            
                var node2Ref     = node2Values[0];
                var node2Parent  = node2Values[1];                                                                                  
                var node2Name    = node2Values[2];
                var node2Url     = node2Values[3];
        		var node2Target  = node2Values[4];
                                                                                          
                if (node2Parent != nodeRef) continue;                                        
                
                hcn = hasChildNode(node2Ref);
                                                      
                document2Code += "<div id=\"layerNavBarItem_" + node2Ref  + "\" class=\"" + name + "Item\" ";
                if (hcn) {
                    document2Code += " onClick=\"expandNavBarItem(this,'" + node2Ref + "');\" ";                                
                } else {
                    document2Code += " onClick=\"parent.location.href='" + node2Url  + "'\" ";
                }
                document2Code += " onMouseOver=\"navBarItemOver(this)\" onMouseOut=\"navBarItemOut(this)\">";
                document2Code += node2Name;
                if (hcn) {
                	document2Code += "&nbsp;&nbsp;<img src=\"" + arrowImageSrc + "\" width=\"10\" height=\"7\">";
            	} else {
                	document2Code += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
            	} 
                // Comprobamos si tiene tercer nivel asociado.                                                                  
                document2Code += "</div>"; 
                
            }                      
            document2Code += "</div>";  
        }
    }
    document.write(document2Code); 
}





function hasChildNode(parentNode) {
    for (i=0; i< nodes.length; i++) {
        var nodeValues = nodes[i].split("|");
        if (nodeValues[1] == parentNode) {
            return true;
        }
    }
    return(false);
}

// TODO: Unificar sistema con menuOver - menuOut
function navBarOver(layer) {
    //layer.style.backgroundColor = '#3B76BB';                                                                                      
    layer.style.color = '#99CCFF';                                                                                                
}          



// TODO: Unificar sistema con menuOver - menuOut
function navBarOut(layer) {                                                                                                   
    //layer.style.backgroundColor = '#82BFDE';                                                                                      
    layer.style.color = '#FFFFFF';                                                                                                
}



// TODO: Unificar sistema con menuOver - menuOut
function navBarItemOver(layer) {                                                                                              
    //layer.style.backgroundColor = '#3B76BB';                                                                                  
    layer.style.color = '#99CCFF';                                                                                            
}                                                                                                                             


// TODO: Unificar sistema con menuOver - menuOut
function navBarItemOut(layer) {                                                                                               
    //layer.style.backgroundColor = '#82BFDE';                                                                                  
    layer.style.color = '#FFFFFF';                                                                                            
}                                                                                                                             
                                                                                                                                  
                                                                                                                                  

function expandNavBar(layer,nodeRef,event)                                                                                          
{                                                                                                                            
    // Evitamos que el evento sea capturado por otros objetos.                                                                
    event.cancelBubble = true;                                                                                                
                                                                                                                                 
    // Cerramos el menu abierto.                                                                                              
    if (menuTopOpen != 0 && menuTopOpen != nodeRef) {                                                                           
       // eval('layerNavBarOptions_' + menuTopOpen + '.style.visibility = \'hidden\'');   
		
       // eval('layerNavBarOptions_' + menuTopOpen + '.style.display = \'none\''); 
		 $("#layerNavBarOptions_" + menuTopOpen).hide("normal");   
    	if (navBarItemOpen != 0) {
			$("#layerNavBarOptions_" + menuTopOpen).hide("normal");
        //	eval('layerNavBarOptions_' + navBarItemOpen + '.style.visibility = \'hidden\'');
		//	$("#layerNavBarOptions_" + menuTopOpen).show("normal");
        //	eval('layerNavBarOptions_' + navBarItemOpen + '.style.display = \'none\'');
        	navBarItemOpen = 0;
    	}
    }          
	menuTopOpen = nodeRef;                                                                                                     
    eval('layerNavBarOptions_' + nodeRef + '.style.top = \'' + (findPosY(layer) + 0 )  + 'px\'');                              
    eval('layerNavBarOptions_' + nodeRef + '.style.left = \'' + (findPosX(layer) + 130) + 'px\'');                                    
    //eval('layerNavBarOptions_' + nodeRef + '.style.visibility = \'visible\'');                                                
    eval('layerNavBarOptions_' + nodeRef + '.style.display = \'inline\'');       
    $("#layerNavBarOptions_" + nodeRef).show();   
	 
	 return(false);                                                                                                            
}

function expandNavBarItem(layer,nodeRef) {
    // Evitamos que el evento sea capturado por otros objetos.                                                                
    event.cancelBubble = true;
    // Cerramos el menu abierto.                                                                                              
    if (navBarItemOpen != 0 && navBarItemOpen != nodeRef) {
        eval('layerNavBarOptions_' + navBarItemOpen + '.style.visibility = \'hidden\'');
        eval('layerNavBarOptions_' + navBarItemOpen + '.style.display = \'none\'');
    }
    navBarItemOpen = nodeRef;
    eval('layerNavBarOptions_' + nodeRef + '.style.top = \'' + (findPosY(layer) + 0) + 'px\'');                                  
    eval('layerNavBarOptions_' + nodeRef + '.style.left = \'' + (layer.style.left + 256) + 'px\'');                                        
    eval('layerNavBarOptions_' + nodeRef + '.style.visibility = \'visible\'');                                                    
    eval('layerNavBarOptions_' + nodeRef + '.style.display = \'inline\''); 
}



function hideNavBar() {                                                                                                       
    // Cerramos el menu abierto.                                                                                              
    if (menuTopOpen != 0) {                                                                                                    
        eval('layerNavBarOptions_' + menuTopOpen + '.style.visibility = \'hidden\'');                                          
        eval('layerNavBarOptions_' + menuTopOpen + '.style.display = \'none\'');                                               
        menuTopOpen = 0; 
    } 
   if (navBarItemOpen != 0) {
        eval('layerNavBarOptions_' + navBarItemOpen + '.style.visibility = \'hidden\'');
        eval('layerNavBarOptions_' + navBarItemOpen + '.style.display = \'none\'');
        navBarItemOpen = 0;
    }
                                                                                                                         
}   


function findPosX(obj)
{
    var curleft = 0;
    if (document.getElementById || document.all)
    {
        while (obj.offsetParent)
        {
            curleft += obj.offsetLeft
            obj = obj.offsetParent;
        }
    }
    else if (document.layers)
        curleft += obj.x;
    return curleft;
}


function findPosY(obj)
{
    var curtop = 0;
    if (document.getElementById || document.all)
    {
        while (obj.offsetParent)
        {
            curtop += obj.offsetTop
            obj = obj.offsetParent;                                                                                               
        }                                                                                                                         
    }                                                                                                                             
    else if (document.layers)                                                                                                     
        curtop += obj.y;                                                                                                          
    return curtop;                                                                                                                
}  




function navMenu(name,tree)
{   
    nodes = tree;
    for (var i = 0; i < nodes.length; i++) {
        var nodeValues = nodes[i].split("|");
        var nodeRef    = nodeValues[0];
        var nodeName   = nodeValues[1];
        var nodeParent = nodeValues[2];
        if (nodeParent != 0) continue;

        hcn = hasChildNode(nodeRef);                                                                                              
        
        document.write("<div id=\"layer" + name + "_" + nodeRef + "\" class=\"" + name  + "\"  ");                                       
        if (hcn) {                                                                                                                
            document.write(" onClick=\"expand('" + name  + "','" + nodeRef + "');\" ");                                                           
        } else {                                                                                                                  
            document.write(" onClick=\"parent.location.href='" + nodeValues[3]  + "'\" ");                                        
        }
        document.write(" onMouseOver=\"menuOver('" + name + "',this)\" onMouseOut=\"menuOut('" + name + "',this)\">"); 
        document.write(nodeName);                                                                                                 
        document.write("</div>");                                                                                                 
 
        document.write("<div id=\"layerSub" + name + "_" + nodeRef + "\"  class=\"" + name + "Options\">");
        for (var j = 0; j < nodes.length; j++) {                                                                                  
            var itemValues = nodes[j].split("|");                                                                                 
            var itemRef     = itemValues[0];                                                                                      
            var itemName    = itemValues[1];                                                                                      
            var itemParent  = itemValues[2];                                                                                      
            if (itemParent != nodeRef) continue;                                                                                  
            document.write("<div id=\"layerItem" + name + "_" + itemName  + "\" class=\"" + name + "Item\" ");                              
            document.write(" onClick=\"parent.location.href='" + itemValues[3]  + "'\"  ");                                       
            document.write(" onMouseOver=\"menuOver('" + name + "Item',this)\" onMouseOut=\"menuOut('" + name + "Item',this)\" >");        
            document.write(itemName);                                                                                             
            document.write("</div>");                                                                                             
        }                                                                                                                         
        document.write("</div>");                                                                                                 
    }                            
}



function createNavMenu(navMenuTree)
{
    nodes = navMenuTree;
    for (var i = 0; i < nodes.length; i++) {                                                                                      
                                                                     
        var nodeValues = nodes[i].split("|");
        var nodeRef    = nodeValues[0]; 
        var nodeName   = nodeValues[1];
        var nodeParent = nodeValues[2];
        if (nodeParent != 0) continue;

        hcn = hasChildNode(nodeRef);
        
        document.write("<div id=\"layerNavMenuLeft_" + nodeRef + "\" class=\"navMenu\"  ");
        if (hcn) { 
            document.write(" onClick=\"expand('" + nodeRef + "');\" ");
        } else {
            document.write(" onClick=\"parent.location.href='" + nodeValues[3]  + "'\" ");
        }
        document.write(" onMouseOver=\"navMenuOver(this)\" onMouseOut=\"navMenuOut(this)\">");
        document.write(nodeName);
        document.write("</div>");
 
        document.write("<div id=\"layerSubmenu_" + nodeRef + "\"  class=\"navMenuOptions\">");
        for (var j = 0; j < nodes.length; j++) {
            var itemValues = nodes[j].split("|");
            var itemRef     = itemValues[0];
            var itemName    = itemValues[1];
            var itemParent  = itemValues[2];
            if (itemParent != nodeRef) continue;
            document.write("<div id=\"layerNavMenuItem_" + itemName  + "\" class=\"navMenuItem\" ");
            document.write(" onClick=\"parent.location.href='" + itemValues[3]  + "'\"  ");
            document.write(" onMouseOver=\"navMenuItemOver(this)\" onMouseOut=\"navMenuItemOut(this)\" >");
            document.write(itemName);                                                                                             
            document.write("</div>");
        }                                                                                                                         
        document.write("</div>");
    }                                                                                                                             
}              




function expand(name,menu) 
{                                                                                                       
    var menuOpen;
    // Cerramos el menu abierto.  
    eval('menuOpen = ' + name + 'Open');
    if (menuOpen != 0 && menuOpen != menu) {                                                                            
        eval('layerSub' + name + '_' + menuOpen + '.style.visibility = \'hidden\'');                                               
        eval('layerSub' + name + '_' + menuOpen + '.style.display = \'none\'');                                                    
    }                                                                                                                         
    eval (name + 'Open = menu');  
	eval('layerSub' + name + '_' + menu + '.style.visibility = \'visible\'');                                                 
    eval('layerSub' + name + '_' + menu + '.style.display = \'inline\'');                                                       
}

function menuOver(name,layer) {
    eval("layer.className = '"+ name + "Over'");
}

function menuOut(name,layer) {
    eval("layer.className = '"+ name + "'");
}


// TODO: Unificar sistema con menuOver - menuOut
function navMenuItemOver(layer) {
    //layer.style.backgroundColor = '#3B76BB';
    layer.style.color = '#FFFFFF';
}


// TODO: Unificar sistema con menuOver - menuOut 
function navMenuItemOut(layer) {
    //layer.style.backgroundColor = '#82BFDE';
    layer.style.color = '#3B76BB';
}

