function validateForm(form) {
	//eerst evt oude foutmeldingen en errordivs verwijderen
	removeErrorMessages();
	var valid = true;
	var errors = "";
	var fields = form.getElementsByClassName("required");
	var firstfail;//eerste veld dat niet is ingevuld; krijgt later focus
	for (var i=0; i<fields.length; i++) {
		var fld = fields[i];
		if (fld.value == "") {
			//dan is dit leeg verplicht veld
			valid = false;
			if (firstfail == null) firstfail = fld;
			addErrorDiv(fld);
		}
	}
	if (!valid) {
		//ook melding bovenaan formulier
		var faildiv = document.createElement("div");
		faildiv.className = "fail";
		faildiv.innerHTML = "<h3>Oeps! We missen nog wat info...</h3><p>Sorry, maar we hebben alle verplichte velden nodig.<br />Vul alle verplichte velden in s.v.p.</p>";
		form.insertBefore(faildiv, form.firstChild); 
		firstfail.select();
	}
	return valid;
}

function setFieldFocus(formId, fieldName) {
	//plaatst focus op veld met name fieldName in form met id formId en selecteerd inhoud; als fieldId leeg is wordt eerste veld uit formulier met id formId gepakt dat focus kan ontvangen; als ook formId leeg is eerste veld van eerste formulier
	var selectedField;
	var f = document.getElementById(formId);
	if (!f) f = document.forms[0];
	if (f) {
		for (var i=0; i<f.length; i++) {
			var thisField = f.elements[i];
			if (fieldName != null) {
				if (thisField.name == fieldName) selectedField = thisField;
			} else {
				if (thisField.type != "hidden" && thisField.type != "button" && thisField.type != "submit") {
					selectedField = thisField;
					break;
				}
			}
		}
	
	}
	if (selectedField != null) {
		selectedField.focus();
		selectedField.select();
	}
}

function addErrorDiv(fld) {
	//voegt div met error tekst toe aan parentNode veld fld
	var pn = fld.parentNode;
	var errordiv = document.createElement("div");
	errordiv.className = "error";
	errordiv.innerHTML = "Vul dit veld nog in s.v.p.";
	pn.appendChild(errordiv);
}

function removeErrorMessages() {
	//verwijdert alle error meldingen
	errordivs = document.getElementsByClassName("error");
	for (var i=(errordivs.length-1); i>=0; i--) {
		//array in omgekeerde volgorde doorlopen omdat er steeds een element uit de array wordt gehaald
		var err = errordivs[i];
		removeElement(err);
	}
	faildivs = document.getElementsByClassName("fail");
	for (var i=(faildivs.length-1); i>=0; i--) {
		//array in omgekeerde volgorde doorlopen omdat er steeds een element uit de array wordt gehaald
		var fd = faildivs[i];
		removeElement(fd);
	}
}

function removeElement(el) {
	//verwijdert element
	var pr = el.parentNode;
	pr.removeChild(el);
}

addDOMLoadEvent = (function(){
// (c)2006 Jesse Skinner/Dean Edwards/Matthias Miller/John Resig
// For more info, see:
// http://www.thefutureoftheweb.com/blog/adddomloadevent
	// create event function stack
	var load_events = [],
		load_timer,
		script,
		done,
		exec,
		old_onload,
		init = function () {
			done = true;

			// kill the timer
			clearInterval(load_timer);

			// execute each function in the stack in the order they were added
			while (exec = load_events.shift())
				exec();

			if (script) script.onreadystatechange = '';
		};

	return function (func) {
		// if the init function was already ran, just run this function now and stop
		if (done) return func();

		if (!load_events[0]) {
			// for Mozilla/Opera9
			if (document.addEventListener)
				document.addEventListener("DOMContentLoaded", init, false);

			// for Internet Explorer
			/*@cc_on @*/
			/*@if (@_win32)
				document.write("<script id=__ie_onload defer src=//0><\/scr"+"ipt>");
				script = document.getElementById("__ie_onload");
				script.onreadystatechange = function() {
					if (this.readyState == "complete")
						init(); // call the onload handler
				};
			/*@end @*/

			// for Safari
			if (/WebKit/i.test(navigator.userAgent)) { // sniff
				load_timer = setInterval(function() {
					if (/loaded|complete/.test(document.readyState))
						init(); // call the onload handler
				}, 10);
			}

			// for other browsers set the window.onload, but also execute the old window.onload
			old_onload = window.onload;
			window.onload = function() {
				init();
				if (old_onload) old_onload();
			};
		}

		load_events.push(func);
	}
})();

