
function validate_radio_contact(frm_radio) {
	
	clearerror(frm_radio.firstname);
	clearerror(frm_radio.lastname);
	clearerror(frm_radio.company);
	clearerror(frm_radio.address);
	clearerror(frm_radio.city);
	clearerror(frm_radio.state);
	clearerror(frm_radio.zipcode);
	clearerror(frm_radio.country);
	clearerror(frm_radio.homephone);
	clearerror(frm_radio.officephone);
	clearerror(frm_radio.email);
	clearerror(frm_radio.specialrequests);
	
	var data_is_clean = true;
	var error_message = "Please fix the following errors: \n \n";
	
	/* make sure we have at least one contact method */
	if (validate_text_long(frm_radio.homephone.value) == false && validate_text_long(frm_radio.officephone.value) == false && validate_text_long(frm_radio.email.value) == false) {
		
		adderror(frm_radio.homephone);
		adderror(frm_radio.officephone);
		adderror(frm_radio.email);
		
		data_is_clean = false;
		error_message += "-> Please enter at least one valid contact method (email, home phone or office phone). \n";
		
	} else {
		/* we have at least one contact, verify format of phone numbers and email */
		if(frm_radio.email.value.length > 0){
			/*email is set, verify format*/
			if(validate_email(frm_radio.email.value) == false) {
				
				adderror(frm_radio.email);
				data_is_clean = false;
				error_message += "-> Please enter a valid email address\n";
		
			}
			
		}
		if(frm_radio.homephone.value.length > 0){
			/*homephone is set, verify format*/
			if(validate_phone(frm_radio.homephone.value, true) == false){
				
				adderror(frm_radio.homephone);
				data_is_clean = false;
				error_message += "-> Please enter a valid home phone number (format: xxx-xxx-xxxx)\n";
				
			}
			
		}
		if(frm_radio.officephone.value.length > 0){
			/*officephone is set, verify format*/
			if(validate_phone(frm_radio.officephone.value, true) == false){
				
				adderror(frm_radio.homephone);
				data_is_clean = false;
				error_message += "-> Please enter a valid office phone number (format: xxx-xxx-xxxx)\n";
				
			}
		}
		
		
		
	}
	
	/* make sure we have first name and a last name */
	if (validate_text_specific(frm_radio.firstname.value, 50) == false) {
		
		adderror(frm_radio.firstname);
		data_is_clean = false;
		error_message += "-> Please enter your first name (50 characters or less) \n";
	}
	if (validate_text_specific(frm_radio.lastname.value, 50) == false) {
		
		adderror(frm_radio.lastname);
		data_is_clean = false;
		error_message += "-> Please enter your last name (50 characters or less) \n";
	}
	
	/* make sure company, address, city, state, zip, country ... fields dont exceed limits in database */
	if (validate_text_specific_null(frm_radio.company.value, 50) == false) {
		
		adderror(frm_radio.company);
		data_is_clean = false;
		error_message += "-> Please make sure your company name is 50 characters or less \n";
	}
	if (validate_text_specific_null(frm_radio.address.value, 100) == false) {
		
		adderror(frm_radio.address);
		data_is_clean = false;
		error_message += "-> Please make sure your address is 100 characters or less \n";
	}
	if (validate_text_specific_null(frm_radio.city.value, 50) == false) {
		
		adderror(frm_radio.city);
		data_is_clean = false;
		error_message += "-> Please make sure your city is 50 characters or less \n";
	}
	if (validate_text_specific_null(frm_radio.state.value, 50) == false) {
		
		adderror(frm_radio.state);
		data_is_clean = false;
		error_message += "-> Please make sure your state is 50 characters or less \n";
	}
	if (validate_text_specific_null(frm_radio.zipcode.value, 5) == false) {
		
		adderror(frm_radio.zipcode);
		data_is_clean = false;
		error_message += "-> Please make sure your zipcode is properly formatted \n";
	}
	if (validate_text_specific_null(frm_radio.country.value, 5) == false) {
		
		adderror(frm_radio.country);
		data_is_clean = false;
		error_message += "-> Please make sure your country is 50 characters or less \n";
	}

	
	if(data_is_clean == false) {
		alert(error_message);
	}

	return data_is_clean;
	
}

function adderror(fed_element){
	fed_element.style.borderColor = "#FF0000";
	fed_element.style.borderStyle = "dashed";
}

function clearerror(fed_element) {
	fed_element.style.borderColor = "#999999";
	fed_element.style.borderStyle = "solid";
}

//All validation functions
function validate_phone(phone, full) {
	
	if(phone.length > 0){
		var newreg = "[0-9]{3}-[0-9]{3}-[0-9]{4}";
			if (phone.match(newreg)) {
				newarray = phone.match(newreg); 
				if (newarray.length == 1) { 
					if(phone.length == 12) {
						return true;
					} else {
						return false;
					}
				} else { 
					return false;
				}
			} else {
				return false;
			}
	} else {
		if (full == true) {
			return false;
		} else {
			return true;
		}		
	}	
	
}

function validate_email(email) {
	
	var newreg = /@\b/gi;
	
	if (email.match(newreg)) {
		newarray = email.match(newreg); 
		if (newarray.length == 1) { 
			return true;
		} else { 
			return false;
		}
	} else {
		return false;
	}
	
}

function validate_text_specific(text, max) {
	
	if(text.length > 0 && text.length <= max){
		return true;
	} else {
		return false;
	}
		
}

function validate_text_specific_null(text, max) {
	
	if(text.length <= max){
		return true;
	} else {
		return false;
	}
		
}

function validate_text_long(text) {
	
	if(text.length > 0){
		return true;
	} else {
		return false;
	}
		
}
