function validate( fields_to_validate ){

	var valid=true;
	
	//Check each field
	for( var a=0;a<fields_to_validate.length;a++ ){
	
		var field_name=fields_to_validate[a].split("|")[0];
		var field_description=fields_to_validate[a].split("|")[1];
		
		//Make sure that this field exists
		if( document.getElementById(field_name)!=null ){
		
			//Highlight the field which triggered an error
			if( string_replace(" ","",document.getElementById(field_name).value)=="" ){
			
				change_element_value(field_name+"_field","className","field_highlight");
				
				//Flag
				valid=false;
			
			}
			//Otherwise, unhighlight it
			else{
			
				change_element_value(field_name+"_field","className","");
			
			}
			
		}else{
		
			alert( field_name );
			
		}
	
	}

	//Make sure that the password fields match
	if( document.getElementById("password1")!=null && document.getElementById("password1").value!="" && document.getElementById("password1").value!="" ){

		if( document.getElementById("password1").value!=document.getElementById("password2").value ){
			change_element_value("password1_message","className","row_show");
			change_element_value("password1_message","innerHTML","Please make sure that the passwords match.");
			change_element_value("password1_field","className","field_highlight");
			change_element_value("password2_field","className","field_highlight");

			//Flag
			valid=false;

		}else{

			change_element_value("password1_message","className","row_hide");
			change_element_value("password1_message","innerHTML","");
			change_element_value("password1_field","className","");
			change_element_value("password2_field","className","");

		}

	}

	//Make sure that there is an email address
	if( document.getElementById("email_address")!=null ){

		//Check the email address
		var email_address=string_replace( " ", "", document.getElementById("email_address").value );

		//That it's not empty (which has already been checked
		if( email_address=="" ){


		}
		//That it's formatted properly
		else if( valid_email_address(email_address)==false ){

			var email_address_message="Please enter a valid email address.";

		}else{

			//Check that the email address isn't already taken using AJAX
			post("./account.php", "action=availability&category=email_address&value="+email_address, false, "email_address_available=result;");

			if( email_address_available=="false" ){

				var email_address_message="This email address is already being used.";

			}

		}
		
	}
	
	//If there's a problem with the email address, show the message and highlight the field
	if( typeof email_address_message!="undefined" ){
	
		//Flag
		valid=false;
			change_element_value("email_address_field","className","field_highlight");
		document.getElementById("email_address_message").className="row_show";
		document.getElementById("email_address_message").innerHTML=email_address_message;
	
	}else{
	
		document.getElementById("email_address_message").className="row_hide";
		document.getElementById("email_address_message").innerHTML="";
	
	}
	
	return valid;

}

function toggle_states( default_state ){

	if( document.getElementById("country").value=="United States" ){
	
		//Retrieve the current country innerHTML
		if( typeof state_field_text=="undefined" ){
				
			state_text_field_html=document.getElementById("state_field").innerHTML;
			
			var states="Alabama,Alaska,Arizona,Arkansas,California,Colorado,Connecticut,Delaware,District of Columbia,Florida,Georgia,Hawaii,Idaho,Illinois,Indiana,Iowa,Kansas,Kentucky,Louisiana,Maine,Maryland,Massachusetts,Michigan,Minnesota,Mississippi,Missouri,Montana,Nebraska,Nevada,New Hampshire,New Jersey,New Mexico,New York,North Carolina,North Dakota,Ohio,Oklahoma,Oregon,Pennsylvania,Rhode Island,South Carolina,South Dakota,Tennessee,Texas,Utah,Vermont,Virginia,Washington,West Virginia,Wisconsin,Wyoming";
			states=states.split(",");
		
			state_dropdown_html="<select id='state' name='state'><option value=''>-Select-</option>";
			for( var a=0;a<states.length;a++ ){
			
				state_dropdown_html+="<option ";
				
				//Preselect the default
				if( states[a]==default_state ){
				
					state_dropdown_html+="selected='selected' ";
					
				}
				
				state_dropdown_html+="value='"+states[a]+"'>"+states[a]+"</option>";
			
			}
			state_dropdown_html+="</select>";
		
		}
		
		state_field_type="select";
		document.getElementById("state_field").innerHTML=state_dropdown_html;
		
	
	}else if( typeof state_field_type!="undefined" && state_field_type=="select" ){
		
		state_field_type="text";
		state_field_text=document.getElementById("state_field").innerHTML=state_text_field_html;
	
	}
	
}