//Função que envia o formulário para o Servidor
function ajaxSubmit(formulario, redirecionamento)
{ 
  //Recupera o método utilizado na tag FORM do formulário
  var metodo = formulario.method.toUpperCase();
  //Acrescenta o símbolo ? ao final da url definida no atributo ACTION
  var action = formulario.action + "?";
  //Define a variável que armazenará todas as variáveis a serem recebidas pelo script PHP
  var Variaveis = "js=1&";
  //Define a variável que armazenará os nomes das tags(campos) utilizadas no formulário
  var NomeTag;
  //Define a variável que armazenará os tipos dos campos utilizados no formulário
  var TipoInput;
  
  //Cria um loop que percorrerá o formulário quantos campos existirem
  for (var i=0;i<formulario.length;i++)
  {
	//Armazena o nome da tag convertido em letras maiúsculas
    NomeTag = formulario.elements[i].tagName.toUpperCase();
	
	//Verifica se a tag é um INPUT, um SELECT ou um TEXTAREA

    if(NomeTag == "INPUT" || NomeTag == "SELECT" || NomeTag == "TEXTAREA")
    {
	//Armazena o tipo da tag convertido em letras maiúsculas
    TipoInput = formulario.elements[i].type.toUpperCase();

		if((NomeTag == "SELECT") && (formulario.elements[i].multiple))
		{
			for(j = 0; j < formulario.elements[i].length; j++)
			{
				if(formulario.elements[i].options[j].selected)
				{
						Variaveis += formulario.elements[i].name + "=" + escape(formulario.elements[i].options[j].value) + "&"; 
				}
			}
		}
		else
		{
			//Verifica se é um INPUT do tipo RADIO ou CHECKBOX
			if(TipoInput == "RADIO" || TipoInput == "CHECKBOX")
			{
				// Verifica se o campo do tipo RADIO ou CHECKBOX se encontra CHECKED
				if(formulario.elements[i].checked) 
					// Armazena o nome e o valor do campo em VARIÁVEIS
					{ Variaveis += formulario.elements[i].name + "=" + escape(formulario.elements[i].value) + "&"; }
			} 
			else 
			{
					// Armazena o nome e o valor do campo em VARIÁVEIS
					Variaveis += formulario.elements[i].name + "=" + escape(formulario.elements[i].value) + "&";
			}
		}
    }
  }

  //Verifica se o método é GET
  if(metodo == "GET")
  {
	//Concatena as variáveis à url definida em ACTION e atribui nulo à VARIÁVEIS
    action += Variaveis;
    Variaveis = null;
  }

  //Chama a função openAjax que cria o objeto do tipo XMLHttpRequest() ou do tipo ActiveXObject
  var ajax = openAjax();
  ajax.open(metodo, action, true); 
  ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  ajax.setRequestHeader("Content-length", Variaveis.length);
  ajax.setRequestHeader("Connection", "close");
  ajax.send(Variaveis);

  ajax.onreadystatechange = function()
  {
	if(ajax.readyState == 1)
			document.getElementById('erro').innerHTML = 'Verificando dados...';
	if(ajax.readyState == 4)
	{ 
			if(ajax.status == 200)
			{

			var resposta = ajax.responseText;

			if(resposta == 1)
			{		
				window.location.href = redirecionamento;
				return false;
			}
			else
			{
				document.getElementById('erro').innerHTML = ajax.responseText;
			}
			}
	}

	return false;
  }
  
  //Retorna FALSE para que o formulário não seja enviado

  return false;

}

//Função que cria o objeto do tipo XMLHttpRequest() ou do tipo ActiveXObject
function openAjax() {

var ajax;
try
{
  ajax = new XMLHttpRequest(); //primeiro tentamos criar um objeto do tipo XMLHttpRequest()
}
catch(ee)//no entanto navegadores como IE não conhecem esse objeto
{
  try
  {
    ajax = new ActiveXObject("Msxml2.XMLHTTP"); //O IE conhece o ActiveXObject, mas o parâmetro depende da versão.
  }
  catch(e)
  {
    try
    {
      ajax = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch(E)
    {
      ajax = false;//nesse caso o navegador não é compatível e nosso site não funcionará com AJAX :-(
    }
  }
}
return ajax;//retorna o objeto pronto.
}