function validateFormOnSubmit(theForm) {

	var reason = "";

	reason += validateEmpty(theForm.procedure);
	reason += validateEmpty(theForm.first_name);
	reason += validateEmpty(theForm.last_name);
	reason += validateEmail(theForm.email);
	reason += validatePhone(theForm.phone);
	reason += validateEmpty(theForm.state);
	reason += validateZip(theForm.zip);
	if( theForm.physician_contacts ) {
		reason += validateEmpty(theForm.physician_contacts);
	}
	if( theForm.time_frame ) {
		reason += validateEmpty(theForm.time_frame);
	}
	if( theForm.travel_interest ) {
		reason += validateEmpty(theForm.travel_interest);
	}
	if( theForm.received_info ) {
		reason += validateEmpty(theForm.received_info);
	}
	if( theForm.contact_time ) {
		reason += validateEmpty(theForm.contact_time);
	}
	if( theForm.gender ) {
		reason += validateEmpty(theForm.gender);
	}
	if( theForm.question ) {
		reason += validateQuestion(theForm.question);
	}
	
	if( reason != "" ) {
		return false;
	}
	
	return true;
}

function validateEmpty(fld) {
	var error = "";
 
	if(fld.value.length == 0) {
		var field_text = fld.name + '_text';
		var field = document.getElementById(field_text);
		field.style.color = 'Red';
		error = 'error';
    } else {
    	var field_text = fld.name + '_text';
		var field = document.getElementById(field_text);
		field.style.color = 'White';
    }
    return error;  
}

function trim(s) {
  return s.replace(/^\s+|\s+$/, '');
}

function validateEmail(fld) {
    var error="";
    var tfld = trim(fld.value);
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
   
    if (fld.value == "") {
    	var field_text = fld.name + '_text';
		var field = document.getElementById(field_text);
		field.style.color = 'Red';
		error = 'error';
    } else if (!emailFilter.test(tfld)) {
    	var field_text = fld.name + '_text';
		var field = document.getElementById(field_text);
		field.style.color = 'Red';
		error = 'error';
    } else if (fld.value.match(illegalChars)) {
    	var field_text = fld.name + '_text';
		var field = document.getElementById(field_text);
		field.style.color = 'Red';
		error = 'error';
    } else {
    	var field_text = fld.name + '_text';
		var field = document.getElementById(field_text);
		field.style.color = 'White';
    }
    return error;
}

function validatePhone(fld) {
    var error = "";
    var stripped = fld.value.replace(/[\(\)\.\-\ ]/g, '');    

   if (fld.value == "") {
        var field_text = fld.name + '_text';
		var field = document.getElementById(field_text);
		field.style.color = 'Red';
		error = 'error';
    } else if (isNaN(parseInt(stripped))) {
        var field_text = fld.name + '_text';
		var field = document.getElementById(field_text);
		field.style.color = 'Red';
		error = 'error';
    } else if (!(stripped.length == 10)) {
        var field_text = fld.name + '_text';
		var field = document.getElementById(field_text);
		field.style.color = 'Red';
		error = 'error';
    } else {
    	var field_text = fld.name + '_text';
		var field = document.getElementById(field_text);
		field.style.color = 'White';
    }
    return error;
}

function validateZip(fld) {
	var error = "";
	var isValid = /^\d{5}$|^\d{5}-\d{4}$/;
	
     if (!isValid.test(fld.value)) {
		var field_text = fld.name + '_text';
		var field = document.getElementById(field_text);
		field.style.color = 'Red';
		error = 'error';
     } else {
		var field_text = fld.name + '_text';
		var field = document.getElementById(field_text);
		field.style.color = 'White';
     }
     
     
	return error;
}

function validateQuestion(fld) {
	error = "";
	if( fld.checked == false ) {
		var field_text = fld.name + '_text';
		var field = document.getElementById(field_text);
		field.style.color = 'Red';
		error = 'error';
	} else {
		var field_text = fld.name + '_text';
		var field = document.getElementById(field_text);
		field.style.color = 'White';
	}
	return error;
}
