
/************ FORM VALIDATION FUNCTIONS *************/

function validateVolunteerApplication(){
	
	if(!isChecked('the_form', 'preferred_contact'))
		return false;
	if(!isSelected('the_form', 'daytime_phone_ok'))
		return false;
	if(!validate())
		return false;
	if(!validateEmailAddress('email_address'))
		return false;
	return true;		
}

function validateMediaApplication(){
	
	if(!validate())
		return false;
	if(!validateEmailAddress('email_address'))
		return false;
	return true;		
}

function validateKeepInTouch(){
	
	if(!validate())
		return false;
	if(!validateSame('email_address', 'email_address_2'))
		return false;
	if(!validateEmailAddress('email_address'))
		return false;
	return true;	
	
}

function validateCheckout1(){
	
	if(!validate())
		return false;
	if(!validateEmailAddress('email_address'))
		return false;
	return true;
}

function validateCheckout2(){
	
	if(!validate())
		return false;
	if(!validateEmailAddress('email_address'))
		return false;
	if(!validateSame('password', 'retype_password'))
		return false;
	
}

/** isChecked
 * returns true if at least one of a group of checkboxes is checked
 **/
function isChecked(formname, checkboxname){
	var isChecked = false;
	var chkbx=eval('document.'+formname+'.'+checkboxname);
	for (var i = 0; i < chkbx.length; i++) {
  	 	if (chkbx[i].checked) {
   	   	isChecked = true;
   		}
	}
	if(!isChecked)
		alert("Please tick all required checkboxes");
	return isChecked;
}


//check that all fields with classname 'required' are filled in
function validate(){
var elems=document.getElementsByTagName('input'); 
for(var i=0;i<elems.length;i++){
	if((elems[i].className=='required')&&(elems[i].value=="")){
		alert("Please fill in all required fields");
		return false;
	}
}
return true;
}

/*** This validation function checks that an email address contains both '@' and '.' **/
function validateEmailAddress(email_address){
var email = document.getElementById(email_address).value;
	if((email.indexOf('@')==-1)||(email.indexOf('.')==-1)){
		alert("Invalid email address");
		return false;
	}
	else
		return true;
}

//Check that two fields have the same values, useful for password changes etc
function validateSame(type, retype){
if(document.getElementById(type).value == document.getElementById(retype).value)
	return true;
else{
	alert("Inputs do not match.");
	return false;
}
}


//check that all fields with classname 'required' are filled in
function validateForm(formname){
var elems=eval("document."+formname+".elements"); 
var valid=true;
for(var i=0;i<elems.length;i++){
	if(elems[i].className=='required'){
	switch(elems[i].type) {
			case "text" :
				if(elems[i].name=='email_address'){
					valid=isEmail(elems[i].value);
				}
			case "password" :
				if(elems[i].value==""){
					valid=false;
					alert("Please fill in all required fields");
				}
				break;
			case "select-one" :
				if(elems[i].value==''){
					alert("Please select an option from the dropdowns");
					valid=false;
				}
				break;
			case "radio" :
				valid = isSelected(formname, elems[i].name);
				break;
		}
		if(!valid){
			return valid;
		}
	}
}
return true;
}


/** isChecked
 * returns true if at least one of a group of checkboxes is checked
 **/
function isChecked(formname, checkboxname){
	var isChecked = false;
	var chkbx=eval('document.'+formname+'.'+checkboxname);
	for (var i = 0; i < chkbx.length; i++) {
  	 	if (chkbx[i].checked) {
   	   	isChecked = true;
   		}
	}
	if(!isChecked)
		alert("Please tick all required checkboxes");
	return isChecked;
}

/** isSelected()
 * Returns true if one of a group of radio buttons is selected
 **/
function isSelected(formname, radioname){
	var isChecked = false;
	var chkbx=eval('document.'+formname+'.'+radioname);
	if(!chkbx.length){
		if(chkbx.checked)
			isChecked=true;
	}
	else{
		for (var i = 0; i < chkbx.length; i++) {
			if (chkbx[i].checked) {
			isChecked = true;
			}
		}
	}
	if(!isChecked)
		alert("Please tick all required Radio buttons");
	return isChecked;
}


function isEmail(str){
	if((str.indexOf('@')==-1)||(str.indexOf('.')==-1)){
		alert("Invalid email address");
		return false;
	}
	else
		return true;
}