Validate = {
	
	init:function() {
		var forms = $tag("form");
		for (var i=0;forms[i]!==undefined;i++) {
			Event.observe(forms[i],"submit",Validate.doValidation);
		}
	},
	
	doValidation:function(e) {
		var form = Event.getElement(e);
		
		// get all required fields
		var requiredFields = $class("required",form);
		var labels = $tag("label",form);
		
		var emptyFields = [];
				
		for (var i=0;requiredFields[i]!==undefined;i++) {
			
			var type = requiredFields[i].getAttribute("type");
			
			if (type == "radio") {
				var empty = !requiredFields[i].checked;
				if (empty) {
					for (var j=0;requiredFields[j]!==undefined;j++) {
						if (requiredFields[i].getAttribute("radiogroup") == requiredFields[j].getAttribute("radiogroup") && requiredFields[i] != requiredFields[j]) {
							if(requiredFields[j].checked) {
								empty = false;
							}
							requiredFields.splice(i,1);
						}
					}
				}
				if (empty) {
					// get label
					var label = Validate.getMatchingLabel(labels,requiredFields[i].getAttribute("radiogroup"));
					// add label to empty fields list
					emptyFields.push(label.innerHTML);
				}
			}
			else {
				if (requiredFields[i].value.length == 0) {
					// get label
					var label = Validate.getMatchingLabel(labels,requiredFields[i].id);
					var labelName = $class("text",label)[0];
					// add label to empty fields list
					emptyFields.push(labelName.innerHTML);
				}
			}
		}
		
		
		
		
		if (emptyFields.length>0) {
			var msg = "U bent vergeten de volgende velden in te vullen: " + (emptyFields.join(", "));
			alert(msg);
			Event.stop(e);
		}
	},
	
	getMatchingLabel:function(labels,id) {
		for (var i=0;labels[i]!==undefined;i++) {
			if (labels[i].getAttribute("for") == id) {
				return labels[i];
			}
		}
	}
	
	
	
	
	
	
}

Event.observe(window,"load",Validate.init);
