(function() {
	
	function stripHtml(value) {
		// remove html tags and space chars
		return value.replace(/<.[^<>]*?>/g, ' ').replace(/&nbsp;|&#160;/gi, ' ')
		// remove numbers and punctuation
		.replace(/[0-9.(),;:!?%#$'"_+=\/-]*/g,'');
	}
	jQuery.validator.addMethod("maxWords", function(value, element, params) { 
	    return this.optional(element) || stripHtml(value).match(/\b\w+\b/g).length < params; 
	}, jQuery.validator.format("Please enter {0} words or less.")); 
	 
	jQuery.validator.addMethod("minWords", function(value, element, params) { 
	    return this.optional(element) || stripHtml(value).match(/\b\w+\b/g).length >= params; 
	}, jQuery.validator.format("Please enter at least {0} words.")); 
	 
	jQuery.validator.addMethod("rangeWords", function(value, element, params) { 
	    return this.optional(element) || stripHtml(value).match(/\b\w+\b/g).length >= params[0] && value.match(/bw+b/g).length < params[1]; 
	}, jQuery.validator.format("Please enter between {0} and {1} words."));

})();

//$(document).ready(function(){
 	
	jQuery.validator.addMethod("password", function( value, element ) {
		var result = this.optional(element) || value.length >= 6 && /\d/.test(value) && /[a-z]/i.test(value);
		if (!result) {
			element.value = "";
			var validator = this;
			setTimeout(function() {
				validator.blockFocusCleanup = true;
				element.focus();
				validator.blockFocusCleanup = false;
			}, 1);
		}
		return result;
	}, "Your password must be at least 6 characters long and contain at least one number and one character.");

	jQuery.validator.addMethod("dateNL", function(value, element) {
			return this.optional(element) || /^\d\d?[\.\/-]\d\d?[\.\/-]\d\d\d?\d?$/.test(value);
		}, "Vul hier een geldige datum in."
	);

	jQuery.validator.addMethod("zipcodeNL", function(value, element) {
			return this.optional(element) || /^[1-9]{1}[0-9]{3} ?[A-Z]{2}$/.test(value);
		}, "Vul hier een geldig postcode in"
	);	
	
	jQuery.validator.addMethod("kentekenNL", function(value, element) {
			return this.optional(element) || /^(([a-zA-Z]{2}-?[0-9]{2}-?[0-9]{2})|([0-9]{2}-?[0-9]{2}-?[a-zA-Z]{2})|([0-9]{2}-?[a-zA-Z]{2}-?[0-9]{2})|([a-zA-Z]{2}-?[0-9]{2}-?[a-zA-Z]{2})|([a-zA-Z]{2}-?[a-zA-Z]{2}-?[0-9]{2})|([0-9]{2}-?[a-zA-Z]{2}-?[a-zA-Z]{2})|([0-9]{2}-?[a-zA-Z]{3}-?[0-9])|([0-9]-?[a-zA-Z]{3}-?[0-9]{2}))$/.test(value);
		}, "Vul hier een geldig postcode in"
	);

	jQuery.validator.addMethod("yearNL", function(value, element) {
			return this.optional(element) || /^[0-9]{4}$/.test(value);
		}, "Vul hier een geldig jaar in"
	);	/^([a-zA-Z]{5}[0-9_]{7})?$/

	jQuery.validator.addMethod("meldcodeNL", function(value, element) {
			return this.optional(element) || /^[0-9]{4}$/.test(value);
		}, "Vul hier een geldig jaar in"
	);	/^([a-zA-Z]{5}[0-9_]{7})?$/
	
	jQuery.validator.addMethod("bov_polisnummer", function(value, element) {
			return this.optional(element) || /^([a-zA-Z]{5}[0-9_]{7})?$/.test(value);
		}, "Vul hier een geldig polisnummer in"
	);
	
	jQuery.validator.addMethod("timeNL", function(value, element) {
			return this.optional(element) || /^([01][0-9])|(2[0123]):([0-5])([0-9])$/.test(value);
		}, "Vul een tijd in tussen 00:00 and 23:59"
	);
	
	jQuery.validator.addMethod('phoneNL', function(phone_number, element) {
	return this.optional(element) || phone_number.length > 9 &&
	phone_number.match(/^((((0031)|(\+31))(\-)?6(\-)?[0-9]{8})|(06(\-)?[0-9]{8})|(((0031)|(\+31))(\-)?[1-9]{1}(([0-9](\-)?[0-9]{7})|([0-9]{2}(\-)?[0-9]{6})))|([0]{1}[1-9]{1}(([0-9](\-)?[0-9]{7})|([0-9]{2}(\-)?[0-9]{6}))))$/);
	}, '');


//});




