
Kwo.Comment = {

  "button": null,
  "toggled": false,

  "onAuthCallback": function() {
    if (Kwo.Comment.button) {
      Kwo.Comment.button.show();
    }
    Kwo.Comment.toggled = false;
    Kwo.exec("/comment/comment.compose", 
             {"item_key": $F("comment_item_key")},
             {"container": "comment_form"});
  },

  "onToggleCompose": function(element) {
    $("comment_items", "comment_form").invoke("toggle");
    if (Kwo.Comment.toggled === false) {
      Kwo.Comment.toggled = true;
      Kwo.exec("/comment/comment.compose", 
               {"item_key": $F("comment_item_key")},
               {"container": "comment_form"});
    }
  },

  "onSubmit": function(args) {
    if ($F("comment_content_input").empty()) {
      return ;
    }
    Kwo.Comment.button = $(args);
    if (Object.isElement(Kwo.Comment.button)) Kwo.Comment.button.hide();
    $("comment_content").value = $F("comment_content_input");
    $("comment_offset").value = 0;
    Kwo.exec("/sys/item.comment", args, {"callback": Kwo.Comment.onCallback});
  },

  "onCallback": function(h) {
    Kwo.Comment.toggled = false;
    if (h["error"] >= 1) {
      Kwo.error(h["result"]["msg"]); 
    }
    else {
      Kwo.Comment.refresh();
    }
    document.location.href = document.location.href.replace(/#add_comment$/, '');
    Kwo.Comment.button.show();
  },

  "refresh": function() {
    Kwo.exec("/comment/comments", 
             {"item_key": $F("comment_item_key"), "offset": $F("comment_offset")},
             {"container": "kwo-comment"});
  },

  "switchPage": function(num) {
    if (num == $F("comment_offset")) return ;
    $("comment_offset").value = num;
    Kwo.Comment.refresh();
  }

};