function validateForm(validateBirthdates,validateCitizenships){
	var errorMessage;
	var birthdateField;
	var emailField;
	var addressField;
	var cityField;
	var stateField;
	var zipField;
	var daytimePhoneField;
	var directionOfTravelField;
	var passengerField = [];
	var passengerErrors =[];
	
	birthdateField=document.getElementById('birthdate');
	emailField=document.getElementById('fullemail');
	addressField=document.getElementById('address');
	cityField=document.getElementById('city');
	stateField=document.getElementById('state');
	zipField=document.getElementById('zip');
	daytimePhoneField=document.getElementById('daytimePhone');
	directionOfTravelField=document.getElementById('directionOfTravel');

	if(typeof validateBirthdates != 'boolean') {
		validateBirthdates = true;
	}
	if(typeof validateCitizenships != 'boolean') {
		validateCitizenships = true;
	}

	for(var i=0;i<10;i++){
		var passengerSubField = [];
		passengerSubField.push(document.getElementById('passenger' + (i + 1) + 'Name'));
		passengerSubField.push(document.getElementById('passenger' + (i + 1) + 'Age'));
		if(validateBirthdates){
			passengerSubField.push(document.getElementById('passenger' + (i + 1) + 'Birthdate'));
		}
		if(validateCitizenships){
			passengerSubField.push(document.getElementById('passenger' + (i + 1) + 'Citizenship'));
		}
		passengerField.push(passengerSubField);
	}

	errorMessage='';

	if((birthdateField.value.match(/^\s*$/i))){
		errorMessage += '-Please enter a valid birthdate';
	}
	if((emailField.value.match(/^\s*$/i))){
		errorMessage += '-\nPlease enter a valid email address';
	}
	if((addressField.value.match(/^\s*$/i))){
		errorMessage += '\n-Please enter your contact address';
	}
	if((cityField.value.match(/^\s*$/i))){
		errorMessage += '\n-Please enter your contact city';
	}
	if((stateField.value.match(/^\s*$/i))){
		errorMessage += '\n-Please enter your contact state';
	}
	if((zipField.value.match(/^\s*$/i))){
		errorMessage += '\n-Please enter your contact postal code';
	}
	if((daytimePhoneField.value.match(/^\s*$/i))){
		errorMessage += '\n-Please enter your preferred contact phone number';
	}
	if(!(directionOfTravelField.options[directionOfTravelField.selectedIndex].value == "Northbound" || directionOfTravelField.options[directionOfTravelField.selectedIndex].value == "Southbound")){
		errorMessage += '\n-Please enter your direction of travel';
	}

	for(var i=0;i<10;i++){
		if(passengerField[i][0].value.match(/^.+$/i) || i == 0){
			if(!passengerField[i][0].value.match(/^[\w]+[\s]+[\w]+.*$/i)){
				errorMessage += '\n-Please enter the full legal name (including middle name) for passenger ' + (i + 1);
			}
			if(!(passengerField[i][1].value.match(/^\s*\d+\s*$/i)) || (validateBirthdates && !(passengerField[i][2].value.match(/[^\s]+/i))) || (validateCitizenships && !(passengerField[i][3].value.match(/[^\s]+/i)))) {
				errorMessage += '\n-Please enter all required information for passenger ' + (i + 1);
			}
		}
	}

	if(errorMessage != ''){
		alert('The following errors occurred processing your form:\n' + errorMessage);
		return false;
	}
	else {
		return true;
	}
}