/*****************************************************************************
 * init()：onloadイベントハンドラから呼ばれる関数。メインメニューに表示される
 *        各ボタンのイベントハンドラを設定する。
 *****************************************************************************/
nyan.init = function(){
	var menu_muso_button = document.getElementById("menu_muso_button");
	var menu_free_button = document.getElementById("menu_free_button");
	var menu_rank_button = document.getElementById("menu_rank_button");

	// 無双モードボタンのイベント
	menu_muso_button.onclick = function(){
		// 画面切り替え
		nyan.changeDisplay( "muso_menu" );
		// "開始"ボタンのイベントハンドラ
		document.getElementById("start_button").onclick = nyan.Muso.sendGetQuestion;
	};

	document.getElementById('m0').onmousedown = function(){ document.getElementById('ans').value += "0"; };
	document.getElementById('m1').onmousedown = function(){ document.getElementById('ans').value += "1"; };
	document.getElementById('m2').onmousedown = function(){ document.getElementById('ans').value += "2"; };
	document.getElementById('m3').onmousedown = function(){ document.getElementById('ans').value += "3"; };
	document.getElementById('m4').onmousedown = function(){ document.getElementById('ans').value += "4"; };
	document.getElementById('m5').onmousedown = function(){ document.getElementById('ans').value += "5"; };
	document.getElementById('m6').onmousedown = function(){ document.getElementById('ans').value += "6"; };
	document.getElementById('m7').onmousedown = function(){ document.getElementById('ans').value += "7"; };
	document.getElementById('m8').onmousedown = function(){ document.getElementById('ans').value += "8"; };
	document.getElementById('m9').onmousedown = function(){ document.getElementById('ans').value += "9"; };
	document.getElementById('mbs').onmousedown = function(){
		var ans = document.getElementById('ans');
		ans.value = ans.value.substr(0, ans.value.length-1);
	};

	// "次の問題"ボタンを押したときのイベントハンドラを指定
	document.getElementById('next_button').onclick = nyan.Muso.nextQuestion;

	// フリーモードボタンのイベント
	menu_free_button.onclick = function(){
		// 画面切り替え
		nyan.changeDisplay( "free_menu" );
		// "開始"ボタンのイベントハンドラ
		document.getElementById("f_start_button").onclick = nyan.Free.getStart;
		// "終了"ボタンのイベントハンドラ
		document.getElementById("f_end_button").onclick = function(){
			var ret = confirm( "終了してもよろしいですか？" );
			if( ret ){
				nyan.Free.displayResult();
			}
		}
	};

	document.getElementById('f0').onmousedown = function(){ document.getElementById('f_ans').value += "0"; };
	document.getElementById('f1').onmousedown = function(){ document.getElementById('f_ans').value += "1"; };
	document.getElementById('f2').onmousedown = function(){ document.getElementById('f_ans').value += "2"; };
	document.getElementById('f3').onmousedown = function(){ document.getElementById('f_ans').value += "3"; };
	document.getElementById('f4').onmousedown = function(){ document.getElementById('f_ans').value += "4"; };
	document.getElementById('f5').onmousedown = function(){ document.getElementById('f_ans').value += "5"; };
	document.getElementById('f6').onmousedown = function(){ document.getElementById('f_ans').value += "6"; };
	document.getElementById('f7').onmousedown = function(){ document.getElementById('f_ans').value += "7"; };
	document.getElementById('f8').onmousedown = function(){ document.getElementById('f_ans').value += "8"; };
	document.getElementById('f9').onmousedown = function(){ document.getElementById('f_ans').value += "9"; };
	document.getElementById('fbs').onmousedown = function(){
		var ans = document.getElementById('f_ans');
		ans.value = ans.value.substr(0, ans.value.length-1);
	};

	// "次の問題"ボタンのイベントハンドラ
	document.getElementById("f_next_button").onmousedown = nyan.Free.getQuestion;

	// ランキングボタンのイベント
	menu_rank_button.onclick = function(){
		// 画面切り替え
		nyan.changeDisplay( "rank_menu" );
		document.getElementById("get_ranking_button").onclick = nyan.Ranking.getRanking;
	};

	// テンキー押下時に答えのチェック
	var tenkeys = document.getElementsByName('tenkey');
	for( var i=0; i<tenkeys.length; i++ ){
		tenkeys[i].onmouseup = function(){
			var operator = "";

			var ope = document.getElementById('ope');
			if( ope ){
				switch( ope.innerHTML ){
				case "＋":
					operator = "add";
					break;
				case "－":
					operator = "subtract";
					break;
				case "×":
					operator = "multiply";
					break;
				case "÷":
					operator = "devide";
					break;
				default:
					operator = "add";
					break;
				}
				
				nyan.checkAnswer(
					document.getElementById('ans'),
					document.getElementById('next_button'),
					document.getElementById('p1').innerHTML,
					document.getElementById('p2').innerHTML,
					operator
				);
			}

			ope = document.getElementById('f_ope');
			if( ope ){
				switch( ope.innerHTML ){
				case "＋":
					operator = "add";
					break;
				case "－":
					operator = "subtract";
					break;
				case "×":
					operator = "multiply";
					break;
				case "÷":
					operator = "devide";
					break;
				default:
					operator = "add";
					break;
				}
				
				nyan.checkAnswer(
					document.getElementById('f_ans'),
					document.getElementById('f_next_button'),
					document.getElementById('f_p1').innerHTML,
					document.getElementById('f_p2').innerHTML,
					operator
				);
			}
		}
	}

	// updateLayout()関数の呼び出し
	setTimeout(nyan.updateLayout, 0);
}

/*****************************************************************************
 * ページ読み込み完了後直ぐに呼び出されるイベントハンドラの設定
 ****************************************************************************/
if( window.addEventListener ){
	window.addEventListener( "load", nyan.init, false );
}
else if( window.attachEvent ){
	window.attachEvent( "onload", nyan.init );
}
else{
	window.onload = nyan.init;
}

// 画面サイズ変更時(iPod touchで画面を傾けたとき)に呼び出す関数
nyan.currentWidth = 0;
nyan.updateLayout = function()
{
	if (window.innerWidth != nyan.currentWidth){
		nyan.currentWidth = window.innerWidth;

		var orient = nyan.currentWidth == 320 ? "profile" : "landscape";
		document.getElementById('main_menu').setAttribute("orient", orient);

		var left_elements = document.getElementsByName('left_part')
		for( var i=0; i<left_elements.length; i++ ){
			left_elements[i].setAttribute("orient", orient);
		}
		var right_elements = document.getElementsByName('right_part');
		for( var i=0; i<right_elements.length; i++ ){
			right_elements[i].setAttribute("orient", orient);
		}

		setTimeout(function(){
			window.scrollTo(0, 1);
		}, 100);            
	}
}

// 定期的にupdateLayout()関数を呼び出す
setInterval(nyan.updateLayout, 500);




