var errorIdList = new Array;

function isblank(s) {
	for (i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if ((c != ' ') && (c != '\n') && (c != '\t')) return false;
	}
	return true;
}

function isemail(t) {
	var filter  = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})|(([a-zA-Z\-0-9]+\.)*([a-zA-Z0-9][a-zA-Z\-0-9]+[a-zA-Z0-9]\.)([a-zA-Z]{2}|com|org|net|gov|mil|edu|int|info|biz|name|aero|museum|coop|pro|arpa)))$/;
	if (!filter.test(t)) return false;
	return true;
}

function verify() {
	var msg;
	var empty_fields = "";
	var errors = "";
	var firsterror = "";

	var labels = this.getElementsByTagName('label');
	for (i = 0; i < labels.length; i++) {
		var inputId = labels[i].htmlFor;
		document.getElementById(inputId).accLabel = labels[i];
	}
	
	var reqFieldIds = this.elements['setRequired'].value.split(' ');
	var validEmailId = this.elements['setValidEmail'].getAttribute('value');
	var validEmailField = document.getElementById(validEmailId);
	if (reqFieldIds) {
		for (j = 0; j < reqFieldIds.length; j++) {
			document.getElementById(reqFieldIds[j]).required = true;
		}
	}

	if (document.getElementById) {
		for (var i = 0; i < errorIdList.length; i++) {
			document.getElementById(errorIdList[i]).accLabel.className = ""
		}
	}

	var errorNameList = new Array();

	for (var i = 0; i < this.length; i++) {
		var e = this.elements[i];

		if (((e.type == "text") || (e.type == "textarea")) && e.required) {

			if ((e.value == null) || (e.value == "") || isblank(e.value)) {
				empty_fields += "\n\u00A0\u00A0\u00A0- " + e.accLabel.firstChild.nodeValue;
				if (firsterror == "") {
					firsterror = e.name;
				}
				errorNameList.unshift(e.name);
				errorIdList.unshift(e.id);
				continue;
			}

			if (e == validEmailField) {
				if (!isemail(validEmailField.value)) {
					errors += "\u2022 Het e-mailadres is ongeldig.\n";
					if (firsterror == "") {
						firsterror = validEmailField.name;
					}
					errorNameList.unshift(validEmailField.name);
					errorIdList.unshift(validEmailField.id);
					continue;
				}
			}
		}
	}

	if (!empty_fields && !errors) return true;

	if (document.getElementById) {
		for (var i = 0; i < errorNameList.length; i++) {
			document.getElementById(errorIdList[i]).accLabel.className = "error"
		}
	}

	msg = "Helaas, het formulier kan niet worden verwerkt omdat het niet (juist) is ingevuld.\n\n"

	if (empty_fields) {
		msg += "\u2022 Een of meer vereiste velden zijn niet ingevuld, het betreft:"
		+ empty_fields + "\n";
		if (errors) msg += "\n";
	}
	msg += errors;
	alert(msg);
	this.elements[firsterror].focus();
	firsterror = "";
	return false;
}