$(document).ready(function(){
   
	//menu mouse over
	
	/*$("#menu ul li").mouseover(function(){
	   $(this).toggleClass("highlight");
	}).mouseout(function(){
	   $(this).toggleClass("highlight");
	});*/


	$(window).load(function() {
		
		var total = $('#slider img').length;
		var rand = Math.floor(Math.random()*total);

	
		$('#slider').nivoSlider({
			effect: 'sliceUpDown', //Specify sets like: 'fold,fade,sliceDown'
			slices: 15,
			animSpeed: 500,
			pauseTime: 4000,
			startSlide: rand,
			directionNav:false,
			directionNavHide:false,
			controlNav:true, //1,2,3...
			controlNavThumbs:false,
			controlNavThumbsFromRel:false,
			keyboardNav:false,
			pauseOnHover:false,
			captionOpacity:0.8
		});
	
	});

	


	/*FORM VALIDATION*/
		
	var default_message_empty = "Er is geen {value} ingevuld.";
	var default_message_empty_plural = "Er zijn geen {value} ingevuld.";
	var default_message_notvalid = "Er is geen geldig {value} ingevuld.";
	var default_message_user_exists = "De gekozen {value} is al in gebruik.";
	
	//FORM CHECK FUNCTION
	
	$(".check").blur(function(){
		validate_field(this.id);	
	});
	

	  
	$(".submit").click(function(){
		
		var form = $(this).parents("form").attr("id");
		var form_class = $(this).parents("form").attr("class");

		var training_check = 0;
		
		var valid;	
		var return_form = true;
		
		
		//check form		
		$(".check").each(function(){
			//check for each field in the form with the class check			
			validate_field(this.id);
			
			valid = validate_field(this.id);
			
			if(!valid) {
				return_form = false;
			}
			
		});
		
		//submit the form
		if(return_form) {
			$(".error_form").remove();
			$("#"+form).submit();
		} else {
			
			if($("#error_form_msg").length == 0) {
				$("#"+form).prepend("<label id=\"error_form_msg\" class=\"error_form\">Het formulier is niet verstuurd, controleer de gearceerde velden:</label>");	
			}
			
		}
		
	});
	  
	var form_valid = true;
	
	function validate_field(check_field){

		//REGEXP
		var email_regexp = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
		var phone_regexp = /(^\+[0-9]{2}|^\+[0-9]{2}\(0\)|^\(\+[0-9]{2}\)\(0\)|^00[0-9]{2}|^0)([0-9]{9}$|[0-9\-\s]{10}$)/;
		var zipcode_regexp = /^[1-9]{1}[0-9]{3}\s?[a-zA-Z]{2}$/;
		var url_regexp = /(((ht|f)tp(s?):\/\/)|(www\.[^ \[\]\(\)\n\r\t]+)|(([012]?[0-9]{1,2}\.){3}[012]?[0-9]{1,2})\/)([^ \[\]\(\),;&quot;'&lt;&gt;\n\r\t]+)([^\. \[\]\(\),;&quot;'&lt;&gt;\n\r\t])|(([012]?[0-9]{1,2}\.){3}[012]?[0-9]{1,2})/
		var bank_regexp = /^[0-9]{7,}$/;
		var file_regexp = /^.*\.(jpg|JPG)$/;
		var amount_regexp = /^[0-9]{0,7}\,[0-9]{0,2}$/;
		
		var field_type = $("#"+check_field).attr("type");
		var field_value = document.getElementById(check_field).value;
				
		//generate the error message with the label
		var name = $("label[for='"+check_field+"']").text();
		var name_strip = name.replace(":", "");

		var message = default_message_empty.replace("{value}", name_strip.toLowerCase());
		var message_plural = default_message_empty_plural.replace("{value}", name_strip.toLowerCase());
		var message_notvalid = default_message_notvalid.replace("{value}", name_strip.toLowerCase());
		var message_userexists = default_message_user_exists.replace("{value}", name_strip.toLowerCase());
		
		var message_selector = "#"+check_field+" + .error";
	
		//default check
		if(!field_value) {
			//check if message already is set
			if($(message_selector).length == 0) {
				//append the message for this id
				$("#"+check_field).addClass("error");
				if(check_field == "initials"){
					$("#"+check_field).after("<label class=\"error\">"+message_plural+"</label>");						
				} else {
					$("#"+check_field).after("<label class=\"error\">"+message+"</label>");	
				}
			}
			
			form_valid = false;
			
		} else {
			//remove the default message
			$("#"+check_field).removeClass("error");
			$(message_selector).remove();
			
			form_valid = true;
		}
		
		//check if there is a different field to check
		switch(check_field){
			case "zipcode":
				//check zipcode
				if(zipcode_regexp.test(field_value)){
					$("#"+check_field).removeClass("error");
					$(message_selector).remove();
					form_valid = true;
				} else {
					if($(message_selector).length == 0) {
						$("#"+check_field).addClass("error");
						$("#"+check_field).after("<label class=\"error\">"+message_notvalid+"</label>");
					}
					form_valid = false;
				}
				break;
			case "email":
				//check zipcode
				if(email_regexp.test(field_value)){
					$("#"+check_field).removeClass("error");
					$(message_selector).remove();
					form_valid = true;
				} else {
					if($(message_selector).length == 0) {
						$("#"+check_field).addClass("error");
						$("#"+check_field).after("<label class=\"error\">"+message_notvalid+"</label>");
					}
					form_valid = false;
				}
				break;
			case "phone":
				//check phone
				if(phone_regexp.test(field_value)){
					$("#"+check_field).removeClass("error");
					$(message_selector).remove();
					form_valid = true;
				} else {
					if($(message_selector).length == 0) {
						$("#"+check_field).addClass("error");
						$("#"+check_field).after("<label class=\"error\">"+message_notvalid+"</label>");
					}
					form_valid = false;
				}
				break;
			case "url":
				//check url
				if(url_regexp.test(field_value)){
					$("#"+check_field).removeClass("error");
					$(message_selector).remove();
					form_valid = true;
				} else {
					if($(message_selector).length == 0) {
						$("#"+check_field).addClass("error");
						$("#"+check_field).after("<label class=\"error\">"+message_notvalid+"</label>");
					}
					form_valid = false;
				}
				break;
		   
					
		}
				
		return form_valid;
	}

});

