/*
	Validate responses from user
*/

function validate(f) {
	errorMessage = "";
	isValid = true;
	
	if (f.first_name.value.length == 0) {
		errorMessage += "Please enter your first name\n";
		isValid = false;
	}
	
	if (f.last_name.value.length == 0) {
		errorMessage += "Please enter your last name\n";
		isValid = false;
	}
	
	if (f.address.value.length == 0) {
		errorMessage += "Please enter your address\n";
		isValid = false;
	}
	
	if (f.city.value.length == 0) {
		errorMessage += "Please enter your city\n";
		isValid = false;
	}
	
	// state is mandatory is country is USA/Canada
	if (f.country.value == "") {
		errorMessage += "Please select your country\n";
		isValid = false;
	} else {
		// a country was chosen -- if it was USA/Canada, check the state and zip
		if ((f.country.value == "USA") || (f.country.value == "CAN")) {
			if (f.state.value == "") {
				errorMessage += "Please select your state/province\n";
				isValid = false;
			}
			if (f.zip.value.length < 5) {
				errorMessage += "Please enter your zip/postal code\n";
				isValid = false;
			}
		}
	}
	
	// email address is optional -- validate if it exists
	if (f.email.value.length > 0) {
		if (!verifyEmail(f.email.value)) {
			errorMessage += "Please enter a valid email address\n";
			isValid = false;
		}
	}
	
	// phone number is optional -- very basic validation if it exists
	if (f.phone.value.length > 0) {
		var phoneReg = "[0-9]";
		var phoneRegex = new RegExp(phoneReg);
		if (!phoneRegex.test(f.phone.value)) {
			errorMessage += "Please enter a valid phone number\n";
			isValid = false;
		}
	}
	
	if (f.model.selectedIndex <= 0) {
		errorMessage += "Please select your Trek model\n";
		isValid = false;
	}
	
	if (f.purchase_month.selectedIndex == 0 || f.purchase_day.selectedIndex == 0 || f.purchase_year.selectedIndex == 0) {
		errorMessage += "Please enter your date of purchase\n";
		isValid = false;
	}
	
	if (f.color.value == "") {
		errorMessage += "Please enter your bike color\n";
		isValid = false;
	}
	
	if (f.serial_number.value == "") {
		errorMessage += "Please select your serial number\n";
		isValid = false;
	}

	if (errorMessage != "") {
		alert(errorMessage);
	}
	return isValid;
}

function verifyEmail(email) {
     var emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
     var regex = new RegExp(emailReg);
     return regex.test(email);
}