function al38ObjetoAjax(al38UrlChamada, al38ChamadaRetorno) {
  var al38ObjetoNovo= this;      
  this.al38Atualizando = false;
  this.abort = function() {
    if (al38ObjetoNovo.al38Atualizando) {
      al38ObjetoNovo.al38Atualizando=false;
      al38ObjetoNovo.al38Objeto.abort();
      al38ObjetoNovo.al38Objeto= null;
    }
  }
  
  this.al38Atualiza = function(al38Vetor,al38Method) { 
    if (al38ObjetoNovo.al38Atualizando) { return false; }
    al38ObjetoNovo.al38Objeto = null;                          
    if (window.XMLHttpRequest) {              
      al38ObjetoNovo.al38Objeto=new XMLHttpRequest();              
    }else{                                  
      al38ObjetoNovo.al38Objeto=new ActiveXObject("Microsoft.XMLHTTP");
    }                                             
    if (al38ObjetoNovo.al38Objeto == null) {                             
      return false;                               
    } else {
      al38ObjetoNovo.al38Objeto.onreadystatechange= function() {  
        if (al38ObjetoNovo.al38Objeto.readyState == 4) {             
          al38ObjetoNovo.al38Atualizando= false;                
          al38ObjetoNovo.al38Retorno(al38ObjetoNovo.al38Objeto.responseText, al38ObjetoNovo.al38Objeto.status, al38ObjetoNovo.al38Objeto.responseXML);        
          al38ObjetoNovo.al38Objeto= null;                                         
        }                                                      
      }                                                        
      al38ObjetoNovo.al38Atualizando = new Date();                              
      if (/post/i.test(al38Method)) {
        var uri=urlCall+'?'+al38ObjetoNovo.al38Atualizando.getTime();
        al38ObjetoNovo.al38Objeto.open("POST", uri, true);
        al38ObjetoNovo.al38Objeto.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        al38ObjetoNovo.al38Objeto.send(al38Vetor);
      } else {
        var uri=urlCall+'?'+al38Vetor+'&timestamp='+(al38ObjetoNovo.al38Atualizando.getTime()); 
        al38ObjetoNovo.al38Objeto.open("GET", uri, true);                             
        al38ObjetoNovo.al38Objeto.send(null);                                         
      }              
      return true;                                             
    }                                                                           
  }
  var urlCall = al38UrlChamada;        
  this.al38Retorno = al38ChamadaRetorno || function () { };
}

function al38FinalizaObjeto(responseTxt,responseStat) {
  alert(responseStat+' - '+responseTxt);
}

function al38AjaxN(al38Url,al38Div,al38Dados,al38Metodo){	
	var al38FazAjax = new al38ObjetoAjax(al38Url,al38FinalizaObjeto);
    al38FazAjax.al38Retorno = function (responseTxt, responseStat) {
      //o retorno dos dados deverá ser por aqui
      document.getElementById(al38Div).innerHTML=responseTxt;
    }
    
    // faz a chamada dos dados a serem enviados ao apache
    // al38FazAjax.al38Atualiza('somente dados depois ?','metodo [GET|POST]');
    	al38FazAjax.al38Atualiza(al38Dados,al38Metodo);	
}