function validateForm(form_obj) {
	
	var req_str = '87|First Name,88|Last Name,89|Email,90|Address,91|City,86|State,92|Zip,96_1|Birthdate,96_2|Birthdate,96_3|Birthdate,95|Gender,93_1|Due date,93_2|Due date,93_3|Due date';
	var field_array = req_str.split(',');
	var cur_field_name = '';
	var current_field;
	var form_name = form_obj.name;
	var name_val_pair_array;
	var name_val_pair;
	var error_msg = '';
	var field_is_valid = true;
	var birthdate_message_shown = false;
	var duedate_message_shown = false;
	var undefined;

	for(var i = 0; i < field_array.length; i++) {
		name_val_pair = field_array[i].toString();
		name_val_pair_array = name_val_pair.split('|');

		current_field = undefined;
		
		for(var j = 0; j < form_obj.length; j++) {
			if (form_obj.elements[j].name == name_val_pair_array[0]) {
					current_field = form_obj.elements[j];
			}
		}

		cur_field_name = name_val_pair_array[1];
		if (current_field == undefined) {
			alert('Error: ' + name_val_pair_array[0] + ' not submitted.');
			field_is_valid = true;
		}
		else {
			
			if (cur_field_name == 'Email')
			{
				field_is_valid = email_is_valid(current_field)
			}
			else if (cur_field_name == 'Zip')
			{
				field_is_valid = zip_is_valid(current_field);
			}
			else
			{
				field_is_valid = is_valid(current_field);
			}
		}
		if (field_is_valid == false) {
			if ((! birthdate_message_shown) && (cur_field_name == 'Birthdate'))
			{
				birthdate_message_shown = true;
				error_msg = error_msg.toString() + 'Please enter your Birthdate\n';
			}
			else if ((! duedate_message_shown) && (cur_field_name == 'Due date'))
			{
				duedate_message_shown = true;
				error_msg = error_msg.toString() + 'Please enter your Due Date or Youngest Child\'s Birthdate\n';
			}
			else if (cur_field_name == 'Terms')
			{
				//error_msg = error_msg.toString() + 'You must agree to the privacy policy to register.\n';
			
			}
			else if ((cur_field_name == 'First Name') || (cur_field_name == 'Last Name') || (cur_field_name == 'Email') || (cur_field_name == 'Address') || (cur_field_name == 'City') || (cur_field_name == 'State') || (cur_field_name == 'Zip') || (cur_field_name == 'Gender'))
			{
				error_msg = error_msg.toString() + 'Please enter your ' + cur_field_name + '\n';
			}
		}
	}

	//if (!form_obj.i_agree_to_terms.checked) {
	//	error_msg = "You must agree to the privacy policy.";
	//}
	
	if (error_msg.length > 0) {
		alert(error_msg);
		return false;
	}
	else {
		return true;
	}
}

function is_valid(cur_obj) {
	var obj_type;
	var return_val;
	var undefined;
	obj_type = cur_obj.type;
	if (obj_type == undefined) {
		obj_type = cur_obj[0].type;
	}
	switch(obj_type) {
		case 'checkbox':
			if (cur_obj.checked) {
				return_val = true;
			}
			else {
				return_val = false;
			}
		break;
		case 'select-one':
			if(cur_obj.selectedIndex > 0) {
				return_val = true;
			}
			else {
				return_val = false;
			}
		break;
		case 'text':
			if(cur_obj.value.length < 1) {
				return_val = false;
			}
			else {
				return_val = true;
			}
		break;
		default:
			return_val = true;
	}
	return return_val;
}

function zip_is_valid(cur_obj) {
	var return_val;

		
			if(cur_obj.value.length < 5) {
				return_val = false;
			}
			else {
				return_val = true;
			}
		

	return return_val;
}

function email_is_valid(cur_obj) {
	var return_val = true;
	
	// begin email validation
	var vlength
	vlength = cur_obj.value.length-1
	if (cur_obj.value.length == 0)
	{
		return_val = false;
	}
	
  	// Check for a valid email address (Does it contain a "@" and ".")
  	if(cur_obj.value.indexOf('@', 0) == -1 || cur_obj.value.indexOf('.',0)==-1)
	{
		return_val = false;
	}
	
 	// Check for a valid email address ("@" or "." cannot be first character)
	if(cur_obj.value.charAt(0)=='@' || cur_obj.value.charAt(0)=='.')
	{
		return_val = false;
	}
	
	// Check for a valid email address ("@" or "." cannot be last character)
	if(cur_obj.value.charAt(vlength)=='@' || cur_obj.value.charAt(vlength)=='.')
	{
		return_val = false;
	}
	
  	// Check for a valid email address (Cannot have "@." or ".@")
	if(cur_obj.value.indexOf('@.')!=-1 || cur_obj.value.indexOf('.@')!=-1)
	{
		return_val = false;
	}
	
	return return_val;
}


