function Nick(data) {
    data = ("" + data).split(">");
    var name = data[0];
    var id = data[1];
    this.getId = function() { return id; };
    this.getName = function() { return name; };
}

function NickList() {
    var items = new Array();

    this.update = function(data) {
        if (data.indexOf("<>") !== -1) {
            removeNick(data.substring(2, data.length));
        }
        else {
            if (data.indexOf(">>") !== -1) {
                items = new Array();
                data = ("" + data).split(">>");
                for (var i = 0; i < data.length; i++) {
                    add(new Nick(data[i]));
                }
                setTitle("Welcome to the live chat!");
            }
            else {
                var nick = new Nick(data);
                setTitle(nick.getName() + " has joined.");
                add(nick);
            }
        }
        printList();
    };

    function removeNick(id) {
        for (var i = 0; i < items.length; i++) {
            if (items[i].getId() === id) {
                document.title = items[i].getName() + " has left.";
                remove(i);
                return;
            }
        }
    }

    function printList() {
        var nicks = document.getElementById("nicks");
        nicks.innerHTML = ""
        for (var i = 0; i < items.length; i++) {
            nicks.innerHTML += "<nobr>" + items[i].getName() + "<br \/><\/nobr>";
        }
    }

    function remove(index) {
        for (var i = index; i < items.length; i++) {
            if (i < items.length - 1) {
                items[i] = items[i + 1];
            }
            else {
                items.pop();
            }
        }
    }

    function add(item) { items[items.length] = item; }
}