/*
******************************************************************************
       File: BuildNavigationMenuEventOption3.js
Description: Contains the JavaScript code with specific functionalities of the
             Navigation Menu for a given site.
  Copyright: Copyright (c) 2007, GMTI. All rights reserved.
******************************************************************************
*/

var NavTimeOutId=0;
var NavTimeDelay = 250;

/*******************************************************************************
 This function creates the HTML of the nodes for each menu.
*******************************************************************************/
function renderMainItem(menuItem) {
  	var res = "";
  	if(menuItem.MenuLevel < 3){
	    res = "<span id=\"node"+menuItem.MenuID+"\">";
	    res +="<a href=\""+ menuItem.Link +"\"";

	    if(menuItem.HasSubMenu == "True")
	    {
			res +=" onMouseOver=\"NavTimeOutId = setTimeout('menuItemMouseOverHandler("+menuItem.MenuLevel+","+menuItem.MenuID+")',NavTimeDelay);\"";
			res +=" onMouseOut=\"clearTimeout(NavTimeOutId);\"";
            }
        else{ if (menuItem.MenuLevel == 1)
				{
				 res +=" onMouseOver=\"NavTimeOutId = setTimeout('blankInnerHTML("+(parseInt(menuItem.MenuLevel)+1)+","+menuItem.MenuID+")',NavTimeDelay);\"";              
                 res +=" onMouseOut=\"clearTimeout(NavTimeOutId);\"";
                }
              else if (menuItem.MenuLevel == 2)
                res +=" onMouseOver=\"NavTimeOutId = setTimeout('hideMenuLayers("+menuItem.MenuLevel+","+menuItem.MenuID+")',NavTimeDelay);\"";  
                res +=" onMouseOut=\"clearTimeout(NavTimeOutId);\"";
        }
        
        res +=" onClick=\"javascript:setNodeIDs(\'"+menuItem.MenuLevel+"\',\'"+menuItem.Level1Node+"\',\'"+menuItem.Level2Node+"\',\'"+menuItem.HasSubMenu+"\');\"";    
        
        if(menuItem.NewWindow == "True")
        {
			res +=" target=\"_blank\">"+ menuItem.Name;
        }
        else
        {
			res +=">"+ menuItem.Name;
		}
		
        res +="</a></span><span class='navDivider'></span>";
    }else {
  		res = "<span id=\"node"+menuItem.MenuID+"\""; 
  		if(menuItem.HasSubMenu == "True")		
  		    res +=" onMouseOver=\"javascript:menuItemMouseOverHandler("+menuItem.MenuLevel+","+menuItem.MenuID+");\"";
  		else if (menuItem.MenuLevel != 4)
            res +=" onMouseOver=\"javascript:menuLayers.hide(ID["+(parseInt(menuItem.MenuLevel)+1)+"]);ResetColor("+menuItem.MenuLevel+");\"";
        
        res += "><li><a href=\""+ menuItem.Link +"\" onClick=\"javascript:setNodeIDs(\'"+menuItem.MenuLevel+"\',\'"+menuItem.Level1Node+"\',\'"+menuItem.Level2Node+"\',\'"+menuItem.HasSubMenu+"\');\"";
           
		if(menuItem.NewWindow == "True")
        {
			res +=" target=\"_blank\">"+ menuItem.Name+"</a></li></span>";
        }
        else
        {
			res +=">"+menuItem.Name+"</a></li></span>";
		}
    }
  	return res;
};


function hideMenuLayers(Level, Node)
{
	ChangeNode(Level, Node);
	menuLayers.hide(ID[(Level + 1)]);
};

/*******************************************************************************
 This function is the mouseover event handler for a menu node.
*******************************************************************************/

function menuItemMouseOverHandler(Level, Node) {
		ChangeNode(Level, Node);
        MenuOpen[Level] = Node;
       
		if(Level == 1){
		    nodePos = menuLayers.getPos(document.getElementById('node'+Node));
		    findlevelLocation(nodePos.x);
		    
  		    menuLayers.show(ID[Level+1], null, null, null);
		    objNavigationMenu.displayMenu(Node, ID[Level+1], renderMainItem);
		}
		else if(Level == 2){
  		    nodePos = menuLayers.getPos(document.getElementById('node'+Node));
  		    menuLayers.show(ID[Level+1], true, nodePos.x, 0);
  		    objNavigationMenu.displayMenu(Node, ID[Level+1], renderMainItem);   
		} else {
		    nodePos = menuLayers.getPos(document.getElementById('node'+Node));
		    if(objNavigationMenu.browserCheck() == 0) menuLayers.show(ID[Level+1], null, true, nodePos.x+150, nodePos.y+15);
            else menuLayers.show(ID[Level+1], true, nodePos.x+123, nodePos.y-8);
  		    objNavigationMenu.displayMenu(Node, ID[Level+1], renderMainItem);
		}
};

function findlevelLocation(coor) {
    var menuSize = document.getElementById(ID[1]).offsetWidth;
    var startX = menuLayers.getPos(ID[1]).x;
    //document.getElementById("debugTag").innerHTML=coor+"  "+startX+""+ (coor > startX && coor < startX+(menuSize/3));
    if(coor > startX && coor < startX+(menuSize/3))  document.getElementById(ID[2]).style.textAlign="left";
    else if(coor > startX+(menuSize/3) && coor < startX+(menuSize/3*2)) document.getElementById(ID[2]).style.textAlign="center";
    else document.getElementById(ID[2]).style.textAlign="right";
};

function blankInnerHTML(Level,Node){

    ChangeNode(Level - 1, Node);
    if(window.ActiveXObject)
        document.getElementById(ID[2]).innerHTML="<span style=\"height:18px;float:left;filter:alpha(opacity=1);-moz-opacity:.01;opacity:.01;\">a</span>"; 
    else 
        document.getElementById(ID[2]).innerHTML="<span style=\"filter:alpha(opacity=1);-moz-opacity:.01;opacity:.01;\">a</span>";  
};