function validate_form(form_name, language){
				
	/*

	REQUIREMENTS TO VALIDATE A FORMELEMENT
	======================================
	
	1.	Add an element for information concerning the validation.
	
			e.g. <div id="firstname_valinfo"></div>
		
			note: the id of the element needs to be the same as the name of the formelement + "_valinfo".
		
	2.	(optional) When a userinput 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".
			
	3.	(optional) The validation type of a form element can be set by following attribute: valtype="..."
	
			e.g. <input type="text" name="home_email" valtype="email" />
				 <input type="text" name="work_email" valtype="email" />
	
			note: for checkboxes or radiobuttons all elements must contain the attribute valtype="...".

	*/
	
	var form_elements 	= document[form_name].elements;
	var lang 			= language.toLowerCase();
	var val_info;
	var validation;
	var content_attr;
	var valtype_attr;
		
	for (var i = 0; i < form_elements.length; i ++){
					
		val_info 		= document.getElementById(form_elements[i].name + '_valinfo');
		val_type 		= form_elements[i].getAttribute('valtype'); if (!val_type) val_type = form_elements[i].name;
		content_attr 	= form_elements[i].getAttribute('content');
		
		if (val_info){
			
			form_elements[i].validation = false;
			
			if (content_attr == "required"){
				
				form_elements[i].valmessage_en = "Input required.";
				form_elements[i].valmessage_nl = "Input vereist.";
				form_elements[i].valmessage_fr = "Donn&eacute;es requises.";
				form_elements[i].valmessage_de = "Bitte ausf&uuml;llen.";
				
				if (form_elements[i].type == "radio" || form_elements[i].type == "checkbox"){
					
					if (form_elements[form_elements[i].name].length){
						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;
						}
					}else{
						form_elements[i].validation = !form_elements[i].checked;
					}
					
				} else{
					
					form_elements[i].validation = !form_elements[i].value;
					
				}
				
			}
			
			if (form_elements[i].value){
			
				switch (val_type){
						
					case "username":
						form_elements[i].regExp = /^[A-Za-z0-9 ]{2,15}$/i;
						form_elements[i].valmessage_en = "Not a valid username.";
						form_elements[i].valmessage_nl = "Geen geldige gebruikersnaam.";
						form_elements[i].valmessage_fr = "Nom d&rsquo;utilisateur non valable.";
						form_elements[i].valmessage_de = "Kein richtiger Benutzername.";
						break;
						
					case "password":
						form_elements[i].regExp = /^[a-z0-9]{3,10}$/i;
						form_elements[i].valmessage_en = "Special characters, spaces are not allowed. Charactercount 3-10.";
						form_elements[i].valmessage_nl = "Speciale tekens, spaties niet toegelaten. Aantal karakters 3-10";
						form_elements[i].valmessage_fr = "Caract&egrave;res sp&eacute;ciaux, espaces non admis. Entre 3-10 caract&egrave;res.";
						form_elements[i].valmessage_de = "Keine Sonderzeichen oder Zwischenraume, bitte (zwischen 3 und 10 Zeichen).";
						break;
						
					case "email":
						form_elements[i].regExp = /^[A-Za-z0-9._-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/;
						form_elements[i].valmessage_en = "Not a valid email adress.";
						form_elements[i].valmessage_nl = "Geen geldig emailadres.";
						form_elements[i].valmessage_fr = "Adresse e-mail non valable.";
						form_elements[i].valmessage_de = "Keine richtige E-mailadresse.";
						break;
						
					case "postalcode":
						form_elements[i].regExp = /^\d{4}$/;
						form_elements[i].valmessage_en = "Not a valid postal code.";
						form_elements[i].valmessage_nl = "Geen geldige postcode.";
						form_elements[i].valmessage_fr = "code postal non valable.";
						//form_elements[i].valmessage_de = "Keine richtige E-mailadresse.";
						break;
						
					case "ip":
						form_elements[i].regExp = /^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
						form_elements[i].valmessage_en = "Not a valid ip adress.";
						form_elements[i].valmessage_nl = "Geen geldig ip adres.";
						form_elements[i].valmessage_fr = "Adresse ip non valable.";
						form_elements[i].valmessage_de = "Keine richtige ip adresse.";
						break;
					
				}
				
				if (form_elements[i].regExp) form_elements[i].validation = !(form_elements[i].regExp.test(form_elements[i].value));
				
			}
			
			if (form_elements[i].validation){
				validation = true;
				val_info.innerHTML = form_elements[i]["valmessage_" + lang];
			}else{
				val_info.innerHTML = "";
			}
			
		}
		
	}
	
			
	return !validation;
	
}