//------------------------------------------------------------------------------------------------
//
//		Programmé par 		: 	Jean-Francois Perreault
//								InetQuébec.com
//								info@inetquebec.com
//		Date de réalisation :	22 avril 2008
//
//		Fonctionnement du module de bannière rotative.
//	
//		Le module de bannière 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 timerAffichePub lit les éléments de la matrice 4 x 4 et les 
//		affiches dans une tableau à l'aide de code DHTML. Une fois que tous les éléments de la matrice
//		à été lu, la fonction retourne au début de la matrice et reprend la lecture du début et ce 
//		indéfiniment.
//
//		La fonction timerAffichePub 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 mainArrayPub = new Array;

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

function loadXML()
{
	//alert('LoadXML');
	var xmlFile = "XML/publicite.xml";
	
	if (moz) 
	{
		xmlDocPub = document.implementation.createDocument("", "doc", null);
		xmlDocPub.load(xmlFile);
	}
	else if(ie) 
	{
		// Créer une instance d'un objet XML.
		xmlDocPub = 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.
		xmlDocPub.async=false;
		while(xmlDocPub.readyState != 4) 
		{};
		xmlDocPub.load(xmlFile);
	}
	
	if(typeof xmlDocPub!="undefined")
	{
		if (window.ActiveXObject)
		{ //if IE, simply execute script (due to async prop).
			ProcessXML();
		}
		else
		{ //else if NS6 of mozilla, execute script when XML object has loaded
			xmlDocPub.onload = ProcessXML;
		}
	}
}

//------------------------------------------------------------------------------------------------
// 				fonction de traitement des données chargées
//------------------------------------------------------------------------------------------------
function ProcessXML() 
{	
	//alert('ProcessXML');
	var file, urlPub;
	var liste_clients;
	
	// récupération du contenu des noeuds pour reconstituer la variable Array 2 dimensions
	var xmlFilePub 	= xmlDocPub.getElementsByTagName("client");
	var nb_clients 	= xmlFilePub.length;
	var tblListPub	= new Array(nb_clients);
	
	//alert(nb_clients);
	for(var cptClient = 0; cptClient < nb_clients; cptClient++) 
	{
		collection_child = xmlFilePub[cptClient].childNodes;
		nb_child = collection_child.length;
		
		for(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 "file": 	file = noeud.firstChild.nodeValue;
								//alert(file);
								break;
				
				case "urlPub": 	urlPub = noeud.firstChild.nodeValue;
								//alert(urlPub);
								break;
								
				default: break;
				}
			}
		}
		
		tblListPub[cptClient] = new Array(2);
		
		// Assignation des valeurs du XML au tableau des pubs qui seront affiche dans la zone de pub 4 x 4 de facon rotative.
		tblListPub[cptClient][0] = file;
		tblListPub[cptClient][1] = urlPub;
		
		//alert(tblListPub[cptClient][0] + " et " + tblListPub[cptClient][1]);
	}
	mainArrayPub = tblListPub;
	timerAffichePub();
} 

//--------------------------------------------------------------

	var cpt = 0;
	var cptPub = 0;
	var tblAffPub1 = new Array(2);
	var tblAffPub2 = new Array(2);
	var tblAffPub3 = new Array(2);
	var tblAffPub4 = new Array(2);
	
function timerAffichePub() 
{
	var path = "admin/publicite/imgpub/";
	
	// Valide si le nombre d'element du tabeau des pubs est egale au compteur d'afrfichage des publicites
	if(cptPub == mainArrayPub.length)
	{
		//alert('cptPub = mainArrayPub.length, remise a zero du compteur');
		cptPub = 0;
	}
	
	// Gestion des pubs - Lecture des images en boucle
	if(cptPub < mainArrayPub.length)
	{
		tblAffPub1[0] = mainArrayPub[cptPub][0];
		tblAffPub1[1] = mainArrayPub[cptPub][1];
		cptPub++;
	}
	
	//	
	if(cptPub < mainArrayPub.length)
	{
		tblAffPub2[0] = mainArrayPub[cptPub][0];
		tblAffPub2[1] = mainArrayPub[cptPub][1];
		cptPub++;
	}
	
	// 	
	if(cptPub < mainArrayPub.length)
	{
		tblAffPub3[0] = mainArrayPub[cptPub][0];
		tblAffPub3[1] = mainArrayPub[cptPub][1];		
		cptPub++;
	}
	
	// 
	if(cptPub < mainArrayPub.length)
	{
		tblAffPub4[0] = mainArrayPub[cptPub][0];
		tblAffPub4[1] = mainArrayPub[cptPub][1];
		cptPub++;
	}
	
	//alert(tblAffPub1[0]);
	
	setTimeout("timerAffichePub()",3500);	


window.document.getElementById("zonePubBasPage").innerHTML = "<table width='725' height='125' border='0' cellpadding='0' cellspacing='0'><tr><td align='center'><a href='http://www." + tblAffPub1[1] + "' title='Pub1' target='_blank'><img src='../"+ path + tblAffPub1[0] +"' alt='Espace pub disponible' border='0'/></a></td><td><a href='http://www." + tblAffPub2[1] + "' title='Pub1' target='_blank'><img  src='../"+ path + tblAffPub2[0] +"' alt='zone pub' border='0'/></a></td><td><a href='http://www." + tblAffPub3[1] + "' title='Pub1' target='_blank'><img src='../"+ path + tblAffPub3[0] +"' alt='zone pub' border='0'/></a></td><td><a href='http://www." + tblAffPub4[1] + "' title='Pub1' target='_blank'><img src='../"+ path + tblAffPub4[0] +"' alt='zone pub' border='0'/></a></td></tr></table>";
}