// Versão 18/03/2008
var AltPressionado = false;
var TabPressionado = false;
function VerificaRetrocessoWebTexto(Controle, Evento) {
  if (!(Controle.readOnly) &&  !(Controle.disabled)) {
    var TeclaAtual = (isMSIExplorer()) ? Evento.keyCode : Evento.which;
    if (TeclaAtual==9) {TabPressionado = true; return false;}
  }
}
function FormatacaoWebTexto(Controle, Evento, Letras, Numeros, Espacos, EspacosEsquerda, CaracteresAceitos, CaracterAcentuado, TipoCaracteres) {
  var TeclaAtual = Evento.keyCode ? Evento.keyCode : Evento.which ? Evento.which : Evento.charCode;
    var TextoAtual = String.fromCharCode(TeclaAtual);
  var DigitacaoValida = false;
  var VrEspacoDuplo = Controle.getAttribute("EspacoDuplo");
  if (VrEspacoDuplo == null) {VrEspacoDuplo = true};
  VrEspacoDuplo = (VrEspacoDuplo = 'false') ? false : true;
  
  if (TabPressionado) {TabPressionado = false; return true;}
  if (AltPressionado) {AltPressionado = false; return true;}  
  if (!VrEspacoDuplo && TextoAtual == ' ' && CaracteresDireita(Controle.value,1) == ' ') {return false};  
  CaracteresAceitos = Trim(CaracteresAceitos);
  if (Controle.readOnly) {return false;}  
  if ((!DigitacaoValida) && (Letras)) {DigitacaoValida = ChecaSeAlfabetico(TextoAtual,CaracterAcentuado);} 
  if ((!DigitacaoValida) && (Numeros)) {DigitacaoValida = ChecaSeNumerico(TextoAtual);} 
  if ((!DigitacaoValida) && (Espacos)) {DigitacaoValida = ChecaSeBranco(TextoAtual);} 
  if ((!DigitacaoValida) && (CaracteresAceitos.length > 0)) {DigitacaoValida = ChecaCustomizado(TextoAtual,CaracteresAceitos);} 
  if (DigitacaoValida && ChecaSeBranco(TextoAtual)) {DigitacaoValida = (EspacosEsquerda || (ChecaSeBranco(TextoAtual) && Controle.value != ""));}
  if (DigitacaoValida) {  
    if (isMSIExplorer()){	
      if (TipoCaracteres == 2) {Evento.keyCode = TextoAtual.toUpperCase().charCodeAt(0)}  // Maiúsculo
	  if (TipoCaracteres == 3) {Evento.keyCode = TextoAtual.toLowerCase().charCodeAt(0)}  // Minúsculo
	  return true;
    } else {
	  if (TipoCaracteres == 2) { Controle.value = Controle.value.toUpperCase() + TextoAtual.toUpperCase(); } // Maiúsculo 
	  if (TipoCaracteres == 3) { Controle.value = Controle.value.toLowerCase() + TextoAtual.toLowerCase(); } // Minúsculo 
	  return !((TipoCaracteres == 2) || (TipoCaracteres == 3)); // retornar false para os navegadores <> de IE, para que a tecla pressionada seja desativada no caso de formatação de caracteres maiúsculos/minúsculos.
    }    
  }
  else {
    return !(isMSIExplorer()); // Se o navegador for <> IE, retornar true para que outras funcionalidades do teclado como backspace, del e etc. continuem ativadas (no caso de digitação inválida).
  }
}
