/* *********************************************
FORM VALIDATION ::: CONTACT US
********************************************* */
function formValidator(){
	// Make quick references to our fields
	var firstname = document.getElementById('firstname');
	var lastname = document.getElementById('lastname');
	var email = document.getElementById('email');
	var subject = document.getElementById('subject');
	var comments = document.getElementById('comments');
	
	// Check each input in the order that it appears in the form!
	if(notEmpty(firstname, "Please enter a valid First Name.")){
		if(notEmpty(lastname, "Please enter a valid Last Name.")){
			if(notEmpty(email, "Please enter a valid E-mail Address.")){
				if(emailValidator(email, "Please enter a valid E-mail Address.")){
					if(notEmpty(subject, "Please enter a valid Subject.")){
						return true;
					}
				}
			}
		}
	}
	return false;
}

/* *********************************************
FORM VALIDATION ::: NEWSLETTER
********************************************* */
function formValidatorNewsLetter(){
	// Make quick references to our fields
	var firstname = document.getElementById('firstname');
	var lastname = document.getElementById('lastname');
	var email = document.getElementById('email');
	
	// Check each input in the order that it appears in the form!
	if(notEmpty(firstname, "Please enter a valid First Name.")){
		if(notEmpty(lastname, "Please enter a valid Last Name.")){
			if(notEmpty(email, "Please enter a valid E-mail Address.")){
				if(emailValidator(email, "Please enter a valid E-mail Address.")){
					return true;
				}
			}
		}
	}
	return false;
}

/* *********************************************
FORM VALIDATION ::: REGISTRATION FORM 
********************************************* */
function formValidatorRegister(){
	// Make quick references to our fields
	var firstname = document.getElementById('firstname');
	var lastname = document.getElementById('lastname');
	var university = document.getElementById('university');
	var officeposition = document.getElementById('officeposition');


	var cellphone = document.getElementById('cellphone');
	var email = document.getElementById('email');
	var summeraddress = document.getElementById('summeraddress');
	var emergencycontact = document.getElementById('emergencycontact');
	var telephone1 = document.getElementById('telephone1');
	var howwillyoubetraveling = document.getElementById('howwillyoubetraveling');
	var insurancecompany = document.getElementById('insurancecompany');
	var insuredname = document.getElementById('insuredname');
	var employer = document.getElementById('employer');
	var policynumber = document.getElementById('policynumber');
	var groupnumber = document.getElementById('groupnumber');

	
	// Check each input in the order that it appears in the form!
	if(notEmpty(firstname, "Please enter a valid First Name.")){
		if(notEmpty(lastname, "Please enter a valid Last Name.")){
			if(notEmpty(university, "Please enter a valid University Represented.")){
				if(notEmpty(officeposition, "Please enter a valid Office/Position.")){

if(notEmpty(cellphone, "Please enter a valid cell Phone.")){
	if(lengthRestriction(cellphone, 10, 20)) {
		if(notEmpty(email, "Please enter a valid Email(s).")){
			if(notEmpty(summeraddress, "Please enter a valid Summer Address.")){
				if(notEmpty(emergencycontact, "Please enter a valid Emergency Contact Name and Relation.")){
					if(notEmpty(telephone1, "Please enter a valid Emergency Contact Name Telephone 1.")){
						if(lengthRestriction(telephone1, 10, 20)) {
							if(notEmpty(howwillyoubetraveling, "Please enter a valid How will you be traveling to retreat.")){
								if(notEmpty(insurancecompany, "Please enter a valid Insurance Company.")){
									if(notEmpty(insuredname, "Please enter a valid Insured Name.")){
										if(notEmpty(employer, "Please enter a valid Employer.")){
											if(notEmpty(policynumber, "Please enter a valid Policy Number.")){
												if(notEmpty(groupnumber, "Please enter a valid Group Number.")){
													return true;
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
}

				}
			}
		}
	}
	return false;
}

/* *********************************************
FORM VALIDATION ::: MYACCOUNT FORM 
********************************************* */
function formValidatorMyAccount(){
	// Make quick references to our fields
	var firstname = document.getElementById('firstname');
	var lastname = document.getElementById('lastname');
	var email = document.getElementById('email');
	var address = document.getElementById('address1');
	var city = document.getElementById('city');
	var state = document.getElementById('state');
	var zip = document.getElementById('zip');
	var university = document.getElementById('ext1');
	// var officeposition = document.getElementById('officeposition');
	
	// Check each input in the order that it appears in the form!
	if(notEmpty(firstname, "Please enter a valid First Name.")){
		if(notEmpty(lastname, "Please enter a valid Last Name.")){
			if(notEmpty(email, "Please enter a valid E-mail Address.")){
				if(emailValidator(email, "Please enter a valid E-mail Address.")){
					if(notEmpty(address, "Please enter a valid Address.")){
						if(notEmpty(city, "Please enter a valid City.")){
							if(notEmpty(state, "Please enter a valid State.")){
								if(notEmpty(zip, "Please enter a valid Zip.")){
									if(notEmpty(university, "Please enter a valid University.")){
										return true;
									}
								}
							}
						}
					}
				}
			}
		}
	}
	return false;
}

/* *********************************************
FORM VALIDATION ::: MYACCOUNT FORM [user registration]
********************************************* */
function formValidatorMyAccountREGISTER(){
	// Make quick references to our fields
	var firstname = document.getElementById('firstname');
	var lastname = document.getElementById('lastname');
	var email = document.getElementById('email');
	var address = document.getElementById('address1');
	var city = document.getElementById('city');
	var state = document.getElementById('state');
	var zip = document.getElementById('zip');
	var university = document.getElementById('ext1');
	// var officeposition = document.getElementById('officeposition');


	var emailCONFIRM = document.getElementById('email2');
	var password = document.getElementById('passwordNoCache');
	var passwordCONFIRM = document.getElementById('password2');

	
	// Check each input in the order that it appears in the form!
	if(notEmpty(firstname, "Please enter a valid First Name.")){
		if(notEmpty(lastname, "Please enter a valid Last Name.")){
			if(notEmpty(email, "Please enter a valid E-mail Address.")){
				if(emailValidator(email, "Please enter a valid E-mail Address.")){

					if(notEmpty(emailCONFIRM, "Please enter a valid E-mail Confirm.")){
						if(notMatch(email, emailCONFIRM, "E-mail and E-mail Confirm do not match.")){
							if(notEmpty(password, "Please enter a valid Password.")){
								if(notEmpty(passwordCONFIRM, "Please enter a valid Password Confirm.")){
									if(notMatch(password, passwordCONFIRM, "Password and Password Confirm do not match.")){
					
										if(notEmpty(address, "Please enter a valid Address.")){
											if(notEmpty(city, "Please enter a valid City.")){
												if(notEmpty(state, "Please enter a valid State.")){
													if(notEmpty(zip, "Please enter a valid Zip.")){
														if(notEmpty(university, "Please enter a valid University.")){
															return true;
														}
													}
												}
											}
										}
					
									}
								}
							}
						}
					}

				}
			}
		}
	}
	return false;
}


/* *********************************************
FORM VALIDATION ::: CORE FUNCTIONS
********************************************* */
function notEmpty(elem, helperMsg){
	// if(elem.value.length == 0){
	if(elem.value.length <= 1 || elem.value.toLowerCase() == 'n/a' || elem.value.toLowerCase() == 'na'){
		alert(helperMsg);
		elem.focus(); // set the focus to this input
		return false;
	}
	return true;
}

function isNumeric(elem, helperMsg){
	var numericExpression = /^[0-9]+$/;
	if(elem.value.match(numericExpression)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function isAlphabet(elem, helperMsg){
	var alphaExp = /^[a-zA-Z]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function isAlphanumeric(elem, helperMsg){
	var alphaExp = /^[0-9a-zA-Z]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function lengthRestriction(elem, min, max){
	var uInput = elem.value;
	if(uInput.length >= min && uInput.length <= max){
		return true;
	}else{
		alert("Please enter between " +min+ " and " +max+ " characters");
		elem.focus();
		return false;
	}
}

function madeSelection(elem, helperMsg){
	if(elem.value == "Please Choose"){
		alert(helperMsg);
		elem.focus();
		return false;
	}else{
		return true;
	}
}

function emailValidator(elem, helperMsg){
	var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
	if(elem.value.match(emailExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function notMatch(elemA, elemB, helperMsg){
	if(elemA.value != elemB.value){
		alert(helperMsg);
		elemA.focus(); // set the focus to this input
		return false;
	}
	return true;
}
