/*
グローバルオブジェクト
*/
//ブラウザ判別
var ie = document.all;            // ブラウザ(IE)のチェック用
var n6 = document.getElementById; // ブラウザ(N6)のチェック用
var n4 = document.layers;         // ブラウザ(N4)のチェック用
var opera=window.opera?1:0

var g_act = "";					  //flash_DoFSCommand関数を、どのタイミングでも呼べるように必要な値をglobalなものとして保持しておく
var g_str = "";					  //flash_DoFSCommand関数を、どのタイミングでも呼べるように必要な値をglobalなものとして保持しておく
var play_state = "";

//##########################################################################
//オブジェクトの表示・非表示を実行する処理
//##########################################################################
function showObj(objnm) {
	var obj = getObj(objnm);
	if (ie||n6||opera) {
		if (obj.style.display=="none") {
			obj.style.display=""
		} else {
			obj.style.display="none"
		}
	}
}

//##########################################################################
//[読む]タイプの　再生、一時停止、停止　ボタン画像チェンジ用関数
//##########################################################################
function sbtn_change(playmode, mode){
	//変更したいボタン
	switch(playmode){
		case 1: ovjnm = "sound_play";  break;
		case 2: ovjnm = "sound_pause"; break;
		case 3: ovjnm = "sound_stop";  break;
	}
	var obj = getObj(ovjnm);
	//再生状態 1:再生 2:一時停止 3:停止 4:
	switch(mode){
		case 1: obj.src = "./img/" + ovjnm + ".gif"; 		break;
		case 2: obj.src = "./img/" + ovjnm + "_over.gif"; 	break;
		case 3: obj.src = "./img/" + ovjnm + "_down.gif"; 	break;
	}
}

//##########################################################################
//画面のリサイズに合わせて、FlashやDIVのサイズも修正する。
//##########################################################################
function resize(width, height){
winsize = WindowSize(); 

	if(!ie){
		width = width + 280;
		height = height + 280;
	}
	
	//横320px以上、縦255px以上ならば画面サイズを調整する。それ以下の大きさなら調整しない（※小さくなりすぎるから）
	if(winsize[0] > 320 && winsize[1] > 255){
		// ブラウザによって制御すべきオブジェクトが異なるためブラウザ名で判定
		folder_fla = (navigator.appName.indexOf("Microsoft") != -1) ? flash : document.flash;
	
		//Flashの表示部分
		folder_mdi=n6?document.getElementById("media"):document.all("media");
	
		//ウインドウの縦横のサイズで、小さいほうを基準値とする
		if(winsize[0] <= winsize[1]){
			//640px(幅)*510px(高さ)(0.83：1) :20
			widthsize = winsize[0]-width;
			heifhtsize = Math.round((winsize[0]-width) * 0.796875);
		}else{
			//640px(幅)*510px(高さ)(0.83：1) :210
			widthsize = Math.round((winsize[1]-height) * 1.254901);
			heifhtsize = winsize[1]-height;
		}
	
		folder_fla.width 	= widthsize;
		folder_fla.height 	= heifhtsize;
		folder_mdi.style.height = heifhtsize;		//Flash表示用DIVの高さ調整(ここで高さを設定しておかないとFlashがうまく表示されない)
	}
}

//##########################################################################
//スクリーンサイズ取得
//##########################################################################
function WindowSize(){
winsize = new Array(2); 
	if(ie){		//IEのとき
		winsize[0] = document.body.clientWidth - document.body.scrollLeft;
		winsize[1] = document.body.clientHeight - document.body.scrollTop;
		return(winsize);
	}else if(n6){	//NN6のとき
		winsize[0] = window.outerWidth;
		winsize[1] = window.outerHeight;
		return(winsize);
	}else if(n4){	//NN4のとき
		winsize[0] = innerWidth;
		winsize[1] = innerHeight;
		return(winsize);
	}
}

//##########################################################################
//Flashからの通信を受け取る関数(FireFox用)
//##########################################################################
function flash_FSCommand(act,str){
	flash_DoFSCommand(act,str)
}
//##########################################################################
//現在会話している部分の文字を赤く反転させる
//##########################################################################
function flash_DoFSCommand(act,str){
	//dialoguetblを取得。これがあるときは文字を赤く反転させる。
	//無いときはType1なので、一行ずつ文字を表示する
	var obj = getObj("dialoguetbl");
	var lineview = null;
	if(htmltype == 4) return;
	//Flashから通信が来るときだけ、文字を赤くする場合はこの関数は必要ない
	//言語を切り替えた瞬間(もしくは人物表示を切り替えた瞬間)に、今現在話している部分を赤くするには
	//Flashから通信が来るタイミングではなく、言語を切り替えたタイミングで文字を赤くしなければならない。
	//そのために、globalな変数に値を取得しておく
	g_act = act;
	g_str = str;
	status=act+":"+str;

	var strarray=str.split(",");
	var lineid=strarray[0];
	var sentenceid=strarray[1];
	//行ごとの台詞の[表示/非表示]を選択するチェックボックスの値を取得
	var lineview = getObj("lineview_" + lineid + "_" + sentenceid);

	if(act=="sentencestart"){
		//[タイプ１]のときは、現在話している会話の一文のみを表示する。
		if(htmltype == 1) viewSentence(lineid,sentenceid);
		else{
			ClearRed();		//赤く表示した文字を黒く戻す
			//チェックされていたら表示している状態なので、文字の色を赤く変える
			if(lineview && lineview.checked)
			{
				SentenceRed(lineid,sentenceid);	//表示されている文字を赤くする
			}
		}
	}else if(act=="sentenceend"){
		//[タイプ１]のときは、表示していた文字を消す。
		if(htmltype == 1) getObj("dialogue").innerHTML="";
		else ClearRed();	//赤く表示した文字を黒く戻す
	}
}

//##########################################################################
//文字サイズをコントロールする
//虫眼鏡画像をクリックされたとき
//##########################################################################
function strSizeCtl(divnm, txtboxnm, symbol){

	//サイズを足すか引くか
	if(symbol == "+") size = 25;
	else size = -25;

	//フォントのサイズを変更したいDIV
	dlg=n6?document.getElementById(divnm):document.all(divnm);
	//テキストボックスのパーセント取得
	obj=n6?document.getElementById(txtboxnm):document.all(txtboxnm);
	
	if((obj.value).replace("%", "") == 0 && symbol == "-"){
		alert("これ以上小さく出来ません。");
	}else if((obj.value).replace("%", "") == 800 && symbol == "+"){
	}else{	
		//フォントサイズが設定されていないときはdefaultのフォントサイズを取得する
		if(dlg.style.fontSize == "") dlg.style.fontSize = defaultfontsize;// + "em";
				
		//現在のフォントサイズを取得
		dlgsize = parseFloat(dlg.style.fontSize.replace("%", ""));
		dlgsize = dlgsize + size; //(dlgsize + (size / defaultfontsize))
		dlg.style.fontSize  = dlgsize + "%";
	
		//現在のフォントサイズ÷フォントの基準値(2em)*100 = 元のサイズのフォントの何％か
		obj.value = dlgsize + "%"; //((dlgsize / defaultfontsize) * 100) + "%";
	}
}
//##########################################################################
//文字サイズをコントロールする
//フォントサイズのパーセントを表示するボックスの値を変更したとき
//##########################################################################
function changePercentBox(divnm, txtboxnm){
	//フォントのサイズを変更したいDIV
	dlg=n6?document.getElementById(divnm):document.all(divnm);
	//テキストボックスのパーセント取得
	obj=n6?document.getElementById(txtboxnm):document.all(txtboxnm);
	val = (obj.value).replace("%", "");	//%を取って数値だけを取得

	if (val > 800){
		obj.value = "800%";
		dlg.style.fontSize = "800%";
	}else{
		//数値が入力されているかチェック
		if(isNumeric(val)){
			fontsizeval = obj.value;
			dlg.style.fontSize = obj.value;
		}
	}
}

//##########################################################################
// 文字列の空白を除去する
//##########################################################################
function trim(str){
	newstr=str.replace(/^\s+|\s+$/g, "")
	
	return newstr;
}

//##########################################################################
// 数値のチェック
//##########################################################################
function isNumeric(num){
    if (num.match(/[^0-9]/g)) {
        alert("数値を入力してください。");
        return false;
    }
    return true;
}