function doNavOver(navID)
{
    var cell = document.getElementById('menuNav_'+navID);
    doMouseOver(cell);
}

function doNavOut(navID)
{
    var cell = document.getElementById('menuNav_'+navID);
    if (openNavID != navID)
        doMouseOut(cell);    
}

function doMouseOver(cell)
{
    try
    {
        if ((cell.className.indexOf('_Disabled') < 0) && (cell.className.indexOf('_Selected') < 0) && (cell.className.indexOf('_Expanded') < 0))
            cell.className = cell.className.replace('_Hover','').replace('_Disabled','').replace('_Selected','') + '_Hover';
    }
    catch(e) {}
}

function doMouseOut(cell)
{
    try
    {
        if ((cell.className.indexOf('_Disabled') < 0) && (cell.className.indexOf('_Selected') < 0) && (cell.className.indexOf('_Expanded') < 0))
            cell.className = cell.className.replace('_Hover','').replace('_Disabled','').replace('_Selected','');
    }
    catch(e) {}
}


var openNavID = null;
var openMenuItemID = null;
var hideNavTimer = null;
var expandSubItemsTimer = null;
var closeSubItemsTimer = null;

function openNav(navID)
{
    hideNavTimer = null;
 
    if (openNavID != null && openNavID != navID)
    {
        var cell = document.getElementById('menuNav_'+openNavID);
        doMouseOut(cell);
    
        var openNavItems = document.getElementById('navItems_'+openNavID);
        openNavItems.style.display = 'none';
        openNavID = null;
    }
    
    
    var navItems = document.getElementById('navItems_'+navID);
    if (navItems != null)
    {
        var menuNav = document.getElementById('menuNav_'+navID);
        var navPos = getElementPosition(menuNav);
        var navSize = getElementSize(menuNav);
        var x = navPos.x;
        var y = parseInt(navPos.y) + parseInt(navSize.height);
        
        y += getScrollHeight();
        x += getScrollWidth();
        
      //  var spacer = document.getElementById('imgSpacer_NavItems_'+navID);
      //  spacer.width = navSize.width - 16;
        
        navItems.style.left = x;
        navItems.style.top = y;
        navItems.style.display = '';
        
        openNavID = navID;
    }
}

function closeNav()
{
    hideNavTimer = setTimeout("hideNav();",500);
}

function hideNav()
{
    if (openNavID != null)
    {
        var navItems = document.getElementById('navItems_'+openNavID);
        var menuNav = document.getElementById('menuNav_'+openNavID);

        if (cursorOnElement(mouseX, mouseY, navItems) || cursorOnElement(mouseX, mouseY, menuNav))
        {
            hideNavTimer = setTimeout("hideNav();",500);
        }
        else
        {
            var cell = document.getElementById('menuNav_'+openNavID);
            doMouseOut(cell);
            
            hideNavTimer = null;
            navItems.style.display = 'none';
            openNavID = null;
            
            if (openMenuItemID != null)
                hideSubItems(openMenuItemID);
        }
    }
    else
        hideNavTimer = null;
}

function doMenuItemOver(menuItemID)
{
    var menuItem = document.getElementById('menuItem_'+menuItemID);
    doMouseOver(menuItem);
}

function doMenuItemOut(menuItemID)
{
    if (openMenuItemID != menuItemID)
    {
        var menuItem = document.getElementById('menuItem_'+menuItemID);
        doMouseOut(menuItem);
    }
}

function doSubMenuItemOver(menuItemID)
{
    var menuItem = document.getElementById('subMenuItem_'+menuItemID);
    menuItem.className = 'SubMenuItem_Hover';
}

function doSubMenuItemOut(menuItemID)
{
    var menuItem = document.getElementById('subMenuItem_'+menuItemID);
    menuItem.className = 'SubMenuItem';
}

function doMenuItemClick(menuItemID)
{
    var subItems = document.getElementById('subMenuItems_'+menuItemID);
    if (subItems != null)
    {
        if (subItems.style.display == 'none')
            showSubItems(menuItemID);
        else
            hideSubItems(menuItemID);
    }
    else
    {
        var menuItem = document.getElementById('menuItem_'+menuItemID);
        menuItem.style.textDecoration = 'underline';
        menuItem.onmouseout = null;
        var url = menuItem.getAttribute('url');
        location.href = url;
    }
}

function doSubMenuItemClick(menuItemID)
{
    var menuItem = document.getElementById('subMenuItem_'+menuItemID);
    menuItem.style.textDecoration = 'underline';
    menuItem.onmouseout = null;
    var url = menuItem.getAttribute('url');
    location.href = url;
}

function showSubItems(menuItemID)
{
    var icon = document.getElementById('menuIcon_'+menuItemID);
    if (icon != null)
        icon.className = 'MenuIcon_Expanded';
    
    var subItems = document.getElementById('subMenuItems_'+menuItemID);
    if (subItems != null)
    {
        if (openMenuItemID != null)
            hideSubItems(openMenuItemID);
        
        openMenuItemID = menuItemID;
        expandSubItems(menuItemID);
    }
}

function hideSubItems(menuItemID)
{
    var menuItem = document.getElementById('menuItem_'+menuItemID);
    doMouseOut(menuItem);

    var icon = document.getElementById('menuIcon_'+menuItemID);
    if (icon != null)
        icon.className = 'MenuIcon_Closed';
        
    var subItems = document.getElementById('subMenuItems_'+menuItemID);
    if (subItems != null)
        closeSubItems(menuItemID);
}

function expandSubItems(menuItemID)
{
    var subItems = document.getElementById('subMenuItems_'+menuItemID);
    var divSubItems = document.getElementById('divSubMenuItems_'+menuItemID);
    var tblSubItems = document.getElementById('tblSubMenuItems_'+menuItemID);
    var trSubItems = document.getElementById('trSubMenuItems_'+menuItemID);
        
    trSubItems.style.display = '';
    subItems.style.display = '';
    divSubItems.style.display = '';
    var maxHeight = parseInt(getElementSize(tblSubItems).height);
    var height = parseInt(getElementSize(divSubItems).height);
    height = ((height+10) > maxHeight) ? maxHeight : height+10;
    divSubItems.style.height = height + "px";
    
    if (height == maxHeight)
        expandSubItemsTimer = null;
    else
        expandSubItemsTimer = setTimeout("expandSubItems('"+menuItemID+"');", 50);
}

function closeSubItems(menuItemID)
{
    var subItems = document.getElementById('subMenuItems_'+menuItemID);
    var divSubItems = document.getElementById('divSubMenuItems_'+menuItemID);
    var tblSubItems = document.getElementById('tblSubMenuItems_'+menuItemID);
    var trSubItems = document.getElementById('trSubMenuItems_'+menuItemID);
    
    subItems.style.display = '';
    divSubItems.style.display = '';
    var maxHeight = parseInt(getElementSize(tblSubItems).height);
    var height = parseInt(getElementSize(divSubItems).height);
    height = ((height - 10) < 0) ? 0 : height - 10;
    divSubItems.style.height = height + "px";
    
    if (height == 0)
    {
        divSubItems.style.height = "1px";
        closeSubItemsTimer = null;
        subItems.style.display = 'none';
        divSubItems.style.display = 'none';
        trSubItems.style.display = 'none';
    }
    else
        closeSubItemsTimer = setTimeout("closeSubItems('"+menuItemID+"');", 50);
}