function check_form() {
	var default_form = document.getElementById("email_signup")
	var displayed_error = ''
	var error_flag = ''
	fields = new Array();
	for(i=0; i < default_form.elements.length; i++) {
	    field_name = default_form.elements[i].name
		if (field_name) {
			var error_message = ''
			fields[field_name] = new field_object("email_signup",field_name,'',false,error_message,errors,'')
		}
	}
	for (var i in fields) {
		var field = fields[i].field_name
		if (default_form[field].style) {
			// reset all fields by default - error functions will then mark as necessary
			// skip checkboxes
			if (default_form[field].type != 'checkbox') {
				default_form[field].style.border = '1px solid black'
				default_form[field].style.backgroundColor = 'white'
			}
		}
		// check fields for lack of info
		fields[i].content_test()
		var blank_test = fields[i].empty_test()
		if (!blank_test) {
			field_name = fields[i].field_name
			value = default_form[field_name].value
			error_flag = true
		}
	}
	for (var i in fields) {
		if (fields[i].error_message) {
			error_message = fields[i].error_message + '\n\n'
			displayed_error += error_message
			error_flag = true
		}
	}
	if (error_flag) {
		if (displayed_error) {
			displayed_error = "Additional Errors:\n" + displayed_error
		}
		alert("Some fields are missing or have incorrect information; those fields are highlighted.\n\n" + displayed_error)
		return false
	}
	return true
}

function errors(field) {
	// called for each field object that gets flagged with an error
	var field = field
	var form_name = field.form_name
	var field_name = field.field_name
	if (document.getElementById(form_name)[field_name].style) {
		document.getElementById(form_name)[field_name].style.backgroundColor = '#f6f3bb'
		document.getElementById(form_name)[field_name].style.border = '1px solid red'
	}
}
