function formataData(obj) {
  if (trim(obj.value)=='') return false;
  var aux = obj.value.split('/');
  var dia = aux[0];
  var mes = aux[1];
  var ano = aux[2];
  if (dia.length<2) dia = '0'+dia;
  if (mes.length<2) mes = '0'+mes;
  if (ano.length==2) {
    if (parseFloat(ano)>40) {
      ano = '19'+ano;
    } else {
      ano = '20'+ano;
    }
  }
  obj.value = dia+'/'+mes+'/'+ano;
}

function incluiPontuacaoCPF(cpf) {
  var ret = '';
  try{
    cpf = cpf.replace(/[^0-9]/g,'');
    while (cpf.length > 11){
      cpf = cpf.substring(0,cpf.length-1);
    }
    for (i=0;i<cpf.length;i++) {
      switch(i) {
        case 3:
        case 6:
          ret += '.'+cpf[i];
          break;
        case 9:
          ret += '-'+cpf[i];
          break;
        default:
          ret += cpf[i];
          break;
      }
    }
    return ret;
  }catch(erro) {loading_start("error",erro,true,true);}
}

/*-----------------------------------------------------------------------
Máscara para o campo data dd/mm/aaaa
Exemplo: <input maxlength="16" name="datahora" onKeyPress="DataHora(event, this)">
-----------------------------------------------------------------------*/
function campo_data(evento, objeto) {
  try {
    if (objeto.maxLength==null || objeto.maxLength==undefined) objeto.maxLength==19; 
    var keypress = evento.keyCode ? evento.keyCode : evento.which ? evento.which : evento.charCode;
  
    campo = eval(objeto);
    if (campo.value == '00/00/0000') campo.value="";
    
    caracteres = '0123456789';
    separacao1 = '/';
    separacao2 = ' ';
    separacao3 = ':';
    conjunto1 = 2;
    conjunto2 = 5;
    conjunto3 = 10;
    conjunto4 = 13;
    conjunto5 = 16;
  
    var vDelete = ((evento.keyCode==46) && (keypress==46));
    var vSetas = (evento.keyCode>=37 && evento.keyCode<=40);
    var vTab = (evento.keyCode==9);
    var vF5 = (evento.keyCode==116); 
    var vBack = (keypress==8);
    
  	if (vDelete || vSetas || vTab || vF5 || vBack) return true;
    if (((caracteres.search(String.fromCharCode(keypress))!=-1)   && campo.value.length < (objeto.maxLength))) {
      
      if (campo.value.length == conjunto1 )
      campo.value = campo.value + separacao1;
      else if (campo.value.length == conjunto2)
      campo.value = campo.value + separacao1;
      else if (campo.value.length == conjunto3)
      campo.value = campo.value + separacao2;
      else if (campo.value.length == conjunto4)
      campo.value = campo.value + separacao3;
      else if (campo.value.length == conjunto5)
      campo.value = campo.value + separacao3;
      return true;
      
    } else {
      if (window.event) window.event.returnValue = false;
      return false;
    }
  }catch(erro) {loading_start("error",erro,true,true);}
}

function so_numeros(campo){
  var valor = campo.value;
  valor = valor.replace(/\D/g,"");
  campo.value = valor;
}

/** ******************
* Função            : campo_hora
* Descrição         : Autoformatação de campo de hora
* Parâmetros        : obj - Objeto que recebrá a hora formatado 00:00
* Retorno           : String
* Data de criação   : 14/02/2008
* Data de alteração : --
* Autor             : Daniel Cassoli
*** ******************/
function campo_hora(obj, valida24) {
  
  if (obj.target || obj.srcElement) {
    var e = obj;
    obj = obj.target;
    if (!obj) obj = obj.srcElement; // P/Funcionar no IE
  } else {
    var e = null;
  }
    
  if (valida24==null||valida24==undefined) valida24 = true;
  valida_numeros(obj);
  
  if (valida24) {
    if (obj.value.length == 1 ) {
      hora = new RegExp("[0-2]");
      while (!obj.value.charAt(obj.value.length-1).match(hora)) {
        if(obj.value.length >= 1) {
          obj.value = obj.value.substring(0,obj.value.length-1);
        } else {
          return false;
        }
      }  
    }
    
    if (obj.value.length == 2 && obj.value > 23) {    
      if(obj.value.length >= 2) {
        obj.value = obj.value.substring(0,obj.value.length-1);
      } else {
        return false;
      }         
    }  
  }
  if (obj.value.length == 2) {
    if (e!=null) {
      if (e.keyCode!=8) {
        obj.value += ":";
      }
    } else {
      obj.value += ":";
    }    
  }
  if (obj.value.length == 4 ) {
    hora3 = new RegExp("[0-5]");
    while (!obj.value.charAt(obj.value.length-1).match(hora3)) {
      if(obj.value.length >= 4) {
        obj.value = obj.value.substring(0,obj.value.length-1);
      } else {
        return false;
      }
    }  
  }  

}

function formataHora(e) {
  obj = e.target; 
  var ret = validaDigNum(e,false,false,false,false);
  if (ret==false) return false;
  if (e.keyCode!=8) campo_hora(obj);
  return true;
}

/** ******************
* Função            : valida_numeros
* Descrição         : Validação de campo numérico
* Parâmetros        : obj - Objeto que contém o valor a ser testado
* Retorno           : String
* Data de criação   : 13/02/2008
* Data de alteração : --
* Autor             : Shiro!
*** ******************/
function valida_numeros(obj) {
  numeros = new RegExp("[0-9]");
  while (!obj.value.charAt(obj.value.length-1).match(numeros)){
    if(obj.value.length >= 1){
      obj.value = obj.value.substring(0,obj.value.length-1);
    } else {
      return false;
    }
  }
  return true;
}

/***********************************************************************************************************************
 * Função : pads_campo_cep Descrição : Autoformatação de campo CEP Parâmetros : obj - Objeto que recebrá o CEP formatado
 * #####-### Retorno : String Data de criação : 08/02/2008 Data de alteração : 13/02/2008 Autor : Shiro! **
 **********************************************************************************************************************/
function campo_cep(obj) {
  try {
    if (valida_numeros(obj)){
      formatar_mascara(obj, "#####-###", "#");
    }
  } catch(erro){loading_start("error",erro,true,true);}
}

function formatar_mascara(cpo, mascara, padrao) {
  var src = cpo;
  var campo = src.value.length;
  var texto = mascara.substring(campo-1);
  if(texto.substring(0,1) != padrao) {
    char_digitado = src.value.substring(campo,campo-1);
    src.value = src.value.substring(0,campo-1)+texto.substring(0,1);
    while(mascara.substring(src.value.length,src.value.length+1) != padrao && mascara.length > src.value.length){
      src.value = src.value+mascara.substring(src.value.length,src.value.length+1);
    }
    src.value += char_digitado;
  }
  submask = mascara;
  while(submask.substring(submask.length-1,submask.length) != padrao){
    submask = submask.substring(0,submask.length-1);
  }
  if (src.value.length == submask.length){
    while (src.value.length < mascara.length){
      src.value += mascara.substring(src.value.length,src.value.length+1);
    }
  }
  if (src.value.length > mascara.length){
    retira = new RegExp(padrao,"g");
    teste = mascara.replace(retira,"");
    itens = teste.split("");
    txt = src.value;
    msk = mascara;
    for (x in itens){
      retira = new RegExp("\\"+itens[x],"g");
      txt = txt.replace(retira,"");
      msk = msk.replace(retira,"");
    }
    txt = txt.substring(0,msk.length);
    txt = txt.split("");
    src.value = "";
    for (x in txt){
      src.value += txt[x];
      formatar_mascara(src, mascara, padrao);
    }
  }
}

function formataTel(tel) {
  if (trim(tel)=='') return '';
  var ret = '';
  ret = '('+tel.substr(0,2)+') ';
  if (tel.length==10) {
    ret += tel.substr(2,4)+'-'+tel.substr(6,4);
  } else {
    ret += tel.substr(2,3)+'-'+tel.substr(5,4);
  }
  return ret;
}

/***********************************************************************************************************************
 * Função : pads_campo_fone Descrição : Autoformatação de campo de telefone Parâmetros : obj - Objeto que recebrá o
 * Número de telefone formatado (##) ####-#### Retorno : String Data de criação : 13/02/2008 Data de alteração : --
 * Autor : Shiro! **
 **********************************************************************************************************************/
function campo_fone(obj) {
  if (valida_numeros(obj)){
    formatar_mascara(obj, "(##) ####-####", "#");
  }
}

/** ************************************************************************************************************************
* Função            : formataCNPJ
* Descrição         : Autoformatação de campo de cpf
* Parâmetros        : e - Ref. Evento KeyPress (event)
* Observação        : A chamada da Função deve ser realizado no return do evento onkeypress
* Retorno           : Boolean
* Data de criação   : 14/04/2009
* Data de alteração : --
* Autor             : Anderson Matuchenko
*** ***********************************************************************************************************************/
function formataCNPJ(e) {  
  var ret = validaDigNum(e,false,false,false);
  if (ret==false) return false;
  if (e.keyCode==8) return true;
  if (e.keyCode==9) return true;
  if (e.keyCode==116) return true;
  if ((e.keyCode>=37) && (e.keyCode<=40)) return true;
  obj = e.target;
  tam = obj.value.length+1;
  ult = obj.value.substring(tam-1,tam);
  if (obj.value.length == 2 || obj.value.length == 6){
    if (ult != "."){
      obj.value = obj.value.substring(0,tam-1)+"."+ult;
    }
  }
  if (obj.value.length == 10){
    if (ult != "/"){
      obj.value = obj.value.substring(0,tam-1)+"/"+ult;
    }
  }
  if (obj.value.length == 15){
    if (ult != "-"){
      obj.value = obj.value.substring(0,tam-1)+"-"+ult;
    }
  }  
  while (obj.value.length > 18){
    obj.value = obj.value.substring(0,obj.value.length-1);
  }
  return true;
}

//Alterar campo texto para maiusculo
function maiuscula(campo) {
  var val = campo.value;
  campo.value = val.toUpperCase();
}

