var auj = new Date();
var moisAuj = auj.getMonth() + 1;
var anAuj = auj.getYear();
if(anAuj < 999) anAuj+=1900;
var choix = null;
var moisChoix = null;
var anChoix = null;
var affiche = null;
var afficheChoix = null;
var afficheChoix = null;

var champDate = null;
var champEspace = null;

function calendrier_creerChamp(nom,val,opts) {
	if(champEspace==null) {
		document.write('<div id="espace_calendrier">&nbsp;</div>');
		champEspace = document.getElementById("espace_calendrier");
	}
	document.write('<input type="text" name="' + nom + '" id="' + nom + '" value="' + val + '" readonly onClick="calendrier_ouvreCalendrier(\'' + nom + '\');" ' + opts + '/>');
}

function calendrier_afficheCalendrier() {
	champEspace.innerHTML = calendrier(affiche,afficheMois,afficheAn);
	champEspace.style.display = "block";
}

function calendrier_choixJour(i) {
	jour = new String(i);
	mois = new String(afficheMois);
	champDate.value = "";
	if(jour.length==1) champDate.value += "0";
	champDate.value += jour + "/";
	if(mois.length==1) champDate.value += "0";
	champDate.value += mois + "/";
	champDate.value += afficheAn;
	calendrier_fermer();
}

function calendrier_ouvreCalendrier(chD) {
	champDate = document.getElementById(chD);
	if(champDate.value!="") {
		choix = champDate.value.substr(0,2);
		affiche = choix;
		choixMois = champDate.value.substr(3,2);
		afficheMois = choixMois;
		choixAn = champDate.value.substr(6,4);
		if(choixAn < 999) choixAn+=1900;
		afficheAn = choixAn;

		affiche = Math.round(choix)+"/"+Math.round(afficheMois)+"/"+afficheAn;

		calendrier_afficheCalendrier();
	}
}

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_anneeSuivante() {
	afficheAn++;
	calendrier_afficheCalendrier();
}

function calendrier_anneePrecedente() {
	afficheAn--;
	calendrier_afficheCalendrier();
}

function calendrier_moisActuel() {
	afficheMois = moisAuj;
	afficheAn = anAuj;
	calendrier_afficheCalendrier();
}

function calendrier_fermer() {
	choix = null;
	moisChoix = null;
	anChoix = null;
	affiche = null;
	afficheChoix = null;
	afficheChoix = null;

	champEspace.innerHTML = "";
	champEspace.style.display = "none";
	champDate = null;
}

function calendrier(choix,mois,an) {
	code = "";

	nom_mois = new Array
	("Janvier","F&eacute;vrier","Mars","Avril","Mai","Juin","Juillet",
	"Ao&ucirc;t","Septembre","Octobre","Novembre","D&eacute;cembre");
	jour = new Array ("Lu","Ma","Me","Je","Ve","Sa","Di");

	var maintenant = new Date();
	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 id="calendrier">');
	var entete_mois = nom_mois[mois-1] + " " + an;
	code += inscrit_entete(entete_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);
	     		else
	        		code += inscrit_cellule_auj(nombre_jours);
	        else  if(choix==(nombre_jours+"/"+mois+"/"+an))
	     	  code += inscrit_cellule_jourChoix(nombre_jours);
	     	  else
	     	  code += inscrit_cellule_jour(nombre_jours);
	        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);
	     		else
	        		code += inscrit_cellule_auj(nombre_jours);
	      else  if(choix==(nombre_jours+"/"+mois+"/"+an))
	     	  code += inscrit_cellule_jourChoix(nombre_jours);
	     else
	        code += inscrit_cellule_jour(nombre_jours);
	        nombre_jours++;
	    }
	  }
	code += inscrit_pied();
	code += "<\/div>";

	return code;
}

function inscrit_entete(titre_mois) {
	code = "";
	code += '<div class="calendrier_entete">';
		code += '<a href="javascript:calendrier_anneePrecedente();" title="année précédente" class="calendrier_anneePrecedente">&nbsp;</a>';
		code += '<a href="javascript:calendrier_moisPrecedent();" title="mois précédent" class="calendrier_moisPrecedent">&nbsp;</a>';
		code += '<div class="calendrier_intitule"><b>';
			code += titre_mois;
		code += '<\/div><\/b>';
		code += '<a href="javascript:calendrier_moisSuivant();" title="mois suivant" class="calendrier_moisSuivant">&nbsp;</a>';
		code += '<a href="javascript:calendrier_anneeSuivante();" title="année suivante" class="calendrier_anneeSuivante">&nbsp;</a>';
	code += '<\/div>';
	for(var i=0;i<=6;i++) code += inscrit_cellule_semaine(jour[i]);

	return code;
}

function inscrit_pied() {
	code = "";
	code += '<div class="calendrier_pied">';
	code += '<a href="javascript:calendrier_moisActuel();" title="mois actuel" class="calendrier_lien_moisActuel">afficher le mois actuel</a>';
	code += '<a href="javascript:calendrier_fermer();" title="fermer le calendrier" class="calendrier_lien_fermer">fermer</a>';
	code += '<\/div>';

	return code;
}

function inscrit_cellule_vide() {
	code = "";
	code += "<div class='calendrier_jourVide'><a href='javascript:;'>&nbsp;<\/a><\/div>";

	return code;
}

function inscrit_cellule_auj(contenu) {
	code = "";
	code += "<div class='calendrier_auj'><a href='javascript:calendrier_choixJour(" + contenu + ");'><b>";
	code += contenu;
	code += "<\/b><\/a><\/div>";

	return code;
}

function inscrit_cellule_choixAuj(contenu) {
	code = "";
	code += "<div class='calendrier_choixAuj'><a href='javascript:calendrier_choixJour(" + contenu + ");'><b>";
	code += contenu;
	code += "<\/b><\/a><\/div>";

	return code;
}

function inscrit_cellule_jourChoix(contenu) {
	code = "";
	code += "<div class='calendrier_jourChoix'><a href='javascript:calendrier_choixJour(" + contenu + ");'><b>";
	code += contenu;
	code += "<\/b><\/a><\/div>";

	return code;
}

function inscrit_cellule_semaine(contenu) {
	code = "";
	code += "<div class='calendrier_jourSemaine'><a href='javascript:;'>";
	code += contenu;
	code += "<\/a><\/div>";

	return code;
}

function inscrit_cellule_jour(contenu) {
	code = "";
	code += "<div class='calendrier_jour'><a href='javascript:calendrier_choixJour(" + contenu + ");'>";
	code += contenu;
	code += "<\/a><\/div>";

	return code;
}