
if (!Kwo) var Kwo = {};

Kwo.Form = {

  "button": false,

  "onCallback": function(h) { 
    Kwo.Form.button.enable();
    var id = h["result"]["form_id"], fields = h["result"]["fields"];
    if (h["error"] >= 1) {
      if (!("fields" in h["result"]) ||
          !("form_id" in h["result"])) return alert(h["result"]["msg"]);
      $("kwo-form-" + id + "-errors").setValue(fields.length);
      for (var i = 0; i < fields.length; i++) {
        $("kwo-form-" + id + "-labels-" + fields[i]).addClassName("warn");
      }
      return ;
    }
    $("kwo-form-" + id + "-errors").setValue(0);
    $("kwo-form-" + id + "-fields").toggle();
    if ($("kwo-form-" + id + "-confirmation")) {
      $("kwo-form-" + id + "-confirmation").toggle();
    }
  },

  "onSubmit": function(args) {
    var id = $F($(args).select("input[name=id]")[0]);
    Kwo.Form.button = $(args).select("input[type=submit]")[0];
    Kwo.Form.button.disable();
    if ($F("kwo-form-" + id + "-errors") >= 1) {
      $$("#kwo-form-" + id + " LABEL").invoke("removeClassName", "warn");
    }
    Kwo.exec("/form/form.add_answer", 
             $("kwo-form-" + id), 
             {"toggle": "kwo-form-throbber-" + id,
              "callback": Kwo.Form.onCallback});
  }

};

if (("calllbacks" in Kwo) && ("form" in Kwo["calllbacks"])) {
   Kwo["calllbacks"]["form"].call(this);
}
