function create_http_handle(TYPE){
	var http_handle = false;
	if (window.XMLHttpRequest){
		http_handle = new XMLHttpRequest();
		if (http_handle.overrideMimeType){
			if (TYPE == "XML"){
				http_handle.overrideMimeType('text/xml');
			} else {
				http_handle.overrideMimeType('text/html');
			}
		}
	} else if (window.ActiveXObject){
		try {
			http_handle = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_handle = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_handle){
		alert("Votre navigateur est trop ancien. Il vous faut le mettre a jour");
		return false;
	} else {
		return http_handle;
	}
}

function ajax(PAGE, obj, mess, REACT, FONC, METHOD, TYPE){
	
				var myWidth = 0, myHeight = 0;
				  if( typeof( window.innerWidth ) == 'number' ) {
					//Non-IE
					myWidth = window.innerWidth;
					myHeight = window.innerHeight;
				  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
					//IE 6+ in 'standards compliant mode'
					myWidth = document.documentElement.clientWidth;
					myHeight = document.documentElement.clientHeight;
				  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
					//IE 4 compatible
					myWidth = document.body.clientWidth;
					myHeight = document.body.clientHeight;
				  }


	obj.innerHTML = '<div align=center><img src="images/ajax-loader.gif"><br>'+mess+' Téléchargement en cours, merci de patienter: <b>Initialisation...</b></div>';
	var PARAMETERS ='';
	var elem='';
	var URL='';
	elem = PAGE.split('?');
	URL = elem[0];
	PARAMETERS = '?'+elem[1]+'&myWidth='+myWidth;
	if (TYPE == "")TYPE = "HTML";
	if (mess == "undefined")mess = "";
	http = create_http_handle(TYPE);
	
	
	//Kill the Cache problem in IE.
	var now = "upid=" + new Date().getTime();
	PARAMETERS += (PARAMETERS.indexOf("?")+1) ? "&" : "?";
	PARAMETERS += now;
	
	if (METHOD == "GET"){
		http.open('GET', URL + PARAMETERS, true);
		http.send(null);
		
	} else {
		http.open('POST', URL + PARAMETERS , true);
		
		http.setRequestHeader("Content-type", "application/x-www-form-URLencoded");
		http.setRequestHeader("Content-length", PARAMETERS.length);
		http.setRequestHeader("Connection", "close");
		http.send(PARAMETERS);
	}
	
	var feed = '';
	if (REACT=='feed'){ 
	var now = new Date();   
	var outStr = now.getHours()+':'+now.getMinutes()+':'+now.getSeconds();
	var feed = '<br>' + outStr + '<br>---------<br>' + obj.innerHTML;
	} 
	
	http.onreadystatechange = function() {
	
		if(http.readyState == 1) {
			obj.innerHTML = '<div align=center><img src="images/ajax-loader.gif"><br>'+ mess +'Téléchargement en cours, merci de patienter: <b>ouverture...</b></div>';
		}
		if(http.readyState == 2) {
			obj.innerHTML = '<div align=center><img src="images/ajax-loader.gif"><br>'+ mess +'Téléchargement en cours, merci de patienter: <b>Envoyé...</b></div> ';
		}
		if(http.readyState == 3) {
			obj.innerHTML = '<div align=center><img src="images/ajax-loader.gif"><br>'+ mess +'Téléchargement en cours, merci de patienter: <b>Réception en cours...</b></div>';
		}
		if(http.readyState == 4) {
				
			if (REACT=='eval'){ 
			eval(http.responseText);
			} else {
			obj.innerHTML = http.responseText + feed ;
			}
			
			eval (FONC);

		}
	
		if(http.readyState == 4 && http.status == 404) {
		obj.innerHTML =  'la page '+URL+' est introuvable';
		}
	}
	
}
