function isNum( caractere ) 

{ 
	var strValidos = "0123456789" 
	if ( strValidos.indexOf( caractere ) == -1 ) 
		return false; 
	return true; 
} 

function isNum2( caractere ) 

{ 
	var strValidos = "0123456789.," 
	if ( strValidos.indexOf( caractere ) == -1 ) 
		return false; 
	return true; 
} 

function isNum3( caractere ) 

{ 
	var strValidos = "0123456789()-" 
	if ( strValidos.indexOf( caractere ) == -1 ) 
		return false; 
	return true; 
} 


function isNum4( caractere ) 

{ 
	var strValidos = "0123456789.-" 
	if ( strValidos.indexOf( caractere ) == -1 ) 
		return false; 
	return true; 
} 

function isNum5( caractere ) 

{ 
	var strValidos = "0123456789," 
	if ( strValidos.indexOf( caractere ) == -1 ) 
		return false; 
	return true; 
} 


function validaTecla(campo, event) 
{ 
	var BACKSPACE= 8; 
	var key; 
	var tecla; 
	CheckTAB=true; 
	if(navigator.appName.indexOf("Netscape")!= -1) 
		tecla= event.which; 
	else 
		tecla= event.keyCode; 
	key = String.fromCharCode( tecla); 
	//alert( 'key: ' + tecla + ' -> campo: ' + campo.value); 
	if ( tecla == 13 ) 
		return false; 
	if ( tecla == BACKSPACE ) 
		return true; 
	return ( isNum(key)); 
} 

function validaTecla2(campo, event) 
{ 
	var BACKSPACE= 8; 
	var key; 
	var tecla; 
	CheckTAB=true; 
	if(navigator.appName.indexOf("Netscape")!= -1) 
		tecla= event.which; 
	else 
		tecla= event.keyCode; 
	key = String.fromCharCode( tecla); 
	//alert( 'key: ' + tecla + ' -> campo: ' + campo.value); 
	if ( tecla == 13 ) 
		return false; 
	if ( tecla == BACKSPACE ) 
		return true; 
	return ( isNum2(key)); 
} 

function validaTecla3(campo, event) 
{ 
	var BACKSPACE= 8; 
	var key; 
	var tecla; 
	CheckTAB=true; 
	if(navigator.appName.indexOf("Netscape")!= -1) 
		tecla= event.which; 
	else 
		tecla= event.keyCode; 
	key = String.fromCharCode( tecla); 
	//alert( 'key: ' + tecla + ' -> campo: ' + campo.value); 
	if ( tecla == 13 ) 
		return false; 
	if ( tecla == BACKSPACE ) 
		return true; 
	return ( isNum3(key)); 
} 


function validaTecla4(campo, event) 
{ 
	var BACKSPACE= 8; 
	var key; 
	var tecla; 
	CheckTAB=true; 
	if(navigator.appName.indexOf("Netscape")!= -1) 
		tecla= event.which; 
	else 
		tecla= event.keyCode; 
	key = String.fromCharCode( tecla); 
	//alert( 'key: ' + tecla + ' -> campo: ' + campo.value); 
	if ( tecla == 13 ) 
		return false; 
	if ( tecla == BACKSPACE ) 
		return true; 
	return ( isNum4(key)); 
} 

function validaTecla5(campo, event) 
{ 
	var BACKSPACE= 8; 
	var key; 
	var tecla; 
	CheckTAB=true; 
	if(navigator.appName.indexOf("Netscape")!= -1) 
		tecla= event.which; 
	else 
		tecla= event.keyCode; 
	key = String.fromCharCode( tecla); 
	//alert( 'key: ' + tecla + ' -> campo: ' + campo.value); 
	if ( tecla == 13 ) 
		return false; 
	if ( tecla == BACKSPACE ) 
		return true; 
	return ( isNum5(key)); 
} 


function validaCPF(Campo)
{ 
	var invalid, s; 
	invalid = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/; 

	var s; 
	
	s = limpa_string(Campo.value); 
	
	// inicio de verificacao de cpf 

	if (Campo.value.length == 0) 
	{ 
	  return true;
	} 

	if (valida_CPF(Campo.value) == false )
	{ 
		alert("O CPF Não é válido !"); 
		Campo.select(); 
		Campo.focus(); 
		return false;
	} 

	return true; 
} 

function validaCNPJ(Campo)
{ 
	var invalid, s; 
	invalid = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/; 

	var s; 
	
	s = limpa_string(Campo.value); 
	
	// inicio de verificacao de cnpj

	if (Campo.value.length == 0) 
	{ 
	  return true;
	} 

	if (valida_CNPJ(Campo.value) == false )
	{ 
		alert("O CNPJ não é válido !"); 
		Campo.select(); 
		Campo.focus(); 
		return false;
	} 

	return true; 
} 

function limpa_string(S){ 

// Deixa so' os digitos no numero 

	var Digitos = "0123456789"; 
	var temp = ""; 
	var digito = ""; 

	for (var i=0; i<S.length; i++)
	{ 
		digito = S.charAt(i); 
		if (Digitos.indexOf(digito)>=0)
		{ 
			temp=temp+digito
		} 
	} 

	return temp 
} 


function valida_CPF(s)
{ 
	var i; 
	s = limpa_string(s); 
	var c = s.substr(0,9); 
	var dv = s.substr(9,2); 
	var d1 = 0; 
	for (i = 0; i < 9; i++) 
	{ 
		d1 += c.charAt(i)*(10-i); 
	} 
	if (d1 == 0) return false; 
		d1 = 11 - (d1 % 11); 
	if (d1 > 9) d1 = 0; 
	if (dv.charAt(0) != d1) 
	{ 
		return false; 
	} 

	d1 *= 2; 
	for (i = 0; i < 9; i++) 
	{ 
		d1 += c.charAt(i)*(11-i); 
	} 
	d1 = 11 - (d1 % 11); 
	if (d1 > 9) d1 = 0; 
	if (dv.charAt(1) != d1) 
	{ 
		return false; 
	} 

	return true; 
} 


function valida_CNPJ(s) 
{ 
	var i; 
	s = limpa_string(s); 
	var c = s.substr(0,12); 
	var dv = s.substr(12,2); 
	var d1 = 0; 
	for (i = 0; i < 12; i++) 
	{ 
		d1 += c.charAt(11-i)*(2+(i % 8)); 
	} 
	if (d1 == 0) return false; 
	d1 = 11 - (d1 % 11); 
	if (d1 > 9) d1 = 0; 
	if (dv.charAt(0) != d1) 
	{ 
		return false; 
	} 

	d1 *= 2; 
	for (i = 0; i < 12; i++) 
	{ 
		d1 += c.charAt(11-i)*(2+((i+1) % 8)); 
	} 
	d1 = 11 - (d1 % 11); 
	if (d1 > 9) d1 = 0; 
	if (dv.charAt(1) != d1) 
	{ 
		return false; 
	} 
	return true; 
} 


function FormataData(Campo)
{
	if (Campo.value.length == 2 || Campo.value.length == 5 )
	{
		Campo.value = Campo.value+"/";
	}
}


function VerificaData(Campo) 
{
    var bissexto = 0;
    var data = Campo; 
    var tam = data.length;
    if (tam == 10) 
    {
        var dia = data.substr(0,2)
        var mes = data.substr(3,2)
        var ano = data.substr(6,4)
        if ((ano > 1900)||(ano < 2100))
        {
            switch (mes) 
            {
                case '01':
                case '03':
                case '05':
                case '07':
                case '08':
                case '10':
                case '12':
                    if  (dia <= 31) 
                    {
                        return true;
                    }
                    break
                
                case '04':        
                case '06':
                case '09':
                case '11':
                    if  (dia <= 30) 
                    {
                        return true;
                    }
                    break
                case '02':
                    /* Validando ano Bissexto / fevereiro / dia */ 
                    if ((ano % 4 == 0) || (ano % 100 == 0) || (ano % 400 == 0)) 
                    { 
                        bissexto = 1; 
                    } 
                    if ((bissexto == 1) && (dia <= 29)) 
                    { 
                        return true;                 
                    } 
                    if ((bissexto != 1) && (dia <= 28)) 
                    { 
                        return true; 
                    }            
                    break                        
            }
        }
    }    
    alert("A Data "+data+" é inválida!");
    return false;
}


function ValidaData2(campo)
{
	if (campo.value.length == 0)
	{
		alert("Data deverá ser informada.");
	}
	else
	{	
		var expReg = /^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[1-2][0-9]\d{2})$/;
		var msgErro = 'Formato inválido de data. Formato deverá ser dd/mm/aaaa.';
		if ((campo.value.match(expReg)) && (campo.value!=''))
		{
			var dia = campo.value.substring(0,2);
			var mes = campo.value.substring(3,5);
			var ano = campo.value.substring(6,10);
			if((mes==4 || mes==6 || mes==9 || mes==11) && dia > 30)
			{
				alert("Dia incorreto !!! O mês especificado contém no máximo 30 dias.");
				return false;
			}
			else
			{
				if(ano%4!=0 && mes==2 && dia>28)
				{
					alert("Data incorreta!! O mês especificado contém no máximo 28 dias.");
					return false;
				}
				else
				{
					if(ano%4==0 && mes==2 && dia>29)
					{
						alert("Data incorreta!! O mês especificado contém no máximo 29 dias.");
						return false;
					}
					else
					{ 
//					alert ("Data correta!");
						return true;
					}
				}
			}
		}
		else
		{
			alert(msgErro);
			campo.focus();
			return false;
		}
	}	
}


function ValidaData(campo)
{
	if (campo.value.length == 0)
	{
		return true;
	}
	else
	{	
		var expReg = /^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[1-2][0-9]\d{2})$/;
		var msgErro = 'Formato inválido de data. Formato deverá ser dd/mm/aaaa.';
		if ((campo.value.match(expReg)) && (campo.value!=''))
		{
			var dia = campo.value.substring(0,2);
			var mes = campo.value.substring(3,5);
			var ano = campo.value.substring(6,10);
			if((mes==4 || mes==6 || mes==9 || mes==11) && dia > 30)
			{
				alert("Dia incorreto !!! O mês especificado contém no máximo 30 dias.");
				return false;
			}
			else
			{
				if(ano%4!=0 && mes==2 && dia>28)
				{
					alert("Data incorreta!! O mês especificado contém no máximo 28 dias.");
					return false;
				}
				else
				{
					if(ano%4==0 && mes==2 && dia>29)
					{
						alert("Data incorreta!! O mês especificado contém no máximo 29 dias.");
						return false;
					}
					else
					{ 
//					alert ("Data correta!");
						return true;
					}
				}
			}
		}
		else
		{
			alert(msgErro);
			campo.focus();
			return false;
		}
	}	
}


function SomenteNumeros( campo ) 

{ 
	s = campo.value;
	var strValidos = "0123456789" 
	for (var i=0; i<s.length; i++)
	{ 
		caractere = s.charAt(i); 
		if ( strValidos.indexOf( caractere ) == -1 ) 
		{
			alert("Campo deverá ser preenchido somente com números");
			campo.focus();
			return false; 
		}
	} 

	return true; 
} 
