
/* ==============================================
	Drop down menu JavaScript code
===============================================*/

var lv1MenuOnTimer;  // Timer for showing 1st level DDmenus
var lv1MenuOffTimer;  // Timer for hideing 1st level DDmenus

var lv2MenuOffTimer;  // Timer for showing 2nd level DDmenus
var lv2MenuOnTimer;  // Timer for hideing 2nd level DDmenus

var lv3MenuOffTimer;  // Timer for showing 3rd level DDmenus
var lv3MenuOnTimer;  // Timer for hideing 3rd level DDmenus

var lv1MenuVisible; // The ID of the lv1 menu that is visible (if any)
var lv2MenuVisible; // The ID of the lv2 menu that is visible (if any)
var lv3MenuVisible; // The ID of the lv3 menu that is visible (if any)

// All timeouts are in milliseconds
var lv1MenuTimeout = 200;  // Timeout that shows and hides the 1st level menu
var lv2MenuTimeout = 200;  // Timeout that shows and hides the 2nd level menu
var lv3MenuTimeout = 200;  // Timeout that shows and hides the 3rd level menu


/* Shows a specified level DDmenu with a specified timeout */
function MenuOn(menuid, menuLevel) {

        if (menuLevel == 1) {
        
            /* Clear level 1 timers */
            clearTimeout(lv1MenuOffTimer);
            clearTimeout(lv1MenuOnTimer);

            lv1MenuOnTimer = setTimeout("showMenu('"+menuid+"', 1)", lv1MenuTimeout);
            
         } else if (menuLevel == 2) {
                  
         /* Clear level 1 and 2 timers */
            clearTimeout(lv1MenuOffTimer);
            clearTimeout(lv1MenuOnTimer);
            clearTimeout(lv2MenuOffTimer);
            clearTimeout(lv2MenuOnTimer);

            lv2MenuOnTimer = setTimeout("showMenu('"+menuid+"', 2)", lv2MenuTimeout);
            
         } else if (menuLevel == 3) {
         
            /* Clear level 1, 2 and 3 timers */
            clearTimeout(lv1MenuOffTimer);
            clearTimeout(lv1MenuOnTimer);
            clearTimeout(lv2MenuOffTimer);
            clearTimeout(lv2MenuOnTimer);
            clearTimeout(lv3MenuOffTimer);
            clearTimeout(lv3MenuOnTimer);

            lv3MenuOnTimer = setTimeout("showMenu('"+menuid+"', 3)", lv3MenuTimeout);
         }
}


/* Shows the DDmenu (level 1, 2 or 3) */
function showMenu(menuid, menuLevel) {
	
        if (menuLevel == 1) {
            
            /* Hide currently visible 1st level menu */
            hideMenu(1);
            
            // Set visible 1st level menu
            lv1MenuVisible = menuid;
            
         } else if (menuLevel == 2) {

            /* Hide currently visible 2nd level menu */
            hideMenu(2);

            lv2MenuVisible = menuid;
            
        } else if (menuLevel == 3) {
            
            /* Hide currently visible 3rd level menu */
            hideMenu(3);

            lv3MenuVisible = menuid;
            
        }
	
	/* Set menu visible */
        document.getElementById(menuid).style.display='block';
}


/* Hides a specified level DDmenu after certain timeout. */
function MenuOff(menuLevel) {
	
        if (menuLevel == 1) {
            
        // Clear timeout so that the menu is not going to be shown
        clearTimeout(lv1MenuOnTimer);
	
	lv1MenuOffTimer = setTimeout("hideMenu(1)", lv1MenuTimeout);
         
         } else if (menuLevel == 2) {
         
              // Clear timeout so that the menu is not going to be shown
            clearTimeout(lv2MenuOnTimer);

            /* If the 2nd level menu is visible, hide it with timeout */
            if (lv2MenuVisible!=null) {
                    lv2MenuOffTimer = setTimeout("hideMenu(2)", lv2MenuTimeout);
            }
         } else if (menuLevel == 3) {

          // Clear timeout so that the menu is not going to be shown
            clearTimeout(lv3MenuOnTimer);

            /* If the 3rd level menu is visible, hide it with timeout */
            if (lv3MenuVisible!=null) {
                    lv3MenuOffTimer = setTimeout("hideMenu(3)", lv3MenuTimeout);
            }

            }
}


/* Hides currently visible DDmenu (level 1, 2 or 3) */
function hideMenu(menuLevel) {
    
    // Hide menu   
    
    if (menuLevel==1 && lv1MenuVisible) {
        
        document.getElementById(lv1MenuVisible).style.display='none';	
        lv1MenuVisible = null;

    } else if (menuLevel==2 && lv2MenuVisible) {
    
        document.getElementById(lv2MenuVisible).style.display='none';	
        lv2MenuVisible = null;

    }  else if (menuLevel==3 && lv3MenuVisible) {
    
        document.getElementById(lv3MenuVisible).style.display='none';	
        lv3MenuVisible = null;
        
    }  
}
