// JavaScript Document
//------------------------------------------------------------------------------------------------
//
//		Programmé par 		: 	Jean-Francois Perreault
//								InetQuébec.com
//								info@inetquebec.com
//		Date de réalisation :	14 mai 2008
//
//		Fonctionnement du module de vignettes rotatives.
//	
//		Le module de vignettes rotative permet de lire un fichier XML et de l'assigner à une
//		matrice qui est lu par la fonction processXML. Une fois que les données on été enregistré
//		dans la matrice, la fonction timerAfficheVig lit les éléments de la matrice 3 x 3 et les 
//		affiches dans une tableau à l'aide de code DHTML. Une fois que tous les éléments de la matrice
//		ont été lu, la fonction retourne au début de la matrice et reprend la lecture du début et ce 
//		indéfiniment.
//
//		La fonction timerAfficheVig contient une valeur en millisecondes qui peut être modifié afin
//		d'augmenter ou de diminuer la vitesse de rotation des publicités.
//
//------------------------------------------------------------------------------------------------
// 				Fonction de chargement du fichier xml au sein d'une variable
//------------------------------------------------------------------------------------------------

var mainArray = new Array;

var xmlDoc;
var moz = (typeof document.implementation != "undefined") && (typeof document.implementation.createDocument != "undefined");
var ie = (typeof window.ActiveXObject != "undefined");

//----------------------------------------------------------------------------------------------
//						Function de chargement du fichier XML
//----------------------------------------------------------------------------------------------
function loadXMLVig()
{
	var xmlFile = 'XML/vignettes.xml';
	
	if (moz) 
	{
		xmlDoc = document.implementation.createDocument("", "doc", null);
		xmlDoc.load(xmlFile);
	}
	else if(ie) 
	{
		// Créer une instance d'un objet XML.
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		// Vérifier qu'elle est traitée entièrement avant de poursuivre avec le code.<br>
		//Enforce download of XML file first. IE only.
		xmlDoc.async=false;
		while(xmlDoc.readyState != 4) 
		{};
		xmlDoc.load(xmlFile);
	}
	
	if(typeof xmlDoc!="undefined")
	{
		if (window.ActiveXObject)
		{ //if IE, simply execute script (due to async prop).
			ProcessXMLVig();
		}
		else
		{ //else if NS6 of mozilla, execute script when XML object has loaded
			xmlDoc.onload = ProcessXMLVig;
		}
	}

}

//------------------------------------------------------------------------------------------------
// 				fonction de traitement des données chargées
//------------------------------------------------------------------------------------------------
function ProcessXMLVig() 
{	
	//var idvideo, datevideo, categorievideo, vignettevideo, categorievideo, imagevideo, video, titrevideo, descriptionvideo;
	var liste_clients;
	var cptNoeud = 0;
	
	// récupération du contenu des noeuds pour reconstituer la variable Array 2 dimensions
	var xmlFile 	= xmlDoc.getElementsByTagName("videos");
	var nb_Video 	= xmlFile.length;
	var tblListVig	= new Array(nb_Video);
	
	// Lit tous les elements du fichier XML et le transfert dans un tableau
	for(var cptVideo = 0; cptVideo < nb_Video; cptVideo++) 
	{
		tblListVig[cptVideo] = new Array(8);
		collection_child = xmlFile[cptNoeud].childNodes;
		nb_child = collection_child.length;
		cptNoeud++;
		
		for(var cptNoeuds = 0 ; cptNoeuds < nb_child; cptNoeuds++) 
		{
			var noeud = collection_child[cptNoeuds];
			
			if(noeud.nodeType == 1) 
			{
				var name = noeud.nodeName;
				// faire un switch sur chaque nom des noeuds ...
				switch(name) 
				{
				case "idvideo" 			: tblListVig[cptVideo][0] = noeud.firstChild.nodeValue;
										  break;
				case "datevideo" 		: tblListVig[cptVideo][1] = noeud.firstChild.nodeValue;
								   	  	  break;	
				case "categorievideo"	: tblListVig[cptVideo][2] = noeud.firstChild.nodeValue;
								   	  	  break;					  
				case "vignettevideo"	: tblListVig[cptVideo][3] = noeud.firstChild.nodeValue;
								   	  	  break;								
				case "imagevideo"		: tblListVig[cptVideo][4] = noeud.firstChild.nodeValue;
								   	  	  break;				
				case "video"			: tblListVig[cptVideo][5] = noeud.firstChild.nodeValue;
								   	  	  break;														  
				case "titrevideo"		: tblListVig[cptVideo][6] = noeud.firstChild.nodeValue;
								   	  	  break;
				case "descriptionvideo"	: tblListVig[cptVideo][7] = noeud.firstChild.nodeValue;
								   	  	  break;										 			
				default: break;
				}
			}
		}
	}
	
	mainArray = tblListVig;
	timerAfficheVig();
} 
//-----------------------------------------------------------------------------------------------------------------

	var cptVig 	= 0;
	var path 	= "admin/video/vignettes/";
	
	var tblVigVideo = new Array(3);
	tblVigVideo[0] = new Array(8);
	tblVigVideo[1] = new Array(8);
	tblVigVideo[2] = new Array(8);

//-----------------------------------------------------------------------------------------------------------------
//				Affichage des vignettes rotatives en fonction de la catégorie à afficher
//-----------------------------------------------------------------------------------------------------------------	
function timerAfficheVig() 
{		
	//alert("Affichage des vignettesS")

	var pathCategVid;

	// Détermine quel page afficher en fonction des vignettes qui s'affichent
	if(typeof mainArray[0] != 'undefined')
	{
		switch(mainArray[0][2])
		{
		case "Dossiers"		: pathCategVid = "<a href='dossiers.php?idvideo=";
							  //alert(pathCategVid);
							  break;
				
		case "Activités"	: pathCategVid = "<a href='activite-evenement.php?idvideo=";
							  //alert('Activités');
							  break;
				
		case "Services"		: pathCategVid = "<a href='services.php?idvideo=";
							  //alert('Services');
							  break;
				
		case "Regroupements": pathCategVid = "<a href='regroupement.php?idvideo=";
							  //alert('Regroupements');
							  break;
							  
		default				: pathCategVid = "";
							  break;
		}
	}
	
	// Valide si le nombre d'element du tabeau des pubs est egale au compteur d'afrfichage des publicites
	if(cptVig >= mainArray.length)
	{
		//alert('remise a 0 de cptVig')
		cptVig = 0;
	}
	
	var cptIdVig = 0;
	
	// ------------------- Gestion des pubs - Lecture des images en boucle ---------------------
	if(mainArray.length > 0)
	{
		//alert(mainArray.length);
		
		while(cptIdVig < 3)
		{
			if(cptVig < mainArray.length)
			{
				//alert('cptVig est egale a : ' + cptVig + 'et mainArray.length est = a ' + mainArray.length);
				// Assignation des information contenu dans le tableau globale dans un tableau spécifique à l'affichage de vignettes
				tblVigVideo[cptIdVig][0] = pathCategVid + mainArray[cptVig][0] + "'>";
				tblVigVideo[cptIdVig][1] = mainArray[cptVig][1];
				tblVigVideo[cptIdVig][2] = mainArray[cptVig][2];
				tblVigVideo[cptIdVig][3] = mainArray[cptVig][3];
				tblVigVideo[cptIdVig][4] = mainArray[cptVig][4];
				tblVigVideo[cptIdVig][5] = mainArray[cptVig][5];
				tblVigVideo[cptIdVig][6] = mainArray[cptVig][6];
				tblVigVideo[cptIdVig][7] = mainArray[cptVig][7];
				href = "";
				if(mainArray[cptVig][0] != "")
				{
					href = "</a>";		
				}
				
				cptVig++;
				cptIdVig++;
			}
			else
			{
				//alert('cptVig est egale a : ' + cptVig + 'et mainArray.length est = a ' + mainArray.length);
				assignDefaut(cptIdVig);
				href = "";
				cptIdVig++;
				cptVig++;
			}
		}
	}
	else
	{
		while(cptVig < 3)
		{
			// Assigne les valeurs par defaut a toutes les vignettes
			//alert('cptVig est egale a : ' + cptVig + 'et mainArray.length est = a ' + mainArray.length);
			assignDefaut(cptIdVig);
			href = "";
			cptIdVig++;
			cptVig++;
		}
	}
	
	
	
	//alert(tblVigVideo[0][0]);
	
	setTimeout("timerAfficheVig()",3000);

	window.document.getElementById("zoneListeRubrique").innerHTML = "<div id='zoneVideo1'><table width='0' border='0' cellspacing='0' cellpadding='0'><tr><td width='77' height='76'><div class='cadreVignette'>" + tblVigVideo[0][0] + "<img src='../admin/video/vignettes/" + tblVigVideo[0][3] + "' alt='Services' width='68' height='47' border='0' />" + href + "</div></td><td width='188'><div class='textTitreVignette' id='zoneCategorie3'>" + tblVigVideo[0][2] + "</div><div class='textVignetteDescription' id='zoneDescription3'>" + tblVigVideo[0][6] + " <img src='../images/condovideoDecoupe2_25.jpg' alt='Visionnez des vid&eacute;os' width='9' height='6' /></div></td></tr></table></div><div id='zoneVideo2'><table width='0' border='0' cellspacing='0' cellpadding='0'><tr><td width='77' height='76'><div class='cadreVignette'>" + tblVigVideo[1][0] + "<img src='../admin/video/vignettes/" + tblVigVideo[1][3] + "' alt='Services' width='68' height='47' border='0' />" + href + "</div></td><td width='188'><div class='textTitreVignette' id='zoneCategorie3'>" + tblVigVideo[1][2] + "</div><div class='textVignetteDescription' id='zoneDescription3'>" + tblVigVideo[1][6] + " <img src='../images/condovideoDecoupe2_25.jpg' alt='Visionnez des vid&eacute;os' width='9' height='6' /></div></td></tr></table></div><div id='zoneVideo3'><table width='0' border='0' cellspacing='0' cellpadding='0'><tr><td width='77' height='76'><div class='cadreVignette'>" + tblVigVideo[2][0] + "<img src='../admin/video/vignettes/" + tblVigVideo[2][3] + "' alt='Services' width='68' height='47' border='0' />" + href + "</div></td><td width='188'><div class='textTitreVignette' id='zoneCategorie3'>" + tblVigVideo[2][2] + "</div><div class='textVignetteDescription' id='zoneDescription3'>" + tblVigVideo[2][6] + " <img src='../images/condovideoDecoupe2_25.jpg' alt='Visionnez des vid&eacute;os' width='9' height='6' /></div></td></tr></table></div>";	
	
}

//-----------------------------------------------------------------------------------------------------------------
//							Assignation des valeurs de vignettes par defaut
//----------------------------------------------------------------------------------------------------------------
function assignDefaut(cptIdVig)
{
	
		tblVigVideo[cptIdVig][0] = "";  										// id video
		tblVigVideo[cptIdVig][1] = "";											// Date de la video
		tblVigVideo[cptIdVig][2] = "Vid&eacute;o bient&ocirc;t disponible";		// Texte avertissement img a venir	
		tblVigVideo[cptIdVig][3] = "vigVidActAVenir.jpg";						// Image de la vignette par defaut
		tblVigVideo[cptIdVig][4] = "imgVideoActAVenir.jpg";						// Image de la video
		tblVigVideo[cptIdVig][5] = "CondoVideoV2.flv";											// La video
		tblVigVideo[cptIdVig][6] = "&Agrave; VENIR";							// Titre de la video
		tblVigVideo[cptIdVig][7] = "&Agrave; VENIR";							// Description de la video
}


//-----------------------------------------------------------------------------------------------------------------
//				Dans une boucle infini, je demarre l'affichage des vignettes et je les stop pour 
//				demarrer les pub et ainsi de suite.
//-----------------------------------------------------------------------------------------------------------------
function animerTout()
{
	var cptRotationObjet = 0;
	// Boucle infini qui affiche les elements rotatifs 
	while(true)
	{
		setTimeout("timerAfficheVig()",3500);
	}
}

//-----------------------------------------------------------------------------------------------------------------
//				Cette function est utilise afin de tester le contenu du array de tous les videos
//-----------------------------------------------------------------------------------------------------------------
function afficheArray()
{
	for(var cpt = 0; cpt < mainArray.length; cpt++)
	{
		document.write(mainArray[cpt][0] + "<br />" + mainArray[cpt][1] + "<br />" + mainArray[cpt][2] + "<br />" + mainArray[cpt][3] + "<br />" + mainArray[cpt][4] + "<br />" + mainArray[cpt][5] + "<br />" + mainArray[cpt][6] + "<br />" + mainArray[cpt][7] + "<br />//----------------------------------------------------------------------------<br /><br />");
	}
}