//|--
var globalAjxObj = null;
function RemoteListe(id,divelemt) {
	globalAjxObj = null;
	function init() {
		this.HttpLink = new jsHttpRequest(this);
	} this.init = init;

	function getXmlList(url, params) {
		if(null==this.action) {
//			waitAjax('');
			this.action = this.getXmlList;
			this.actionResponseType = "text";
			if(!this.HttpLink.doRequest('GET', url, params)) {
				waitAjax('none');
			}
		} else {
//			waitAjax('none');
			if(divelemt==0) globalAjxObj = this.actionResponse;//remplissage dans la var globale
			else document.getElementById(divelemt).innerHTML = this.actionResponse;
			this.action = null;
		}

	} this.getXmlList = getXmlList;
	
	this.complete = function () {
		return globalAjxObj;
	}

	this.id						= id;
	this.divelemt				= divelemt;
	this.action					= null;
	this.actionResponseType	= null;
	this.actionResponse		= null;
	this.init();
}

function waitAjax(displayMode) {
//	document.getElementById('waitingDiv1').style.display = displayMode;
//	document.getElementById('waitingDiv2').style.display = displayMode;
}

//|--
function jsHttpRequest() {
	function initConnector() {
		var o = null;
		var success = false;
		var MSXML_XMLHTTP_PROGIDS = new Array(
			'MSXML2.XMLHTTP.5.0',
			'MSXML2.XMLHTTP.4.0',
			'MSXML2.XMLHTTP.3.0',
			'MSXML2.XMLHTTP',
			'Microsoft.XMLHTTP'
		);

		for (var i=0;i < MSXML_XMLHTTP_PROGIDS.length && !success; i++) {
			try {
				o = new ActiveXObject(MSXML_XMLHTTP_PROGIDS[i]);
				success = true;
			} catch (e) {}
		}
		if( null==o && typeof XMLHttpRequest != "undefined") o = new XMLHttpRequest();
		return o;
	} this.initConnector = initConnector;


	function doRequest(method,url,parms) {
		var ret = false;
		var x = this.initConnector();
		if(null==x)  return false;
		var self = this;

		var i, n;
		var post_data;
		method = method.toUpperCase();

		if (method == "GET") { 
			if (url.indexOf("?") == -1) url += "?";
			for( var qparam in parms) {
				url += qparam+"="+escape(parms[qparam])+"&";
			}
			var dt = new Date();
			url += '_'+dt.getTime()+'=1';
			post_data = null;
		} else {
			post_data = "&";
			for( var qparam in parms) {
				post_data += qparam+"="+escape(parms[qparam]);
			}
			if(2<post_data.length) post_data = post_data.substr(1);
			else post_data = "";
		}
		x.onreadystatechange = function() {
			if (x.readyState != 4) {
				globalAjxObj = null;
				return;
			}
			if( x.status == 200) {
				self.owner.actionResponse = (('xml'==self.owner.actionResponseType.toLowerCase())?x.responseXML : x.responseText);
				self.owner.action();
			} else {
				alert(x.status);
			}
		}

		try {
			x.open(method, url, true);
			if (method == "POST") {
				x.setRequestHeader("Method", "POST " + url + " HTTP/1.1");
				x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			}
			x.send(post_data);
			ret = true;
		} catch (e) {
			alert(e);
		}
		delete x;
		return ret;

	} this.doRequest = doRequest;

	this.owner = arguments[0];
}