// JavaScript Document

function mascaraSelecao(e, id) {
	var campo = document.getElementById(id);
	var tipo = (id.split(":"))[1];
	switch(tipo){
		case "cpf":
			campo.maxLength = 14;
			MascaraCPF(campo, e);
			break;
		case "cep":
			campo.maxLength = 10;
			MascaraCep(campo, e);
			break;
		case "fone":
			campo.maxLength = 14;
			MascaraTelefone(campo, e);
			break;
	}
}

//adiciona mascara de cnpj
function MascaraCNPJ(cnpj, e){
if(mascaraInteiro(cnpj, e)==false){
event.returnValue = false;
}
return formataCampo(cnpj, '00.000.000/0000-00', e);
}

//adiciona mascara de cep
function MascaraCep(cep, e){
	if(mascaraInteiro(cep, e)==false){
		event.returnValue = false;
	}
	return formataCampo(cep, '00.000-000', e);
}

//adiciona mascara de data
function MascaraData(data,e){
	if(mascaraInteiro(data,e)==false){
		e.returnValue = false;
	}
	return formataCampo(data, '00/00/0000', e);
}

//adiciona mascara ao telefone
function MascaraTelefone(tel, event){
	if(tel.value != ""){
		if(mascaraInteiro(tel, event)==false){
			event.returnValue = false;
		}
		return formataCampo(tel, '(00) 0000-0000', event);
	}
	
}

//adiciona mascara ao CPF
function MascaraCPF(cpf, e){
	if(cpf.value != ""){
		if(mascaraInteiro(cpf, e)==false){
			event.returnValue = false;
		}
		return formataCampo(cpf, '000.000.000-00', e);
	}
}

//valida telefone
function ValidaTelefone(tel){
exp = /\(\d{2}\)\ \d{4}\-\d{4}/
if(!exp.test(tel.value))
alert('Numero de Telefone Invalido!');
}

//valida CEP
function ValidaCep(cep){
exp = /\d{2}\.\d{3}\-\d{3}/
if(!exp.test(cep.value))
alert('Numero de Cep Invalido!');
}

//isCep
function isCep(cep){
	exp = /\d{2}\.\d{3}\-\d{3}/
	if(!exp.test(cep.value))
		return false;
	else
		return true;
}

//isEmail
function isEmail(email){
	var er = new RegExp(/^[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}$/);
    if(er.test(email.value))
    	return true;
    else
    	return false;
}
//isFone
function ValidaTelefone(fone){
	exp = /\(\d{2}\)\ \d{4}\-\d{4}/
	if(!exp.test(fone.value))
		return false;
	else
		return true;
}

//valida data
function ValidaData(data){
exp = /\d{2}\/\d{2}\/\d{4}/
if(!exp.test(data.value))
alert('Data Invalida!');
}

//valida o CPF digitado
function ValidarCPF(Objcpf){
var cpf = Objcpf.value;
exp = /\.|\-/g
cpf = cpf.toString().replace( exp, "" );
var digitoDigitado = eval(cpf.charAt(9)+cpf.charAt(10));
var soma1=0, soma2=0;
var vlr =11;

for(i=0;i<9;i++){
soma1+=eval(cpf.charAt(i)*(vlr-1));
soma2+=eval(cpf.charAt(i)*vlr);
vlr--;
}
soma1 = (((soma1*10)%11)==10 ? 0:((soma1*10)%11));
soma2=(((soma2+(2*soma1))*10)%11);

var digitoGerado=(soma1*10)+soma2;
if(digitoGerado!=digitoDigitado) {
	return false;
} else {
	return true;
}
//alert('CPF Invalido!'); MODIFICADO
}

//valida numero inteiro com mascara
function mascaraInteiro(e,event){
var keynum
if(window.event) // IE
{
keynum = e.keyCode
}
else if(e.which) // Netscape/Firefox/Opera
{
keynum = e.which
}
if (keynum < 48 || keynum > 57){
event.returnValue = false;
return false;
}
return true;
}

//valida o CNPJ digitado
function ValidarCNPJ(ObjCnpj){
var cnpj = ObjCnpj.value;
var valida = new Array(6,5,4,3,2,9,8,7,6,5,4,3,2);
var dig1= new Number;
var dig2= new Number;

exp = /\.|\-|\//g
cnpj = cnpj.toString().replace( exp, "" );
var digito = new Number(eval(cnpj.charAt(12)+cnpj.charAt(13)));

for(i = 0; i<valida.length; i++){
dig1 += (i>0? (cnpj.charAt(i-1)*valida[i]):0);
dig2 += cnpj.charAt(i)*valida[i];
}
dig1 = (((dig1%11)<2)? 0:(11-(dig1%11)));
dig2 = (((dig2%11)<2)? 0:(11-(dig2%11)));

if(((dig1*10)+dig2) != digito) {
	return false;
} else {
	return true;
}
//alert('CNPJ Invalido!'); MODIFICADO

}

//formata de forma generica os campos
function formataCampo(campo, Mascara, evento) {
var boleanoMascara;

var Digitato = evento.keyCode;
exp = /\-|\.|\/|\(|\)| /g
campoSoNumeros = campo.value.toString().replace( exp, "" );

var posicaoCampo = 0;
var NovoValorCampo="";
var TamanhoMascara = campoSoNumeros.length;;

if (Digitato != 8) { // backspace
for(i=0; i<= TamanhoMascara; i++) {
boleanoMascara = ((Mascara.charAt(i) == "-") || (Mascara.charAt(i) == ".") || (Mascara.charAt(i) == "/"))
boleanoMascara = boleanoMascara || ((Mascara.charAt(i) == "(") || (Mascara.charAt(i) == ")") || (Mascara.charAt(i) == " "))
if (boleanoMascara) {
NovoValorCampo += Mascara.charAt(i);
TamanhoMascara++;
}else {
NovoValorCampo += campoSoNumeros.charAt(posicaoCampo);
posicaoCampo++;
}
}
campo.value = NovoValorCampo;
return true;
}else {
return true;
}
}