/* Produit le code HTML qui formera le calendrier */		
function AfficheCalendrier(Annee,Mois,Jour){
	var CodeHTML = "";
	var ListeJour = new Array("Jour_Vide", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam", "Dim");
	var ListeMois = new Array("Mois_Vide", "Janvier", "F&eacute;vrier", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "D&eacute;cembre");
	var ListeNbJourMois = new Array("Mois_longueur_vide",31,29,31,30,31,30,31,31,30,31,30,31);
	var ListeJoursFeries =JoursFeries (Annee);
	var JourFerie = 0;
	var Index=0;

	ListeNbJourMois[2] = NbJourFevrier(Annee);
	var NumJourSemaine = NumeroJour(Annee,Mois,Jour);
	var NumSemaine = NumeroSemaine(Annee,Mois,Jour,ListeNbJourMois);
	var NumPremiereSemaine = NumeroSemaine(Annee,Mois,1,ListeNbJourMois);
	CodeHTML = "<table cellspacing=\"0\" cellpadding=\"0\" class=\"cal_table\">";
	CodeHTML += "<tr class=\"cal_tr\"><td colspan=\"8\" class=\"cal_mois\"><b>" + ListeMois[Mois] + " " + Annee + "</b></td></tr><tr class=\"cal_tr\">";
	
	for (Boucle=1; Boucle<8; Boucle++){
		if (NumJourSemaine == Boucle) { 
			CodeHTML += "<td class=\"cal_jour_actuel\">" + ListeJour[Boucle] + "</td>";
		}
		else {
			CodeHTML += "<td class=\"cal_jour_actuel\">" + ListeJour[Boucle] + "</td>";
		}
	}
	
	CodeHTML += "<td class=\"cal_jour_actuel\">Sem</td></tr>";
	
	for (Boucle=(1-NumeroJour(Annee,Mois,1)); Boucle<ListeNbJourMois[Mois]; Boucle++){
		CodeHTML += "<tr class=\"cal_tr\">";
		for (j=1; j<8; j++){
			if ((Boucle+j) <= 0) {
				CodeHTML += "<td class=\"cal_jour\">&nbsp;</td>";
			}
			else if ((Boucle+j) > ListeNbJourMois[Mois]) {
				CodeHTML += "<td  class=\"cal_jour\">&nbsp;</td>";
			}
			else if (j==7){
				if ((Boucle+j) == Jour) {
					CodeHTML += "<td class=\"cal_jour\"><span id=\"dimanche\">"  + (Boucle+j) + "</span></td>";
				}
				else{
					CodeHTML += "<td  class=\"cal_jour\"><span id=\"dimanche\">" + (Boucle+j) + "</span></td>";
				}
			}
			else {
				JourFerie=false;
				for (z=0; z<13; z++){
					if (Mois==ListeJoursFeries[z].getMonth()+1){
						if ((Boucle+j)==ListeJoursFeries[z].getDate()){
							if ((Boucle+j) == Jour) {
								CodeHTML += "<td class=\"cal_aujourdhui\"><span id=\"ferie\">" + (Boucle+j) + "</span></td>";
							}
							else{
								CodeHTML += "<td class=\"cal_jour\"><span id=\"ferie\">" + (Boucle+j) + "</span></td>";
							}
							JourFerie=true;
							break;
						}
					}
				}
				if (JourFerie==false){
					if ((Boucle+j) == Jour) {
						CodeHTML += "<td class=\"cal_aujourdhui\">" + (Boucle+j) + "</td>";
					}
					else{
						CodeHTML += "<td  class=\"cal_jour\">" + (Boucle+j) + "</td>";
					}
				}
			}
		}
	
		if ((NumPremiereSemaine+Index) == NumSemaine) {
			CodeHTML += "<td  class=\"cal_aujourdhui\">" + NumSemaine + "</td>";
		}
		else {
			CodeHTML += "<td  class=\"cal_jour\">" + (NumPremiereSemaine+Index) + "</td>";
		}
		CodeHTML += "</tr>";
		Index++;
		Boucle = Boucle + 6;
	}		
	CodeHTML += "</table>";
	EcritId("Calendrier",CodeHTML);
}

/* Cr&eacute;ation d'une table de date des jours f&eacute;ri&eacute;s*/
function JoursFeries (an){
	var JourAn = new Date(an, "00", "01")
	var FeteTravail = new Date(an, "04", "01")
	var Victoire1945 = new Date(an, "04", "08")
	var FeteNationale = new Date(an,"06", "14")
	var Assomption = new Date(an, "07", "15")
	var Toussaint = new Date(an, "10", "01")
	var Armistice = new Date(an, "10", "11")
	var Noel = new Date(an, "11", "25")
	
	var G = an%19
	var C = Math.floor(an/100)
	var H = (C - Math.floor(C/4) - Math.floor((8*C+13)/25) + 19*G + 15)%30
	var I = H - Math.floor(H/28)*(1 - Math.floor(H/28)*Math.floor(29/(H + 1))*Math.floor((21 - G)/11))
	var J = (an*1 + Math.floor(an/4) + I + 2 - C + Math.floor(C/4))%7
	var L = I - J
	var MoisPaques = 3 + Math.floor((L + 40)/44)
	var JourPaques = L + 28 - 31*Math.floor(MoisPaques/4)
	var Paques = new Date(an, MoisPaques-1, JourPaques)
	var LundiPaques = new Date(an, MoisPaques-1, JourPaques+1)
	var Ascension = new Date(an, MoisPaques-1, JourPaques+39)
	var Pentecote = new Date(an, MoisPaques-1, JourPaques+49)
	var LundiPentecote = new Date(an, MoisPaques-1, JourPaques+50)
	return new Array(JourAn, Paques, LundiPaques, FeteTravail, Victoire1945, Ascension, Pentecote, LundiPentecote, FeteNationale, Assomption, Toussaint, Armistice, Noel)
}

/* Teste une annee pour determiner si elle est bissextile ou pas*/
function NbJourFevrier(NumAnnee){
	if ((NumAnnee % 100 != 0 && NumAnnee % 4 == 0) || (NumAnnee % 400 == 0)) {
		return 29;
	}
	else {
		return 28;
	}
}

/* Renvoie le numero de la semaine correspondant a la date requise*/
function NumeroSemaine(Annee,Mois,NumJour,ListeNbJourMois){
	var NumJ = 0;
	var NumS = 1;
	for (Boucle=1; Boucle<Mois; Boucle++){
		NumJ += ListeNbJourMois[Boucle];
	}
	NumJ = NumJ + NumJour - (9 - NumeroJour(Annee,1,1));
	NumS = Math.floor(NumJ / 7) + 1;
	
	if (NumeroJour(Annee,1,1) == 1) { 
		NumS++;
	}
	return NumS;
}

/* Renvoie le numero du jour de la semaine correspondant a la date requise */
function NumeroJour(NumAnnee,NumMois,NumJour){
	return Math.floor((DateEnJour(NumAnnee,NumMois,NumJour)-2) % 7) + 1;
}

/* Transforme la date en nb de jours theoriques */
function DateEnJour(NumAnnee,NumMois,NumJour){
	if (NumMois > 2){
		var bis = Math.floor(NumAnnee/4) - Math.floor(NumAnnee/100) + Math.floor(NumAnnee/400);
		var zy = Math.floor(NumAnnee * 365 + bis);
		var zm = (NumMois-1) * 31 - Math.floor(NumMois * 0.4 + 2.3);
		return (zy + zm + NumJour);
	}
	else
	{
		var bis = Math.floor((NumAnnee-1)/4) - Math.floor((NumAnnee-1)/100) + Math.floor((NumAnnee-1)/400);
		var zy = Math.floor(NumAnnee * 365 + bis);
		return (zy + (NumMois-1) * 31 + NumJour);
	}
}

function JourEcoule(Annee,Mois,Jour){
	var NbJour=0;
	var ListeNbJourMois = new Array("Mois_longueur_vide",31,29,31,30,31,30,31,31,30,31,30,31);
	ListeNbJourMois[2] = NbJourFevrier(Annee);
	for (Boucle=1; Boucle<Mois; Boucle++){
		NbJour +=ListeNbJourMois[Boucle];
	}
	NbJour +=Jour;
	EcritId("JourEcoule","<span id=\"Nbjour\">" + NbJour  + "</span> &egrave;me Jour de l'ann&eacute;e");
}

function JourRestant(Annee,Mois,Jour){
	var NbJourE=0;
	var NbJour=0;
	var ListeNbJourMois = new Array("Mois_longueur_vide",31,29,31,30,31,30,31,31,30,31,30,31);
	ListeNbJourMois[2] = NbJourFevrier(Annee);	
	for (Boucle=1; Boucle<13; Boucle++){
		NbJour +=ListeNbJourMois[Boucle];
		if(Boucle<Mois){NbJourE +=ListeNbJourMois[Boucle];}
	}
	NbJourE +=Jour;
	if ((NbJour-NbJourE)==0){
		EcritId("JourRestant","<span id=\"Nbjour\">" + (NbJour-NbJourE) + "</span>Dernier jour de l\'ann&eacute;e.");
	}
	else if ((NbJour-NbJourE)<2) {
		EcritId("JourRestant","<span id=\"Nbjour\">" + (NbJour-NbJourE) + "</span> jour restant");
	}
	else {
		EcritId("JourRestant","<span id=\"Nbjour\">" + (NbJour-NbJourE) + "</span> jours restants");
	}
}

function HeureEteHivers(Annee,Mois,Jour){
	var TableDernierDimanche = new Array("vide",28,27,26,25,31,30,29);
	if ((Mois>3) && (Mois<10)){
		TypeH="Heure d'&eacute;t&eacute;";
	}
	else if ((Mois<3) || (Mois>10)){
		TypeH="Heure d'hivers";
	}
	else{
		NumPremierJour=NumeroJour(Annee,Mois,1);
		DernierDimanche=TableDernierDimanche[NumPremierJour];
		if (Mois==3){
			if (DernierDimanche==Jour){
				TypeH="Passage &agrave; l'heure d'&eacute;t&eacute; aujourd'hui";
			}
			else if (Jour<DernierDimanche){
				TypeH="Heure d'hivers";
			}
			else if (Jour>DernierDimanche){
				TypeH="Heure d'&eacute;t&eacute;";
			}
		}
		else{
			if (DernierDimanche==Jour){
				TypeH="Passage &agrave; l'heure d'hivers aujourd'hui";
			}
			else if (Jour>DernierDimanche){
				TypeH="Heure d'hivers";
			}
			else if (Jour<DernierDimanche){
				TypeH="Heure d'&eacute;t&eacute;";
			}
		}
	}	
	EcritId("HeureEteHivers",TypeH);
}
function SaintDuJour(Annee,Mois,Jour){
	var mm;
	if (Mois==1) {
		mm= new Array("Jour de l'An","Bazile","Genevi&egrave;ve","Odilon","Edouard","M&eacute;laine","Raymond","Lucien","Alix","Guillaume","Paulin","Tatiana","Yvette","Nina","R&eacute;mi","Marcel","Roseline","Prisca","Marius","S&eacute;bastien","Agn&egrave;s","Vincent","Barnard","François de Sales","Conversion de St.Paul","Paule","Ang&egrave;le","Thomas d'Aquin","Gildas","Martine","Marcelle");
	}
	else if (Mois==2) {
		mm= new Array("Ella","Pr&eacute;sentation du Seigneur","Blaise","V&eacute;ronique","Agathe","Gaston","Eug&eacute;nie","Jacqueline","Apolline","Arnaud","N.D de Lourdes","F&eacute;lix","B&eacute;atrice","Valentin","Claude","Julienne","Alexis","Bernadette","Gabin","Aim&eacute;e","PIerre-Damien","Isabelle","Lazare","Modeste","Rom&eacute;o","Nestor","Honorine","Romain","");
	}
	else if (Mois==3) {
		mm= new Array("Aubin","Charles le Bon","Gu&eacute;nol&eacute;","Casimir","Olive","Colette","F&eacute;licit&eacute;","Jean de Dieu","Françoise","Vivien","Rosine","Justine","Rodrigue","Mathilde","Louise","B&eacute;n&eacute;dicte","Patrice","Cyrille","Joseph","Herbert","Cl&eacute;mence","L&eacute;a","Victorien","Catherine de Su&egrave;de","Humbert","larissa","Habib","Gontran","Gwladys","Am&eacute;d&eacute;e","Benjamin");
	}
	else if (Mois==4) {
		mm= new Array("Hugues","Sandrine","Richard","Isidore","Ir&egrave;ne","Marcellin","St J.B. de la salle","Julie","Gautier","Fulbert","Stanislas","Jules","Ida","Maxime","Paterne","Benoit-Jos&eacute;","Anicet","Parfait","Emma","Odette","Anselme","Georges","Fid&egrave;le","Marc","Alida","Zita","Val&eacute;rie","Cath. de Sienne","Robert");
	}
	else if (Mois==5) {
		mm= new Array("F&ecirc;te du Travail","Boris","Jacques Philippe","Sylvain","Judith","Prudence","Gis&egrave;le","xxxx","Pacôme","Solange","Estelle","Achille","Rolande","Matthias","Denise","Honor&eacute;","Pascal","Eric","Yves","Bernardin","Constantin","Emile","Didier","Donatien","Sophie","B&eacute;renger","Auguste de Cant.","Germain","Aymar","Ferdinand","Visitation");
	}
	else if (Mois==6) {
		mm= new Array("Justin","Blandine","K&eacute;vin","Clotilde","Igor","Norbert","Gilbert","M&eacute;dard","Diane","Landry","Barnab&eacute;","Guy","Antoine de Padou","Elis&eacute;e","Germaine","Jean-François-R&eacute;gis","Herv&eacute;","L&eacute;once","Romuald","Silv&egrave;re","Rodolphe","Alban","Audrey","Jean-Baptiste","Prosper","Anthelme","Fernand","Ir&eacute;n&eacute;e","StPIerre/Paul","Martial");
	}
	else if (Mois==7) {
		mm= new Array("Thierry","Martinien","Thomas","Florent","Antoine-Marie","Marietta","Raoul","Thibaut","Amandine","Ulrich","Benoît","Olivier","Henri/Joel","F&ecirc;te Nationale","Donald","N.D Mont Carmel","Charlotte","Fr&eacute;d&eacute;ric","Ars&egrave;ne","Marina","Victor","Marie-Madeleine","Brigitte","Christine","Jacques le Majeur","Anne","Nathalie","Samson","Marthe","Juliette","Ignace de Loyola");
	}
	else if (Mois==8) {
		mm= new Array("Alphonse","Julien","Lydie","J.M. Vianney","Abel","Transfiguration","Ga&eacute;tan","Dominique","Amour","Laurent","Claire","Clarisse","Hippolyte","Evrard","Assomption","Armel","Hyacinthe","H&eacute;l&egrave;ne","Jean-Eudes","Bernard","Christophe","Fabrice","Rose","Barth&eacute;l&eacute;my","Louis","Natacha","Monique","Augustin","Sabine","Fiacre","Aristide");
	}
	else if (Mois==9) {
		mm= new Array("Gilles","Ingrid","Gregoire","Rosalie","Raïssa","Bertrand","Reine","Nativit&eacute; de N.D.","Alain","In&egrave;s","Adelphe","Apollinaire","Aim&eacute;","Ste Croix","Roland","Edith","Renaud","Nad&egrave;ge","Emilie","Davy","Matthieu","Maurice","Constant","Th&egrave;cle","Hermann","Côme/Damien","Vincent de Paul","Venceslas","Michel","Jerôme");
	}
	else if (Mois==10) {
		mm= new Array("Th&eacute;r&egrave;se de l'E.J.","Leger","G&eacute;rard","François d'Assise","Fleur","Bruno","Serge","P&eacute;lagie","Denis","Ghislain","Firmin","Wilfried","G&eacute;raud","Juste","Th&eacute;r&eacute;sa","Edwige","Baudouin","Luc","Ren&eacute;","Adeline","C&eacute;line","Elodie","Jean de CaPIstran","Florentin","Doria","Dimitri","Emeline","Simon","Narcisse","Bienvenue","Wolfgang");
	}
	else if (Mois==11) {
		mm= new Array("Toussaint","D&eacute;funts","Hubert","Charles Bor.","Sylvie","Bertille","Carine","Geoffroy","Th&eacute;odore","L&eacute;on","Armistice","Christian","Brice","Sidoine","Albert","Marguerite","Elisabeth","Aude","Tanguy","Edmond","Christ Roi","C&eacute;cile","Cl&eacute;ment","Flora","Catherine","Delphine","S&eacute;verin","Avent","Saturnin","Andr&eacute;");
	}
	else if (Mois==12) {
		mm= new Array("Florence","Viviane","François-Xavier","Barbara","G&eacute;rald","NiColas","Ambroise","Immacul&eacute;e Conception","PIerre Fourier","Romaric","Daniel","Chantal","Lucie","Odile","Ninon","Alice","Judicaël","Gatien","Urbain","Th&eacute;ophile","PIerre Canisius","Françoise-Xavi&egrave;re","Armand","Ad&egrave;le","Noël","Etienne","Jean l'Apôtre","Innocents","David","Roger","Sylvestre");
	}
	EcritId("Saint","Nous f&ecirc;tons les <span id=\"Nom\">" + mm[Jour-1] + "</span>");
}

// Fonction qui permet de changer le contenue de div monimg par en changer la largeur et hauteur
function EcritId(NewId,Texte){
	if (document.getElementById){
		document.getElementById(NewId).innerHTML = Texte;
	}
	else if (document.all){
		document.all[NewId].innerHTML = Texte;
	}
}
