/**
 *	Back-site Form Object met Ajax Validatie
 *	
 * 	
 *	@author Direct-effect <info@direct-effect.nl>
 *	@version 1.0
 *	@package bs_form
 */	

$.fn.BsForm = function(options){
	var defaults = {  
		check: true	// true | false ajax controle aan of uit zetten
	};  
	
	// extend options with the default options
	var options = $.extend(defaults, options);
	
	return this.each(function(){ 
		// ajax error handler voor dit formulier
		$(this).ajaxError(function(event, request, settings){
		   $(this).append("<li>An error occured while validating this form. </li><li>"+ settings.url +"</li>");
		});
		//var $form = $(this);
		
		
		if(options.check){
			var $checked = false;
			// als de check via ajax moet worden uitgevoerd, dan het formulier posten naar handleactions, met als parameter de ajax validatie
			$(this).submit(function(){
				if(!$checked){
					var $form_data = $(this).serialize();
					var $form_id = $(this).attr("id");

					$form_data = "validate=1&"+$form_data;
									
					$.post($(this).attr("action")+"?a="+timestamp(), $form_data, function(data){
						if(data.check){
							$checked = true;
							// formulier verzenden

							$("form#"+$form_id).submit();	
							return true;
						}else{
							// alle highlights in het formulier verwijderen
							$(".form-row.highlight").removeClass("highlight");
							// doorloop de highlights
							for ( keyVar in data.highlight_rows ) {								
								$("#row_"+data.highlight_rows[keyVar]).addClass("highlight");
							}
						}
					}, "json");
					return false;		
				}else{
					return true;	
				}
			});					  		
		}
		return this;
	});  
};
