// JavaScript Document

/****************************************************************/
/* funcoes.js                                                   */ 
/* Data			: 13.05.2008                                    */
/* Atualização	: 30.06.2009                                    */
/****************************************************************/

/****************************************************************/
/* Função		: Validação de Formulário                       */ 
/* Data			: 10.03.2008                                    */
/* Atualização	: 30.06.2009                                    */
/****************************************************************/

function validaFormulario()
{
	// Início
	var nome = document.contato.nome.value;
	var fone = document.contato.telefone.value;
	var email = document.contato.email.value;	
	var cidade = document.contato.cidade.value;
	var mensagem = document.contato.mensagem.value;

	if (nome == "") // campo nome vazio
	{
		alert(decode("O campo Nome é obrigatório!"));
		document.contato.nome.focus();
		document.contato.nome.select();
		return false;
	}
	if ((nome.length < 2) || (nome.length > 100)) // campo nome deve ter um tamanho mínimo de 2 caracteres e máximo de 100
	{
		alert(decode("O campo Nome deve ter um tamanho mínimo de 2 e máximo de 100 caracteres!"));
		document.contato.nome.value = "";
		document.contato.nome.focus();
		document.contato.nome.select();
		return false;
	}	
	if (fone == "") // campo telefone vazio
	{
		alert(decode("O campo Telefone é obrigatório!"));
		document.contato.telefone.focus();
		document.contato.telefone.select();
		return false;
	}
	for (var i=0; i < fone.length; i++)
	{
		if ((i != 0) && (i != 3) && (i != 4) && (i != 9))
		{
			var n = parseInt(fone.charAt(i));
			if (isNaN(n))
			{
				alert(decode("O campo Telefone tem que ser numérico!"));
				document.contato.telefone.value = "";
				document.contato.telefone.focus();
				document.contato.telefone.select();
				i = fone.length + 1;
				return false;
			}
		}
	}
	if (email == "") // campo email vazio
	{
		alert(decode("O campo E-mail é obrigatório!"));
		document.contato.email.focus();
		document.contato.email.select();
		return false;
	}
	if ((email.length < 6) || (email.length > 100)) // campo email deve ter um tamanho mínimo de 6 caracteres e máximo de 100
	{
		alert(decode("O campo E-mail deve ter um tamanho mínimo de 6 e máximo de 100 caracteres!"));
		document.contato.email.value = "";
		document.contato.email.focus();
		document.contato.email.select();
		return false;
	}
	if (email.indexOf(" ") != -1) // campo email não pode conter espaços em branco
	{
		alert(decode("O campo E-mail não pode conter espaços em branco!"));
		document.contato.email.value = "";
		document.contato.email.focus();
		document.contato.email.select();
		return false;
	}
	if ((email.indexOf(".@") > 0) || (email.indexOf("@.") > 0) || (email.indexOf("..") > 0))
	{
		alert(decode("O campo E-mail informado está incorreto!"));
		document.contato.email.value = "";
		document.contato.email.focus();
		document.contato.email.select();
		return false;
	}
	if ((email.indexOf("@") == -1) || (email.indexOf(".") == -1))
	{
		alert(decode("O campo E-mail informado está incorreto!"));
		document.contato.email.value = "";
		document.contato.email.focus();
		document.contato.email.select();
		return false;
	}
	if (cidade == "") // campo cidade vazio
	{
		alert(decode("O campo Cidade é obrigatório!"));
		document.contato.cidade.focus();
		document.contato.cidade.select();
		return false;
	}
	if (mensagem == "") // campo mensagem vazio
	{
		alert(decode("O campo Mensagem é obrigatório!"));
		document.contato.mensagem.focus();
		document.contato.mensagem.select();
		return false;
	}
	document.contato.submit();
	// Fim
}

function formataCamposTelefone()
{
	var txt = document.contato.telefone.value;
	if (txt.length == 0)
		document.contato.telefone.value = "(" + txt;
	if (txt.length == 3)
		document.contato.telefone.value += ") "; 
	if (txt.length == 9)
		document.contato.telefone.value += ".";
}

function validaNewsletter()
{
	var nome = document.contato.nome.value;
	var email = document.contato.email.value;
	
	if (nome == "") // campo nome vazio
	{
		alert(decode("O campo Nome é obrigatório!"));
		document.contato.nome.focus();
		document.contato.nome.select();
		return false;
	}
	if ((nome.length < 2) || (nome.length > 100)) // campo nome deve ter um tamanho mínimo de 2 caracteres e máximo de 100
	{
		alert(decode("O campo Nome deve ter um tamanho mínimo de 2 e máximo de 100 caracteres!"));
		document.contato.nome.value = "";
		document.contato.nome.focus();
		document.contato.nome.select();
		return false;
	}	
	if (email == "") // campo email vazio
	{
		alert(decode("O campo E-mail é obrigatório!"));
		document.contato.email.focus();
		document.contato.email.select();
		return false;
	}
	if ((email.length < 6) || (email.length > 100)) // campo email deve ter um tamanho mínimo de 6 caracteres e máximo de 100
	{
		alert(decode("O campo E-mail deve ter um tamanho mínimo de 6 e máximo de 100 caracteres!"));
		document.contato.email.value = "";
		document.contato.email.focus();
		document.contato.email.select();
		return false;
	}
	if (email.indexOf(" ") != -1) // campo email não pode conter espaços em branco
	{
		alert(decode("O campo E-mail não pode conter espaços em branco!"));
		document.contato.email.value = "";
		document.contato.email.focus();
		document.contato.email.select();
		return false;
	}
	if ((email.indexOf(".@") > 0) || (email.indexOf("@.") > 0) || (email.indexOf("..") > 0))
	{
		alert(decode("O campo E-mail informado está incorreto!"));
		document.contato.email.value = "";
		document.contato.email.focus();
		document.contato.email.select();
		return false;
	}
	if ((email.indexOf("@") == -1) || (email.indexOf(".") == -1))
	{
		alert(decode("O campo E-mail informado está incorreto!"));
		document.contato.email.value = "";
		document.contato.email.focus();
		document.contato.email.select();
		return false;
	}	
	document.contato.submit();
	// Fim
}

// public method for url encoding
function encode(string) 
{
	string = string.replace(/\r\n/g,"\n");
	var utftext = "";

	for (var n = 0; n < string.length; n++) 
	{
		var c = string.charCodeAt(n);
		if (c < 128) 
		{
			utftext += String.fromCharCode(c);
		}
		else if((c > 127) && (c < 2048)) 
		{
			utftext += String.fromCharCode((c >> 6) | 192);
			utftext += String.fromCharCode((c & 63) | 128);
		}
		else
		{
			utftext += String.fromCharCode((c >> 12) | 224);
			utftext += String.fromCharCode(((c >> 6) & 63) | 128);
			utftext += String.fromCharCode((c & 63) | 128);
		}
	}
	return utftext;
}

// public method for url decoding
function decode(utftext) 
{
	var string = "";
	var i = 0;
	var c = c1 = c2 = 0;

	while ( i < utftext.length ) 
	{
		c = utftext.charCodeAt(i);
		if (c < 128)
		{
			string += String.fromCharCode(c);
			i++;
		}
		else if((c > 191) && (c < 224))
		{
			c2 = utftext.charCodeAt(i+1);
			string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
			i += 2;
		}
		else 
		{
			c2 = utftext.charCodeAt(i+1);
			c3 = utftext.charCodeAt(i+2);
			string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
			i += 3;
		}
	}
	return string;
}