
if (!Kwo) var Kwo = {};

Kwo.Form = {

  "button": false,

  "onCallback": function(h) { 
    Kwo.Form.button.enable();
    var id = h["result"]["form_id"];
    var 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();
    }
    window.scroll(0,0);
  },

  "onSubmit": function(args) {
    try {
      var id = $F($(args).select("input[name=formid]")[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.submission", 
               $(args),
               {"toggle": "kwo-form-throbber-" + id,
                "callback": Kwo.Form.onCallback});
    } catch (e) { /* alert(e); */ }
  }
  
};

if (("calllbacks" in Kwo) && ("form" in Kwo["calllbacks"])) {
   Kwo["calllbacks"]["form"].call(this);
}