function checkForm()
{
	var validators = {
		'default': /[A-Z]{2,}/i,
		'email': /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i,
		'areacode': /^[0-9]{3}$/,
		'prefix': /^[0-9]{3}$/,
		'linenumber': /^[0-9]{4}$/
	};
	
	var errors = 0;
	var errorFields = [];
	for (var x=0, elem=document.getElementById('contactForm').elements; x < elem.length; x++)
	{
		elem[x].className = elem[x].className.replace('errorField', '');
		if (elem[x].className.indexOf('required') < 0)
			continue;
		
		// trim
		elem[x].value = elem[x].value.replace(/^[ \t]+|[ \t]+$/, '');

		if (elem[x].value.match(((validators[elem[x].id]) ? validators[elem[x].id] : validators['default'])) == null)
		{
			errors++;
			errorFields.push(elem[x].id);
			elem[x].className += ' errorField';
		}
	}
	
	if (errors > 0)
	{
		window.scrollTo(0,0);
		alert('Errors were found with the highlighted fields.');
		return false;
	}

	return true;
}