function ajax() {
	if(!this.xmlhttp) {
		try{
			this.xmlhttp = new XMLHttpRequest();
        }catch(ee){
			try{
				this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
			}catch(e){
				try{
					this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
				}catch(E){
					this.xmlhttp = false;
				}
			}
		}
	}
	return this;
}

ajax.prototype.fila = new Array();
ajax.prototype.filaControl = 0;
ajax.prototype.requestURL = function(par) {
	this.fila[this.fila.length] = par;
	if((this.filaControl+1) == this.fila.length) {
		this.ajaxExec();
	}
}

ajax.prototype.ajaxExec = function() {
	var method = "POST";
	this.xmlhttp.open(method,this.fila[this.filaControl].url,true);

	//Funcao para tratamento do retorno
	this.xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");

	_this = this;
	if(this.fila[this.filaControl].execBefore) {
    	eval(this.fila[this.filaControl].execBefore);
   }
	this.xmlhttp.onreadystatechange=function() {
    	//alert(100 / (5-_this.xmlhttp.readyState)+"%");
		if (_this.xmlhttp.readyState==4) {


			//Mostra o HTML recebido
            var DOM=_this.xmlhttp.responseXML;
            if(_this.fila[_this.filaControl].getDOM) {
            	eval(_this.fila[_this.filaControl].getDOM);
			}
            retorno=unescape(_this.xmlhttp.responseText.replace(/\+/g," "));
            //alert(retorno);

			if(_this.fila[_this.filaControl].execAfter) {
				eval(_this.fila[_this.filaControl].execAfter);
			}
			var tg;
			if(tg = document.getElementById(_this.fila[_this.filaControl].target)) {
				tg.innerHTML = retorno;
			}
      /*
       	Contador do Google
      */
      //alert(_this.fila[_this.filaControl].url);
      urchinTracker(_this.fila[_this.filaControl].url);

			//Roda o proximo
            _this.filaControl++;
			if(_this.filaControl < _this.fila.length)setTimeout("_this.ajaxExec()",10);
			if(_this.filaControl == _this.fila.length) {
				_this.filaControl = 0;
				_this.fila = [];
			}
		}
	}
	//Executa
	var pars ;
	this.fila[this.filaControl].par ? pars = this.fila[this.filaControl].par : pars = null;
	//alert(pars);
	this.xmlhttp.send(pars);
}
ajax = new ajax;


/*Exemplo

*/