<!--
var sFirstError = "";

function validate_fields(sFieldParameters){
	
	var sErrMsg = "";
	var asFields = sFieldParameters.split(" ");
	var sEval;

	for (var i=0; i < asFields.length; i++){
		if (asFields[i].length > 0){
			sEval = "validate" + asFields[i] + ";";
			sErrMsg += eval(sEval);
		}
	}
	if (sErrMsg.length > 0){
		window.alert(sErrMsg);
		get_obj(sFirstError).select();
		get_obj(sFirstError).focus();
		sFirstError = "";
		return false;
	}
	else {
		return true;
	}
	
}


function validate(sField,sType,iMin,iMax){
	//returns a string containing an error message or an 
	//or an empty string "" if valid data (or unable to validate data)
	var vValue = "";
	var sSingleErrMsg = "";
	var bNumError = false;
	
	if (iMax == 0){
        switch (sType){
            case 'email':
                iMax = 100;
                break;
            case 'url':
                iMax = 255;
                break;
            case 'medtext':
                iMax = 16777215;
                break;
            case 'text':
                iMax = 100;
                break;
        }
    }

	if (get_obj(sField)){
		vValue = get_obj(sField).value;
		if (vValue.length == 0 && iMin > 0){
			sSingleErrMsg = "'" + sField + "' is required.\n";
		}
		else {
			if (sType == "text" | sType == "email"){
				if (vValue.length < iMin){
					sSingleErrMsg = "'" + sField + "' is too short, Minimum length of " + sField + " is " + iMin + " characters.\n";
				}
				
				if (vValue.length > iMax){
					sSingleErrMsg = "'" + sField + "' is too long, Maximum length of " + sField + " is " + iMax + " characters.\n";
				}
			}
			if ((sType == "email") && (vValue.length > 0)){
			    //sValidEmailFilter = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
				sValidEmailFilter = "^[\\s]*[\\w-_\.]+\@[\\w]\.+[\\w][\\s]*$";
				if (!vValue.match(sValidEmailFilter)){
					sSingleErrMsg = "'" + vValue + "' is not a valid email address.\nPlease enter a valid email address (eg 'someone@hotmail.com').\n"
				}
			}
				
			if (sType == "int" | sType == "real"){
				if (isNaN(vValue)==true){
					bNumError = true;
				}
				else {
					vValue = (1 * vValue);
					if (vValue < iMin){
						bNumError = true;
					}
					if ((vValue > iMax) && (iMax != 0)){
						bNumError = true;
					}	
				}
				if (bNumError) {
					sSingleErrMsg = "'" + sField + "' must be a number"
					if (iMin > 0){
						sSingleErrMsg += " greater than " + iMin;
						if (iMax > 0){
							sSingleErrMsg += " and";
						}
					}
					if (iMax > 0){
						sSingleErrMsg += " less than " + iMax;
					}
					sSingleErrMsg += ".\n";
				}
			}
		}
		if (sSingleErrMsg.length > 0){
			//highlight field that needs re-entering.
			get_obj(sField).style.backgroundColor="#ffdddd";
			//save the first error object so you can set the focus on it.
			if (sFirstError.length==0){
				sFirstError = sField;
			}
		}
		else {
			get_obj(sField).style.backgroundColor="#ffffff";
		}
	}
	return sSingleErrMsg;
}
//-->
