// Contrôle la validité des champs
function TestSaisie(Forme)
{
   var dateDu, dateAu

   dateDu = TstDate(Forme.Du.value,false);
   if (dateDu == "0") {
      window.alert("Date de début de période incorrecte.\nVeuillez recommencer.");
      Forme.Du.focus();
      return false;
   }

   dateAu = TstDate(Forme.Au.value,false);
   if (dateAu == "0") {
      window.alert("Date de fin de période incorrecte.\nVeuillez recommencer.");
      Forme.Au.focus();
      return false;
   }

   if (dateDu.getTime() > dateAu.getTime()) {
      alert('La date de fin est inférieure à la date de début.\nveuillez recommencer.' ) ;
      Forme.Au.focus();
      return false;
   }

   Forme.submit();
   return true;
}


// Contrôle la validité d'une date (si ok : formatage en type date)
function TstDate(chaine,alerter) {
  jj=""; 
  aa=""; 
  mm=""; 
  JJ=""; 
  AA=""; 
  MM="";
  bi=false; 
  i=0; 
  sep=0; 
  nb=0; 
  tst=true; 
  last=0;
  
  while(i<chaine.length)
    {  
    if(chaine.charAt(i)=="/")
      { 
      sep++;
      nb=0;
      }
    else
      { 
      if( chaine.charAt(i) != '0' || nb != 0 )
        { 
        if(sep==0) JJ+=chaine.charAt(i); 
        if(sep==1) MM+=chaine.charAt(i); 
        if(sep==2) AA+=chaine.charAt(i); 
        nb=1;
        }
      }
    i++;
    }
  jj=parseInt(JJ);
  mm=parseInt(MM);
  aa=parseInt(AA);
  
  // Ajouter le siècle pour assurer le coup...
  if (aa<100) {
    if (aa>=70) {aa+=1900;} else {aa+=2000}
  }
  
  // Tester l'année
  if (aa<1900) {
     {if(alerter) alert("L'année saisie n\'est pas correcte.");
       return("0");}
  }
  
  seb_d = new Date();
  ref_sc = seb_d.getFullYear();
  ref_s = parseInt(ref_sc)-2;
  
  // Tester séparateurs
  if(sep>0)
    {
    if(sep!=2)
      {if(alerter) alert("Vous devez entrer une date sous la forme jj/mm/aa ou jj/mm/aaaa");
       return("0");}
    }
  else
    {
    if(chaine.length>0)
      if(chaine.length!=6 && chaine.length!=8)
        { if(alerter) alert("Vous devez entrer une date sous la forme jj/mm/aa ou jj/mm/aaaa");
          return("0");}
  
    }  
  
  // Tester jours et mois
  if ((jj>0)&&(jj<=31)&&(mm>0)&&(mm<=12))
  {
    bi = ((aa%4)==0);
    if ( ((mm==1)||(mm==3)||(mm==5)||(mm==7)||(mm==8)||(mm==10)||(mm==12)) && ((jj>=1)&&(jj<=31)) )
     {correct = true;}
    else
    {
      if (  ( (mm==4)||(mm==6)||(mm==9)||(mm==11)) && ((jj>=1)&&(jj<=30)) )
         { correct = true; }
      else {
        if (bi){correct = ( ((jj>=1)&&(jj<=29)) && (mm==2) );}
                else   {correct = ( ((jj>=1)&&(jj<=28)) && (mm==2) );}
      }
    }
  }
  else {
     correct = false;
  }
  // Retour si NOK
  if (!correct) {
     if(alerter) alert("Date incorrecte.");
     return "0";
  }
  
  // Formatage date si OK
  mm-=1;
  nouveau=new Date(aa,mm,jj);
  return(nouveau);  
}


// valorise date de début et fin, en fonction du choix de la combo periode
function AffecteDate( Libelle, ZoneDu, ZoneAu )
{

   var i = 1;
   var ChaineDu="";
   var ChaineAu="";
   var Du = 0;
   while ( i <= Libelle.length ) 
   {
      if ( Du == 0 ) 
      {
         ChaineDu = Libelle.substring ( 0, i );
       
      }
      if ( Du == 1 ) 
      {
         ChaineAu = Libelle.substring ( j, i );
      }
      if ( Libelle.substring ( i,i+1 ) == "|" )
      {
         Du = 1;
         i++;
         j = i;
      }
      i++;
   }
   ZoneDu.value = ChaineDu;
   ZoneAu.value = ChaineAu;
}
