/* '10/8/14 修正
		１．midXが初期に決定されて固定になっていたため、途中でブラウザのウィンドウ幅を狭めると吹き出しが更新されても
				位置がずれたままになってしまっていたのを解決。
				midXを関数にして、都度呼び出すようにした。
		２．大きな吹き出しの際に、吹き出しの左端がページ左端からはみ出すことがあったのを解決。
				新たにxoffset_freeを定義し、yoffset_freeと共に利用して右に50ピクセル、上に50ピクセルオフセットさせた。
*/
var FlaJs =
{
	xoffset:-50,							//ポップアップのX座標オフセット（MidXに加える）:出現時用
	
	yoffset:0,								//ポップアップのY座標オフセット：出現時用
	
	xoffset_free:50,						//ポップアップのX座標オフセット：フリーメッセージのポップアップでの追加加算用 '10/8/14追加
	
	yoffset_free:-50,						//ポップアップのY座標オフセット：フリーメッセージのポップアップでの追加加算用 '10/8/14 値変更
	
	page:undefined,						//"main" または"child"となり、"child"の場合はキャラ出現時の吹き出しを表示しない。
	
	visibility:"false",		//常時出現
	
	face:"normal",				//顔の選択
	
	swf:undefined,				//swfオブジェクト
	
	photo:undefined,			//photoオブジェクト
	
	chara:undefined,			//キャラクタオブジェクト
	
	page:undefined,
	
	//midX:(document.documentElement.clientWidth || document.body.clientWidth)/2,		//描画領域の横幅の1/2
	
	inBaloonText:"<br><button id='talk2' type='button' onclick='popup.off();FlaJs.execFunction(\"talk\");'>新しいワンポイントヒントを見る</button><br><button id='talk3' type='button' onclick='popup.off();FlaJs.execFunction(\"talk_again\");'>前のワンポイントをもう一度見る</button><br><button id='mamotech' type='button' onclick=\"window.open('http://mamotech.jp/', null);return false;\">私が誕生した所を訪ねる</button><br><button id='cancel' type='button' onclick='popup.offTimerTimeout();FlaJs.WalkB();'>キャンセル</button>",						//バルーンのテキスト
	
	inBaloonText2:"<br><img src='./images/nextButton.png' width='60' height='20' onclick='popup.off();FlaJs.execFunction(\"talk\");' alt='次へのボタン'><img id='closeBig' src='./images/endButton.png' width='60' height='20' onclick='popup.offTimerTimeout()' alt='閉じるボタン'>",
	
	addButton:"<br><button id='talk4' type='button' onclick='popup.off();'>OK</button>",		//ポップアップテキストの中に表示するボタン
	
	message:
	{
		top:"<br>リ・オルグのサイトにようこそ！<br><br>&nbsp;&nbsp;<strong>ワンポイントアドバイスは、私をクリックしてくださいね。</strong>",
		impup:  "<br><strong>印象度アップのページはこちらです。トレーニング内容の例もありますので、ぜひご覧くださいね。</strong>",
		comup:  "<br><strong>会話力アップのページはこちらです。トレーニング内容の例もありますので、ぜひご覧くださいね。</strong>",
		motup:  "<br><strong>やる気思考力アップのページはこちらです。トレーニング内容の例もありますので、ぜひご覧くださいね。</strong>",
		present:"<br><strong>講演・セミナーのご用命もお気軽にどうぞ。</strong>",
		profile:"<br><strong>私のプロフィールはこちらです。セミナーや講演用のチラシや資料には、こちらのページをご利用下さい。</strong>",
		price:  "<br><strong>料金はこちらをご覧ください。<br><br>お問い合わせはお気軽にどうぞ。</strong>",
		voice:  "<br><strong>トレーニングや講演、セミナーの後で寄せられたお客様の声を紹介させていただきます。</strong>"
	},
	
	midX:function()
	{
		return (document.documentElement.clientWidth || document.body.clientWidth)/2;
	},
	
	config:function()		//設定
	{
		popup.config({baloon_folder:"./images/", onTimer:0,  offTimer:10000});
	},
	
	//swfオブジェクトを得る（この関数はFlash側からコールされる）
	getMovieObj:function()	
	{
		if (navigator.appName.indexOf("Microsoft") != -1)
		{
			try
			{
				FlaJs.swf = window["externalReOrg"];
				//throw("get window object");
			}
			catch(e)
			{
				alert(e);
			}
		}
		else
		{
			try
			{
				FlaJs.swf = document["externalReOrg"];
				//throw("get document object");
			}
			catch(e)
			{
				alert(e);
			}
		}
		//FlaJs.ViewParam();
		//document.getElementById("externalReOrg").style.left = FlaJs.midX() + 220 + "px";
		document.getElementById("externalReOrg").style.zIndex = 0;
	},
	
	/*
	getOtherObj: function()
	{
		try {
			FlaJs.photo = document.getElementById("photo");
		} catch(e) {
			alert("Photo Object Get Error:"+e);
		}
		
		try {
			FlaJs.chara = document.getElementById("externalReOrg");
		} catch(e) {
			alert("Character Object Get Error:"+e);
		}
		
		//alert("FlaJs.swf="+FlaJs.swf);
		//alert("FlaJs.photo="+FlaJs.photo);
		//alert("FlaJs.chara="+FlaJs.chara);
		
		//FlaJs.swf.noticeMovieGet();
	},
	*/
	
	//Flashに動作の命令を発行する
	execFunction:function(str)
	{
		//document.getElementById("photo").style.visibility = "hidden";
		//alert("FlashにexcecCommand発行直前です");
		//alert("これは行数追加のダミーです");
		FlaJs.swf.execCommand(str);
		//FlaJs.chara.execCommand(str);
	},
	
	//カメラを右旋回
	YAWplus:function()
	{
		var yaw = Number(FlaJs.swf.GetStatus("yaw"));
		FlaJs.swf.SetStatus("yaw", yaw + 15);
		//FlaJs.ViewParam();
	},

	//カメラを左旋回
	YAWminus:function()
	{
		var yaw = Number(FlaJs.swf.GetStatus("yaw"));
		FlaJs.swf.SetStatus("yaw", yaw - 15);
		//FlaJs.ViewParam();
	},

	//カメラを上向きに
	PITCHplus:function()
	{
		var pitch = Number(FlaJs.swf.GetStatus("pitch"));
		FlaJs.swf.SetStatus("pitch", pitch + 15);
		//FlaJs.ViewParam();
	},
	
	//カメラを下向きに
	PITCHminus:function()
	{
		var pitch = Number(FlaJs.swf.GetStatus("pitch"));
		FlaJs.swf.SetStatus("pitch", pitch - 15);
		//FlaJs.ViewParam();
	},
	
	//キャラを上げる
	MESHplus:function()
	{
		var meshY = Number(FlaJs.swf.GetStatus("y"));
		FlaJs.swf.SetStatus("y", meshY + 10);
		//FlaJs.ViewParam();
	},
	
	//キャラを下げる
	MESHminus:function()
	{
		var meshY = Number(FlaJs.swf.GetStatus("y"));
		FlaJs.swf.SetStatus("y", meshY - 10);
		//FlaJs.ViewParam();
	},
	
	//キャラを登場させる
	WalkF:function()
	{
		//alert("FlaJs OK");
		FlaJs.swf.SetStatus("walkF", 0);
		FlaJs.ViewParam();
	},

	//キャラを待機させる
	WalkB:function()
	{
		//FlaJs.pushCharacter();
		FlaJs.swf.SetStatus("walkB", 0);
		FlaJs.ViewParam();
	},

//キャラクターを最前面に引き出す
	pullCharacter:function()
	{
		document.getElementById("externalReOrg").style.zIndex = 3;
	},

//キャラクターを最背面に押し出す
	pushCharacter:function()
	{
		document.getElementById("externalReOrg").style.zIndex = 0;
	},

//ズーム
	ZOOMplus:function()
	{
		var zoom = Number(FlaJs.swf.GetStatus("zoom"));
		FlaJs.swf.SetStatus("zoom", zoom + 0.4);
		//FlaJs.ViewParam();
	},

	//ワイド
	ZOOMminus:function()
	{
		var zoom = Number(FlaJs.swf.GetStatus("zoom"));
		FlaJs.swf.SetStatus("zoom", zoom - 0.2);
		//FlaJs.ViewParam();
	},
	
	//ステータス表示ON/OFF
	Status:function()
	{
		var status = FlaJs.swf.GetStatus("status");
		if (status == "true")
		{
			FlaJs.swf.SetStatus("status", 0);
			//document.getElementById("Status").innerHTML="状態 ON";
		}
		else
		{
			FlaJs.swf.SetStatus("status", 1);
			//document.getElementById("Status").innerHTML="状態 OFF";
		}
		FlaJs.VisibilityControl();
	},
	
	//常時出現ON/OFF
	VisibilityControl:function()
	{
		FlaJs.visibility = FlaJs.swf.GetStatus("visibility");
		if (FlaJs.visibility == "true")
		{
			FlaJs.swf.SetStatus("visible", 0);
			FlaJs.visibility = "false";
			//document.getElementById("visibility").innerHTML="３Ｄ優先";
			//document.getElementById("photo").style.visibility = "visible";
		}
		else
		{
			FlaJs.swf.SetStatus("visible", 1);
			FlaJs.visibility = "true";
			//document.getElementById("visibility").innerHTML="写真優先";
			//document.getElementById("photo").style.visibility = "hidden";
		}
	},
	
	//fpsの切替
	FPS:function()
	{
		var fps = Number(FlaJs.swf.GetStatus("fps"));
		if (fps > 1)
		{
			FlaJs.swf.SetStatus("fps",1);
			FlaJs.setFpsMin();
		}
		else
		{
			FlaJs.swf.SetStatus("fps",10);
			FlaJs.setFpsMax();
		}
	},
	
	//顔の切替
	FaceChange:function()
	{
		if (FlaJs.face == "normal")
		{
			FlaJs.swf.SetStatus("face", 1);
			FlaJs.face = "smile";
			//document.getElementById("Face").innerHTML = "困り顔";
			
		}
		else if (FlaJs.face == "smile")
		{
			FlaJs.swf.SetStatus("face", 2);
			FlaJs.face = "sad";
			//document.getElementById("Face").innerHTML = "普通顔";
		}
		else
		{
			FlaJs.swf.SetStatus("face", 0);
			FlaJs.face = "normal";
			//document.ElementById("Face").innerHTML = "笑顔  ";
		}
	},
	
	//ポップアップメッセージの準備
	PrepareMessage: function()
	{
		FlaJs.swf.prepareMessage("bow1", "いらっしゃいませ。リ・オルグのサイトにようこそ！");
	},
	
	//Flash側からの起動でfps表示をHighに切替
	setFpsMin:function()
	{
		//document.getElementById("fps").innerHTML="fps最大";
	},
	
	//Flash側からの起動でfps表示をLowに切替
	 setFpsMax:function()
	{
		//document.getElementById("fps").innerHTML="fps最小";
	},
	
	//Flash側からの起動でマウスでクリックされたことを知る
	ClickAlert:function(str, position)
	{
		//alert("クリックされました:"+str);
		//alert("position[0]:"+position[0]+"  position[1]："+position[1]);
		popup.on({text:"ご用件をどうぞ" + FlaJs.inBaloonText, x:FlaJs.midX()+position[0]+FlaJs.xoffset, y:-position[1]+FlaJs.yoffset, pos:3, alpha:100});
		//execFunction("talk");
	},
	
	//Flash側からの起動でマウスカーソルが重なったことを知る
	OverAlert:function(str)
	{
		alert("マウスカーソルが重なりました："+str);
	},
	
	//Flash側からの起動で写真画像をフェードインする
	fadeIn:function()
	{
		//alert("FlashからfadeIn命令を受信しました");
		fdInOut.fdIn();
	},
	
	//Flash側からの起動で写真画像をフェードアウトする
	fadeOut:function()
	{
		fdInOut.fdOut();
	},
	
	/*
	//Flash側からの起動で写真画像と3Dキャンバスのvisibilityを切り替える
	PhotoVisibility: function(value)
	{
		//alert("PhotoVisibility="+value+"を受信しました");
		if (value == 1)
		{
			document.getElementById("photo").style.visibility = "visible";
			document.getElementById("externalReOrg").style.visibility = "hidden";
		}
		else
		{
			document.getElementById("photo").style.visibility = "hidden";
			document.getElementById("externalReOrg").style.visibility = "visible";
		}
	},
	
	//Flash側からの起動で3Dキャンバスのvisibilityを切り替える
	CanvasVisibility: function(value)
	{
		if (value == 1)
		{
			document.getElementById("externalReOrg").style.visibility = "visible";
		}
		else
		{
			document.getElementById("externalReOrg").style.visibility = "hidden";
		}
	},
	*/
	
	//Flash側からの起動で固定メッセージの吹き出しを表示する
	FixedPopup: function(index, position)		//positionで吹き出しの位置を指定する
	{
		//alert(position[1]);
		if (index == "bow" && FlaJs.page == "top")
		{
			popup.on({text:FlaJs.message["top"], x:FlaJs.midX()+position[0]+FlaJs.xoffset, y:-position[1]+FlaJs.yoffset, pos:3, alpha:80});
		}
		else if(index=="bow" && FlaJs.page == "impup")
		{
			popup.on({text:FlaJs.message["impup"], x:FlaJs.midX()+position[0]+FlaJs.xoffset, y:-position[1]+FlaJs.yoffset, pos:3, alpha:80});
		}
		else if (index=="bow" && FlaJs.page == "comup")
		{
			popup.on({text:FlaJs.message["comup"], x:FlaJs.midX()+position[0]+FlaJs.xoffset, y:-position[1]+FlaJs.yoffset, pos:3, alpha:80});
		}
		else if (index=="bow" && FlaJs.page == "motup")
		{
			popup.on({text:FlaJs.message["motup"], x:FlaJs.midX()+position[0]+FlaJs.xoffset, y:-position[1]+FlaJs.yoffset, pos:3, alpha:80});
		}
		else if (index=="bow" && FlaJs.page == "present")
		{
			popup.on({text:FlaJs.message["present"], x:FlaJs.midX()+position[0]+FlaJs.xoffset, y:-position[1]+FlaJs.yoffset, pos:3, alpha:80});
		}
		else if (index=="bow" && FlaJs.page == "profile")
		{
			popup.on({text:FlaJs.message["profile"], x:FlaJs.midX()+position[0]+FlaJs.xoffset, y:-position[1]+FlaJs.yoffset, pos:3, alpha:80});
		}
		else if (index=="bow" && FlaJs.page == "price")
		{
			popup.on({text:FlaJs.message["price"], x:FlaJs.midX()+position[0]+FlaJs.xoffset, y:-position[1]+FlaJs.yoffset, pos:3, alpha:80});
		}
		else if (index=="bow" && FlaJs.page == "voice")
		{
			popup.on({text:FlaJs.message["voice"], x:FlaJs.midX()+position[0]+FlaJs.xoffset, y:-position[1]+FlaJs.yoffset, pos:3, alpha:80});
		}
	},
	
	//Flash側からの起動で自由メッセージの吹き出しを表示する
	FreePopup: function(str, position)
	{
		//alert(position[1]);
		popup.on({text:str+FlaJs.inBaloonText2, x:FlaJs.midX()+position[0]+FlaJs.xoffset+FlaJs.xoffset_free, y:-position[1]+FlaJs.yoffset+FlaJs.yoffset_free, pos:3, alpha:100});			// '10/8/14 xoffset_freeを追加
	},
	
	//Flash側からの起動でalertを表示する
	ViewAlert: function(str)
	{
		alert(str);
	},
	
	//Flashの設定値を表示する
	ViewParam: function()
	{
		/*
		var tableTag =  "<table id='disp' border='1px' frame='void' rules='rows' cellpadding='6px' vspace='3px'>";
			tableTag += "	<tr align='left'>";
			tableTag += "		<td>yaw=" + FlaJs.swf.GetStatus('yaw') + "</td>";
			tableTag += "		<td>pitch=" + FlaJs.swf.GetStatus('pitch') + "</td>";
			tableTag += "		<td>y=" + FlaJs.swf.GetStatus('y') + "</td>";
			tableTag += "		<td>zoom=" + FlaJs.swf.GetStatus('zoom') + "</td>";
			tableTag += "	</tr>";
			tableTag += "</table>";
		*/
		//document.getElementById("lower").innerHTML = tableTag;
	},
	
	//デバッグ用の図を表示させる
	signalVisible: function()
	{
		document.getElementById("signal").style.visibility = "visible";
		setTimeout("FlaJs.signalHidden()", 500);
	},
	
	signalHidden: function()
	{
		document.getElementById("signal").style.visibility = "hidden";
	},
	
	//大きなバルーンに閉じるボタンを付加する
	addCloseButtonToBig:function()
	{
		document.getElementById("baloonTop").innerHTML = "<img id='closeBig' src='./images/closeButton.gif' width='60' height='20' onclick='popup.off()' onkeypress='popup.off()' alt='閉じるボタン'>";
	},
	
	//小さなバルーンに閉じるボタンを付加する
	addCloseButtonToSmall:function()
	{
		document.getElementById("closeSmall").innerHTML = "<img src='./images/closeButton.gif' width='60px' height='20px' onclick='popup.off()'>";
	},
	
	//ポップアップが強制的にoffされたことをswfに知らせる
	noticePopupOff:function()
	{
		FlaJs.swf.SetStatus("popupOff", 0);
	}
}

