//attached to a form element
//takes the value of the form, serializes them and sends them as $_POST to the url

(function($){

	$.fn.submitAjaxForm = function (settings){

		var settings = $.extend({
				self		: false,
				content 	: false,
				status_ele	: false,
				loading 	: true,
				success		: function() {},
				failure		: function() {},
				callback	: function() {}
			}, settings);
		
		return this.each(function(){

console.log(settings);

			$$ = $(this),
			$action = $$.attr('action');

console.log('action :', $action);
			// Plugin Code Here
			$$.submit(function(e){
	
				e.preventDefault(); 
				
				if (settings.loading) $$.loading();
				
				var editserialize = $$.serialize();
					editserialize = decodeURIComponent(editserialize.replace(/\+/g, " "))
					
				var exploded = editserialize.split('&');
				
				var $data = new Object();
				
				for (var i in exploded ){				
					var form_item = exploded[i].split('=');			
					$data[form_item[0]] = form_item[1];
				}
			
			
				var $ajax = {
						ajax: 1
						};

				$.extend( $data, $ajax );
			
				console.log($data);
				console.log(settings);
				console.log(siteURL + settings.url);
			
				$.ajax({
					type		: 'POST',
					url			: $action,
					data		: $data,
					dataType	: "html",
					success		: function (data){		
						$(settings.content).html(data);
	
//	console.log(data);
						if (settings.status_ele && $(settings.status_ele).data('status') == true){
							console.log("form status: true");
							
							settings.success.call(this);
						}
						if (settings.status_ele && $(settings.status_ele).data('status') == false){
							console.log("form status: false");
							
							settings.failure.call(this);
						} 	

						$(settings.self).submitAjaxForm(settings);
						
						if (settings.loading) $$.loading('hide');
						
						settings.callback.call(this);
					}
				});				
			});
		});
	};
})(jQuery);

