function inputControl(form) {
	var emailRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
	var phoneRegex = /^[ 0-9 +]+(([\'\,\.\- ][0-9 +])?[0-9 ]*)*$/;
	var zipcodeRegex = /^[1-9]\d{3}[a-zA-Z ]{3}$/;
	var descriptionRegex = /^[\'\,\.\- a-zA-Z0-9 ]*$/;
	var commentRegex = new RegExp(/<\/?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)\/?>/gim);
	
	for (i = 0; i < form.length; i++) {
		if (form[i].type == "text" || form[i].type == "checbox" || form[i].type == "textarea") {
			var required = form[i].getAttribute('required');
			var controltype = form[i].getAttribute('controltype');
			if (controltype == null) {
				controltype = form[i].type;
			}
			switch (controltype) {
			case "text":
				if (form[i].value == "" && required == "true") {
					inlineMsg(form[i], "Vul hier uw " + form[i].title.toLowerCase() + " in.", 2);
					return false;
				}
				if (!form[i].value.match(descriptionRegex)) {
					inlineMsg(form[i], "U heeft een ongeldige " + form[i].title.toLowerCase() + " ingevuld.", 2);
					return false;
				}
				break;
			case "email":
				if (form[i].value == "" && required == "true") {
					inlineMsg(form[i], "Vul hier uw emailadres in.", 2);
					return false;
				}
				if (!form[i].value.match(emailRegex)) {
					inlineMsg(form[i], "U heeft een ongeldig emailadres ingevuld.", 2);
					return false;
				}
				break;
			case "phone":
				if (form[i].value == "" && required == "true") {
					inlineMsg(form[i], "Vul hier uw " + form[i].title.toLowerCase() + " in.", 2);
					return false;
				}
				if (!form[i].value.match(phoneRegex) && form[i].value != "") {
					inlineMsg(form[i], "U heeft een ongeldig " + form[i].title.toLowerCase() + " ingevuld.", 2);
					return false;
				}
				break;
			case "zipcode":
				if (form[i].value == "" && required == "true") {
					inlineMsg(form[i], "Vul hier uw postcode in.", 2);
					return false;
				}
				if (!form[i].value.match(zipcodeRegex)) {
					inlineMsg(form[i], "U heeft een ongeldige postcode ingevuld.", 2);
					return false;
				}
				break;
			case "checkbox":
				if (form[i].checked == false && required == "true") {
					inlineMsg(form[i], "Vul hier uw keuze in.", 2);
					return false;
				}
				break;
			case "textarea":
				if (form[i].value == "" && required == "true") {
					inlineMsg(form[i], "U heeft geen vraag/opmerking gesteld.", 2);
					return false;
				}
				if (form[i].value.match(commentRegex)) {
					inlineMsg(form[i], "U heeft ongeldige leestekens in uw vraag/opmerking gebruikt.", 2);
					return false;
				}
				break
			}
		}
	}
	return true;
}
var MSGTIMER = 30;
var MSGSPEED = 3;
var MSGOFFSET = 3;
var MSGHIDE = 3;

function inlineMsg(target, string, autohide) {
	var msg;
	var msgcontent;
	if (!document.getElementById("msg")) {
		msg = document.createElement("div");
		msg.id = "msg";
		msgcontent = document.createElement("div");
		msgcontent.id = "msgcontent";
		document.body.appendChild(msg);
		msg.appendChild(msgcontent);
		msg.style.filter = "alpha(opacity=0)";
		msg.style.opacity = 0;
		msg.alpha = 0;
	} else {
		msg = document.getElementById("msg");
		msgcontent = document.getElementById("msgcontent");
	}
	msgcontent.innerHTML = string;
	msg.style.display = "block";
	var msgheight = msg.offsetHeight;
	var targetdiv = target;
	targetdiv.focus();
	var targetheight = targetdiv.offsetHeight;
	var targetwidth = targetdiv.offsetWidth;
	var topposition = topPosition(targetdiv) - ((msgheight - targetheight) / 2);
	var leftposition = leftPosition(targetdiv) + targetwidth + MSGOFFSET;
	msg.style.top = topposition + "px";
	msg.style.left = leftposition + "px";
	clearInterval(msg.timer);
	msg.timer = setInterval("fadeMsg(1)", MSGTIMER);
	if (!autohide) {
		autohide = MSGHIDE;
	}
	window.setTimeout("hideMsg()", (autohide * 1000));
}

function hideMsg() {
	var msg = document.getElementById("msg");
	if (!msg.timer) {
		msg.timer = setInterval("fadeMsg(0)", MSGTIMER);
	}
}

function fadeMsg(flag) {
	if (flag == null) {
		flag = 1;
	}
	var msg = document.getElementById("msg");
	var value;
	if (flag == 1) {
		value = msg.alpha + MSGSPEED;
	} else {
		value = msg.alpha - MSGSPEED;
	}
	msg.alpha = value;
	msg.style.opacity = (value / 100);
	msg.style.filter = "alpha(opacity=" + value + ")";
	if (value >= 99) {
		clearInterval(msg.timer);
		msg.timer = null;
	} else if (value <= 1) {
		msg.style.display = "none";
		clearInterval(msg.timer);
	}
}

function leftPosition(target) {
	var left = 0;
	if (target.offsetParent) {
		while (1) {
			left += target.offsetLeft;
			if (!target.offsetParent) {
				break;
			}
			target = target.offsetParent;
		}
	} else if (target.x) {
		left += target.x;
	}
	return left;
}

function topPosition(target) {
	var top = 0;
	if (target.offsetParent) {
		while (1) {
			top += target.offsetTop;
			if (!target.offsetParent) {
				break;
			}
			target = target.offsetParent;
		}
	} else if (target.y) {
		top += target.y;
	}
	return top;
}

if (document.images) {
	arrow = new Image(7, 80);
	arrow.src = "images/validate.png";
}