var ElfShoutbox = function () {
    var chat = null;
    var input = null;
    var form = null;
    var server = "";

    var lid = 0;
    var idlist=[];
    var count_lastid = 10;
    function addidlist(id)
    {
        idlist.push(id);
        if(idlist.length > count_lastid)idlist.shift();
    }

    function isidlist(id)
    {
        var ch = false;
        for(var i in idlist)
            if(idlist[i] == id)
                ch=true;
        return ch;
    }

    function Init(_chat, _form, _input, _server) {
        chat = $(_chat);
        form = $(_form)
        input = $(_input);
        server = _server;

        form.submit(function () {
            Send();
            return false;
        });

        ElfShoutbox.Load();
        setInterval(ElfShoutbox.Load, 2000);
    }

    function Send() {
        $.post(server, {
            act: "add",
            text: input.val()
        }, function (res) {
            if(res == "mat")
            {
                alert("Сообщение не отправлено. В сообщении был обнаружен мат.");
            }
            else if(res == "ban")
            {
                alert(lang_toomany);
            }
            ElfShoutbox.Load();
        });
        input.val("");
    }
    function Load() {
        $.getJSON(server, {
            act: "load",
            last: lid,
            rand: (new Date()).getTime()
        },
        function (res) {
            for(var i in res.msg)
                if(!isidlist(res.msg[i]['id']))
                {
                    chat.append("<span>&raquo; " + res.msg[i]['text'] + "</span>");
                    chat.scrollTop(chat.get(0).scrollHeight);
                    lid = res.msg[i]['id'];
                    addidlist(lid);
                }
        });
    }

    return {
        Init: Init,
        Load: Load
    };
}();

$(document).ready(function () {
    ElfShoutbox.Init(".elfsb_chat", ".elfsb_m form", ".elfsb_m input", "elfshoutbox/elfshoutbox.php");
});