/**********************************************************************************************
 * CalendrierDynamique.js														        	  *
 *																	        				  *
 * Auteur : Francis Lareau et Bruno Pelletier								        		  *
 * Crée le : 11 octobre 2008												        	      *
 * Modifié par : Francis Lareau et Bruno Pelletier								        	  *
 * Dernière modification : 30 novembre 2008										        	  *
***********************************************************************************************/

//var cheminPhotoPrincipale= "./gallery/Fgallery1-1.jpg";
var cheminPhotoPrincipale= "picts.template/DSC03365-2-.jpg";
//var textePhotoPrincipale= "Texte sous l'image";
var textePhotoPrincipale= "Galerie Espace Mtl. 2010";

var dateEvenements= new Array()
//dateEvenements[dateEvenements.length]= new Date(2008, 0, 1);
dateEvenements[dateEvenements.length]=new Date(2012,01,09);(2012,09,28);
dateEvenements[dateEvenements.length]=new Date(2012,01,09);(2012,09,28);


var titreEvenements= new Array()
//titreEvenements[titreEvenements.length]= "Titre";
titreEvenements[titreEvenements.length]= "Au quotidien | Daily";
titreEvenements[titreEvenements.length]= "Avis | Notice";



var descriptionEvenements= new Array;
//descriptionEvenements[descriptionEvenements.length]= "";
descriptionEvenements[descriptionEvenements.length]="Je travaille présentement sur une nouvelle série de peintures. Presently working on new paintings for a future exhibition. ";                                                                                                                                                                                            
descriptionEvenements[descriptionEvenements.length]="Recherche galerie pour consignation.Pour plus d'information veuillez me contacter par courriel. Merci de votre intérêts.Looking for art consignment,please contact me by email. Thanks for your support. Gérard";                                              
                                                 
/*****
 * ChargerListeEvenements :
 *
 * @param string p_id :
 ***/
function ChargerListeEvenements(p_id)
	{
	var listeEvenements= "";
	var date= "";
	var titrePrincipal= "";

	if (p_id != 'Tous')
		{
		titrePrincipal= "Communication : " + p_id;
		for (var i= 0; i != dateEvenements.length; ++i)
			{
			if (p_id == ObtenirDate(dateEvenements[i]))
				{
				date= ObtenirDate(dateEvenements[i]);
				listeEvenements += "<fieldset id='Evenement'>";
				listeEvenements += "<div id='TitreEvenement'><h2>" + titreEvenements[i] + "</h2></div>";
				listeEvenements += "<p>" + date + " - " + descriptionEvenements[i] + "</p>";	
				listeEvenements += "<p><a id=\"AfficherTousEvenement\" onclick=\"ChargerListeEvenements('Tous')\">Afficher tous les évênements</a></p>";	
				listeEvenements += "</fieldset>";
				listeEvenements += "<br />";
				}
			}
		}
	else
		{
		var dateDuJour= new Date();
		var jour= dateDuJour.getDate();
		var mois= dateDuJour.getMonth();
		var annee= dateDuJour.getFullYear();
		titrePrincipal= "Communication";
		for (var i= 0; i != dateEvenements.length; i++)
			{
			if (dateEvenements[i].getFullYear() > annee || 
				(dateEvenements[i].getFullYear() == annee && dateEvenements[i].getMonth() > mois) ||
				(dateEvenements[i].getFullYear() == annee && dateEvenements[i].getMonth() == mois && dateEvenements[i].getDate() >= jour))
				{
				listeEvenements += "<fieldset id='Evenement'>";
				listeEvenements += "<div id='TitreEvenement'><h2>" + titreEvenements[i] + "</h2></div>";
				listeEvenements += "<p>" + ObtenirDate(dateEvenements[i]) + " - " + descriptionEvenements[i] + "</p>";		
				listeEvenements += "</fieldset>";
				listeEvenements += "<br />";
				}
			}
		}
	
	document.getElementById('TitrePrincipal').innerHTML= titrePrincipal
	document.getElementById('ListeEvenements').innerHTML= listeEvenements;
	} // Fin de la fonction ChargerListeEvenements(p_id).

/*****
 * ObtenirDate :
 *
 * @param Date p_date
 * return string date : 
 ***/
function ObtenirDate(p_date)
	{
	var date= p_date.getFullYear() + "-";
	
	if ((p_date.getMonth() + 1) < 10)
		date += "0";
	date += (p_date.getMonth() + 1) + "-";
	
	if (p_date.getDate() < 10)
		date += "0";
	date += p_date.getDate();
	
	return date;
	} // Fin de la fonction ChargerListeEvenements(p_id).

/*****
 * ObtenirNbJoursMois : 
 *
 * @param int p_noMois : 
 * @param int p_annee :
 * @return int nbJours :
 ***/
function ObtenirNbJoursMois(p_noMois, p_annee)
	{
	// Vérifie si c'est une année bissectile.
	if (p_annee % 4 == 0 && p_annee % 100 !=0 || p_annee % 400 == 0) 
	 	nbJourfevrier = 29;
	else 
		nbJourfevrier = 28;

	// Nombre de jours pour chaque mois
	nbJoursChaqueMois = new Array(31,nbJourfevrier,31,30,31,30,31,31,30,31,30,31);
	
	return nbJoursChaqueMois[p_noMois]; // Retourne le nombre de jour selon le numéro du mois.
	} // Fin de la fonction ObtenirNbJoursMois(p_mois, p_annee).

/*****
 * GenererCalendrier : 
 ***/	
function GenererCalendrier()
	{
	var dateDuJour= new Date();
	var jour= dateDuJour.getDate();
	var mois= dateDuJour.getMonth();
	var noJourSemaine= dateDuJour.getDay();
	var annee= dateDuJour.getFullYear();
	var listeMois= new Array("Janvier","Fevrier","Mars","Avril","Mai","Juin","Juillet","Aout","Septembre","Octobre","Novembre","Decembre");
	var listeAnnees= new Array();
	
	for (var i= 0; i <= 4; i++)
		listeAnnees[i] = annee - 2 + i;

	var listeJours= new Array("Dim","Lun","Mar","Mer","Jeu","Ven","Sam");

	var texte= "<div id='Calendrier'><form name='Calendrier'>";
	texte += "<table border=1>";
	texte += "<tr><td>";
	texte += "<table width=100%><tr>";
	texte += "<td align=left>";
	texte += "<select name='SelecteurMois' onChange='ChangerCalendrier()'>";
	
	for (var i= 0; i != listeMois.length; i++)
		{
		if (i == mois)
			texte += "<option value= " + i + " Selected>" + listeMois[i] + "</option>";
		else
			texte += "<option value= " + i + ">" + listeMois[i] + "</option>";
		}
		
	texte += "</select>";
	texte += "</td>";
	texte += "<td align=right>";
	texte += "<select name='SelecteurAnnee' onChange='ChangerCalendrier()'>";
	
	for (var i= 0; i != listeAnnees.length; i++)
		{
		if (listeAnnees[i] == annee)
			texte += "<option value= " + listeAnnees[i] + " Selected>" + listeAnnees[i] + "</option>";
		else
			texte += "<option value= " + listeAnnees[i] + ">" + listeAnnees[i] + "</option>";
		}
		
	texte += "</select>";
	texte += "</td>";
	texte += "</tr></table>";
	texte += "</td></tr>";
	texte += "<tr><td>";
	texte += "<table border=1>";
	texte += "<tr>";
	
	for (var i= 0; i != listeJours.length; i++)
		texte += "<td align=center><span class=label>" + listeJours[i] + "</span></td>";
		
	texte += "</tr>";
	aa = 0;
	
	for (var i= 0; i <= 5; i++)
		{
		texte += "<tr>";
		for (var j= 0; j != listeJours.length; j++)
			{
			texte += "<td align=center id='sp" + aa + "'></td>";
			aa += 1;
			}
		texte += "</tr>";
		}
		
	texte += "</table>";
	texte += "</td></tr>";
	texte += "</table>";
	texte += "</form>"
	texte += "<p>Cliquez sur une date pour voir les évênements.";
	texte += "<br />Click on a date to consult the events.</p>";
	document.write(texte);
	CreerLegende();
	
	if (cheminPhotoPrincipale.length != 0)		
		CreerEncadrePhoto();
		
	document.write("</div>");
	ChangerCalendrier();
	} // Fin de la fonction GenererCalendrier().

/*****
 * ChangerCalendrier : 
 ***/		
function ChangerCalendrier()
	{
	var dateDuJour= new Date();
	var jour= dateDuJour.getDate();
	var mois= dateDuJour.getMonth();
	var noJourSemaine= dateDuJour.getDay();
	var annee= dateDuJour.getFullYear();
	var moisCourrant= parseInt(document.Calendrier.SelecteurMois.value);
	var moisPrecedent;
	
	if (moisCourrant != 0)
		moisPrecedent= moisCourrant - 1;
	else
		moisPrecedent= 11;
		
	var anneeCourrante = parseInt(document.Calendrier.SelecteurAnnee.value);
	var date = new Date();
	date.setFullYear(anneeCourrante);
	date.setMonth(moisCourrant);
	date.setDate(1);
	var jour1= date.getDay();
	
	if (jour1 == 0)
		jour1= 7;
		
	var jourDuCalendrier= new Array(41);
	var dateDuCalendrier= new Array(41);

	// Boucle pour les dates du mois précédent.
	for (var i= 0; i < jour1; i++)
		{
		jourDuCalendrier[i]= ObtenirNbJoursMois(moisPrecedent, anneeCourrante) - jour1 + i + 1;
		dateDuCalendrier[i]= new Date(anneeCourrante, moisPrecedent, ObtenirNbJoursMois(moisPrecedent, anneeCourrante) - jour1 + i + 1);
		}
	
	var jourMoisCourrant= 1;
	// Boucle pour les dates du mois courrant.
	for (var i= jour1; i<= jour1 + ObtenirNbJoursMois(moisCourrant, anneeCourrante) - 1; i++)
		{
		jourDuCalendrier[i]= jourMoisCourrant;
		dateDuCalendrier[i]= new Date(anneeCourrante, moisCourrant, jourMoisCourrant);
		jourMoisCourrant++;
		}

	var jourMoisSuivant= 1;
	// Boucle pour les dates du mois suivant.
	for (var i= jour1 + ObtenirNbJoursMois(moisCourrant, anneeCourrante); i <= 41; i++)
		{
		jourDuCalendrier[i]= jourMoisSuivant;
		dateDuCalendrier[i]= new Date(anneeCourrante, moisCourrant + 1, jourMoisSuivant);
		jourMoisSuivant++;
		}

	for (var i= 0; i != jourDuCalendrier.length; i++)
		{
		document.getElementById("sp"+i).style.backgroundColor = "#FFFFFF";
	
		if (((i < 7) && (jourDuCalendrier[i] > 20)) || ((i > 27) && (jourDuCalendrier[i] < 20)))
			{
			document.getElementById("sp" + i).innerHTML= jourDuCalendrier[i];
			document.getElementById("sp" + i).className= "JourMoisPrecedent";
			}
		else
			{
			document.getElementById("sp" + i).innerHTML= jourDuCalendrier[i];

			if (i % 7 == 0 || (i + 1) % 7 == 0)
				document.getElementById("sp"+i).className= "JourFinDeSemaine";
			else
				document.getElementById("sp"+i).className= "JourSemaine";
				
			if (jourDuCalendrier[i] == jour && mois == moisCourrant && annee == anneeCourrante)
				document.getElementById("sp"+i).style.backgroundColor="#812A20";
			}
		}
	
	DefinirDateEvenement(dateDuCalendrier);
	} // Fin de la fonction ChangerCalendrier().

/*****
 * DefinirDateEvenement :
 *
 * @param string p_dateDuCalendrier : 
 ***/
function DefinirDateEvenement(p_dateDuCalendrier)
	{
	for (var i= 0; i != p_dateDuCalendrier.length; i++)
		{
		for (var j= 0; j != dateEvenements.length; ++j)
			{
			if (p_dateDuCalendrier[i].toLocaleString() == dateEvenements[j].toLocaleString())
				{
				document.getElementById("sp"+i).style.backgroundColor="#888796";
				document.getElementById("sp"+i).innerHTML= "<div class='FauxTD' onClick='ChargerListeEvenements(\"" + ObtenirDate(dateEvenements[j]) + "\")'>" + document.getElementById("sp"+i).innerHTML + "</div>"
				}
			} 
		}
	} // Fin de la fonction DefinirDateEvenement(p_dateDuCalendrier).

/*****
 * CreerLegende :
 ***/
function CreerLegende()
	{
	var texte= "";
	texte+= "<table border=\"1\" width=\"100%\">";
	texte+= "<th colspan=\"2\" style=\"text-align:center\">Légende | Legend</th>"; 
	texte+= "<tr><td style=\"width:20px;height:16px;background-color:#812A20\"></td><td style=\"text-align:center\">Jour courrant | Current day</td></tr>";
	texte+= "<tr><td style=\"width:20px;height:16px;background-color:#888796\"></td><td style=\"text-align:center\">Jour d'évênement | Event day</td></tr>";
	texte+= "</table>";
	
	document.write(texte);
	} // Fin de la fonction CreerLegende().

/*****
 * CreerEncadrePhoto :
 ***/
function CreerEncadrePhoto()
	{
	var texte= "";
	texte+= "<div class=\"EncadrePhoto\">";
	texte+= "<img src=\"" + cheminPhotoPrincipale + "\" width=\"265\" height=\"265\">";
	
	if (textePhotoPrincipale.length != 0) 
		texte+= textePhotoPrincipale;
	
	texte+= "</div>";
	
	document.write(texte);
	} // Fin de la fonction CreerEncadrePhoto().
