/********************************************************************************

	関数名		ShowMenu
	機能		サブメニューを表示する。
				「書く、編集」のサブメニューの場合は、初期状態を作成する。
	
	入力		bMode				表示、非表示Flg ( 1:Open  0:Close )
				sMenuId				メニューID
	G入力		gSetWriteMenuFlg	初期設定済みフラグ
	出力		なし
	
	処理概要	1. 表示モードの場合
				 1.1. サブメニューの初期設定がまだされていない場合
				  1.1.1. 初期設定を行う
				 1.2. サブメニューを表示する
				2. 非表示モードの場合
				 2.1. メニューを非表示にする
				 
********************************************************************************/

function ShowMenu(bMode, nMode, sMenuId){
	
	MenuUnitId = sMenuId + "Unit";
	MenuTitleId = sMenuId + "Btn";
	

	// 表示モードの場合
	if(bMode == 1){
		CntrlMenu('Open', nMode, MenuUnitId);
		ShowMenuTitle(nMode, MenuTitleId);
	
	// 非表示モードの場合
	} else {
		// サブメニューを非表示にする
		CntrlMenu('Close', nMode, MenuUnitId);
	}
	
}

function ShowMenuTitle(nMode, MenuTitleId){
	if(nMode == 0){
		document.getElementById(MenuTitleId).style.backgroundPosition = '863px 177px';
	} else if(nMode == 1) {
		document.getElementById(MenuTitleId).style.backgroundPosition = '739px 177px';
	} else if(nMode == 2) {
		document.getElementById(MenuTitleId).style.backgroundPosition = '601px 177px';
	} else if(nMode == 3) {
		document.getElementById(MenuTitleId).style.backgroundPosition = '468px 177px';
	} else if(nMode == 4) {
		document.getElementById(MenuTitleId).style.backgroundPosition = '306px 177px';
	} else if(nMode == 5) {
		document.getElementById(MenuTitleId).style.backgroundPosition = '199px 177px';
		
	} else if(nMode == 6) {
		document.getElementById(MenuTitleId).style.backgroundPosition = '863px 257px';
	} else if(nMode == 7) {
		document.getElementById(MenuTitleId).style.backgroundPosition = '739px 257px';
	} else if(nMode == 8) {
		document.getElementById(MenuTitleId).style.backgroundPosition = '601px 257px';
	} else if(nMode == 9) {
		document.getElementById(MenuTitleId).style.backgroundPosition = '468px 257px';
	} else if(nMode == 10) {
		document.getElementById(MenuTitleId).style.backgroundPosition = '306px 257px';
	} else if(nMode == 11) {
		document.getElementById(MenuTitleId).style.backgroundPosition = '199px 257px';
		
	} else if(nMode == 12) {
		document.getElementById(MenuTitleId).style.backgroundPosition = '863px 217px';
	} else if(nMode == 13) {
		document.getElementById(MenuTitleId).style.backgroundPosition = '739px 217px';
	} else if(nMode == 14) {
		document.getElementById(MenuTitleId).style.backgroundPosition = '601px 217px';
	} else if(nMode == 15) {
		document.getElementById(MenuTitleId).style.backgroundPosition = '468px 217px';
	} else if(nMode == 16) {
		document.getElementById(MenuTitleId).style.backgroundPosition = '306px 217px';
	} else if(nMode == 17) {
		document.getElementById(MenuTitleId).style.backgroundPosition = '199px 217px';
		
	} else if(nMode == 18) {
		document.getElementById(MenuTitleId).style.backgroundPosition = '838px 127px';
	} else if(nMode == 20) {
		document.getElementById(MenuTitleId).style.backgroundPosition = '672px 127px';
	} else if(nMode == 22) {
		document.getElementById(MenuTitleId).style.backgroundPosition = '505px 127px';
	} else if(nMode == 24) {
		document.getElementById(MenuTitleId).style.backgroundPosition = '338px 127px';
	} else if(nMode == 26) {
		document.getElementById(MenuTitleId).style.backgroundPosition = '171px 127px';
		
		
	} else if(nMode == 19) {
		document.getElementById(MenuTitleId).style.backgroundPosition = '838px 57px';
		document.getElementById(MenuTitleId).style.height = '54px';
	} else if(nMode == 21) {
		document.getElementById(MenuTitleId).style.backgroundPosition = '672px 57px';
		document.getElementById(MenuTitleId).style.height = '54px';
	} else if(nMode == 23) {
		document.getElementById(MenuTitleId).style.backgroundPosition = '505px 57px';
		document.getElementById(MenuTitleId).style.height = '54px';
	} else if(nMode == 25) {
		document.getElementById(MenuTitleId).style.backgroundPosition = '338px 57px';
		document.getElementById(MenuTitleId).style.height = '54px';
	} else if(nMode == 27) {
		document.getElementById(MenuTitleId).style.backgroundPosition = '171px 57px';
		document.getElementById(MenuTitleId).style.height = '54px';
		
	}
}

/********************************************************************************

	関数名		CtrlEvent
	機能		イベントを管理する
	
	入力		act			処理モード
				obj			イベント対象オブジェクト
				event		イベントタイプ
				funcname	実行関数名
				capture		イベントキャプチャ実行フラグ
				
	出力		なし
	
********************************************************************************/

function CntrlEvent(act, obj, event, funcname, capture){
	switch(act){
		case 'add' :
			if(obj.addEventListener) obj.addEventListener(event, funcname, capture);
			else if(obj.attachEvent) obj.attachEvent("on" + event, funcname);
			break;
		case 'remove' :
			if(obj.removeEventListener) obj.removeEventListener(event, funcname, capture);
			else if(obj.detachEvent) obj.detachEvent("on" + event, funcname);
			break;
	}
}


/********************************************************************************

	関数名		CntrlMenu
	機能		サブメニューを表示する
	
	入力		act			実行モード
				idname		表示エレメントのID
	出力		なし
	
********************************************************************************/

//タイマー管理用配列
var MenuTimer = {};

function CntrlMenu(act, nMode, idname){

	// 開くまでの待ち時間 
	var ActOpenT = 120;

	// 閉じるまでの待ち時間 
	var ActCloseT = 75;

	switch(act){
		case 'Open' :
			if(MenuTimer[idname]){ clearTimeout(MenuTimer[idname]); }
			MenuTimer[idname] = setTimeout("document.getElementById('"+idname+"').style.visibility = 'visible';", ActOpenT);
			break;
		case 'Close' :
			if(MenuTimer[idname]){ clearTimeout(MenuTimer[idname]); }
			CntrlEvent('add', 'document.documentElement', 'click', '_CloseAll', true);
			MenuTimer[idname] = setTimeout("CntrlMenu('_Close', '"+nMode+"', '"+idname+"'); ShowMenuTitle('"+nMode+"', '"+MenuTitleId+"')", ActCloseT);
			break;
		case '_Close' :
			document.getElementById(idname).style.visibility = 'hidden';
			break;
		case '_CloseAll' :
			for(i in MenuTimer){
				clearTimeout(MenuTimer[i]);
				document.getElementById(i).style.visibility = 'hidden';
			}
			CntrlEvent('remove', 'document.documentElement', 'click', '_CloseAll', true);
			break;
	}
}

// ### 背景画像のプリロード ###

function preload() {
	var img01 = new Image();
	img01.src = "http://imaging.jugem.jp/manage/img/bg_html.gif";
}

