








function validateMayorA(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oRange = new mayorA();
                for (x in oRange) {
                    if ((form[oRange[x][0]].type == 'text' ||
                         form[oRange[x][0]].type == 'textarea') &&
                        (form[oRange[x][0]].value.length > 0)) {
                        var fMayorA = parseInt(oRange[x][2]("mayora"));
                        var fValue = parseInt(form[oRange[x][0]].value);
                        if (!(fValue >= fMayorA)) {
                            if (i == 0) {
                                focusField = form[oRange[x][0]];
                            }
                            fields[i++] = oRange[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                    focusField.focus();
                    focusField.select();
                    alert(fields.join('\n'));
                }
                return bValid;
            }
function validateMayorIgualAFecha(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oMayorAFecha = new mayorIgualAFecha();
                for (x in oMayorAFecha) {
                    if ((form[oMayorAFecha[x][0]].type == 'text' ||
                         form[oMayorAFecha[x][0]].type == 'textarea') &&
                        (form[oMayorAFecha[x][0]].value.length > 0)) {
                        existeCampo = false;
                        for (var j = 0; j<form.elements.length; j++) {
                            if (form.elements[j].name == oMayorAFecha[x][2]("mayorigualafecha")) {
                                existeCampo = true;
                            }
                        }
                        if (existeCampo) {
                          var field = form.elements[oMayorAFecha[x][2]("mayorigualafecha")];
                          var fMayorAFecha = new Date(field.value.substring(6,10),
                                                      field.value.substring(3,5)-1,
                                                      field.value.substring(0,2));
                        } else {
                            var fMayorAFecha = new Date(oMayorAFecha[x][2]("mayorigualafecha").substring(6,10),
                                                        oMayorAFecha[x][2]("mayorigualafecha").substring(3,5)-1,
                                                        oMayorAFecha[x][2]("mayorigualafecha").substring(0,2));
                        }
                        var fValue = new Date(form[oMayorAFecha[x][0]].value.substring(6,10),
                                              form[oMayorAFecha[x][0]].value.substring(3,5)-1,
                                              form[oMayorAFecha[x][0]].value.substring(0,2));
                        if (!(fValue.getTime() >= fMayorAFecha.getTime())) {
                            if (i == 0) {
                                focusField = form[oMayorAFecha[x][0]];
                            }
                            fields[i++] = oMayorAFecha[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                    focusField.focus();
                    focusField.select();
                    alert(fields.join('\n'));
                }
                return bValid;
            }
function validateCuitNumero(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oNumero = new validCuitNumero();
                for (x in oNumero) {
                    if ((form[oNumero[x][0]].type == 'text' ||
                        form[oNumero[x][0]].type == 'textarea') &&
                        (form[oNumero[x][0]] != null) &&
                        (form[oNumero[x][0]].value.length > 0)) {
                        if (!(form[oNumero[x][0]].value.length == 8)) {
                            if (i == 0) {
                                focusField = form[oNumero[x][0]];
                            }
                            fields[i++] = oNumero[x][1];
                            bValid = false;
                        }//if
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   focusField.select();
                   alert(fields.join('\n'));
                }                
                return bValid;
            }
function validateRequeridoSiNoNulo(form) {
              var bValid = true;
                var focusField = null;
                var i = 0;
                var values = new Array();
                var name_op;
                var j;
                var ok = true;
                var fields = new Array();
                var value;
                var valorCondicion;
                var cantOpciones;
                oRange = new requeridoSiNoNulo();

                for (x in oRange) {

                  if (form[oRange[x][0]].type == 'text' || form[oRange[x][0]].type == 'textarea')
                  {
                    value = form[oRange[x][0]].value;
                    cantOpciones = oRange[x][2]("cantOpciones");
                    for(j=0 ; j < cantOpciones ; j++)
                    {
                      name_op = oRange[x][2]("prop" + j);
                      values[j] = form[name_op].value;
                    }                          
                    if(value.length == 0)
                    { 
                      for(j=0; j<cantOpciones; j++)
                      {
                        if((values[j] != null) && (values[j].length > 0))
                        {
                          ok = false;
                        }
                      }                          
                      if(!ok)
                      {
                        if (i == 0)
                        {
                            focusField = form[oRange[x][0]];
                        }
                        fields[i++] = oRange[x][1];
                        bValid = false;
                      }
                    }
                  }
                }
                if (fields.length > 0) {
                    focusField.focus();
                    focusField.select();
                    alert(fields.join('\n'));
                }
                return bValid;
              }
function validateMenorIgualAFecha(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oMenorAFecha = new menorIgualAFecha();
                for (x in oMenorAFecha) {
                    if ((form[oMenorAFecha[x][0]].type == 'text' ||
                         form[oMenorAFecha[x][0]].type == 'textarea') &&
                        (form[oMenorAFecha[x][0]].value.length > 0)) {
                        existeCampo = false;
                        for (var j = 0; j<form.elements.length; j++) {
                            if (form.elements[j].name == oMenorAFecha[x][2]("menorigualafecha")) {
                                existeCampo = true;
                            }
                        }
                        if (existeCampo) {
                          var field = form.elements[oMenorAFecha[x][2]("menorigualafecha")];
                          var fMenorAFecha = new Date(field.value.substring(6,10),
                                                      field.value.substring(3,5)-1,
                                                      field.value.substring(0,2));
                        } else {
                            var fMenorAFecha = new Date(oMenorAFecha[x][2]("menorigualafecha").substring(6,10),
                                                        oMenorAFecha[x][2]("menorigualafecha").substring(3,5)-1,
                                                        oMenorAFecha[x][2]("menorigualafecha").substring(0,2));
                        }
                        var fValue = new Date(form[oMenorAFecha[x][0]].value.substring(6,10),
                                              form[oMenorAFecha[x][0]].value.substring(3,5)-1,
                                              form[oMenorAFecha[x][0]].value.substring(0,2));
                        if (!(fValue.getTime() <= fMenorAFecha.getTime())) {
                            if (i == 0) {
                                focusField = form[oMenorAFecha[x][0]];
                            }
                            fields[i++] = oMenorAFecha[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                    focusField.focus();
                    focusField.select();
                    alert(fields.join('\n'));
                }
                return bValid;
            }
function validateCuitDigitoVerificador(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oDigVerificador = new validCuitDigitoVerificador();
                for (x in oDigVerificador) {
                    if ((form[oDigVerificador[x][0]].type == 'text' ||
                        form[oDigVerificador[x][0]].type == 'textarea') &&
                        (form[oDigVerificador[x][0]] != null) &&
                        (form[oDigVerificador[x][0]].value.length > 0)) {
                        if (!(form[oDigVerificador[x][0]].value.length == 1)) {
                            if (i == 0) {
                                focusField = form[oDigVerificador[x][0]];
                            }
                            fields[i++] = oDigVerificador[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   focusField.select();
                   alert(fields.join('\n'));
                }
                return bValid;
            }
function validateEmail(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oEmail = new email();
                for (x in oEmail) {
                    if ((form[oEmail[x][0]].type == 'text' ||
                         form[oEmail[x][0]].type == 'textarea') &&
                        (form[oEmail[x][0]].value.length > 0)) {
                        if (!checkEmail(form[oEmail[x][0]].value)) {
                            if (i == 0) {
                                focusField = form[oEmail[x][0]];
                            }
                            fields[i++] = oEmail[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                    focusField.focus();
                    focusField.select();
                    alert(fields.join('\n'));
                }
                return bValid;
            }

            /**
             * Reference: Sandeep V. Tamhankar (stamhankar@hotmail.com),
             * http://javascript.internet.com
             */
            function checkEmail(emailStr) {
               if (emailStr.length == 0) {
                   return true;
               }
               var emailPat=/^(.+)@(.+)$/;
               var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
               var validChars="\[^\\s" + specialChars + "\]";
               var quotedUser="(\"[^\"]*\")";
               var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
               var atom=validChars + '+';
               var word="(" + atom + "|" + quotedUser + ")";
               var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
               var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");
               var matchArray=emailStr.match(emailPat);
               if (matchArray == null) {
                   return false;
               }
               var user=matchArray[1];
               var domain=matchArray[2];
               if (user.match(userPat) == null) {
                   return false;
               }
               var IPArray = domain.match(ipDomainPat);
               if (IPArray != null) {
                   for (var i = 1; i <= 4; i++) {
                      if (IPArray[i] > 255) {
                         return false;
                      }
                   }
                   return true;
               }
               var domainArray=domain.match(domainPat);
               if (domainArray == null) {
                   return false;
               }
               var atomPat=new RegExp(atom,"g");
               var domArr=domain.match(atomPat);
               var len=domArr.length;
               if ((domArr[domArr.length-1].length < 2) ||
                   (domArr[domArr.length-1].length > 3)) {
                   return false;
               }
               if (len < 2) {
                   return false;
               }
               return true;
            }
function validateMayorAFecha(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oMayorAFecha = new mayorAFecha();
                for (x in oMayorAFecha) {
                    if ((form[oMayorAFecha[x][0]].type == 'text' ||
                         form[oMayorAFecha[x][0]].type == 'textarea') &&
                        (form[oMayorAFecha[x][0]].value.length > 0)) {
                        existeCampo = false;
                        for (var j = 0; j<form.elements.length; j++) {
                            if (form.elements[j].name == oMayorAFecha[x][2]("mayorafecha")) {
                                existeCampo = true;
                            }
                        }
                        if (existeCampo) {
                          var field = form.elements[oMayorAFecha[x][2]("mayorafecha")];
                          var fMayorAFecha = new Date(field.value.substring(6,10),
                                                      field.value.substring(3,5)-1,
                                                      field.value.substring(0,2));
                        } else {
                            var fMayorAFecha = new Date(oMayorAFecha[x][2]("mayorafecha").substring(6,10),
                                                        oMayorAFecha[x][2]("mayorafecha").substring(3,5)-1,
                                                        oMayorAFecha[x][2]("mayorafecha").substring(0,2));
                        }
                        var fValue = new Date(form[oMayorAFecha[x][0]].value.substring(6,10),
                                              form[oMayorAFecha[x][0]].value.substring(3,5)-1,
                                              form[oMayorAFecha[x][0]].value.substring(0,2));
                        if (!(fValue.getTime() > fMayorAFecha.getTime())) {
                            if (i == 0) {
                                focusField = form[oMayorAFecha[x][0]];
                            }
                            fields[i++] = oMayorAFecha[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                    focusField.focus();
                    focusField.select();
                    alert(fields.join('\n'));
                }
                return bValid;
            }
function validateObjetoImponible(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oObjetoImponible = new validObjetoImponible();
                for (x in oObjetoImponible) {
                    if ((form[oObjetoImponible[x][0]].type == 'text' ||
                         form[oObjetoImponible[x][0]].type == 'textarea') &&
                        (form[oObjetoImponible[x][0]].value.length > 0)) {
                        existeCampo = false;
                        for (var j = 0; j<form.elements.length; j++) {
                            if (form.elements[j].name == oObjetoImponible[x][2]("fieldCodigoImpuesto")) {
                                existeCampo = true;
                            }
                        }
                        if (existeCampo) {
                          var field = form.elements[oObjetoImponible[x][2]("fieldCodigoImpuesto")];
                          var fCodigoImpuesto = field.value;
                        }
                        var fValue = form[oObjetoImponible[x][0]].value;
                        if (fCodigoImpuesto == 1) {
                            var pattern = '[A-Z]{3,3}[0-9]{3,3}';
                            var pattern1 = '[A-Z]{1,1}[0-9]{7,7}';                          
                            if (!(fValue.match(pattern)) && !(fValue.match(pattern1)) && ((fValue.length != 8) && (fValue.length != 6))) {
                                if (i == 0) {
                                    focusField = form[oObjetoImponible[x][0]];
                                }
                                fields[i++] = oObjetoImponible[x][1];
                                bValid = false;
                            } 
                        } else {
                            var pattern = '[0-9]{3}[-][0-9]{6}[-][0-9]{1}';
                            if (!(fValue.match(pattern)) || (fValue.length != 12)) {
                                if (i == 0) {
                                    focusField = form[oObjetoImponible[x][0]];
                                }
                                fields[i++] = oObjetoImponible[x][1];
                                bValid = false;
                            }
                        }
                    }
                }
                if (fields.length > 0) {
                    focusField.focus();
                    focusField.select();
                    alert(fields.join('\n'));
                }
                return bValid;
            }

            function matchPattern(value, mask) {
              var bMatched = mask.exec(value);
               if (!bMatched) {
                   return false;
               }
               return true;
            }
function validateRequeridoSi(form) {
              var bValid = true;
                var focusField = null;
                var i = 0;
                var values = new Array();
                var name_op;
                var j;
                var ok = true;
                var fields = new Array();
                var value;
                var vCondicion;
                oRange = new requeridoSi();
                for (x in oRange) {
				  ok = true;
				  if (form[oRange[x][0]].type == 'text' || form[oRange[x][0]].type == 'textarea' )
                  {
	                name_op = oRange[x][2]("secondProperty");
					vCondicion=oRange[x][2]("valorCondicion");
                    value = form[name_op].value;

                         if((value==vCondicion) && (form[oRange[x][0]].value.length == 0))
                        {
						  ok = false;
                        }

                      if(!ok)
                      {
                        if (i == 0)
                        {
                            focusField = form[oRange[x][0]];
                        }
                        fields[i++] = oRange[x][1];
                        bValid = false;
                      }
                   }
				   }
                if (fields.length > 0) {
                    focusField.focus();
                    focusField.select();
                    alert(fields.join('\n'));
                }
                return bValid;

               }
function validateCuitPrefijo(form) {            
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oPrefijo = new validCuitPrefijo();
                for (p in oPrefijo) {
                    if ((form[oPrefijo[p][0]].type == 'text' ||
                        form[oPrefijo[p][0]].type == 'textarea') &&
                        (form[oPrefijo[p][0]] != null) &&
                        (form[oPrefijo[p][0]].value.length > 0)) {
                        if (!(form[oPrefijo[p][0]].value.length == 2)) {                        
                            if (i == 0) {
                                focusField = form[oPrefijo[p][0]];
                            }
                            fields[i++] = oPrefijo[p][1];
                            bValid = false;
                        }else{

                          // INICIO Validacion prefijo
                          var strPrefijo = form[oPrefijo[p][0]].value;
                          if ( (strPrefijo != "20") & (strPrefijo != "23") & (strPrefijo != "24") & (strPrefijo != "27") & 
                               (strPrefijo != "30") & (strPrefijo != "33") & (strPrefijo != "34") ){ 
                             if (i == 0) {
                                  focusField = form[oPrefijo[p][0]];
                              }//if
                              fields[i++] = oPrefijo[p][1];
                              bValid = false;
                         }//if
                          // FIN Validacion prefijo                         
                        
                        }//else
                    }//if
                }//for


                if (fields.length > 0) {
                   focusField.focus();  
                   focusField.select();                   
                   alert(fields.join('\n'));
                }
                return bValid;                
            }
function validateCreditCard(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oCreditCard = new creditCard();
                for (x in oCreditCard) {
                    if ((form[oCreditCard[x][0]].type == 'text' ||
                         form[oCreditCard[x][0]].type == 'textarea') &&
                        (form[oCreditCard[x][0]].value.length > 0)) {
                        if (!luhnCheck(form[oCreditCard[x][0]].value)) {
                            if (i == 0) {
                                focusField = form[oCreditCard[x][0]];
                            }
                            fields[i++] = oCreditCard[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                    focusField.focus();
                    focusField.select();
                    alert(fields.join('\n'));
                }
                return bValid;
            }

            /**
             * Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl
             */
            function luhnCheck(cardNumber) {
                if (isLuhnNum(cardNumber)) {
                    var no_digit = cardNumber.length;
                    var oddoeven = no_digit & 1;
                    var sum = 0;
                    for (var count = 0; count < no_digit; count++) {
                        var digit = parseInt(cardNumber.charAt(count));
                        if (!((count & 1) ^ oddoeven)) {
                            digit *= 2;
                            if (digit > 9) digit -= 9;
                        };
                        sum += digit;
                    };
                    if (sum == 0) return false;
                    if (sum % 10 == 0) return true;
                };
                return false;
            }

            function isLuhnNum(argvalue) {
                argvalue = argvalue.toString();
                if (argvalue.length == 0) {
                    return false;
                }
                for (var n = 0; n < argvalue.length; n++) {
                    if ((argvalue.substring(n, n+1) < "0") ||
                        (argvalue.substring(n,n+1) > "9")) {
                        return false;
                    }
                }
                return true;
            }
function validateSelectRequired(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oRequired = new selectRequired();
                for (x in oRequired) {
                	var field = form[oRequired[x][0]];
                	
                  if (field.type == 'select-one') {

                    var si = field.selectedIndex;
                    var fNot = oRequired[x][2]("not");
                    var fValue = field.options[si].value;
                    if (fValue == fNot) {
                      if (i == 0) {
                        focusField = form[oRequired[x][0]];
                      }
                      fields[i++] = oRequired[x][1];
                      bValid = false;
                    }
                  }
                }
                if (fields.length > 0) {
                    alert(fields.join('\n'));
                }
                return bValid;
            }
function validateInteger(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oInteger = new IntegerValidations();
                for (x in oInteger) {
                	var field = form[oInteger[x][0]];

                    if (field.type == 'text' ||
                        field.type == 'textarea' ||
                        field.type == 'select-one' ||
                        field.type == 'radio') {
                        
                        var value = '';
						// get field's value
						if (field.type == "select-one") {
							var si = field.selectedIndex;
						    if (si >= 0) {
							    value = field.options[si].value;
						    }
						} else {
							value = field.value;
						}
                        
                        if (value.length > 0) {
                        
                            if (!isAllDigits(value)) {
                                bValid = false;
                            } else {
	                            var iValue = parseInt(value);
	                            if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) {
	                                if (i == 0) {
	                                    focusField = field;
	                                }
	                                fields[i++] = oInteger[x][1];
	                                bValid = false;
	                           }
                           }
                       }
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   focusField.select();
                   alert(fields.join('\n'));
                }
                return bValid;
            }

            function isAllDigits(argvalue) {
                argvalue = argvalue.toString();
                var validChars = "0123456789";
                var startFrom = 0;
                if (argvalue.substring(0, 2) == "0x") {
                   validChars = "0123456789abcdefABCDEF";
                   startFrom = 2;
                } else if (argvalue.charAt(0) == "0") {
                   validChars = "01234567";
                   startFrom = 1;
                }
                for (var n = 0; n < argvalue.length; n++) {
                    if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false;
                }
                return true;
            }
function validateIntRange(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oRange = new intRange();
                for (x in oRange) {
                    if ((form[oRange[x][0]].type == 'text' ||
                         form[oRange[x][0]].type == 'textarea') &&
                        (form[oRange[x][0]].value.length > 0)) {
                        var iMin = parseInt(oRange[x][2]("min"));
                        var iMax = parseInt(oRange[x][2]("max"));
                        var iValue = parseInt(form[oRange[x][0]].value);
                        if (!(iValue >= iMin && iValue <= iMax)) {
                            if (i == 0) {
                                focusField = form[oRange[x][0]];
                            }
                            fields[i++] = oRange[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                    focusField.focus();
                    focusField.select();
                    alert(fields.join('\n'));
                }
                return bValid;
            }
function validateFechaMenorAHoy(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oFechaMenorAHoy = new fechaMenorAHoy();
                for (x in oFechaMenorAHoy) {
                    if ((form[oFechaMenorAHoy[x][0]].type == 'text' ||
                         form[oFechaMenorAHoy[x][0]].type == 'textarea') &&
                        (form[oFechaMenorAHoy[x][0]].value.length > 0)) {
                        var now = new Date();
                        var fHoy = new Date(now.getYear(),now.getMonth(),now.getDate());
                        var fValue = new Date(form[oFechaMenorAHoy[x][0]].value.substring(6,10),
                                              form[oFechaMenorAHoy[x][0]].value.substring(3,5)-1,
                                              form[oFechaMenorAHoy[x][0]].value.substring(0,2));
                        if (!(fValue.getTime() < fHoy.getTime())) {
                            if (i == 0) {
                                focusField = form[oFechaMenorAHoy[x][0]];
                            }
                            fields[i++] = oFechaMenorAHoy[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                    focusField.focus();
                    focusField.select();
                    alert(fields.join('\n'));
                }
                return bValid;
            }
function validateIsAllDigits(form) {            
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oDigitos = new validIsAllDigits();
                for (p in oDigitos) {
                    if ((form[oDigitos[p][0]].type == 'text' ||
                        form[oDigitos[p][0]].type == 'textarea') &&
                        (form[oDigitos[p][0]] != null) &&
                        (form[oDigitos[p][0]].value.length > 0)) {                      
                          var strDigito = form[oDigitos[p][0]].value;
                          var nDigitos  = strDigito.toString();
                          var validChars = "0123456789";
                          for (var n = 0; n < nDigitos.length; n++) {
                              if (validChars.indexOf(nDigitos.substring(n, n+1)) == -1) bValid=false;
                          }
                          if (!bValid){ 
                             if (i == 0) {
                                  focusField = form[oDigitos[p][0]];
                              }//if
                              fields[i++] = oDigitos[p][1];
                              bValid = false;
                         }//if
                    }//if
                }//for
                if (fields.length > 0) {
                   focusField.focus();  
                   focusField.select();                   
                   alert(fields.join('\n'));
                }
                return bValid;                
            }
function validateMinLength(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oMinLength = new minlength();

                for (x in oMinLength) {
                    if (form[oMinLength[x][0]].type == 'text' ||
                        form[oMinLength[x][0]].type == 'textarea' ||
                        form[oMinLength[x][0]].type == 'file') {
                        var iMin = parseInt(oMinLength[x][2]("minlength"));
                        if (form[oMinLength[x][0]].value.length < iMin) {
                            if (i == 0) {
                                focusField = form[oMinLength[x][0]];
                            }
                            fields[i++] = oMinLength[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   focusField.select();
                   alert(fields.join('\n'));
                }
                return bValid;
            }
function validateFechaMayorIgualAHoy(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oFechaMayorAHoy = new fechaMayorIgualAHoy();
                for (x in oFechaMayorAHoy) {
                    if ((form[oFechaMayorAHoy[x][0]].type == 'text' ||
                         form[oFechaMayorAHoy[x][0]].type == 'textarea') &&
                        (form[oFechaMayorAHoy[x][0]].value.length > 0)) {
                        var now = new Date();
                        var fHoy = new Date(now.getYear(),now.getMonth(),now.getDate());
                        var fValue = new Date(form[oFechaMayorAHoy[x][0]].value.substring(6,10),
                                              form[oFechaMayorAHoy[x][0]].value.substring(3,5)-1,
                                              form[oFechaMayorAHoy[x][0]].value.substring(0,2));
                        if (!(fValue.getTime() >= fHoy.getTime())) {
                            if (i == 0) {
                                focusField = form[oFechaMayorAHoy[x][0]];
                            }
                            fields[i++] = oFechaMayorAHoy[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                    focusField.focus();
                    focusField.select();
                    alert(fields.join('\n'));
                }
                return bValid;
            }
function validateFechaMayorAHoy(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oFechaMayorAHoy = new fechaMayorAHoy();
                for (x in oFechaMayorAHoy) {
                    if ((form[oFechaMayorAHoy[x][0]].type == 'text' ||
                         form[oFechaMayorAHoy[x][0]].type == 'textarea') &&
                        (form[oFechaMayorAHoy[x][0]].value.length > 0)) {
                        var now = new Date();
                        var fHoy = new Date(now.getYear(),now.getMonth(),now.getDate());
                        var fValue = new Date(form[oFechaMayorAHoy[x][0]].value.substring(6,10),
                                              form[oFechaMayorAHoy[x][0]].value.substring(3,5)-1,
                                              form[oFechaMayorAHoy[x][0]].value.substring(0,2));
                        if (!(fValue.getTime() > fHoy.getTime())) {
                            if (i == 0) {
                                focusField = form[oFechaMayorAHoy[x][0]];
                            }
                            fields[i++] = oFechaMayorAHoy[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                    focusField.focus();
                    focusField.select();
                    alert(fields.join('\n'));
                }
                return bValid;
            }
function validateMayorASinRequired(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oRange = new mayorASinRequired();
                for (x in oRange) {
                    if ((form[oRange[x][0]].type == 'text' ||
                         form[oRange[x][0]].type == 'textarea') &&
                        (form[oRange[x][0]].value.length > 0)) {
                        var fMayorA = parseInt(oRange[x][2]("mayora"));
                        var fValue = parseInt(form[oRange[x][0]].value);
                        if ((fValue != null) && (fValue.length > 0)) {
                            if (!(fValue >= fMayorA)) {
                                if (i == 0) {
                                    focusField = form[oRange[x][0]];
                                }
                                fields[i++] = oRange[x][1];
                                bValid = false;
                            }
                        }
                    }
                }
                if (fields.length > 0) {
                    focusField.focus();
                    focusField.select();
                    alert(fields.join('\n'));
                }
                return bValid;
            }
function validateRequired(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oRequired = new required();
                for (x in oRequired) {
                	var field = form[oRequired[x][0]];
                	
                    if (field.type == 'text' ||
                        field.type == 'textarea' ||
                        field.type == 'file' ||
                        field.type == 'select-one' ||
                        field.type == 'radio' ||
                        field.type == 'password') {
                        
                        var value = '';
						// get field's value
						if (field.type == "select-one") {
							var si = field.selectedIndex;
							if (si >= 0) {
								value = field.options[si].value;
							}
						} else {
							value = field.value;
						}
                        
                        if (value == '') {
                        
	                        if (i == 0) {
	                            focusField = field;
	                        }
	                        fields[i++] = oRequired[x][1];
	                        bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   focusField.select();
                   alert(fields.join('\n'));
                }
                return bValid;
            }
function validateDosCampos(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oRange = new doscampos();
                for (x in oRange) {
                    if ((form[oRange[x][0]].type == 'text' ||
                         form[oRange[x][0]].type == 'textarea') &&
                        (form[oRange[x][0]].value.length > 0)) {
                        var campo1 = form[oRange[x][2]("secondProperty")].value;
                        var campo2 = form[oRange[x][0]].value;
                        if (!(campo1 == campo2)) {
                            if (i == 0) {
                                focusField = form[oRange[x][0]];
                            }
                            fields[i++] = oRange[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                    focusField.focus();
                    focusField.select();
                    alert(fields.join('\n'));
                }
                return bValid;
            }
function validateCuit(form) { 
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oCuit = new validCuit();
                
                oPrefijo = new validCuitPrefijo();
                var nPrefijo = -1;
                
                oNumeroCuit = new validCuitNumero();
                var nNumeroCuit = -1;
                
                oDigitoVerificador = new validCuitDigitoVerificador();
                var nDigitoVerificador = -1;

          
                for (p in oPrefijo){
                    x = p;//es necesario retener el valor de p.
                    if ((form[oPrefijo[p][0]].type == 'text' ||
                         form[oPrefijo[p][0]].type == 'textarea') &&
                        (form[oPrefijo[p][0]].value.length > 0)) {
                        nPrefijo = form[oPrefijo[p][0]].value;                
                    }//if    
                }//for
                //alert("prefijo :"  +  nPrefijo);
                
                for (n in oNumeroCuit){
                    if ((form[oNumeroCuit[n][0]].type == 'text' ||
                         form[oNumeroCuit[n][0]].type == 'textarea') &&
                        (form[oNumeroCuit[n][0]].value.length > 0)) {
                        nNumeroCuit = form[oNumeroCuit[n][0]].value;                
                    }//if    
                }//for
                //alert ("Numero  es :" + nNumeroCuit);

                for (d in oDigitoVerificador){
                    if ((form[oDigitoVerificador[d][0]].type == 'text' ||
                         form[oDigitoVerificador[d][0]].type == 'textarea') &&
                        (form[oDigitoVerificador[d][0]].value.length > 0)) {
                        nDigitoVerificador = form[oDigitoVerificador[d][0]].value;                
                    }//if    
                }//for
                //alert ("Digito  es :" + nDigitoVerificador);

                //se setea el campo de cuit vacio, para que no tenga basura de busquedas anteriores
                form[oCuit[x][0]].value = "";                


                if ((form[oPrefijo[p][0]].value.length > 0) &&
                    (form[oNumeroCuit[n][0]].value.length > 0) &&
                    (form[oDigitoVerificador[d][0]].value.length > 0)){
             
                      var strPrefijo = nPrefijo;
                      var strNumero = nNumeroCuit;
                      var strDigito = nDigitoVerificador;                        
                      //el mumero no puede ser cero
                      var strNumero_aux = strNumero;
                      var h = 0;
                      while((strNumero_aux.charAt(0) == 0) && (h<7)){
                        strNumero_aux = strNumero_aux.substr(1, strNumero_aux.length - 1);
                        h++;
                      }//while

                      if(parseInt(strNumero_aux) == 0){
                          if (i == 0) {
                              focusField = form[oNumeroCuit[x][0]];
                          }//if
                          fields[i++] = oNumeroCuit[x][1];
                          bValid = false;               
                      }//if


                      // Validacion prefijo
                      if ((strPrefijo != "20") & (strPrefijo != "23") & (strPrefijo != "24") & (strPrefijo != "27") & 
                           (strPrefijo != "30") & (strPrefijo != "33") & (strPrefijo != "34") ){ 
                           if (i == 0) {
                               focusField = form[oPrefijo[x][0]];
                            }
                            fields[i++] = oPrefijo[x][1];
                            bValid = false;  
                     } else {      
                        // Validacion digito verificador
                        var valDigCuit, valDigConstant;
                        var strConstant = "54327654321";
                        var strCuit = strPrefijo + strNumero + strDigito;                
                        var valPos = 0;
                        var valResult = 0;

                        do {
                          valDigCuit = parseInt(strCuit.substr(valPos,1));
                          valDigConstant = parseInt(strConstant.substr(valPos,1));
                          valResult = valResult + (valDigCuit * valDigConstant);
                          valPos = valPos + 1; 
                        } while (valPos < 11);

                        if ( (valResult % 11) != 0 ){
                             if (i == 0) {
                                 focusField = form[oDigitoVerificador[x][0]];
                             }//if
                           fields[i++] = oDigitoVerificador[x][1];
                           bValid = false;
                        }//if
                     }//else


                      if (fields.length > 0) {
                        focusField.focus();
                        focusField.select();
                        alert(fields.join('\n'));
                      }
              
                      if (bValid){
                          //tengo que guardar el numero de cuit en el campo oculto
                          form[oCuit[x][0]].value = strPrefijo + "-" + strNumero + "-" + strDigito;
                      }
                }//if                     
             return bValid;  
               }
function validateDosCamposDistintos(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oRange = new doscamposdistintos();
                for (x in oRange) {

                   if ((form[oRange[x][0]].type == 'text' ||
                         form[oRange[x][0]].type == 'textarea') &&
                        (form[oRange[x][0]].value.length > 0)) {
                        var campo1 = form[oRange[x][2]("secondCampo")].value;
                        var campo2 = form[oRange[x][0]].value;
                        if (campo1 == campo2) {
                            if (i == 0) {
                                focusField = form[oRange[x][0]];
                            }
                            fields[i++] = oRange[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                    focusField.focus();
                    focusField.select();
                    alert(fields.join('\n'));
                }
                return bValid;
            }
function validateByte(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oByte = new ByteValidations();
                for (x in oByte) {
                	var field = form[oByte[x][0]];
                	
                    if (field.type == 'text' ||
                        field.type == 'textarea' ||
                        field.type == 'select-one' ||
						field.type == 'radio') {

						var value = '';
						// get field's value
						if (field.type == "select-one") {
							var si = field.selectedIndex;
							if (si >= 0) {
								value = field.options[si].value;
							}
						} else {
							value = field.value;
						}
                        
                        if (value.length > 0) {

	                        var iValue = parseInt(value);
	                        if (isNaN(iValue) || !(iValue >= -128 && iValue <= 127)) {
	                            if (i == 0) {
	                                focusField = field;
	                            }
	                            fields[i++] = oByte[x][1];
	                            bValid = false;
	                        }
						}
						
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   focusField.select();
                   alert(fields.join('\n'));
                }
                return bValid;
            }
function validateMaxLength(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oMaxLength = new maxlength();
                for (x in oMaxLength) {
                    if (form[oMaxLength[x][0]].type == 'text' ||
                        form[oMaxLength[x][0]].type == 'textarea') {
                        var iMax = parseInt(oMaxLength[x][2]("maxlength"));
                        if (form[oMaxLength[x][0]].value.length > iMax) {
                            if (i == 0) {
                                focusField = form[oMaxLength[x][0]];
                            }
                            fields[i++] = oMaxLength[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   focusField.select();
                   alert(fields.join('\n'));
                }
                return bValid;
            }
function validateShort(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oShort = new ShortValidations();
                for (x in oShort) {
                	var field = form[oShort[x][0]];
                	
                    if (field.type == 'text' ||
                        field.type == 'textarea' ||
                        field.type == 'select-one' ||
                        field.type == 'radio') {
                        
                        var value = '';
						// get field's value
						if (field.type == "select-one") {
							var si = field.selectedIndex;
							if (si >= 0) {
								value = field.options[si].value;
							}
						} else {
							value = field.value;
						}
                        
                        if (value.length > 0) {
                        
	                        var iValue = parseInt(value);
	                        if (isNaN(iValue) || !(iValue >= -32768 && iValue <= 32767)) {
	                            if (i == 0) {
	                                focusField = field;
	                            }
	                            fields[i++] = oShort[x][1];
	                            bValid = false;
	                       }
                       }
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   focusField.select();
                   alert(fields.join('\n'));
                }
                return bValid;
            }
function validateFechaMenorIgualAHoy(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oFechaMenorAHoy = new fechaMenorIgualAHoy();
                for (x in oFechaMenorAHoy) {
                    if ((form[oFechaMenorAHoy[x][0]].type == 'text' ||
                         form[oFechaMenorAHoy[x][0]].type == 'textarea') &&
                        (form[oFechaMenorAHoy[x][0]].value.length > 0)) {
                        var now = new Date();
                        var fHoy = new Date(now.getYear(),now.getMonth(),now.getDate());
                        var fValue = new Date(form[oFechaMenorAHoy[x][0]].value.substring(6,10),
                                              form[oFechaMenorAHoy[x][0]].value.substring(3,5)-1,
                                              form[oFechaMenorAHoy[x][0]].value.substring(0,2));
                        if (!(fValue.getTime() <= fHoy.getTime())) {
                            if (i == 0) {
                                focusField = form[oFechaMenorAHoy[x][0]];
                            }
                            fields[i++] = oFechaMenorAHoy[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                    focusField.focus();
                    focusField.select();
                    alert(fields.join('\n'));
                }
                return bValid;
            }
function validateFloat(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oFloat = new FloatValidations();
                for (x in oFloat) {
                	var field = form[oFloat[x][0]];
                	
                    if (field.type == 'text' ||
                        field.type == 'textarea' ||
                        field.type == 'select-one' ||
                        field.type == 'radio') {
                        
                    	var value = '';
						// get field's value
						if (field.type == "select-one") {
							var si = field.selectedIndex;
							if (si >= 0) {
							    value = field.options[si].value;
							}
						} else {
							value = field.value;
						}
                        
                        if (value.length > 0) {
                        
	                        var iValue = parseFloat(value);
	                        if (isNaN(iValue)) {
	                            if (i == 0) {
	                                focusField = field;
	                            }
	                            fields[i++] = oFloat[x][1];
	                            bValid = false;
	                        }
                        }
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   focusField.select();
                   alert(fields.join('\n'));
                }
                return bValid;
            }
function validateDate(form) {
               var bValid = true;
               var focusField = null;
               var i = 0;
               var fields = new Array();
               oDate = new DateValidations();
               for (x in oDate) {
                   var value = form[oDate[x][0]].value;
                   var datePattern = oDate[x][2]("datePatternStrict");
                   if ((form[oDate[x][0]].type == 'text' ||
                        form[oDate[x][0]].type == 'textarea') &&
                       (value.length > 0) &&
                       (datePattern.length > 0)) {
                     var MONTH = "MM";
                     var DAY = "dd";
                     var YEAR = "yyyy";
                     var orderMonth = datePattern.indexOf(MONTH);
                     var orderDay = datePattern.indexOf(DAY);
                     var orderYear = datePattern.indexOf(YEAR);
                     if ((orderDay < orderYear && orderDay > orderMonth)) {
                         var iDelim1 = orderMonth + MONTH.length;
                         var iDelim2 = orderDay + DAY.length;
                         var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
                         var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
                         if (iDelim1 == orderDay && iDelim2 == orderYear) {
                            dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");
                         } else if (iDelim1 == orderDay) {
                            dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
                         } else if (iDelim2 == orderYear) {
                            dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
                         } else {
                            dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
                         }
                         var matched = dateRegexp.exec(value);
                         if(matched != null) {
                            if (!isValidDate(matched[2], matched[1], matched[3])) {
                               if (i == 0) {
                                   focusField = form[oDate[x][0]];
                               }
                               fields[i++] = oDate[x][1];
                               bValid =  false;
                            }
                         } else {
                            if (i == 0) {
                                focusField = form[oDate[x][0]];
                            }
                            fields[i++] = oDate[x][1];
                            bValid =  false;
                         }
                     } else if ((orderMonth < orderYear && orderMonth > orderDay)) {
                         var iDelim1 = orderDay + DAY.length;
                         var iDelim2 = orderMonth + MONTH.length;
                         var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
                         var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
                         if (iDelim1 == orderMonth && iDelim2 == orderYear) {
                             dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");
                         } else if (iDelim1 == orderMonth) {
                             dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
                         } else if (iDelim2 == orderYear) {
                             dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
                         } else {
                             dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
                         }
                         var matched = dateRegexp.exec(value);
                         if(matched != null) {
                             if (!isValidDate(matched[1], matched[2], matched[3])) {
                                 if (i == 0) {
                                     focusField = form[oDate[x][0]];
                                 }
                                 fields[i++] = oDate[x][1];
                                 bValid =  false;
                              }
                         } else {
                             if (i == 0) {
                                 focusField = form[oDate[x][0]];
                             }
                             fields[i++] = oDate[x][1];
                             bValid =  false;
                         }
                     } else if ((orderMonth > orderYear && orderMonth < orderDay)) {
                         var iDelim1 = orderYear + YEAR.length;
                         var iDelim2 = orderMonth + MONTH.length;
                         var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
                         var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
                         if (iDelim1 == orderMonth && iDelim2 == orderDay) {
                             dateRegexp = new RegExp("^(\\d{4})(\\d{2})(\\d{2})$");
                         } else if (iDelim1 == orderMonth) {
                             dateRegexp = new RegExp("^(\\d{4})(\\d{2})[" + delim2 + "](\\d{2})$");
                         } else if (iDelim2 == orderDay) {
                             dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})(\\d{2})$");
                         } else {
                             dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{2})$");
                         }
                         var matched = dateRegexp.exec(value);
                         if(matched != null) {
                             if (!isValidDate(matched[3], matched[2], matched[1])) {
                                 if (i == 0) {
                                     focusField = form[oDate[x][0]];
                                  }
                                  fields[i++] = oDate[x][1];
                                  bValid =  false;
                              }
                          } else {
                              if (i == 0) {
                                  focusField = form[oDate[x][0]];
                              }
                              fields[i++] = oDate[x][1];
                              bValid =  false;
                          }
                     } else {
                         if (i == 0) {
                             focusField = form[oDate[x][0]];
                         }
                         fields[i++] = oDate[x][1];
                         bValid =  false;
                     }
                  }
               }
               if (fields.length > 0) {
                  focusField.focus();
                  focusField.select();
                  alert(fields.join('\n'));
               }
               return bValid;
            }

	    function isValidDate(day, month, year) {
	        if (month < 1 || month > 12) {
                    return false;
                }
                if (day < 1 || day > 31) {
                    return false;
                }
                if ((month == 4 || month == 6 || month == 9 || month == 11) &&
                    (day == 31)) {
                    return false;
                }
                if (month == 2) {
                    var leap = (year % 4 == 0 &&
                               (year % 100 != 0 || year % 400 == 0));
                    if (day>29 || (day == 29 && !leap)) {
                        return false;
                    }
                }
                return true;
            }
function validateMask(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oMasked = new mask();
                for (x in oMasked) {
                    if ((form[oMasked[x][0]].type == 'text' ||
                         form[oMasked[x][0]].type == 'textarea' ||
                         form[oMasked[x][0]].type == 'password') &&
                        (form[oMasked[x][0]].value.length > 0)) {
                        if (!matchPattern(form[oMasked[x][0]].value, oMasked[x][2]("mask"))) {
                            if (i == 0) {
                                focusField = form[oMasked[x][0]];
                            }
                            fields[i++] = oMasked[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   focusField.select();
                   alert(fields.join('\n'));
                }
                return bValid;
            }

            function matchPattern(value, mask) {
               var bMatched = mask.exec(value);
               if (!bMatched) {
                   return false;
               }
               return true;
            }
function validateMenorAFecha(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oMenorAFecha = new menorAFecha();
                for (x in oMenorAFecha) {
                    if ((form[oMenorAFecha[x][0]].type == 'text' ||
                         form[oMenorAFecha[x][0]].type == 'textarea') &&
                        (form[oMenorAFecha[x][0]].value.length > 0)) {
                        existeCampo = false;
                        for (var j = 0; j<form.elements.length; j++) {
                            if (form.elements[j].name == oMenorAFecha[x][2]("menorafecha")) {
                                existeCampo = true;
                            }
                        }
                        if (existeCampo) {
                          var field = form.elements[oMenorAFecha[x][2]("menorafecha")];
                          var fMenorAFecha = new Date(field.value.substring(6,10),
                                                      field.value.substring(3,5)-1,
                                                      field.value.substring(0,2));
                        } else {
                            var fMenorAFecha = new Date(oMenorAFecha[x][2]("menorafecha").substring(6,10),
                                                        oMenorAFecha[x][2]("menorafecha").substring(3,5)-1,
                                                        oMenorAFecha[x][2]("menorafecha").substring(0,2));
                        }
                        var fValue = new Date(form[oMenorAFecha[x][0]].value.substring(6,10),
                                              form[oMenorAFecha[x][0]].value.substring(3,5)-1,
                                              form[oMenorAFecha[x][0]].value.substring(0,2));
                        if (!(fValue.getTime() < fMenorAFecha.getTime())) {
                            if (i == 0) {
                                focusField = form[oMenorAFecha[x][0]];
                            }
                            fields[i++] = oMenorAFecha[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                    focusField.focus();
                    focusField.select();
                    alert(fields.join('\n'));
                }
                return bValid;
            }
function validateRange(form) {
                return validateIntRange(form);
            }
function validateFloatRange(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oRange = new floatRange();
                for (x in oRange) {
                    if ((form[oRange[x][0]].type == 'text' ||
                         form[oRange[x][0]].type == 'textarea') &&
                        (form[oRange[x][0]].value.length > 0)) {
                        var fMin = parseFloat(oRange[x][2]("min"));
                        var fMax = parseFloat(oRange[x][2]("max"));
                        var fValue = parseFloat(form[oRange[x][0]].value);
                        if (!(fValue >= fMin && fValue <= fMax)) {
                            if (i == 0) {
                                focusField = form[oRange[x][0]];
                            }
                            fields[i++] = oRange[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                    focusField.focus();
                    focusField.select();
                    alert(fields.join('\n'));
                }
                return bValid;
            }
 

