/*
	Cette fonction retourne un objet de type XMLHttpRequest
	Utile dans le cadre de limplémentation d'ajax
*/
function getXMLHTTP(){
	
	if(window.XMLHttpRequest) // navigateur firefox 
	{ 
		objet0= new XMLHttpRequest(); 
		return objet0 ;
	}
	else if(window.ActiveXObject) // navigateur internet explorer 
	{ 
		objet0 = new ActiveXObject("Microsoft.XMLHTTP"); 
		return objet0 ;
	}
	else 
		return(false); 
}




function executeLoading( container, componetUrl, postArgument, appended ){
	
	var objet0 = getXMLHTTP() ;
	
	objet0.open ('POST', componetUrl, true); 
	
	//objet0.setRequestHeader('Content-Type','text/html; charset=utf-16') ;
	objet0.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=iso-8859-1');

	
	objet0.onreadystatechange = function() //Fonction appelée a chaque evenements (lancer chargement, chargement fini, erreur)
	{ 
		if(container !=null){
			if (objet0.readyState==1) 
			{ 
				if( appended != true ){
					container.innerHTML = "Chargement..."; 
				}
			} 
			else if (objet0.readyState==4) 
			{ 
				if(objet0.status==200) 
				{ 	
					if( appended == true ){

						container.innerHTML = container.innerHTML + objet0.responseText;
					}
					else{
						
						container.innerHTML = objet0.responseText; 
					}

					/* Exécution des JS intégrés */

					var scriptList = container.getElementsByTagName("script") ;
					for( var i=0; i < scriptList.length; i++ ){
						
						var jsToExecute = scriptList[i].innerHTML ;
						if(jsToExecute.indexOf("function SymError()") == -1)
							eval(jsToExecute) ;
					}

					
				} 
				else if(objet0.status==404) 
				{ 
					container.innerHTML = "Erreur d'adresse"; 
				} 
				else 
				{ 
					container.innerHTML = "Erreur : ".objet0.status; 
				} 
			} 
		}
	} 
	
	objet0.send(postArgument); 
	return; 
}


/*
	Cette fonction va permettre de charger un composant HTML dans un calque CSS
	de manière completement asynchrone
*/
function loadComponent( container, componetUrl, appended ){
	
	executeLoading( container, componetUrl, "", appended ) ;
	return; 
}


function loadComponentWithPostArgs( container, componetUrl, postArguments, appended ){
	
	executeLoading( container, componetUrl, postArguments, appended ) ;
	return; 
}

function loadInnerHtml( container, contenu ){
	container.innerHTML( contenu ) ;
}
