// JavaScript Document

function OnLoadUserTournaments(res)
{
	if (user == null) return; //user has disconnecting while waiting webservice res
	
	if ((res != null) && (res.length > 0))	
	{
		user.tournaments = res;
	}
	else
	{
		user.tournaments = new Array();
	}
	
	LoadNextTournament();
}

function LeaveTournament()
{
	if (document.getElementById("NextTournamentWindow"))
	{
		document.body.removeChild(document.getElementById("NextTournamentWindow"));
	}
	
	GoToDiv('MAIN_ACCEUIL_DIV', null);
}

function OnTournamentClick()
{
	CreateAndOpenDiv("TournamentMenu", null, 0, 200, 0, 0, OnTournamentMenu, document.getElementById("MAIN_TOURNAMENT_DIV"));
}

function OnTournamentMenu()
{
	var html = new Array();
	html.push("<table onclick=\"CancelBubble(event);\" style=\"cursor:pointer;\" cellpadding=0 cellspacing=0>");
	html.push("<tr><td><img src=\"img/menu/01.png\"></td><td colspan=3 style=\"background:url('img/menu/02.png');font-size:1px\">&nbsp;</td><td><img src=\"img/menu/03.png\"></td></tr>");
	html.push("<tr><td style=\"background:url('img/menu/04.png');font-size:1px\">&nbsp;</td><td colspan=3 style=\"background:url('img/menu/05.png')\" align=center>");
	
	html.push("<table style=\"cursor:pointer\"><tr><td class=\"TdWhite\" style=\"cursor:pointer\" onclick=\"OpenNextTournament(event);\">Tournois&nbsp;&agrave;&nbsp;venir</td></tr><tr><td align=center><img src=\"img/menu/sep.png\"></td></tr><tr><td class=\"TdWhite\" style=\"cursor:pointer\">Mes&nbsp;tournois&nbsp;en&nbsp;cours</td></tr><tr><td align=center><img src=\"img/menu/sep.png\"></td></tr><tr><td class=\"TdWhite\" style=\"cursor:pointer\">Tournois&nbsp;pass&eacute;s</td></tr></table>");
	
	html.push("</td><td style=\"background:url('img/menu/06.png');font-size:1px\">&nbsp;</td></tr>");
	html.push("<tr><td><img src=\"img/menu/07.png\"></td><td style=\"background:url('img/menu/08.png');font-size:1px\">&nbsp;</td><td style=\"width:10px\"><img src=\"img/menu/09.png\"></td><td style=\"background:url('img/menu/08.png');font-size:1px\">&nbsp;</td><td><img src=\"img/menu/10.png\"></td></tr></table>");
	
	var div = document.getElementById("TournamentMenu");
	div.style.border = "";
	div.innerHTML = html.join("");
}

function OpenNextTournament(evt)
{	
	var content = CreateWindow("NextTournamentWindow", "Tournois &agrave; venir", "CloseNextTournamentPopup()", null, 500, 250, "#c0c0c0");
	if (content == null) return;
	
		content.style.backgroundColor = "#c0c0c0";
		content.vAlign = "top";
		
		var div = document.createElement("div");
		div.style.height = "250px"; div.style.width = "100%";
		div.style.overflowY = "auto"; 
		
		var table = document.createElement("table"); table.cellSpacing = 0; table.cellPadding = 2;
			table.style.width = "100%"; table.style.height = "100%";
		var tr = table.insertRow(-1);
		var td = tr.insertCell(-1);
			td.style.backgroundColor = "#ebebeb"; td.style.height = "40px";
			var select = document.createElement("select"); 
			select.id = "Select_NextTournament_Game";
			select.onchange = LoadNextTournament;
			//for (var i = 0; i < roomNames.length; i++)
			for (var k in gameFlash)
			{
				var opt = new Option(gameFlash[k].name, k);
				select.options[select.options.length] = opt;
			}
			
		td.style.paddingLeft = "5px";
		td.appendChild(document.createTextNode("Jeu : "));
		td.appendChild(select);
		td.align = "left";
		
		var tr = table.insertRow(-1);
		var td = tr.insertCell(-1); td.id = "Main_NextTournament_Panel"; td.vAlign = "top"; td.align = "center";
		td.style.backgroundColor = "#ebebeb"; td.colSpan=2;
		td.innerHTML = "Chargement en cours, veuillez patienter";
		td.style.height = "100%";
		div.appendChild(table);
		
	content.appendChild(div);
		
	LoadNextTournament();
}

function CloseNextTournamentPopup()
{
	var popup = document.getElementById("NextTournamentWindow");
	if (popup)
	{
		document.body.removeChild(popup);	
	}
}

function LoadNextTournament()
{
	var gameId = document.getElementById("Select_NextTournament_Game");
	if (!gameId) return;
	
	gameId.disabled = true;
	

	//Load next tournaments
	var params = new Array();
 	params.push(new WSParams("gameId", parseInt(gameId.value, 10)));
	params.push(new WSParams("state", 1));
   	AjaxRequest("sawale_ws.php", OnLoadNextTournament, "GetNextTournaments", params, "robatmac/Awale");
}

function OnLoadNextTournament(res)
{
	var td = document.getElementById("Main_NextTournament_Panel");
	var gameId = document.getElementById("Select_NextTournament_Game").value;
	
	if ((res != null) && (res.length > 0))
	{
		var html = new Array();
		html.push("<table style=\"width:100%;margin:2px;padding:2px;padding-top:0px\" cellpadding=1 cellspacing=1 bgcolor=\"#666666\">");
		html.push("<tr><td class=Title1C style=\"height:20px;width:100%\">&nbsp;Date&nbsp;</td><td class=Title1C>&nbsp;Mise&nbsp;</td><td class=Title1C>&nbsp;Classement&nbsp;mini&nbsp;</td><td class=Title1C>&nbsp;Nb&nbsp;inscrits&nbsp;</td><td class=Title1C>&nbsp;Etat&nbsp;</td><td class=Title1C>&nbsp;</td></tr>");
		
		for (var i = 0; i < res.length; i++)
		{
			var id = res[i]["id"];
			var dt = res[i]["startDate"].replace(new RegExp(" "), "&nbsp;&agrave;&nbsp;");
			html.push("<tr tournamentId=\""); html.push(id); html.push("\"><td class=UserHistory nowrap align=left>&nbsp;le&nbsp;"); html.push(dt); html.push("</td>");
			html.push("<td class=UserHistory align=right>"); html.push(res[i]["mise"]); html.push("&nbsp;</td>");
			
			var minClassement = (parseInt(res[i]["miniClassement"], 10) == 0) ? "-" : parseInt(res[i]["miniClassement"]);
			html.push("<td class=UserHistory align=center>"); html.push(minClassement); html.push("</td>");
			html.push("<td class=UserHistory align=center>"); html.push(res[i]["nbPlayers"]); html.push("</td>");
			
			var isAlreadySuscribed = false;
			if (user != null)
			{
				for (var j = 0; j < user.tournaments.length; j++)
				{
					if (user.tournaments[j]["tournamentId"] == res[i]["id"])
					{
						isAlreadySuscribed = true;
						break;
					}
				}
			}
			
			var bgColor = "red";
			
			if (parseInt(res[i]["state"], 10) == 1) 
			{
				bgColor = (isAlreadySuscribed) ? "yellow" : "green";
			}
		
			
			html.push("<td class=UserHistory align=center><div style=\"width:10px;height:10px;border:1px solid black;font-size:1px;background:"); html.push(bgColor); html.push(";\">&nbsp;</div></td>");
			
			
			
			var disabled = (((user == null) || (user.anonymous == true)) || (isAlreadySuscribed));
			
			var alt = "Participer";
			if ((user == null) || (user.anonymous == true)) alt = "Vous devezêtre identifié pour participer à un tournois";
			else if (isAlreadySuscribed) alt = "Vous êtes inscrit à ce tournois";
			
			html.push("<td class=UserHistory><button ");
			if (disabled) { html.push("disabled=\""); html.push(disabled); html.push("\""); }
			
			html.push(" title=\""); html.push(alt); html.push("\" onclick=\"RegisterOnTournament(this, " + id + ", " + gameId + ");\">Participer</button></td></tr>");
			
		}
	
		
		html.push("</table>");
		
		td.innerHTML = html.join("");
	}
	else
	{
		td.innerHTML = "Aucun tournois n'est programm&eacute; pour ce jeu";
	}
	
	var select = document.getElementById("Select_NextTournament_Game");
	select.disabled = false;
}

function RegisterOnTournament(bt, id, gameId)
{
	bt.disabled = true;
	getFlash().TournamentRegister(id, gameId);
}

function TournamentRegisterResponse(id, res, gameId)
{
	res = parseInt(res, 10);
	
	//Get tr
	var td = document.getElementById("Main_NextTournament_Panel");
	if (!td) return;
	
	var table = td.firstChild;
	
	for (var i = 0; i < table.rows.length; i++)
	{
		if (table.rows[i].getAttribute("tournamentId") == id)
		{
			var bt = table.rows[i].childNodes[5].firstChild;
			var state = table.rows[i].childNodes[4].firstChild;
			var nbUsers = table.rows[i].childNodes[3];
		
			var bgColor = "green";
			var disabled = false;
			var alt = "";
			
			switch (res)
			{
				case 0 :
					var obj = new Object();
					obj["tournamentId"] = id;
					obj["gameId"] = gameId;
					user.tournaments.push(obj);
					bgColor = "yellow";
					disabled = true;
					alt = "Vous êtes inscrit à ce tournois";
					nbUsers.innerHTML = parseInt(nbUsers.innerText, 10) + 1;
					break;
				case -2 :
					bgColor = "red";
					disabled = true;
					alt = "Les inscriptions pour ce tournois sont clôturées";
					break;
				case -4 :
					bgColor = "red";
					disabled = true;
					alt = "Votre crédit n'est pas suffisant pour vous inscrire à ce tournois";
					break;
				case -9 :
					bgColor = "red";
					disabled = true;
					alt = "Votre classement n'est pas suffisant pour vous inscrire à ce tournois";
					break;
				default :
					alert("Erreur lors de l'inscription. Veuillez réessayer ultérieurement " + res);
					break;
			}
			
			bt.disabled = disabled;
			bt.title = alt;
			state.style.backgroundColor = bgColor;
			
			break;
		}
	}
}

/************ SERVER EVENTS ******************/
function OnMatchWaiting()
{
	alert("Votre prochain match est pret a debuter. Veuillez vous mettre pret dans le menu tournois en cours");	
}

function OnTournamentWin(gameId, tournamentId)
{
	alert("Vous avez gagné le tournois " + tournamentId + " d'" + gameFlash[gameId].name);	
}