// ajax_submit.js
//
// Handle basic AJAX form submissions. 
//
// Usage:
//   $("#myform").ajaxSubmit({
//     on_success: function(r) {
//       ...
//     }
//   });

(function($) {
  $.fn.ajaxSubmit = function(options) {
    var settings = {
      on_success: undefined,
      on_error: undefined,
      on_start: function() {},
      dataType: "script"
      
    };
    if(options) { $.extend(settings, options); };
    element = this; // this now references the object which called ajaxSubmit.

    function _initialize() {
      _set_submit("#"+this.id);
      return false;
    }

    function _set_submit(form) {
      settings.on_start();

      jQuery.ajax({
        type: "POST",
        data: $(form).serialize(),
        url: $(form).attr("action"),
        timeout: 20000,
        error: settings.on_error,
        success: settings.on_success,
        dataType: settings.dataType
      });
      return false;
    }

    return this.submit(_initialize);
  };
})(jQuery);

