
var _isLocked = false;
var _drawerInTransition = false;
var _currentDrawer = null;

function initDrawers( where )
{
	var drawers = $( where + " #navslider .drawers>div" );
	for ( i = 0; i < drawers.length; i++ )
	{
		//errMsg( $( drawers[i] ) + "<br />", true );
		var content = $( drawers[i] ).children( ".drawer-content" );
		var handle = $( drawers[i] ).children( ".drawer-handle" );

		content.hide( );
		handle.attr( "_index", i );
		handle.attr( "_isOpen", false );
		handle.attr( "_parent", where );
		handle.mouseover( function( )
		{
			errMsg( "already open?" +  $( this ).attr( "_isOpen" ), true );
			if ( $( this ).attr( "_isOpen" ) == "false" )
			{
				errMsg( "drawerOpen", true );
				openDrawer( $( this ) );
			}
		} );
	}
	
	//var container = $( ".navslider" );
	//container.css( "height", "auto" );
}

function openBlogDrawer( where )
{
	var drawers = $( "#main #navslider .drawers>div" );
	for ( i = 0; i < drawers.length; i++ )
	{
		if ( i == 0 )
		{
			var handle = $( drawers[i] ).children( ".drawer-handle" );
			openDrawer( $( handle ) );
		}
	}
}

function openArticleDrawer( )
{
	var drawers = $( "#main #navslider .drawers>div" );
	for ( i = 0; i < drawers.length; i++ )
	{
		if ( i == 1 )
		{
			var handle = $( drawers[i] ).children( ".drawer-handle" );
			openDrawer( $( handle ) );
		}
	}
}

function openDrawer( drawer )
{
	if ( _isLocked )
		return;
		
	_isLocked = true;
	
	var _o_currentContent = drawer.parent( ).children( ".drawer-content" );
	var _o_currentHandle = drawer.parent( ).children( ".drawer-handle" );

	//errMsg( "_currentDrawer=" + _currentDrawer, true );
	closeAllDrawers( _o_currentHandle.attr( "_parent" ) );
	
	_drawerInTransition = true;

	_o_currentHandle.addClass( "open" );
	
	
	var _o_afterFinish = function( )
	{
		errMsg( "(open)currentHandle = " + _o_currentHandle + " and isOpen?" + _o_currentHandle.attr( "_isOpen" ), true );
		_o_currentHandle.attr( "_isOpen", true );
		errMsg( "(open)currentHandle = " + _o_currentHandle + " and isOpen?" + _o_currentHandle.attr( "_isOpen" ), true );
		_currentDrawer = drawer;
		
		_isLocked = false;
		
		_drawerInTransition = false;
	}
	
	_o_currentContent.show( "slow", function( ) { setTimeout( _o_afterFinish, 60 ); } );
	
	_drawerInTransition = false;
}

function closeDrawer( drawer )
{
	var _c_currentContent = drawer.parent( ).children( ".drawer-content" );
	var _c_currentHandle = drawer.parent( ).children( ".drawer-handle" );
	
	errMsg( "in transition? " + _drawerInTransition + " || ", true );
	errMsg( "this drawer is already closed? " + !_c_currentHandle.attr( "_isOpen" ), true );
	
	//if ( _drawerInTransition || ( _c_currentHandle.attr( "_isOpen" ) == "false" ) )
	//{
	//	errMsg( " so return", true );
	//	return;
	//}
		
	_drawerInTransition = true;
	
	var _c_afterFinish = function( )
	{
		errMsg( "(close)currentHandle = " + _c_currentHandle + " and isOpen?" + _c_currentHandle.attr( "_isOpen" ), true );
		_c_currentHandle.attr( "_isOpen", false );
		errMsg( "(close)currentHandle = " + _c_currentHandle + " and isOpen?" + _c_currentHandle.attr( "_isOpen" ), true );
		_c_currentHandle.removeClass( "open" );
		
		//errMsg( _c_currentHandle.attr( "_index" ) + "==" + _currentDrawer.attr( "_index" ), true );
		//if ( _c_currentHandle.attr( "_index" ) == _currentDrawer.attr( "_index" ) )
		//	_currentDrawer = null;
		
		_drawerInTransition = false;
	}
	
	_c_currentContent.hide( "slow", function( ) { setTimeout( _c_afterFinish, 60 ); } );
}

function closeAllDrawers( where )
{
	var drawers = $( where + " #navslider .drawers>div" );
	for ( i = 0; i < drawers.length; i++ )
	{
		var handle = $( drawers[i] ).children( ".drawer-handle" );
		closeDrawer( handle );		
	}
}

