var ajax;
var dadosUsuario;

// ------- cria o objeto e faz a requisição -------
function requisicaoHTTP(tipo,url,assinc){
	if(window.XMLHttpRequest){	  // Mozilla, Safari,...
		ajax = new XMLHttpRequest();
	} 
	else if (window.ActiveXObject){	// IE
		ajax = new ActiveXObject("Msxml2.XMLHTTP");
		if (!ajax) {
			ajax = new ActiveXObject("Microsoft.XMLHTTP");
		}
    }      
    
	if(ajax)	// iniciou com sucesso
		iniciaRequisicao(tipo,url,assinc);
	else
		alert("Seu navegador não possui suporte a essa aplicação!");
}


// ------- Inicializa o objeto criado e envia os dados (se existirem) -------
function iniciaRequisicao(tipo,url,bool){
	ajax.onreadystatechange=trataResposta;
	ajax.open(tipo,url,bool);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
	//ajax.overrideMimeType("text/XML");   /* usado somente no Mozilla */
	ajax.send(dadosUsuario);
}

// ------- Inicia requisição com envio de dados -------
function enviaDados(url){
	criaQueryString();
	requisicaoHTTP("POST",url,true);
}


// ------- Cria a string a ser enviada, formato campo1=valor1&campo2=valor2... -------
function criaQueryString(){
	dadosUsuario="";
	var frm = document.forms[0];
	var numElementos =  frm.elements.length;
	for(var i = 0; i < numElementos; i++)  {
		if(i < numElementos-1)  {
			dadosUsuario += frm.elements[i].name+"="+encodeURIComponent(frm.elements[i].value)+"&";
		} else {
			dadosUsuario += frm.elements[i].name+"="+encodeURIComponent(frm.elements[i].value);
		}
	}
}

// ------- Trata a resposta do servidor -------
function trataResposta(){
	if (ajax.readyState == 1) {
		document.getElementById('main').innerHTML = "<p>&nbsp;</p><p>&nbsp;</p><img src=\"images/logo_Sm.gif\" width=\"26\" height=\"26\" /><p>&nbsp;</p><p>&nbsp;</p>";
	} else {
		if(ajax.readyState == 4){
			if(ajax.status == 200){
				trataDados();  // criar essa função no seu programa
			} else {
				alert("Problema na comunicação com o objeto XMLHttpRequest.");
			}
		}
	}
}

// ------- Verifica Preenchimento do Form de contato -------
function verificaContato(url){
	var nome 	 = document.getElementById("nome").value;
	var email 	 = document.getElementById("email").value;
	
	if (nome == ''){
		alert ("Campo obrigatório. Preencha seu nome corretamente.");
		return false;
	}
	if (email == ''){
		alert ("Campo obrigatório. Preencha seu e-mail corretamente.");
		return false;
	} else {
		if(!validaEmail(email)){
			alert ("Formato do e-mail é inválido. Tente novamente.");
			return false
		}
	}
	enviaDados(url);
}


function validaEmail(email){
		// não pode ser vazio, tem que conter "@", "."
		// e não pode conter espaços
		if (email == null || email.length == 0 ||
			email.indexOf(".") == -1 ||
			email.indexOf("@") == -1 ||
			email.indexOf(" ") != -1)
				return false;
	
		// testa os caracteres antes do "@"
		// não pode começar nem terminar com ponto
		// deve ter ao menos dois caracteres word (letras, números, underline)
		// opcionalmente com um ponto entre eles
		expressao=/(^\w{1,}\.?\w{1,})@/;
		confere = expressao.exec(email);
		if (!confere) return false;
	
		// testa os caracteres depois do "@"
		// deve ter ao menos 2 caracteres seguidos por um ponto, 
		// seguido por zero ou mais ocorrências de ao menos 2 
		// caracteres (terminando com um ponto), seguidos por 2 ou 3 caracteres
	
		expressao=/@(\w{2,}\.(\w{2,}\.)?[a-zA-Z]{2,3})$/;
		confere = expressao.exec(email);
		if(!confere){
			return false;
		} else {
			return true;
		}
	}
