function IntegerIntervalValidation(PField, PMin, PMax, PFieldName, PLanguage)
{
   var errorMsg1;
   var errorMsg2;

   switch(PLanguage)
   {
      case 'FR':
         errorMsg1 = 'Le format du champ '+PFieldName+' est incorrect: seule une valeur entière est acceptée.\nMerci de n\'entrer que des chiffres sans caractère de séparation (ni espace, ni virgule, ni point).';
         errorMsg2 = 'La valeur du champ '+PFieldName+' doit être comprise entre '+PMin+' et '+PMax+'.';
         break;
      case 'ES':
         errorMsg1 = 'El formato del campo '+PFieldName+' es incorrecto: sólo se acepta un valor entero.\nPor favor digite las cifras sin caracteres de separación (ni espacio, ni coma, ni punto).';
         errorMsg2 = 'El valor el campo '+PFieldName+' debe estar comprendido entre '+PMin+' y '+PMax+'.';
         break;
      case 'EN':
      default:
         errorMsg1 = 'The field format of '+PFieldName+' is incorrect: only one integral value is allowed.\nPlease enter only numbers without any separations (no spaces, no commas or apostrophes).';
         errorMsg2 = 'The value of the field '+PFieldName+' must be comprised between '+PMin+' and '+PMax+'.';
         break;
   }

   var localInt = parseInt(PField.value);
   var res = false;
   if(PField.value)
   {
      if(!isNaN(PField.value) && CheckNumbers(PField.value))
      {
         if(localInt != PField.value)
         {
            alert(errorMsg1);
            PField.select();
            setTimeout('document.getElementById(\''+PField.id+'\').focus();', 1);
            return false;
         }
         else
         {
            // check boundaries
            if(localInt < PMin || localInt > PMax)
            {
               alert(errorMsg2);
               PField.select();
               setTimeout('document.getElementById(\''+PField.id+'\').focus();', 1);
               return false;
            }
            else
               return true;
         }
      }
      else
      {
         alert(errorMsg1);
         PField.select();
         setTimeout('document.getElementById(\''+PField.id+'\').focus();', 1);
         return false;
      }
   }
   return true;
}

function FloatIntervalValidation(PField, PPrecision, PMin, PMax, PFieldName, PLanguage)
{
   var errorMsg1;
   var errorMsg2;

   switch(PLanguage)
   {
      case 'FR':
         errorMsg1 = 'Le format du champ '+PFieldName+' est incorrect: seule une valeur avec '+PPrecision+' décimale(s) est acceptée.';
         errorMsg2 = 'La valeur du champ '+PFieldName+' doit être comprise entre '+PMin+' et '+PMax+'.';
         break;
      case 'ES':
         errorMsg1 = 'El formato del campo '+PFieldName+' es incorrecto: solo se aceptan valores con '+PPrecision+' cifra decimal.';
         errorMsg2 = 'El valor el campo '+PFieldName+' debe estar comprendido entre '+PMin+' y '+PMax+'.';
         break;
      case 'EN':
      default:
         errorMsg1 = 'The field format of '+PFieldName+' is invalid : only a value with '+PPrecision+' decimal(s) is allowed.';
         errorMsg2 = 'The value of the field '+PFieldName+' must be comprised between '+PMin+' and '+PMax+'.';
         break;
   }

   var localFloat = parseFloat(PField.value);
   /* alert('localFloat: '+localFloat); */

   if(PField.value)
   {
      if(!isNaN(PField.value))
      {
         var factor = Math.pow(10,PPrecision);
         var intField = Math.floor(localFloat * factor);
         var resField = parseFloat(intField / (factor*1.0));
         /* alert('resField: '+resField); */
         if(resField != localFloat)
         {
            alert(errorMsg1);
            PField.select();
            setTimeout('document.getElementById(\''+PField.id+'\').focus();', 1);
            return false;
         }
         else
         {
            // check boundaries
            if(localFloat < PMin || localFloat > PMax)
            {
               alert(errorMsg2);
               PField.select();
               setTimeout('document.getElementById(\''+PField.id+'\').focus();', 1);
               return false;
            }
            else
               return true;
         }
      }
      else
      {
         alert(errorMsg1);
         PField.select();
         setTimeout('document.getElementById(\''+PField.id+'\').focus();', 1);
         return false;
      }
   }
   return true;
}

function CheckNumbers(PStr)
{
   var res = true;
   var i = 0;
   while(i<PStr.length && res)
   {
      if(PStr[i] < '0' || PStr[i] > '9')
         res = false;
      else
         i++;
   }
   return res;

}


