// JavaScript Document

function AJAX(url,metodo,params,processa,modo)
    {
	   this.url = url;
	   this.metodo = (metodo) ? metodo : 'GET';
	   this.params = (metodo = 'GET') ? null : params;
	   this.processaresultado = processa;
	   this.modo = (modo) ? modo : 'T';
	   if(this.modo != 'T' && this.modo != 'X')
	       {
		      this.modo = 'T';	
	       }
	   this.conectar();
    }

AJAX.prototype = 
    {
	   conectar:	
	   function() 
	       {
				if(this.url == undefined || this.url == '')
				    {
						return;	
					}
					this.httprequest = null;
					if(window.XMLHttpRequest)
					{
						
						this.httprequest = new XMLHttpRequest();	
					} 
					else if (window.ActiveXObject) 
					{
						try 
						{
							this.httprequest = new ActiveXObject("Msxml2.XMLHTTP");
						} catch (e) {
							try {
								this.httprequest = new ActiveXObject("Microsoft.XMLHTTP");
							} catch (e) {}
						}
					}
					if(this.httprequest != null && this.httprequest != undefined){
						var obj = this;
						this.httprequest.onreadystatechange = function (){
							obj.processaretorno.call(obj);
						
						}
						this.httprequest.open(this.metodo,this.url,true);
						this.httprequest.send(this.params);
					}
					
				},
	processaretorno:	function () {
						if(this.httprequest.readyState == 4 ){
							if(this.httprequest.status == 200){
								var resp = (this.modo =='T') ? this.httprequest.responseText : this.httprequest.responseXML;
								if(this.processaresultado != null){
									this.processaresultado(resp);
								}else{
									document.white(resp);
										
								}
							}else{
								this.processaerro();	
								
							}
						}
		
		
		
					},
	processaerro:		function () {
							alert(this.httprequest.status + '-' + this.httprequest.statusText + ': ' + this.url);
		
				}

}
