//test if valid email format
function isValidEmail(email){
	var regex = /^([A-Z0-9]+[._]?){1,}[A-Z0-9-]+\@(([A-Z0-9]+[-]?){1,}[A-Z0-9]+\.){1,}([A-Z]{2,4}|museum)$/i;
	return regex.test(email);
}

//test if null or empty
function isNullOrEmpty(value){
	return (value == null || value == '');
}

/*
Sets error message if error objects exist
*/
function updateErrorMessage(element,msg){
	if(!isNullOrEmpty(element)){
			element.innerHTML = msg;
	}
}

//Check if at least one radio is selected
//Parameter is an array of radio buttons
function atLeastOneRadioSelected(elements){		
	var atLeastOneSelected = false;	
	
	if(!isNullOrEmpty(elements) && elements.length > 0){
		for(i=0; i<elements.length; i++){
			if(elements[i].checked){
				atLeastOneSelected = true;
			}
		}
	}	
	return(atLeastOneSelected);
}


/*
QuoteBox Simple Validation
Validates format of email, and that all required fields exist
Conditions:
1.State (required)
2.Birthdate (required)
3.Email Address(valid, required)
To have error messages displayed, the following
objects must exist within the page.
1.span (id=State_error)
2.span (id=Birthdate_error)
3.span (id=Email_error)
*/
function validateForm(){
	var result = true;

	var state						= document.getElementById("address1_state");
	var month						= document.getElementById("dob1_mm_on");
	var day							= document.getElementById("dob1_dd_on");
	var year						= document.getElementById("dob1_yyyy_on");
	var email						= document.getElementById("email1");
	var genderRadio 		= document.getElementsByName("gender1");;
	var tabaccoRadio		= document.getElementsByName("is_smoker1");;	

	var stateError			= document.getElementById('State_error');
	var birthDateError	= document.getElementById('Birthdate_error');
	var emailError 			= document.getElementById('Email_error');
	var genderError			= document.getElementById('Gender_error');
	var tobaccoError		= document.getElementById('Tobacco_error');	

	//Clear error messages
	updateErrorMessage(stateError,'');
	updateErrorMessage(birthDateError,'');
	updateErrorMessage(emailError,'');
	updateErrorMessage(genderError,'');
	updateErrorMessage(tobaccoError,'');

	if(isNullOrEmpty(state.value)){
		updateErrorMessage(stateError,'<br>**Please select a state**');
		result=false;
	}
	if(isNullOrEmpty(month.value) || isNullOrEmpty(day.value) || isNullOrEmpty(year.value)){
		updateErrorMessage(birthDateError,'<br>**Please select a date**');
		result=false;
	}
	if(!isValidEmail(email.value)){
		updateErrorMessage(emailError,'<br>**Please enter a valid email**');
		result=false;
	}
	if(!atLeastOneRadioSelected(genderRadio)){
		updateErrorMessage(genderError,'<br>**Please select one**');
		result=false;		
	}
	if(!atLeastOneRadioSelected(tabaccoRadio)){
		updateErrorMessage(tobaccoError,'<br>**Please select one**');
		result=false;		
	}	

  return result;
}