var messages = messages || {};

(function() {

    messages.messageList = $("#messages");

    messages.options = {
        clearSpeed: 400,
        clearTimeout: 2500
    };

    messages.clear = function() {
        var currentMessages = messages.messageList.children();
        setTimeout(function() {
            if (messages.options.clearSpeed) {
                currentMessages.slideUp(messages.options.clearSpeed, function() {
                    currentMessages.remove();
                });
            } else {
                currentMessages.remove();
            }
        }, messages.options.clearTimeout);
    }

    messages.refresh = function() {
        $.ajax({
            dataType: 'json',
            success: function(data) {
                $.each(data, function(i, obj) {
                    var item = $('<li />');
                    if (obj.tags) {
                        item.addClass(obj.tags);
                    }
                    item.html(obj.message);
                    messages.messageList.append(item);
                });
                messages.clear();
            },
            url: '/_api/inbox/'
        });
    }

    if (messages.messageList.length) {
        $(function() {
            messages.clear();
        });
    } else {
        $(function() {
            messages.messageList = $('<ol id="messages" />');
            $(document.body).prepend(messages.messageList);
        });
    }

})();
