$.fn.extend({
	formajaxer : function(f, s) {
		return this.each(function() {
			var bu = $(this);
			bu.submit(function(e) {
				e.preventDefault();
				$.ajax({
					type : bu.attr("method"),
					url : bu.attr("action"),
					data : bu.serialize(),
					success : function(data) {
						if( typeof f == "function") {
							f(bu.serializeObject())
						} else if( typeof f == "object") {
							f.html(data);
							s(data);
						}
					}
				});
			})
		})
	}
});

$.fn.extend({
	serializeObject: function() {
		var obj = {};
		$.each( this.serializeArray(), function(i,o){
		  var n = o.name,
			v = o.value;
			obj[n] = obj[n] === undefined ? v
			  : $.isArray( obj[n] ) ? obj[n].concat( v )
			  : [ obj[n], v ];
		});			
		return obj;
	}
});

