// イベント追加(common.jsが必要)
addEvent( 0, function(){ initLeagueRanking() });


var league_ranking;

var DispPageKind;		// 表示ページ種別
var MyCityCode;
var LeagueDispNum;
var LeagueDispMode;
var LeagueHeadDispPos;
var ReturnURL;

function initLeagueRanking()
{
	// LeagueHeadDispPos変数とReturnURL変数にパラメータから格納
	if( DispPageKind == 1 )		// ランキングページ
	{
		onLoadLeagueRankingHtml();
		// 情報を取得する
		GetDispLeagueRanking( 0, LeagueDispNum, LeagueDispMode, LeagueHeadDispPos, 0, 0 );
	}
	else	// 市町村ページ
	{
		// 情報を取得する
		GetDispLeagueRanking( MyCityCode, LeagueDispNum, LeagueDispMode, LeagueHeadDispPos, 0, 0 );
	}
}

function MoveDispLeagueRanking( pMode )
{
	if( pMode == 1 )
	{
		if( LeagueHeadDispPos < 10 )
		{
			LeagueHeadDispPos = 0;
		}
		else
		{
			LeagueHeadDispPos -= 10;
		}
	}
	else
	{
		if( LeagueHeadDispPos > 1781 )
		{
			LeagueHeadDispPos = 1792;
		}
		else
		{
			LeagueHeadDispPos += 10;
		}
	}
	// 情報を取得する
	GetDispLeagueRanking( 0, LeagueDispNum, LeagueDispMode, LeagueHeadDispPos, 0, 0 );
}

// league_ranking.html表示時にパラメータから数値を抽出する
function onLoadLeagueRankingHtml()
{
	try{
		var paramArray = new Array();
		if (location.search.length > 1)
		{
			var list = location.search.substr( 1 ).split( "&" );
			paramArray[0] = list[0].split( "=" );
			paramArray[1] = list[1].split( "=" );
		}
		else
		{
			LeagueHeadDispPos = 0;
			ReturnURL = "http://patmap.jp/CITY/";
		}
		
		// 必ず順番にしておくこと
		var code;
		var page;
		var pos = 0;
		if( paramArray[0][0] = "pos" )
		{
			pos = paramArray[0][1];
		}
		if( paramArray[1][0] = "page" )
		{
			page = paramArray[1][1];
		}
		
		if     ( (  0   <= pos ) && ( pos < 150 ) ){	LeagueHeadDispPos = 0;		}
		else if( (  150 <= pos ) && ( pos < 300 ) ){	LeagueHeadDispPos = 150;	}
		else if( (  300 <= pos ) && ( pos < 450 ) ){	LeagueHeadDispPos = 300;	}
		else if( (  450 <= pos ) && ( pos < 600 ) ){	LeagueHeadDispPos = 450;	}
		else if( (  600 <= pos ) && ( pos < 750 ) ){	LeagueHeadDispPos = 600;	}
		else if( (  750 <= pos ) && ( pos < 900 ) ){	LeagueHeadDispPos = 750;	}
		else if( (  900 <= pos ) && ( pos < 1050 ) ){	LeagueHeadDispPos = 900;	}
		else if( ( 1050 <= pos ) && ( pos < 1200 ) ){	LeagueHeadDispPos = 1050;	}
		else if( ( 1200 <= pos ) && ( pos < 1350 ) ){	LeagueHeadDispPos = 1200;	}
		else if( ( 1350 <= pos ) && ( pos < 1500 ) ){	LeagueHeadDispPos = 1350;	}
		else if( ( 1500 <= pos ) && ( pos < 1650 ) ){	LeagueHeadDispPos = 1500;	}
		else if( ( 1650 <= pos ) && ( pos < 1900 ) ){	LeagueHeadDispPos = 1650;	}
		
		ReturnURL = "http://patmap.jp" + page;
	}
	catch(e){
		LeagueHeadDispPos = 0;
		ReturnURL = "http://patmap.jp/CITY/";
	}
}
function ReturnPage()
{
	// ReturnURLのスラッシュが"%2F"になっている場合があるのでURLデコードする
	ReturnURL = decodeURIComponent( ReturnURL );
	
	location.href = ReturnURL;
}

function OnClickLeagueRankingHtml(pUrl)
{
	location.href = "../../db/league/league_ranking.html?pos=" + LeagueHeadDispPos + "&page=" + pUrl + "&code=" + MyCityCode + "&kencode=0&othersort=0";
}

// pCode:自治体コードを指定する場合は指定。指定しない場合は空
// pDispNum：表示する件数
// pDispMode：完全モードなら１、簡易モードなら0
// pHeadDispPos：表示先頭位置
// pKenCode:県別表示にする（県コード指定用）
// pOtherSort:ソート種別を変える
function GetDispLeagueRanking( pCode, pDispNum, pDispMode, pHeadDispPos, pKenCode, pOtherSort)
{

	league_ranking = document.getElementById("league_ranking");
	
	var url = "http://patmap.jp/CITY/db/league/rankinglist.php";
	var paramList = "code=" + pCode + "&num=" + pDispNum + "&offset=1" + "&headpos=" + pHeadDispPos + "&kencode=" + pKenCode + "&othersort=" + pOtherSort;

	new Ajax.Request(url,
	{
		method: 'post',
		onSuccess: getData,
		onFailure: ErrData,
		parameters: paramList
	});

	function getData(data)
	{
		// ===================XML要素抜き出し===================
		var response = data.responseXML.getElementsByTagName('Response');
		var item = response[0].getElementsByTagName('Item');
		
		// ===================テーブルタグの要素生成=============
		var tagTable = document.createElement( 'table' );
		if( LeagueDispMode == 1 )
		{
			tagTable.className = "league_rank_full_list";		// CSSのクラス
		}
		else
		{
			tagTable.className = "league_rank_mini_list";		// CSSのクラス
		}
		// TBODY要素を生成する
		var tagTbody = document.createElement( 'tbody' );
		tagTable.appendChild( tagTbody );

		for(i = 0; i < item.length; i++)
		{
			if( LeagueDispMode == 1 )
			{
				// 30行に1回ヘッダ行を挿入
				if( i % 30 == 0 )
				{	
					// ヘッダ行生成
					MakeHeaderRow();
				}
			}
			else
			{
				// 一番上だけヘッダ行を挿入
				if( i == 0 )
				{	
					// ヘッダ行生成
					MakeHeaderRow();
				}
			}
			// =============XML要素抜き出し=======================
			var ele_rank = item[i].getElementsByTagName('rank');
			var rankValue = parseInt( ele_rank[0].firstChild.nodeValue );

			// 先頭のみ順位を表示位置として記憶する
			if( i == 0 )
			{
				LeagueHeadDispPos = rankValue - 1;
			}

			var ele_first_p = item[i].getElementsByTagName('first_p');
			var first_pValue = parseInt( ele_first_p[0].firstChild.nodeValue );

			var ele_win = item[i].getElementsByTagName('win');
			var winValue = parseInt( ele_win[0].firstChild.nodeValue );

			var ele_lose = item[i].getElementsByTagName('lose');
			var loseValue = parseInt( ele_lose[0].firstChild.nodeValue );

			var ele_draw = item[i].getElementsByTagName('draw');
			var drawValue = parseInt( ele_draw[0].firstChild.nodeValue );

			var ele_win_k = item[i].getElementsByTagName('win_k');
			var win_kValue = parseInt( ele_win_k[0].firstChild.nodeValue );

			var ele_lose_k = item[i].getElementsByTagName('lose_k');
			var lose_kValue = parseInt( ele_lose_k[0].firstChild.nodeValue );

			var ele_city_name = item[i].getElementsByTagName('city_name');
			var city_nameValue = ele_city_name[0].firstChild.nodeValue;

			var ele_city_code = item[i].getElementsByTagName('code');
			var city_codeValue = parseInt( ele_city_code[0].firstChild.nodeValue );
			// =================================================
			
			// 得失点差
			var diff_point = win_kValue - lose_kValue;
			if( diff_point > 0 ){ diff_point = "+" + diff_point; }	// ＋記号を付ける
			
			// ============テーブルの行列要素にもセット==========
			// XMLから抜き出した値をテーブルに設定
			var tagTr = document.createElement("tr");

			// 自身の市町村コードの場合はクラス名を付加
			if( MyCityCode == city_codeValue )
			{
				tagTr.className = "MyCityTableRow";		// CSSのクラス
			}

			if( LeagueDispMode == 1 )
			{
				var tagTd = document.createElement('td');
				tagTd.appendChild( document.createTextNode( rankValue ) );
				tagTr.appendChild( tagTd );			
				tagTd = document.createElement('td');
				tagTd.appendChild( document.createTextNode( city_nameValue ) );
				tagTr.appendChild( tagTd );
				tagTd = document.createElement('td');
// 勝ち点計算を一寸変更(勝ち+3、分け+1、負け-1)
//				tagTd.appendChild( document.createTextNode( first_pValue + winValue * 3 + drawValue ) );
				tagTd.appendChild( document.createTextNode( first_pValue + winValue * 3 + drawValue - loseValue ) );
				tagTr.appendChild( tagTd );
				tagTd = document.createElement('td');
				tagTd.appendChild( document.createTextNode( winValue + loseValue + drawValue ) );
				tagTr.appendChild( tagTd );
				tagTd = document.createElement('td');
				tagTd.appendChild( document.createTextNode( winValue ) );
				tagTr.appendChild( tagTd );
				tagTd = document.createElement('td');
				tagTd.appendChild( document.createTextNode( loseValue ) );
				tagTr.appendChild( tagTd );
				tagTd = document.createElement('td');
				tagTd.appendChild( document.createTextNode( drawValue ) );
				tagTr.appendChild( tagTd );
				tagTd = document.createElement('td');
				tagTd.appendChild( document.createTextNode( first_pValue ) );
				tagTr.appendChild( tagTd );
				tagTd = document.createElement('td');
				tagTd.appendChild( document.createTextNode( win_kValue ) );
				tagTr.appendChild( tagTd );
				tagTd = document.createElement('td');
				tagTd.appendChild( document.createTextNode( lose_kValue ) );
				tagTr.appendChild( tagTd );
				tagTd = document.createElement('td');
				tagTd.appendChild( document.createTextNode( diff_point ) );
				tagTr.appendChild( tagTd );
				tagTbody.appendChild( tagTr );
			}
			else
			{
				var tagTd = document.createElement('td');
				tagTd.appendChild( document.createTextNode( rankValue ) );
				tagTr.appendChild( tagTd );			
				tagTd = document.createElement('td');
				tagTd.appendChild( document.createTextNode( city_nameValue ) );
				tagTr.appendChild( tagTd );
				tagTd = document.createElement('td');
// 勝ち点計算を一寸変更(勝ち+3、分け+1、負け-1)
//				tagTd.appendChild( document.createTextNode( first_pValue + winValue * 3 + drawValue ) );
				tagTd.appendChild( document.createTextNode( first_pValue + winValue * 3 + drawValue - loseValue ) );
				tagTr.appendChild( tagTd );
				tagTd = document.createElement('td');
				tagTd.appendChild( document.createTextNode( diff_point ) );
				tagTr.appendChild( tagTd );
				tagTbody.appendChild( tagTr );
			}

		}

		// 最後にもヘッダ行生成
		if( LeagueDispMode == 1 )
		{
			MakeHeaderRow();
		}
		
		//既に前回表示のテーブルがある場合は削除
		var childs = league_ranking.childNodes;
		if( childs.length > 0 )
		{
			var child = childs[0];
			league_ranking.removeChild(child);
		}
		// 表示位置に設定
		league_ranking.appendChild( tagTable );

		// ヘッダ用の行を生成する
		function MakeHeaderRow()
		{
			var tagTr = document.createElement("tr");
			if( LeagueDispMode == 1 )
			{
				var tagTh = document.createElement('th');
				tagTh.appendChild( document.createTextNode('順位') );
				tagTh.className = "league_rank_all_list_a1";
				tagTr.appendChild( tagTh );			
				tagTh = document.createElement('th');
				tagTh.appendChild( document.createTextNode('自治体名') );
				tagTh.className = "league_rank_all_list_a2";			
				tagTr.appendChild( tagTh );
				tagTh = document.createElement('th');
				tagTh.appendChild( document.createTextNode('勝ち点') );
				tagTh.className = "league_rank_all_list_a3";			
				tagTr.appendChild( tagTh );
				tagTh = document.createElement('th');
				tagTh.appendChild( document.createTextNode('試合数') );
				tagTh.className = "league_rank_all_list_a4";			
				tagTr.appendChild( tagTh );
				tagTh = document.createElement('th');
				tagTh.appendChild( document.createTextNode('勝利数') );
				tagTh.className = "league_rank_all_list_a5";			
				tagTr.appendChild( tagTh );
				tagTh = document.createElement('th');
				tagTh.appendChild( document.createTextNode('敗北数') );
				tagTh.className = "league_rank_all_list_a6";			
				tagTr.appendChild( tagTh );
				tagTh = document.createElement('th');
				tagTh.appendChild( document.createTextNode('引分数') );
				tagTh.className = "league_rank_all_list_a7";			
				tagTr.appendChild( tagTh );
				tagTh = document.createElement('th');
				tagTh.appendChild( document.createTextNode('初期ポイント') );
				tagTh.className = "league_rank_all_list_a8";			
				tagTr.appendChild( tagTh );
				tagTh = document.createElement('th');
				tagTh.appendChild( document.createTextNode('得点') );
				tagTh.className = "league_rank_all_list_a9";			
				tagTr.appendChild( tagTh );
				tagTh = document.createElement('th');
				tagTh.appendChild( document.createTextNode('失点') );
				tagTh.className = "league_rank_all_list_a10";			
				tagTr.appendChild( tagTh );
				tagTh = document.createElement('th');
				tagTh.appendChild( document.createTextNode('得失差') );
				tagTh.className = "league_rank_all_list_a11";			
				tagTr.appendChild( tagTh );
				tagTbody.appendChild( tagTr );
			}
			else
			{
				var tagTh = document.createElement('th');
				tagTh.appendChild( document.createTextNode('順位') );
				tagTh.className = "league_rank_all_list_b1";
				tagTr.appendChild( tagTh );			
				tagTh = document.createElement('th');
				tagTh.appendChild( document.createTextNode('自治体名') );
				tagTh.className = "league_rank_all_list_b2";			
				tagTr.appendChild( tagTh );
				tagTh = document.createElement('th');
				tagTh.appendChild( document.createTextNode('勝ち点') );
				tagTh.className = "league_rank_all_list_b3";			
				tagTr.appendChild( tagTh );
				tagTh = document.createElement('th');
				tagTh.appendChild( document.createTextNode('得失差') );
				tagTh.className = "league_rank_all_list_b4";			
				tagTr.appendChild( tagTh );
				tagTbody.appendChild( tagTr );
			}
		}

	}
	
	function ErrData(data)
	{
		// 利用できません。
		league_ranking.innerHTML( "表示失敗" );
	}
}

