function findFormField(name)
{
	var result = false;
	
	for (var i = 0; i < document.forms[0].elements.length; i++)
		if (document.forms[0].elements[i].name.toLowerCase() == name.toLowerCase())
			result = document.forms[0].elements[i];
	
	return result;
}

function typeMatch(value, type)
{
	var regexp;
	var result = false;
	
	value = value.replace(/(^\s*|\s*$)/g, '');
	type = type.toLowerCase();
	
	if (type == 'postal')
		regexp = /^\d{4}\s*\w{2}$/i;
	else if (type == 'telephone')
		regexp = /^((\+|00)\d{2}(\s*|-)?0?|0)(\d\s*-?(\s*\d\s*){8}|\d{2}\s*-?(\s*\d\s*){7}|\d{3}\s*-?(\s*\d\s*){6}|\d{4}\s*-?(\s*\d\s*){5}|\d{5}\s*-?(\s*\d\s*){4})$/;
	else if (type == 'email')
		regexp = /^(\w+\.)*\w+@(\w[-\w]*\.)+\w+$/;
	
	if (regexp.test(value))
		result = true;
	
	return result;
}

function validate()
{
	var extra = arguments.length % 2;
	var field;
	var result = true;
	
	for (var i = 0; i < (arguments.length - extra) / 2; i++)
	{
		field = findFormField(arguments[i * 2]);
		if (field)
		{
			if (field.value == '')
			{
				result = false;
				field.focus();
				window.alert('Dit veld dient ingevuld te zijn.');
				break;
			} else if ((arguments[(i * 2) + 1]) && (!typeMatch(field.value, arguments[(i * 2) + 1])))
			{
				result = false;
				field.focus();
				window.alert('Dit veld dient correct te worden ingevuld.');
				break;
			}
		}
	}
	
	return result;
}
