var choix = null;
var moisChoix = null;
var anChoix = null;

var affiche = null;
var afficheChoix = null;
var tempChoix = null;
var choixMois = null;
var afficheMois = null;
var choixAn = null;
var afficheAn = null;
var code = null;
var mois = null;
var temp = null;



var kalendars = new Array();
var objKalendar = null;
var kalEnCours = 'kalendar';

var nom_mois = new Array();
nom_mois["fr"] = new Array("Janvier","F&eacute;vrier","Mars","Avril","Mai","Juin","Juillet",
                         "Ao&ucirc;t","Septembre","Octobre","Novembre","D&eacute;cembre");
nom_mois["en"] = new Array("January","February","March","April","May","June","July",
                         "August","September","October","November","December");

var nom_jour = new Array();
nom_jour["fr"] = new Array ("Lu","Ma","Me","Je","Ve","Sa","Di");
nom_jour["en"] = new Array ("Mo","Tu","We","Fi","Fr","Sa","Su");


window.addEvent('domready', function() {

  calendrier_ouvreCalendrier();

});




function calendrier_ouvreCalendrier()
{
  objKalendar = document.getElementById(kalEnCours);

  tempChoix = new Date(dateY, dateM - 1, dateD);
  choix = tempChoix.getDate();
  affiche = choix;
  choixMois = tempChoix.getMonth() + 1;
  afficheMois = choixMois;
  choixAn = tempChoix.getYear();
  if(choixAn < 999) choixAn+=1900;
  afficheAn = choixAn;

  affiche = Math.round(choix)+"/"+Math.round(afficheMois)+"/"+afficheAn;
  calendrier_afficheCalendrier();
}



function calendrier_afficheCalendrier()
{
  objKalendar.innerHTML = calendrier(affiche,afficheMois,afficheAn);
}



function calendrier_moisSuivant()
{
  afficheMois++;

  if(afficheMois==13)
  {
    afficheMois = 1;
    afficheAn++;
  }

  calendrier_afficheCalendrier();
}



function calendrier_moisPrecedent()
{
  afficheMois--;

  if(afficheMois==0)
  {
    afficheMois = 12;
    afficheAn--;
  }

  calendrier_afficheCalendrier();
}



function calendrier(choix,mois,an)
{
  code = "";

  var maintenant = new Date(nowY, nowM - 1, nowD);
  var ce_mois = maintenant.getMonth() + 1;
  var cette_annee = maintenant.getYear();
  if(cette_annee < 999) cette_annee+=1900;
  var ce_jour = maintenant.getDate();

  var temps = new Date(an,mois-1,1);
  var Start = temps.getDay();
  if(Start > 0) Start--;
  else Start = 6;
  var Stop = 31;
  if(mois==4 ||mois==6 || mois==9 || mois==11 ) --Stop;
  if(mois==2) {
   Stop = Stop - 3;
   if(an%4==0) Stop++;
   if(an%100==0) Stop--;
   if(an%400==0) Stop++;
  }
  code += ('<div class="calendrier">');
  var entete_mois = nom_mois[choixLang][mois-1] + " " + an;
  code += inscrit_entete(entete_mois, mois, ce_mois);
  var nombre_jours = 1;
  for(var i=0;i<=5;i++) {
    for(var j=0;j<=5;j++) {
      if((i==0)&&(j < Start))
       code += inscrit_cellule_vide();
      else {
        if(nombre_jours > Stop)
          code += inscrit_cellule_vide();
        else {
          if((an==cette_annee)&&(mois==ce_mois)&&(nombre_jours==ce_jour))
            if(choix==(nombre_jours+"/"+mois+"/"+an))
               code += inscrit_cellule_choixAuj(nombre_jours, mois, an);
           else
              code += inscrit_cellule_auj(nombre_jours, mois, an);
          else  if(choix==(nombre_jours+"/"+mois+"/"+an))
           code += inscrit_cellule_jourChoix(nombre_jours, mois, an);
           else
           code += inscrit_cellule_jour(nombre_jours, mois, an);
          nombre_jours++;
          }
        }
      }
      if(nombre_jours > Stop)
        code += inscrit_cellule_vide();
      else {
        if((an==cette_annee)&&(mois==ce_mois)&&(nombre_jours==ce_jour))
            if(choix==(nombre_jours+"/"+mois+"/"+an))
               code += inscrit_cellule_choixAuj(nombre_jours, mois, an);
           else
              code += inscrit_cellule_auj(nombre_jours, mois, an);
        else  if(choix==(nombre_jours+"/"+mois+"/"+an))
           code += inscrit_cellule_jourChoix(nombre_jours, mois, an);
       else
          code += inscrit_cellule_jour(nombre_jours, mois, an);
          nombre_jours++;
      }
    }
  code += "<\/div>";

  return code;
}



function inscrit_entete(titre_mois, mois, ce_mois)
{
  code = "";
  code += '<div class="calendrier_entete">';
  code += '<a href="javascript:calendrier_moisPrecedent();" title="mois pr&eacute;c&eacute;dent" class="calendrier_moisPrecedent">&nbsp;</a>';
  code += '<div class="calendrier_intitule">';
  code += titre_mois;
  code += '<\/div>';
  code += '<a href="javascript:calendrier_moisSuivant();" title="mois suivant" class="calendrier_moisSuivant">&nbsp;</a>';
  code += '<\/div>';

  for(var i=0;i<=6;i++)
    code += inscrit_cellule_semaine(nom_jour[choixLang][i]);

  return code;
}



function inscrit_cellule_semaine(contenu)
{
  code = "";
  code += "<div class=\"calendrier_jourSemaine\">";
  code += contenu;
  code += "<\/div>";

  return code;
}


function inscrit_cellule_vide()
{
  code = "";
  code += "<div class=\"calendrier_jourVide\">&nbsp;<\/div>";

  return code;
}



function inscrit_cellule_auj(jour, mois, an)
{
  url = urlAgenda.replace("##date##", jour + "-" + mois + "-" + an);
  code = "";
  code += "<div class=\"calendrier_auj\"><a href=\"" + url + "\">";
  code += jour;
  code += "<\/a><\/div>";

  return code;
}


function inscrit_cellule_choixAuj(jour, mois, an)
{
  url = urlAgenda.replace("##date##", jour + "-" + mois + "-" + an);
  code = "";
  code += "<div class=\"calendrier_choixAuj\"><a href=\"" + url + "\">";
  code += jour;
  code += "<\/a><\/div>";

  return code;
}


function inscrit_cellule_jourChoix(jour, mois, an)
{
  url = urlAgenda.replace("##date##", jour + "-" + mois + "-" + an);
  code = "";
  code += "<div class=\"calendrier_jourChoix\"><a href=\"" + url + "\">";
  code += jour;
  code += "<\/a><\/div>";

  return code;
}



function inscrit_cellule_jour(jour, mois, an)
{
  url = urlAgenda.replace("##date##", jour + "-" + mois + "-" + an);
  code = "";
  code += "<div class=\"calendrier_jour\"><a href=\"" + url + "\">";
  code += jour;
  code += "<\/a><\/div>";

  return code;
}