// Copyright (c) 2009, John Altenmueller -- john@altenmueller.com // You may freely use and redistribute this code under the terms // of the BSD license: http://creativecommons.org/licenses/BSD/ var current_item = 0; var timer_id; var timer_id2; var timeout = 300; var delay = 90; function submenu_show( item ) { clearTimeout( timer_id ); if ( current_item ) { if (current_item != item) { current_item.style.visibility = 'hidden'; current_item = item; } current_item.style.visibility = 'visible'; } else if ( item ) { current_item = item; timer_id2 = setTimeout( function(){current_item.style.visibility = 'visible';}, delay ); } } function submenu_done() { clearTimeout( timer_id2 ); timer_id = setTimeout( function(){current_item.style.visibility = 'hidden';}, timeout); } function submenu_clear_timer() { clearTimeout( timer_id2 ); clearTimeout( timer_id ); } function submenu_get( item ) { return function() { var els = item.parentNode.getElementsByTagName('div'); submenu_show(els[0]); }; } function init() { var navbar = document.getElementById('navbar'); var navbar_els = navbar.getElementsByTagName('li'); var index = 0; var li_index = 0; var li_current = navbar_els[0]; while ( li_current ) { var li_as = li_current.getElementsByTagName('a'); if ( li_as[0] ) { li_as[0].onmouseover = submenu_get(li_as[0]); li_as[0].onmouseout = submenu_done; var li_divs = li_current.getElementsByTagName('div'); if ( li_divs[0] ) { li_divs[0].onmouseover = submenu_clear_timer; li_divs[0].onmouseout = submenu_done; } } li_index++; li_current = navbar_els[++index]; } } window.onload = init;