function field(value,id,display_text,type,min_length,max_length,default_values,required) {
	this.value=value;
	this.id=id;
	this.display_text=display_text;
	this.type=type;
	this.min_length=min_length;
	this.max_length=max_length;
	this.default_values=default_values;
	this.required=required;
}
function validate_input(field_data) {
	var result;
	var errors = new Array();
	if(field_data.type == 'textarea' || field_data.type == 'text' || field_data.type == 'email') {
		if(field_data.min_length > 0) {
			if(field_data.value.length==0  && field_data.required==true){
				errors.push(field_data.display_text + " is empty, please enter text");
			}else if(field_data.value.length<field_data.min_length && field_data.value.length>0)
				errors.push(field_data.display_text + " is too short, please enter more information.");
		}
		if(field_data.max_length >= 0) {
			if(field_data.value.length>field_data.max_length)
				errors.push(field_data.display_text + " is too long, please shorten entry.");
		}		
	}
	if(field_data.type == 'email' && field_data.value.length>0) {
	  	var patt=/.+\@.+\..+/;
		result=patt.test(field_data.value);
		if(result==false)
			errors.push("Please enter a valid email address");
	}
   if(jQuery.inArray(field_data.value,field_data.default_values) !== -1)
		errors.push("Please fill in the "+field_data.display_text+" field");
   return errors;
}
function validateContactForm() {
	var value='';
	var first_and_last_name_input = new field(value,'first_and_last_name','First and Last Name','text',3,100,new Array(),true);
	var date_of_interest_input = new field(value,'date_of_interest','Date Of Interest','text','1','100',new Array(),false);
	var address_input = new field(value,'address','Address','text','1','100',new Array(),false);
	var home_phone_number_input = new field(value,'home_phone_number','Home Phone Number','text','1','100',new Array(),false);
	var mobile_phone_number_input = new field(value,'mobile_phone_number','Mobile Phone Number','text','1','100',new Array(),false);
	var email_input = new field(value,'email','Email','email','0','250',new Array(),false);
	var best_time_to_contact_you_input = new field(value,'best_time_to_contact_you','Best Time To Contact You','text','1','200',new Array(),false);
	var message_input = new field(value,'message','Message','textarea','1','10000',new Array('Questions/Comments'),true);
	var inputs = [first_and_last_name_input,date_of_interest_input,address_input,home_phone_number_input,mobile_phone_number_input,email_input,best_time_to_contact_you_input,message_input];


  	var return_val = true;
	var field_errors = new Array();
	$.each(inputs,function(key,field_object) {
		$('#'+field_object.id).parents('.contact_page_row').find('.contact_page_error_msg').text('');
		$('#'+field_object.id).parents('.contact_page_row').removeClass('contact_page_error');
		field_object.value = $('#'+field_object.id).val();
		field_errors = validate_input(field_object);
		if(field_errors.length>0) {
			return_val = false;
			$('#'+field_object.id).parents('.contact_page_row').find('.contact_page_error_msg').text(field_errors[0]);
			$('#'+field_object.id).parents('.contact_page_row').find('.contact_page_error_msg').css('display','block');
  			$('#'+field_object.id).parents('.contact_page_row').addClass('contact_page_error');
			$('#'+field_object.id).parents('.contact_page_row').find('.contact_page_error_row').css('display','block');
		}
	});
	return return_val;
}

$(document).ready( function() {
	$('#contact_form').submit(function(){return validateContactForm()});
} );
