var doc = null;	

	function getNewXMLHTTP() {	
		try {
		  return new XMLHttpRequest();
		} catch(e) {	
		  try {
			var aObj = new ActiveXObject("Msxml2.XMLHTTP");
		  } catch (e) {
			try {
			  var aObj = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
			  return false;
			}
		  }
		}
		return aObj;
	}
	
	function transform(docxml, docxsl) {

		if (window.XSLTProcessor) { 

			var xmlRef = document.implementation.createDocument("", "", null);
			var xsltProcessor = new XSLTProcessor();						
			xsltProcessor.importStylesheet(docxsl);				
			
			xsltProcessor.setParameter(null, "num_partie", num_partie);
			xsltProcessor.setParameter(null, "num_chap", num_chap);
			xsltProcessor.setParameter(null, "num_sect", num_sect);
			xslloaded = true;

			// création d'un nouveau document XML en mémoire
			xmlRef = document.implementation.createDocument("", "", null);
			
			var element = docxml.getElementsByTagName('root').item(0);			
			var clonedNode = xmlRef.importNode(element, true);
			
			// après le clonage, nous ajoutons
			xmlRef.appendChild(clonedNode);
			
			// initialisation de la transformation
			var fragment = xsltProcessor.transformToFragment(xmlRef, document);
			
			//nouvel élément
			var div1 = document.createElement("div");

			//on lui associe le contenu du XML
			div1.appendChild(fragment);
			
			// On construit une référence vers le noeud à remplacer, pour obtenir le parent
			var div2 = document.getElementById("sommaire_vide");
			var parentDiv = div2.parentNode;

			// On remplace le nœud existant par le nouvel élément
			parentDiv.replaceChild(div1, div2);			
			div1.setAttribute("id", "sommaire_vide");
						
		} else { //IE 
		
			var xslDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.4.0"); 
            xslDoc.async = false; 
            xslDoc.load(fileSommaireXSL); 

			//Chargement du document XML
            var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.4.0"); 
            xmlDoc.async = false; 
            xmlDoc.load(fileSommaireXML); 
		
			var xslt = new ActiveXObject("Msxml2.XSLTemplate.4.0"); 
            xslt.stylesheet = xslDoc; 
            var xslProc; 
            xslProc = xslt.createProcessor(); 
            xslProc.input = xmlDoc; 
            	xslProc.addParameter("num_partie", num_partie); 
            	xslProc.addParameter("num_chap", num_chap); 
				xslProc.addParameter("num_sect", num_sect); 
            xslProc.transform(); 		
		
			document.getElementById("conteneur_sommaire").innerHTML = xslProc.output;			
		}		
	}
	
	function afficheSommaireAjax()
	{ 
		var req = getNewXMLHTTP(); 
		var reqXsl = getNewXMLHTTP(); 

		req.onreadystatechange = function()
		{ 
			if(req.readyState == 4)
			{
				if(req.status == 200)
				{
		
					//req.overrideMimeType('text/html; charset=ISO-8859-15');
					// process this.xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=iso-8859-1");					
					doc = req.responseXML;	
					reqXsl.open("GET", fileSommaireXSL, true); 
					
					//force le format en XML avec FF
					if (window.XSLTProcessor) reqXsl.overrideMimeType("text/xml");
					reqXsl.send(null);
				}					
			} 
		}; 
				
		reqXsl.onreadystatechange = function()
		{ 		
			if(reqXsl.readyState == 4)
			{
				if(reqXsl.status == 200)
				{						
					var xsl = reqXsl.responseXML;
					//alert(xsl);
					transform(doc, xsl);					
				}					
			} 
		}; 
			
		req.open("GET", fileSommaireXML, true);				
		req.send(null); 		
				
	} 
