//--------------------------------------------------------------------------------
//
//  3D AVS Player 用スクリプト
//
//  フルスクリーンウインドウでプレイヤーを表示し、各種コントロールパネルを制御
//  表示用のHTMLをセットで利用する。3Dコンテンツをhttp参照で指定するだけで、
//  あらゆるコンテンツに対応可能。利用方法は実際のHTML参照。
//
//  プログラム製作：2006/05/15 Halbiz.com
//
//--------------------------------------------------------------------------------
var flag_visible_controllerDetail = false;	//現在の詳細表示ステータス
//--------------------------------------------------------------------------------
//	フル画面で新しいウインドウを表示
//--------------------------------------------------------------------------------
function open_window(theURL,winName){
	var height = screen.height;
	var width = screen.width;
	var features = "width="+width+",height="+height;
	window.open(theURL,winName,features);
}
//--------------------------------------------------------------------------------
//	閉じるボタン用
//--------------------------------------------------------------------------------
function close_window(){
	player.DoReset();
	vdcRun('Stop');
	setTimeout("window.close()",1000);//すぐに閉じようとすると問題あり。時間差で・・・
	//window.close();
}
//--------------------------------------------------------------------------------
//	onLoad時に呼び出される初期化メソッド（コンテンツ専用）
//--------------------------------------------------------------------------------
function init(){
	setTimeout("pos_reset()",1000);
	setTimeout("load_player_setting()",2000);
	//pos_reset();
	//load_player_setting();
}
//--------------------------------------------------------------------------------
//	世界標準時の日付時刻を表示
//--------------------------------------------------------------------------------
function show_UT(){
	var dd = new Date();
	var ret = "";
	// 2006/05/16 12:12:12 UT
	ret += dd.getUTCFullYear() + "/";
	ret += (dd.getUTCMonth()+1)+"/";
	ret += dd.getUTCDate()+" ";
	ret += dd.getUTCHours() + ":";
	ret += dd.getUTCMinutes() + ":";
	ret += dd.getUTCSeconds()+" UT";
	document.write(ret);
}
//--------------------------------------------------------------------------------
//	詳細パネルをトグル表示（3D表示コンテンツ専用）
//--------------------------------------------------------------------------------
function toggle_controller(tg){
	flag_visible_controllerDetail = !flag_visible_controllerDetail;
	if(tg.GFA)	pos_reset();
	if(tg){
		if(flag_visible_controllerDetail){
			//tg.value="詳細を隠す";
			if ((x=MM_findObj("Image12"))!=null){
				x.oSrc = 'images/main/navi/btn_clo.gif';
				x.src = 'images/main/navi/btn_clo_f2.gif';
			}
			//btnToggle.onMouseOver = MM_swapImage('Image12','','images/main/navi/btn_clo_f2.gif',1);
		}else{
			//tg.value="詳細を表示";
			if ((x=MM_findObj("Image12"))!=null){
				x.oSrc = 'images/main/navi/btn_de.gif';
				x.src = 'images/main/navi/btn_de_f2.gif';
			}
			//btnToggle.onMouseOver = MM_swapImage('Image12','','images/main/navi/btn_de_f2.gif',1);
		}
	}
}
//--------------------------------------------------------------------------------
//	詳細パネルをトグル表示した時のアイコン表示（3D表示コンテンツ専用）
//--------------------------------------------------------------------------------
function toggle_controller_onMouseOver(){
	var img_path;
	if(flag_visible_controllerDetail)
		img_path = 'images/main/navi/btn_clo_f2.gif';
	else
		img_path = 'images/main/navi/btn_de_f2.gif';
	MM_swapImage('Image12','',img_path,1);
}
//--------------------------------------------------------------------------------
//	ブラウザウインドウから計算したレイヤーの最適な値を設定し
//	各種コントロールの座標を最適化（3D表示コンテンツ専用）
//--------------------------------------------------------------------------------
function pos_reset(){
	dummy.style.left = 0;
	dummy.style.top = 0;
	dummy.style.width = "100%";
	dummy.style.height = "100%";
	//こうする事で、document.body.clientHeightが100%エリアを返すようにする
	//ただし、<!DOCTYPE>にloose指定を行うとはげはげ
	Controller.style.left = 0;
	Controller.style.top = document.body.clientHeight - Controller.style.height.replace("px","");
	if(flag_visible_controllerDetail){	//詳細パネルを表示する
		Controller_detail.style.visibility="visible";
		Controller_detail.style.left = 0;
		Controller_detail.style.top = Controller.style.top.replace("px","") - Controller_detail.style.height.replace("px","");
		GFA.style.top = header.style.height;
		GFA.style.left = 0;
		GFA.style.width = "100%";
		GFA.style.height = Controller_detail.style.top.replace("px","") - header.style.height.replace("px","");		
	} else {		//詳細パネルを隠す
		Controller_detail.style.visibility="hidden";
		GFA.style.top = header.style.height;
		GFA.style.left = 0;
		GFA.style.width = "100%";
		GFA.style.height = Controller.style.top.replace("px","") - header.style.height.replace("px","");
	}
}
//--------------------------------------------------------------------------------
//	各種コントロール（3D表示コンテンツ専用）
//--------------------------------------------------------------------------------
function vdcRun(mode) {				player.PlayDirection = mode;}
function vdcReset() {					player.StepReset();}
function vdcResetBack() {				player.StepResetBack();}
function vdcStep(ivalue) {			player.StepMove(ivalue);}
function setRunMode(imode) {			player.RunMode = imode;}
function setRunSpeed(ivalue) {		player.Delay = ivalue;}
function setNormalize(ivalue) {		player.AutoNormalize = ivalue;}
function setRenderer(type) {			player.Renderer = type;}
function setCameraPerspec(onoff) {	player.CameraPerspec = onoff;}
function setTransMode(type) {		player.TransMode = type;}
function setLightingMode(type) {	player.LightingMode = type;}
function setStereoType(type){		player.SetStereoType(type);}//player.StereoHorizontal = 1;
function setStereoOffset(num){		player.SetStereoOffset(num);}
function setStereoBalance(num){		player.SetStereoBalance(num);}
//--------------------------------------------------------------------------------
//	現在のプレーヤーの状態から、詳細パネルの内容を設定（3D表示コンテンツ専用）
//--------------------------------------------------------------------------------
function load_player_setting(){
	//再生パターン
	run_mode[player.RunMode].checked = true;
	//再生スピード
	if(player.Delay<20){
		run_speed.options[0].selected = true;
	} else if(player.Delay<30) {
		run_speed.options[1].selected = true;
	} else if(player.Delay<40) {
		run_speed.options[2].selected = true;
	} else if(player.Delay<50) {
		run_speed.options[3].selected = true;
	} else if(player.Delay<60) {
		run_speed.options[4].selected = true;
	} else if(player.Delay<70) {
		run_speed.options[5].selected = true;
	} else if(player.Delay<80) {
		run_speed.options[6].selected = true;
	} else if(player.Delay<90) {
		run_speed.options[7].selected = true;
	} else if(player.Delay<100) {
		run_speed.options[8].selected = true;
	} else {
		run_speed.options[9].selected = true;
	}
	//ノーマライズ
	if(player.AutoNormalize){
		auto_normalize[0].checked = true;
	} else {
		auto_normalize[1].checked = true;
	}
	//レンダラ
	//alert(player.Renderer);
	if(player.Renderer == 'Software'){
		renderer[1].checked = true;
	} else {
		renderer[0].checked = true;
	}
	//投影方法
	if(player.CameraPerspec){
		perspec[0].checked = true;
	} else {
		perspec[1].checked = true;
	}
	//幾何変換
	if( player.TransMode == 'Object' ){
		trans[0].checked = true;
	} else if(player.TransMode == 'Camera'){
		trans[1].checked = true;
	} else {
		trans[2].checked = true;
	}
	//ライティング
	if(player.LightingMode == 'BiDirectional'){
		lighting[1].checked = true;
	} else {
		lighting[0].checked = true;
	}
	//オフセット
	offset.value = Math.round(player.GetStereoOffset()*10)/10;
	//バランス
	balance.value = Math.round(player.GetStereoBalance()*10)/10;
}
//--------------------------------------------------------------------------------
//	立体視モードと通常モードの切り替え
//--------------------------------------------------------------------------------
function change3DView(target,cb,db){
	var timeout_sec = 0.1;
	if(player.GetStereoType() == 'None'){
		change3Dpanel(target,true);
		setRenderer('OpenGL');
		setStereoType('Vertical');
	} else {
		change3Dpanel(target,false);
		setStereoType('None');
	}
	//target.setTimeout("timeout_3DModeChange()",timeout_sec*1000);
	//target.timeout_3DModeChange();//即時実行
	load_player_setting();
}
//--------------------------------------------------------------------------------
//		詳細設定パネルの内容の表示情報を変更
//--------------------------------------------------------------------------------
function change3Dpanel(wo,mode){
	if(mode){	//立体視モード
		wo.disp_rd1.style.display = 'none';		//レンダラの指定はOpenGL固定なので消す
		wo.disp_rd2.style.display = 'none';
		wo.disp_os1.style.display = 'block';	//立体視オフセットの設定を表示
		wo.disp_os2.style.display = 'block';
		wo.disp_bl1.style.display = 'block';	//立体視バランスの設定を表示
		wo.disp_bl2.style.display = 'block';
	} else {		//ノーマル3D表示
		wo.disp_rd1.style.display = 'block';	//レンダラの指定を表示
		wo.disp_rd2.style.display = 'block';
		wo.disp_os1.style.display = 'none';		//立体視オフセットの設定を隠す
		wo.disp_os2.style.display = 'none';
		wo.disp_bl1.style.display = 'none';		//立体視バランスの設定を隠す
		wo.disp_bl2.style.display = 'none';
	}
}
//--------------------------------------------------------------------------------
//	ロールオーバーイメージのリストア
//	Macromedia Dreamweaver
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

//--------------------------------------------------------------------------------
//	画像のプリロード
//	Macromedia Dreamweaver
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

//--------------------------------------------------------------------------------
//	オブジェクトの検索
//	Macromedia Dreamweaver
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

//--------------------------------------------------------------------------------
//	ロールオーバーイメージのスワップ
//	Macromedia Dreamweaver
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments;
  document.MM_sr=new Array; 
  for(i=0;i<(a.length-2);i+=3){
   	if ((x=MM_findObj(a[i]))!=null){
			document.MM_sr[j++]=x;
			if(!x.oSrc) 
				x.oSrc=x.src;
			x.src=a[i+2];
		}
  }
}

