var numProcessus; //numéro du processus en cours. //Parcourir la liste des éléments de la collection et selon qu'il y ait un //filtre, traiter l'élément courant. function traiterCollection(collection, filtre, traiterElem) { var n = collection.length; for(var i = 0; i < n; i++) if(filtre == "" || aTraiter(collection[i], filtre)) traiterElem(collection[i]); } //Vérifier si l'objet existe et s'il a le bon préfixe. function aTraiter(obj, prefixe) { return obj.id != null && obj.id.indexOf(prefixe) == 0; } //Initialiser les lignes des périodes. function preparerCalendrier() { initLesLignes(); } //Initialiser les lignes du tableau des périodes. function initLesLignes() { var tab = document.getElementById("tabPeriode"); var lignes = tab.getElementsByTagName("tr"); traiterCollection(lignes, "per;", initUneLigne); } //Initialiser une ligne du tableau des périodes. function initUneLigne(uneLigne) { //Au survol, colorier le fond des cellules du calendrier associées. uneLigne.onmouseover = montrerPeriode; //À la sortie, enlever la couleur de fond des cellules associées. uneLigne.onmouseout = sortirLigne; } //Colorier le fond des cellules du tableau du calendrier. function montrerPeriode() { //Garder l'affichage. arreterCacher(); //Obtenir le numéro du jour de début et de fin. var tabId = this.id.split(";"); var debut = new Number(tabId[1].toString()); var fin = new Number(tabId[2].toString()); //Parcourir les numéros et colorier les cellules des jours et du //calendrier du tableau de calendrier dont les noms des cellules //sont obtenues. for(i = debut; i >= fin; i--) { var jour = document.getElementById("jr;" + i.toString()); var cal = document.getElementById("cal;" + i.toString()); //Mettre la couleur de fond se trouvant dans le titre de la ligne. jour.style.backgroundcolor = this.title.toString(); cal.style.backgroundcolor = this.title.toString(); } } //Enlever la couleur de fond des cellules associées au id de la ligne reçu. function cacher(id) { //Obtenir le numéro du jour de début et de fin. var tabId = document.getElementById(id).id.split(";"); var debut = new Number(parseInt(tabId[1])); var fin = new Number(parseInt(tabId[2])); //Parcourir les numéros et colorier les cellules des jours et du //calendrier du tableau de calendrier dont les noms des cellules //sont obtenues. for(i = debut; i >= fin; i--) { var jour = document.getElementById("jr;" + i.toString()); var cal = document.getElementById("cal;" + i.toString()); //Mettre une couleur transparente pour voir le fond normal. jour.style.backgroundcolor = "transparent"; cal.style.backgroundcolor = "transparent"; } } //Arrêtre le processus de masquage des couleurs de fond des cellules. function arreterCacher() { window.clearTimeout(numProcessus); } //Selon le id de la ligne reçu, enlever la couleur des cellules associées. function gererSortie(id) { numProcessus = window.setTimeout("cacher('" + id + "')", 100); } //Enlever la couleur de fond des cellules associées à la ligne courante. function sortirLigne() { gererSortie(this.id); }