// カウントアップ用名前空間
var VegasPlay = {};
VegasPlay.playNum;	// プレイ回数
VegasPlay.playNumNew;	// 新しく取得したプレイ回数
VegasPlay.stepNum;	// 1秒間に増やす数値
VegasPlay.playNumCurrent;	// 現在表示中の回数
VegasPlay.countupFlag = false;	// 現在カウントアップ中のフラグ
VegasPlay.countupTimerId;

$(function(){
	loadDataFilePlay();
		loadDataFileTotal();
		loadDataFileDaifugou();
		loadDataFileMahjong();
		loadDataFileMinigames();
		loadDataFileSolitaire();
		loadDataFileReversi();
		loadDataFilePoker();
		loadDataFileBlackjack();
		loadDataFileNanpure();
		loadDataFileHot();
		loadDataFileTaikaiHistory();
});	
	setInterval(function(){
		loadDataFileTotal();
		loadDataFileDaifugou();
		loadDataFileMahjong();
		loadDataFileMinigames();
		loadDataFileSolitaire();
		loadDataFileReversi();
		loadDataFilePoker();
		loadDataFileBlackjack();
		loadDataFileNanpure();
		loadDataFileHot();
		loadDataFileTaikaiHistory();
	}, 10000);

	setInterval(function(){
		loadDataFilePlay();
	}, 5000);


// プレイ回数
function loadDataFilePlay(){
//	var playNumNew;
//	$("#news").load("play.txt", playNumNew);
//	VegasPlay.playNum = playNumNew;
	
	
	var fName = 'play.txt';
	httpObjPlay = createXMLHttpRequest(displayDataPlay);
	if (httpObjPlay){
		httpObjPlay.open("GET",fName,true);
		httpObjPlay.setRequestHeader("If-Modified-Since", "Sat, 29 Oct 1994 19:43:31 GMT");
		httpObjPlay.send(null);
	}
}
function displayDataPlay(){
	if ((httpObjPlay.readyState == 4) && (httpObjPlay.status == 200)){
		VegasPlay.playNumNew = httpObjPlay.responseText;
		if(!VegasPlay.playNum){
			VegasPlay.playNum = VegasPlay.playNumNew;
			$("#news span").text(VegasPlay.playNum);
		} else if(VegasPlay.playNum !== VegasPlay.playNumNew){
			if(!VegasPlay.countupFlag) {
				VegasPlay.countupFlag = true;
				// カウントアップを始める
				VegasPlay.playNumCurrent = VegasPlay.playNum;
				// 1秒当たりのステップ数の設定
				VegasPlay.stepNum = Math.ceil((VegasPlay.playNumNew - VegasPlay.playNum) / 60);
				// 1秒毎に更新をかける
				VegasPlay.countupTimerId = setInterval(countUpPlayNum, 1000);
			}
		}
	}
}

// 新しく取得した値まで、1秒毎にカウントアップさせる
function countUpPlayNum(){
	if(VegasPlay.playNumCurrent < VegasPlay.playNumNew){
		VegasPlay.playNumCurrent = parseInt(VegasPlay.playNumCurrent) + parseInt(VegasPlay.stepNum);
		if(VegasPlay.playNumCurrent >= VegasPlay.playNumNew) {
			VegasPlay.playNum = VegasPlay.playNumCurrent = VegasPlay.playNumNew;
			VegasPlay.countupFlag = false;
			clearInterval(VegasPlay.countupTimerId);
		}
		$("#news span").fadeOut(50);
		$("#news span").text(VegasPlay.playNumCurrent);
		$("#news span").fadeIn(300);
	}
}

// 総合
function loadDataFileTotal(){
	var fName = 'total.js';
	httpObjTotal = createXMLHttpRequest(displayDataTotal);
	if (httpObjTotal){
		httpObjTotal.open("GET",fName,true);
		httpObjTotal.send(null);
	}
}
function displayDataTotal(){
	if ((httpObjTotal.readyState == 4) && (httpObjTotal.status == 200)){
		$("#total_ranking1-3").html(parseJSON(httpObjTotal.responseText, 1, 1, 3));
		$("#total_ranking4-25").html(parseJSON(httpObjTotal.responseText, 2, 4, 25));
		$("#total_ranking26-100").html(parseJSON(httpObjTotal.responseText, 3, 26, 100));
	}
}

// 大富豪
function loadDataFileDaifugou(){
	var fName = 'daifugou.js';
	httpObjDaifugou = createXMLHttpRequest(displayDataDaifugou);
	if (httpObjDaifugou){
		httpObjDaifugou.open("GET",fName,true);
		httpObjDaifugou.send(null);
	}
}
function displayDataDaifugou(){
	if ((httpObjDaifugou.readyState == 4) && (httpObjDaifugou.status == 200)){
		$("#daifugou_ranking1-3").html(parseJSON(httpObjDaifugou.responseText, 1, 1, 3));
		$("#daifugou_ranking4-25").html(parseJSON(httpObjDaifugou.responseText, 2, 4, 25));
		$("#daifugou_ranking26-100").html(parseJSON(httpObjDaifugou.responseText, 3, 26, 100));
	}
}


// 麻雀
function loadDataFileMahjong(){
	var fName = 'mahjong.js';
	httpObjMahjong = createXMLHttpRequest(displayDataMahjong);
	if (httpObjMahjong){
		httpObjMahjong.open("GET",fName,true);
		httpObjMahjong.send(null);
	}
}
function displayDataMahjong(){
	if ((httpObjMahjong.readyState == 4) && (httpObjMahjong.status == 200)){
		$("#mahjong_ranking1-3").html(parseJSON(httpObjMahjong.responseText, 1, 1, 3));
		$("#mahjong_ranking4-25").html(parseJSON(httpObjMahjong.responseText, 2, 4, 25));
		$("#mahjong_ranking26-100").html(parseJSON(httpObjMahjong.responseText, 3, 26, 100));
	}
}


// ソリティア
function loadDataFileSolitaire(){
	var fName = 'solitaire.js';
	httpObjSolitaire = createXMLHttpRequest(displayDataSolitaire);
	if (httpObjSolitaire){
		httpObjSolitaire.open("GET",fName,true);
		httpObjSolitaire.send(null);
	}
}
function displayDataSolitaire(){
	if ((httpObjSolitaire.readyState == 4) && (httpObjSolitaire.status == 200)){
		$("#solitaire_ranking1-3").html(parseJSON(httpObjSolitaire.responseText, 1, 1, 3));
		$("#solitaire_ranking4-25").html(parseJSON(httpObjSolitaire.responseText, 2, 4, 25));
		$("#solitaire_ranking26-100").html(parseJSON(httpObjSolitaire.responseText, 3, 26, 100));
	}
}

// ミニゲーム
function loadDataFileMinigames(){
	var fName = 'minigames.js';
	httpObjMinigames = createXMLHttpRequest(displayDataMinigames);
	if (httpObjMinigames){
		httpObjMinigames.open("GET",fName,true);
		httpObjMinigames.send(null);
	}
}
function displayDataMinigames(){
	if ((httpObjMinigames.readyState == 4) && (httpObjMinigames.status == 200)){
		$("#minigame_ranking1-3").html(parseJSON(httpObjMinigames.responseText, 1, 1, 3));
		$("#minigame_ranking4-25").html(parseJSON(httpObjMinigames.responseText, 2, 4, 25));
		$("#minigame_ranking26-100").html(parseJSON(httpObjMinigames.responseText, 3, 26, 100));
	}
}

// リバーシ
function loadDataFileReversi(){
	var fName = 'reversi.js';
	httpObjReversi = createXMLHttpRequest(displayDataReversi);
	if (httpObjReversi){
		httpObjReversi.open("GET",fName,true);
		httpObjReversi.send(null);
	}
}
function displayDataReversi(){
	if ((httpObjReversi.readyState == 4) && (httpObjReversi.status == 200)){
		$("#reversi_ranking1-3").html(parseJSON(httpObjReversi.responseText, 1, 1, 3));
		$("#reversi_ranking4-25").html(parseJSON(httpObjReversi.responseText, 2, 4, 25));
		$("#reversi_ranking26-100").html(parseJSON(httpObjReversi.responseText, 3, 26, 100));
	}
}


// ポーカー
function loadDataFilePoker(){
	var fName = 'poker.js';
	httpObjPoker = createXMLHttpRequest(displayDataPoker);
	if (httpObjPoker){
		httpObjPoker.open("GET",fName,true);
		httpObjPoker.send(null);
	}
}
function displayDataPoker(){
	if ((httpObjPoker.readyState == 4) && (httpObjPoker.status == 200)){
		$("#poker_ranking1-3").html(parseJSON(httpObjPoker.responseText, 1, 1, 3));
		$("#poker_ranking4-25").html(parseJSON(httpObjPoker.responseText, 2, 4, 25));
		$("#poker_ranking26-100").html(parseJSON(httpObjPoker.responseText, 3, 26, 100));
	}
}


// ブラックジャック
function loadDataFileBlackjack(){
	var fName = 'blackjack.js';
	httpObjBlackjack = createXMLHttpRequest(displayDataBlackjack);
	if (httpObjBlackjack){
		httpObjBlackjack.open("GET",fName,true);
		httpObjBlackjack.send(null);
	}
}
function displayDataBlackjack(){
	if ((httpObjBlackjack.readyState == 4) && (httpObjBlackjack.status == 200)){
		$("#blackjack_ranking1-3").html(parseJSON(httpObjBlackjack.responseText, 1, 1, 3));
		$("#blackjack_ranking4-25").html(parseJSON(httpObjBlackjack.responseText, 2, 4, 25));
		$("#blackjack_ranking26-100").html(parseJSON(httpObjBlackjack.responseText, 3, 26, 100));
	}
}


// ナンプレ
function loadDataFileNanpure(){
	var fName = 'nanpure.js';
	httpObjNanpure = createXMLHttpRequest(displayDataNanpure);
	if (httpObjNanpure){
		httpObjNanpure.open("GET",fName,true);
		httpObjNanpure.send(null);
	}
}
function displayDataNanpure(){
	if ((httpObjNanpure.readyState == 4) && (httpObjNanpure.status == 200)){
		$("#nanpure_ranking1-3").html(parseJSON(httpObjNanpure.responseText, 1, 1, 3));
		$("#nanpure_ranking4-25").html(parseJSON(httpObjNanpure.responseText, 2, 4, 25));
		$("#nanpure_ranking26-100").html(parseJSON(httpObjNanpure.responseText, 3, 26, 100));
	}
}


// 大会
function loadDataFileHot(){
	var fName = 'hot.js';
	httpObjHot = createXMLHttpRequest(displayDataHot);
	if (httpObjHot){
		httpObjHot.open("GET",fName,true);
		httpObjHot.send(null);
	}
}
function displayDataHot(){
	if ((httpObjHot.readyState == 4) && (httpObjHot.status == 200)){
		$("#taikai_ranking1-3").html(parseJSON02(httpObjHot.responseText, 1, 1, 3));
		$("#taikai_ranking4-25").html(parseJSON02(httpObjHot.responseText, 2, 4, 25));
		$("#taikai_ranking26-100").html(parseJSON02(httpObjHot.responseText, 3, 26, 100));
	}
}


// 大会履歴
function loadDataFileTaikaiHistory()
{
	if(window.taikaiHistoryController)
	{
		window.taikaiHistoryController.load();
	}
}


// JSONのデータを解析して表示
function parseJSON(jsData, type, start, end){
	var data = eval("("+jsData+")");
	var resultData = "";
	for(var i=(start-1); i<end; i++){
		var iRank    = data[i].rank;    // ランキング
		var iTwitter = data[i].twitter; // twitter名
		var iPimg    = data[i].pimg;    // アイコン
		if(type !== 3){
			resultData += "<dl class=\"rank_type"+type+"\" id=\"rank"+iRank+"\"><dt><img src=\""+iPimg+"\" width=\"48\" height=\"48\" /></dt><dd>"+iRank+"位<br /><a href=\"http://twitter.com/"+iTwitter+"\" target=\"_blank\">"+iTwitter+"</a></dd></dl>";
		} else {
			resultData += "<p class=\"rank_type"+type+"\" id=\"rank"+iRank+"\"><span class=\"rank\">"+iRank+"</span>位<br /><span class=\"name\"><a href=\"http://twitter.com/"+iTwitter+"\" target=\"_blank\">"+iTwitter+"</a></span></p>";
		}
	}
	return resultData;
}



function parseJSON02(jsData, type, start, end){
	var data = eval("("+jsData+")");
	var resultData = "";
	for(var i=(start-1); i<end; i++){
		var iRank    = data[i].rank;    // ランキング
		var iTwitter = data[i].twitter; // twitter名
		var iPimg    = data[i].pimg;    // アイコン
		var iPoint    = data[i].point;    // アイコン
		if(type !== 3){
			resultData += "<dl class=\"rank_type"+type+"\" id=\"rank"+iRank+"\"><dt><img src=\""+iPimg+"\" width=\"48\" height=\"48\" /></dt><dd>"+iRank+"位<br /><a href=\"http://twitter.com/"+iTwitter+"\" target=\"_blank\">"+iTwitter+"</a><br />"+iPoint+"ポイント</dd></dl>";
		} else {
			resultData += "<p class=\"rank_type"+type+"\" id=\"rank"+iRank+"\"><span class=\"rank\">"+iRank+"</span>位<br /><span class=\"name\"><a href=\"http://twitter.com/"+iTwitter+"\" target=\"_blank\">"+iTwitter+"</a></span><br />"+iPoint+"ポイント</p>";
		}
	}
	return resultData;
}

