
function validaCadastro() {

	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_cadastro"; 

	// Informe o nome dos campos que são obrigatórios
	aRequiredFields = new Array(
	"txt_nome",
	"txt_email")
	
	//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.")

	//Informe o nome dos campos que precisam ser verificados qto a caracteres invalidos
	aCharCheckFields = new Array(
	"txt_nome",
	"txt_endereco",
	"txt_bairro",
	"txt_cep",
	"txt_cidade",
	"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 Endereço contém caracteres inválidos",
	"O campo Bairro contém caracteres inválidos",
	"O campo Cep contém caracteres inválidos",
	"O campo Cidade 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 Mensagem excedeu o número máximo de caracteres.")
	
	//Informe o maximo de carateres para cada um desses campos
	aLengthValues = new Array(
	1000)

	// 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;
	}
}
