//##################################################################################
//#  Arquivo: geral.js
//#  Descrição: Validação do formulário Canal Cidadão                                                              
//##################################################################################

/**************************************************************
* Método para escrever a mensagem de erro
**************************************************************/
function EscreveErro(onde, msgErro)
{
	var idSpan = document.getElementById(onde);
	idSpan.innerHTML = msgErro;
}
//-------------------------------------------------------------

/**************************************************************
* Método para limpar a mensagem de erro
**************************************************************/
function LimpaErro(onde)
{
	var idSpan = document.getElementById(onde);
	idSpan.innerHTML = '';
}
//-------------------------------------------------------------

/**************************************************************
* Método para limpar os campos do form
**************************************************************/
function LimpaFrmCanalCidadao()
{	
	var d = document.frmCanalCidadao;
	d.nome.value = '';
	d.email.value = '';
	d.mensagem.value = '';
	
	LimpaErro('MsgErroNome');
	LimpaErro('MsgErroEmail');	
	LimpaErro('MsgErroMensagem');
}
//-------------------------------------------------------------

/**************************************************************
* Método para validar os campos do form
**************************************************************/
function ValidaFrmCanalCidadao()
{
	//Limpa o conteudo da span
	document.getElementById('MsgStatus').innerHTML = '';
	
	var d = document.frmCanalCidadao;
	
	//Validação do campo nome
	if(!d.nome.value)
	{
		EscreveErro('MsgErroNome', 'Digite seu nome');
		d.nome.focus();
		return false;
	}
	else
	{
		LimpaErro('MsgErroNome');
	}
	
	//Validação do campo email
	if(!d.email.value)
	{
		EscreveErro('MsgErroEmail', 'Digite seu e-mail');
		d.email.focus();
		return false;
	}
	else if(!d.email.value.match(/^\w+([\.\-]\w+)*@\w+([\.\-]\w+)*\.[a-z]{2,4}$/i))
	{
		EscreveErro('MsgErroEmail', 'Digite um e-mail v&aacute;lido');
		d.email.focus();
		return false;
	}
	else
	{
		LimpaErro('MsgErroEmail');	
	}
	
	//Validação do campo mensagem
	if(!d.mensagem.value)
	{
		EscreveErro('MsgErroMensagem', 'Digite sua mensagem');
		d.mensagem.focus();
		return false;
	}
	else
	{
		LimpaErro('MsgErroMensagem');	
	}
	
	//Depois de passar por todas as validações, chama o método para postar o form
	EnviaFrmCanalCidadao();
	return true;
}
//-------------------------------------------------------------

/**************************************************************
* Método para enviar o form
**************************************************************/
function EnviaFrmCanalCidadao()
{
	//Chama o método que cria o objeto Xml Http
	CriaObjXmlHttp();
	
	//Envia o formulário
	objXmlHttp.open('POST', 'servicos/envia_frm_canal_cidadao.asp', true); 
	objXmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	
	//Verifica os estados da solicitação
	objXmlHttp.onreadystatechange=function()
	{
		//Acha a span aonde a mensagem vai aparecer
		var idSpan = document.getElementById('MsgStatus');
		
		//Se o estado da solicitação for igual a 1, significa que a solicitação está sendo processada 
		if(objXmlHttp.readyState == 1)
		{
			//Desabilita os botões
			document.frmCanalCidadao.enviar.disabled = 'disabled';
			document.frmCanalCidadao.limpar.disabled = 'disabled';
			//Exibe a mensagem avisando que o form está sendo enviado
			idSpan.innerHTML = 'Aguarde, enviando formu&aacute;rio...';
		}
		//Se o estado da solicitação for igual a 4, então já obtivemos a resposta da mesma
		else if(objXmlHttp.readyState == 4)
		{
			//Chama o método para limpar os campos do form
			LimpaFrmCanalCidadao();
			//Habilita os botões
			document.frmCanalCidadao.enviar.disabled = '';
			document.frmCanalCidadao.limpar.disabled = '';
			//Mostra a mensagem
			idSpan.innerHTML = objXmlHttp.responseText;
		}
	}
	
	//Monta os parametros vindos dos campos do form
	var d = document.frmCanalCidadao;
	var paramNome = d.nome.value;
	var paramEmail = d.email.value;
	var paramMensagem = d.mensagem.value;
	var parametros = encodeURI('nome=' + paramNome + '&email=' + paramEmail + '&mensagem=' + paramMensagem);
	
	//Send
	objXmlHttp.send(parametros);
}
//-------------------------------------------------------------
