// Appelle toutes les fonctions de contrôle
// aaControlsArray : tableau contenant tous les contrôles
function checkControls(aaControlsArray)
{
   laMessages = new Array();
   for (var i = 0 ; i < aaControlsArray.length ; i++)
   {
      if (aaControlsArray[i][0] == "Obligatory" || aaControlsArray[i][0] == "Incorrect")
      {
         if (laMessages[aaControlsArray[i][5]] == null)
         {
            laMessages[aaControlsArray[i][5]] = new Array();
         }
         laMessages[aaControlsArray[i][5]][laMessages[aaControlsArray[i][5]].length] = new Array(checkObligatory(aaControlsArray[i][1], aaControlsArray[i][2], aaControlsArray[i][3]), aaControlsArray[i][4], aaControlsArray[i][6]);
      }
      if (aaControlsArray[i][0] == "Length")
      {
         if (laMessages[aaControlsArray[i][6]] == null)
         {
            laMessages[aaControlsArray[i][6]] = new Array();
         }
         laMessages[aaControlsArray[i][6]][laMessages[aaControlsArray[i][6]].length] = new Array(checkLength(aaControlsArray[i][1], aaControlsArray[i][2], aaControlsArray[i][3], aaControlsArray[i][4]), aaControlsArray[i][5], aaControlsArray[i][7]);
      }
      if (aaControlsArray[i][0] == "Email")
      {
         if (laMessages[aaControlsArray[i][4]] == null)
         {
            laMessages[aaControlsArray[i][4]] = new Array();
         }
         laMessages[aaControlsArray[i][4]][laMessages[aaControlsArray[i][4]].length] = new Array(checkEmail(aaControlsArray[i][1], aaControlsArray[i][2]), aaControlsArray[i][3], aaControlsArray[i][5]);
      }
      if (aaControlsArray[i][0] == "Number")
      {
         if (laMessages[aaControlsArray[i][7]] == null)
         {
            laMessages[aaControlsArray[i][7]] = new Array();
         }
         laMessages[aaControlsArray[i][7]][laMessages[aaControlsArray[i][7]].length] = new Array(checkNumber(aaControlsArray[i][1], aaControlsArray[i][2], aaControlsArray[i][3], aaControlsArray[i][4], aaControlsArray[i][5]), aaControlsArray[i][6], aaControlsArray[i][8]);
      }
      if (aaControlsArray[i][0] == "Date")
      {
         if (laMessages[aaControlsArray[i][7]] == null)
         {
            laMessages[aaControlsArray[i][7]] = new Array();
         }
         laMessages[aaControlsArray[i][7]][laMessages[aaControlsArray[i][7]].length] = new Array(checkDate(aaControlsArray[i][1], aaControlsArray[i][2], aaControlsArray[i][3], aaControlsArray[i][4], aaControlsArray[i][5]), aaControlsArray[i][6], aaControlsArray[i][8]);
      }
      if (aaControlsArray[i][0] == "Extension")
      {
         if (laMessages[aaControlsArray[i][5]] == null)
         {
            laMessages[aaControlsArray[i][5]] = new Array();
         }
         laMessages[aaControlsArray[i][5]][laMessages[aaControlsArray[i][5]].length] = new Array(checkExtension(aaControlsArray[i][1], aaControlsArray[i][2], aaControlsArray[i][3]), aaControlsArray[i][4], aaControlsArray[i][6]);
      }
      if (aaControlsArray[i][0] == "Special")
      {
         if (laMessages[aaControlsArray[i][5]] == null)
         {
            laMessages[aaControlsArray[i][5]] = new Array();
         }
         laMessages[aaControlsArray[i][5]][laMessages[aaControlsArray[i][5]].length] = new Array(checkSpecial(aaControlsArray[i][1], aaControlsArray[i][2], aaControlsArray[i][3]), aaControlsArray[i][4], aaControlsArray[i][6]);
      }
      if (aaControlsArray[i][0] == "Correct")
      {
         if (laMessages[aaControlsArray[i][5]] == null)
         {
            laMessages[aaControlsArray[i][5]] = new Array();
         }
         laMessages[aaControlsArray[i][5]][laMessages[aaControlsArray[i][5]].length] = new Array(checkCorrect(aaControlsArray[i][1], aaControlsArray[i][2], aaControlsArray[i][3]), aaControlsArray[i][4], aaControlsArray[i][6]);
      }
   }

   for (var i in laMessages)
   {
      var laError      = new Array();
      var laWarning    = new Array();
      var laObligatory = new Array();
      var laCorrect    = new Array();
      var laIncorrect  = new Array();
      var lsValue = "checked";
      for (var j = 0 ; j < laMessages[i].length ; j++)
      {
         if (laMessages[i][j][2])
         {
            lsValue = laMessages[i][j][2].value;
         }
         if (laMessages[i][j][1] == "E" && laMessages[i][j][0] != "")
         {
            var lbAlready = false;
            for (k = 0 ; k < laError.length ; k++)
            {
               if (laError[k] ==laMessages[i][j][0])
               {
                  lbAlready = true;
               }
            }
            if (!lbAlready)
            {
               laError[laError.length] = laMessages[i][j][0];
            }
         }
         if (laMessages[i][j][1] == "W" && laMessages[i][j][0] != "")
         {
            var lbAlready = false;
            for (k = 0 ; k < laWarning.length ; k++)
            {
               if (laWarning[k] == laMessages[i][j][0])
               {
                  lbAlready = true;
               }
            }
            if (!lbAlready)
            {
               laWarning[laWarning.length] = laMessages[i][j][0];
            }
         }
         if (laMessages[i][j][1] == "O" && laMessages[i][j][0] != "")
         {
            laObligatory[laObligatory.length] = laMessages[i][j][0];
         }
         if (laMessages[i][j][1] == "C" && laMessages[i][j][0] != "")
         {
            laCorrect[laCorrect.length] = laMessages[i][j][0];
         }
         if (laMessages[i][j][1] == "I" && laMessages[i][j][0] != "")
         {
            laIncorrect[laIncorrect.length] = laMessages[i][j][0];
         }
      }
      var lsOutput = "";
      if (laObligatory.length > 0)
      {
         lsOutput += '<a class="infobulle" href="#"><img class="image" src="' + IMG_URL + 'obligatory.gif"/><span>';
         lsOutput += laObligatory[0];
         lsOutput += '</span></a>';
      }
      else if (laError.length > 0)
      {
         lsOutput += '<a class="infobulle" href="#"><img class="image" src="' + IMG_URL + 'error.gif"/><span>';
         for (var j = 0 ; j < laError.length ; j++)
         {
            lsOutput += (j != 0 ? "<br/>" : "") + laError[j];
         }
         lsOutput += '</span></a>';
      }
      else if (laWarning.length > 0)
      {
         lsOutput += '<a class="infobulle" href="#"><img class="image" src="' + IMG_URL + 'warning.gif"/><span>';
         for (var j = 0 ; j < laWarning.length ; j++)
         {
            lsOutput += (j != 0 ? "<br/>" : "") + laWarning[j];
         }
         lsOutput += '</span></a>';
      }
      else if (laIncorrect.length > 0)
      {
         lsOutput += '';
      }
      else if (laCorrect.length > 0)
      {
         lsOutput += '<img class="image" src="' + IMG_URL + 'correct.gif"/>';
      }
      else if (laError.length == 0 && laWarning.length == 0 && laObligatory.length == 0 && laIncorrect.length == 0 && lsValue != "")
      {
         lsOutput += '<img class="image" src="' + IMG_URL + 'correct.gif"/>';
      }
      if (document.getElementById(i) != null)
      {
         document.getElementById(i).innerHTML = lsOutput;
      }
   }

}

// Contrôle spécial du champ
// aoField     : objet champ dans le formulaire principal
// asCondition : condition vraie, le champ est obligatoire
// asMessage   : message du contrôle
function checkSpecial(aoField, asCondition, asMessage)
{
   if (eval(asCondition))
   {
      return asMessage;
   }
   return "";
}


// Contrôle extensions du champ
// aoField      : objet champ dans le formulaire principal
// asExtensions : liste des extensions
// asLanguage   : Language des traductions : 'FR'
//                                           'GB'
function checkExtension(aoField, asExtensions, asLanguage)
{
   var lsMsgError = "";
   var laExtensions = asExtensions.split(', ');
   var lbNotIn = false;
   if (aoField.value == "")
   {
      lbNotIn = true;
   }
   for (var n = 0 ; n < laExtensions.length ; n++)
   {
      //alert(aoField.value + ' | ' + laExtensions[n] + ' | ' + aoField.value.substr(aoField.value.length-laExtensions[n].length, laExtensions[n].length).toUpperCase());
      if ("."+laExtensions[n].toUpperCase() == aoField.value.substr(aoField.value.length-laExtensions[n].length-1, laExtensions[n].length+1).toUpperCase())
      {
         lbNotIn = true;
      }
   }
   if (!lbNotIn)
   {
      if (asLanguage == "FR")
      {
         lsMsgError = "L'extension n'est pas correcte (choix : " + asExtensions + ")";
      }
      else
      {
         lsMsgError = "The extension isn't correct (choice: " + asExtensions + ")";
      }
   }
   return lsMsgError;
}

// Contrôle si le champ est renseigné, en cas d'erreur donne le focus
// aoField     : objet champ dans le formulaire principal
// asCondition : condition vraie, le champ est obligatoire
// asLanguage  : Language des traductions : 'FR'
//                                          'GB'
function checkCorrect(aoField, asCondition, asLanguage)
{
   var lsMsgError = "";
   var lbCondition;
   if (asCondition == "")
   {
      var lsValue = aoField.value.replace(/^\s*|\s*$/g,"");
      lbCondition = (lsValue != "");
      if (!lbCondition)
      {
         aoField.value = "";
      }
   }
   else
   {
      lbCondition = !eval(asCondition);
   }

   if (lbCondition)
   {
      if (asLanguage == "FR")
      {
         lsMsgError = "Le champ est correct";
      }
      else
      {
         lsMsgError = "The field is correct";
      }
   }
   return lsMsgError;
}

// Contrôle si le champ est renseigné, en cas d'erreur donne le focus
// aoField     : objet champ dans le formulaire principal
// abCondition : condition vraie, le champ est obligatoire
// asLanguage  : Language des traductions : 'FR'
//                                          'GB'
function checkObligatory(aoField, asCondition, asLanguage)
{
   var lsMsgError = "";
   var lsCondition;
   if (asCondition == "")
   {
      var lsValue = aoField.value.replace(/^\s*|\s*$/g,"");
      lbCondition = (lsValue == "");
      if (lbCondition)
      {
         aoField.value = "";
      }
   }
   else
   {
      lbCondition = eval(asCondition);
   }

   if (lbCondition)
   {
      if (asLanguage == "FR")
      {
         lsMsgError = "Le champ est obligatoire";
      }
      else
      {
         lsMsgError = "The field is obligatory";
      }
   }
   return lsMsgError;
}

// Contrôle si le champ email est correct, en cas d'erreur donne le focus
// aoField     : objet champ dans le formulaire principal
// asLanguage  : Language des traductions : 'FR'
//                                          'GB'
function checkEmail(aoField, asLanguage)
{
   var lsMsgError = "";
   var lsValue = aoField.value.replace(/^\s*|\s*$/g,"");
   if (lsValue == "")
   {
      return "";
   }
   var reEmail = /^.+@.+\..{2,3}$/;
   /*/^\w+([\.-_]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})$/;*/
   if (!reEmail.test(lsValue))
   {
      if (asLanguage == "FR")
      {
         lsMsgError = "Le champ email est incorrect";
      }
      else
      {
         lsMsgError = "The email field is incorrect";
      }
   }
   return lsMsgError;
}

// Contrôle si la longueur du champ, en cas d'erreur donne le focus
// aoField     : objet champ dans le formulaire principal
// anValueMin  : longueur minimum du champ
// anValueMax  : longueur maximum du champ
// asLanguage  : Language des traductions : 'FR'
//                                          'GB'
function checkLength(aoField, asValueMin, asValueMax, asLanguage)
{
   var lsMsgError = "";
   var lsValue = aoField.value.replace(/^\s*|\s*$/g,"");
   if (lsValue == "")
   {
      return "";
   }
   if (lsValue.length < parseInt(asValueMin) || lsValue.length > parseInt(asValueMax))
   {
      if (asLanguage == "FR")
      {
         lsMsgError  = "La longueur du champ doit être ";
         if (asValueMin == asValueMax)
         {
            lsMsgError += "égale à " + asValueMin;
         }
         else
         {
            lsMsgError += ":<br/>&nbsp;&nbsp;- supérieure égale à " + asValueMin;
            lsMsgError += "<br/>&nbsp;&nbsp;- inférieure égale à " + asValueMax;
         }
      }
      else
      {
         lsMsgError  = "The field length must be";
         if (asValueMin == asValueMax)
         {
            lsMsgError += " equal to " + asValueMin;
         }
         else
         {
            lsMsgError += ":<br/>&nbsp;&nbsp;- superior equal to " + asValueMin;
            lsMsgError += "<br/>&nbsp;&nbsp;- inférior equal to " + asValueMax;
         }
      }
   }
   return lsMsgError;
}


/*******************************************************************************
                    Partie Vérification et formatage du nombre
*******************************************************************************/


// Appelle la fonction de vérification du nombre, en cas d'erreur donne le focus
// aoNumberField  : objet champ nombre dans le formulaire principal
// asNumberFormat : format du nombre : nombre de chiffres avant la virgule, nombre de chiffres après la virgule
//                                       exemple : 3,2 pour 999,99
// asValueMax     : valeur maximum du nombre
// asValueMin     : valeur minimum du nombre
// asLanguage     : Language des traductions : 'FR'
//                                             'GB'
function checkNumber(aoNumberField, asNumberFormat, asValueMax, asValueMin, asLanguage)
{
   asNumberFormat = asNumberFormat.replace(".", ",");
   var lsMsgError = "";
   if (chkNumber(aoNumberField, asNumberFormat, asValueMax, asValueMin) == false)
   {
      laNumberFormat = asNumberFormat.split(",");
      for (var n=0 ; n < parseInt(laNumberFormat[0]) ; n++)
      {
         lsMsgError += "9";
      }
      if (laNumberFormat.length == 2)
      {
         lsMsgError += ",";
         for (var n=0 ; n < parseInt(laNumberFormat[1]) ; n++)
         {
            lsMsgError += "0";
         }
      }
      if (asLanguage == "FR")
      {
         lsMsgError = "Le nombre doit :<br/>&nbsp;&nbsp;- avoir le format suivant " + lsMsgError;
         if (asValueMin != "")
         {
            lsMsgError += "<br/>&nbsp;&nbsp;- être supérieur égal à " + asValueMin;
         }
         if (asValueMax != "")
         {
            lsMsgError += "<br/>&nbsp;&nbsp;- être inférieur égal à " + asValueMax;
         }
      }
      else
      {
         lsMsgError = "The number must:<br/>&nbsp;&nbsp;- have the following format " + lsMsgError;
         if (asValueMin != "")
         {
            lsMsgError += "<br/>&nbsp;&nbsp;- be superior equal to " + asValueMin;
         }
         if (asValueMax != "")
         {
            lsMsgError += "<br/>&nbsp;&nbsp;- be inferior equal to " + asValueMax;
         }
      }
   }
   return lsMsgError;
}


// Vérifie le nombre et le retourne dans le format choisi
// aoNumberField  : objet champ nombre dans le formulaire principal
// asNumberFormat : format du nombre : nombre de chiffres avant la virgule, nombre de chiffres après la virgule
//                                       exemple : 3,2 pour 999,99
// anValueMax     : valeur maximum du nombre
// anValueMin     : valeur minimum du nombre
function chkNumber(aoNumberField, asNumberFormat, asValueMax, asValueMin)
{
   var lsNumber = aoNumberField.value.replace(/^\s*|\s*$/g,"");
   if (lsNumber == "")
   {
      aoNumberField.value = "";
      return true;
   }
   lsNumber = lsNumber.replace(",",".");

   var laFormat = asNumberFormat.split(",");
   var lsRegExp = /^(-|\+)?(\d*)\.?(\d*)$/;
   if (!lsRegExp.exec(lsNumber))
   {
      return false; // Le nombre n'est pas correct
   }

   var lsInt = RegExp.$2;
   // Suppression des 0 devant en trop
   while (parseInt(laFormat[0]) < lsInt.length && lsInt.substr(0, 1) == "0")
   {
      lsInt = lsInt.substr(1,lsInt.length-1);
   }
   if (parseInt(laFormat[0]) < (lsInt.length))
   {
      return false; // La partie entière du nombre est trop grande
   }
   var lsFloat = RegExp.$3;
   if (laFormat.length == 2)
   {
      // Suppression des 0 derrière en trop
      while (parseInt(laFormat[1]) < lsFloat.length && lsFloat.substr(lsFloat.length-1, 1) == "0")
      {
         lsFloat = lsFloat.substr(0,lsFloat.length-1);
      }
      if (parseInt(laFormat[1]) < lsFloat.length)
      {
         return false; // La partie décimale du nombre est trop grande
      }
   }
   if (asValueMin != "" && parseFloat(lsNumber) < parseFloat(asValueMin))
   {
      return false; // Le nombre est trop petit
   }
   if (asValueMax != "" && parseFloat(lsNumber) > parseFloat(asValueMax))
   {
      return false; // Le nombre est trop grand
   }
   for (var nbZeros = (parseInt(laFormat[1]) - lsFloat.length) ; nbZeros > 0  ; nbZeros--)
   {
      lsFloat += "0";
   }
   if (laFormat.length == 2)
   {
      lsFloat = "," + lsFloat;
   }
   else
   {
      lsFloat = "";
   }
   lsInt = lsInt + (lsInt == "" && laFormat.length == 2 ? "0" : "");
   aoNumberField.value = (RegExp.$1 == "-" ? "-" : "") + lsInt + lsFloat;
   return true;
}

/*******************************************************************************
                    Partie Vérification et formatage de la date
*******************************************************************************/


// Appelle la fonction de vérification de la date, en cas d'erreur donne le focus
// aoDateField      : objet champ date dans le formulaire principal
// asDateFormat     : format de la date : 'D' (date format : JJ/MM/AAAA),
//                                        'T' (datetime : JJ/MM/AAAA HH:MI:SS)
// asLanguageFormat : format de la date : 'FR' (JJ/MM/AAAA)
//                                        'US' (MM/JJ/AAAA)
// asLanguage       : Language des traductions : 'FR'
//                                               'GB'
// abSearch         : Recherche ou non (autorisation des > < =)
function checkDate(aoDateField, asDateFormat, asLanguageFormat, asLanguage, abSearch)
{
   var lsMsgError = "";
   if (chkDate(aoDateField, asDateFormat, asLanguageFormat, eval(abSearch)) == false)
   {
      if (asLanguage == "FR")
      {
         lsMsgError = "Erreur de format de date : ";
         if (asLanguageFormat == "FR")
         {
            lsMsgError += (asDateFormat == "D" ? "JJ/MM/AAAA" : "JJ/MM/AAAA HH:MI:SS");
         }
         else
         {
            lsMsgError += (asDateFormat == "D" ? "MM/JJ/AAAA" : "MM/JJ/AAAA HH:MI:SS");
         }
      }
      else
      {
         lsMsgError = "Format date error: ";
         if (asLanguageFormat == "FR")
         {
            lsMsgError += (asDateFormat == "D" ? "DD/MM/YYYY" : "DD/MM/YYYY HH:MI:SS");
         }
         else
         {
            lsMsgError += (asDateFormat == "D" ? "MM/DD/YYYY" : "MM/DD/YYYY HH:MI:SS");
         }
      }
   }
   return lsMsgError;
}


// Vérifie la date et retourne un format de type JJ/MM/AAAA ou MM/DD/YYYY
// aoDateField      : objet champ date dans le formulaire principal
// asDateFormat     : format de la date : 'D' (date format : JJ/MM/AAAA),
//                                        'T' (datetime : JJ/MM/AAAA HH:MI:SS)
// asLanguageFormat : format de la date : 'FR' (JJ/MM/AAAA)
//                                        'US' (MM/JJ/AAAA)
// abSearch         : Recherche ou non (autorisation des > < =)
function chkDate(aoDateField, asDateFormat, asLanguageFormat, abSearch)
{
   var lsDate = "", lsTime = "", lsCompare = "";
   var laDate, laTime;
   var lsDay = "", lsMonth = "", lsYear = "", lsHour = "", lsMinute = "", lsSecond = "";
   var lnDay = "", lnMonth = "", lnYear = "", lnHour = "", lnMinute = "", lnSecond = "";
   var lsTimeHhMiSs = "";

   // Suppression des espaces à gauche et à droite
   lsDate = aoDateField.value.replace(/^\s*|\s*$/g,"");
   if (lsDate.length == 0) // Date vide
   {
      return true;
   }
   if (abSearch)
   {
      if (lsDate == "!" || lsDate == "?")
      {
         return true;
      }
      if (lsDate.substr(0,2) == "<=" || lsDate.substr(0,2) == ">=" || lsDate.substr(0,2) == "<>")
      {
         lsCompare = lsDate.substr(0,2);
         lsDate = lsDate.substr(2,lsDate.length-2);
      }
      else if (lsDate.substr(0,1) == "<" || lsDate.substr(0,1) == ">" || lsDate.substr(0,1) == "=")
      {
         lsCompare = lsDate.substr(0,1);
         lsDate = lsDate.substr(1,lsDate.length-1);
      }
   }
   if (asDateFormat == 'D')
   {  // Remplacement des séparateurs par "/"
      lsDate = lsDate.replace(/\D/g, "/");
   }
   if (asDateFormat == 'T')
   {  // Séparation de la date et des heures
      // Remplacement des séparateurs de date par "/", remplacement des séparateurs d'heure par ":"
      laDate = lsDate.split(" ");
      if (laDate.length > 2)
      {
         return false; // Erreur date heure découpée en plus de 2 parties (date et heure)
      }
      lsDate = laDate[0].replace(/\D/g, "/");
      if (laDate.length == 2)
      {
         lsTime = laDate[1].replace(/\D/g, ":");
      }
   }

// Traitement de la date
// ---------------------
   if (lsDate.indexOf("/") != -1)
   {  // Séparateur de date trouvé
      laDate = lsDate.split("/");
      if (laDate.length != 3)
      {
         return false; // Erreur date non découpée en 3 parties
      }
      else
      {  // Découpage de la date en 3 parties
         lsDay   = laDate[0];
         lsMonth = laDate[1];
         lsYear  = laDate[2];
      }
   }
   else
   {  // Pas de séparateur
      if (lsDate.length >= 6)
      {
         lsDay   = lsDate.substr(0, 2);
         lsMonth = lsDate.substr(2, 2);
         lsYear  = lsDate.substr(4);
      }
      else
      {
         return false; // Date incorrect (format trop court)
      }
   }
   if (lsYear.length == 2) {
      lsYear = (parseInt(lsYear,10) <= 15 ? "20" : "19") + lsYear;
   }
   else if (lsYear.length != 2 && lsYear.length != 4) {
      return false; // L'année n'est pas correct
   }


   if (asLanguageFormat == "US") // Format américain
   {
      var lsTemp;
      lsTemp  = lsDay;
      lsDay   = lsMonth;
      lsMonth = lsTemp;
   }
   lnDay   = parseInt(lsDay, 10);
   lnMonth = parseInt(lsMonth, 10);
   lnYear  = parseInt(lsYear, 10);
   if (lnMonth>12 || lnMonth<1)
   {
      return false; // Le mois n'est pas correct
   }
   if (((lnMonth == 1 || lnMonth == 3 || lnMonth == 5 || lnMonth == 7 || lnMonth == 8 || lnMonth == 10 || lnMonth == 12) && (lnDay > 31 || lnDay < 1)) // Mois de 31 jours
       || ((lnMonth == 4 || lnMonth == 6 || lnMonth == 9 || lnMonth == 11) && (lnDay > 30 || lnDay < 1)) // Mois de 30 jours
       || (lnMonth == 2 && (lnDay < 1 || (lnDay > 29 && (lnYear % 4) == 0) || (lnDay > 28 && (lnYear % 4) != 0)))) // Février
   {
      return false; // Le jour n'est pas correct
   }

   lsDay = lnDay.toString();
   if (lsDay.length == 1)
   {
      lsDay = "0" + lsDay;
   }
   lsMonth = lnMonth.toString();
   if (lsMonth.length == 1)
   {
      lsMonth = "0" + lsMonth;
   }

// Traitement des heures
// ---------------------
   if (asDateFormat == "T")
   {
      if (lsTime == "")
      {
         lsTimeHhMiSs = " 00:00:00";
      }
      else
      {
         laTime = lsTime.split(":");
         if (laTime.length > 3)
         {
            return false; // Erreur heure découpée en plus de 3 parties
         }
         else
         {
            if (laTime.length >= 1)
            {
               if (laTime[0] == "")
               {
                  lnHour = 0;
               }
               else
               {
                  lnHour = parseInt(laTime[0], 10);
               }
               if (lnHour > 23 || lnHour < 0)
               {
                  return false; // Les heures ne sont pas correctes
               }
               else
               {
                  lsHour = (lnHour < 10 ? "0" : "")+lnHour.toString();
                  lsHour = (lsHour == "0" ? "0" : "")+lsHour;
               }
            }
            if (laTime.length >= 2)
            {
               if (laTime[1] == "")
               {
                  lnMinute = 0;
               }
               else
               {
                  lnMinute = parseInt(laTime[1], 10);
               }
               if (lnMinute > 59 || lnMinute < 0)
               {
                  return false; // Les minutes ne sont pas correctes
               }
               else
               {
                  lsMinute = (lnMinute < 10 ? "0" : "")+lnMinute.toString();
                  lsMinute = (lsMinute == "0" ? "0" : "")+lsMinute;
               }
            }
            if (laTime.length == 3)
            {
               if (laTime[2] == "")
               {
                  lnSecond = 0;
               }
               else
               {
                  lnSecond = parseInt(laTime[2], 10);
               }
               if (lnSecond > 59 || lnSecond < 0)
               {
                  return false; // Les secondes ne sont pas correctes
               }
               else
               {
                  lsSecond = (lnSecond < 10 ? "0" : "")+lnSecond.toString();
                  lsSecond = (lsSecond == "0" ? "0" : "")+lsSecond;
               }
            }
         }
         lsTimeHhMiSs = " "+lsHour+":"+(lsMinute != "" ? lsMinute : "00")+":"+(lsSecond != "" ? lsSecond : "00");
      }
   }

// Formatage de la date
   if (asLanguageFormat == "US")
   {
      aoDateField.value = lsCompare + lsMonth + "/" + lsDay +"/" + lsYear + lsTimeHhMiSs;
   }
   else
   {
      aoDateField.value = lsCompare + lsDay + "/" + lsMonth + "/" + lsYear + lsTimeHhMiSs;
   }
   return true;
}

