function carregaAlgumasFuncoes(){
	formataReais();
}

//jQuery
//jquery.moeda.js
//jquery.maxlength.js
function formataReais() {

	jQuery(".jsDinheiroSalario").maxlength( { status:false, showAlert:false, maxCharacters:12 } );
	jQuery(".jsDinheiroSalario").maskMoney( { showSymbol:false, decimal:".", thousands:"." } );

	jQuery(".jsDinheiro").maxlength( { status:false, showAlert:false, maxCharacters:6 } );
	jQuery(".jsDinheiro").maskMoney( { showSymbol:false, decimal:".", thousands:"." } );
	
	//jQuery(".jsQuantidade").maxlength( { status:false, showAlert:false, maxCharacters:5 } );
	//jQuery(".jsDinheiro").maskMoney( { showSymbol:false, decimal:".", thousands:"." } );
	
}

//adiciona mascara de cnpj
function validaCNPJ(CNPJ) {
 
	//CNPJ = document.validacao.CNPJID.value;
	
	var idCNPJ = CNPJ;
	CNPJ = document.getElementById(CNPJ).value;
	 
		erro = new String;
		if (CNPJ.length < 18){
			erro += "É necessario preencher corretamente o número do CNPJ! \n\n";
		
			document.getElementById(idCNPJ).value = "";
			document.getElementById(idCNPJ).style.borderColor='#C72D24';
			document.getElementById(idCNPJ).focus();
	
		}
		if ((CNPJ.charAt(2) != ".") || (CNPJ.charAt(6) != ".") || (CNPJ.charAt(10) != "/") || (CNPJ.charAt(15) != "-")){
			if (erro.length == 0){
				erro += "É necessário preencher corretamente o número do CNPJ! \n\n";
				
				document.getElementById(idCNPJ).value = "";
				document.getElementById(idCNPJ).style.borderColor='#C72D24';
				document.getElementById(idCNPJ).focus();
				
			}
		}
		
		//substituir os caracteres que não são números
		if(document.layers && parseInt(navigator.appVersion) == 4){
			   x = CNPJ.substring(0,2);
			   x += CNPJ. substring (3,6);
			   x += CNPJ. substring (7,10);
			   x += CNPJ. substring (11,15);
			   x += CNPJ. substring (16,18);
			   CNPJ = x;
		} else {
			   CNPJ = CNPJ. replace (".","");
			   CNPJ = CNPJ. replace (".","");
			   CNPJ = CNPJ. replace ("-","");
			   CNPJ = CNPJ. replace ("/","");
		}
		
		var nonNumbers = /\D/;
		
		if (nonNumbers.test(CNPJ)){
			erro += "A verificação de CNPJ suporta apenas números! \n\n";
		
			document.getElementById(idCNPJ).value = "";
			document.getElementById(idCNPJ).style.borderColor='#C72D24';
			document.getElementById(idCNPJ).focus();
	
		}
		var a = [];
		var b = new Number;
		var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];
		
		for (i=0; i<12; i++){
			a[i] = CNPJ.charAt(i);
			b += a[i] * c[i+1];
		}
		
		if ((x = b % 11) < 2) { a[12] = 0 } else { a[12] = 11-x }
		
		b = 0;
		
		for (y=0; y<13; y++) {
			   b += (a[y] * c[y]);
		}
		
		if ((x = b % 11) < 2) { a[13] = 0; } else { a[13] = 11-x; }
			if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13])){
				   erro +="Dígito verificador com problema!";
		}
		
		if (erro.length > 0){
			alert(erro);
			return false;
		}
		return true;
}

//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);
}

//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
// FUNCAO ANTIGA
/*
function ValidarCPF(Objcpf, objID){
    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!');
		document.getElementById(objID).value = "";
		document.getElementById(objID).style.borderColor='#C72D24';
		document.getElementById(objID).focus();
		return false;
	}
}
*/
// FUNCAO NOVA DE VALIDAR CPF
function ValidarCPF(Objcpf, objID){
   
   Objcpf = Objcpf.value;
   
   Objcpf = Objcpf.replace('.', '');
   Objcpf = Objcpf.replace('.', '');
   Objcpf = Objcpf.replace('-', '');   
/*   alert(cpf);
   var filtro = /^\d{3}.\d{3}.\d{3}-\d{2}$/i;
   if(!filtro.test(cpf)){
     window.alert("CPF inválido. Tente novamente.");
	 return false;
   }
  */ 
   Objcpf = remove(Objcpf, ".");
   Objcpf = remove(Objcpf, "-");
    
   if(Objcpf.length != 11 || Objcpf == "00000000000" || Objcpf == "11111111111" ||
	  Objcpf == "22222222222" || Objcpf == "33333333333" || Objcpf == "44444444444" ||
	  Objcpf == "55555555555" || Objcpf == "66666666666" || Objcpf == "77777777777" ||
	  Objcpf == "88888888888" || Objcpf == "99999999999"){
	  window.alert("CPF inválido.");
	  document.getElementById(objID).value = "";
	  document.getElementById(objID).style.borderColor='#C72D24';
	  document.getElementById(objID).focus();
	  return false;
   }

   soma = 0;
   for(i = 0; i < 9; i++)
   	 soma += parseInt(Objcpf.charAt(i)) * (10 - i);
   resto = 11 - (soma % 11);
   if(resto == 10 || resto == 11)
	 resto = 0;
   if(resto != parseInt(Objcpf.charAt(9))){
	 window.alert("CPF inválido.");
	 document.getElementById(objID).value = "";
	 document.getElementById(objID).style.borderColor='#C72D24';
	 document.getElementById(objID).focus();
	 return false;
   }
   soma = 0;
   for(i = 0; i < 10; i ++)
	 soma += parseInt(Objcpf.charAt(i)) * (11 - i);
   resto = 11 - (soma % 11);
   if(resto == 10 || resto == 11)
	 resto = 0;
   if(resto != parseInt(Objcpf.charAt(10))){
     window.alert("CPF inválido.");
	 document.getElementById(objID).value = "";
	 document.getElementById(objID).style.borderColor='#C72D24';
	 document.getElementById(objID).focus();
	 return false;
   }
   return true;
 }
 
 function remove(str, sub) {
   i = str.indexOf(sub);
   r = "";
   if (i == -1) return str;
   r += str.substring(0,i) + remove(str.substring(i + sub.length), sub);
   return r;
 }


//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;
    }
}

//Valida Email

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 ValidaEmail(Campo_pStr)
{
	var pStr = Campo_pStr.value;
	var pStrId = Campo_pStr.id;
	//alert(pStrId);
	eval("reEmail = reEmail" + 1);
	if (reEmail.test(pStr)) {
		//alert(pStr + " é um endereço de e-mail válido.");
	} else if (pStr != null && pStr != "") {
		alert(pStr + " é um endereço de e-mail incorreto.");
		document.getElementById(pStrId).value = '';
		document.getElementById(pStrId).style.borderColor = '#C27D24';
		document.getElementById(pStrId).focus();
		return false;
	}
} // doEmail


/*
function ValidaEmail(campo){
  var obj = eval(campo);
  var txt = obj.value;
  if ((txt.length != 0) && ((txt.indexOf("@") < 1) || (txt.indexOf('.') < 7))){
    alert('Email incorreto');
	campo.value = '';
	campo.style.borderColor = '#C72D24';
	campo.focus();
	return false;	
	}
}
*/

//Nivel de senha

function VerificarGrauDaSenha(senha,numID){
	
	var points = 0;
	var descr = new Array();
	descr[0] = "";
	descr[1] = "xiii! a senha está fraca.";
	descr[2] = "melhorando! senha com nível médio.";
	descr[3] = "opa! senha forte!";
	descr[4] = "opa! senha forte!";

	// grau se o temanho é maior que 4 caracteres, aumenta 1 ponto
	if (senha.length > 4) points++;
	// grau se a senha contém caracteres maiúsculos e minúsculos, aumenta 1 pto
	if ( ( senha.match(/[a-z]/) ) && ( senha.match(/[A-Z]/) ) )	points++;
	// grau se a senha tem algum número, aumenta 2 pontos
	if (senha.match(/\d+/))	points++;
	// grau se a senha tem algum caractere especial, aumenta 1 ponto
	if ( senha.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,)]/) )	points++;
	// grau se o tamanho da senha for igual a 10, aumenta 1 ponto
	if (senha.length > 5 && senha.length < 11) points++;
	// muda descrição e a classe do div conforme o grau da senha
	
	if(numID == "1"){
		
		document.getElementById("descricaoGrau_1").innerHTML = descr[points];
		document.getElementById("grauSenha_1").className = "grau" + points;

	}else if(numID == "2"){
		
		document.getElementById("descricaoGrau_2").innerHTML = descr[points];
		document.getElementById("grauSenha_2").className = "grau" + points;		
	
	}
}

// =========================================
// Validar tipo de arquivo

function verifica_extencao(arq){
	/*var extensoesOk = ".gif,.jpg,.jpeg,.png,";*/
	var extensoesOk = ",.jpg,.jpeg,";
	var extensao = "," + document.getElementById(arq).value.substr( document.getElementById(arq).value.length - 4 ).toLowerCase() + ",";
	if (document.getElementById(arq).value == ""){
		alert("O campo do endereço da imagem está vazio!!")
	}else if( extensoesOk.indexOf( extensao ) == -1 ){

		alert( document.getElementById(arq).value + "\nNão possui uma extensão válida" );
		javascript:location.reload();

	}	
	
}

function verificarCPF(c){
var i; 
s = c;
var c = s.substr(0,9); 
var dv = s.substr(9,2); 
var d1 = 0; 
var v = false;
for (i = 0; i < 9; i++) 
{ 
d1 += c.charAt(i)*(10-i); 
} 
if (d1 == 0){ 
alert("Número do documento  Inválido");
document.getElementById("cpf").focus();
v = true; 
return false; 
} 
d1 = 11 - (d1 % 11); 
if (d1 > 9) d1 = 0; 
if (dv.charAt(0) != d1) 
{ 
alert("Número do documento  Inválido");
document.getElementById("cpf").focus();
v = true;
return false; 
} 

d1 *= 2; 
for (i = 0; i < 9; i++) 
{ 
d1 += c.charAt(i)*(11-i); 
} 
d1 = 11 - (d1 % 11); 
if (d1 > 9) d1 = 0; 
if (dv.charAt(1) != d1) 
{ 
alert("Número do documento  Inválido");
document.getElementById("cpf").focus();
v = true;
return false; 
} 
/*if (!v) {
alert(c + "\nCPF Válido") 
}*/
}

function valida_cnpj(cnpj) {
  var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais;
  digitos_iguais = 1;
  if (cnpj.length < 14 && cnpj.length < 15) {
    alert("Número do documento Inválido")
    document.formCadastro.cnpj.focus();
    return false;
  }
  for (i = 0; i < cnpj.length - 1; i++)
        if (cnpj.charAt(i) != cnpj.charAt(i + 1))
	      {
	      digitos_iguais = 0;
	      break;
	      }
  if (!digitos_iguais)
        {
        tamanho = cnpj.length - 2
        numeros = cnpj.substring(0,tamanho);
        digitos = cnpj.substring(tamanho);
        soma = 0;
        pos = tamanho - 7;
        for (i = tamanho; i >= 1; i--)
              {
              soma += numeros.charAt(tamanho - i) * pos--;
              if (pos < 2)
                    pos = 9;
              }
        resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
        if (resultado != digitos.charAt(0)) {
          	alert("Número do documento Inválido")
		    document.formCadastro.cnpj.focus();
		    return false;
        }
        tamanho = tamanho + 1;
        numeros = cnpj.substring(0,tamanho);
        soma = 0;
        pos = tamanho - 7;
        for (i = tamanho; i >= 1; i--)
              {
              soma += numeros.charAt(tamanho - i) * pos--;
              if (pos < 2)
                    pos = 9;
              }
        resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
        if (resultado != digitos.charAt(1)) {
          	alert("Número do documento Inválido")
		    document.formCadastro.cnpj.focus();
		    return false;
        }
        return true;
        }
  else
        return false;
  } 

function validaSenha(senha) {
	x = senha.length;
	if (x < 6) {
		alert("A senha deve ter no mínimo 6 caracteres");
		document.getElementById("senha").focus();
		return false;
	}
}

function deletar(table,id) {
	if (confirm("Deseja mesmo apagar o registro "+id+" do cadastro de "+table+" ?")) {
		location.href="?id="+id+"&op=deletar&table="+table;				
	}
}

function busca(table) {

    document.getElementById('novabusca').style.display = "block";

}

function fechar() {
    document.getElementById('novabusca').style.display = "none";

}

function cadastra(cad1, cad2) {

    window.open("janela.php?table="+cad1,"cadastros","width=900px,height=500px,scrolling=1");

}

function abre(video) {
    window.open("video.php?codigo="+video,"videos","width=400px,height=500px");
}

// --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
// --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---

// onKeyPress="return formata(this, '##/##/####', event)"
function formata(objeto, mask, evt) {
 
	var LetrasU = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
	var LetrasL = 'abcdefghijklmnopqrstuvwxyz';
	var Letras  = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
	var Numeros = '0123456789';
	var Fixos  = '().-:/ ';
	var Charset = " !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_/`abcdefghijklmnopqrstuvwxyz{|}~";

	evt = (evt) ? evt : (window.event) ? window.event : "";
	var value = objeto.value;
	
	if (evt) {
		var ntecla = (evt.which) ? evt.which : evt.keyCode;
		tecla = Charset.substr(ntecla - 32, 1);
		if (ntecla < 32)
			return true;
		
		var tamanho = value.length;
		
		if (tamanho >= mask.length)
			return false;
		
		var pos = mask.substr(tamanho,1);
		while (Fixos.indexOf(pos) != -1) {
			value += pos;
			tamanho = value.length;

			if (tamanho >= mask.length)
				return false;
			pos = mask.substr(tamanho,1);
		}
		
		switch (pos) {
			case '#' : if (Numeros.indexOf(tecla) == -1) return false; break;
			case 'A' : if (LetrasU.indexOf(tecla) == -1) return false; break;
			case 'a' : if (LetrasL.indexOf(tecla) == -1) return false; break;
			case 'Z' : if (Letras.indexOf(tecla) == -1) return false; break;
			case '*' : objeto.value = value; return true; break;
			default : return false; break;
		}
	}
	
	objeto.value = value;
	return true;
}

// --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
// --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---

//onkeypress="reais(this,5,event)" onkeydown="backspace(this,event)"
documentall = document.all;

function formatamoney(c) {
	var t = this;
	if(c == undefined)
		c = 2;		
	
	var p, d = (t=t.split("."))[1].substr(0, c);
	
	for(p = (t=t[0]).length; (p-=3) >= 1;) {
		t = t.substr(0,p) + "." + t.substr(p);
	}
	
	//return t+","+d+Array(c+1-d.length).join(0);
	return t+"."+d+Array(c+1-d.length).join(0);
}

String.prototype.formatCurrency=formatamoney

function demaskvalue(valor, currency){
/*
* Se currency é false, retorna o valor sem apenas com os números. Se é true, os dois últimos caracteres são considerados as 
* casas decimais
*/
	var val2 = '';
	var strCheck = '0123456789';
	var len = valor.length;

	if (len== 0){
		return 0.00;
	}

	if (currency ==true){	
		/* Elimina os zeros à esquerda 
		* a variável  <i> passa a ser a localização do primeiro caractere após os zeros e 
		* val2 contém os caracteres (descontando os zeros à esquerda)
		*/
		
		for(var i = 0; i < len; i++)
			if ((valor.charAt(i) != '0') && (valor.charAt(i) != ',')) break;
		
		for(; i < len; i++){
			if (strCheck.indexOf(valor.charAt(i))!=-1) val2+= valor.charAt(i);
		}

		if(val2.length==0) return "0.00";
		if (val2.length==1)return "0.0" + val2;
		if (val2.length==2)return "0." + val2;
		
		var parte1 = val2.substring(0,val2.length-2);
		var parte2 = val2.substring(val2.length-2);
		var returnvalue = parte1 + "." + parte2;
		return returnvalue;
		
	}
	else{
		/* currency é false: retornamos os valores COM os zeros à esquerda, 
		* sem considerar os últimos 2 algarismos como casas decimais 
		*/
		val3 = "";
		for(var k=0; k < len; k++){
			if (strCheck.indexOf(valor.charAt(k))!=-1)
				val3+= valor.charAt(k);
		}
		
		return val3;
	}

}

function backspace(obj,event){
/*
Essa função basicamente altera o  backspace nos input com máscara reais para os navegadores IE e opera.
O IE não detecta o keycode 8 no evento keypress, por isso, tratamos no keydown.
Como o opera suporta o infame document.all, tratamos dele na mesma parte do código.
*/

var whichCode = (window.Event) ? event.which : event.keyCode;
if (whichCode == 8 && documentall) {	
	var valor = obj.value;
	var x = valor.substring(0,valor.length-1);
	var y = demaskvalue(x,true).formatCurrency();

	obj.value =""; //necessário para o opera
	obj.value += y;
	
	if (event.preventDefault){ //standart browsers
			event.preventDefault();
		}else{ // internet explorer
			event.returnValue = false;
	}
	return false;

	}// end if		
}// end backspace


function soNumeros(dom){
	dom.value=dom.value.replace(/\D/g,'');
}
