server/www/room.js

41 lines
874 B
JavaScript

function Room(domElem, lib) {
var players = {};
var logins = [];
return {
populate: populate,
enter: enter,
leave: leave
};
function Player(name) {
var player = {
dom: document.createElement('li'),
position: null
};
player.dom.textContent = name;
return player;
}
function populate(playersList) {
lib.clearElement(domElem);
for(var i = 0; i < playersList.length; i++) {
enter(playersList[i].login || "anon");
}
}
function enter(name) {
var player = Player(name);
players[name] = player;
player.position = lib.insert(name, logins);
beforePlayer = logins[player.position];
domElem.insertBefore(player.dom, beforePlayer && players[beforePlayer].dom);
logins.splice(player.position, 0, name);
}
function leave(name) {
domElem.removeChild(players[name].dom);
logins.splice(players[name].position, 1);
}
}