function Players() {

	this.data = new Array();

	/**
	 * Push player in the stack of players
	 */
	this.push = function (player) {
		this.data.push(player);
	}

	/**
	 * Pop the last player in the stack of players
	 */
	this.pop = function() {
		var player = this.data.pop();
		if (player != undefined) {
			player.SceneDisposeTracking();
			delete player;
		}
	}

	/**
	 * Get Player according to its id
	 */
	this.getPlayer = function (id) {
		if (id == undefined) {
			return this.data[0];
		}
		for (var i = 0; i < this.data.length; i++) {
			if (this.data[i].getId() == id) {
				return this.data[i];
			}
		}
		return null;
	}

	/**
	 * Remove Player according to its id
	 */
	this.removePlayer = function (id) {
		if (id == undefined) {
			this.pop();
		}
		else {
			for (var i = 0; i < this.data.length; i++) {
				if (this.data[i].getId() == id) {
					this.data[i].SceneDisposeTracking();
					this.data.splice(i, 1);
					break;
				}
			}
		}
	}

	/**
	 * Get Length of the stack
	 */
	this.length = function () {
		return this.data.length;
	}
}

function SceneIntializedTracking(id) {
	return players.getPlayer(id).SceneIntializedTracking();
}

var players;
if (players == undefined)
	players = new Players();

