	
	/*
	
		REQUIREMENTS TO VALIDATE A FORMELEMENT
		======================================
		
		1.	Add an element for information concerning the validation.
		
				e.g. <div id="firstname_info"></div>
			
				note: the id of the element needs to be the same as the name of the formelement + "_info".
			
		2.	(optional) When a user input is required, add an attribute named 'content' and set its value to 'required'.
		
				e.g. <input type="text" name="firstname" content="required" />
		
				note: for checkboxes or radiobuttons all elements must contain the attribute content="required".
	
	*/
	
	function validate_form(form_name, language_code){
		
		var form_elements = document[form_name].elements;
		var validation = false;
		var language;
		var val_info;
		
		if (!language_code) language_code = "en"; 
	
		for (var i = 0; i < form_elements.length; i ++){
			
			val_info = document.getElementById(form_elements[i].name + '_info');
			
			if (val_info){
			
				form_elements[i].validation = false;
				
				if (form_elements[i].type == "text" || form_elements[i].type == "password" || form_elements[i].nodeName == "TEXTAREA"){
			
					if (!form_elements[i].value && form_elements[i].getAttribute('content') == "required"){
						form_elements[i].validation = true;
						form_elements[i].message_en = "Input required.";
						form_elements[i].message_nl = "Input vereist.";
						form_elements[i].message_fr = "Donn&eacute;es requises.";
						form_elements[i].message_de = "Bitte ausf&uuml;llen.";
					}
					
					
					if (form_elements[i].value){
						
						if (form_elements[i].name == "username"){
							form_elements[i].regExp = /^[A-Za-z0-9 ]{2,15}$/i;
							form_elements[i].message_en = "Not a valid username.";
							form_elements[i].message_nl = "Geen geldige gebruikersnaam.";
							form_elements[i].message_fr = "Nom d&rsquo;utilisateur non valable.";
							form_elements[i].message_de = "Kein richtiger Benutzername.";
						}
						
						if (form_elements[i].name == "password"){
							form_elements[i].regExp = /^[a-z0-9]{3,10}$/i;
							form_elements[i].message_en = "Special characters, spaces are not allowed. charactercount 3-10.";
							form_elements[i].message_nl = "Speciale karakters, spacies niet toegestaan. tussen 3-10 karakters.";
							form_elements[i].message_fr = "Caract&egrave;res sp&eacute;ciaux, espaces non admis. Entre 3-10 caract&egrave;res.";
							form_elements[i].message_de = "Keine Sonderzeichen oder Zwischenraume, bitte (zwischen 3 und 10 Zeichen).";
						}
						
						if (form_elements[i].name == "email"){
							form_elements[i].regExp = /^[A-Za-z0-9._-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/;
							form_elements[i].message_en = "Not a valid email adress.";
							form_elements[i].message_nl = "Geen geldig E-mail adres.";
							form_elements[i].message_fr = "Adresse e-mail non valable.";
							form_elements[i].message_de = "Keine richtige E-mailadresse.";
						}
						
						if (form_elements[i].name == "firstname"){
							form_elements[i].regExp = /^[a-zA-Z]*[- ]?[a-zA-Z]*[- ]?[a-zA-Z]+$/;
							form_elements[i].message_en = "Not a valid firstname.";
							form_elements[i].message_nl = "Geen geldige voornaam.";
							form_elements[i].message_fr = "Pr&eacute;nom non valable.";
							form_elements[i].message_de = "Kein richtiger Vorname.";
						}
						
						if (form_elements[i].name == "lastname" || form_elements[i].name == "surname"){
							form_elements[i].regExp = /^[a-zA-Z]*[- ]?[a-zA-Z]*[- ]?[a-zA-Z]+$/;
							form_elements[i].message_en = "Not a valid lastname.";
							form_elements[i].message_nl = "Geen geldige achternaam";
							form_elements[i].message_fr = "Nom de famille non valable.";
							form_elements[i].message_de = "Kein richtiger Familienname.";
						}
						
						if (form_elements[i].regExp) form_elements[i].validation = !(form_elements[i].regExp.test(form_elements[i].value));
						
					}
				
				}
				
				if ((form_elements[i].type == "radio" || form_elements[i].type == "checkbox") && form_elements[i].getAttribute('content') == "required"){
			
					for (var x = 0; x < form_elements[form_elements[i].name].length; x ++){
				
						form_elements[i].validation = !form_elements[form_elements[i].name][x].checked;
					
						if (form_elements[form_elements[i].name][x].checked) break;
					
					}
					
					form_elements[i].message_en = "Input required.";
					form_elements[i].message_nl = "Input vereist.";
					form_elements[i].message_fr = "Donn&eacute;es requises.";
					form_elements[i].message_de = "Bitte ausf&uuml;llen.";
						
				}
				
				if (form_elements[i].validation){
				
					validation = true;
					val_info.innerHTML = form_elements[i]["message_" + language_code];
					
						
				}else{
					
					val_info.innerHTML = "";
					
				}
				
			}
			
		}
		
		return !validation;
	
	}

