//Função que faz formatação de campos de Moedas
//Para usar coloque esta propriedade no seu campo
//onKeyPress="return(currencyFormat(this,',','.',event))"
//Obs: Perceba que na linha acima ele passa como formatacao (,)Virgula e (.)Ponto. Se quiser pode mudar tudo para ponto ou tudo para virgula ou entao deixar vazio
function FormataMoeda(fld, milSep, decSep, e) {
 var sep = 0;
 var key = '';
 var i = j = 0;
 var len = len2 = 0;
 var strCheck = '0123456789';
 var aux = aux2 = '';
 var whichCode = (window.Event) ? e.which : e.keyCode;
  if (whichCode < 32) return true; // Enter
 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;
 }
//Fim da Função FormataMoeda

//MÁSCARA DE VALORES CAMPOS
function txtBoxFormat(objeto, sMask, evtKeyPress) {
    var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;
  if(document.all) { // Internet Explorer
    nTecla = evtKeyPress.keyCode;
  }else if(document.layers) { // Nestcape
    nTecla = evtKeyPress.which;
  }else{
    nTecla = evtKeyPress.which;
    if (nTecla == 8 || nTecla == 9) {
        return true;
    }
}

    sValue = objeto.value;

    // Limpa todos os caracteres de formatação que
    // já estiverem no campo.
    sValue = sValue.toString().replace( "-", "" );
    sValue = sValue.toString().replace( "-", "" );
    sValue = sValue.toString().replace( ".", "" );
    sValue = sValue.toString().replace( ".", "" );
    sValue = sValue.toString().replace( "/", "" );
    sValue = sValue.toString().replace( "/", "" );
    sValue = sValue.toString().replace( ":", "" );
    sValue = sValue.toString().replace( ":", "" );
    sValue = sValue.toString().replace( "(", "" );
    sValue = sValue.toString().replace( "(", "" );
    sValue = sValue.toString().replace( ")", "" );
    sValue = sValue.toString().replace( ")", "" );
    sValue = sValue.toString().replace( " ", "" );
    sValue = sValue.toString().replace( " ", "" );
    fldLen = sValue.length;
    mskLen = sMask.length;

    i = 0;
    nCount = 0;
    sCod = "";
    mskLen = fldLen;

    while (i <= mskLen) {
      bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/") || (sMask.charAt(i) == ":"))
      bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))

      if (bolMask) {
        sCod += sMask.charAt(i);
        mskLen++; }
      else {
        sCod += sValue.charAt(nCount);
        nCount++;
      }

      i++;
    }

    objeto.value = sCod;

    if (nTecla != 8 || nTecla != 9) { // backspace e  tab
      if (sMask.charAt(i-1) == "9") { // apenas números...
        return ((nTecla > 47) && (nTecla < 58)); 
      }else{ // qualquer caracter...
        return true;
      } 
    }else{
      return true;
    }
  }
  
var reDigits = /^\d+$/;

function doDigits(pStr){
  if (reDigits.test(pStr)) {
    alert(pStr + " contém apenas dígitos.");
  } else if (pStr != null && pStr != "") {
    alert(pStr + " NÃO contém apenas dígitos.");
  }
}

var reDecimalPt = /^[+-]?((\d+|\d{1,3}(\.\d{3})+)(\,\d*)?|\,\d+)$/;
var reDecimalEn = /^[+-]?((\d+|\d{1,3}(\,\d{3})+)(\.\d*)?|\.\d+)$/;
var reDecimal = reDecimalPt;

function doDecimal(pStr, pLang){
  charDec = ( pLang != "En"? ",": "." );
  eval("reDecimal = reDecimal" + pLang);
  if (reDecimal.test(pStr)) {
    pos = pStr.indexOf(charDec);
    decs = pos == -1? 0: pStr.length - pos - 1;
    alert(pStr + " é um float válido (" + pLang + ") com " + decs + " decimais.");
  } else if (pStr != null && pStr != "") {
    alert(pStr + " NÃO é um float válido.");
  }
} // doDecimal

var reMoeda = /^\d{1,3}(\.\d{3})*\,\d{2}$/;

function doMoeda(pStr){
  if (reMoeda.test(pStr)) {
    alert(pStr + " é um valor financeiro válido.");
  } else if (pStr != null && pStr != "") {
    alert(pStr + " NÃO é um valor financeiro válido.");
  }
}

var reDate1 = /^\d{1,2}\/\d{1,2}\/\d{1,4}$/;
var reDate2 = /^[0-3]?\d\/[01]?\d\/(\d{2}|\d{4})$/;
var reDate3 = /^(0?[1-9]|[12]\d|3[01])\/(0?[1-9]|1[0-2])\/(19|20)?\d{2}$/;
var reDate4 = /^((0?[1-9]|[12]\d)\/(0?[1-9]|1[0-2])|30\/(0?[13-9]|1[0-2])|31\/(0?[13578]|1[02]))\/(19|20)?\d{2}$/;
var reDate5 = /^((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}$/;
var reDate = reDate4;

function doDate(pStr, pFmt){
  eval("reDate = reDate" + pFmt);
  if (reDate.test(pStr)) {
    alert(pStr + " é uma data válida.");
  } else if (pStr != null && pStr != "") {
    alert(pStr + " NÃO é uma data válida.");
  }
} // doDate

var reTime1 = /^\d{2}:\d{2}$/;
var reTime2 = /^([0-1]\d|2[0-3]):[0-5]\d$/;
var reTime3 = /^(0[1-9]|1[0-2]):[0-5]\d$/;
var reTime4 = /^\d+:[0-5]\d:[0-5]\d$/;
var reTime5 = /^\d+:[0-5]\d:[0-5]\.\d{3}\d$/;

function doTime(pStr, pFmt){
  eval("reTime = reTime" + pFmt);
  if (reTime.test(pStr)){
    alert(pStr + " é um horário/tempo válido.");
  }else if (pStr != null && pStr != ""){
    alert(pStr + " NÃO é um horário/tempo válido.");
  }
} // doTime

var reEmail1 = /^[\w!#$%&'*+\/=?^`{|}~-]+(\.[\w!#$%&'*+\/=?^`{|}~-]+)*@(([\w-]+\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
var reEmail2 = /^[\w-]+(\.[\w-]+)*@(([\w-]{2,63}\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
var reEmail3 = /^[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
var reEmail = reEmail3;

function doEmail(pStr, pFmt){
  eval("reEmail = reEmail" + pFmt);
  if (reEmail.test(pStr)){
    alert(pStr + " é um endereço de e-mail válido.");
  } else if (pStr != null && pStr != "") {
    alert(pStr + " NÃO é um endereço de e-mail válido.");
  }
} // doEmail

//valida data
function validaData(campo){
        if ( campo.value != "" ){
            erro=0;
           var hoje = new Date();
           var anoAtual = hoje.getFullYear();
           var barras = campo.value.split("/");
            if (barras.length == 3){
              var dia = barras[0];
              var mes = barras[1];
              var ano = barras[2];
              var resultado = (!isNaN(dia) && (dia > 0) && (dia < 32)) && (!isNaN(mes) && (mes > 0) && (mes < 13)) && (!isNaN(ano) && (ano.length == 4) && ( ano >= 1900));
                if (!resultado){
                    alert("Data inválida!");
                    campo.focus();
                    return false;
                }
            }else{
                alert("Data inválida.");
                campo.focus();
                return false;
            }
         return true;
        }
}
function validaHora(campo){
  if(campo.value != ""){
    var horas = campo.value.split(":");
    if(horas.length == 2){
      var hora = horas[0];
      var min = horas[1];
      var result = (!isNaN(hora) &&(hora < 24)) && (!isNaN(min) &&(min < 60));
      if(!result){
        alert("Hora Inválida!");
        campo.focus;
        return false;
      }
    }else{
      alert("Hora Inválida!");
      campo.focus;
      return false;
    }
    return true;
  }
}

//funçao que faz aparecer div e no segundo click desaparecer a mesma div

   function apareceesconde(objeto){
      var elemento = document.getElementById(objeto);
        if ( elemento.style.display != 'none' ) {
          elemento.style.display = 'none';
        }else{
          elemento.style.display = '';
        }
    }
// função para aparecer divs   
    function aparece(objeto){
      var elemento = document.getElementById(objeto);
        if ( elemento.style.display != '' ){
          elemento.style.display = '';
        }
    }
// funcão mostra objetos divs
    function esconde(objeto){
      var elemento = document.getElementById(objeto);
        if ( elemento.style.display != 'none' ){
          elemento.style.display = 'none';
        }
    }
// função para selecionar todos os checkbox
//com base atribto nome do campo
    function seleciona_tudo(nome){
      var checkbox = document.getElementsByName(nome);
      var contador  = checkbox.length;
      for(i=0; i < contador; i++){
        var tipo = checkbox[i].type;
        if (tipo == "checkbox"){
          checkbox[i].checked = true;
         }
      }
    }
// função para desmarcar todos os checkbox
// com base no atributo nome do campo
    function deseleciona_tudo(name){
      var checkbox = document.getElementsByName(name);
      var count  = checkbox.length;
      for(i=0; i < count; i++){
       var tipo = checkbox[i].type;
        if (tipo == "checkbox"){
          checkbox[i].checked = false;
        }
      }
    }
//função para selecionar os checkbox em ordem inversa aos selecionados
// com base no nome do objeto 
function seleciona_inversa(nome){
      var checkbox = document.getElementsByName(nome);
      var contador  = checkbox.length;
      for(i=0; i < contador; i++){
        var tipo = checkbox[i].type;
        if (tipo == "checkbox"){
          if(checkbox[i].checked == true){
            checkbox[i].checked = false;
          }else{
            checkbox[i].checked = true;
          }
        }
      }
}


