if (!Kwo) var Kwo = {};

Kwo.Inbox = {
  
  Message: { 

    onComment: function(elt) {
      Kwo.exec("/account/social/message.reply", elt, 
               {callback:Kwo.Inbox.Message.onCommentCallback, disable:true});
    },

    onCommentCallback: function(res) {
      if (Kwo.hasError(res)) {
        return Kwo.error(res);
      }
      Kwo.Inbox.Message.view(res["result"]["id"]);
    },

    onDelete: function(elt) {
      Kwo.exec("messages.delete", $(elt).up("FORM"), 
               {callback:Kwo.Inbox.display, confirm:elt});
    },

    onMarkRead: function(args) {
      Kwo.exec("messages.mark.read", $(elt).up("FORM"), 
               {callback:Kwo.Inbox.display});
    },
    
    onMarkUnread: function(elt) {
      Kwo.exec("messages.mark.unread", $(elt).up("FORM"), 
               {callback:Kwo.Inbox.display});
    },
    
    view: function(id) {
      Kwo.go("message", {"id": id, 
                         "inbox_offset": window.inbox_offset || 0});
    }

  },
  
  display: function(res) {
    if (Kwo.hasError(res)) return Kwo.error(res);
    Kwo.go("/account/social/inbox", {offset:window.inbox_offset});
  },

  onSelect: function(elt) {
    var type = $F(elt);
    if (type.length <= 1) return;
    $(elt.form).select("[type=checkbox]").each(function(input) {
      if (type == "none" || type == "all") {
        input.checked = type == "all";
      }
      else {
        input.checked = input.hasClassName("message-" + type);
      }
    });
  }

};
