function findFormField(name, form)
{
	var result = false;
	
	if (!form)
		form = document.forms[0];
	
	for (var i = 0; i < form.elements.length; i++)
		if (form.elements[i].name.toLowerCase() == name.toLowerCase())
		{
			result = form.elements[i];
			break;
		}
	
	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 == 'schuld')
		regexp = /^[A-Za-z0-9]{6,8}$/;
	else if (type == 'emailadres')
		regexp = /^(\w+\.)*\w+@(\w[-\w]*\.)+\w+$/;
	
	if (regexp.test(value))
		result = true;
	
	return result;
}

function validate()
{
	var extra = arguments.length % 2;
	var form = document.forms[0];
	var field;
	var result = true;
	
	if ((extra) && (typeof(arguments[arguments.length - extra]) == 'object'))
		form = arguments[arguments.length - extra];
	
	for (var i = 0; i < (arguments.length - extra) / 2; i++)
	{
		field = findFormField(arguments[i * 2], form);
		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;
}
