// ajax Document
var ajax = null;
var dados;

/*
* função createXMLHttpRequest
* instanciamos o ajax de acordo com o navegador do cliente
*/
function createXMLHttpRequest()
{
	try {return ajax = new XMLHttpRequest();} catch(e){}
	try {return ajax = new ActiveXObject("Msxml2.XMLHTTP");} catch(e){}
	try {return ajax = new ActiveXObject("Microsoft.XMLHTTP");} catch(e){}
	alert("Seu navegador não permite atualização assíncrona");
	return null;
}

/*
* função requisicao
* enviamos a requisição ao servidor, juntamento com os dados
* e ficamos aguardando a resposta
*/
function requisicao(method,url,bool,fct)
{
	createXMLHttpRequest();
	ajax.onreadystatechange = function(){
		//$('loading').style.display = "inline";
		//$('loading').innerHTML = "CARREGANDO";
		if(ajax.readyState == 4)
		{
			//$('loading').style.display = "none";
			if(ajax.status == 200)
				fct(); //função que ira manipular a resposta
			else
				alert("Problemas com a comuinicação com o servidor.");
		}
	}
	ajax.open(method,url,bool);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.send(dados);

}

/*
* function enviarURL
* criamos uma string para a chamada da função requisicao com o metodo get
* @param url = pagina que será requisitada
* @param acao= define que ação será efetuada na pagina solicitada
* @param fct = define a função que irá manipular a resposta
*/
function enviaUrl(url,acao,fct)
{
	//cria uma string para envio pelo method get ao servidor
	novaUrl = url+"&acao="+acao;
	requisicao('GET',novaUrl,true,fct);
}

/*
* function $
* ao invés de digitar document.getElementBy("obj") utilizaremos $("obj")
* @param obj = objeto que será instanciado
*/
function $(obj)
{
	return document.getElementById(obj);
}

/*
* function abrePg()
* @param url = pagina que será requisitada
* @param fct = define a função que irá manipular a resposta
*/

function abrePg(url,fct)
{
	requisicao('GET',url,true,fct);
}


function resposta(){
		$("resposta").innerHTML=ajax.responseText;
	
	}
	
/*
* function criaString()
* cria a string para ser enviada no formato
* campo1=valor1&campo2=valor2 ...
*/
function criaString()
{
	dados="";
    var frm = document.forms[0];
	var numElementos = frm.elements.length;
    for(var i=0; i < numElementos; i++)
    {
        if(i < numElementos-1)
        {

            if(frm.elements[i].type=="radio" && frm.elements[i].checked == true)
                dados += frm.elements[i].name+"="+encodeURIComponent(frm.elements[i].value)+"&";
            else if (frm.elements[i].type!="radio")
                dados += frm.elements[i].name+"="+encodeURIComponent(frm.elements[i].value)+"&";
        }
        else
            dados += frm.elements[i].name+"="+encodeURIComponent(frm.elements[i].value);
    }
}

function enviaPost(url,fct)
{
	criaString();
	requisicao('POST',url,true,fct);
}
