// déclaration des variables globale
var date_am = 0;					/* variable globale pour la date retournee*/
var date_jour = 0;						/* variable globale pour la date(jour)*/
var date_mois = 0;						/* variable globale pour la date(mois)*/
var date_annee = 0;						/* variable globale pour la date(annee)*/
var police_entete = "Verdana,Arial"; 	/* police entête de calendrier  */
var taille_pol_entete = 2;           	/* taille de police 1-7 entête de calendrier  */
var couleur_pol_entete = "#F0F0F0";     /* couleur de police entête de calendrier  */
var couleur_pol_entete_over = "#677686" /* couleur de police entête de calendrier  lorsque la souris est dessus */
var arrplan_entete = "#006699";			/* couleur d'arrière plan entête de calendrier  */
var police_jours = "Verdana,Arial"; 	/* police affichage des jours  */
var taille_pol_jours = 2;          		/* taille de police 1-7 affichage des jours  */
var coul_pol_jours = "#000000";     	/* couleur de police affichage des jours  */
var arrplan_jours = "#009DFF";        	/* couleur d'arrière plan affichage des jours  */
var couleur_dim = "#E00000";        	/* couleur de police pour dimanches  */
var couleur_pol_cejour = "#FFCC66";     /* couleur d'arrière plan pour aujourd'hui  */
var couleur_hover = "white";			/* couleur d'arriere plan lorsque la souris est dessus*/

var nom_mois = new Array("Janvier","F&eacute;vrier","Mars","Avril","Mai","Juin","Juillet",
"Ao&ucirc;t","Septembre","Octobre","Novembre","D&eacute;cembre");

function href_add(addurl_html) {
var url = new String(document.location.href);

	if( url.search("date=[0-9]{4}-[0-9]{2}-[0-9]{2}") != -1){
		url = url.replace(/date=[0-9]{4}-[0-9]{2}-[0-9]{2}/g,addurl_html);
		return url;
	}
	else if( url.search(/\?/) != -1)
		return document.location.href+"&"+addurl_html;
	else return document.location.href+"?"+addurl_html;
}

/**
*	INITIALISATION DU CALENDRIER
**/
function initialisation_calendar() {
	// mise à jour de la date
	var maintenant = new Date();
	date_jour = maintenant.getDate();
	date_mois = maintenant.getMonth() +1;
	
	var navigateur = navigator.appVersion;
	if(navigateur.search("MSIE") != -1) // Gestion cas de IE
	{
		date_annee = maintenant.getYear();
	}else{
		date_annee = maintenant.getYear() + 1900;
	}

	date_am = date_jour + "-" + date_mois + "-" + date_annee;
	init_date_edt();
	creer_calendar();
	mise_a_jour_calendar();
}

/**
*	INITIALISATION DE LA DATE DE L'EMPLOI DU TEMPS
**/
function init_date_edt()
{
	var date_edt = date_jour + " " + nom_mois[date_mois-1] + " " + date_annee;
	/* document.getElementById("date").innerHTML = date_edt; */
	date_am = date_annee + "-" + date_mois + "-" + date_jour;
}

/**
*	CREATION DE LA BASE DU CALENDRIER
**/
function creer_calendar() {
	// creation du tableau
	document.write('<table border="1" bordercolor="black" cellpadding="1" cellspacing="1" style="font-size: 10px;border-collapse: collapse;border: 1px solid black;" width="180">');
	inscrit_entete("mois","&nbsp;",arrplan_entete,couleur_pol_entete,taille_pol_entete,police_entete);
	for(var ligne=1;ligne<=6;ligne++) {
	  document.write("<tr>");
	  for(var col=1;col<=7;col++) {
		if(col==7) {
			inscrit_cellule(ligne + "_" + col,"&nbsp;",arrplan_jours,couleur_dim,taille_pol_jours,police_jours,true);
		}else {
			inscrit_cellule(ligne + "_" + col,"&nbsp;",arrplan_jours,coul_pol_jours,taille_pol_jours,police_jours,true);
		}
	  }
	  document.write("<\/tr>");
	}
	document.write("<\/table>");
}

/**
*	ENTETE DU CALENDRIER
**/
function inscrit_entete(id,titre_mois,couleurAP,couleurpolice,taillepolice,police) {
	jour = new Array ("Lu","Ma","Me","Je","Ve","Sa","Di");
	document.write("<tr>");
	document.write('<td bgcolor="' + arrplan_jours + '"><div id="boutonPrec" style="font-family: verdana;border-right: 0px;cursor: pointer;height: 100%;" onMouseOver="fondBoutonOver(this);" onMouseOut="fondBoutonOut(this);" onClick="affiche_mois_prec();">&lt;&lt;<\/div><\/td><td align="center" colspan="5" valign="middle" bgcolor="' + couleurAP + '" id="' + id + '" onMouseOver="fondOverMois(this);" style="cursor: pointer;" onMouseOut="fondOutMois(this);" onClick="affiche_mois_courant();">');
	document.write('<font size="'+taillepolice+'" color="'+couleurpolice+'" face="'+police+'"><b>');
	document.write(titre_mois);
	document.write('<\/b><\/font><\/td><td bgcolor="' + arrplan_jours + '"><div id="boutonSuiv" style="font-family: verdana;text-align: right;height: 100%;cursor: pointer;" onMouseOver="fondBoutonOver(this);" onMouseOut="fondBoutonOut(this);" onClick="affiche_mois_suiv();">&gt;&gt;<\/div><\/td><\/tr>');
	document.write("<tr>");
	for(var i=0;i<=6;i++)
	  inscrit_cellule("j_" + i,jour[i],couleurAP,couleurpolice,taillepolice,police,false);
	document.write("<\/tr>");
}

/**
*	CONTENU DES CELLULES
**/
function inscrit_cellule(id,contenu,couleurAP,couleurpolice,taillepolice,police,click) {
	document.write('<td align="center" style="cursor: pointer;" valign="middle" bgcolor="'+couleurAP+'" id="' + id + '"');
	if(click==true) {
		document.write(' onClick="retourn_case(this);"');
		document.write(' onMouseOver="fondOver(this);"');
		document.write(' onMouseOut="fondOut(this);"');
	}
	document.write('>');
	document.write('<font size="'+taillepolice+'" color="'+couleurpolice+'" face="'+police+'"><b>');
	document.write(contenu);
	document.write("<\/b><\/font><\/td>");
}

/**
*	MISE A JOUR DU CALENDRIER
**/
function mise_a_jour_calendar() {
	// initialisation
	var maintenant = new Date(); 
	var jour = maintenant.getDate();
	var mois = maintenant.getMonth() +1;
	var an = maintenant.getYear() + 1900;
	var temps = new Date(date_annee,date_mois-1,1);
	var Start = temps.getDay();
	if(Start > 0) Start--;
	else Start = 6;
	var Stop = 31;
	if(date_mois==4 ||date_mois==6 || date_mois==9 || date_mois==11 ) --Stop;
	if(date_mois==2) {
		 Stop = Stop - 3;
		 if(date_annee%4==0) Stop++;
		 if(date_annee%100==0) Stop--;
		 if(date_annee%400==0) Stop++;
	}

	// mise à jour de l'entete
	document.getElementById('mois').firstChild.firstChild.innerHTML = nom_mois[date_mois-1] + " " + date_annee;
	// mise a jour des dates
	var nombre_jours = 1;
	for(var ligne=1;ligne<=6;ligne++) {
		for(var col=1;col<=7;col++) {
			if((ligne==1)&&(col < Start+1)) {
				document.getElementById(ligne + '_' + col).firstChild.color = coul_pol_jours;
			    document.getElementById(ligne + '_' + col).firstChild.firstChild.innerHTML = "&nbsp;";
		    } else {
			    if(nombre_jours > Stop) {
					document.getElementById(ligne + '_' + col).firstChild.color = coul_pol_jours;
				    document.getElementById(ligne + '_' + col).firstChild.firstChild.innerHTML = "&nbsp;";
			    } else {
				    if((an==date_annee)&&(mois==date_mois)&&(nombre_jours==jour)) {
				        document.getElementById(ligne + '_' + col).firstChild.color = couleur_pol_cejour;
						document.getElementById(ligne + '_' + col).firstChild.firstChild.innerHTML = nombre_jours;
				    } else {
						if(col==7) {
							document.getElementById(ligne + '_' + col).firstChild.color = couleur_dim;
						} else {
							document.getElementById(ligne + '_' + col).firstChild.color = coul_pol_jours;
						}
						document.getElementById(ligne + '_' + col).firstChild.firstChild.innerHTML = nombre_jours;
					}
					nombre_jours++;
			    }
			}
		}
	}
}

/**
*	ACTION SUR CASE SAISIE
**/
function retourn_case(element)
{
	var j = element.firstChild.firstChild.innerHTML;
	var year, month, day;
	
	year = date_annee;
	if(date_mois<10) month = "0"+date_mois;
	else month = date_mois;
	if(j<10) day = "0"+j;
	else day = j;
	
	if(j != "&nbsp;") {
		var date_edt = j + " " + nom_mois[date_mois-1] + " " + date_annee;
		date_am = date_annee + "-" + date_mois + "-" + j;
		window.location.href = href_add("date="+year+"-"+month+"-"+day);
	}
}

/**
*	PASSAGE AU MOIS SUIVANT
**/
function affiche_mois_suiv()
{
	if(date_mois+1==13) {
		date_mois=1;
		date_annee +=1;
	} else {
		date_mois+=1;
	}
	mise_a_jour_calendar();

}

/**
*	PASSAGE AU MOIS PRECEDENT
**/
function affiche_mois_prec() {

	if(date_mois-1==0) {
		date_mois = 12;
		date_annee -= 1;
	} else {
		date_mois -= 1;
	}
	mise_a_jour_calendar();

}

/**
*	RETOUR AU MOIS COURANT
**/
function affiche_mois_courant() {
	var aujourdhui = new Date(); 
	date_mois = aujourdhui.getMonth() +1;
	date_annee = aujourdhui.getYear() + 1900;
	mise_a_jour_calendar();
}

/**
*	FOND DE COULEUR LORS DU SURVOL DE LA CASE
**/
function fondOver(element)
{
	if(element.firstChild.firstChild.innerHTML!="&nbsp;")
	{
		element.bgColor= couleur_hover;
	}
}

/**
*	FOND DE COULEUR APRES LE SURVOL DE LA CASE
**/
function fondOut(element)
{
	element.bgColor= arrplan_jours;
}

/**
*	FOND DE COULEUR LORS DU SURVOL DE LA CASE MOIS
**/
function fondOverMois(element)
{
	if(element.firstChild.firstChild.innerHTML!="&nbsp;")
	{
		element.bgColor= couleur_hover;
		element.firstChild.color = couleur_pol_entete_over;
	}
}

/**
*	FOND DE COULEUR APRES LE SURVOL DE LA CASE MOIS
**/
function fondOutMois(element)
{
	element.bgColor= arrplan_entete;
	element.firstChild.color = couleur_pol_entete;
}

/**
*	FOND DE COULEUR AVANT LE SURVOL DES BOUTONS
**/
function fondBoutonOver(element)
{
	element.style.backgroundColor = couleur_hover;
}

/**
*	FOND DE COULEUR APRES LE SURVOL DES BOUTONS
**/
function fondBoutonOut(element)
{
	element.style.backgroundColor = arrplan_jours;
}
