var defaultValueForIntervention = 2;

function LZ(x) 
{
   x = 1.0 * x;
   return (x<0||x>9?"":"0")+x;
}

function FormatBadDate( badDate, defaultValue, estDateNaissance )
{
   var today = new Date();
   var i;
   var orgBadDate = badDate;
   
   if(typeof defaultValue == 'undefined')
   {
      defaultValue = 0;
   }

   if(typeof estDateNaissance == 'undefined')
   {
      estDateNaissance = false;
   }

   today.setDate( today.getDate() + defaultValue );
   
   var tabElts = badDate.split("/");
   if( tabElts.length <= 1 )
   {
      tabElts = badDate.split("-");
   }
   // Attention, pas de ELSE
   if( tabElts.length > 1 )
   {
      badDate = "";
      for( i=0; i<tabElts.length; i++ )
      {
         if( isNaN(tabElts[i]) )
         {
            alert( "Cette date n'est pas valide !!!" );
            return badDate;
         }
         else
         {
            badDate = badDate + LZ(tabElts[i]);
         }
      }
   }
   else
   {
      if( isNaN(badDate) )
      {
         alert( "Cette date n'est pas valide !!!" );
         return orgBadDate;
      }
   }
   
   if( badDate.length == 0 )
   {
      dd = today.getDate();
      mm = 1 + today.getMonth();
      aa = today.getFullYear();
   }
   else if( badDate.length <= 2 )
   {
      dd = badDate;
      mm = 1 + today.getMonth();
      aa = today.getFullYear();
   }
   else if( badDate.length <= 4 )
   {
      dd = badDate.substr(0,2);
      mm = badDate.substr(2,2);
      current_mm = 1 + today.getMonth()
      if( (parseInt(mm,10)-current_mm) < 0 && (current_mm - parseInt(mm,10)) > 5 )
      {
         aa = today.getFullYear()+1;
      }
      else
      {
         aa = today.getFullYear();
      }
   }
   else if( badDate.length <=6 )
   {
      dd = badDate.substr(0,2);
      mm = badDate.substr(2,2);
      aa = badDate.substr(4,2);
      if( parseInt(aa,10) == 0 )
      {
         aa = today.getFullYear();
      }
      else
      {
         if( estDateNaissance )
         {
            alert( "Date de naissance : \n  vous devez saisir l'année avec 4 chiffres" );
            return LZ(dd)+"/"+LZ(mm)+"/"
/*
            if( parseInt(aa,10) > (today.getFullYear()-2000+10) )
            {
               aa = "19"+aa;
            }
            else
            {
               aa = "20"+aa;
            }
*/
         }
         else
         {
            aa = Math.floor(today.getFullYear()/100)*100 + parseInt(aa,10);
         }
      }
   }
   else if( badDate.length <=8 )
   {
      dd = badDate.substr(0,2);
      mm = badDate.substr(2,2);
      aa = badDate.substr(4,4);
   }
   else
   {
      return "";
   }
   
   if( parseInt(dd,10) == 0 )
   {
      dd = today.getDate();
   }
   
   if( parseInt(mm,10) == 0 )
   {
      mm = 1 + today.getMonth();
   }

   return LZ(dd)+"/"+LZ(mm)+"/"+LZ(aa);
}

function FormatBadTime( badTime )
{
   var i;
   var orgBadTime = badTime;

   var tabElts = badTime.split(":");
   if( tabElts.length <= 1 )
   {
      tabElts = badTime.split(" ");

      if( tabElts.length <= 1 )
      {
         tabElts = badTime.split("h");
         if( tabElts.length <= 1 )
         {
            tabElts = badTime.split("H");
         }
      }
   }

   // Attention, pas de ELSE
   if( tabElts.length > 0 )
   {
      badTime = "";
      var nbelts = tabElts.length;
      if( nbelts > 2 ) nbelts = 2;
      
      for( i=0; i<nbelts; i++ )
      {
         if( isNaN(tabElts[i]) )
         {
            alert( "Cette heure n'est pas valide !!!" );
            return badTime;
         }
         else
         {
            badTime = badTime + LZ(tabElts[i]);
         }
      }
   }
   else
   {
      if( isNaN(badTime) )
      {
         alert( "Cette heure n'est pas valide !!!" );
         return orgBadTime;
      }
   }
   
   if( badTime.length <= 2 )
   {
      hh = badTime;
      mm = 0;
   }
   else
   {
      if( badTime.length <= 3 )
      {
         hh = badTime.substr(0,1);
         mm = badTime.substr(1,2);
      }
      else
      {
         hh = badTime.substr(0,2);
         mm = badTime.substr(2,2);
      }
   }
   
   return LZ(hh)+":"+LZ(mm);
}

function toFrenchDate( dateObject )
{
   return LZ(dateObject.getDate())+"/"+LZ(1 + dateObject.getMonth())+"/"+LZ(dateObject.getFullYear());
}

function USDate_From_DDMMYYYY( frenchDate )
{
   var tabElts = frenchDate.split("/");
   return tabElts[1]+"/"+tabElts[0]+"/"+tabElts[2];
}

function IsValideDate( maDate )
{
   var tabElts = maDate.split("/");

   numDD = parseInt(tabElts[0],10);
   numMM = parseInt(tabElts[1],10);
   numAA = parseInt(tabElts[2],10);
   
   // Jour
   if ((numDD <= 0) || (numDD > 31)) { alert( "Cette date n'est pas valide !!!" ); return false; }
   // Mois
   if ((numMM <= 0) || (numMM > 12)) { alert( "Cette date n'est pas valide !!!" ); return false; }
   // Jour du mois
   if (numMM == 2)
   {
      leapYear = true;
      if( (numAA % 4) != 0 )
      {
         leapYear = false;
      }
      else
      {
         if( (numAA % 100)==0 && (numAA % 400)!=0 )
         {
            leapYear = false;
         }
      }
      if( leapYear )
      {
         if (numDD > 29) { alert( "Cette date n'est pas valide !!!" ); return false; } 
      }
      else
      {
         if (numDD > 28) { alert( "Cette date n'est pas valide !!!" ); return false; } 
      }
   }
   else if ((numMM == 4) || (numMM == 6) || (numMM == 9) || (numMM == 11)) 
   { 
      if (numDD > 30) { alert( "Cette date n'est pas valide !!!" ); return false; } 
   }
   return true;
}

function IsValideTime( myTime )
{
   var tabElts = myTime.split(":");

   numHH = parseInt(tabElts[0],10);
   numMM = parseInt(tabElts[1],10);
   
   // Heures
   if ((numHH < 0) || (numHH > 23)) { alert( "Cette heure n'est pas valide !!!" ); return false; }
   // Minutes
   if ((numMM < 0) || (numMM > 59)) { alert( "Cette heure n'est pas valide !!!" ); return false; }
   return true;
}

function ControlerDate( myDate, defaultValue, estDateNaissance )
{
  if( myDate.value != '')
   {
      myDate.value=FormatBadDate(myDate.value,defaultValue, estDateNaissance );
      if( !IsValideDate(myDate.value) ) 
      {
         myDate.focus();
         return false;
      }
   }
   return true; 
}

function ControlerHeure( myTime )
{
  if( myTime.value != '')
   {
      myTime.value=FormatBadTime( myTime.value );
      if( !IsValideTime(myTime.value) ) 
      {
         myTime.focus();
         return false;
      }
   }
   return true; 
}

function AjouterDate(inputField, nbJours)
{
   s0 = USDate_From_DDMMYYYY(inputField.value)
   nvDate = new Date(s0)
   nvDate.setDate( nvDate.getDate()+nbJours)
   inputField.value = toFrenchDate( nvDate )
}

function CompareDate( d1, d2 )
{
   d1 = USDate_From_DDMMYYYY( d1 );
   d2 = USDate_From_DDMMYYYY( d2 );
   if( d1 > d2 )
   {
      return 1;
   }
   else if( d1 < d2 )
   {
      return -1;
   }
   else
   {
      return 0;
   }
}

function CompareHeure( h1, h2 )
{
   if( h1 > h2 )
   {
      return 1;
   }
   else if( h1 < h2 )
   {
      return -1;
   }
   else
   {
      return 0;
   }
}