//adiciona mascara de cep
function MascaraCep(cep){
   if (cep.value!=''){ 
	    if(mascaraInteiro(cep)==false){
	        event.returnValue = false;
	    }  
	    return formataCampo(cep, '00.000-000', event);
	}
}

 //adiciona mascara ao telefone
function MascaraTelefone(tel){  
	if (tel.value!=''){  
	    if(mascaraInteiro(tel)==false){
	        event.returnValue = false;
	    }    
	    return formataCampo(tel, '(00) 0000-0000', event);
	 }
}

//adiciona mascara ao CPF
function MascaraCPF(cpf){
    if (cpf.value!=''){ 
	    if(mascaraInteiro(cpf)==false){
	        event.returnValue = false;
	    }    
	    return formataCampo(cpf, '000.000.000-00', event);
	 }   
}

//adiciona mascara de cnpj
function MascaraCNPJ(cnpj){
    if (cnpj.value!=''){ 
	    if(mascaraInteiro(cnpj)==false){
	        event.returnValue = false;
	    }    
	    return formataCampo(cnpj, '00.000.000/0000-00', event);
	} 
}
 
 
 //adiciona mascara de data
function MascaraData(data){
    if (data.value!=''){ 
	    if(mascaraInteiro(data)==false){
	        event.returnValue = false;
	    }    
	    return formataCampo(data, '00/00/0000', event);
	 }   
}
 
 //valida telefone
function ValidaTelefone(tel){
	if (tel.value!=''){
	    exp = /\(\d{2}\)\ \d{4}\-\d{4}/
	    if(!exp.test(tel.value)){
	        tel.value='';
	        alert('Numero de Telefone Invalido!');
	     }
	 }       
}

//valida CEP
function ValidaCep(cep){
    if (cep.value!=''){ 
	    exp = /\d{2}\.\d{3}\-\d{3}/
	    if(!exp.test(cep.value)){
	        cep.value='';
	        alert('Numero de Cep Invalido!');
	     }
	}            
}	

//valida data
function ValidaData(data){
    if (data.value!=''){ 
	    exp = /\d{2}\/\d{2}\/\d{4}/
	    if(!exp.test(data.value)){
	        data.value='';
	        alert('Data Invalida!');
	     }
	 }            
}

//valida o CPF digitado
function ValidarCPF(Objcpf){
    var cpf = Objcpf.value;
    if (cpf!=''){ 
	    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){    
	        Objcpf.value='';
	        alert('CPF Invalido!');
	     }
	 }        
}

//valida o CNPJ digitado
function ValidarCNPJ(ObjCnpj){
    var cnpj = ObjCnpj.value;
    if (cnpj!=''){
	    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){    
	        ObjCnpj.value='';
	        alert('CNPJ Invalido!');
	    }
	}
        
}

//valida inteiro. menor que 999999999
function ValidaInteiro(numInt){
    if (numInt.value!=''){ 
	    if(numInt.value>999999999){
	        numInt.value='';
	        alert('Número inteiro Invalido! Deve ser menor que 999.999.999');
	     }
	}            
}	


function mascaraInteiro(event){
       
    var key;
	
	if(window.event) {
		// for IE, e.keyCode or window.event.keyCode can be used
		key = event.keyCode;
	}
	else if(event.which) {
		// netscape
		key = event.which; 
	}
	
	//tecla back space
	if (key==8)
		return true;
		
	//teclas alfabéticas	
	if (key < 48 || key > 57){
       
       event.returnValue = false;
               
 	   return false;
    }
    
    return true;
}

//formata de forma generica os campos
function formataCampo(campo, Mascara, evento) { 
    var boleanoMascara; 
    if (evento!=null){
	    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; 
	    }
	 }
}


//formata de forma generica os campos
function formataCampoMaxLength(campo, Mascara, evento, tamanho) { 
    var boleanoMascara; 
    if (evento!=null){
	    var Digitato = evento.keyCode;
	    exp = /\-|\.|\/|\(|\)| /g
	    campoSoNumeros = campo.value.toString().replace( exp, "" ); 
	    
	    if (campoSoNumeros.length < tamanho){
	   
		    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; 
		    }
		 }else{
		 	campo.value = campo.value.substr(0, campo.value.length -1);
		 	return true;
		 }
		 
	 }
}


//---------- Formatacao utilizada apenas nos componentes CAED, no carregamento da página ------------


function MascaraCepLoad(cep){
   if (cep.value!=''){ 
	    return formataCampoLoad(cep, '00.000-000');
	}
}

 //adiciona mascara ao telefone
function MascaraTelefoneLoad(tel){  
	if (tel.value!=''){  
	    return formataCampoLoad(tel, '(00) 0000-0000');
	 }
}

//adiciona mascara ao CPF
function MascaraCPFLoad(cpf){
    if (cpf.value!=''){ 
	    return formataCampoLoad(cpf, '000.000.000-00');
	 }   
}

//adiciona mascara de cnpj
function MascaraCNPJLoad(cnpj){
    if (cnpj.value!=''){ 
	    return formataCampoLoad(cnpj, '00.000.000/0000-00');
	} 
}
 
 //adiciona mascara de data
function MascaraDataLoad(data){
    if (data.value!=''){ 
	    return formataCampoLoad(data, '00/00/0000');
	 }   
}

//formata de forma generica os campos
function formataCampoLoad(campo, Mascara) { 
    var boleanoMascara; 
    
	    exp = /\-|\.|\/|\(|\)| /g
	    campoSoNumeros = campo.value.toString().replace( exp, "" ); 
	   
	    var posicaoCampo = 0;     
	    var NovoValorCampo="";
	    var TamanhoMascara = campoSoNumeros.length;; 
	    
        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; 
}

function currencyFormat(fld, milSep, decSep, e, tam) {
  var sep = 0;
  var key = '';
  var i = j = 0;
  var len = len2 = 0;
  var strCheck = '0123456789';
  var aux = aux2 = '';
  
  if (fld.value.length < tam){
//  var whichCode = (window.Event) ? e.which : e.keyCode;
  var whichCode = (e.which) ? e.which : e.keyCode;


  if (whichCode == 13) return true;  // Enter
  if (whichCode == 8) return true;  // Delete

  key = String.fromCharCode(whichCode);  // Get key value from key code
  if (strCheck.indexOf(key) == -1) return false;  // Not a valid key
  len = fld.value.length;

  for(i = 0; i < len; i++)
  if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;
  aux = '';
  for(; i < len; i++)
  if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);
  aux += key;
  len = aux.length;
  if (len == 0) fld.value = '';
  if (len == 1) fld.value = '0'+ decSep + '0' + aux;
  if (len == 2) fld.value = '0'+ decSep + aux;
  if (len > 2) {
    aux2 = '';
    for (j = 0, i = len - 3; i >= 0; i--) {
      if (j == 3) {
        aux2 += milSep;
        j = 0;
      }
      aux2 += aux.charAt(i);
      j++;
    }
    fld.value = '';
    len2 = aux2.length;
    for (i = len2 - 1; i >= 0; i--)
    fld.value += aux2.charAt(i);
    fld.value += decSep + aux.substr(len - 2, len);
  }
  }
  return false;
}

 function trim(stringToTrim) {						
     stringToTrim.value = replaceAll(stringToTrim.value, "  "," ");
 }

 function ltrim(stringToTrim) {
	stringToTrim.value = stringToTrim.value.replace(/^\s+/,"");
 }
 
 function rtrim(stringToTrim) {
    stringToTrim.value = stringToTrim.value.replace(/\s+$/,"");
 }
 
 function replaceAll(string, token, newtoken) {
	while (string.indexOf(token) != -1) {
 		string = string.replace(token, newtoken);
	}
	return string;
}