<!-- Original:  Ronnie T. Moore -->
<!-- Web Site:  The JavaScript Source -->

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

<!-- Begin
// -----------------------------------------------------------------
// Funcao	   : checkMaxInput
// Linguagem   : JavaScript
// Descricao   : Limita a quantidade de caracteres do campo textarea
// Copyright   : (c) 2000 ADF Consulting - Silvio N Hirashiki
// http://www.adfcon.com.br
// Para usar este script legalmente, mantenha este cabecalho
// -----------------------------------------------------------------
// Ver    Data    Descricao da alteracao
// --- ---------- --------------------------------------------------
// 1.1 2000/05/15 Versao 1 
//
// -----------------------------------------------------------------
function checkMaxInput(FormName, ElemName, maxLen) {

var CampoTeste = document.forms[FormName].elements[ElemName];

if (CampoTeste.value.length > maxLen ){ 
CampoTeste.value = CampoTeste.value.substring(0, maxLen);
}

<!--// otherwise, update 'characters left' counter
<!--else form.remLen.value = maxLen - form.message.value.length;
}
//  End -->

<!------------- Begin
// -----------------------------------------------------------------
// Funcao	   : IsBlank
// Linguagem   : JavaScript
// Descricao   : Verifica a validade de uma cadeia de caracteres
// Copyright   : (c) 2000 ADF Consulting - Ronaldo M.G. Lopes
// http://www.adfcon.com.br
// Para usar este script legalmente, mantenha este cabecalho		
// -----------------------------------------------------------------
// Ver    Data    Descricao da alteracao
// --- ---------- --------------------------------------------------
// 1.0 2000/04/27 Original 

function IsBlank(ElemName) {
var CampoTeste = ElemName;
var CampoSemBrancos;
	//Monta campo sem brancos
	CampoSemBrancos = "";
	for (var i=0; i < CampoTeste.length; i++) {
		if (CampoTeste.substring(i, i+1) != ' ') {
		CampoSemBrancos = CampoSemBrancos + CampoTeste.substring(i, i+1);
		}
	}
	//Se campo estiver vazio
	if (CampoSemBrancos == '')     {  
		return true;
	}

	return false;
}
//  End -->


<!------------- Begin
// -----------------------------------------------------------------
// Funcao	   : IsCharValid
// Linguagem   : JavaScript
// Descricao   : Verifica a validade de uma cadeia de caracteres
// Copyright   : (c) 2000 ADF Consulting - Silvio N Hirashiki
// http://www.adfcon.com.br
// Para usar este script legalmente, mantenha este cabecalho		
// -----------------------------------------------------------------
// Ver    Data    Descricao da alteracao
// --- ---------- --------------------------------------------------
// 1.0 2000/04/27 Original 
//
// -----------------------------------------------------------------
function IsCharValid(FormName, ElemName, ElemCaption) {

	var CharValido;
	var CharValido1 = "abcdefghijklmnopqrstuvwxyz";
	var CharValido2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var CharValido3 = "áàãâéèêíìóòõôúùç_-:/.,~?&º$+#()\r\n\t";
	var CharValido4 = "ÁÀÃÂÉÈÊÍÌÓÒÕÔÚÙÇ";
	var NumValido   = "0123456789";
	var ok = "sim";
	var ParteString;
	var Mensagem;
	var CampoTeste = document.forms[FormName].elements[ElemName];
	var CampoSemBrancos;
	CharValido = ' ' + CharValido1 + CharValido2 + CharValido3 + CharValido4 + NumValido

	//Monta campo sem brancos
	CampoSemBrancos = "";
	for (var i=0; i < CampoTeste.value.length; i++) {
		if (CampoTeste.value.substring(i, i+1) != ' ') {
		CampoSemBrancos = CampoSemBrancos + CampoTeste.value.substring(i, i+1);
		}
	}

	//Se campo estiver vazio
	if (CampoSemBrancos == '')     {  
		Mensagem = 'Por favor, preencha o campo ' + ElemCaption
		alert(Mensagem)
		CampoTeste.select();
		CampoTeste.focus()
		return false;
	}

	//Se estiver preenchido, testar os caracteres
	ParteString = "";
	for (var i=0; i < CampoTeste.value.length; i++) {
		ParteString = "" + CampoTeste.value.substring(i, i+1);
		if (CharValido.indexOf(ParteString) == "-1") {
			ok = "nao";
		}
	}

	if (ok == "nao") {
		alert("Caracteres inválidos! Preencha somente com letras e números!");
		CampoTeste.select();
		CampoTeste.focus()
		return false;
	}

	return true;
}
//  End -->

<!------------- Begin
// -----------------------------------------------------------------
// Funcao	   : IsFilled
// Linguagem   : JavaScript
// Descricao   : Verifica se um campo esta preenchido ou nao
// Para usar este script legalmente, mantenha este cabecalho		
// -----------------------------------------------------------------
// Ver    Data    Descricao da alteracao
// --- ---------- --------------------------------------------------
// 1.0 2000/04/27 Original 
// -----------------------------------------------------------------
function IsFilled(FormName, ElemName, ElemCaption) {
	var CampoTeste = document.forms[FormName].elements[ElemName];
	var CampoSemBrancos;
	//Monta campo sem brancos
	CampoSemBrancos = "";
	for (var i=0; i < CampoTeste.value.length; i++) {
		if (CampoTeste.value.substring(i, i+1) != ' ') {
		CampoSemBrancos = CampoSemBrancos + CampoTeste.value.substring(i, i+1);
		}
	}

	if (CampoSemBrancos == '')     {  
		Mensagem = 'Por favor, preencha o campo ' + ElemCaption 
		alert(Mensagem)
		CampoTeste.select();
		CampoTeste.focus()
		return false;
	}
	return true;
}
//  End -->





<!------------- Begin
// -----------------------------------------------------------------
// Funcao	   : IsCPFValid
// Linguagem   : JavaScript
// Descricao   : Verifica a validade de um CPF
// Copyright   : (c) 2000 ADF Consulting - Silvio N Hirashiki
// http://www.adfcon.com.br
// Para usar este script legalmente, mantenha este cabecalho		
// -----------------------------------------------------------------
// Ver    Data    Descricao da alteracao
// --- ---------- --------------------------------------------------
// 1.0 2000/04/27 Original 
//
// -----------------------------------------------------------------
function IsCPFValid(FormName, ElemName, ElemCaption){


	document.forms[FormName].elements[ElemName].value = formatDoc(FormName, ElemName, "cpf", "banco");
	
	var ok = "sim";
	var ParteString;
	var Mensagem;
	var CampoTeste = document.forms[FormName].elements[ElemName];
	var CampoSemBrancos;
	CharValido = '0123456789'



	//Monta campo sem brancos
	CampoSemBrancos = "";
	for (var i=0; i < CampoTeste.value.length; i++) {
		if (CampoTeste.value.substring(i, i+1) != ' ') {
		CampoSemBrancos = CampoSemBrancos + CampoTeste.value.substring(i, i+1);
		}
	}

	//Se campo estiver vazio
	if (CampoSemBrancos == '')     {  
		Mensagem = 'Por favor, preencha o campo ' + ElemCaption 
		alert(Mensagem)
		CampoTeste.value = formatDoc(FormName, ElemName, "cpf", "tela");
		CampoTeste.select();
		CampoTeste.focus()
		return false;
	}
	//Se estiver preenchido, testar os caracteres
	ParteString = "";
	for (var i=0; i < CampoTeste.value.length; i++) {
		ParteString = "" + CampoTeste.value.substring(i, i+1);
		if (CharValido.indexOf(ParteString) == "-1") {
			ok = "nao";
		}
	}
	if (ok == "nao") {
		alert("Caracteres inválidos! Preencha somente com números!");
		CampoTeste.value = formatDoc(FormName, ElemName, "cpf", "tela");
		CampoTeste.select();
		CampoTeste.focus();
		return false;
	}
	if (CampoTeste.value.length != 11){
		alert("Por Favor, Preencha  com 11 números!");
		CampoTeste.value = formatDoc(FormName, ElemName, "cpf", "tela");
		CampoTeste.select();
		CampoTeste.focus();
		return false;
	}
	//Calculo de consistencia do CPF
	var soma
	var CPFCalculado
	var CPFDigito

	CPFCalculado = CampoTeste.value.substring(0,9);
	soma = 0;
	for (var i=0; i < 9; i++) {
		soma = soma + CPFCalculado.substring(i, i+1) * (10 - i)
	}

	CPFDigito = 11  - (soma % 11);
	if (CPFDigito > 9){
		CPFCalculado = CPFCalculado + '0';
	}
	else{
		CPFCalculado = CPFCalculado + String(CPFDigito);
	}
	soma = 0;
	for (i=0;i < 10; i++){
		soma = soma + CPFCalculado.substring(i, i+1) * (11 - i)
	} 
	CPFDigito = 11  - (soma % 11);
	if (CPFDigito > 9){
		CPFCalculado = CPFCalculado + '0';
	}
	else{
		CPFCalculado = CPFCalculado + String(CPFDigito);
	}

	if (CampoTeste.value != CPFCalculado){
		alert("CPF Inválido! Digite novamente!" + String(CPFCalculado));
		CampoTeste.value = formatDoc(FormName, ElemName, "cpf", "tela");
		CampoTeste.select();
		CampoTeste.focus();
		return false;
	}	
	CampoTeste.value = formatDoc(FormName, ElemName, "cpf", "tela");
	return true;
}
//  End -->



<!------------- Begin
// -----------------------------------------------------------------
// Funcao	   : IsCPFValidSeg
// Linguagem   : JavaScript
// Descricao   : Verifica a validade de um CPF quando suas informações estão em uma variável
// Copyright   : (c) 2000 ADF Consulting - Silvio N Hirashiki
// http://www.adfcon.com.br
// Para usar este script legalmente, mantenha este cabecalho		
// -----------------------------------------------------------------
// Ver    Data    Descricao da alteracao
// --- ---------- --------------------------------------------------
// 1.0 2000/04/27 Original 
//
// -----------------------------------------------------------------
function IsCPFValidSeg(pValor, ElemCaption){


	var ok = "sim";
	var ParteString;
	var Mensagem;
	var CampoTeste = new String();
	var CampoSemBrancos;
	CharValido = '0123456789'
	
	CampoTeste.value = pValor;
	//Monta campo sem brancos
	CampoSemBrancos = "";
	for (var i=0; i < CampoTeste.value.length; i++) {
		if (CampoTeste.value.substring(i, i+1) != ' ') {
		CampoSemBrancos = CampoSemBrancos + CampoTeste.value.substring(i, i+1);
		}
	}

	//Se campo estiver vazio
	if (CampoSemBrancos == '')     {  
		Mensagem = 'Por favor, preencha o campo ' + ElemCaption 
		alert(Mensagem)
		return false;
	}
	//Se estiver preenchido, testar os caracteres
	ParteString = "";
	for (var i=0; i < CampoTeste.value.length; i++) {
		ParteString = "" + CampoTeste.value.substring(i, i+1);
		if (CharValido.indexOf(ParteString) == "-1") {
			ok = "nao";
		}
	}
	if (ok == "nao") {
		alert("Caracteres inválidos! Preencha somente com números!");
		return false;
	}
	if (CampoTeste.value.length != 11){
		alert("Por Favor, Preencha  com 11 números!");
		return false;
	}
	//Calculo de consistencia do CPF
	var soma
	var CPFCalculado
	var CPFDigito

	CPFCalculado = CampoTeste.value.substring(0,9);
	soma = 0;
	for (var i=0; i < 9; i++) {
		soma = soma + CPFCalculado.substring(i, i+1) * (10 - i)
	}

	CPFDigito = 11  - (soma % 11);
	if (CPFDigito > 9){
		CPFCalculado = CPFCalculado + '0';
	}
	else{
		CPFCalculado = CPFCalculado + String(CPFDigito);
	}
	soma = 0;
	for (i=0;i < 10; i++){
		soma = soma + CPFCalculado.substring(i, i+1) * (11 - i)
	} 
	CPFDigito = 11  - (soma % 11);
	if (CPFDigito > 9){
		CPFCalculado = CPFCalculado + '0';
	}
	else{
		CPFCalculado = CPFCalculado + String(CPFDigito);
	}

	if (CampoTeste.value != CPFCalculado){
		alert("CPF Inválido! Digite novamente!" + String(CPFCalculado));
		return false;
	}	
	return true;
}
//  End -->




<!------------- Begin
// -----------------------------------------------------------------
// Funcao	   : IsCNPJValid
// Linguagem   : JavaScript
// Descricao   : Verifica a validade de um CNPJ
// Copyright   : (c) 2000 ADF Consulting - Silvio N Hirashiki
// http://www.adfcon.com.br
// Para usar este script legalmente, mantenha este cabecalho		
// -----------------------------------------------------------------
// Ver    Data    Descricao da alteracao
// --- ---------- --------------------------------------------------
// 1.0 2000/07/12 Original 
//
// -----------------------------------------------------------------

function IsCNPJValid(FormName, ElemName, ElemCaption){

	document.forms[FormName].elements[ElemName].value = formatDoc(FormName, ElemName, "cnpj", "banco");

	var ok = "sim";
	var ParteString;
	var Mensagem;
	var CampoTeste = document.forms[FormName].elements[ElemName];
	var CampoSemBrancos;
	
	CharValido = '0123456789'


	//Monta campo sem brancos
	CampoSemBrancos = "";
	for (var i=0; i < CampoTeste.value.length; i++) {
		if (CampoTeste.value.substring(i, i+1) != ' ') {
		CampoSemBrancos = CampoSemBrancos + CampoTeste.value.substring(i, i+1);
		}
	}

	//Se campo estiver vazio
	if (CampoSemBrancos == '')     {  
		Mensagem = 'Por favor, preencha o campo ' + ElemCaption 
		 alert(Mensagem)
		CampoTeste.value = formatDoc(FormName, ElemName, "cnpj", "tela");
		CampoTeste.select();
		CampoTeste.focus()
		return false;
   }

	//Se estiver preenchido, testar os caracteres
	ParteString = "";
	for (var i=0; i < CampoTeste.value.length; i++) {
		ParteString = "" + CampoTeste.value.substring(i, i+1);
		if (CharValido.indexOf(ParteString) == "-1") {
			ok = "nao";
		}
	}

	if (ok == "nao") {
		alert("Caracteres inválidos! Preencha somente com números!");
		CampoTeste.value = formatDoc(FormName, ElemName, "cnpj", "tela");
		CampoTeste.select();
		CampoTeste.focus();
		return false;
   }
	

	if (CampoTeste.value.length != 14){
		alert("Por Favor, Preencha  com 14 números!");
		CampoTeste.value = formatDoc(FormName, ElemName, "cnpj", "tela");
		CampoTeste.select();
		CampoTeste.focus();
		return false;
   }
		
//Calculo de consistencia do CNPJ

	var soma
	var CNPJCalculado
	var CNPJDigito

	CNPJCalculado = CampoTeste.value.substring(0,12);
	soma = 0;

	for (var i=0; i < 4; i++) {
		soma = soma + CNPJCalculado.substring(i, i+1) * (5 - i)
	}
	
	for (var i=0; i < 8; i++) {
		soma = soma + CNPJCalculado.substring(i+4, i+5) * (9 - i)
	}
	
	CNPJDigito = 11  - (soma % 11);


// 		FOR POSI  := 1 TO 9 DO
//       SOMACPF := SOMACPF + STRTOINT(COPY(CPFCALC,POSI,1))*(11-POSI);

	if (CNPJDigito > 9){
		CNPJCalculado = CNPJCalculado + '0';
	}
	else{
		CNPJCalculado = CNPJCalculado + String(CNPJDigito);
	}

	soma = 0;
	     
   for (var i=0; i < 5; i++) {
		soma = soma + CNPJCalculado.substring(i, i+1) * (6 - i)
	}
	
	for (var i=0; i < 8 ; i++) {
		soma = soma + CNPJCalculado.substring(i+5, i+6) * (9 - i)
	}     
   
	CNPJDigito = 11  - (soma % 11);
   
	if (CNPJDigito > 9){
		CNPJCalculado = CNPJCalculado + '0';
	}
	else{
		CNPJCalculado = CNPJCalculado + String(CNPJDigito);
	}


	if (CampoTeste.value != CNPJCalculado){
		alert("CNPJ Inválido! Digite novamente! " + String(CNPJCalculado) );
		CampoTeste.value = formatDoc(FormName, ElemName, "cnpj", "tela");
		CampoTeste.select();
		CampoTeste.focus();
		return false;
	}	

	CampoTeste.value = formatDoc(FormName, ElemName, "cnpj", "tela");
	return true;

}
//  End -->


<!------------- Begin
// -----------------------------------------------------------------
// Funcao	   : IsCNPJValidVal
// Linguagem   : JavaScript
// Descricao   : Verifica a validade de um CNPJ, passando um valor
// Copyright   : (c) 2000 ADF Consulting - Silvio N Hirashiki
// http://www.adfcon.com.br
// Para usar este script legalmente, mantenha este cabecalho		
// -----------------------------------------------------------------
// Ver    Data    Descricao da alteracao
// --- ---------- --------------------------------------------------
// 1.0 2000/07/12 Original 
//
// -----------------------------------------------------------------

function IsCNPJValidVal(pValor){

	var ok = "sim";
	var ParteString;
	var Mensagem;
	var CampoTeste ;
	var CampoSemBrancos;
	
	CampoTeste = new String();
	CampoTeste = pValor
	
	CharValido = '0123456789'


	//Monta campo sem brancos
	CampoSemBrancos = "";
	for (var i=0; i < CampoTeste.length; i++) {
		if (CampoTeste.substring(i, i+1) != ' ') {
		CampoSemBrancos = CampoSemBrancos + CampoTeste.substring(i, i+1);
		}
	}

	//Se campo estiver vazio
	if (CampoSemBrancos == '')     {  
		return false;
   }

	//Se estiver preenchido, testar os caracteres
	ParteString = "";
	for (var i=0; i < CampoTeste.length; i++) {
		ParteString = "" + CampoTeste.substring(i, i+1);
		if (CharValido.indexOf(ParteString) == "-1") {
			ok = "nao";
		}
	}

	if (ok == "nao") {
		alert("Caracteres inválidos! Preencha somente com números!");
		return false;
   }
	

	if (CampoTeste.length != 14){
		alert("Por Favor, Preencha  com 14 números!");
		return false;
   }
		
//Calculo de consistencia do CNPJ

	var soma
	var CNPJCalculado
	var CNPJDigito

	CNPJCalculado = CampoTeste.substring(0,12);
	soma = 0;

	for (var i=0; i < 4; i++) {
		soma = soma + CNPJCalculado.substring(i, i+1) * (5 - i)
	}
	
	for (var i=0; i < 8; i++) {
		soma = soma + CNPJCalculado.substring(i+4, i+5) * (9 - i)
	}
	
	CNPJDigito = 11  - (soma % 11);


// 		FOR POSI  := 1 TO 9 DO
//       SOMACPF := SOMACPF + STRTOINT(COPY(CPFCALC,POSI,1))*(11-POSI);

	if (CNPJDigito > 9){
		CNPJCalculado = CNPJCalculado + '0';
	}
	else{
		CNPJCalculado = CNPJCalculado + String(CNPJDigito);
	}

	soma = 0;
	     
   for (var i=0; i < 5; i++) {
		soma = soma + CNPJCalculado.substring(i, i+1) * (6 - i)
	}
	
	for (var i=0; i < 8 ; i++) {
		soma = soma + CNPJCalculado.substring(i+5, i+6) * (9 - i)
	}     
   
	CNPJDigito = 11  - (soma % 11);
   
	if (CNPJDigito > 9){
		CNPJCalculado = CNPJCalculado + '0';
	}
	else{
		CNPJCalculado = CNPJCalculado + String(CNPJDigito);
	}


	if (CampoTeste != CNPJCalculado){
		alert("CNPJ Inválido! Digite novamente!"  + String(CNPJCalculado) );
		return false;
	}	

	return true;

}
//  End -->



<!------------- Begin
//-- Original:  Sandeep V. Tamhankar (stamhankar@hotmail.com) 
//-- This script and many more are available free online at 
//-- The JavaScript Source!! http://javascript.internet.com 
// -----------------------------------------------------------------
// Funcao	   : IsDateValid
// Linguagem   : JavaScript
// Descricao   : Verifica a validade de uma cadeia de caracteres
// Copyright   : (c) 2000 ADF Consulting - Silvio N Hirashiki
// http://www.adfcon.com.br
// Para usar este script legalmente, mantenha este cabecalho		
// -----------------------------------------------------------------
// Ver    Data    Descricao da alteracao
// --- ---------- --------------------------------------------------
// 1.0            Original: Sandeep V. Tamhankar (stamhankar@hotmail.com)
// 1.1 2000/04/27 Versao ADF Consulting, para data formato dd/mm/aaaa
// -----------------------------------------------------------------
function IsDateValid(dateStr) {
	// Checks for the following valid date formats:
	// MM/DD/YY   MM/DD/YYYY   MM-DD-YY   MM-DD-YYYY
	// Also separates date into month, day, and year variables


	// Padrao da data - mostra a quantidade de digitos
	// num ano, mes ou dia
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;


	// To require a 4 digit year entry, use this line instead:
	// var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;

	var matchArray = dateStr.match(datePat); // is the format ok?
	if (matchArray == null) {
		alert("Data em formato inválido ");
		return false
	}

	month = matchArray[3]; // parse date into variables
	day = matchArray[1];
	year = matchArray[4];

	if (year < 1900 || year > 2100) { 
		//--Verifica intervalo do mes
		alert("O Ano deve estar entre 1900 e 2100");
		return false;
	}
	
	if (month < 1 || month > 12) { 
		//--Verifica intervalo do mes
		alert("O Mês deve estar entre 1 e 12");
		return false;
	}

	if (day < 1 || day > 31) {
		alert("O Dia deve estar entre 1 e 31.");
		return false;
	}

	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
		alert("O Mês "+month+" não tem 31 dias!")
		return false
	}

	if (month == 2) { // check for february 29th
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day==29 && !isleap)) {
			alert("Fevereiro de " + year + " não tem " + day + " dias!");
			return false;
   		}
	}
return true;  // date is valid
}
//  End -->


<!------------- Begin
// -----------------------------------------------------------------
// Function    : IsEmailValid
// Language    : JavaScript
// Description : Checks if given email address is of valid syntax
// Copyright   : (c) 1998 Shawn Dorman
// http://www.goodnet.com/~sdorman/web/IsEmailValid.html
// -----------------------------------------------------------------
// Ver    Date    Description of modification
// --- ---------- --------------------------------------------------
// 1.0 09/04/1996 Original write
// 1.1 09/30/1998 CHG: Use standard header format
// 1.2            Versao ADF Consulting
// -----------------------------------------------------------------
// Source: Webmonkey Code Library
// (http://www.hotwired.com/webmonkey/javascript/code_library/)
// -----------------------------------------------------------------
function IsEmailValid(FormName, ElemName, ElemCaption)
{
var Mensagem = ''
var CampoForm = document.forms[FormName].elements[ElemName]
var AtSym    = CampoForm.value.indexOf('@')
var Period   = CampoForm.value.lastIndexOf('.')
var Space    = CampoForm.value.indexOf(' ')
var Length   = CampoForm.value.length - 1   // Array is from 0 to length-1


// '@' cannot be in first position
// Must be atleast one valid char btwn '@' and '.'
// Must be atleast one valid char after '.'
// No empty spaces permitted

if 	((AtSym < 1) || (Period <= AtSym+1) || (Period == Length ) || 
	(Space  != -1))      {  
		Mensagem = 'Por favor, corrija o ' + ElemCaption + ' digitado'
      alert(Mensagem); 
		CampoForm.select( );
      CampoForm.focus( ); 
		return false
}
return true

}
//  End -->


<!------------- Begin
// -----------------------------------------------------------------
// Funcao	   : IsFloatValid
// Linguagem   : JavaScript
// Descricao   : Verifica se o número é um float válido
// Copyright   : (c) 2000 ADF Consulting - Silvio N Hirashiki
// http://www.adfcon.com.br
// Para usar este script legalmente, mantenha este cabecalho		
// -----------------------------------------------------------------
// Ver    Data    Descricao da alteracao
// --- ---------- --------------------------------------------------
// 1.0 2000/04/27 Original 
//
// -----------------------------------------------------------------
function IsFloatValid(FormName, ElemName, ElemCaption, pNumInt, pNumDec) {
	var CharValido;
	var NumValido   = "0123456789,";
	var ok = "sim";
	var ParteString;
	var Mensagem;
	var CampoTeste = document.forms[FormName].elements[ElemName];
	var CampoSemBrancos;
	var PosVir	
	var intQtdDecimal

	CharValido = NumValido

	//Monta campo sem brancos
	CampoSemBrancos = "";
	for (var i=0; i < CampoTeste.value.length; i++) {
		if (CampoTeste.value.substring(i, i+1) != ' ') {
		CampoSemBrancos = CampoSemBrancos + CampoTeste.value.substring(i, i+1);
		}
	}
	//Se campo estiver vazio
	if (CampoSemBrancos == '')     {  
		Mensagem = 'Por favor, preencha o campo ' + ElemCaption 
      alert(Mensagem)
		CampoTeste.select();
      CampoTeste.focus()
		return false;
   }
	//Se estiver preenchido, testar os caracteres
	ParteString = "";
	for (var i=0; i < CampoTeste.value.length; i++) {
		ParteString = "" + CampoTeste.value.substring(i, i+1);
		if (CharValido.indexOf(ParteString) == "-1") {
			ok = "nao";
		}	
		if (ParteString == ",") {
			if (i == 0)  {
				alert("O número não pode começar com vírgula");
				CampoTeste.select();
				CampoTeste.focus();
				return false;
			}
			if (i == (CampoTeste.value.length - 1 ))  {
				alert("O número não pode terminar com vírgula");
				CampoTeste.focus();
				CampoTeste.select();
				return false;
			}
			//Permite apenas uma virgula
 			NumValido   = "0123456789";
			CharValido = NumValido;
			
		}
	}

	if (ok == "nao") {
		alert("Caracteres inválidos! Preencha apenas com números");
		CampoTeste.focus();
		CampoTeste.select();
		return false;
   }
	
	PosVir = 0
	for (var i=0; i < CampoSemBrancos.length; i++) {
		if (CampoSemBrancos.substring(i, i+1) == ',') {
			PosVir = i;
			if (PosVir > pNumInt){
				alert('Por Favor, preencha apenas com ' + pNumInt + ' números inteiros!');
 				CampoTeste.focus();
				CampoTeste.select();
				return false;
			}
		}
	}
	
	if (PosVir == 0){
		if (CampoSemBrancos.length > pNumInt){
				alert('Por Favor, preencha apenas com ' + pNumInt + ' números inteiros!');
 				CampoTeste.focus();
				CampoTeste.select();
				return false;
		}
	}	

	if (PosVir != 0){
		intQtdDecimal = CampoSemBrancos.length - PosVir - 1;
		if(intQtdDecimal > pNumDec){
				alert('Por Favor, preencha apenas com ' + pNumDec + ' casas decimais!');
 				CampoTeste.focus();
				CampoTeste.select();
				return false;
		}
	}

	return true;
}
//  End -->


<!--
// -----------------------------------------------------------------
// Function    : IsFormComplete
// Language    : JavaScript
// Description : Checks if all elements in a form have a non-blank value
// Copyright   : (c) 1998 Shawn Dorman
// http://www.goodnet.com/~sdorman/web/IsFormComplete.html
// -----------------------------------------------------------------
// Ver    Date    Description of modification
// --- ---------- --------------------------------------------------
// 1.0 08/31/1996 Original write
// 1.1 09/30/1998 CHG: Use standard header format
// -----------------------------------------------------------------
// Source: Webmonkey Code Library
// (http://www.hotwired.com/webmonkey/javascript/code_library/)
// -----------------------------------------------------------------
function IsFormComplete(FormName)
{
var x       = 0
var FormOk  = true

while ((x < document.forms[FormName].elements.length) && (FormOk))
   {
     if (document.forms[FormName].elements[x].value == '')
     { 
        alert('Please enter the '+document.forms[FormName].elements[x].name +' and try again.')
        document.forms[FormName].elements[x].focus()
        FormOk = false 
     }
     x ++
   }
return FormOk
}
// -->


<!------------- Begin
// -----------------------------------------------------------------
// Funcao	   : IsIntegerValid
// Linguagem   : JavaScript
// Descricao   : Verifica se o número é inteiro
// Copyright   : (c) 2000 ADF Consulting - Silvio N Hirashiki
// http://www.adfcon.com.br
// Para usar este script legalmente, mantenha este cabecalho		
// -----------------------------------------------------------------
// Ver    Data    Descricao da alteracao
// --- ---------- --------------------------------------------------
// 1.0 2000/04/27 Original 
//
// -----------------------------------------------------------------
function IsIntegerValid(FormName, ElemName, ElemCaption) {

	var CharValido;
	var NumValido   = "0123456789";

	var ok = "sim";
	var ParteString;
	var Mensagem;
	var CampoTeste = document.forms[FormName].elements[ElemName];
	var CampoSemBrancos;
	
	CharValido = NumValido
	//Monta campo sem brancos
	CampoSemBrancos = "";
	for (var i=0; i < CampoTeste.value.length; i++) {
		if (CampoTeste.value.substring(i, i+1) != ' ') {
		CampoSemBrancos = CampoSemBrancos + CampoTeste.value.substring(i, i+1);
		}
	}

	//Se campo estiver vazio
	if (CampoSemBrancos == '')     {  
		Mensagem = 'Por favor, preencha o campo ' + ElemCaption 
      alert(Mensagem)
      CampoTeste.focus()
		CampoTeste.select();
		return false;
   }

	//Se estiver preenchido, testar os caracteres
	ParteString = "";
	for (var i=0; i < CampoTeste.value.length; i++) {
		ParteString = "" + CampoTeste.value.substring(i, i+1);
		if (CharValido.indexOf(ParteString) == "-1") {
			ok = "nao";
		}
	}

	if (ok == "nao") {
		alert("Caracteres inválidos! Preencha apenas com números");
		CampoTeste.focus();
		CampoTeste.select();
		return false;
   }
	return true;
}
//  End -->
