var identifiantPage = "1";

/*
 * Fonction qui se déclenche au chargement de la page
 * Elle charge le menu dans la langue demandé
 * et affiche le texte de la page qui somme nous ?
 */
function auChargement(){
	//chargement du menu et de la page
	chargerMenu();
	chargerPage(1,language);
}

/*
 * Charge le fichier de menu et insere le menu dans le div adequate
 */
function chargerMenu(){
	//appel qui va charger les menus
	var xhr = getXhr();
	// On défini ce qu'on va faire quand on aura la réponse
	xhr.onreadystatechange = function(){
	// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
		if(xhr.readyState == 4 && xhr.status == 200){
			reponse = clean(xhr.responseXML);
			afficherMenu(reponse);
		}
	}
	
	xhr.open("POST","menu.php",true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xhr.send("langue=" + language);
}

/*
 * Fonction qui charge le texte et l'image de la page demandée
 */
function chargerPage(idPage,langue){
	identifiantPage = idPage;
	//appel qui va charger le contenu de la page
	var xhr = getXhr();
	// On défini ce qu'on va faire quand on aura la réponse
	xhr.onreadystatechange = function(){
	// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
		if(xhr.readyState == 4 && xhr.status == 200){
			reponse = clean(xhr.responseXML);
			afficherContenu(reponse);
		}
	}
	
	xhr.open("POST","page.php",true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xhr.send("langue=" + langue + "&idPage=" +idPage);
}

/*
 * Afficher le menu
 */
function afficherMenu(docXML){
	var chaineMenu = "";
	var listeMenus = docXML.getElementsByTagName("DATA")[0].getElementsByTagName("MENU");
	if(listeMenus != null){
		chaineMenu += "<TABLE border='0' cellspacing='0' cellpadding='0' width='100%' align='center'><TR>";
		for(var i = 0; i < listeMenus.length ; i++){
			chaineMenu += "<TD class='lien' onclick='chargerPage(" + listeMenus[i].getAttribute('id') + 
			",\"" + language + "\")'><p class='lien'>" + listeMenus[i].getAttribute('libelle') + "</p></TD>";	
		}
		chaineMenu += "</TR></TABLE>";
	}	
	document.getElementById("menu").innerHTML = chaineMenu;
}

/*
 * Afficher le contenu de la page
 */
 function afficherContenu(docXML){
 	var title = docXML.getElementsByTagName("TITLE")[0];
 	var contenu = docXML.getElementsByTagName("DATA")[0].getElementsByTagName("TEXTE")[0];
 	var images = docXML.getElementsByTagName("IMAGES")[0];
 	var contenuImage = "";
 	
 	if(title!=null){
 		document.getElementById("title").innerHTML = title.getAttribute("value");
 	}
 	if(contenu!=null){
 		document.getElementById("contenu").innerHTML = contenu.getAttribute("value");
 	}
 	if(images != null){
 		var image = images.getElementsByTagName("IMAGE");
 		if(image.length > 0){
	 		for(var i=0; i < image.length; i++){
	 			contenuImage +="<img src='" + image[i].getAttribute("source") + "' width='300'/> "
	 		}
 		}
 	}
 	document.getElementById("images").innerHTML = contenuImage;
 	
 }
 
 /*
  * Changer la langue de la page courante
  */
 function changerLangue(uneLangue){
 	language = uneLangue;
 	chargerMenu();
 	chargerPage(identifiantPage,language)
 }

// Node cleaner
function go(c){
	if(!c.data.replace(/\s/g,''))
		c.parentNode.removeChild(c);
}

function clean(d){
	var bal=d.getElementsByTagName('*');
	for(i=0;i<bal.length;i++){
		a=bal[i].previousSibling;
		if(a && a.nodeType==3)
			go(a);
		b=bal[i].nextSibling;
		if(b && b.nodeType==3)
			go(b);
	}
	return d;
}


function getXhr(){
	var xhr = null;
	if(window.XMLHttpRequest){ // Firefox et autres
		xhr = new XMLHttpRequest();
	} else if(window.ActiveXObject){ // Internet Explorer
		try {
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e){
			xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}
	} else { // XMLHttpRequest non supporté par le navigateur
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
		xhr = false;
	}
	return xhr;
}

function xml2str(xmlDoc)        { 
                if(document.implementation&&document.implementation.createDocument) 
                { 
                        // Firefox 
                        var objXMLSerializer=new XMLSerializer; 
                        return objXMLSerializer.serializeToString(xmlDoc); 
                } 
                else if(window.ActiveXObject) 
                { 
                        // IE 
                        return xmlDoc.xml; 
                }               
} 

function str2xml(xmlString) { 
        if (window.DOMParser) { 
        // Ce navigateur semble connaitre DOMParser 
        var parser = new DOMParser(); 
        var doc = parser.parseFromString(xmlString, "text/xml"); 
    } else if (window.ActiveXObject){ 
            var doc = new ActiveXObject("Microsoft.XMLDOM"); 
        doc.async = false; 
        doc.loadXML(xmlString); 
    } else { 
        alert("Aucun parser DOM supporté par le navigateur"); 
    } 
    return doc; 
 } 

