
	var radios = new Object();

	function isValidText(obj){
		$(obj).removeClass("notvalid");
		 if (obj.value.length === 0){
			$(obj).addClass("notvalid");
			return false;
		 }
		 return true;
	}
	
	function isValidEmail(obj) {
		$(obj).removeClass("notvalid");
		if(!((obj.value.indexOf(".") != -1) && (obj.value.indexOf("@") > 0))){
			$(obj).addClass("notvalid");
			return false;
		}
		 return true;
	}
	
	function isValidCheckbox(obj) {
		$(obj).parent().removeClass("notvalid");
		if(!obj.checked){
			$(obj).parent().addClass("notvalid");
			return false;			
		}
		return true;
	}
	
	function isValidRadiobutton(obj) {
		$(obj).parent().parent().removeClass("notvalid");
		if(!obj.checked && !eval("radios."+obj.name)){
			$(obj).parent().parent().addClass("notvalid");
			eval("radios."+obj.name+" = radios."+obj.name+" || obj.checked;");
			return false;			
		}
		eval("radios."+obj.name+" = radios."+obj.name+" || obj.checked;");
		return true;
	}
	
	function isValidNumber(obj){
		$(obj).removeClass("notvalid");
		if (obj.value.length === 0 || isNaN(obj.value)){
			$(obj).addClass("notvalid");
			return false;
		 }
		return true;
	}
		
	function isValidForm(form, optional){
		var optional = optional ? optional : new Array();
		var valid = 0;
		var elements = $(form).get(0).elements;
		var lengte = elements.length - optional.length;
		
		for(var i=0;i<elements.length;i++){
			var element = elements[i];
			var optional_element = false;
			
			for(var j=0;j<optional.length;j++){
				if(element.name==optional[j])
					optional_element = true;
			}
			
			if(!optional_element){
				switch(element.type){
					case "text": 
						if(element.name=="email")
							valid += isValidEmail(element); 
						else if(element.name=="nummer" || element.name=="postcode" || element.name=="leeftijd")
							valid += isValidNumber(element); 
						else
							valid += isValidText(element); 
						break;
					case "password":
						valid += isValidText(element); 
						break;
					case "email": 	
						valid += isValidEmail(element); 
						break;
					case "number": 
						valid += isValidNumber(element); 
						break;
					case "checkbox": 
						valid += isValidCheckbox(element); 
						break;
					case "radio":
						isValidRadiobutton(element); 
						break;
					case "select-one": 
						valid += isValidText(element); 
						break;
					case "textarea": 
						valid += isValidText(element); 
						break;
					case "submit": 
						lengte--; 
						break;
					default:
						valid++;
						break;
				}
			}
			
		}
		
		for (var property in radios){
			if(!radios[property]){
				for(var i=0;i<elements.length;i++){
					if(elements[i].name == property){
						$(elements[i]).parent().parent().addClass("notvalid");
					}
				}
				
			}else{
				for(var i=0;i<elements.length;i++){
					if(elements[i].name == property){
						$(elements[i]).parent().parent().removeClass("notvalid");
						valid++;
					}
				}
			}
		}
		
		return valid==lengte;
	}
