//This script calls methods in common.js
function validateFeedbackForm() {
	var ret = false;
	var isException = false;
	//var patternEmail = /^[^\s@]+@[^\s.@]+([.][^\s@]+)+$/;
	var patternEmail = /^[^\s@]+@[^\s.@]{1,63}([.][^\s@]{1,63})+$/;
	var patternNonInteger = /\D/;
	var msg = "";
	var delimMsg = "\n";
	var listMissingFields = "";
	var delimMissingFields = ", ";
	var countMissingFields = 0;
	var i = 0;
	var typeChecked = false;
	var phone;

	phone = document.feedbackform.AreaCode.value;
	phone = phone + document.feedbackform.Phone1.value;
	phone = phone + document.feedbackform.Phone2.value;

	while (i < document.feedbackform.Type.length && !typeChecked)
		if (document.feedbackform.Type[i].checked)
			typeChecked = true;
		else
			i++;
	if (!typeChecked) {
		listMissingFields = listMissingFields.listAppend("Type (Question / Comment / Problem)", delimMissingFields);
		countMissingFields = countMissingFields + 1;
	}

	if (document.feedbackform.FirstName.value.trim().length == 0) {
		listMissingFields = listMissingFields.listAppend("First Name", delimMissingFields);
		countMissingFields = countMissingFields + 1;
	}
	if (document.feedbackform.LastName.value.trim().length == 0) {
		listMissingFields = listMissingFields.listAppend("Last Name", delimMissingFields);
		countMissingFields = countMissingFields + 1;
	}
	if (phone.trim().length == 0) {
		listMissingFields = listMissingFields.listAppend("Phone Number", delimMissingFields);
		countMissingFields = countMissingFields + 1;
	}
	if (document.feedbackform.Email.value.trim().length == 0) {
		listMissingFields = listMissingFields.listAppend("E-Mail Address", delimMissingFields);
		countMissingFields = countMissingFields + 1;
	}
	if (document.feedbackform.Captcha.value.trim().length == 0) {
		listMissingFields = listMissingFields.listAppend("Verification Code", delimMissingFields);
		countMissingFields = countMissingFields + 1;
	}
	if (countMissingFields > 0) {
		isException = true;
		msg = "Required field";
		if (countMissingFields > 1)
			msg = msg + "s";
		msg = msg + " missing: " + listMissingFields + ".";
	}

	if (phone.trim().length > 0)
		if (phone.length < 10) {
			isException = true;
			msg = msg.listAppend("Phone Number is not complete.", delimMsg);
		} else if (patternNonInteger.test(phone.trim())) {
			isException = true;
			msg = msg.listAppend("The Phone Number must be numeric.", delimMsg);
		}

	if (document.feedbackform.Email.value.trim().length > 0 && !patternEmail.test(document.feedbackform.Email.value.trim())) {
		isException = true;
		msg = msg.listAppend("The E-Mail Address you have entered is invalid.", delimMsg);
	}

	if (isException)
		alert(msg);
	else
		ret = true;

	return ret;
}