//   -			-			-			-			-			MENU'S
// todo make this recurse through an array of menu levels..
var sSubMenuOldLayer = '';
var sSubMenuRequestRemove = '';
var sOldSubvisible = '';
var sMenuOldLayer = '';
var sMenuRequestRemove = '';
var sOldvisible = '';

var MENU_DELAY = 800;

// activating a menu is right away 
function menu_activate_submenu( sMenuDiv ) {
    if (sMenuRequestRemove==sMenuDiv) {
        // prevent removing after timeout: keep alive!
        sMenuRequestRemove = "";
    } else {
        if (sMenuDiv!=sMenuOldLayer) {
	        menu_remove_submenu();
	        if (sMenuOldLayer!="") {
		        MM_showHideLayers(sMenuOldLayer,'','hide');
		        sMenuRequestRemove = "";
		        s = layer_get_style(sMenuOldLayer);
		        if (s) s.zIndex = -1;	
	        }
	        MM_showHideLayers(sMenuDiv,'','show');
	        sMenuOldLayer = sMenuDiv;
	        s = layer_get_style(sMenuOldLayer);
	        if (s) s.zIndex = 999;	
        } 
    }
} 

// de-activating a menu is done with a delay, ensuring that this is what the user wants
function menu_deactivate_submenu( ) {
    if (sMenuOldLayer!="") {
        sMenuRequestRemove = sMenuOldLayer;
        window.setTimeout ( "menu_remove_submenu('" + sMenuOldLayer + "')", MENU_DELAY);
    }
} 

// actual removal of a menu, milliseconds after the mouse has left the 'hot-zone' 
function menu_remove_submenu() {
    if (sMenuRequestRemove!="") {
        if (sMenuOldLayer!="") MM_showHideLayers(sMenuOldLayer,'','hide');
        s = layer_get_style(sMenuOldLayer);
        if (s) s.zIndex = -1;	
        sMenuOldLayer="";
        sMenuRequestRemove="";
        
        menu_remove_sub_submenu();
    }
}

    // activating a menu is right away 
function menu_activate_sub_submenu( sMenuDiv ) {
    if (sSubMenuRequestRemove==sMenuDiv) {
        // prevent removing after timeout: keep alive!
        sSubMenuRequestRemove = "";
    } else {
        if (sMenuDiv!=sSubMenuOldLayer) {
	        menu_remove_sub_submenu();
	        if (sMenuOldLayer!="") {
		        MM_showHideLayers(sSubMenuOldLayer,'','hide');
		        sSubMenuRequestRemove = "";
		        s = layer_get_style(sSubMenuOldLayer);
		        if (s) s.zIndex = -1;
	        }
	        MM_showHideLayers(sMenuDiv,'','show');
	        sSubMenuOldLayer = sMenuDiv;
	        s = layer_get_style(sSubMenuOldLayer);
	        if (s) s.zIndex = 9999;	
        } 
    }
} 

// de-activating a menu is done with a delay, ensuring that this is what the user wants
function menu_deactivate_sub_submenu( ) {
    if (sSubMenuOldLayer!="") {
        sSubMenuRequestRemove = sSubMenuOldLayer;
        window.setTimeout ( "menu_remove_sub_submenu('" + sSubMenuOldLayer + "')", MENU_DELAY);
    }
} 

// actual removal of a menu, milliseconds after the mouse has left the 'hot-zone' 
function menu_remove_sub_submenu() {
    if (sSubMenuRequestRemove!="") {
        if (sSubMenuOldLayer!="") MM_showHideLayers(sSubMenuOldLayer,'','hide');
        s = layer_get_style(sSubMenuOldLayer);
        if (s) s.zIndex = -1;	
        sSubMenuOldLayer="";
        sSubMenuRequestRemove="";
        // post a delayed message to remove the parent
        menu_deactivate_submenu();
    }
}

function sync_menu(nID) {
    var subm  = document.getElementById( 'menu'      + nID.toString() );
    var mainm = document.getElementById( 'mainmenu_' + nID.toString() );
    var c     = document.getElementById( 'middlecontainer');
    if (subm) {
        subm.style.top = c.offsetTop;
        subm.style.left = mainm.offsetLeft + c.offsetLeft - 1;
    if (subm.style.width < mainm.offsetWidth) 
          subm.style.width = mainm.offsetWidth + 1;
    }
}

function sync_submenu(nSubmenuID, nSubSubMenuID, regel) {
    var subm      = document.getElementById( 'menu'    + nSubmenuID.toString() );
    var sub_subm  = document.getElementById( 'submenu' + nSubSubMenuID.toString() );
    var c         = document.getElementById( 'middlecontainer');
    if (subm) {
        sub_subm.style.top = subm.offsetTop + regel*22 + 11;
        sub_subm.style.left = subm.offsetLeft + (subm.offsetWidth - 10);
    sub_subm.style.width = '150';
    }
}   

function setclass( TRElt, className) {
    if (TRElt.childNodes) {
	    for (t=0;t<TRElt.childNodes.length;t++) {
		    TRElt.childNodes[t].className = className; 	
	    }
    }
}

