var Ajax = {
	bActive	: 0,
	queue 	: [],
	request : function(oRequest){
		if(arguments.length == 1) this.queue[this.queue.length] = oRequest;
		if(this.bActive) return;
		var oXML = Request.xmlHTTP();
		oXML.open((oRequest.post)?"POST":"GET", oRequest.uri, true);
		if(oRequest.post){
			oXML.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=utf-8');
		}else{
			oXML.setRequestHeader('Content-Type','text/html;');
		};
		oXML.onreadystatechange = function(){
			Ajax._callback(oXML);
		};
		oRequest.post ? oXML.send(oRequest.post) : oXML.send(null);
		this.bActive = 1;
		delete oXML;
	},
	_callback : function(oXML){
		if(oXML.readyState == 4){
			this.queue.reverse();
			var oRequest = this.queue[this.queue.length-1];
			this.queue.length --;
			this.queue.reverse();
			if(oRequest.scope){
				oRequest.callback.apply(oRequest.scope, [oXML]);
			}else{
				oRequest.callback(oXML);
			};
			this.bActive = 0;
			if(this.queue.length){
				this.request(this.queue[0], 1);
			};
		};
	}
};