// JavaScript Document

function UsersOnRoom(users)
{
	//Sort by roomId to avoid work
	var hash = new Object();
	
	for (var i = 0; i < users.length; i++)
	{
		if (!hash[users[i].RoomId])
			hash[users[i].RoomId] = new Array();
		
		hash[users[i].RoomId].push(users[i]);
	}
	
	for (var k in hash)
	{
		for (var j = 0; j < listeningGames.length; j++)
		{
			if (listeningGames[j].gameId == k)
			{
				try {
					listeningGames[j].popup.userOnRoom(hash[k]);
				}
				catch(e) {
				}
				
				break;
			}
		}	
	}
}

function OnMessageOnRoom(msgFrom, roomId, msg)
{
	for (var j = 0; j < listeningGames.length; j++)
	{
		if (listeningGames[j].gameId == roomId)
		{
			try {
				listeningGames[j].popup.pop_OnMessageOnRoom(msgFrom, msg);
			}
			catch(e) {
			}
				
			break;
		}
	}
}

function RemoveRoomsFromArray(roomId)
{
	var buffer = new Array();
	for (var i= 0; i < listeningGames.length; i++)
	{
		if (listeningGames[i].gameId != roomId) buffer.push(listeningGames[i]);
	}
	
	listeningGames = buffer;
}

function CreateRoomResult(gameId, res)
{
	for (var j = 0; j < listeningGames.length; j++)
	{
		if (listeningGames[j].gameId == gameId)
		{
			try {
				listeningGames[j].popup.pop_CreateRoomResult(res);
			}
			catch(e) {
			}
				
			break;
		}
	}
}

function SetRoomsList(roomId, tab)
{	

	for (var j = 0; j < listeningGames.length; j++)
	{
		if (listeningGames[j].gameId == roomId)
		{
			try {
				listeningGames[j].popup.pop_SetRoomsList(tab);
			}
			catch(e) {
			}
				
			break;
		}
	}
}

function RoomDestroyed(pl)
{	
	for (var j = 0; j < listeningGames.length; j++)
	{
		if (listeningGames[j].gameId == pl.GameId)
		{
			try {
				listeningGames[j].popup.pop_RoomDestroyed(pl);
			}
			catch(e) {
			}
				
			break;
		}
	}
}

function RoomStateChange(room)
{
	for (var j = 0; j < listeningGames.length; j++)
	{
		if (listeningGames[j].gameId == room.GameId)
		{
			try {
				listeningGames[j].popup.pop_RoomStateChange(room);
			}
			catch(e) {
			}
				
			break;
		}
	}
}

function OnUserScoreRoomChange(pl) {
}

function JoinRoomResult(val, gameId, roomName, roomUid, computer)
{
	for (var j = 0; j < listeningGames.length; j++)
	{
		if (listeningGames[j].gameId == gameId)
		{
			try {
				if (!computer || (computer == "false") || (typeof(computer) == "undefined"))
					listeningGames[j].popup.pop_JoinRoomResult(val, roomName, roomUid);
				else
					listeningGames[j].popup.PlayComputerResult(roomUid);
			}
			catch(e) {
			}
				
			break;
		}
	}
}

function PrivateMessageOnRoom(msgFrom, roomId, roomUid, msg)
{
	for (var j = 0; j < listeningGames.length; j++)
	{
		if (listeningGames[j].gameId == roomId)
		{
			try {
				listeningGames[j].popup.pop_PrivateMessageOnRoom(msgFrom, roomUid, msg);
			}
			catch(e) {
			}
				
			break;
		}
	}
}

function ShowRoomResult(res, roomId, roomName, roomUid)
{
	for (var j = 0; j < listeningGames.length; j++)
	{
		if (listeningGames[j].gameId == roomId)
		{
			try {
				listeningGames[j].popup.pop_ShowRoomResult(res, roomName, roomUid);
			}
			catch(e) {
			}
				
			break;
		}
	}
}

function MessageForRoom(roomId, roomUid, xml)
{	
	for (var j = 0; j < listeningGames.length; j++)
	{
		if (listeningGames[j].gameId == roomId)
		{
			try {
				listeningGames[j].popup.pop_MessageForRoom(roomUid, xml);
			}
			catch(e) {
			}
				
			break;
		}
	}
}

function OnUserAskAbandon(roomId, roomUid, abandon)
{	
	for (var j = 0; j < listeningGames.length; j++)
	{
		if (listeningGames[j].gameId == roomId)
		{
			try {
				listeningGames[j].popup.pop_OnUserAskAbandon(abandon);
			}
			catch(e) {
			}
				
			break;
		}
	}
}