	function formataValor( campo, evento, maxlen )
	{
		var valor1 = campo.value ;
		var valor2 = '' ;
		var len = valor1.length ;
		var whichCode = (window.Event) ? evento.which : evento.keyCode;
		var aux = aux2 = '' ;
		var decSep = "," ;
		var milSep = "." ;
		var strCheck = '0123456789';
		
		if( evento.keyCode < 45 || evento.keyCode > 57 ) {
			evento.returnValue = false;
			return false;
		}

		var key = String.fromCharCode(whichCode);
		
		for(i = 0; i < len; i++)
		if ((campo.value.charAt(i) != '0') && (campo.value.charAt(i) != decSep)) break;
		aux = '';

		for(; i < len; i++)
		if (strCheck.indexOf(campo.value.charAt(i))!=-1) aux += campo.value.charAt(i);
		aux += key;		
		
		len = aux.length;
		if (len == 0) campo.value = '';
		if (len == 1) campo.value = '0' + decSep + '0' + aux;
		if (len == 2) campo.value = '0' + decSep + aux;

		if (len > 2) {
			aux2 = '';
			for( j = 0, i = len - 3; i >= 0; i-- ) {
			//	if (j == 3) {
			//	aux2 += milSep;
			//	j = 0;
			//	}
				aux2 += aux.charAt(i);
				j++;
			}
			campo.value = '';
			len2 = aux2.length;
			for( i = len2 - 1; i >= 0; i-- )
			campo.value += aux2.charAt(i);
			campo.value += decSep + aux.substr(len - 2, len);
		}
		
		evento.returnValue = false;	
	}

	function formataCep( campo, evento ){
		var whichCode = (window.Event) ? evento.which : evento.keyCode;

		if( ( evento.keyCode < 48 || evento.keyCode > 57 ) ) {
			evento.returnValue = false;
			return false;
		}

		if (campo.value.indexOf("-") == -1 && campo.value.length > 5) { 
			campo.value = ""; 
		}

		if (campo.value.length == 5){
			campo.value += "-";
		}
	}

	function formataData( campo, evento ){
		var whichCode = (window.Event) ? evento.which : evento.keyCode;
		
		myData = campo.value;

		if( ( evento.keyCode < 48 || evento.keyCode > 57 ) ) {
			evento.returnValue = false;
			return false;
		}

		if ( myData.length == 2 ){
			myData += "/" ;
			campo.value = myData;
		}

		if ( myData.length == 5 ){
			myData += "/" ;
			campo.value = myData;
		}
	}

	function Valida_Data ( campo ) {
		if ( campo.value == "" ) {
			return( true );
		}
		
		if ( campo.value.length != 10 ) {
			alert( "A data informada não é válida !!!" );
			campo.focus();
			return( false );
		}
		
		dia = campo.value.substring( 0, 2 );
		mes = campo.value.substring( 3, 5 );
		ano = campo.value.substring( 6, 10 );
		if ( ( dia < 01 ) || ( dia < 01 || dia > 30 ) && ( mes == 04 || mes == 06 || mes == 09 || mes == 11 ) || dia > 31 ) {
			alert("O dia informado não é válido !!!");
			campo.focus();
			return( false );
		}
		
		if ( mes < 1 || mes > 12 ) {
			alert("O mês informado não é válido !!!");
			campo.focus();
			return( false );
		}
		
		if ( mes == 2 && ( dia < 01 || dia > 29 || ( dia > 28 && ( parseInt( ano / 4 ) != ano / 4 ) ) ) ) {
			alert( "A data informada não é válida !!!" );
			campo.focus();
			return( false );
		}
	}
	
	function getNumber( number ) {
		var result = '';
		var num, i;
		var nonNumbers = /\D/;

		for ( i = 0 ; i < number.length ; i++ )
		{
			try
			{
				num = parseInt( number.substring( i, i + 1 ) );
				if ( ! nonNumbers.test(num)) {
					result += num;
				}
			}
			catch (exception)
			{ }
		}
		return result;
	}

	function Valida_CPF_CNPJ() {
		var d1 = 0;
		my_cpf_cnpj = document.formulario.CPF_CNPJ.value;
		
		if ( my_cpf_cnpj == "" ) {
			return true;
		}

		if ( ( my_cpf_cnpj.length != 11 && my_cpf_cnpj.length != 14 ) ) {
			alert( "O número informado não é um CPF válido !!!" );
			document.formulario.CPF_CNPJ.focus();
			return false;
		}

		my_cpf_cnpj = getNumber( my_cpf_cnpj );
		orig_cpf_cnpj = getNumber( my_cpf_cnpj );

		if ( my_cpf_cnpj.length != 11 ) {
			alert( "O número informado não é um CPF válido !!!" );
			document.formulario.CPF_CNPJ.focus();
			return false;
		}

		if ( my_cpf_cnpj.length == 11 ) { 

			my_dv = my_cpf_cnpj.substr(9,2);
			my_dv1 = my_cpf_cnpj.substring( 9, 10 );
			my_dv2 = my_cpf_cnpj.substring( 10, 11 );
			my_cpf_cnpj = my_cpf_cnpj.substring( 0, 9 );

			for (i = 0; i < 9; i++)
			{
				d1 += my_cpf_cnpj.charAt(i)*(10-i);
			}
			if (d1 == 0) {
				alert( "O número informado não é um CPF válido !!!" );
				document.formulario.CPF_CNPJ.focus();
				return false;
			}
			d1 = 11 - (d1 % 11);
			if (d1 > 9) d1 = 0;
			if (my_dv.charAt(0) != d1)
			{
				alert( "O número informado não é um CPF válido !!!" );
				document.formulario.CPF_CNPJ.focus();
				return false;
			}

			d1 *= 2;
			for (i = 0; i < 9; i++)
			{
				d1 += my_cpf_cnpj.charAt(i)*(11-i);
			}
			d1 = 11 - (d1 % 11);
			if (d1 > 9) d1 = 0;
			if (my_dv.charAt(1) != d1)
			{
				alert( "O número informado não é um CPF válido !!!" );
				document.formulario.CPF_CNPJ.focus();
				return false;
			}
			return true;
		}
		return false;
	}

	
		
	function formataValorMonetario(campooriginal,decimais)
		{
			var posicaoPontoDecimal;
			var campo = '';
			var resultado = '';
			var pos,sep,dec;

			//Retira possiveis separadores de milhar
			for (pos=0; pos < campooriginal.value.length; pos ++)
			{
				if (campooriginal.value.charAt(pos)!='.')
					campo = campo + campooriginal.value.charAt(pos);
			}     

			//Formata valor monetário com decimais
			posicaoPontoDecimal = campo.indexOf(',');
			if (posicaoPontoDecimal != -1)
			{
				sep = 0;
				for (pos=posicaoPontoDecimal-1;pos >= 0;pos--)
				{
					sep ++;
					if (sep > 3)
					{
					resultado = '.' + resultado;
					sep = 1;
					}

					resultado = campo.charAt(pos) + resultado;   
				}

				// Trata parte decimal
				if (parseInt(decimais) > 0 )
				{
					resultado = resultado + ',';
			      
					pos=posicaoPontoDecimal+1;
					for (dec = 1;dec <= parseInt(decimais); dec++)
					{
					if (pos < campo.length)
					{
						resultado = resultado + campo.charAt(pos);
						pos++;
					}
					else
						resultado = resultado + '0';   
					}

				} // trata decimais
			}
			// Trata valor monetário sem decimais
			else
			{
				sep = 0;
				for (pos=campo.length-1;pos >= 0;pos--)
				{
					sep ++;
					if (sep > 3)
					{
					resultado = '.' + resultado;
					sep = 1;
					}
					resultado = campo.charAt(pos) + resultado;   
				}
				// Trata parte decimal
				if (parseInt(decimais) > 0 )
				{
					resultado = resultado + ',';
					for (dec = 1;dec <= parseInt(decimais); dec++)
					{
						resultado = resultado + '0';   
					}
				} // trata decimais
			}
			campooriginal.value = resultado;
			return;
		}
		
		
			