/*var mm = open("","mm");
function debug(obj){
		for(var i in obj){
	mm.document.write(i+"="+obj[i]+"<br>")
		}
		mm.document.write("<hr>")
}
function teste(value){
	mm.document.write(value+"<br>")
}*/

function testResponse (type,index){
	var httpRequest = null;
	var XMLHTTP=["MSXML2.XMLHTTP","MICROSOFT.XMLHTTP"];
	$("#testresponsediv"+index).html("");
	if(window.XMLHttpRequest){
		httpRequest = new XMLHttpRequest(); 
	}else if (window.ActiveXObject){
		for(var i=0;i<XMLHTTP.length;i++){;
			try{
				httpRequest = new ActiveXObject(XMLHTTP[i]);
				break
			}catch(c){}
		}
	}else{	
		$("#testresponsediv"+index).html( "Votre navigateur ne supporte pas ajax ...");
		$("#testresponseform"+index).css({display:"none"})
	}
	if(httpRequest){
		httpRequest.onreadystatechange = function(){
				if(httpRequest.readyState == 4) {
					if(httpRequest.status=="200"){
						if(((httpRequest.getResponseHeader("Content-Type")).toString()).indexOf('text/xml') !=-1 ){ 
							var xmldoc = httpRequest.responseXML;
							parserXml(xmldoc,$("#testresponsediv"+index),index);
						}else{ 
							alert("Erreur pas de réponse XML") 
						} 
					}else{
						$("#testresponsediv"+index).html("Une erreur est survenue<br/>")
					}
				}
		}
		httpRequest.open('GET', 'exemple/moncgi168.php?test='+index+'&type=xml&rand='+(Math.random()*1200), true);
		httpRequest.send(null);  
	}
}
function parserXml(xml,div,index){
	var result="";
	
	switch (index){ 
    case 1 :result=parserXml1(xml);break; 
    case 2 :result=parserXml2(xml);break; 
    case "recuproot" : result=recuproot(xml);break; 
		case "recupchild" : result=recupchild(xml);break; 
		case "recupvalue" : result=recupvalue(xml);break; 
    case "recupattrib" : result=recupattrib(xml);break;
		case "recupattrib2" : result=recupattrib2(xml);break; 
		case "recuptag" : result=recuptag(xml);break; 
		case "recuprecursif" : result=recuprecursif(xml,false);break; 
		case "recuprecursif1" : result=recuprecursif(xml,true);break; 
  } 
 
	div.html(result) ;
}
function parserXml1(xml){
		var result="";
		result+=addMessage("Récupération du premier noeux : la balise Root")
		var root = xml.documentElement;
		result+=addMessage("Je suis "+root.nodeName)
		result+=addMessage(root.nodeName+" a t il des fils : "+root.hasChildNodes())
		result+=addMessage("Combien : "+root.childNodes.length);
		for(var i =0;i<root.childNodes.length;i++){
			var fils=root.childNodes[i];
			result+=addMessage("&nbsp;&nbsp;"+fils.nodeName+" fils de "+root.nodeName);
			result+=addMessage("&nbsp;&nbsp;"+fils.nodeName+" a "+fils.childNodes.length+" fils");
			result+=addMessage("&nbsp;&nbsp;&nbsp;&nbsp;il est de type "+fils.childNodes[0].nodeType);
			result+=addMessage("&nbsp;&nbsp;&nbsp;&nbsp;sa valeur est "+fils.childNodes[0].nodeValue);
		
		}
		return result;
}
function parserXml2(xml){
		var result="";
		result+=addMessage("Récupération du premier noeux : la balise Root")
		var identiteliste = xml.getElementsByTagName("identite");
		result+=addMessage("Je suis "+identiteliste.length)
		
		return result;
}
function recuproot(xml){
	var result="";
	var racine = xml.documentElement;
	result=addMessage("Je suis "+racine.nodeName)
	return result;	
}
function recupvalue(xml){
	var result="";
	var racine = xml.documentElement;
	result=addMessage("Ai je des fils : "+racine.hasChildNodes());
	result+=addMessage("Combien : "+racine.childNodes.length);
	for(var i = 0;i<racine.childNodes.length;i++){
		var element  = racine.childNodes[i];
		result+=addMessage("--> "+element.nodeName);
		if(element.hasChildNodes()==true){
			var elementValue  =element.firstChild;
			if(elementValue.nodeType==3){
					result+=addMessage("----> sans CDATA : "+elementValue.nodeValue );
			}else if(elementValue.nodeType==4){
				result+=addMessage("----> avec CDATA : "+elementValue.nodeValue );
			}else{
				result+=addMessage("----> J'ai un noeux et pas un texte" );
			}
		}else{
			result+=addMessage("----> J'ai ps de fils" );
		}
	}
	return result;	
}
function recupattrib(xml){
	var result="";
	var racine = xml.documentElement;
	result=addMessage("Ai je des fils : "+racine.hasChildNodes());
	result+=addMessage("Combien : "+racine.childNodes.length);
	for(var i = 0;i<racine.childNodes.length;i++){
		var element  = racine.childNodes[i];
		var nom = element.nodeName;	
		result+=addMessage("-> "+nom);
		switch (nom){ 
			 case "civilite" :result+=addMessage("---> "+element.getAttribute("value"));
			 break;
			 case "adress" : result+=addMessage("---> "+element.getAttribute("rue"));
			 result+=addMessage("---> "+element.getAttribute("numero"));
			 break; 
			 default :  result+=addMessage("--> pas d'attribut");break; 
		}
		
		
	}
	return result;	
}
function recupattrib2(xml){
	var result="";
	var racine = xml.documentElement;
	result=addMessage("Ai je des fils : "+racine.hasChildNodes());
	result+=addMessage("Combien : "+racine.childNodes.length);
	for(var i = 0;i<racine.childNodes.length;i++){
		var element  = racine.childNodes[i];
		var nom = element.nodeName;	
		result+=addMessage("-> "+nom);
		var listAttribut = element.attributes;
		for(var h = 0;h<listAttribut.length;h++){
				var attribut = listAttribut[h];
				result+=addMessage("---> "+attribut.name+"="+attribut.value);
		}
	}
	return result;	
}
function recuptag(xml){
	var result="";
	var racine = xml.documentElement;
	result=addMessage("Ai je des fils : "+racine.hasChildNodes());
	result+=addMessage("Combien : "+racine.childNodes.length);
	var tagnom = racine.getElementsByTagName("nom");
	result+=addMessage("Il y a "+tagnom.length+" balise(s) nom récupéré(es)");
	for(var i = 0; i< tagnom.length; i++){ 
			var element = tagnom[i]; 
			result+=addMessage("--> "+element.nodeName +"="+element.firstChild.nodeValue);
	}
	return result;	
}
function recupchild(xml){
	var result="";
	var racine = xml.documentElement;
	result=addMessage("Ai je des fils : "+racine.hasChildNodes());
	result+=addMessage("Combien : "+racine.childNodes.length);
	for(var i = 0;i<racine.childNodes.length;i++){
		var element  = racine.childNodes[i];
		result+=addMessage("--> "+element.nodeName);
	}
	return result;	
}
function recuprecursif(xml,bug){
	var result="";
	var racine = xml.documentElement;
	result=getFils(racine,0,bug);
	return result;	
}
function getFils(xml,nombre,bug){
	var result="";
	var tiret = addTiret(nombre);
	result+=addMessage(tiret+"+ <b>"+xml.nodeName+"</b> | Type "+xml.nodeType+" | "+xml.childNodes.length+" fils");
	for(var i = 0;i<xml.childNodes.length;i++){
		var element  = xml.childNodes[i];
		if(element.nodeType==1){
				result+=getFils(element,Number(nombre+1),bug);
		}else if(element.nodeType == 3 || element.nodeType == 4){
			if(bug==true){
				if (!/\S/.test(element.nodeValue)){
					//result+=addMessage(tiret+"+ test = "+(!/\S/.test(element.nodeValue)));
					//result+=addMessage(tiret+"+ valeur = "+element.nodeValue+"|"+(/\S/.test(element.nodeValue)));
				}else{
					result+=addMessage(tiret+"+ valeur = "+element.nodeValue);
				}
			}else{
				result+=addMessage(tiret+"+ valeur = "+element.nodeValue);
			}
		}
	}
	return result;	
}
function addTiret(nombre){
	var result="";
	//alert(nombre)
	for(var i = 0;i<nombre;i++){
		result+="--";
	}
	return result;	
}
function addMessage(chaine){
	return chaine+"<br>";
}
