function validate(formName) {
	var desc = new Array();
	desc["name"] = "Name";
	desc["mtid"] = "Invoice Number";
	desc["amt"] = "Amount";
	desc["email"] = "Email";
	var f = eval("document.forms['" + formName + "']");
	var badFields = new Array();
	var j = 0;

	// Remove $ sign:
	if (f.elements['amt'].value.substr(0, 1) == "$") {
		f.elements['amt'].value = f.elements['amt'].value.substring(1, f.elements['amt'].value.length);
	}

	// Check fields:
	for (i = 0; i < f.elements.length; i++) {
		if (f.elements[i].value) {
			if (f.elements[i].value.length < 1) {
				badFields[j] = "Field \"" + desc[f.elements[i].name] + "\" must not be empty.";
				j++;
			}
		}
	}

	if (!(f.elements['name'].value > "")) {	// Check name
		badFields[j] = "Please enter your name.";
		j++;
	}

	if (f.elements['email'].value.indexOf("@") < 1) {	// Check email
		badFields[j] = "Email address must be in the form \"you@isp.com\".";
		j++;
	}

	// Check invoice number: (format: numerals only; remove any letters or special characters before submitting)
	var mtid = f.elements['mtid'].value;
	mtid = mtid.toUpperCase();
	mtid = mtid.replace(/[^0-9]/g, "");
	f.elements['mtid'].value = mtid;
	if (!(f.elements['mtid'].value > 0)) {	// Check invoice
		badFields[j] = "Invoice number not entered.";
		j++;
	}

	// Prepend tour company code
	var tcode = f.elements['suppcode'].options[f.elements['suppcode'].selectedIndex].value;
	if (tcode == "XX") {
		badFields[j] = "Please select a Provider from the pull down list.";
		j++;
	} else {
		f.elements['mtid'].value = tcode + f.elements['mtid'].value;
	}

	if (!(f.elements['amt'].value > 0)) {	// Check amount
		badFields[j] = "Payment amount is blank or less than 0.";
		j++;
	}

	// Report errors:
	if (j > 0) {	// Errors
		var alertString = "ERROR - Please check the following:\n";
		for (i = 0; i < j; i++) {
			alertString += "\n" + badFields[i];
		}
		alert(alertString);
		return(false);
	} else {	// OK
		return(true);
	}
}