validateDebugOn=false;
	
if(validateDebugOn){
	alert("formValidation.js");
}

function validateForm(frmName,frmFields,fieldType,mainErrorTxt,fldErrorTxt){
	okToSubmit = true;
	alertFormError = mainErrorTxt+"\n";
	arrFormFields = frmFields.split(',');
	arrFieldTypes = fieldType.split(',');
	arrErrorTxt = fldErrorTxt.split(',');
	
	if(validateDebugOn){
		alert("form fields array: "+arrFormFields);
	}
	if(validateDebugOn){
		alert("form name: "+frmName);
	}

	/* loop through all items to be checked */
	for(i=0; i<arrFormFields.length; i++){
		fieldName = "";
		fieldName = arrFormFields[i];
		fieldName = fieldName.replace("str_","");
		fieldName = fieldName.replace("cbo_","");
		fieldName = fieldName.replace("_"," ");		
		/* check if field is null */
		if(arrFieldTypes[i]==1){
			if(validateDebugOn){
				alert('Check field '+i+' to see if null');
			}
			if(eval('document.'+frmName+'.'+arrFormFields[i]+'.value')==''){
				if(validateDebugOn){
					alert('Field '+i+' is null');
				}
				alertFormError = alertFormError + "- "+arrErrorTxt[i]+"\n";
				okToSubmit = false;
			}
			else{
				if(validateDebugOn){
					alert('Field '+i+' has a value of '+eval('document.'+frmName+'.'+arrFormFields[i]+'.value'));
				}
			}
		}

		/* check to see if atleast one select item is selected */
		else if(arrFieldTypes[i]==2){
			if(validateDebugOn){
				alert('Check field '+i+' to see if any thing in select box is selected');
			}
			if(eval('document.'+frmName+'.'+arrFormFields[i]+'.selectedIndex')==-1){
				okToSubmit = false;
				alertFormError = alertFormError + "- "+arrErrorTxt[i]+"\n";
			}
		}		

		/* check to see if form is filled in, all numbers and in dollar format */		
		else if(arrFieldTypes[i]==3){
			decimalPos = -1;
			posAfter = -1;
			tstString = "";
			numOK = true;
			decCnt = 0;
			if(validateDebugOn){
				alert('Check field '+i+' to see if is filled in');
			}
			if(eval('document.'+frmName+'.'+arrFormFields[i]+'.value')==""||eval('document.'+frmName+'.'+arrFormFields[i]+'.value')=="."||eval('document.'+frmName+'.'+arrFormFields[i]+'.value')=="0"){
				okToSubmit = false;
				alertFormError = alertFormError + "- "+arrErrorTxt[i]+"\n";
			}
			else{
				if(validateDebugOn){
					alert('Check field '+i+' to see if is all numbers');
				}
				eval('tstString = document.'+frmName+'.'+arrFormFields[i]+'.value')
				for (var charCnt=0;charCnt < tstString.length;charCnt++){					
					if(validateDebugOn){
						alert('Checking '+tstString.charAt(charCnt)+' to see if is number');
					}
					if((isNaN(tstString.charAt(charCnt))&&(tstString.charAt(charCnt)!="."))||(decCnt==1&&(tstString.charAt(charCnt)=="."))){
						if(validateDebugOn){
							alert(tstString.charAt(charCnt)+' is not a number');
						}
						numOK = false;
					}	
					if(tstString.charAt(charCnt)=="."){
						decimalPos = charCnt;
						decCnt ++;
					}
				}
				if (!numOK){
					okToSubmit = false;
					alertFormError = alertFormError + "- "+arrErrorTxt[i]+"\n";
				}
				else{
					if (decimalPos == -1){
					}
					else{
						posAfter = (tstString.length-1)-decimalPos;
					}
					if(validateDebugOn){
						alert('Number length '+tstString.length);
						alert('Decimal position '+decimalPos);
						alert('Places after decimal '+posAfter);
					}
					if (posAfter>2){
						okToSubmit = false;
					}
				}
			}
		}			

		/* if filled in check if all numbers and in dollar format */		
		else if(arrFieldTypes[i]==4){
			decimalPos = -1;
			posAfter = -1;
			tstString = "";
			numOK = true;
			decCnt = 0;
			if(validateDebugOn){
				alert('Check field '+i+' to see if is filled in');
			}
			if(eval('document.'+frmName+'.'+arrFormFields[i]+'.value')=="."||eval('document.'+frmName+'.'+arrFormFields[i]+'.value')=="0"){
					okToSubmit = false;
					alertFormError = alertFormError + "- "+arrErrorTxt[i]+"\n";
			}
			else if(eval('document.'+frmName+'.'+arrFormFields[i]+'.value')!=""){		
				if(validateDebugOn){
					alert('Check field '+i+' to see if is all numbers');
				}
				eval('tstString = document.'+frmName+'.'+arrFormFields[i]+'.value')
				for (var charCnt=0;charCnt < tstString.length;charCnt++){					
					if(validateDebugOn){
						alert('Checking '+tstString.charAt(charCnt)+' to see if is number');
					}
					if((isNaN(tstString.charAt(charCnt))&&(tstString.charAt(charCnt)!="."))||(decCnt==1&&(tstString.charAt(charCnt)=="."))){		
						if(validateDebugOn){
							alert(tstString.charAt(charCnt)+' is not a number');
						}
						numOK = false;
					}	
					if(tstString.charAt(charCnt)=="."){
						decimalPos = charCnt;
						decCnt ++;
					}
				}
				if (!numOK){
					okToSubmit = false;
					alertFormError = alertFormError + "- "+arrErrorTxt[i]+"\n";
				}
				else{
					if (decimalPos == -1){
					}
					else{
						posAfter = (tstString.length-1)-decimalPos;
					}
					if (posAfter>2){
						okToSubmit = false;
						alertFormError = alertFormError + "- "+arrErrorTxt[i]+"\n";
					}
				}
			}
		}	

		/* activeEdit  */		
		else if(arrFieldTypes[i]==5){
			aeObj=eval("aeObjects."+arrFormFields[i]);
		 if (aeObj.DOM.body.innerText.length == 0) {
				okToSubmit = false;
				alertFormError = alertFormError + "- "+arrErrorTxt[i]+"\n";
	  }
		}
		/* Case 6 will check the length of a field. The frmFields must contain the field name with 
		a "~" delimiter followed by the number of characters. */
		else if(arrFieldTypes[i]==6)
		{	
			arrfld = arrFormFields[i].split('~');
			if (eval(frmName + "." + arrfld[0] + ".value.length") > arrfld[1])
			{	
				okToSubmit = false;
				alertFormError = alertFormError + "- "+arrErrorTxt[i]+"\n";
			}
		}
		/* 
			Type 7 - check to see if the value of 2 form fields match
		*/
		else if(arrFieldTypes[i]==7){	
			arrfld = arrFormFields[i].split('~');
			fldOne=eval(frmName + "." + arrfld[0]);
			fldTwo=eval(frmName + "." + arrfld[1]);
			if (fldOne.value=="" || fldTwo.value=="" || fldOne.value!=fldTwo.value){	
				okToSubmit = false;
				alertFormError = alertFormError + "- "+arrErrorTxt[i]+"\n";
			}
		}
	}
	if(validateDebugOn){
		alert(okToSubmit);
	}
	if (!okToSubmit){
		if(validateDebugOn){
			alert('do not submit');
		}
		alert(alertFormError);
		return false;
	}
	else{
		if(validateDebugOn){
			alert('ok to submit');
		}
		return true;
	}
	
	
}

/* 

$History: formValidation.js $
 * 
 * *****************  Version 5  *****************
 * User: Skaiser      Date: 6/24/04    Time: 3:40p
 * Updated in $/LMSR3_DEV_CODE/js
 * initial setup done
 * 
 * *****************  Version 4  *****************
 * User: Kmcveigh     Date: 6/17/04    Time: 2:22p
 * Updated in $/LMSR3_DEV_CODE/js
 * modification to case 6 removing previously inserted new parameter
 * 
 * *****************  Version 3  *****************
 * User: Kmcveigh     Date: 6/16/04    Time: 4:11p
 * Updated in $/LMSR3_DEV_CODE/js
 * KM - Added 6th option to check the length of a field.
 * 
 * *****************  Version 2  *****************
 * User: Skaiser      Date: 6/16/04    Time: 2:25p
 * Updated in $/LMSR3_DEV_CODE/js
 * 
 * *****************  Version 1  *****************
 * User: Skaiser      Date: 6/01/04    Time: 3:19p
 * Created in $/LMSR3_DEV_CODE/js
 * initial

*/

