/*
Sujet : 	Fichier de navigation par AJAX
Date :	01 Juillet 2008
Auteur :	Stargate Vortex
*/

var refresh;

// MD5 de l'ancien contenu
// Permet d'identifier des modifications
var sha1_donnees;

/* Fonction de requête AJAX */
function AJAXRequest(page, fonction, methode, data) {
	var xhr_object = null;
	
	if (window.XMLHttpRequest) // Firefox
		xhr_object = new XMLHttpRequest();
	
	else if (window.ActiveXObject) // Internet Explorer
		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	
	else { 
		// XMLHttpRequest non supporté par le navigateur
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
		return;
	}
	
	if (data == "")
		data = null;
	
	if (methode == "GET" && data != null) { 
		page += "?" + data; 
		data = null; 
	}
	
	// Changement du curseur
	document.body.style.cursor = 'wait';
	
	// Champ ou placer les informations
	var champ_information = document.getElementById('information_joueur');
	
	if ( champ_information != null ) 
	{
		// Information du chargement de la page
		//champ_information.innerHTML = '<div align="right"> <img src="images/loading.gif" alt="Chargement en cours" /> </div>';
		
		xhr_object.open(methode, page, true);
		
		xhr_object.onreadystatechange = function() 
		{
			if(xhr_object.readyState == 4) 
			{
				var RetAjax = xhr_object.responseText;
				eval(fonction + '(RetAjax);');
			}
		}
		
		if (methode == "POST")
			xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		
		xhr_object.send(data);
	}
	else
		alert('Impossible de trouver l\'élément ou placer les informations');
	
	// Remet le curseur en mode auto
	document.body.style.cursor = 'auto';
}

/* Envoie la fonction XMLHTTPRequest de chargement des informations */
function ChargementInformations() 
{
	AJAXRequest("module.php", "AfficheContenu", "GET", "nom=information_joueur");
}

/* Affiche le contenu des informations et prépare la prochaine actualisation */
function AfficheContenu(donnees) 
{
	// Champ ou placer les informations
	var champ_information = document.getElementById('information_joueur');
	
	// Vérifie si il y a eu des changements depuis la dernière réception
	if (sha1_donnees != SHA1(donnees)) {
		
		sha1_donnees = SHA1(donnees);
		
		// Effet de fondu pour le chargement
		new Effect.Fade('information_joueur', {duration:.7, afterFinish:function() {
			
			// Rempli le champ approprié des informations voulues
			champ_information.innerHTML = donnees;
			
			// Effet d'apparition pour le contenu
			new Effect.Appear('information_joueur', {duration:.7});
			
		} } );
	}
	
	ActualisationAutomatique(10000);
}

/* Active le rafraîchissement des information toute les X secondes*/
function ActualisationAutomatique(temps) 
{
	refresh = setTimeout("ChargementInformations()", temps);
}
