// JavaScript Document
aguarde = document.createElement('div');
with(aguarde){
	id = '_aguarde_'
	style.backgroundColor = '#FF0000';
	style.color = '#FFFFFF';
	style.position = 'absolute';
	style.zIndex = 1000;
}
function lancaAguarde(){
	aguarde.innerHTML = 'Aguarde...';
	var x = 10;
	var y = 10;
	with(aguarde.style){
		top = x+"px";
		left = y+"px";
	}
	document.body.appendChild(aguarde);
}
function retiraAguarde(){
	document.body.removeChild(document.getElementById('_aguarde_'));
}

function Ajax(url,metodo,params,processa,modo){
	this.debug = true;
	this.url = url;
	this.metodo = (metodo)?metodo:'get';
	this.params = (metodo=='get')?null:params;
	this.processaResultado = processa;
	this.modo = (modo)?modo:"texto";
	this.conectar();
}
Ajax.prototype = {
	conectar: function(){
		if(this.url==undefined||this.url==''){
			alert('URL não informada');
			return;
		}
		this.httprequest = null;
		if(window.XMLHttpRequest){
			this.httprequest = new XMLHttpRequest();
		}else if(window.ActiveXObject){
			try{
				this.httprequest = new ActiveXObject('Msxml2.XMLHTTP');
			}catch(e){
				alert("não foi possivel usar msxml2:"+e);
				try{
					this.httprequest = new ActiveXObject('Microsoft.XMLHTTP');
				}catch(e){
					alert("não foi possivel usar microsoft.xmlhttp:"+e);
					return;
				}
			}
		}
		var obj = this;
		this.httprequest.onreadystatechange = function(){
			obj.processaretorno.call(obj);
		}
		this.httprequest.open(this.metodo,this.url,true);
		if(this.metodo.toLowerCase()=='post')
			this.httprequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		this.httprequest.send(this.params);
	},//conectar
	processaretorno: function(){
		if(this.httprequest.readyState == 4){
			if(this.httprequest.status == 200){
				var resp = (this.modo.toLowerCase()=='texto'||this.modo.toLowerCase()=='t') ? this.httprequest.responseText : this.httprequest.responseXML;
				if(this.processaResultado!=null){
					this.processaResultado(resp);
				}else{
					document.write(resp);
				}
			}else{
				this.processaErro();
			}
		}
	},//processaretorno
	processaErro: function(){
		if(!Ajax.debug){
			alert(this.httprequest.status+' - '+this.httprequest.statusText + '\n'+this.url+'\n Tente novamente se o problema persistir contate o suporte.');
			this.processaResultado(this.httprequest.responseText);
		}else{
			alert(this.httprequest.responseText);
		}
	}
}