
	/*
	 * タイマ管理リスト
	 * 
	 * @access public
	 * @var    array   オブジェクト ID をキーに，タイマ ID を保持する．
	 */
	var menuTimerIdList = new Array();

	/*
	 * menuName で指定されたオブジェクトを visible にする．
	 * 既に close 予約がある場合は破棄する．
	 * また，他に open 状態のオブジェクトがあれば，それを全て close する．
	 * 
	 * @access public
	 * @param  string  menuName オブジェクト名称
	 * @return void
	 */
	function openMenu( menuName )
	{
		if( typeof( menuTimerIdList[ menuName ] ) != 'undefined' ){
			clearTimeout( menuTimerIdList[ menuName ] );
			delete( menuTimerIdList[ menuName ] );
		}
		else {
			for( n in menuTimerIdList ){
				changeVisibility( n, false );
			}
			changeVisibility( menuName, true );
		}
	}

	/*
	 * menuName で指定されたオブジェクトを close 予約する．
	 * 
	 * @access public
	 * @param  string  menuName オブジェクト名称
	 * @return void
	 */
	function closeMenu( menuName )
	{
		menuTimerIdList[ menuName ] = setTimeout( 'changeVisibility( "' + menuName + '", false )', 300 );
	}

	/*
	 * menuName で指定されたオブジェクトの visibility を status に変更する．
	 * 
	 * @access public
	 * @param  string  menuName オブジェクト名称
	 * @param  boolean status   セットする状態（ true / false ）
	 * @return void
	 */
	function changeVisibility( menuName, status )
	{
		var changeVisibilityFunction;

		if( document.getElementById ){
			changeVisibilityFunction = 'changeVisibility_standard';
		}
		else if( document.all ){
			changeVisibilityFunction = 'changeVisibility_IE45';
		}
		else if( document.layers ){
			changeVisibilityFunction = 'changeVisibility_NN4';
		}
		eval( changeVisibilityFunction + '( menuName, status )' );

		if( status == false ){
			delete( menuTimerIdList[ menuName ] );
		}
	}

	/*
	 * menuName で指定されたオブジェクトの visibility を status に変更する．
	 * 標準準拠ブラウザ版．
	 * 
	 * @access public
	 * @param  string  menuName オブジェクト名称
	 * @param  boolean status   セットする状態（ true / false ）
	 * @return void
	 */
	function changeVisibility_standard( menuName, status )
	{
		document.getElementById( menuName ).style.visibility = ( status )? 'visible': 'hidden';
	}
	/*
	 * menuName で指定されたオブジェクトの visibility を status に変更する．
	 * Internet Explorer 4.0/5.0 版．
	 * 
	 * @access public
	 * @param  string  menuName オブジェクト名称
	 * @param  boolean status   セットする状態（ true / false ）
	 * @return void
	 */
	function changeVisibility_IE45( menuName, status )
	{
		document.all[ menuName ].style.visibility = ( status )? 'visible': 'hidden';
	}
	/*
	 * menuName で指定されたオブジェクトの visibility を status に変更する．
	 * Netscape Navigator 4.x 版．
	 * 
	 * @access public
	 * @param  string  menuName オブジェクト名称
	 * @param  boolean status   セットする状態（ true / false ）
	 * @return void
	 */
	function changeVisibility_NN4( menuName, status )
	{
		document.layers[ menuName ].visibility = ( status )? 'show': 'hide';
	}
