var m_bFreezeLayer = false; var m_pCurrentMenuTop = null; var m_pCurrentMenuLayer = null; var m_pFutureMenuLayer = null; var m_strBgColorOutMenuTop = "#"; var m_strBgColorOverMenuTop = "#"; var m_strBgColorOutMenuItem = "#"; var m_strBgColorOverMenuItem = "#006666"; var m_strColorOutMenuItem = "#"; var m_strColorOverMenuItem = "#FFFFFF"; var m_bHideElements = false; function init() { var pTD; // effect in NS6: without this we got problems in size (cellpadding) ... ;-) } function EventOnMenuTop( in_bOver, in_pSource, in_strID, in_strDropDown ) { var pLayer = document.getElementById( in_strDropDown ); var pMenuItem = document.getElementById( in_strID ); if( in_bOver == true ) { SetMenuBox( pLayer, pMenuItem, in_pSource ); } else { // we need to do it this way, because the user could still // be inside the menu with his pointer TryToHideCurrentMenuBox(); } } function EventOnMenuTopSimple( in_bOver, in_pSource ) { if( in_bOver == true ) { in_pSource.style.background = "$m_out"; in_pSource.style.color = "$item"; in_pSource.style.cursor = "hand"; } else { in_pSource.style.background = "$m_out"; in_pSource.style.color = "$item"; in_pSource.style.cursor = "default"; } } function EventOnMenuItem( in_bOver, in_pSource ) { // if (!in_pSource.contains(event.fromElement)) if( in_bOver == true ) { in_pSource.style.cursor = 'hand'; in_pSource.style.background = m_strBgColorOverMenuItem; in_pSource.style.color = m_strColorOverMenuItem; } else { in_pSource.style.cursor = 'default'; in_pSource.style.background = m_strBgColorOutMenuItem; in_pSource.style.color = m_strColorOutMenuItem; } } function EventClickOnMenuItem( in_strURL ) { window.location.href = in_strURL; } function EventOnMenuBox( in_bOver, in_pSource ) { m_bFreezeLayer = in_bOver; if( in_bOver == true ) m_pFutureMenuLayer = in_pSource; else TryToHideCurrentMenuBox(); } function TryToHideCurrentMenuBox() { m_pFutureMenuLayer = null; setTimeout( "ShutdownMenu()", 80 ); } function ShutdownMenu() { if( m_pFutureMenuLayer == null && m_bFreezeLayer == false ) SetMenuBox( null, null, null ); } function SetMenuBox( in_pMenuBox, in_pDockingItem, in_pTopMenu ) { // alert( "m_pCurrentMenuLayer != null: " + (m_pCurrentMenuLayer != null) + "m_pCurrentMenuLayer != in_pMenuBox: " + (m_pCurrentMenuLayer != in_pMenuBox) ); // 1. Hide a layer, if we do not need it any more if( m_pCurrentMenuLayer != null && m_pCurrentMenuLayer != in_pMenuBox ) { m_pCurrentMenuLayer.style.visibility = "hidden"; m_pCurrentMenuTop.style.background = m_strBgColorOutMenuTop; m_pCurrentMenuTop.style.color = "blue"; // ??? m_pCurrentMenuTop.style.cursor = "default"; // document.body.bgColor="red"; } // 2. If this is the last call, show form items if( in_pMenuBox == null && m_pCurrentMenuLayer != null ) { HideAllFormElements( false ); } // 3. If this is the first call, hide form items else if( in_pMenuBox != null && m_pCurrentMenuLayer == null ) { HideAllFormElements( true ); } // 4. Show a layer, if it is new if( in_pMenuBox != null && m_pCurrentMenuLayer != in_pMenuBox ) { var x = 0; var y = 0; for( var pCurrent = in_pDockingItem; pCurrent != null; pCurrent = pCurrent.offsetParent ) { x += pCurrent.offsetLeft; y += pCurrent.offsetTop; } in_pMenuBox.style.left = x; in_pMenuBox.style.top = y; in_pMenuBox.style.visibility = "visible"; in_pTopMenu.style.background = m_strBgColorOverMenuTop; in_pTopMenu.style.color = "yellow"; // ??? in_pTopMenu.style.cursor = "default"; } m_pCurrentMenuTop = in_pTopMenu; m_pCurrentMenuLayer = in_pMenuBox; m_pFutureMenuLayer = in_pMenuBox; } function HideAllFormElements( in_bHide ) { if( m_bHideElements == true ) { var j; var pForm; var strVisible; if( in_bHide == true ) strVisible = "hidden"; else strVisible = "visible"; for( var i = 0; i < document.forms.length; i++ ) { pForm = document.forms.item( i ); for( j = 0; j < pForm.elements.length; j++ ) pForm.elements.item( j ).style.visibility = strVisible; } } }