function contactValidate() {
	var msg = '';
	var phonePattern=/^\d{3}-\d{3}-\d{4}$/;
	var frm = document.frmContact;
	// check for required form fields 
	if(frm.emailto.options[frm.emailto.selectedIndex].value == '') {
		msg += "You must select something from the dropdown list to indicate what your comments are regarding.\n";
	}
	if(!frm.fname.value.length) {
		msg += "You must enter your first name.\n";
	}
	if(!frm.lname.value.length) {
		msg += "You must enter your last name.\n";
	}
	if(!frm.email.value.length) {
		msg += "You must enter your email address.\n";
	} else if(!emailValidate(frm.email.value)) {
		msg += "You must enter a valid email address.\n";
	}
	if(!frm.phone.value.length) {
		msg += "You must enter your phone number.\n";
	} else if(frm.phone.value == '555-555-5555') {
		msg += "You must enter your phone number.\n";
	} else if(!phonePattern.test(frm.phone.value)) {
		msg += "You must enter a valid phone number, in the format (999) 999-9999.\n";
	}
	// if there is no error message, submit form
	if(!msg.length) {
		return true;
	// else display error message & do not submit form
	} else {
		alert('The following errors occurred: \n\n' + msg);
		return false;
	}
}

function charterValidate() {
	var msg = '';
	var phonePattern=/^\d{3}-\d{3}-\d{4}$/;
	var frm = document.frmCharter;
	// check for required form fields 
	if(!frm.fname.value.length) {
		msg += "You must enter your first name.\n";
	}
	if(!frm.lname.value.length) {
		msg += "You must enter your last name.\n";
	}
	if(!frm.addr1.value.length) {
		msg += "You must enter your street address.\n";
	}
	if(!frm.city.value.length) {
		msg += "You must enter your city.\n";
	}
	if(!frm.state.value.length) {
		msg += "You must enter your state.\n";
	}
	if(!frm.zip.value.length) {
		msg += "You must enter your zip code.\n";
	}
	if(!frm.phone.value.length) {
		msg += "You must enter your phone number.\n";
	} else if(frm.phone.value == '555-555-5555') {
		msg += "You must enter your phone number.\n";
	} else if(!phonePattern.test(frm.phone.value)) {
		msg += "You must enter a valid phone number, in the format (999) 999-9999.\n";
	}
	if(!frm.email.value.length) {
		msg += "You must enter your email address.\n";
	} else if(!emailValidate(frm.email.value)) {
		msg += "You must enter a valid email address.\n";
	}
	if(!frm.groupName.value.length) {
		msg += "You must enter the name of your group.\n";
	}
	if(!frm.guests.value.length) {
		msg += "You must enter the number of guests that will be attending.\n";
	}
	if(!frm.dates.value.length) {
		msg += "You must enter the date(s) that the charter is needed.\n";
	}
	// if there is no error message, submit form
	if(!msg.length) {
		return true;
	// else display error message & do not submit form
	} else {
		alert('The following errors occurred: \n\n' + msg);
		return false;
	}
}



function emailValidate (emailStr) {
	var emailPattern=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPattern=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + "+"
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	var matchArray=emailStr.match(emailPattern)
	var msg='';
	if (emailStr == ''){
		return true;
	} else {
		if (matchArray==null) {
			//email address is not in a valid format.
			return false;
		}
	}
	var user=matchArray[1]
	var domain=matchArray[2]
	if (user.match(userPat)==null) {
		//The username does not seem to be valid.
		return false;
	}
	var IPArray=domain.match(ipDomainPattern)
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				//Destination IP address is invalid.
				return false;
			}
		}
		return true
	}
	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
		//The domain name does not seem to be valid.
		return false;
	}
	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2) {
		//The E-mail address must end in a three-letter domain, or two letter country.
		return false;
	}
	if (len<2) {
 		//This E-mail address is missing a hostname.
		return false;
	}
	// else return true;
	return true;
		
}

