﻿
//timer for hiding menu dropdown
var gl_Timer = null;
var gl_bTimer = true;
var gl_nTimeout = 400;

//timer for showing menu dropdown
var gl_EnterTimer = null;
var gl_bEnterTimer = true;
var gl_nEnterTimeout = 400;


//timer for hiding sub-menu dropdown
var gl_SubTimer = null;
var gl_bSubTimer = true;
var gl_nSubTimeout = 200;

var gl_browser = "";
var gl_bInitialized = false;
var gl_syntaxLayer = "";
var gl_syntaxStyle = "";
var gl_nMaxSubmenus = 4;
var gl_menuImagePrefix = "menu";
var gl_layerPrefix = "submenu";
var gl_subLayerPostfix = "_submenu";
var gl_bSubLayerFocus = false;
var gl_subLayerDisplayedID = "";


//preload images
var imgHover = new Array();
var imgCurrent = new Array();
if (document.images)
{
    for (i=1; i<= gl_nMaxSubmenus; i++)
    {
        imgHover[i]= new Image(); 
        imgHover[i].src = "../Images/menu_" + i + "_hover.gif";
        imgCurrent[i]= new Image(); 
        imgCurrent[i].src = "../Images/menu_" + i + ".gif";
    }
}




function hoverMenuOn(arg)
{
    if(document.images)
        document.images[gl_menuImagePrefix + arg + ""].src = imgHover[arg-0].src;
}

function hoverMenuOff(arg)
{
    if(document.images)
        document.images[gl_menuImagePrefix + arg + ""].src = imgCurrent[arg-0].src;
}

function initMenu()
{
    if(document.layers) 
    {
        gl_browser ="netscape4";
        gl_syntaxLayer = "document.layers";
        gl_syntaxStyle="";
        screenSize = window.innerWidth;
    }else if(document.all){
        gl_browser ="ie";
        gl_syntaxLayer = "document.all";
        gl_syntaxStyle=".style";
        screenSize = document.body.clientWidth + 18;
    }else if(document.getElementById){
        gl_browser="mozilla"; //Netscape 6?
        gl_syntaxLayer = "document.getElementByID";
        gl_syntaxStyle=".style";
    }else{
        gl_browser="";
    }
    
    gl_bInitialized = true;
}

function enterMenu(arg)
{
    stopEnterTimer();
    startEnterTimer(arg);
}

function enterMenuDelayed(arg)
{
    var submenuID = gl_layerPrefix + arg + "";
    hideAllLayers();
    showLayer(submenuID);
    stopTimer();
}

function leaveMenu(arg)
{
    stopEnterTimer();
    startTimer();
}

function enterSubMenu(arg)
{
    stopTimer();
}

function leaveSubMenu(arg)
{
    startTimer();
}

function toggleLayer(arg, bShow)
{
    if(!gl_bInitialized || gl_browser == "")
        return;
        
    if(bShow)
        bShow = "visible";
    else
        bShow = "hidden";
        

    if (gl_browser == "mozilla")
        document.getElementById(arg).style.visibility = bShow;
    else 
    {
        var oLayer = null;
        eval('oLayer = ' + gl_syntaxLayer + '["' + arg + '"]');
        if(oLayer)
        {
            eval(gl_syntaxLayer + '["' + arg + '"]' + gl_syntaxStyle + '.visibility = "' + bShow + '"');
        }
    }
}

function hideLayer(arg)
{
     toggleLayer(arg, false);  
}

function showLayer(arg)
{
     toggleLayer(arg, true);  
}


function hideAllLayers()
{
    for(i=1;i<=gl_nMaxSubmenus;++i)
        hideLayer(gl_layerPrefix + i + "");
        
    hideSubSubMenu();
}

function startTimer() 
{
    if (!gl_bTimer) {
        gl_Timer = setTimeout( "hideAllLayers()" , gl_nTimeout);
        gl_bTimer = true;
    }
}

function stopTimer() 
{
    if (gl_bTimer) 
    {
        clearTimeout(gl_Timer);
        gl_Timer = null;
        gl_bTimer = false;
    }
}

function startEnterTimer(arg) 
{
    if (!gl_bEnterTimer) {
        gl_EnterTimer = setTimeout( "enterMenuDelayed('" + arg + "')" , gl_nEnterTimeout);
        gl_bEnterTimer = true;
    }
}

function stopEnterTimer() 
{
    if (gl_bEnterTimer) 
    {
        clearTimeout(gl_EnterTimer);
        gl_EnterTimer = null;
        gl_bEnterTimer = false;
    }
}

//-------------------------------------------
//sub-submenu code
//-------------------------------------------
function startSubTimer() 
{
    if (!gl_bSubTimer) {
        gl_SubTimer = setTimeout( "hideSubSubMenu()" , gl_nSubTimeout);
        gl_bSubTimer = true;
    }
}

function stopSubTimer() 
{
    if (gl_bSubTimer) 
    {
        clearTimeout(gl_SubTimer);
        gl_SubTimer = null;
        gl_bSubTimer = false;
    }
}

function enterSubSubMenu()
{
    stopTimer();
    stopSubTimer();
    gl_bSubLayerFocus = true;
}

function leaveSubSubMenu()
{
    gl_bSubLayerFocus = false;
    startSubTimer();
    startTimer();
}

function openSubSubMenu(argSubmenuId, argSubSubMenuId)
{
    stopSubTimer();
    gl_subLayerDisplayedID = gl_layerPrefix + argSubmenuId + gl_subLayerPostfix + argSubSubMenuId + "";
    showLayer(gl_subLayerDisplayedID);
}

function closeSubSubMenu()
{
    startSubTimer();
}

function hideSubSubMenu()
{
    if(gl_bSubLayerFocus)
        return;
    if(gl_subLayerDisplayedID.length > 0)
        hideLayer(gl_subLayerDisplayedID);      
}
