﻿/* Précharger une liste d'images */
function PreChargerImg(TabImgSrc){
	if(document.images){ // Si au moins une image existe dans la page
		var monObjImg = new Array(TabImgSrc.length); // Créer un tableau d'images

		for(i = 0; i < TabImgSrc.length; i++){
			monObjImg[i] = new Image();
			monObjImg[i].src = TabImgSrc[i]; // Charger l'image dans le cache mémoire en passant son adresse en paramètre
		}
	}
}

var mesImg = new Array(); // Tableau des images à précharger

/* Trouver l'élément Html grâce à son ID */
function GetId(myId){
	return(document.getElementById(myId));
}

/* Supprimer un noeud superflu de l'arborescence Xml */
function XmlSupprimer(arbre){
	if(!arbre.data.replace(/\s/g,""))
		arbre.parentNode.removeChild(arbre); // Supprimer le noeud ARBRE si celui-ci est vide
}

/* Nettoyer l'arborescence Xml de ses noeuds superflus */
function XmlNettoyer(noeud){
	var balise = noeud.getElementsByTagName("*"); // Récupérer la balise Html correspondante à NOEUD

	for(i = 0; i < balise.length; i++){
		noeudPrec = balise[i].previousSibling; // Se positionner sur la balise juste avant NOEUD
		if(noeudPrec && noeudPrec.nodeType == 3)
			XmlSupprimer(noeudPrec); // localiser le noeud superflu par son type et le supprimer
		noeudSuiv = balise[i].nextSibling; // Se positionner sur la balise juste après NOEUD
		if(noeudSuiv && noeudSuiv.nodeType == 3)
			XmlSupprimer(noeudSuiv); // localiser le noeud superflu par son type et le supprimer
	}
	return(noeud);
}

/* Aller à la plage horaire suivante */
function GrilleSuivre(){
	decalage++;
	if(decalage < 22){
		for(i = 0; i < listHrTree.childNodes.length; i++){ // Monter la plage horaire d'un cran
			//alert(listHrTree.childNodes[i].offsetTop);
			listHrTree.childNodes[i].style.top =  "-" + (146 * decalage) + "px";
			lunTree.childNodes[i].style.top =  "-" + (147 * decalage) + "px";
			marTree.childNodes[i].style.top =  "-" + (147 * decalage) + "px";
			merTree.childNodes[i].style.top =  "-" + (147 * decalage) + "px";
			jeuTree.childNodes[i].style.top =  "-" + (147 * decalage) + "px";
			venTree.childNodes[i].style.top =  "-" + (147 * decalage) + "px";
			samTree.childNodes[i].style.top =  "-" + (147 * decalage) + "px";
			dimTree.childNodes[i].style.top =  "-" + (147 * decalage) + "px";
			if(listHrTree.childNodes[i].offsetTop < 9){
				listHrTree.childNodes[i].style.visibility = "hidden";
			}
		}
		PaginTree.childNodes[0].style.display = "inline";
		PaginTree.childNodes[1].style.display = "none";
	}
	if(decalage >= 21){
		PaginTree.childNodes[3].style.display = "none";
		PaginTree.childNodes[4].style.display = "inline";
	}
}

function GrilleInit(decalage){
	if(decalage < 22){
		for(i = 0; i < listHrTree.childNodes.length; i++){ // Monter la plage horaire d'un cran
			//alert(listHrTree.childNodes[i].offsetTop);
			listHrTree.childNodes[i].style.top =  "-" + (146 * decalage) + "px";
			lunTree.childNodes[i].style.top =  "-" + (147 * decalage) + "px";
			marTree.childNodes[i].style.top =  "-" + (147 * decalage) + "px";
			merTree.childNodes[i].style.top =  "-" + (147 * decalage) + "px";
			jeuTree.childNodes[i].style.top =  "-" + (147 * decalage) + "px";
			venTree.childNodes[i].style.top =  "-" + (147 * decalage) + "px";
			samTree.childNodes[i].style.top =  "-" + (147 * decalage) + "px";
			dimTree.childNodes[i].style.top =  "-" + (147 * decalage) + "px";
			if(listHrTree.childNodes[i].offsetTop < 9){
				listHrTree.childNodes[i].style.visibility = "hidden";
			}
		}
		PaginTree.childNodes[0].style.display = "inline";
		PaginTree.childNodes[1].style.display = "none";
	}
	if(decalage >= 21){
		PaginTree.childNodes[3].style.display = "none";
		PaginTree.childNodes[4].style.display = "inline";
	}
}

/* Aller à la plage horaire précédente */
function GrillePreceder(){
	decalage--;
	if(decalage >= 0){
		for(i = 0; i < listHrTree.childNodes.length; i++){ // Monter la plage horaire d'un cran
			listHrTree.childNodes[i].style.top =  "-" + (146 * decalage) + "px";
			lunTree.childNodes[i].style.top =  "-" + (147 * decalage) + "px";
			marTree.childNodes[i].style.top =  "-" + (147 * decalage) + "px";
			merTree.childNodes[i].style.top =  "-" + (147 * decalage) + "px";
			jeuTree.childNodes[i].style.top =  "-" + (147 * decalage) + "px";
			venTree.childNodes[i].style.top =  "-" + (147 * decalage) + "px";
			samTree.childNodes[i].style.top =  "-" + (147 * decalage) + "px";
			dimTree.childNodes[i].style.top =  "-" + (147 * decalage) + "px";
			if(listHrTree.childNodes[i].offsetTop >= 9){
				listHrTree.childNodes[i].style.visibility = "visible";
			}
		}
		PaginTree.childNodes[3].style.display = "inline";
		PaginTree.childNodes[4].style.display = "none";
	}
	if(decalage == 0){
		PaginTree.childNodes[0].style.display = "none";
		PaginTree.childNodes[1].style.display = "inline";
	}
}

/* Initialiser la pagination */
function GrillePaginer(){
	listHrTree = XmlNettoyer(GetId("listHr")); // Garder uniquement les éléments de la liste d'heure
	lunTree = XmlNettoyer(GetId("LunBox")); // Garder uniquement les cases horaires des jours de la grille
	marTree = XmlNettoyer(GetId("MarBox"));
	merTree = XmlNettoyer(GetId("MerBox"));
	jeuTree = XmlNettoyer(GetId("JeuBox"));
	venTree = XmlNettoyer(GetId("VenBox"));
	samTree = XmlNettoyer(GetId("SamBox"));
	dimTree = XmlNettoyer(GetId("DimBox"));
	PaginTree = XmlNettoyer(GetId("Pagination")); // Garder uniquement les éléments de pagination
	PaginTree.childNodes[0].style.display = "none";
	PaginTree.childNodes[1].style.display = "inline";
}

var lunTree = null; // Arborescence des jours de la grille
var marTree = null;
var merTree = null;
var jeuTree = null;
var venTree = null;
var samTree = null;
var dimTree = null;
var PaginTree = null; // Arborescence de la pagination
var listHrTree = null; // Arborescence liste d'heures
var decalage = 0; // Changement de creneau horaire