//----------------------------------------------------------------------------------------
//Formata CNPJ
//----------------------------------------------------------------------------------------
function FormataCNPJ(Campo, teclapres){

   if(window.event){
    var tecla = teclapres.keyCode;
   }else  tecla = teclapres.which;

   var vr = new String(Campo.value);
   vr = vr.replace(".", "");
   vr = vr.replace(".", "");
   vr = vr.replace("/", "");
   vr = vr.replace("-", "");

   tam = vr.length + 1;

   
   if (tecla != 9 && tecla != 8){
      if (tam > 2 && tam < 6)
         Campo.value = vr.substr(0, 2) + '.' + vr.substr(2, tam);
      if (tam >= 6 && tam < 9)
         Campo.value = vr.substr(0,2) + '.' + vr.substr(2,3) + '.' + vr.substr(5,tam-5);
      if (tam >= 9 && tam < 13)
         Campo.value = vr.substr(0,2) + '.' + vr.substr(2,3) + '.' + vr.substr(5,3) + '/' + vr.substr(8,tam-8);
      if (tam >= 13 && tam < 15)
         Campo.value = vr.substr(0,2) + '.' + vr.substr(2,3) + '.' + vr.substr(5,3) + '/' + vr.substr(8,4)+ '-' + vr.substr(12,tam-12);
      }
}

//----------------------------------------------------------------------------------------
//Verifica se é Número
//----------------------------------------------------------------------------------------
function eNumeroStr(valor) {
  var numeros = "0123456789";
  if (valor == "")
    return false;
  for(var i=0;i<=valor.length-1;i++){
    if (valor.substr(i,1) != numeros.substr(numeros.indexOf(valor.substr(i,1)),1)){
      return false;
    }
  }
  return true;
}

//----------------------------------------------------------------------------------------
//Verifica se é um Número Monetario
//----------------------------------------------------------------------------------------
function eMonetarioStr(valor) {
  var numeros = "0123456789.,";
  if (valor == "")
    return false;
  for(var i=0;i<=valor.length-1;i++){
    if (valor.substr(i,1) != numeros.substr(numeros.indexOf(valor.substr(i,1)),1)){
      return false;
    }
  }
  return true;
}

//----------------------------------------------------------------------------------------
//Retorna data atual no formato dd/mm/yyyy
//----------------------------------------------------------------------------------------
function getDataAtual(){
    dataAtual = new Date();
    return (getDiaAtual()+"/"+getMesAtual()+"/"+dataAtual.getFullYear());
}

//retorna dia no formato dd
function getDiaAtual(){
    dataAtual = new Date();
    if(dataAtual.getDate() < 10){
        return '0' + dataAtual.getDate();
    }else{
        return dataAtual.getDate();
    }
}

//retorna mes no formato mm
function getMesAtual(){
    dataAtual = new Date();
    if((dataAtual.getMonth()+1) < 10){
        return '0' + (dataAtual.getMonth()+1);
    }else{
        return (dataAtual.getMonth()+1);
    }
}

//----------------------------------------------------------------------------------------
//funções auxiliares
//----------------------------------------------------------------------------------------

function isAlphaMa(CodeChMa){ return( (CodeChMa >= 65) && (CodeChMa <= 90) ); }

function isAlphaMi(CodeChMi){ return( (CodeChMi >= 97) && (CodeChMi <= 122) ); }

function isAlpha(CodeChA){ return( isAlphaMa(CodeChA) || isAlphaMi(CodeChA) ); }

function isNum(CodeChN){ return( (CodeChN >= 48) && (CodeChN <= 57) ); }

function isAlphaNum(CodeChAN){ return( isAlpha(CodeChAN) || isNum(CodeChAN) ); }

function toMa(CodeChtMa){
	if(isAlphaMi(CodeChtMa)) return(CodeChtMa - 32);
	else return(CodeChtMa);
}
function toMi(CodeChtMi){
	if(isAlphaMa(CodeChtMi)) return(CodeChtMi + 32);
	else return(CodeChtMi);
}

/*
0	Dígito (de 0 a 9).
A	Letra (A a Z) maiúscula
a	Letra (a a z) minúscula
?	Letra ou dígito
*	Qualquer coisa de uma posição
Exemplos: 
Data: 00/00/0000
CEP: 00.000-000
Placa: AAA-0000
UF: AA
Exemplo Hora: onkeypress='return(formataCampo(this, event, "00:00"));'
*/
function formataCampo(campo, evento, mask){
	var caracteresmask = "0Aa?*";
 	var campo_ok  = false;
	
	// se o usuário ainda pode digitar
	if(campo.value.length < mask.length) {
		// verifica se o caractere da máscara esta nas opções possíveis
		// se não tiver acrescenta ao campo
		if(caracteresmask.indexOf(mask.charAt(campo.value.length)) == -1){
			campo.value += mask.charAt(campo.value.length);
		} 
		// verifica as opções possíveis
		switch(mask.charAt(campo.value.length)) {
			case '0' :
				campo_ok = isNum(evento.keyCode);
				break;
			case 'A':
				if(isAlpha(evento.keyCode)){
					campo_ok = true;
					if(	!isAlphaMa(evento.keyCode)){
						evento.keyCode = toMa(evento.keyCode);
					}
				}
				else campo_ok = false;
				break;
			case 'a':
				if(isAlpha(evento.keyCode)){
					campo_ok = true;
					if(!isAlphaMi(evento.keyCode)){
						evento.keyCode = toMi(evento.keyCode);
					}
				}
				else campo_ok = false;
				break;
			case '?':
				campo_ok = isAlphaNum(evento.keyCode);
				break;
			case '*':
				campo_ok = true;
				break;
		}
	}
	return(campo_ok);
}

//----------------------------------------------------------------------------------------
//Formata valor monetário com decimais
//----------------------------------------------------------------------------------------

function formataValorMonetario(campooriginal,decimais)
{
  var posicaoPontoDecimal;
  var campo = '';
  var resultado = '';
  var pos,sep,dec;

//Retira possiveis separadores de milhar
  for (pos=0; pos < campooriginal.value.length; pos ++)
  {
    if (campooriginal.value.charAt(pos)!='.')
        campo = campo + campooriginal.value.charAt(pos);
  }     

//Formata valor monetário com decimais
  posicaoPontoDecimal = campo.indexOf(',');
  if (posicaoPontoDecimal != -1)
   {
      sep = 0;
      for (pos=posicaoPontoDecimal-1;pos >= 0;pos--)
      {
        sep ++;
        if (sep > 3)
        {
           resultado = '.' + resultado;
           sep = 1;
        }

        resultado = campo.charAt(pos) + resultado;   
      }

      // Trata parte decimal
      if (parseInt(decimais) > 0 )
      {
         resultado = resultado + ',';
      
         pos=posicaoPontoDecimal+1;
         for (dec = 1;dec <= parseInt(decimais); dec++)
         {
           if (pos < campo.length)
           {
              resultado = resultado + campo.charAt(pos);
              pos++;
           }
           else
              resultado = resultado + '0';   
         }

      } // trata decimais
   }
   // Trata valor monetário sem decimais
   else
   {
      sep = 0;
      for (pos=campo.length-1;pos >= 0;pos--)
      {
        sep ++;
        if (sep > 3)
        {
           resultado = '.' + resultado;
           sep = 1;
        }
        resultado = campo.charAt(pos) + resultado;   
      }
      // Trata parte decimal
      if (parseInt(decimais) > 0 )
      {
         resultado = resultado + ',';
         for (dec = 1;dec <= parseInt(decimais); dec++)
         {
              resultado = resultado + '0';   
         }
      } // trata decimais
   }

   if ((parseInt(decimais)+1) == resultado.length){
       resultado = '0' + resultado;
   }   
   campooriginal.value = resultado;
}

//----------------------------------------------------------------------------------------
//Retorna o valor passado por parametro formatado em valor monetario
//----------------------------------------------------------------------------------------

function formataValorMonetario2(valor,decimais)
{
  var posicaoPontoDecimal;
  var campo = '';
  var resultado = '';
  var pos,sep,dec;

//Retira possiveis separadores de milhar
  for (pos=0; pos < valor.length; pos ++)
  {
    if (valor.charAt(pos)!='.')
        campo = campo + valor.charAt(pos);
  }     

//Formata valor monetário com decimais
  posicaoPontoDecimal = campo.indexOf(',');
  if (posicaoPontoDecimal != -1)
   {
      sep = 0;
      for (pos=posicaoPontoDecimal-1;pos >= 0;pos--)
      {
        sep ++;
        if (sep > 3)
        {
           resultado = '.' + resultado;
           sep = 1;
        }

        resultado = campo.charAt(pos) + resultado;   
      }

      // Trata parte decimal
      if (parseInt(decimais) > 0 )
      {
         resultado = resultado + ',';
      
         pos=posicaoPontoDecimal+1;
         for (dec = 1;dec <= parseInt(decimais); dec++)
         {
           if (pos < campo.length)
           {
              resultado = resultado + campo.charAt(pos);
              pos++;
           }
           else
              resultado = resultado + '0';   
         }

      } // trata decimais
   }
   // Trata valor monetário sem decimais
   else
   {
      sep = 0;
      for (pos=campo.length-1;pos >= 0;pos--)
      {
        sep ++;
        if (sep > 3)
        {
           resultado = '.' + resultado;
           sep = 1;
        }
        resultado = campo.charAt(pos) + resultado;   
      }
      // Trata parte decimal
      if (parseInt(decimais) > 0 )
      {
         resultado = resultado + ',';
         for (dec = 1;dec <= parseInt(decimais); dec++)
         {
              resultado = resultado + '0';   
         }
      } // trata decimais
   }

   if ((parseInt(decimais)+1) == resultado.length){
       resultado = '0' + resultado;
   }   
   return resultado;
}

function abrirJanela(url, largura, altura) { 
    window.open(url,'popup','width='+largura+',height='+altura+',top='+40+',left='+50+',status=no,toolbar=no,scrollbars=yes');
    
    //Instrução que habilita a barra de status da tela para facilitar na depuração do JS
//	window.open(link,'popup','width='+620+',height='+510+',top='+ch+',left='+cw+',status=yes');
}

function abrirLov(altura, largura,campos) { 
    link = 'lovs/lov.php?evento=busca'+campos; 
    window.open(link,'popup','width='+largura+',height='+altura+',top='+40+',left='+50+',status=no');
    
    //Instrução que habilita a barra de status da tela para facilitar na depuração do JS
//	window.open(link,'popup','width='+620+',height='+510+',top='+ch+',left='+cw+',status=yes');
}


// MAXIMA TEXT AREA
function maxTextArea(txarea, n, Entrada, Saida)
{ 
	total = n; 
	tam = txarea.value.length; 
	str=""; 
	str=str+tam; 
	Entrada.innerHTML = str; 
	Saida.innerHTML = total - str;
	if (tam > total)
	{ 
		aux = txarea.value; 
		txarea.value = aux.substring(0,total);
		Entrada.innerHTML = total
		Saida.innerHTML = 0 
	} 
}