// JavaScript Document
//adiciona mascara de cnpj
function MascaraCNPJ(cnpj){
	if(mascaraInteiro(cnpj)==false){
   	Event.returnValue = false;
   }    
   return formataCampo(cnpj, '00.000.000/0000-00', Event);
}

//adiciona mascara de cep
function MascaraCep(cep){
   if(mascaraInteiro(cep)==false){
      Event.returnValue = false;
   }    
   return formataCampo(cep, '00.000-000', Event);
}

//adiciona mascara de data
function MascaraData(data){ 
   if(mascaraInteiro(data)==false){
      Event.returnValue = false;
   }    
   return formataCampo(data, '00/00/0000', Event); 
}

//adiciona mascara ao telefone
function MascaraTelefone(tel){    
   if(mascaraInteiro(tel)==false){
   	Event.returnValue = false;
   }    
   return formataCampo(tel, '(00) 0000-0000', Event);
}

//adiciona mascara ao CPF
function MascaraCPF(cpf){
   if(mascaraInteiro(cpf)==false){
   	Event.returnValue = false;
   }    
   return formataCampo(cpf, '000.000.000-00', Event);
}

//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!');        
}

//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)    
      alert('CPF Invalido!');        
}
 
//valida numero inteiro com mascara
function mascaraInteiro(){
	if (Event.keyCode < 48 || Event.keyCode > 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)    
      alert('CNPJ Invalido!');
        
}

//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;
   }
}



function mascara(o,f){
    v_obj=o
    v_fun=f
    setTimeout("execmascara()",1)
}

function execmascara(){
    v_obj.value=v_fun(v_obj.value)
}

function leech(v){
    v=v.replace(/o/gi,"0")
    v=v.replace(/i/gi,"1")
    v=v.replace(/z/gi,"2")
    v=v.replace(/e/gi,"3")
    v=v.replace(/a/gi,"4")
    v=v.replace(/s/gi,"5")
    v=v.replace(/t/gi,"7")
    return v
}

function soNumeros(v){
    return v.replace(/\D/g,"")
}

function telefone(v){
    v=v.replace(/\D/g,"")                 //Remove tudo o que não é dígito
    v=v.replace(/^(\d\d)(\d)/g,"($1) $2") //Coloca parênteses em volta dos dois primeiros dígitos
    v=v.replace(/(\d{4})(\d)/,"$1-$2")    //Coloca hífen entre o quarto e o quinto dígitos
    return v
}

function telefones(v){
    v=v.replace(/\D/g,"")                 //Remove tudo o que não é dígito
    v=v.replace(/^(\d\d)(\d)/g,"($1) $2") //Coloca parênteses em volta dos dois primeiros dígitos
    v=v.replace(/(\d{4})(\d)/,"$1-$2")    //Coloca hífen entre o quarto e o quinto dígitos
	 //Segundo numero
    v=v.replace(/(\d{4})(\d{2})/,"$1    ($2) ")    //Coloca hífen entre o quarto e o quinto dígitos    
    v=v.replace(/(\d{4})(\d{4})/,"$1-$2")    //Coloca hífen entre o quarto e o quinto dígitos    
	 //Segundo numero
    v=v.replace(/(\d{4})(\d{2})/,"$1    ($2) ")    //Coloca hífen entre o quarto e o quinto dígitos    
    v=v.replace(/(\d{4})(\d{4})/,"$1-$2")    //Coloca hífen entre o quarto e o quinto dígitos    
    return v
}

function cpf(v){
    v=v.replace(/\D/g,"")                    //Remove tudo o que não é dígito
    v=v.replace(/(\d{3})(\d)/,"$1.$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
    v=v.replace(/(\d{3})(\d)/,"$1.$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
                                             //de novo (para o segundo bloco de números)
    v=v.replace(/(\d{3})(\d{1,2})$/,"$1-$2") //Coloca um hífen entre o terceiro e o quarto dígitos
    return v
}

function cep(v){
    v=v.replace(/D/g,"")                //Remove tudo o que não é dígito
    v=v.replace(/^(\d{5})(\d)/,"$1-$2") //Esse é tão fácil que não merece explicações
    return v
}

function cnpj(v){
    v=v.replace(/\D/g,"")                           //Remove tudo o que não é dígito
    v=v.replace(/^(\d{2})(\d)/,"$1.$2")             //Coloca ponto entre o segundo e o terceiro dígitos
    v=v.replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3") //Coloca ponto entre o quinto e o sexto dígitos
    v=v.replace(/\.(\d{3})(\d)/,".$1/$2")           //Coloca uma barra entre o oitavo e o nono dígitos
    v=v.replace(/(\d{4})(\d)/,"$1-$2")              //Coloca um hífen depois do bloco de quatro dígitos
    return v
}

function data(v){
/*	if (((v.length==2)&&(v.charAt(2)!="/"))||
		 ((v.length!=2)&&(v.charAt(v.length)=="/")))*/
   v=v.replace(/\D/g,"")                        //Remove tudo o que não é dígito
   v=v.replace(/^(\d{2})(\d)/,"$1/$2")             //Coloca ponto entre o segundo e o terceiro dígitos
   v=v.replace(/^(\d{2})\/(\d{2})(\d)/,"$1/$2/$3") //Coloca ponto entre o quinto e o sexto dígitos
   return v
}

function site(v){
    //Esse sem comentarios para que você entenda sozinho ;-)
    v=v.replace(/^http:\/\/?/,"")
    dominio=v
    caminho=""
    if(v.indexOf("/")>-1)
        dominio=v.split("/")[0]
        caminho=v.replace(/[^\/]*/,"")
    dominio=dominio.replace(/[^\w\.\+-:@]/g,"")
    caminho=caminho.replace(/[^\w\d\+-@:\?&=%\(\)\.]/g,"")
    caminho=caminho.replace(/([\?&])=/,"$1")
    if(caminho!="")dominio=dominio.replace(/\.+$/,"")
    v="http://"+dominio+caminho
    return v
}