//	block_switcher
//	A、B２つのブロックを、
//	1)	Aのブロックが表示、Bのブロックが非表示
//	2)	AのブロックをクリックすることでAを非表示、Bを表示
//	3)	Bのブロックから一定時間マウスが外れることでBを非表示、Aを表示
//	と入れ替え表示する
//
//	@param	block_a_	最初に表示されているブロック
//	@param	block_b_	クリック時に表示されるブロック
//	@param	delay_time_	マウスアウト時のディレイ時間。デフォルト300msec
//	
//	@usage	var block_a = document.getElementById('A_block');
//			var block_b = document.getElementById('B_block');
//			var swithcer = new block_switcher(block_a, block_b, 200);

function block_switcher(block_a_, block_b_, delay_time_, display_style){
	//タイマーIDを初期化
	this.timerid = null;
	
	//ディレイ時間のデフォルトは300秒
	if (!delay_time_){
		delay_time_ = 300;
	}
	
	//displayのデフォルトはblock
	if (!display_style){
		display_style = "block";
	}
	
	//両ブロックの初期状態を設定
	block_a_.style.display = display_style;
	block_b_.style.display = 'none';
	
	
	//Aブロックのクリックハンドラ。Aを非表示、Bを表示にする
	block_a_.onclick = function(){
		block_a_.style.display = 'none';
		block_b_.style.display = display_style;
		block_b_.focus();
	}
	
	//Bブロックのマウスオーバーハンドラ。タイムアウトを設定する
	block_b_.onmouseover = function(){
		if (this.timerid){
			window.clearTimeout(this.timerid);
		}
	}
	
	//Bブロックのマウスアウトハンドラ。Bを非表示、Aを表示にする
//	block_b_.onmouseout = function(){
	block_b_.onblur = function(){
		if (this.timerid){
			window.clearTimeout(this.timerid);
		}
		this.timerid = window.setTimeout(
			function(){
				block_b_.style.display = 'none';
				block_a_.style.display = display_style;
			}
			, delay_time_
		);
	}
}
