// RightClick Flexform validation functions
// (c) 2001-2002 www.webarchitects.nl

function validateFlexform(oForm, sErrorMessage) {
	for (var i = 0; i < oForm.elements.length; i++) {
		var oInput = oForm.elements[i];
		if (oInput.validate && !validateFlexfield(oInput, oInput.validate)) {
			oInput.focus();
			alert(oInput.description + ' ' + sErrorMessage);
			return false;
		}
	}
	return true;
}

function validateFlexfield(oInput, sValidateType) {
	if (sValidateType == 'X') {
		// No validation
		return true;
	}
	var s = oInput.value = trimSpaces(oInput.value);
	if (sValidateType == 'E' || sValidateType == 'F') {
		// E-mail
		if (sValidateType == 'F' && s == '') {
			// If F, may be empty so OK.
			return true;	
		}
		if (s.indexOf('@') < 1) return false;
		s = s.substring(s.indexOf('@') + 1, s.length);
		if (s.indexOf('.') < 1 || s.indexOf('.') >= s.length - 2) {
			// alert('Ill. dot');
			return false;
		}
		return stringContainsOnly(s, ';0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-.@\'_');
	}
	if (sValidateType == 'M') {
		// Non-empty
		sType = oInput.type.toLowerCase();
		if (sType == 'checkbox') return (oInput.checked);
		if (sType == 'radio') {
			// Get all siblings
			var aRadio = oInput.form.elements[oInput.name];
			for (var i = 0; i < aRadio.length; i++) {
				if (aRadio[i].checked) return true;
			}
			return false;
		}
		return (oInput.value != '');
	}
	if (sValidateType == 'N' || sValidateType == 'O') {
		// Numeric
		if (sValidateType == 'O' && s == '') {
			// If O, may be empty so OK.
			return true;	
		}
		if (s == '') return false;
		return stringContainsOnly(s, ' -0123456789');
	}
	return true;
}

