$(document).ready(function(){
	$.validator.addMethod(
		"regex",
		function(value, element, regexp) {
			var re = new RegExp(regexp);
			return this.optional(element) || re.test(value);
		},
		"Please check your input."
	);

	$.validator.addMethod("postalcode", function(value, element){
		if(this.optional(element)){return(false);}
		if(value == '' || value == undefined){return(true);}
		var s_land = false;
		if($('#freeform select[name="country"]').length > 0){
			s_land = $('#freeform select[name="country"]').val();
		} else if($('#nieuwsbriefForm select[name="nb_land"]').length > 0){
			s_land = $('#nieuwsbriefForm select[name="nb_land"]').val();
		}
		if(s_land){
			s_land = s_land.toLowerCase();
			if(s_land == 'nederland' || s_land == 'nl' || s_land == '1'){
				//var re = new RegExp(/^[0-9][0-9]{4}[\s]([A-Z]|[a-z]){2}$/);
				var re = new RegExp(/^\d{4}[\s-]?[a-zA-Z]{2}$/);
				return(re.test(value));
			} else {
				return(true);
			}
		} else {
			return(true);
		}
	}, "De postcode is onjuist.");

	$.validator.addMethod("phonenumber", function(value, element){
		if(this.optional(element)){
			//return(false);
			return(true);
		} else {
			var o_land = false;
			var s_land = false;
			if($('#freeform select[name="country"]').length > 0){
				o_land = true;
				s_land = $('#freeform select[name="country"]').val();
				s_land = s_land.toLowerCase();
			} else if($('#nieuwsbriefForm select[name="nb_land"]').length > 0){
				o_land = true;
				s_land = $('#nieuwsbriefForm select[name="nb_land"]').val();
				s_land = s_land.toLowerCase();
			}
			if(s_land || !o_land){
				if(s_land == 'nederland' || s_land == 'nl' || s_land == '1' || !o_land){
					var re1 = new RegExp(/^\d{6,11}$/); 	//nummer min 6 max 10
					var re2 = new RegExp(/^\d{2}-\d{8}$/);	//12-12345678
					var re3 = new RegExp(/^\d{3}-\d{7}$/);	//123-1234567
					var re4 = new RegExp(/^\d{4}-\d{6}$/);	//1234-123456
					
					return(re1.test(value) || re2.test(value) || re3.test(value) || re4.test(value));
				} else {
					return(true);
				}
			} else {
				return(true);
			}
		}
	}, "Het nummer is onjuist");

	$.validator.addMethod("phonenumber2", function(value, element){
		if(this.optional(element)){
			return(false);
		} else {
			var o_land = false;
			var s_land = false;
			if($('#freeform select[name="country"]').length > 0){
				o_land = true;
				s_land = $('#freeform select[name="country"]').val();
				s_land = s_land.toLowerCase();
			} else if($('#nieuwsbriefForm select[name="nb_land"]').length > 0){
				o_land = true;
				s_land = $('#nieuwsbriefForm select[name="nb_land"]').val();
				s_land = s_land.toLowerCase();
			}
			if(s_land || !o_land){
				if(s_land == 'nederland' || s_land == 'nl' || s_land == '1' || !o_land){
					var re1 = new RegExp(/^\d{6,11}$/); 	//nummer min 6 max 10
					var re2 = new RegExp(/^\d{2}-\d{8}$/);	//12-12345678
					var re3 = new RegExp(/^\d{3}-\d{7}$/);	//123-1234567
					var re4 = new RegExp(/^\d{4}-\d{6}$/);	//1234-123456
					
					return(re1.test(value) || re2.test(value) || re3.test(value) || re4.test(value));
				} else {
					return(true);
				}
			} else {
				return(true);
			}
		}
	}, "Het nummer is onjuist");

	$.validator.addMethod("dateCheck", function(value, element, s_type){
		b_return = false;
		//if(this.optional(element) || value == '' || value == undefined){
		if(value == '' || value == undefined){
			b_return = false;
		} else {
			var re = new RegExp(/^\d{2}-\d{2}-\d{4}$/);	//12-34-5678
			b_return = re.test(value);
		}
		if(s_type == 'set_dd'){
			var jaar = $(element).prev();
			var maand = $(jaar).prev();
			var dag = $(maand).prev();
			if(!b_return){
				if(jaar.val() == '' || jaar.val() == undefined){jaar.addClass('error');} else {jaar.removeClass('error');}
				if(maand.val() == '' || maand.val() == undefined){maand.addClass('error');} else {maand.removeClass('error');}
				if(dag.val() == '' || dag.val() == undefined){dag.addClass('error');} else {dag.removeClass('error');}
			} else {
				jaar.removeClass('error');
				maand.removeClass('error');
				dag.removeClass('error');
			}
		}
		return(b_return);
	}, "Je hebt geen datum geselecteerd");

	$.validator.addMethod("mobilenumber", function(value, element){
		if(this.optional(element)){
			return(false);
		}
		var re1 = new RegExp(/^\d{10}$/);
		var re2 = new RegExp(/^\d{2}-\d{8}$/);	//12-12345678

		return(re1.test(value) || re2.test(value));
	}, "Het nummer is onjuist");

	$.validator.addMethod("captchaCheck", function(value, element){
		if(this.optional(element)){
			return(false);
		}
		b_return = false;
		$.ajax({
			type: "POST",
			url: "http://www.freeforone.nl/captchac",
			data: "captcha="+value,
			success: function(s_return){
				if(s_return == 'true'){$(element).removeClass('error');} else {$(element).addClass('error');}
				return(s_return == 'true');
			}
		});
	}, "De code is onjuist");
});

