function Validate(formObject) {
	var fArray = null;
	var lArray = null;
	var errMsg = "";
	var confirmMsg = "";
	//*** Check for blank fields against list in "validateFields" array.  
	//    Return error messages in "validateLabels" array.
	errMsg = RequiredFields(formObject,validateFields,validateLabels);
	//*** Check fields for blanks in "validateFields" array where two or more fieldnames are separated by "AND".  
	//    Return error messages in "validateLabels" array.
	confirmMsg = AndFields(formObject,validateFields,validateLabels);
	if (errMsg == "" && confirmMsg == "")
		return true;
	if (errMsg != "") {
		alert(errMsg);
		return false;
	}
	if (confirmMsg != "") {
		return confirm(confirmMsg);
	}
	return false;
} //*** Validate

function AndFields(formObject, fieldArray, labelArray) {
	var fieldParse = null;
	var ctl = null;
	var notBlank = false;
	var confirmMsg = "";
	var foundMsg = "";
	for (var i = 0; i<fieldArray.length; i++) {
		if (fieldArray[i].indexOf("AND") == -1)
			continue;
		fieldParse = fieldArray[i].split("AND");
		for (var j = 0; j<fieldParse.length; j++) {
			ctl = formObject[Trim(fieldParse[j])];
			ctlVal = getCtlVal(ctl);
			if (ctlVal != "" && !ctl.disabled)
				notBlank = true;
		}
		foundMsg += labelArray[i];
	}
	if (!notBlank && foundMsg != "") {
		confirmMsg = "Are you sure want to leave " + foundMsg + " blank?";
	}
	return confirmMsg;
}
function RequiredFields(formObject, fieldArray, labelArray) {
	var errMsg = "";
	var ctl = null;
	var ctlType = "";
	var ctlName = "";
	var ctlVal = "";
	var ctlIndex = 0;
	var ctlDisabled = false;
	for (var i = 0; i<fieldArray.length; i++) {
		
		if (fieldArray[i].indexOf("AND") != -1)
			continue;
			
		ctl = formObject[fieldArray[i]];
		ctlDisabled = ctl.disabled;
		ctlVal = getCtlVal(ctl);
		if(ctlVal == "" && !ctlDisabled) {
			errMsg += "\t* " + labelArray[i] + "\n";
		}
	} //*** for (var i = 0; i<fieldArray.length; i++) 
	if (errMsg != "") {
		errMsg = "One or more Required Fields are missing data:\n\n" + errMsg + "\n";
		return errMsg;
	} else
		return "";
} //*** function RequiredFields

function getCtlVal(ctl) {
	var ctlVal = "";
	switch (ctl.type) {		
		case "select-one" :
		case "select-multiple" :
			ctlIndex = ctl.selectedIndex;
			if (ctlIndex != -1)
				ctlVal = ctl.options[ctlIndex].value;
			break;
		case "radio" :
			//if (radioTested) break;
			//if (!checkRadio(formObject))
				//ctlVal = "";
			//radioTested = true;
			break;
		default :
			ctlVal = ctl.value;
			break;
	}
	return ctlVal;
}
