
var varOnBlur = ""
var bOnClick = false
//----------------------- Data Validation -----------------
//----------------------- Generic functions -----------------
function SearchString(strString, strCriteria)
{
	var r, re;
	var s = strString;
	re = new RegExp(strCriteria,"i");
	r = s.search(re);
	return(r);
}
//-----------------------------------------------------------
function jchkLength(strTest, intMin, intMax)
{
	if ((intMax!=0) || (intMin!=0)) {
		if (intMax==0) {
			if (strTest.value.length < intMin) {
				return true;
			} else {
				return false;
			}
		} else {
			if (intMax==intMin) {
				if (strTest.value.length == intMin){
					return false;
				} else {
					return true;
				}	
			} else {
				if ((strTest.value.length < intMin) || (strTest.value.length > intMax)) {
					return true;
				} else {
					return false;
				}
			}
		}
	} else {
		return false;
	}
}
//-----------------------------------------------------------
function jchkValue(strTest, intMin, intMax)
{
	if ((intMin == -99999) && (intMax == -99999)) {return false;}
	
	if (intMax == -99999) {
		if (strTest < intMin) {
			return true;
		} else {
			return false;
		};
	} else if (intMin == -99999) {
		if (strTest > intMax) {
			return true;
		} else {
			return false;
		};
	} else {
		if ((strTest < intMin) || (strTest > intMax)) {
			return true;
		} else {
			return false;
		};
	};
}
//----------------------- parseMsgErrorLS -----------------
function parseMsgErrorLS(strMessage, strFieldName, lmin, lmax) 
{
	var strOutput = strMessage;
	
	//parse di %%fieldName%%
	strOutput = strOutput.replace("%%FieldName%%", strFieldName);
	//parse di %%minValue%%
	strOutput = strOutput.replace("%%minValue%%", lmin);
	//parse di %%maxValue%%
	strOutput = strOutput.replace("%%maxValue%%", lmax);
	//parse di %%separator%%
	strOutput = strOutput.replace("%%separator%%", varTrueDiv);
	//parse di %%ExampleOnlyDateAbbrev%%
	strOutput = strOutput.replace("%%ExampleOnlyDateAbbrev%%", formatlOnlyDate);
	//parse di %%ExampleDate%%
	strOutput = strOutput.replace("%%ExampleDate%%", formatlDataRif);
	//parse di %%ExampleDateTimeAbbrev%%
	strOutput = strOutput.replace("%%ExampleDateTimeAbbrev%%", formatlDate);
	//parse di %%ExampleTime%%
	strOutput = strOutput.replace("%%ExampleTime%%", formatlOnlyTimeRif);
	//parse di %%ExampleTimeAbbrev%%
	strOutput = strOutput.replace("%%ExampleTimeAbbrev%%", formatlOnlyTime);

	return strOutput;
}
//----------------------- getRightTypeMsgError -----------------
function getRightTypeMsgError (strTypeError, strFieldName, min, max) 
{
	if (bLanguage==true) {
		eval("alert(parseMsgErrorLS(" + strTypeError + ", strFieldName, min, max));")
	} else {
		switch (strTypeError) {
			case "SM_INSERITITAGHTML":
				alert("ATTENZIONE - Per motivi di sicurezza non č permesso inserire tag HTML (p.e. <,> ecc.) nel testo.");
			break;
			case "SM_LTEXTFINDNONMENODIDUECARATTERI":
				alert("ATTENZIONE - Non č consentito inserire parole con meno di due caratteri, per il campo '" + strFieldDesc + "'.");
			break;
			case "SM_LTEXTSENZAMINMAX":
				alert("Inserire un valore per '" + strFieldName + "'.");
			break;
			case "SM_LTEXTMINMAXUGUALI":
				alert("Inserire un valore per '" + strFieldName + "' di " + min + " caratteri.");
			break;
			case "SM_LTEXTMAX":
				alert("Inserire un valore per '" + strFieldName + "' di massimo " + max + " caratteri.");
			break;
			case "SM_LTEXTMIN":
				alert("Inserire un valore per '" + strFieldName + "' di minimo " + min + " caratteri.");
			break;
			case "SM_LTEXTMINMAX":
				alert("Inserire un valore per '" + strFieldName + "' di minimo " + min + " caratteri, di massimo " + max + ".");
			break;
			case "SM_LDATE":
				alert("Inserire una data ed ora per '" + strFieldName + "' nel modo seguente: " + formatlDate + " per le " + formatlOnlyTimeRif + " di " + formatlDataRif + "(orario facoltatico).");
			break;
			case "SM_LDATETIME":
				alert("Inserire una data ed ora per '" + strFieldName + "' nel modo seguente: " + formatlDate + " per le " + formatlOnlyTimeRif + " di " + formatlDataRif + ".");
			break;
			case "SM_LNUMINTEROSENZAMINMAX":
				alert("ATTENZIONE - Inserire un numero intero per '" + strFieldName + "'.");
			break;
			case "SM_LNUMINTEROMAX":
				alert("ATTENZIONE - Inserire un numero intero per '" + strFieldName + "' maggiore o uguale a " + max + ".");
			break;
			case "SM_LNUMINTEROMIN":
				alert("ATTENZIONE - Inserire un numero intero per '" + strFieldName + "' minore o uguale a " + min + ".");
			break;
			case "SM_LNUMINTEROMINMAX":
				alert("ATTENZIONE - Inserire un numero intero per '" + strFieldName + "' maggiore di " + min + ", minore di " + max + ".");
			break;
			case "SM_LNUMDECIMALEATTSENZAMINMAX":
				alert("ATTENZIONE - Inserire un numero per '" + strFieldName + "'.");
			break;
			case "SM_LNUMDECIMALEATTMAX":
				alert("ATTENZIONE - Inserire un numero per '" + strFieldName + "' maggiore o uguale a " + max + ".");
			break;
			case "SM_LNUMDECIMALEATTMIN":
				alert("ATTENZIONE - Inserire un numero per '" + strFieldName + "' minore o uguale a " + min + ".");
			break;
			case "SM_LNUMDECIMALEATTMINMAX":
				alert("ATTENZIONE - Inserire un numero per '" + strFieldName + "' maggiore di " + min + ", minore di " + max + ".");
			break;
			case "SM_LNUMDECIMALESEPSENZAMINMAX":
				alert("ATTENZIONE - Inserire un numero per '" + strFieldName + "' (usare come separatore della parte decimale: " + varTrueDiv + ").");
			break;
			case "SM_LNUMDECIMALESEPMAX":
				alert("ATTENZIONE - Inserire un numero per '" + strFieldName + "' maggiore o uguale a " + max + " (usare come separatore della parte decimale: " + varTrueDiv + ").");
			break;
			case "SM_LNUMDECIMALESEPMIN":
				alert("ATTENZIONE - Inserire un numero per '" + strFieldName + "' minore o uguale a " + min + " (usare come separatore della parte decimale: " + varTrueDiv + ").");
			break;
			case "SM_LNUMDECIMALESEPMINMAX":
				alert("ATTENZIONE - Inserire un numero per '" + strFieldName + "' maggiore di " + min + ", minore di " + max + " (usare come separatore della parte decimale: " + varTrueDiv + ").");
			break;
			case "SM_LNUMDECIMALESENZAMINMAX":
				alert("Inserire un numero per '" + strFieldName + "'.");
			break;
			case "SM_LNUMDECIMALEMAX":
				alert("Inserire un numero per '" + strFieldName + "' maggiore o uguale a " + max + ".");
			break;
			case "SM_LNUMDECIMALEMIN":
				alert("Inserire un numero per '" + strFieldName + "' minore o uguale a " + min + ".");
			break;
			case "SM_LNUMDECIMALEMINMAX":
				alert("Inserire un numero per '" + strFieldName + "' maggiore di " + min + ", minore di " + max + ".");
			break;
			case "SM_LEMAIL":
				alert("Inserire un indirizzo e-mail per '" + strFieldName + "' di minimo 5 caratteri, massimo di " + max + " caratteri.");
			break;
			case "SM_LEMAILATT":
				alert("ATTENZIONE - Inserire un indirizzo e-mail valido per '" + strFieldName + "' di minimo 5 caratteri, massimo di " + max + " caratteri.");
			break;
			case "SM_LONLYDATE":
				alert("Inserire una data per '" + strFieldName + "' nel modo seguente: " + formatlOnlyDate + " per " + formatlDataRif + ".");
			break;
			case "SM_LONLYTIME":
				alert("Inserire un orario per '" + strFieldName + "' nel modo seguente: " + formatlOnlyTime + " per le " + formatlOnlyTimeRif + ".");
			break;
			case "SM_LCOMBO":
				alert("Selezionare un elemento dall'elenco '" + strFieldName + "'.");
			break;
			case "SM_LCOMBOMIN":
				alert("Selezionare almeno " + min + " elementi dall'elenco '" + strFieldName + "'.");
			break;
			case "SM_LCOMBOMAX":
				alert("Selezionare un massimo di " + max + " elementi dall'elenco '" + strFieldName + "'.");
			break;
			case "SM_LCOMBOMINMAX":
				alert("Selezionare da " + min + " a " + max + " elementi dall'elenco '" + strFieldName + "'.");
			break;
			case "SM_LCOMBOMINMAXUGUALI":
				alert("Selezionare " + min + " elementi dall'elenco '" + strFieldName + "'.");
			break;
			case "SM_RCOMBO":
				alert("Selezionare un elemento dall'elenco '" + strFieldName + "'.");
			break;
		}
	}
}
//----------------------- jGetMsgError -----------------
function jGetMsgError (lType, strTypeError, strFieldDesc, min, max) 
{
	switch (lType) {
		//Text : nessun conrtollo
		case 0:
		case 11:
			//alert("case 0");
			if (strTypeError!="") {
				getRightTypeMsgError (strTypeError, strFieldDesc, min, max) 
			} else {
				if (min==max) {
					if ((min==0) && (max==0)) {
						getRightTypeMsgError ("SM_LTEXTSENZAMINMAX", strFieldDesc, min, max)
					} else {
						getRightTypeMsgError ("SM_LTEXTMINMAXUGUALI", strFieldDesc, min, max)
					}
				} else {
					if (min==0) {
						getRightTypeMsgError ("SM_LTEXTMAX", strFieldDesc, min, max)
					} else {
						if (max==0) {
							getRightTypeMsgError ("SM_LTEXTMIN", strFieldDesc, min, max)
						} else {
							getRightTypeMsgError ("SM_LTEXTMINMAX", strFieldDesc, min, max)
						}
					}
				}
			}
		break;
		case 1:  //Data lDate
			//alert("case 1");
			getRightTypeMsgError ("SM_LDATE", strFieldDesc, min, max)
		break;
		case 2:
			//alert("case 2");
		break;
		case 3: //lNumIntero
		case 9: //lNumInteroNull
		case 4: //lNumDecimale
		case 10: //lNumDecimaleNull
			//alert("case 3, case 9, case 4, case 10");
			if ((max==-99999) && (min==-99999)) {
				getRightTypeMsgError (strTypeError + "SENZAMINMAX", strFieldDesc, min, max)
			} else if (max==-99999) {
				getRightTypeMsgError (strTypeError + "MAX", strFieldDesc, min, max)
			} else if (min==-99999) {
				getRightTypeMsgError (strTypeError + "MIN", strFieldDesc, min, max)
			} else {
				getRightTypeMsgError (strTypeError + "MINMAX", strFieldDesc, min, max)
			}
		break;
		case 5: //lEmail
			//alert("case 5");
			getRightTypeMsgError (strTypeError, strFieldDesc, min, max)
		break;
		case 6: //lOnlyTime
			//alert("case 6");
			getRightTypeMsgError ("SM_LONLYTIME", strFieldDesc, min, max)
		break;
		case 7: //lOnlyDate
			//alert("case 7");
			getRightTypeMsgError ("SM_LONLYDATE", strFieldDesc, min, max)
		break;
		case 8: //lDateTime
			//alert("case 8");
			getRightTypeMsgError ("SM_LDATETIME", strFieldDesc, min, max)
		break;	
		case 12: //lCombo
		case 13: //lListBox
		case 14: //lRadio
		case 15: //lCheckBox
			//alert("case 12, 13, 14, 15");
			if (((""+min)!="0") && (min!="") && ((""+max)!="-99999") && (max!="")) {
				if ((""+min)==(""+max)) {
					getRightTypeMsgError ("SM_LCOMBOMINMAXUGUALI", strFieldDesc, min, max)
				} else {
					getRightTypeMsgError ("SM_LCOMBOMINMAX", strFieldDesc, min, max)
				}
			} else if ((""+min)=="1") {
				getRightTypeMsgError ("SM_LCOMBO", strFieldDesc, min, max)
			} else if (((""+min)!="0") && (min!="")) {
				getRightTypeMsgError ("SM_LCOMBOMIN", strFieldDesc, min, max)
			} else if (((""+max)!="0") && (max!="")) {
				getRightTypeMsgError ("SM_LCOMBOMAX", strFieldDesc, min, max)
			}
			//alert("prima di break");
		break;	
		case 16: //lDateTime
			//alert("case 8");
			getRightTypeMsgError ("SM_RCOMBO", strFieldDesc, min, max)
		break;	
	
		default:
			getRightTypeMsgError (strTypeError, strFieldDesc, min, max)
		break;
    }
}
//----------------------- jchkSpace -----------------
function jchkSpace(strText)
{
	var countStr = strText.value.length;
	for (var i=0; i<countStr; i++) {
		//alert(i + " - " + strText.value.charAt(i))
		if (strText.value.charAt(i)!=" ") {
			if ((strText.value.charAt(i+1)!=" ") && (strText.value.charAt(i+1)!="")) {return false;}
		}
	}
	return true;
}
//----------------------- CheckItem -----------------
function CheckItem(obCtrl, strText, minValid, maxValid, lType)
{
	if (CheckItemE(obCtrl, strText, minValid, maxValid, lType, false) == false){
		return false;
	} else {return true;}
}
//----------------------- CheckItemE -----------------
function CheckItemE(obCtrl, strText, minValid, maxValid, lType, bHTML)
{
	var lNumSelElem //per sapere quanti elementi selezionati ha un elenco

	switch (lType) {
	    //Text : nessun conrtollo
		case 0:
		case 11:
			//alert  ("case 0");//debug
			if (lType == 11)
			{
				if (jchkSpace(obCtrl) == true)
				{
					/*if (bLanguage){		
					} else {*/
						jGetMsgError (lType, "SM_LTEXTFINDNONMENODIDUECARATTERI", strText, minValid, maxValid)
						return false;						
					//}				
				}				
			}
							
			if (jchkLength(obCtrl, minValid, maxValid))
			{
				jGetMsgError (lType, "", strText, minValid, maxValid)
				return false;
			}
			
			if (bHTML==false)
			{
				if ((obCtrl.value.indexOf("<") != -1) || (obCtrl.value.indexOf(">") != -1))
				{
					jGetMsgError ("", "SM_INSERITITAGHTML", strText, minValid, maxValid)
					return false;
				}
			}
			
				
		break;
		case 1:  //Data lDate
			//alert  ("case 1");//debug
			if ((minValid==0) && (obCtrl.value=="")) {} else {
				//controlliamo il numero minimo di caratteri(dalla var varLengthlDateMin) e quello massimo(dalla somma tra varLengthlDateMax, varLengthTimeMax e 1: equivalente allo spazion tra la data e l'ora)
				if ((obCtrl.value.length<varLengthlDateMin) || (obCtrl.value.length>(varLengthlDateMax+1+varLengthTimeMax)))
				{
					jGetMsgError (lType, "", strText, minValid, maxValid)
					return false;
				}
			}
		break;
		case 2:
			//alert  ("case 2");//debug
		break;
		case 3: //lNumIntero
		case 9: //lNumInteroNull
			//alert  ("case 3");//debug
			if (lType == 3)
			{
				if (obCtrl.value=="") 
				{
					jGetMsgError (lType, "SM_LNUMINTERO", strText, minValid, maxValid)
					return false;
				};
				if ((obCtrl.value==minValid) || (obCtrl.value==maxValid)) 
				{
					return true;
				}
			} else
			{
				if ((obCtrl.value=="") || (obCtrl.value==minValid) || (obCtrl.value==maxValid)) 
				{
					return true;
				}
			};
				
			if (parseInt(obCtrl.value)!=obCtrl.value) 
			{
				jGetMsgError (lType, "SM_LNUMINTERO", strText, minValid, maxValid)
				return false;
			};
				
			if (jchkValue(obCtrl.value, minValid, maxValid))
			{
				jGetMsgError (lType, "SM_LNUMINTERO", strText, minValid, maxValid)
				return false;
			};
		break;
		case 4: //lNumDecimale
		case 10: //lNumDecimaleNull
			if (lType == 4)
			{
				if (obCtrl.value=="") 
				{
					jGetMsgError (lType, "SM_LNUMDECIMALEATT", strText, minValid, maxValid)
					return false;
				};
				if ((obCtrl.value==minValid) || (obCtrl.value==maxValid)) 
				{
					return true;
				}
			} else
			{
				if ((obCtrl.value=="") || (obCtrl.value==minValid) || (obCtrl.value==maxValid)) 
				{
					return true;
				}
			};
							
			if (obCtrl.value.indexOf(varFalseDiv)!=-1)
			{
				jGetMsgError (lType, "SM_LNUMDECIMALESEP", strText, minValid, maxValid)
				return false;
			};
				
			var re;
			var n;
			n = obCtrl.value;
			//re = /,/i;
			n = obCtrl.value.replace(varRe, varFalseDiv);
				
			if (parseFloat(n)!=n) 
			{
					jGetMsgError (lType, "SM_LNUMDECIMALEATT", strText, minValid, maxValid)
					return false;
			}
					
			if (jchkValue(n, minValid, maxValid))
			{
				jGetMsgError (lType, "SM_LNUMDECIMALE", strText, minValid, maxValid)
				return false;
			};			
		break;
		case 5: //lEmail
			//alert  ("case 5");//debug
			if ((minValid==0) && (obCtrl.value=="")) {} else {
				if (obCtrl.value.length<5 || obCtrl.value.length>maxValid)
				{
					jGetMsgError (lType, "SM_LEMAIL", strText, minValid, maxValid)
					return false;
				}
				if (bHTML=='true')
				{
					if ((obCtrl.value.indexOf("<") != -1) || (obCtrl.value.indexOf(">") != -1)) 
					{
						jGetMsgError ("", "SM_INSERITITAGHTML", strText, minValid, maxValid)
						return false;
					}
				}
				if (obCtrl.value.indexOf("@") == -1) {
					jGetMsgError (lType, "SM_LEMAILATT", strText, minValid, maxValid)
					return false;
				}
				if ((obCtrl.value.indexOf(".") == -1) || (obCtrl.value.indexOf("@.") != -1)){
					jGetMsgError (lType, "SM_LEMAILATT", strText, minValid, maxValid)
					return false;
				}
				//controllo se c'č almeno un punto dopo la chiocciola
				if (obCtrl.value.indexOf(".",obCtrl.value.indexOf("@")) == -1) {
					jGetMsgError (lType, "SM_LEMAILATT", strText, minValid, maxValid)
					return false;
				}
			}
		break;
		case 6: //lOnlyTime
			//alert  ("case 6");//debug
			if ((minValid==0) && (obCtrl.value=="")) {} else {
				//controlliamo il valore minimo(da varLengthTimeMin) e quello massimo(da varLengthTimeMax)
				if ((obCtrl.value.length<varLengthTimeMin) || (obCtrl.value.length>varLengthTimeMax))
				{
					jGetMsgError (lType, "", strText, minValid, maxValid)
					return false;
				}
			}	
		break;
		case 7: //lOnlyDate
			//alert  ("case 7");//debug
			if ((minValid==0) && (obCtrl.value=="")) {} else {
				//controlliamo valore minimo(varLengthlDateMin) e massimo(varLengthlDateMax)
				if ((obCtrl.value.length<varLengthlDateMin) || (obCtrl.value.length>varLengthlDateMax))
				{
					jGetMsgError (lType, "", strText, minValid, maxValid)
					return false;
				}
			}	
		break;		
		case 8: //lDateTime
			//alert  ("case 8");//debug
			if ((minValid==0) && (obCtrl.value=="")) {} else {
				//controlliamo la data minima(varLengthlDateMin+varLengthTimeMin + 1 carattere per lo spazio) e quella massima(varLengthlDateMax+varLengthTimeMax+ lo spazio)
				if ((obCtrl.value.length<(varLengthlDateMin+1+varLengthTimeMin)) || (obCtrl.value.length>(varLengthlDateMax+1+varLengthTimeMax)))
				{
					jGetMsgError (lType, "", strText, minValid, maxValid)
					return false;
				}
			}	
		break;	
		case 12: //lCombo
		case 13: //lListBox
			//alert  ("case 12, 13");//debug
			//inizializzo la var. che conterrā il numero di elementi nella select
			lNumSelElem = 0;
			//conto gli elementi selezionati della select
			for (var i = 0; i < obCtrl.length; i++) {
				if (obCtrl.options[i].selected==true) {
					if (!((obCtrl.options[i].value=="") && (""+minValid=="0"))) {
						lNumSelElem++;
					} else {
						minValid = 1;
					}
				}
			}
			
			//per far funzionare la funzione 'jchkValue' col nimValue a stringa vuota lo risetto a 0
			if (minValid=="") { minValid=0; }
			//controllo che il numero di elementi selezionati sia corretto
			if (jchkValue(lNumSelElem, minValid, maxValid)) {
				jGetMsgError (lType, "SM_LCOMBO", strText, minValid, maxValid)
				return false;
			} else {
				return true;
			}
		break;	
		/*
		case 14: //lRadio
			lNumSelElem = 0;
			//Ha +' di un elemento: conto gli elementi selezionati della radio
			for (var i=0; i<obCtrl.length; i++) {
				if (obCtrl[i].checked) {
					return true;
				}
			}

			//per far funzionare la funzione 'jchkValue' col nimValue a stringa vuota lo risetto a 0
			if (minValid=="") { minValid=0; }
			//controllo che il numero di elementi selezionati sia coretto
			if (jchkValue(lNumSelElem, minValid, maxValid)) {
				jGetMsgError (lType, "SM_LCOMBO", strText, minValid, maxValid)
				return false;
			} else {
				return true;
			}
			//jGetMsgError (lType, "SM_LCOMBO", strText, minValid, maxValid)
			//return false;
		break;
		*/
		case 14:
		case 15: //lCheckBox
			//alert  ("case 14, 15");//debug
			//inizializzo la var. che conterrā il numero di elementi della radio button
			lNumSelElem = 0;
			//controllo se checkbox/radio ha +' di un elemento
			if (!obCtrl[0]) {
				//Ha un elemento: controllo se l'elemento del caso č stato selezionato, ed in caso incremento il contatore degli elemnti selezionati
				if (obCtrl.checked=="1") { 
					//se c'č č stato selezionato il 'non specificato' guardo se il valore minimo 0 ed, in caso, lo incremento per far si che il non specificato sia un elemento non selezionabile
					if (!((obCtrl.value=="") && (""+minValid=="0"))) {
						lNumSelElem++;
					} else {
						minValid = 1;
					}
				}
			} else {
				//Ha +' di un elemento: conto gli elementi selezionati della radio
				for (var i=0; i<obCtrl.length; i++) {
					if (obCtrl[i].checked=="1") {
						//se c'č č stato selezionato il 'non specificato' guardo se il valore minimo 0 ed, in caso, lo incremento per far si che il non specificato sia un elemento non selezionabile
						if (!((obCtrl[i].value=="") && (""+minValid=="0"))) {
						//if (!((obCtrl[i].value=="") && (""+minValid>"0"))) {
							lNumSelElem++;
						} else {
							minValid = 1;
						}
					}
				}
			}

			//per far funzionare la funzione 'jchkValue' col nimValue a stringa vuota lo risetto a 0
			if (minValid=="") { minValid=0; }
			//controllo che il numero di elementi selezionati sia coretto
			if (jchkValue(lNumSelElem, minValid, maxValid)) {
				jGetMsgError (lType, "SM_LCOMBO", strText, minValid, maxValid)
				return false;
			} else {
				return true;
			}
		break;
		case 16: //lRecursiveCombo
			var objMaxNLC;
			//Get maximumNestLevel control
			if (navigator.appName != "Netscape")
				objMaxNLC = eval('document.all.' + obCtrl.id + '_MaximumNestLevel')
			else
				objMaxNLC = eval('document.getElementById("' + obCtrl.id + '_MaximumNestLevel")')
			//Check it's valid
			if(!objMaxNLC || objMaxNLC.value == '')
				return true;
			//Set min valid to the maximumNestLevel if necessary
			if (objMaxNLC.value < minValid)
				minValid = objMaxNLC.value;
			//Get the nest level control, the concerned combo 
			var objNLC, objValidCombo;
			if (navigator.appName != "Netscape")
			{
				objNLC = eval('document.all.' + obCtrl.id + '_NestLevel')
				objValidCombo = eval('document.all.' + obCtrl.id + minValid)
				}
			else
			{
				objNLC = eval('document.getElementById("' + obCtrl.id + '_NestLevel")')
				objValidCombo = eval('document.getElementById("' + obCtrl.id + minValid + '")')
			}
			//Check it's valid
			if(!objNLC || !objValidCombo )
				return true;
			
			if(objNLC.value < minValid || objValidCombo.value == '')
			{
				jGetMsgError (lType, "SM_RCOMBO", strText, minValid, maxValid)
				return false;
			}
		break;
    }
	return true; 
}
//-------------------------------------------------------------------------------------------------------------------------------------------------------------

