﻿/*#########################################################################

★ www.kan-piano.com 全ページで使用する手続き＋関数の定義
　（汎用性のある関数は別ファイル functions.js で定義・読み込み）

#########################################################################*/



/* 初期設定（関数内ではなくここで手続き的に）
#########################################################################*/

//★★ページのファイル名を基本変数として使用

PAGE = window.location.pathname;

//トップページだけは特殊。ほかはディレクトリを indexOf で判断。
if(PAGE.indexOf("/index.htm") >= 0 || PAGE == "/"){	
	
	PAGE = "index";

}else if(PAGE.indexOf("/song/") >= 0){
	
	SONG = PAGE.replace("/song/","");
	SONG = SONG.replace(".htm","");

}else{

	PAGE = "index";
}



/* 関数定義
#########################################################################*/

//ページ読み込み時の関数（ページごと）
function iniFunc(){

	//ページによる実行関数分岐
	
	//★トップページのみ
	if(PAGE == "index"){
		
		//アクセスカウント（song内以外全部）
		getAccess();
		
		loadSwf("/flash/index");//filenameは [.swf] 抜き
	}
	//★「/song」内の場合
	else if(PAGE.indexOf("/song/") >= 0){
	
		loadSwf("/flash/loadsong_v8");//filenameは [.swf] 抜き
		
		//コメント表示
		getComment("ini");
		
		getAccess("simple");

		load_movie_player();//アクセスビリティ用
		
	}
	//★「faq.htm」の場合
	else if(PAGE.indexOf("trouble.htm") >= 0){
	
		//環境チェック
		check_env();
		
		//アクセスカウント（song内以外全部）
		getAccess();
		
	}
	else{//その他全部
	
		//アクセスカウント（song内以外全部）
		getAccess();
	}
	
	
	//★★全ページ共通
	//グーグル検索ワード入力
	getGooglesearch();
	
}




/* 個々の関数
------------------------------------------------------------*/

//HTML版の再生リンク表示（アクセスビリティ）
function load_movie_player(){
	var str = '<div id="movie_player">[動画操作] <a href="javascript:callExternalInterface(\'play\');" id="movie_play" name="movie_play">再生</a>';
	str += ' <a href="javascript:callExternalInterface(\'pause\');">一時停止</a>';
	str += ' <a href="javascript:callExternalInterface(\'stop\');">はじめに戻る</a>';
	str += ' <a href="javascript:callExternalInterface(\'rewind\');">10秒戻る</a></div>';
	$("tgt_movie_player").innerHTML = str;
}
function callExternalInterface(mode) {
    getMovieName("tgt_swfObj").keydown_control(mode); 
}
function getMovieName(movieName) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
    return window[movieName]
    }
    else {
    return document[movieName]
    }
}

//コメント送信画面の表示
function readyComment(){

	var src = '<form id="form_comment" name="form_comment" onsubmit = "return false;">';//FFではテキストフィールドがひとつしかないと、ENTER送信していしまうので、AJAX送信に限りこの手が使える。
	src += '<div class="mainrow"><div class="comment-main-left">お名前</div><div class="comment-main-right"><input type="text" name="f_handlename" id="f_handlename" value="" size="20" maxlength="8" /> <span class="f-gray6 f-90">8文字まで（空欄可）</span></div></div>';
	src += '<div class="mainrow"><div class="comment-main-left">コメント</div><div class="comment-main-right"><textarea id="f_comment" name="f_comment" cols="60" rows="4"></textarea><br /><span class="f-gray6 f-90">※改行は無視されます。</span></div></div>';
	src += '<p class="clearboth"><br /><input type="button" id="f_sendbutton" value="　コメントを送信する　" onclick="sendComment()" /><span id="tgt_msg_comment"></span></p>';
	src += '</form>';
	
	$("tgt_comment").innerHTML = src;

}

//コメントを送信する
function sendComment(){
	
	//空欄チェック
	if(!Field.present("f_comment")){
		alert("コメントを入力して下さい。");
		Field.focus("f_comment");
		return false;
	}
	else{
		
		//ボタンを使用不可に
		$("f_sendbutton").disabled = true;
		$("tgt_msg_comment").innerHTML = '　送信中...';
	
		uri = "/setComment.php";
		data = Form.serialize("form_comment");
		data += '&song='+ SONG;
		options = {method: "post", parameters: data, onComplete:reloadComment};
		new Ajax.Request(uri, options);
	}
}

//コメント送信後の後処理
function reloadComment(myRequest){

	//output: {"totalAccess":"000","todayAccess":"111",,,}
	//eval("var output = " + myRequest.responseText); //連想の場合は output[000]でアクセス

	var output = myRequest.responseText;
	
	if(output == "OK"){
			var msg1 = "　コメントを送信しました。　";
			var msg2 = "いま送信したコメントを見る";
	}else{
			var msg1 = "　コメントを送信できるのは1日1回までです。　";
			var msg2 = "コメントを見る";
	}
	$("tgt_msg_comment").innerHTML = msg1 + '<img src="/img/ico/arrow_circle_green.gif" width="13" height="13" class="greenarrow" /><a href="javascript:getComment(\'ini\')";>' + msg2 + '</a>';
}

//コメントを見る
function getComment(page_index){

	//引数によって処理分岐
	if(page_index == "ini"){
		page_index = 0;
		getViews();//★
	}
	else{
		$("comment-main").scrollTop = 0;//コメントのトップにスクロールを上げる（引数なし : ボタンイベント等）
		page_index = $F("f_commentindex");

		if(page_index == 0){
			getViews();//★
		}
		else{
			page_index_sub = parseInt(page_index) + 1;
			$("tgt_totalComments").innerHTML = page_index_sub + "ページ目を表示";
		}
	}

	tgt = "tgt_comment";
	uri = "/getComment.php";
	data = "song=" + SONG;
	data += "&page_index=" + page_index;
    options = { method: "post",
				parameters: data};
	new Ajax.Updater(tgt,uri, options);

}



//Flash用に、ページ名から曲名「eien」などを抜き出す
function getHtmlfilename(){
	
	var Obj = new Object();
	Obj.songname = SONG;
	return Obj;
	//alert(Obj.songname);
}

//アクセスカウンタ＋認定数表示（song内以外全部で実行される。song内については簡易版 [引数:simple] を実行）
function getAccess(mode){

	uri = "/getAccess.php";
	data = "";
	
	if(mode == "simple"){
		
		options = {method: "post", parameters: data};
	
	}else{
		
		$("tgt_imgNintei").innerHTML = '<img src="/img/mark/count_pnm.gif" />';
		$("tgt_totalNintei").innerHTML = '読み込み中... ';
		
		options = {method: "post", parameters: data, onComplete:setAccess};
	}
	
	new Ajax.Request(uri, options);
}
function setAccess(myRequest){

	//output: {"totalAccess":"000","todayAccess":"111",,,}
	eval("var output = " + myRequest.responseText); //連想の場合は output[000]でアクセス

	$("tgt_totalNintei").innerHTML = output.totalNintei + '人';
	$("tgt_totalAccess").innerHTML = output.totalAccess;
	$("tgt_todayAccess").innerHTML = output.todayAccess;
	$("tgt_todayNintei").innerHTML = output.todayNintei;	
	
	
}

//動画の再生回数＋コメント数表示（iniFunc もしくは プルダウン がトリガー）
function getViews(){

	$("tgt_imgNintei").innerHTML = '<img src="/img/mark/count_views.gif" />';
	$("tgt_totalNintei").innerHTML = '読み込み中... ';
	
	uri = "/getViews.php";
	data = "song=" + SONG;
	options = {method: "post", parameters: data, onComplete:setViews};
	new Ajax.Request(uri, options);
}
function setViews(myRequest){

	//output: {"totalViews":"000","totalComments":"111",,,}
	eval("var output = " + myRequest.responseText); //連想の場合は output[000]でアクセス

	$("tgt_totalNintei").innerHTML = output.totalViews + '回';
	$("tgt_totalComments").innerHTML = output.totalComments + '件中 最新の' + output.numShowComments + '件を表示';
	
	//プルダウン描画
	
	var pages = Math.ceil(output.totalComments / output.numShowComments);
	var src = '';
	for(var i=0; i<pages; i++){
		
		var start = i * output.numShowComments + 1;
		
		if(i == pages - 1){
			var end = output.totalComments;
		}
		else{
			var end = (i + 1) * output.numShowComments;
		}
		
		src += '<option value="' + i + '">' + start + '-' + end + ' </option>';
	}
	//★IEは <select> に innerHTML できないので <span> 内に <select> ごと書く
	$("tgt_commentindex").innerHTML = '<select id="f_commentindex" name="f_commentindex" onchange="getComment()">' + src + '</select>';
}

//動画再生回数カウントアップ・・・フラッシュの巨大ボタンがトリガー
function countupViews(){
	
	uri = "/countupAny.php?mode=songviews";
	uri += "&song=" + SONG;
	options = {method: "get", onComplete:setViewCounts};
	new Ajax.Request(uri, options);
}
function setViewCounts(myRequest){
	
	eval("var output = " + myRequest.responseText); //連想の場合は output[000]でアクセス
	$("tgt_totalNintei").innerHTML = output.totalViews + '回';
}







//JavaScript等のチェック
function check_env(){
	$("tgt_checkjs").innerHTML = 'JavaScript は有効になっています';
	$("tgt_flashversion").innerHTML = GetSwfVer();
}


//各種メッセージ送信
function sendMessage(){
	
	var name = $F("f_name");
	var message = $F("f_message");
	
	if(name.length < 1){
		alert("お名前を入力して下さい。ニックネーム等でも結構です。");
		return false;
		}
	if(message.length < 1){
		alert("メッセージを入力して下さい。");
		return false;
		}
	
	//フォーム送信
	$("form_sendmessage").submit();
}




/*  グーグル検索窓にキーワードを入れる//$("sbi").value = "ピアノ　トラブル";
------------------------------------------------------------*/
// [Ajax: get]
function getGooglesearch(){

	var uri = "/db/songdata_js.xml";
    options = { method: "get",
				onComplete: setGooglesearch};
	new Ajax.Request(uri, options);
}

// [Ajax: set]
function setGooglesearch(req){

	var row = req.responseXML.getElementsByTagName('data');
	
	for(var i=0; i<99; i++){
		
		var songtitleen = row[i].getElementsByTagName('page');
		
		if(PAGE.indexOf(songtitleen[0].firstChild.nodeValue) >= 0){
			var searchword = row[i].getElementsByTagName('searchword');
			$("sbi").value = searchword[0].firstChild.nodeValue;
			break;
		}
	}
}



/* フラッシュを描画するAdobe関数をさらに簡略化して引数をファイル名だけにする（サイズは共通）
------------------------------------------------------------*/
function loadSwf(filename){

	//filenameは [.swf] 抜き
	//AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
	//				  'width','648','height','527','src',filename,'quality','high',
	//				  'pluginspage','http://www.macromedia.com/go/getflashplayer','movie',filename );
	
	var hasReqestedVersion = DetectFlashVer(8,0,0);//requiredMajorVersion, requiredMinorVersion, requiredRevision
	
	//filenameは [.swf] 抜き
	if (hasReqestedVersion) {
		// if we've detected an acceptable version
		// embed the Flash Content SWF when all tests are passed
		AC_FL_RunContent(
				"src", filename,//[KAN-Config]
				"width", "648",//[KAN-Config]
				"height", "527",//[KAN-Config]
				"id", "tgt_swfObj",//[KAN-Config]
				"quality", "high",
				"bgcolor", "#000000",
				"name", "tgt_swfObj",//[KAN-Config]
				"allowScriptAccess","sameDomain",
				"type", "application/x-shockwave-flash",
				'codebase', 'http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab',
				"pluginspage", "http://www.adobe.com/go/getflashplayer"
		);
	} else {  // flash is too old or we can't detect the plugin
		var alternateContent = '<br /><br /><div class="kokuban">演奏動画を再生するには、Flash Player 8 以降のバージョンが必要です。<br />'
							 + '<a href="http://www.adobe.com/go/getflashplayer/" target="_blank"><img src="/img/button/get_flash_player.gif" style="margin:9px 0;" /></a><br />'
							 + '<a href="http://www.adobe.com/go/getflashplayer/" target="_blank">最新の Flash Player を入手する</a></div>';
		
		//document.write(alternateContent);
		//[KAN config]
  		$("tgt_swf").innerHTML = alternateContent;
	}
}

	





