function checkForm() {
	var errorColor = "#fcc";
	var normColor = "#fff";
	var isContact = false;
	var er = false;
	var errors = "Please double-check your info:\n";
	var fn = new getObj('firstname');
	var ln = new getObj('lastname');
	var em = new getObj('emailaddress');
	var zp = new getObj('zipcode');
	if (document.getElementById('volunteer') != null) {
		var vt = new getObj('volunteer');
		var p1 = new getObj('phone1');
		var p2 = new getObj('phone2');
		var p3 = new getObj('phone3');
		isContact = true;
	}
	var fields = [fn, ln, em, zp];
	for (var i = 0; i < fields.length; i++) {
		fields[i].style.backgroundColor = normColor;
	}
	if (isNaN(zp.obj.value)) {
		errors += "- Your 'Zip Code' should not contain letters.\n";
		zp.style.backgroundColor = errorColor;
		er = true;
	} else if (zp.obj.value.length < 5) {
		errors += "- Your 'Zip Code' is too short.\n";
		zp.style.backgroundColor = errorColor;
		er = true;
	}
	var e = em.obj.value;
	if (e.indexOf('@') == -1 || e.indexOf('.') == -1 || e.indexOf('@') == 0 || e.indexOf('@') == e.length || e.lastIndexOf('.') < e.indexOf('@')) {
		errors += "- Please re-enter your 'Email Address.'\n";
		em.style.backgroundColor = errorColor;
		er = true;
	}
	if (isContact) {
		if (vt.obj.checked) {
			var p1a = p1.obj.value;
			var p2a = p2.obj.value;
			var p3a = p3.obj.value;
			if (p1a.length < 3 || isNaN(p1a) || p2a.length < 3 || isNaN(p2a) || p3a.length < 4 || isNaN(p3a)) {
				errors += "- Please re-enter your 'Phone Number.'\n";
				p1.style.backgroundColor = p2.style.backgroundColor = p3.style.backgroundColor = errorColor;
				er = true;
			}
		}
	}
	if (er) {
		alert(errors);
	}
	return !er;
}
