///////////////////////////////////////////////////////////////////////////////
//
//  3D SHOWROOM メインJavaScript
//  Copyright 2010 SANYO Information Technology Solutions Co., Ltd.
//
///////////////////////////////////////////////////////////////////////////////

/* ============================================================================
  定数
============================================================================ */
/***** 共通 *****/
var co_default = "main";

/***** メニュー *****/
var daMen = new Array( "model","color","inter","opt","scene","est" );

/***** モデル *****/
var daMod = new Array();
					// 0モデル名	1画像ファイル名	2メイン画像	3説明文画像
daMod[0] = new Array( "TYPE A",		"mb_a",			"mm_a",		"mt_a"		 );
daMod[1] = new Array( "TYPE B",		"mb_b",			"mm_b",		"mt_b"		 );
daMod[2] = new Array( "TYPE C",		"mb_c",			"mm_c",		"mt_c"		 );

/***** カラー *****/
// 名前のみ調整済み
var daCol = new Array();
					// 0カラー名	1CultTex名	2画像ファイル名	3適合するモデル(0=適合なし、1=適合（オプション）、2=適合（標準）)
daCol[0] = new Array("シルバー",	"silver", 	"c_sil", 		new Array(2,2));
daCol[1] = new Array("ブルー",		"blue", 	"c_blu", 		new Array(1,1));
daCol[2] = new Array("レッド",		"red",	 	"c_red", 		new Array(1,1));
daCol[3] = new Array("ブラック",	"black", 	"c_bla", 		new Array(1,1));

/***** オプション *****/
var daOpt = new Array();
daOpt[ 0]=new Array("","");

/***** シーン *****/
var daBac = new Array();
					// 0シーンパノラマ名	1CultFile名	2画像ファイル名
daBac[0] = new Array("night",				"night", 	"b_nig" );
daBac[1] = new Array("running",				"run", 		"b_run" );

/* ============================================================================
  変数
============================================================================ */
var Cult3DLoaded = false;					// COロード済フラグ
var Cult3DFilename = "";					// 現在読み込み中のCOファイル名

var winEnv = null;							// 動作環境ウィンドウ
var winEst = null;							// 見積ウィンドウ（テスト用）

var menSel = -1;							// 選択中のメニュー
var aaSel = aaDef;							// 選択中のアンチエイリアス処理
var optSel = new Array(daOpt.length);		// 選択されているオプション
var modSel = 2;								// 選択モデル
var colSel = 1;								// 選択カラー
var bacSel = 0;								// 選択中のシーンパノラマ
var loadingWorldFlg = false;				// ワールド読み込み中フラグ
var F3DFlg = false;							// ３Ｄ表示エリア拡大フラグ

var dutyFlg = false;						// オプションまたはカラーが変更されているかどうかのフラグ

var BG_mid1 = null;							// 3Dエリアの背景画像ファイル名
var BG_mid1_bc = null;						// 3Dエリアの背景色
var firstOp = false;						// メニュー切り替え後 0 になり、最初にボタンが選択されたとき 1 になる


/* ============================================================================
　共通
============================================================================ */

/***** 選択リストを出力 *****/
function writeList() {

	switch(menSel) {

		case 0:	// モデル
		clearList();
		break;

		case 1:	// カラー
		writeColList();
		break;

		case 2:	// インテリア
		break;

		case 3:	// オプション
		break;

		case 4:	// シーン
		writeBacList();
		break;

		case 5:	// 御見積
		clearList();
		break;

	}
}

/***** 選択リストをクリア *****/
function clearList() {
	top.f_down1.document.all.list.innerHTML = "";
}

/***** 指定IDのオプションを表示 *****/
function showOpt( d,id ) {
	itemname = "opt" + id;
	showNode(daOpt[id][1]);
}

/***** 指定IDのオプションを非表示 *****/
function hideOpt( d,id ) {
	itemname = "opt" + id;
	hideNode(daOpt[id][1]);
}


/***** 別バージョンのトップページへ移動 *****/
function changeTop( dishw, ln ) {

	var url="../";
	url += ( ln==0 ? "jp/" : "en/" );
	url += ( dishw==0 ? "index.htm" : "index_sr.htm" );
	top.location.href=url;

}


/* ============================================================================
　表示言語の切り替え
============================================================================ */

/***** 言語切り替えボタン画像のＵＲＬを返す関数 *****/
function MenLngURL(mo) {

	var statue=0;
	if ( mo==1 ) statue+=1;
	var url = "images/lang_" + statue + ".gif";
	return url;

};

/***** 言語切り替え *****/
function changeLang() {
	changeTop(disablehw,1-lang);
}

/* ============================================================================
　動作環境／著作権について
============================================================================ */

/***** 動作環境ボタン画像のＵＲＬを返す関数 *****/
function MenEnvURL(mo) {

	var statue=0;
	if ( mo==1 ) statue+=1;
	var url = "images/en_opn_" + statue + ".gif";
	return url;

};

/***** 動作環境表示 *****/
function openEnvWin()
{
	if(winEnv == null){
		w = 600;
		h = 400;
		l = ( screen.availWidth - w ) / 2;
		t = ( screen.availHeight - h ) / 2;
		url = ( disablehw == 1 ) ? "env_sr.htm" : "env.htm";
		top.winEnv = window.open(url, null, "left=" + l + ",top=" + t + ",width=" + w + ",height=" + h );
	} else {
		winEnv.focus();
	}
}


/* ============================================================================
　メニュー
============================================================================ */

/***** メニューを出力 *****/
function writeMen() {

	var ih ="<TABLE border=0 cellpadding=0 cellspacing=0 style='margin-top:24px; margin-left:23px;'>";
	for ( i=0; i<daMen.length; i++ ) {

		ih+="<TR><TD><TABLE border=0 cellpadding=0 cellspacing=0 ><TR><TD align='center'>";
		ih+="<IMG id='men"+i+"' src='"+MenBanURL(i,0)+"' style='cursor:pointer;'";
  		ih+=" onMouseOver='men"+i+".src=top.MenBanURL("+i+",1);'";
  		ih+=" onMouseOut ='men"+i+".src=top.MenBanURL("+i+",0);'";
		ih+=" onClick    ='top.selectMen("+i+");'>";
		ih+="</TD></TR>";
		ih+="</TABLE></TD></TR>";

	}
	ih+="</TABLE>";
	top.f_mid2.document.all.list.innerHTML = ih;

};

/***** メニューバナー画像のＵＲＬを返す関数 *****/
function MenBanURL(men,mo) {

	var statue=0;
	if ( mo==1 ) statue+=1;
	if ( menSel==men ) statue+=2;
	if ( men==2 || men==3 ) statue=0;	// インテリア、オプションは常に0
	var url = "images/menu/" + daMen[men] + "_" + statue + ".gif";
	return url;

};


/***** メニュー選択時の処理 *****/
function selectMen(men) {

	if ( menSel==men ) return;
	if ( men==2 || men==3 ) return;	// インテリア、オプションは無視

	// すぐに選択メニューを表示更新させたいので、CO読込等の処理は一瞬あとで実行
	setTimeout("selectMen2("+menSel+");",10);

	menSel = men;
//	colSel = 1;
//	bacSel = 0;

	writeModList();
	writeMen();
	writeList();

}

/***** メニュー選択時の処理２（重たい処理） *****/
function selectMen2(premen) {

	switch(menSel) {
		
		case 0:	// モデル
		firstOp = false;
		top.f_mid1.hideCO();
		mod=modSel;
		modSel=-1;
		selectMod(mod);
//		setTimeout("selectMod(mod);",100);
		break;

		case 1:	// カラー
		hideCOControl();
		firstOp = true;

		if ( Cult3DLoaded && Cult3DFilename == co_default ) {
			top.f_mid1.showCO();
		} else {
			// 他CO読み込み中の場合は中止
			if ( Cult3DFilename != co_default ) unloadCO();

			changeBG("loading.jpg","dbdbdb");
			setTimeout("changeCO(\""+co_default+"\");",100);
		}
		break;

		case 2:	// インテリア
		break;

		case 3:	// オプション
		break;

		case 4:	// シーン
		hideCOControl();
		firstOp = true;

		if ( Cult3DLoaded && Cult3DFilename == daBac[bacSel][1] ) {
			top.f_mid1.showCO();
		} else {
			// 他CO読み込み中の場合は中止
			if ( Cult3DFilename != daBac[bacSel][1] ) unloadCO();

			changeBG("loading.jpg","dbdbdb");
			setTimeout("changeCO(\""+daBac[bacSel][1]+"\");",100);
		}
		break;

		case 5:	// 御見積
		firstOp = false;
		top.f_mid1.hideCO();
		changeBG("est_op.jpg","ADBADA");
		break;

	}
}


/* ============================================================================
　画質設定（ＡＡ）
============================================================================ */

/***** メニューＡＡを出力 *****/
function writeAa() {

	var ih ="<TABLE border=0 cellpadding=0 cellspacing=0 style='margin-top:28px; margin-left:16px;'>";
	ih+="<TR><TD><TABLE border=0 cellpadding=0 cellspacing=0 ><TR><TD align='left'>";
	ih+="<IMG src='images/menu/aa.gif'";
	ih+="</TD></TR>";

	for ( i=0; i<3; i++ ) {

		ih+="<TR><TD><TABLE border=0 cellpadding=0 cellspacing=0 ><TR><TD align='center'>";
		ih+="<IMG id='aa"+i+"' src='"+MenAaURL(i,0)+"' style='cursor:pointer;'";
 		ih+=" onClick    ='top.selectAa("+i+");'>";
		ih+="</TD></TR>";
		ih+="</TABLE></TD></TR>";

	}
	ih+="</TABLE>";
	top.f_mid2.document.all.list_aa.innerHTML = ih;

};


/***** メニューＡＡ切り替え画像のＵＲＬを返す関数 *****/
function MenAaURL(aa,mo) {

	var statue=0;
//	if ( mo==1 ) statue+=1;
	if ( aaSel==aa ) statue+=2;
	var url = "images/menu/aa_" + aa + "_" + statue + ".gif";
	return url;

};

/***** メニューＡＡ選択時の処理 *****/
function selectAa(aa) {

	if ( aaSel==aa ) return;
	changeAa(aa);
	writeAa();

}

/* ============================================================================
　３Ｄ表示拡大
============================================================================ */

/***** 「３Ｄ表示拡大」／「元に戻す」ボタン画像のＵＲＬを返す関数 *****/
function MenF3DURL(mo) {

	var statue=0;
	if ( mo==1 ) statue+=1;
	var name=(F3DFlg==true?"3a_nor":"3a_lar");
	var url = "images/menu/" + name + "_" + statue + ".gif";
	return url;

};


/* ============================================================================
　印刷
============================================================================ */

/***** 「印刷」ボタン画像のＵＲＬを返す関数 *****/
function MenP3DURL(mo) {

	var statue=0;
	if ( mo==1 ) statue+=1;
	var name="print";
	var url = "images/menu/" + name + "_" + statue + ".gif";
	return url;

};



/* ============================================================================
　モデル
============================================================================ */

/***** モデル選択を出力 *****/
function writeModList() {

	var ih="";
	
	if ( menSel==0 ) {
		// メニューが「モデル」の時
		ih ="<TABLE align='right' border=0 cellpadding=0 cellspacing=0><TR>";
		ih+="<TD><IMG src='images/button/mb.gif'></TD>";
		for ( i=0; i<daMod.length; i++ ) {
			ih+="<TD><TABLE border=0 cellpadding=0 cellspacing=0 ><TR><TD align='center'>";
			ih+="<IMG id='btn"+i+"' src='" + ModBtnURL(i,0)+"' style='cursor:pointer;'";
  			ih+=" onMouseOver='btn"+i+".src=top.ModBtnURL("+i+",1);'";
  			ih+=" onMouseOut ='btn"+i+".src=top.ModBtnURL("+i+",0);'";
			ih+=" onClick    ='top.selectMod("+i+");'>";
			ih+="</TD></TR></TABLE></TD>";
		}
		ih+="</TR></TABLE>";
	} else {
		// メニューが「モデル」以外の時
		ih ="<TABLE align='right' border=0 cellpadding=0 cellspacing=0><TR>";
		for ( i=0; i<daMod.length; i++ ) {
			ih+="<TD><TABLE border=0 cellpadding=0 cellspacing=0 ><TR><TD align='center'>";
			ih+="<IMG src='images/button/" + daMod[i][1] +"_"+(i==modSel?"1":"0")+".gif'";
			ih+="</TD></TR></TABLE></TD>";
		}
		ih+="</TR></TABLE>";
	} 
	top.f_up1.document.all.list.innerHTML = ih;

}

/***** モデル選択ボタン画像のＵＲＬを返す関数 *****/
function ModBtnURL(mod,mo) {

	var statue=0;
	if ( mo==1 && modSel!=mod ) statue+=1;
	if ( modSel==mod ) statue+=2;
	var url = "images/button/" + daMod[mod][1] + "_" + statue + ".gif";
	return url;

};

/***** モデル選択時の処理 *****/
function selectMod(mod) {

	modSel = mod;
	writeModList();

	// ３Ｄエリア画像の更新
	changeBG(daMod[modSel][2]+".jpg","ffffff");

	// 下部画像（説明文）の更新
	var ih ="<TABLE border=0 cellpadding=0 cellspacing=0 style='margin-top:7px;'>";
	ih += "<TR><TD><IMG src='images/button/bm_model.gif'></TD></TR>";
	ih += "<TR><TD><IMG src='images/button/"+daMod[modSel][3]+".gif'></TD></TR></TABLE>";
	top.f_down1.document.all.list.innerHTML = ih;

}



/* ============================================================================
　オプション
============================================================================ */

/***** オプション選択時の処理 *****/
function selectOpt(d, id)
{};



/* ============================================================================
　カラー
============================================================================ */

/***** ボディーカラーリストを出力 *****/
function writeColList() {

	var ih ="<TABLE border=0 cellpadding=0 cellspacing=0 style='margin-top:7px;'><TR>";
	ih+="<TD colspan="+daCol.length+"><Img src='images/button/bm_color.gif'></TD></TR><TR>";
	for ( i=0; i<daCol.length; i++ ) {

		// モデル不適合 であれば無視
		if ( ( daCol[i][3][modSel] == 0 ) ) continue;

		ih+="<TD><TABLE border=0 cellpadding=0 cellspacing=0 ><TR><TD align='center'>";
		ih+="<IMG id='btn"+i+"' src='" + ColBtnURL(i,0)+"' style='cursor:pointer;'";
  		ih+=" onMouseOver='btn"+i+".src=top.ColBtnURL("+i+",1);'";
  		ih+=" onMouseOut ='btn"+i+".src=top.ColBtnURL("+i+",0);'";
		ih+=" onClick    ='top.selectCol("+i+");'>";
		ih+="</TD></TR>";
		ih+="<TR><TD><IMG src='images/button/"+daCol[i][2]+"_t.gif'></TD></TR>";
		ih+="</TABLE></TD>";

	}
	ih+="</TR></TABLE>";
	top.f_down1.document.all.list.innerHTML = ih;

};

/***** カラーボタン画像のＵＲＬを返す関数 *****/
function ColBtnURL(col,mo) {

	var statue=0;
	if ( mo==1 ) statue+=1;
	if ( colSel==col ) statue+=2;
	var url = "images/button/" + daCol[col][2] + "_" + statue + ".gif";
	return url;

};


/***** カラー選択時の処理 *****/
function selectCol(col) {

//	if ( !Cult3DLoaded ) return;

	firstOp = true;
	top.f_mid1.showCO();

	var itemname,srcname;
	for ( i=0; i<daCol.length; i++ ) {

		// モデル違い であれば無視
		if ( ( daCol[i][3][modSel] == 0 ) ) continue;

	}
	colSel = col;
	changeColor(col);

	// 選択リストを更新
	writeColList();

	dutyFlg = true;
}



/* ============================================================================
 シーン
============================================================================ */

/***** シーンパノラマリストを出力 *****/
function writeBacList() {

	var ih ="<TABLE border=0 cellpadding=0 cellspacing=0 style='margin-top:7px;'><TR>";
	ih+="<TD colspan="+daCol.length+"><Img src='images/button/bm_scene.gif'></TD></TR><TR>";
	for ( i=0; i<daBac.length; i++ ) {

		ih+="<TD><TABLE border=0 cellpadding=0 cellspacing=0 ><TR><TD align='center'>";
		ih+="<IMG id='btn"+i+"' src='" + BacBtnURL(i,0)+"' style='cursor:pointer;'";
  		ih+=" onMouseOver='btn"+i+".src=top.BacBtnURL("+i+",1);'";
  		ih+=" onMouseOut ='btn"+i+".src=top.BacBtnURL("+i+",0);'";
		ih+=" onClick    ='top.selectBac("+i+");'>";
		ih+="</TD></TR>";
		ih+="<TR><TD><IMG src='images/button/"+daBac[i][2]+"_t.gif'></TD></TR>";
		ih+="</TABLE></TD>";

	}
	ih+="</TR></TABLE>";
	top.f_down1.document.all.list.innerHTML = ih;

};

/***** シーンパノラマボタン画像のＵＲＬを返す関数 *****/
function BacBtnURL(bac,mo) {

	var statue=0;
	if ( mo==1 ) statue+=1;
	if ( bacSel==bac ) statue+=2;
	var url = "images/button/" + daBac[bac][2] + "_" + statue + ".gif";
	return url;

};

/***** シーンパノラマ選択時の処理 *****/
function selectBac(bac) {

//	if ( !Cult3DLoaded ) return;
	if ( bacSel==bac ) return;

	firstOp = true;
	unloadCO();

	bacSel = bac;

	// 選択リストを更新
	writeBacList();

	dutyFlg = true;

	// すぐに選択メニューを表示更新させたいので、CO読込等の処理は一瞬あとで実行
	changeBG("loading.jpg","dbdbdb");
	setTimeout("changeCO(\""+daBac[bac][1]+"\");",100);

}

