// **********************************************************
// *   Brunatha Stúdio										*	  
// **********************************************************
// *														*
// *   Programador responsável:	Luis Vagner B. Costa		*
// *   Desenvolvido em: 		28/01/2010					*
// *   Alterado em:	 			28/01/2010					*
// *														*
// * ********************************************************
// *   Descrição : Arquivos de Funções JavaScript			*
// **********************************************************


//-------------------------------------------------------------------------------- 
//  FUNÇÃO PARA VALIDAÇÃO GENÉRICA DE CAMPOS DO FORM 
//  Obs: Para campos obrigatórios basta colocar o atributo 
//  errorMsg="É obrigatório preencher o campo: "
//-------------------------------------------------------------------------------- 
function validate() { 
  var str = ""; 
  var elements = document.getElementsByTagName('*'); // "pega" todos os elementos da página 
  err_focus=0; // zera variavel que verifica o primeiro erro que ocorre 
    
 for(i=0; i<elements.length; i++) {     
 // Valida os elementos input, select e textarea 
   if(elements.item(i).tagName.toLowerCase()=='input' || elements.item(i).tagName.toLowerCase()=='select' || elements.item(i).tagName.toLowerCase()=='textarea'){ 
      if(elements.item(i).getAttribute('errorMsg')){       
            if(elements.item(i).value.length == 0 || elements.item(i).value == "0" || elements.item(i).selectedIndex == 0) {   
                str += elements.item(i).getAttribute('errorMsg')+ elements.item(i).getAttribute('campo')+ "\n"; 
                elements.item(i).style.background = "#FFCC00"; 
                err_focus++;
                if (err_focus==1){field_focus = i;} // serve para colocar o foco no primeiro erro que ocorrer 
           }else{       
               if(elements.item(i).type.toLowerCase()=='text' || elements.item(i).type.toLowerCase()=='select-one' || elements.item(i).type.toLowerCase()=='textarea'){    				//->Este if serve para não deixar o submit branco 
                    elements.item(i).style.background = "white"; 
                }      
          } 
      } 
   }  
 } 

  if (str != "") { 
     // Não submete o form 
     alert("ALERTA DE ERRO!!\n\n" +str);  
     elements.item(field_focus).focus(); 
     return false; 
  }else{
        return true;
  }
   
}


//-> Desabilita o Botão de Envio para evitar duplicidade 
function disableSubmit(theform){ 
 if (document.all || document.getElementById) { 
   for (i = 0; i < theform.length; i++) { 
       var tempobj = theform.elements[i]; 
       if (tempobj.type.toLowerCase() == "submit" || tempobj.type.toLowerCase() == "reset"){ 
          tempobj.style.cssText = 'font-size:10px; color:#666666;'; 
          tempobj.value='Aguarde...'; 
          tempobj.disabled = true; 
       }     
   } 
 } 
} 


//-------------------------------------------------------------------------------- 
//	CRIA A MASCARA E VALIDA PARA APENAS NÚMEROS OS CAMPOS DE TELEFONE
//-------------------------------------------------------------------------------- 
//onBlur="valida_telefone(this.tel)"
function valida_telefone(){
    exp = /\(\d{2}\)\ \d{4}\-\d{4}/
    if(!exp.test(form.fone.value)){
        alert('Numero de Telefone Invalido!');
		form.fone.focus();
		form.fone.select();
	}else{
	
	}
}

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 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
}

//-------------------------------------------------------------------------------- 

//-------------------------------------------------------------------------------- 
//	VALIDA CAMPOS DE E-MAIL
//-------------------------------------------------------------------------------- 
function checa_email() {
	var msg_email = "O e-mail informado parece não estar correto.";
	
	if (form.email.value == "") {
		alert("Informe seu e-mail.");
		form.email.focus();
		form.email.select();
		return false;
	} else {
		prim = form.email.value.indexOf("@")
		if(prim < 2) {
			alert(msg_email);
			form.email.focus();
			form.email.select();
			return false;
		}
		if(form.email.value.indexOf("@",prim + 1) != -1) {
			alert(msg_email);
			form.email.focus();
			form.email.select();
			return false;
		}
		if(form.email.value.indexOf(".") < 1) {
			alert(msg_email);
			form.email.focus();
			form.email.select();
			return false;
		}
		if(form.email.value.indexOf(" ") != -1) {
			alert(msg_email);
			form.email.focus();
			form.email.select();
			return false;
		}
		if(form.email.value.indexOf("hotmail.com.br") > 0) {
			alert(msg_email);
			form.email.focus();
			form.email.select();
			return false;
		}
		if(form.email.value.indexOf(".@") > 0) {
			alert(msg_email);
			form.email.focus();
			form.email.select();
			return false;
		}
		if(form.email.value.indexOf("@.") > 0) {
			alert(msg_email);
			form.email.focus();
			form.email.select();
			return false;
		}
		if(form.email.value.indexOf(".com.br.") > 0) {
			alert(msg_email);
			form.email.focus();
			form.email.select();
			return false;
		}
		if(form.email.value.indexOf("/") > 0) {
			alert(msg_email);
			form.email.focus();
			form.email.select();
			return false;
		}
		if(form.email.value.indexOf("[") > 0) {
			alert(msg_email);
			form.email.focus();
			form.email.select();
			return false;
		}
		if(form.email.value.indexOf("]") > 0) {
			alert(msg_email);
			form.email.focus();
			form.email.select();
			return false;
		}
		if(form.email.value.indexOf("(") > 0) {
			alert(msg_email);
			form.email.focus();
			form.email.select();
			return false;
		}
		if(form.email.value.indexOf(")") > 0) {
			alert(msg_email);
			form.email.focus();
			form.email.select();
			return false;
		}
		if(form.email.value.indexOf("..") > 0) {
			alert(msg_email);
			form.email.focus();
			form.email.select();
			return false;
		}
	}
		return true;
}
//-------------------------------------------------------------------------------- 

//-------------------------------------------------------------------------------- 
//  FUNÇÃO RESPONSAVEL PARA MOSTRAR E OCULTAR OS PARAMETROS DA LISTAGEM 
//-------------------------------------------------------------------------------- 
function mostraEsconde (qual) {
 if (document.getElementById(qual).style.display == "none") {
   document.getElementById(qual).style.display= "";
 }
 else {
   document.getElementById(qual).style.display = "none";
 }
}
//-------------------------------------------------------------------------------- 



//-------------------------------------------------------------------------------- 
//  FUNÇÃO PARA CRIAR AS MASCARAS NOS CAMPOS
//-------------------------------------------------------------------------------- 
//	EXEMPLO DE USO:
//	<input name="data" maxlength="10" onkeyup="AplicaMascara('XX/XX/XXXX', this);" type="text" /> 
//	<input name="hora" maxlength="8" onkeyup="AplicaMascara('XX:XX:XX', this);" type="text" /> 
//	<input name="cep" onkeyup="AplicaMascara('XXXX-XXX', this);" type="text" /> 
//	<input name="tel" onkeyup="AplicaMascara('(XX)XXXX-XXXX', this);" type="text" /> 
//	<input name="cpf" onkeyup="AplicaMascara('XXX.XXX.XXX-XX', this);" type="text" /> 
//--------------------------------------------------------------------------------

function AplicaMascara(Mascara, elemento){
	    
    // Seta o elemento
    var elemento = (elemento) ? elemento : document.getElementById(elemento); 
    if(!elemento) return false;
    
    // Método que busca um determinado caractere ou string dentro de uma Array
    function in_array( oque, onde ){
            for(var i = 0 ; i <onde.length; i++){
            if(oque == onde[i]){
                return true;
            }
        }
        return false;
    }
    // Informa o array com todos os caracteres que podem ser considerados caracteres de mascara
    var SpecialChars = [':', '-', '.', '(',')', '/', ',', '_'];
    var oValue = elemento.value;
    var novo_valor = '';
    for( i = 0 ; i <oValue.length; i++){
        //Recebe o caractere de mascara atual
        var nowMask = Mascara.charAt(i);
        //Recebe o caractere do campo atual
        var nowLetter = oValue.charAt(i);
        //Aplica a masca
        if(in_array(nowMask, SpecialChars) == true && nowLetter != nowMask){
            novo_valor +=  nowMask + '' + nowLetter;
        } else {
            novo_valor += nowLetter;
        }
        // Remove regras duplicadas
        var DuplicatedMasks = nowMask+''+nowMask;
        while (novo_valor.indexOf(DuplicatedMasks)>= 0) {
         novo_valor = novo_valor.replace(DuplicatedMasks, nowMask);
        }
    }
	// Retorna o valor do elemento com seu novo valor
    elemento.value = novo_valor;
    
}

//-------------------------------------------------------------------------------- 

/*
// Modo de utilizacao: <input type="text" name="cep" onKeyPress="MascaraCep(form1.cep);" maxlength="10" onBlur="ValidaCep(form1.cep)">
// 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 de data formato mysql
function MascaraDataSQL(data){
    if(mascaraInteiro(data)==false){
        event.returnValue = false;
    }    
    return formataCampo(data, '0000-00-00', event);
}
 
//adiciona mascara IP
function MascaraIP(ip){
    if(mascaraInteiro(ip)==false){
        event.returnValue = false;
    }    
    return formataCampo(ip, '000.000.000.000', 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 documentos
function ValidaDocs(doc){
    exp = /^[a-zA-Z0-9-_\.]+\.(pdf|txt|doc|xls|ppt)$/
    if(!exp.test(doc.value))
        alert('Documento Invalido!');        
}
 
//valida imagens
function ValidaImg(img){
    exp = /^[a-zA-Z0-9-_\.]+\.(jpg|gif|png)$/
    if(!exp.test(img.value))
        alert('Imagem Invalida!');        
}
 
//valida ip
function ValidaIp(ip){
    exp = /^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})$/
    if(!exp.test(ip.value))
        alert('Endereço IP Invalido!');        
}
 
//valida data mysql
function ValidaDataSQL(sql){
    exp = /^\d{4}-(0[0-9]|1[0,1,2])-([0,1,2][0-9]|3[0,1])$/
    if(!exp.test(sql.value))
        alert('Endereço IP Invalido!');        
}

*/


//valida data
function ValidaData(data){
    exp = /^((0[1-9]|[12]\d)\/(0[1-9]|1[0-2])|30\/(0[13-9]|1[0-2])|31\/(0[13578]|1[02]))\/\d{4}$/
    if(!exp.test(data.value)){
        alert('Data Invalida!'); 
		data.focus();
		data.select();
		return false;
	}
	return true;
}


/*
 
//valida dígito
function ValidaDigito(digito){
    exp = /^\d+$/
    if(!exp.test(digito.value))
        alert('Dígito Invalido!');            
}
 
//valida email
function ValidaEmail(email){
    exp = /^[\w-]+(\.[\w-]+)*@(([\w-]{2,63}\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/
    if(!exp.test(email.value))
        alert('E-mail Invalido!');            
}
 
//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!');
 
}
 
function ValidaDataHora(data){
exp = /^((0[1-9]|[12]\d)\/(0[1-9]|1[0-2])|30\/(0[13-9]|1[0-2])|31\/(0[13578]|1[02]))\/\d{4} \d{2}:\d{2}$/
if(!exp.test(data.value))
alert('Data Invalida!');
}
 
 
//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;
    }
}
*/
