function enviaReq(formulario){
	var oForm = formulario; 
	var sBody = criaReqStr(oForm);

	var oXMLHttp = criaXMLHttp();
	// 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");

	oXMLHttp.onreadystatechange = function (){
		// readyState == 4 quer dizer Completo e sem erros
		if(oXMLHttp.readyState == 4)
			exibeResult(oXMLHttp.responseText);
		else
			exibeResult("Ocorreu um erro: " + oXMLHttp.statusText);
	};
	// 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){
	var divStatus = document.getElementById("divStatus");
	divStatus.innerHTML = sTxt;
}

