var doSubmit = false;
function initValidation(form){
	enableSubmit(form);
	
	$(form).find("input[type='submit']:first").click(function(e){
		$(".error").remove();
		validateForm(form);
	});
	
}

function validateForm(form){
var errors = "";
var result = false;
	$(form).find("input[rel^='validate']").each(function(){
		var checkType = $(this).attr("rel").split(":")[1];
		switch(checkType)
		{
			case "empty" : result = checkEmpty($(this).val()); break;
			case "email" : result = checkEmail($(this).val()); break;
			case "postcode" : result = checkPostcode($(this).val()); break;
		}
		if (!result)
		{
			$(this).addClass("text-error");
			
			var customError = $(this).attr("rel").split(":");
			if (customError.length > 2)
				errors += '<strong class="error">'+customError[2]+'</strong>';
			else			
				errors += '<strong class="error">'+$(this).attr("name")+' is niet correct ingevuld.</strong>';
		}
		else
			$(this).removeClass("text-error");
	});
	$(form).find("fieldset").prepend(errors);
	if (result)
		doSubmit = true;
		
	enableSubmit(form);
}

function checkEmail(address) {
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   if(reg.test(address) == false)
      return false;
	  
	 return true;
}
function checkEmpty(input) {
	if (input != "")
		return true;
		
	return false;
}

function checkPostcode(postcode) {

	var reg = /[1-9][0-9]{3} ?[a-zA-Z]{2}/;
	if (reg.test(postcode) == false)
		return false;
		
	return true;
}

function enableSubmit(form){
	$(form).submit(function(){ 
		if (doSubmit)
		{
			return true;
		}
		else
			return false; 
	});
}


