WSID.Messages = {
  DEFAULT_TYPE: 'info',
  messages: [],
  add: function(text, type) {
    var message = {
      text: text,
      type: (_.isUndefined(type)) ? this.DEFAULT_TYPE : type
    };
    this.messages.push(message);
    WSID.Event.trigger('message', message);
    return true;
  },
  addMessage: function(message) {
    var message_to_add = {
      text: message.text,
      type: (_.isUndefined(message.type)) ? this.DEFAULT_TYPE : message.type
    };
    return this.add(message_to_add.text, message_to_add.type);
  },
  all: function() {
    return (_.isArray(this.messages)) ? this.messages : [];
  },
  delete: function(id) {
    return this.messages.splice(id, 1);
  },
  display: function() {
    _.each(this.all(), function(message) {
      $('#message')
        .tmpl(message)
        .hide()
        .insertBefore('#main')
        .slideDown('slow');
    });
  }
};

$(document).ready(function() {
  WSID.Messages.display();
});
