/**
 * Funções para o artigo: Engatinhando com AJAX e PHP. Parte3
 * @url http://felipetonello.com/blog/tutoriais-e-artigos
 * @author Felipe Ferreri Tonello <felipe.tonello@gmail.com>
 */


function exibeResult(sTxt, qualDiv){
	var divPreenche = document.getElementById(qualDiv);
	divPreenche.innerHTML = sTxt;
}

function enviaReq(nomeDiv, acaoPagina,formnumber){
	
	var oForm = document.forms[formnumber]; // pega o primeiro form
	var sBody = criaReqStr(oForm);
	oForm.action = acaoPagina;

	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, nomeDiv);
	};
	// 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("&");
}


