/*
 MENU - Clubsational Frontend Menu
 (c) Timothy Anido 2006/2007
 version 2.1
 
this script displays and hides navigational submenus

 requires:
 - xoo.js
*/

{

var duration = 30;
var hoverDelay = 200;
var hideDelay = 600;
var menus = ['nav-region', 'nav-legal'];

window.addEvent('load', function( ) { 
	
	menus.each( function( menu ) {
		var trigger = $( menu );
		trigger.timers = new Object( );
		trigger.menu = $( menu + '-menu' );
		trigger.list = $( menu + '-ul' );
		trigger.menu.wrap( );
		trigger.onmouseover = function( ) { showMenu( this ) };
		
		trigger.menu.wrapper.style.left = "-1000px";
		trigger.menu.style.display = "block";
		trigger.menu.extendedHeight = trigger.menu.offsetHeight;
		
		trigger.menu.wrapper.style.zIndex = "100";
		trigger.menu.wrapper.style.height = "0px";
		trigger.menu.wrapper.style.position = 'absolute';
		
		$extend(trigger.menu.wrapper, ElementExtension.prototype);
	} );
	
});


function showMenu( trigger )
{
	trigger.over = true;
	trigger.onmouseout = function( ) { hideMenu( trigger ) };
	trigger.menu.wrapper.style.top = ( trigger.getPosition( ).Y + 25 ) + "px";
	trigger.menu.wrapper.style.left = trigger.getPosition( ).X + "px";
	trigger.menu.style.margin = "0";
	if( ! trigger.menu.extended ) trigger.timers.show = setTimeout( 'reallyShowMenu("'+trigger.getAttribute('id')+'")', hoverDelay );
	clearTimeout( trigger.timers.hide );
}

function reallyShowMenu( id )
{
	trigger = $( id );
		
	trigger.menu.wrapper.slide({'duration':.5, 'end':trigger.menu.extendedHeight, 'start': 0, 'property': 'height', 'easing': easing.easeIn, 'fps': 50 });
	trigger.timers.counter = 0;
	trigger.id = trigger.menu.id = id;
	
	trigger.menu.onmouseover = function ( ) { trigger.over = true; clearTimeout( trigger.timers.hide ); };
	trigger.list.onmouseover = function ( ) { trigger.over = true; clearTimeout( trigger.timers.hide ); };
	trigger.menu.onmouseout = function ( ) { hideMenu( this.id ) };
	trigger.onmouseout = function ( ) { hideMenu( this.id ) };
	clearTimeout( trigger.timers.hide );
}



function hideMenu( id )
{
	trigger = $( id );
	trigger.over = false;
	clearTimeout( trigger.timers.show );
	trigger.timers.hide = setTimeout( 'reallyHideMenu("'+id+'")', hideDelay );
}
function reallyHideMenu( id )
{
	trigger = $( id );
	if( ! trigger.over )	{
		//trigger.menu.wrapper.style.height = '0px';
		clearTimeout( trigger.timers.show );
		trigger.menu.wrapper.slide({'duration':.5, 'start':trigger.menu.extendedHeight, 'end': 0, 'property': 'height', 'easing': easing.easeIn, 'fps': 50 });
		trigger.timers.counter = 0;
		clearTimeout( trigger.timers.hide );
		trigger.over = false;
		trigger.menu.extended = false;
	}
}


}