function validateForm() {
	// validate the comment form when it is submitted
	$("#genericform").validate({
		onsubmit: false,
		
		//the class for valid and invalid messages
		errorClass: "invalid",
		success: function(label, element) {
			if ($(element).prev() && $(element).prev().attr("class").indexOf("infoBlock_2") > -1) {
				$(element).prev().unbind();
				if ($("#tooltip").length > 0) {
					$("#tooltip").unbind();
					$("#tooltip").hide();
				}
				$(element).prev().remove();
			}
		},
					
		//the placement of the errormessages
		errorPlacement: function(error, element) {
			if ($(error) != null && $(error).text() != null && $(error).text() != "") {
				showErrorTooltip(element, $(error).text());
			}
		}
	});
	
	
	//custom validation methods
	function stepCheck(value, element, param) {
		if ($(element).attr("step") != null) {
			return value % param == 0;
		}
	}
	
	function percentage(value, element) {
		return /^\d*\,?\d+$/.test(value);
	}
	
	
	function depositCheck(value, element, param) {
		var depositAmount = $($(element).attr("deposit")).attr("value");
		if (depositAmount != null) {
			return this.optional(element) || value >= param;
		} else {
			return this.optional(element) || value >= param + depositAmount;
		}
	}
	
	function selectValidator(value, element) {
		if (value == '-1') {
			return false;
		}
		return true;
	}
	
	//register the custom validator to the validator object
	$.validator.addMethod("step", stepCheck, jQuery.format("U moet een meervoud van {0} invoeren."));
	$.validator.addMethod("percentage", percentage, jQuery.format("Voer alleen getallen in en gebruik een komma als scheidingsteken"));
	$.validator.addMethod("deposit", depositCheck, jQuery.format("Uw aankoopbedrag - aanbetaling moet tenminste {0} euro bedragen."));
	$.validator.addMethod("selectRequired", selectValidator, jQuery.format("Maak een keuze."));
 
	return $("#genericform").valid();
}