
function validar(numero){
	if (numero.length == 14) {
		if (valida_cnpj(numero) == false)
			return false;
	}
	else if (numero.length == 11) {
		if (valida_cpf(numero) == false)
			return false;
	}
	else
		return false;
}

function valida_cnpj(cnpj){
     	tamanho = cnpj.length - 2
        numeros = cnpj.substring(0,tamanho);
        digitos = cnpj.substring(tamanho);
		soma = 0;
    	for (posicao=0; posicao < tamanho; posicao++)  // cálculo digito 1
        {
          if (posicao < 4){
			multiplicador = 5 - posicao;
			soma += numeros.charAt(posicao) * multiplicador;
		  } else {
			  multiplicador = 13 - posicao
			  soma += numeros.charAt(posicao) * multiplicador;
		  }
        }
        resultado = soma % 11;
		if (resultado < 2) 
			digito1 = 0;
		else digito1 = 11 - resultado;
        tamanho = tamanho + 1;         // cálculo digito2
        numeros = cnpj.substring(0,tamanho);
        soma = 0;
        for (posicao=0; posicao < tamanho; posicao++)
        {
          if (posicao <= 4) {
			multiplicador = 6 - posicao;
		  	soma += numeros.charAt(posicao) * multiplicador;
		  } else {
			  multiplicador = 14 - posicao;
			  soma += numeros.charAt(posicao) * multiplicador;
		  }
        }
        resultado = soma % 11; 
		if (resultado < 2) 
			digito2 = 0;
		else digito2 = 11 - resultado;
		if ((digito1 == digitos.charAt(0)) && (digito2 == digitos.charAt(1))) 	//teste dos digitos
  			return true;
		else return false;
}


 function valida_cpf(cpf){
     	tamanho = cpf.length - 2
        numeros = cpf.substring(0,tamanho);
        digitos = cpf.substring(tamanho);
		soma = 0;
    	for (posicao=0; posicao < tamanho; posicao++)  // cálculo digito 1
        {
			multiplicador = 10 - posicao;
			soma += numeros.charAt(posicao) * multiplicador;
        }
        resultado = soma % 11;
		if (resultado < 2) 
			digito1 = 0;
		else digito1 = 11 - resultado;
        tamanho = tamanho + 1;         // cálculo digito2
        numeros = cpf.substring(0,tamanho);
		compara = numeros.charAt(0);
		igual = true;
		soma = 0;
        for (posicao=0; posicao < tamanho; posicao++)
        {
          	if (compara != numeros.charAt(posicao))
				igual = false;
			multiplicador = 11 - posicao;
		  	soma += numeros.charAt(posicao) * multiplicador;
		}
        resultado = soma % 11; 
		if (resultado < 2) 
			digito2 = 0;
		else digito2 = 11 - resultado;
		if ((digito1 == digitos.charAt(0)) && (digito2 == digitos.charAt(1)) && (igual == false))	//teste dos digitos
  			return true;
		else return false;
}



function calcular_idade(data){ //calculo a data de hoje

    hoje=new Date()  
	var array_data = data.split("/") 
    if (array_data.length!=3) 
       return false 
    var ano 
    ano = parseInt(array_data[2],10); 
    if (isNaN(ano)) 
       return false 
	   
	var mes 
    mes = parseInt(array_data[1],10);
	if (isNaN(mes)) 
       return false 

    var dia 
    dia = parseInt(array_data[0]); 
	if (isNaN(dia)) 
       return false 
   
    var idade
    if ((hoje.getMonth() + 1) < mes)
	idade=hoje.getYear() - ano - 1; //-1 porque ainda nao fez anos durante este ano 
	
	if ((hoje.getMonth() + 1) > mes)
	idade=hoje.getYear()- ano; // porque ja passou do mês este ano 
	
	
	if ((hoje.getMonth() + 1) == mes){
		if ((hoje.getDate() < dia)){
			idade=hoje.getYear() - ano - 1; }
		else if ((hoje.getDate() > dia)){
			idade=hoje.getYear() - ano; }
		else if ((hoje.getDate() == dia)) {
			alert("Feliz Aniversário!")
			idade=hoje.getYear() - ano; }
	}
	
	return idade 
} 

function navegador (objeto) {
	if (document.layers) { //Netscape layers
		return document.layers[objeto];
	}
	if (document.getElementById) { //DOM; IE5, NS6, Mozilla, Opera
		return document.getElementById(objeto);
	}
	if (document.all) { //Proprietary DOM; IE4
		return document.all[objeto];
	}
	if (document[objeto]) { //Netscape alternative
		return document[objeto];
	}
	return false;
}
	
function formataTextBox (campo, mascara, evento) {
	var i, variavel, conteudo, qtdCampo, qtdMascara, bolMascara, Codigo, Tecla;
	
	if (document.all) {
		Tecla = evento.keyCode;
	} else if (document.layers) {
		Tecla = evento.which;
	} else {
		Tecla = evento.which;
		if (Tecla == 8) {
			return true;
		}
	}
	
	var obj = navegador (campo);
	conteudo = obj.value;
	
	conteudo = conteudo.replace( /\./g, "" );
	conteudo = conteudo.replace( /\,/g, "" );
	conteudo = conteudo.replace( /\:/g, "" );
	conteudo = conteudo.replace( /\-/g, "" );
	conteudo = conteudo.replace( /\//g, "" );
	conteudo = conteudo.replace( /\(/g, "" );
	conteudo = conteudo.replace( /\)/g, "" );
	conteudo = conteudo.replace( /\s/g, "" );
	
	qtdCampo = conteudo.length;
	
	i = 0;
	variavel = 0;
	Codigo = "";
	qtdMascara = qtdCampo;

	while (i <= qtdMascara) {
		bolMascara = ( (mascara.charAt(i) == "-") || (mascara.charAt(i) == ":") || (mascara.charAt(i) == ".") || (mascara.charAt(i) == "/") || (mascara.charAt(i) == ",") || (mascara.charAt(i) == "(") || (mascara.charAt(i) == ")") || (mascara.charAt(i) == " ") );
					
		if (bolMascara) {
			Codigo += mascara.charAt(i);
			qtdMascara++;
		} else {
			Codigo += conteudo.charAt(variavel);
			variavel++;
		}
		
		i++;
	}

	obj.value = Codigo;
	
	if (Tecla != 8) {
		if (mascara.charAt (i-1) == "9") {
			return ( (Tecla > 47) && (Tecla < 58) );
		} else {
			return true;
		}
	} else {
		return true;
	}
}

var NS = (navigator.appName.indexOf("Netscape") != -1);

function autoTab(campo, tamanho, evento) {
	var tecla = (NS) ? evento.which : evento.keyCode;
	var filtro = (NS) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
	
	if (campo.value.length >= tamanho && !verificaTecla (filtro,tecla)) {
	campo.value = campo.value.slice(0, tamanho);
	campo.form[(verificaPosicao(campo)+1) % campo.form.length].focus();
}

function verificaTecla (filtro, tecla) {
	var achou = false, i = 0;
	
	while (!achou && i < filtro.length) {
		if (filtro[i] == tecla) {
			achou = true;
		} else {
			i++;
		}
	}
	
	return achou;
}

function verificaPosicao (campo) {
	var posicao = -1, i = 0;
	
	while (i < campo.form.length && posicao == -1)
		if (campo.form[i] == campo) {
			posicao = i;
		} else {
			i++;
		}
		
		return posicao;
	}
	
	return true;
}
	
function formataValor (campo, evento) {
	var Tecla, conteudo, qtdCampo;
	
	if (document.all) {
		Tecla = evento.keyCode;
	} else if (document.layers) {
		Tecla = evento.which;
	} else {
		Tecla = evento.which;
	}
	
	var obj = navegador (campo);
	conteudo = obj.value;
	
	conteudo = conteudo.replace ( /\D/g, "" );
	
	qtdCampo = conteudo.length;
	
	if (qtdCampo < 11 && Tecla != 8) {
		qtdCampo += 1;
	}
	
	if (Tecla == 8 ) {
		qtdCampo -= 1;
	}
	
	if (Tecla == 8 || Tecla >= 48 && Tecla <= 57 || Tecla >= 96 && Tecla <= 105) {
		if (qtdCampo <= 2) {
			obj.value = conteudo;
		}
		if ((qtdCampo > 2) && (qtdCampo <= 5)) {
			obj.value = conteudo.substr(0, qtdCampo - 2) + '.' + conteudo.substr(qtdCampo - 2, qtdCampo);
		}
		if ((qtdCampo >= 6) && (qtdCampo <= 8)) {
			obj.value = conteudo.substr(0, qtdCampo - 5)  + '.' + conteudo.substr(qtdCampo - 5, 3) + '.' + conteudo.substr(qtdCampo - 2, qtdCampo);
		}
		if ((qtdCampo >= 9) && (qtdCampo <= 11)) {
			obj.value = conteudo.substr(0, qtdCampo - 8) + '.' + conteudo.substr(qtdCampo - 8, 3 ) + '.' + conteudo.substr(qtdCampo - 5, 3) + '.' + conteudo.substr(qtdCampo - 2, qtdCampo);
		}
	}
	
	if (Tecla != 8) {
		return ((Tecla > 47) && (Tecla < 58));
	} else {
		return true;
	}
}