(function($) {
	$.fn.formation = function(options) {
		var $form = $(this);
    
    successCallback = options.success ? options.success : function() {}
    errorCallback = options.error ? options.error : function() {}
    
    options.success = onSuccess
    options.error = onError
    
		if(window.tinyMCE) {
			$form.bind('form-pre-serialize', function() {
				tinyMCE.triggerSave();
			});
		}
		
		if($.fn.inlineLabel) {
  	  $form.find('input.inline-label, textarea.inline-label').inlineLabel();
		}
		$form.ajaxForm.apply(this, arguments);

		return $form;
		
		function onSuccess(response) {
		  successCallback(response);
		  
		  if(!options.no_flash) {
		    // flashMessages(response.flash);
				// highlightFlashMessages();
		  }
		  
		  if(!options.no_clear) {
		    // $form.clear();
		  }
		  
		  if(!options.no_reset_errors) {
		    // $form.clearErrors();
      }
			// mainLoader();
		}
		
		function onError(response) {
		  errorCallback(response);
		  
		  if(!options.no_errors) {
		    $form.errors(response);
		  }
		}
	}
})(jQuery);
