/*****************************************************************************
 * Rankingクラス: Ranking取得処理を行う
 *****************************************************************************/
nyan.Ranking = {};

(function(){
	function getRanking(){
		var level = document.getElementById('ranking_level').value || "1";
		var span = document.getElementById('span').value || "1";

		// サーバ側から問題の取得
		var $params = "level=" + encodeURIComponent( level )
			+ "&span=" + encodeURIComponent( span );

		nyan.sendRequest(
			'anzan_musou.php',
			_getResponse,
			'get',
			$params
		);

		function _getResponse( req ){
			try{
				var j_r = eval( "(" + req.responseText + ")" );
			}
			catch( e ){
				alert( e.toString() );
			}

			displayRanking( j_r.anzan_musou.get_ranking );
		}

		function _getError( req ){
			alert( req.responseText );
		}
	}

	function displayRanking( data ){
		// 画面切り替え
		var rank_disp_node = document.getElementById('rank_disp');
		rank_disp_node.style.display = "block";

		var nodes = document.getElementById('ranking_out').innerHTML = "";

		var table_node = document.createElement('table');
		table_node.className = "table_rank";
		var tbody_node = document.createElement('tbody');
		var tr_th_node = document.createElement('tr');

		var th_order_node = document.createElement('th');
		th_order_node.className = "table_rank";
		var th_order_text = document.createTextNode('順位');
		th_order_node.appendChild( th_order_text );

		var th_handle_node = document.createElement('th');
		th_handle_node.className = "table_rank";
		var th_handle_text = document.createTextNode('ハンドル');
		th_handle_node.appendChild( th_handle_text );

		var th_answer_node = document.createElement('th');
		th_answer_node.className = "table_rank";
		var th_answer_text = document.createTextNode('解答時間');
		th_answer_node.appendChild( th_answer_text );

		tr_th_node.appendChild( th_order_node );
		tr_th_node.appendChild( th_handle_node );
		tr_th_node.appendChild( th_answer_node );

		tbody_node.appendChild( tr_th_node );

		for( var i=0; i<data.ranking.length; i++ ){
			var tr_node = document.createElement('tr');

			var td_order_node = document.createElement('td');
			td_order_node.className = "table_rank";
			var text_order_node = document.createTextNode( (i+1).toString() );
			td_order_node.appendChild(text_order_node);
			tr_node.appendChild(td_order_node);

			var td_handle_node = document.createElement('td');
			td_handle_node.className = "table_rank";
			var text_handle_node = document.createTextNode(data.ranking[i].handle);
			td_handle_node.appendChild(text_handle_node);
			tr_node.appendChild(td_handle_node);

			var td_answer_node = document.createElement('td');
			td_answer_node.className = "table_rank";
			var text_answer_node = document.createTextNode( Number(data.ranking[i].answer_time).toFixed(3) );
			td_answer_node.appendChild(text_answer_node);
			tr_node.appendChild(td_answer_node);

			tbody_node.appendChild(tr_node);
		}

		table_node.appendChild(tbody_node);

		document.getElementById('ranking_out').appendChild(table_node);

		// "メインメニュー"ボタンクリック時のイベントハンドラ
		document.getElementById('r_button_return_main_menu').onclick = function(){
			location.reload(true)
		};
	}

	// 外部からアクセスできるように、Rankingクラスのメソッドとローカル関数を関連付ける
	nyan.Ranking.getRanking = getRanking;
})();


