
function prepareMultiFormValidation(steps, url, id) {


	$.fn.wpcf7NotValidTip2 = function(message) {
		return this.each(function() {
			
			var into = $(this);
			
			into.append('<span class="wpcf7-not-valid-tip">' + message + '</span>');
			$('span.wpcf7-not-valid-tip').mouseover(function() {
				$(this).fadeOut('fast');
			});
			into.find(':input').mouseover(function() {
				into.find('.wpcf7-not-valid-tip').not(':hidden').fadeOut('fast');
			});
			into.find(':input').focus(function() {
				into.find('.wpcf7-not-valid-tip').not(':hidden').fadeOut('fast');
			});
		});
	};

	var validated = false;
	
	
	function checkStep(fields, tab) {
		var params = $('.wpcf7-form').serializeArray();
		
		
		$.each(params, function(i) {
			 if (this['name'] == '_wpcf7') {
			   params.push({name: '_custom_id', 'value': this['value']});
			   params.splice(i, 1);
			} else if(this['name'] == '_wpcf7_unit_tag') {
				params.splice(i, 1);
			}
		 
		});
		
		params.push({value: 1});
		
		url = '/jbi/';
		
		$.post(url, params, function(result)
		{
	
			var status = true;
			
			$('.wpcf7-not-valid-tip').remove();
			
			$.each(result.invalids, function(i, el) {
				
				var field = el.into.split('.').pop();
				
				$.each(fields, function(j, fieldElement) {
					
					if (field == fieldElement) {
						$('#tabs').find(el.into).wpcf7NotValidTip2(el.message);
				
						status = false;	
					}
				});
			});
			
			if (status) {
				validated = true;
				$tabs.tabs('select', tab);
				validated = false;
			}
	
		});
	
	}
	
	var $tabs = $( id ).tabs();
	
	$(id).tabs({
	    select: function(event, ui) {
	    	
	    	var step = ui.index;
	    	
	    	if ($tabs.tabs('option', 'selected') > step) {
	    		return true;
	    	}
	    	
	    	if (!validated)
		  		checkStep(steps[step], step);
			return validated;
	    }
	});
	
	$('.goBack').click(function(e) {
	    
		e.preventDefault();
		
		$tabs.tabs('select', parseInt($('.ui-state-active').index())-1);
		
	});
		
	$('.btnNext').click(function(e) {
	    
		e.preventDefault();
		$tabs.tabs('select', parseInt($(this).attr('id').split('-')[1]));
	});

};
