function numerico() {if (event.keyCode < 48 || event.keyCode > 57) {event.keyCode = 0;event.returnValue = false;}}

function comentario(campo1,campo2,campo3) {
	if (campo1.value == '1') {
		campo2.style.visibility = 'visible';
		campo3.required = "true";
	}
	else {
		campo2.style.visibility = 'hidden';
		campo3.required = "false";
	}
}
//<div id="doutra" style="visibility:hidden; width:100px;"><input name="Txt_Outra" type="text" class="input_3" id="Txt_Outra" maxlength="255" /></div>

function trim(str)
	{
		return str.replace(/^\s*|\s*$/g,"");
	}
		
function trata_campo(campo,digitos)
	    {
         var i;
	     i = 0;
	     while (i < campo.value.length)
		       {
		        if (digitos.indexOf(campo.value.substring(i,i+1)) == -1)
                   {
		            campo.value = campo.value.substring(0,i) + campo.value.substring(i+1);
                   } else {
		            i++;
                   }
		        }
	    }


function required(form)
	{
		
		for (i = 0 ; i < form.elements.length; i ++)
			{
				if (form.elements[i].required == "true")
					{
						if (form.elements[i].value =='')
							{
								if (form.elements[i].message != undefined) {alert(form.elements[i].message);}
								form.elements[i].focus();return false;
							}
					}

				if (form.elements[i].cpf)
					{
						if (!isCpf(form.elements[i].value))
							{
								alert('CPF inválido! Favor digitar novamente.');
								form.elements[i].focus();form.elements[i].select();return false;
							}								
					}
					
				if (form.elements[i].email)
					{
						if (form.elements[i].value)
							{
								if (!doEmail(form.elements[i].value, 1))
									{
										alert('Email inválido! Favor digitar novamente.');
										form.elements[i].focus();form.elements[i].select();return false;
									}
							}
					}
			}
				
				if (form.cnpj)
				   {
					 if (!isCnpj(form.cnpj.value))
						{
							alert('CNPJ inválido! Favor digitar novamente.');
							form.cnpj.focus();form.cnpj.select();return false;
						}
				   }
			
		if (form.conf_message) {if (confirm(form.conf_message)) {return true;} else {return false;}}
	}
	
var reEmail1 = /^[\w!#$%&'*+\/=?^`{|}~-]+(\.[\w!#$%&'*+\/=?^`{|}~-]+)*@(([\w-]+\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
var reEmail2 = /^[\w-]+(\.[\w-]+)*@(([\w-]{2,63}\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
var reEmail3 = /^[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
var reEmail = reEmail3;
function doEmail(pStr, pFmt)
{
	eval("reEmail = reEmail" + pFmt);
	if (reEmail.test(pStr)){return true;} else if (pStr != null && pStr != ""){return false;}
}

NUM_DIGITOS_CPF  = 11;
NUM_DIGITOS_CNPJ = 14;
NUM_DGT_CNPJ_BASE = 8;
String.prototype.lpad = function(pSize, pCharPad)
{
	var str = this;
	var dif = pSize - str.length;
	var ch = String(pCharPad).charAt(0);
	for (; dif>0; dif--) str = ch + str;
	return (str);
}

String.prototype.trim = function(){return this.replace(/^\s*/, "").replace(/\s*$/, "");}
function unformatNumber(pNum){return String(pNum).replace(/\D/g, "").replace(/^0+/, "");} 

function formatCpfCnpj(pCpfCnpj, pUseSepar, pIsCnpj)
{
	if (pIsCnpj==null) pIsCnpj = false;
	if (pUseSepar==null) pUseSepar = true;
	var maxDigitos = pIsCnpj? NUM_DIGITOS_CNPJ: NUM_DIGITOS_CPF;
	var numero = unformatNumber(pCpfCnpj);

	numero = numero.lpad(maxDigitos, '0');
	if (!pUseSepar) return numero;

	if (pIsCnpj)
	{
		reCnpj = /(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})$/;
		numero = numero.replace(reCnpj, "$1.$2.$3/$4-$5");
	}
	else
	{
		reCpf  = /(\d{3})(\d{3})(\d{3})(\d{2})$/;
		numero = numero.replace(reCpf, "$1.$2.$3-$4");
	}
	return numero;
}

function dvCpfCnpj(pEfetivo, pIsCnpj)
{
	if (pIsCnpj==null) pIsCnpj = false;
	var i, j, k, soma, dv;
	var cicloPeso = pIsCnpj? NUM_DGT_CNPJ_BASE: NUM_DIGITOS_CPF;
	var maxDigitos = pIsCnpj? NUM_DIGITOS_CNPJ: NUM_DIGITOS_CPF;
	var calculado = formatCpfCnpj(pEfetivo, false, pIsCnpj);
	calculado = calculado.substring(2, maxDigitos);
	var result = "";

	for (j = 1; j <= 2; j++)
	{
		k = 2;
		soma = 0;
		for (i = calculado.length-1; i >= 0; i--)
		{
			soma += (calculado.charAt(i) - '0') * k;
			k = (k-1) % cicloPeso + 2;
		}
		dv = 11 - soma % 11;
		if (dv > 9) dv = 0;
		calculado += dv;
		result += dv
	}

	return result;
}

function isCpf(pCpf)
{
	var numero = formatCpfCnpj(pCpf, false, false);
	var base = numero.substring(0, numero.length - 2);
	var digitos = dvCpfCnpj(base, false);
	var algUnico, i;

	// Valida dígitos verificadores
	if (numero != base + digitos) return false;

	algUnico = true;
	for (i=1; i<NUM_DIGITOS_CPF; i++)
	{
		algUnico = algUnico && (numero.charAt(i-1) == numero.charAt(i));
	}
	return (!algUnico);
}

function isCnpj(pCnpj)
{
	var numero = formatCpfCnpj(pCnpj, false, true);
	var base = numero.substring(0, NUM_DGT_CNPJ_BASE);
	var ordem = numero.substring(NUM_DGT_CNPJ_BASE, 12);
	var digitos = dvCpfCnpj(base + ordem, true);
	var algUnico;

	if (numero != base + ordem + digitos) return false;

	algUnico = numero.charAt(0) != '0';
	for (i=1; i<NUM_DGT_CNPJ_BASE; i++)
	{
		algUnico = algUnico && (numero.charAt(i-1) == numero.charAt(i));
	}
	if (algUnico) return false;

	if (ordem == "0000") return false;
	return (base == "00000000"
		|| parseInt(ordem, 10) <= 300 || base.substring(0, 3) != "000");
}

function isCpfCnpj(pCpfCnpj)
{
	var numero = pCpfCnpj.replace(/\D/g, "");
	if (numero.length > NUM_DIGITOS_CPF)
		return isCnpj(pCpfCnpj)
	else
		return isCpf(pCpfCnpj);
}

//Exemplo de chamada...
/*<script type="text/javascript">
function doSubmit(pEvent, pForm)
{
	var val = pForm.numero.value;
	var base = val.substring(0, val.length-2);
	if (pForm.tipoCnpj.checked)
		alert("CNPJ:"
			+ "\nDesformatado = " + unformatNumber(val)
			+ "\nFormatado = " + formatCpfCnpj(val, true, true)
			+ "\nDVs = " + dvCpfCnpj(base, true)
			+ "\nVálido = " + isCnpj(val));
	else
		alert("CPF:"
			+ "\nDesformatado = " + unformatNumber(val)
			+ "\nFormatado = " + formatCpfCnpj(val, true)
			+ "\nDVs = " + dvCpfCnpj(base, false)
			+ "\nVálido = " + isCpf(val));
	pForm.numero.focus();
	return false;
} //doSubmit
</script>*/