		//	-------------------------------------------------------------------------------------------------------------------
		//	Gestion selon le principe AJAX ( Asynchronus JAvascript Xml )
		//	version			:		0.1
		//	date				:		13/12/2005
		//	Auteur			:		Actioncom
		//	site				:		http://www.actioncom.fr
		//	Methode de parsage d'un objet request contenant un fichier XML
		//	-------------------------------------------------------------------------------------------------------------------
	
		/*
		*
		*		Methode permettant de parser le fichier XML contenu dans l'objet request
		*
		*/
		
		function parseXml ( request , principal ) {

			var plateform = getPlateform () ;
			
			if			( plateform == 1 ) return parseXml_parseIE				( request , principal ) ;
			else if ( plateform == 2 ) return parseXml_parseMozilla		( request , principal ) ;
			
		}

		//	----------------------------------------------------------------------------------------------------------------------------------------
		//	Méthodes privées de parseXml

		/*
		*
		*		Parsage pour les navigateurs de type Mozilla
		*
		*/

		function parseXml_parseMozilla ( request , principal ) {
	
			var				reponseXML				=				request.responseXML ;		//	Lecture du contenu de l'objet request

			if ( reponseXML == null ) {
				alert ( "parseXml.parseMozilla\nErreur lors du parsage d'un document XML.\n\ndocument :\n" + request.responseText + "\n\nerreur ! \n" ) ;
			} 

			var valid = reponseXML.getElementsByTagName ( principal ) [ 0 ] ;

			if ( valid == null ) alert ( "impossible de parser le document XML" ) ;
			if ( valid.length == 0 ) alert ( "fichier XML vide !" ) ;
			

			//return parseXml_parseResponse ( 2 , reponseXML , principal , element ) ;
			return parseXml_parseResponse ( 2 , reponseXML , principal ) ;
			
		}
		
		/*
		*
		*		Parsage pour les navigateurs de type IE
		*
		*/

		function parseXml_parseIE ( request , principal ) {
		
			var				xmlDoc						=				new ActiveXObject ( "Microsoft.XMLDOM" ) ;	//	Construction d'un objet de lecture XML
			xmlDoc.async = "false" ;
			xmlDoc.loadXML ( request.responseText ) ;

			if ( xmlDoc.parseError.errorCode != 0 ) {
				var myErr = xmlDoc.parseError ;
				alert ( "parseXml.parseIE\nErreur lors du parsage d'un document XML.\ndocument : " + request.responseText ) ;
				alert ( "Erreur lors du parsage d'un document XML.\n\n\nerreur : " + myErr.reason + "\nmyErr : " + myErr ) ;
			}

			//return parseXml_parseResponse ( 1 , xmlDoc , principal , element ) ;
			return parseXml_parseResponse ( 1 , xmlDoc , principal ) ;
			
		}
		
		/*
		*
		*		Parsage pour les navigateurs de type IE
		*
		*/
	
		function parseXml_parseResponse ( PLATEFORM , xmldocument , principal ) {
			var debut = xmldocument.getElementsByTagName ( principal ) [ 0 ] ;
			return parseXml_node ( PLATEFORM , debut.childNodes ) ;
		}


		function parseXml_node ( PLATEFORM , masternode ) {

			var				result			=			new Hashtable () ;
			
			for ( var i = 0 ; i < masternode.length ; i ++ ) {

				var			master				=			masternode [ i ] ;

				if ( master.nodeType != 1 ) continue ;

				var			h							=			new Hashtable () ;
				
				for ( var j = 0 ; j < master.childNodes.length ; j ++ ) {
			
					var			node							=				master.childNodes [ j ] ;

					if ( node.nodeType != 1 ) continue ;
						
					if ( node.childNodes.length > 1 )	h.put (	node.nodeName + "_" + i , parseXml_node ( PLATEFORM , master.childNodes ) ) ;
					else h.put ( node.nodeName , parseXml_getValue ( PLATEFORM , node ) ) ;


				}

				result.put ( master.nodeName + "_" + i , h ) ;

			}
			
			return result ;

		}

		/*
		*
		*		Méthode permettant d'obtenir la valeur contenue dans la noeud
		*		En fonction de PLATEFORM on lit selon IE ou MOZILLA
		*
		*/
		
		function parseXml_getValue ( PLATEFORM , node ) {
			if			( PLATEFORM == 1 )	return node.text ;
			else if ( PLATEFORM == 2 )  return node.childNodes [ 0 ].nodeValue ;
		}

