
function validaFaleConosco() {

	fieldsNok = "";
	alertMessage = "";

	var sFormName;
	var aRequiredFields, aRequiredMessages;
	var aCharCheckFields, aCharsToBeChecked, aCharCheckMessages;
	var aEmailFields, aEmailMessages;
	var aDateFields, aDateMessages;

	// Informe o nome do formulário
	sFormName = "frm_faleconosco"; 

	// Informe o nome dos campos que são obrigatórios
	aRequiredFields = new Array(
	"txt_nome",
	"txt_email",
	"txt_mensagem")
	
	//Informe as mensagens para cada um dos campos obrigatórios (respeitando a ordem do array anterior)
	aRequiredMessages = new Array(
	"O campo Nome é obrigatório. Por favor, digite-o.",
	"O campo E-mail é obrigatório. Por favor, digite-o.",
	"O campo Mensagem é obrigatório. Por favor, digite-o.")

	//Informe o nome dos campos que precisam ser verificados qto a caracteres invalidos
	aCharCheckFields = new Array(
	"txt_nome",
	"txt_email",
	"txt_telefone",
	"txt_fax",
	"txt_mensagem")
	
	//Informe os caracteres que são inválidos para cada campo
	aCharsToBeChecked = new Array(
	"'",
	"'",
	"'",					
	"'",
	"'")
	
	//Informe as mensagens para cada campo com caracteres inválidos
	aCharCheckMessages = new Array(
	"O campo Nome contém caracteres inválidos",
	"O campo E-mail contém caracteres inválidos",
	"O campo Telefone contém caracteres inválidos",
	"O campo Fax contém caracteres inválidos",
	"O campo Mensagem contém caracteres inválidos")	

	// Informe o nome dos campos que são e-mails
	aEmailFields = new Array(
	"txt_email")
	 
	 //Informe as mensagens para cada um dos campos e-mail
	aEmailMessages = new Array(
	"O campo E-mail não contém um e-mail válido. Por favor, corrija.")

	// Informe o nome dos campos que precisam limite maximo de caracteres
	aLengthFields = new Array(
	"txt_mensagem")
	
	//Informe as mensagens para cada um dos campos que precisam limite maximo de caracteres
	aLengthMessages = new Array(
	"O campo de mensagem excedeu o número máximo de caracteres. O limite máximo são 2.000 caracteres.")
	
	//Informe o maximo de carateres para cada um desses campos
	aLengthValues = new Array(
	2000)

	// Em relação às funções abaixo, deixar "chamando" as que forem necessárias e comentar as que não forem
  checkForRequiredFields( aRequiredFields, aRequiredMessages, sFormName )
	checkForInvalidChars( aCharCheckFields, aCharsToBeChecked, aCharCheckMessages, sFormName )
	checkForEmailFields( aEmailFields, aEmailMessages, sFormName )
	checkForFieldLength (aLengthFields, aLengthMessages, aLengthValues, sFormName )

 	// verifica se existem campos em não conformidade
	if ( fieldsNok != null && fieldsNok != '') {

		// Exibe o ALERT com todos os "problemas" consolidados
		alertMessage = "Os seguintes problemas foram encontrados no formulário:\n\n" + alertMessage;
		alert (alertMessage);

		// Seta todos os campos para ficar com o style normal
		for( var y=0; y< eval("document." + sFormName + ".elements.length") -1; y++) {	
			changeStyle('formField', sFormName, eval("document." + sFormName + ".elements[y].name") )
		}

		// Seta os campos com problemas para ficar com o style marcado.
		eachField = fieldsNok.split("**")
		for( var y=0; y< eachField.length -1; y++) {
			changeStyle('formFieldWarning', sFormName, eachField[y] )
		}

		return false;
	} else {
		return true;
	}
}
