
function enviaReq(Resposta){
	var oForm = document.forms[0]; // pega o primeiro form
	var sBody = criaReqStr(oForm);

	var oXMLHttp = ajaxInit();
	// 1o arg: usa o método post
	// 2o arg: envia a requisição post a página do formulário
	// 3o arg: usa o modo assincrono
	oXMLHttp.open("POST", oForm.action, true);
	// importante.. a maioria das linguagens server-side verifica 
	// essa codificação para o parsing da informação
	oXMLHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=iso-8859-1");

	oXMLHttp.onreadystatechange = function (){
		// readyState == 4 quer dizer Completo e sem erros
		if(oXMLHttp.readyState == 1) {
			exibeResult("<img style='margin-left:20px;' src='images/loader.gif' /><span style='color:#c33;font-weight:bold;'>Processando...</span>", Resposta);
			}		
		if(oXMLHttp.readyState == 4) {
			exibeResult(oXMLHttp.responseText, Resposta);
			}
	};
	// depois de ser setado todos os parametros
	// é enviado os valores usando o método post
	oXMLHttp.send(sBody);
}

function criaReqStr(oForm){
	var aPostStr = new Array();

	for(var i = 0; i < oForm.elements.length; i++){
		var sValor = encodeURIComponent(oForm.elements[i].name);
		sValor += "=";
		sValor += encodeURIComponent(oForm.elements[i].value);
		aPostStr.push(sValor);
	}
	// retorna uma string no padrão "post request":
	// nome1=valor1&nome2=valor2&...&nomeN=valorN
	return aPostStr.join("&");
}                            

function exibeResult(sTxt, divResposta){
	var divStatus = document.getElementById(divResposta);
	divStatus.innerHTML = sTxt;
}
