(function(){
  var FormResponse = {
    initialize: function() {
      this.body = $$("body").first();

      this.bindEvents();
    },

    bindEvents: function() {
      this.body.on("click", ".widget .form button", this.formSubmitClickEvent.bind(this));
    },

    formSubmitClickEvent: function(event) {
      event.stop();
      var form = event.element().up("form");
      var para = form.serialize() + "&authenticity_token=" + $$("meta[name='csrf-token']").first().content;

      var request = new Ajax.Request(form.action, {
        method: form.method,
        parameters: para,
        onSuccess: function() {this.formResponse(form);}.bind(this)
      });
    },

    formResponse: function(form) {
      var url = "/" + form.down("#return_method").value;
      var xhr = form.down("#xhr").value;
      if (xhr == "false") {window.location = url; return;}
      form = form.up(".form");
      form.addClassName("results");

      var request = new Ajax.Request(url, {
        method: "get",
        onSuccess: function(t) {form.update(t.responseJSON.chart_url + t.responseJSON.link);}
      });
    }
  };

  document.observe("dom:loaded", function(){
    if($("new_form_reponse")) {return;}
    FormResponse.initialize();
  });
})();

