// Versão 18/03/2008
function ValidaDataDDMMAAAA(Controle,SairFoco,Obrigatorio,EfetuarValidacao) {
  var DataValida = false;
  var Retorno = true;
  Obrigatorio = ConvBool(Obrigatorio)
  EfetuarValidacao = ConvBool(EfetuarValidacao)
  Controle.title = (Trim(Controle.getAttribute("DescricaoCampo"))=='' ? Controle.id : Trim(Controle.getAttribute("DescricaoCampo"))) + '. ';
  Controle.style.background = Controle.getAttribute("CorBackGroundInicial");
  if ((Controle.disabled) || (isParentDIVDesabilitado(Controle))) return Retorno;
  if (Controle.value.length == 10 && EfetuarValidacao) {
    var Dia = Controle.value.substring(0,2);
    var Mes = Controle.value.substring(3,5);  
    var Ano = Controle.value.substring(6,10);
    var DataValida = ((Mes >= 1) && (Mes <= 12));
    if (DataValida) {DataValida = ((Dia >= 1) && (Dia <= 31));}
    if ((DataValida) && ((Mes == 4) || (Mes == 6) || (Mes == 9) || (Mes == 11))) {DataValida = (Dia <= 30);}
    if ((DataValida) && (Mes == 2)) {DataValida = ((Dia <= 28) || ((Dia == 29) && (Ano % 4 == 0 && (Ano % 100 != 0 || Ano % 400 == 0)) ));}
  }
  if (Trim(Controle.value) == '') {
    if (Obrigatorio) {
      if (!SairFoco) {SetaFoco(Controle);}
      Controle.title = Controle.title + 'Data deve ser digitada. Data M\u00EDnima: ' + Controle.getAttribute("DataMinima") + ' Data M\u00E1xima: ' + Controle.getAttribute("DataMaxima");
      AdicionaErroTela(Controle.title);
      Controle.style.background = Controle.getAttribute("CorBackGroundErro");
      Retorno = false;
    }
  }
  else {
    if ((!DataValida && EfetuarValidacao) || (Controle.value.length < 10)) { 
      if (!SairFoco) {SetaFoco(Controle);}
      Controle.title = Controle.title + 'Data informada incorretamente';
      AdicionaErroTela(Controle.title);
      Controle.style.background = Controle.getAttribute("CorBackGroundErro");
      Retorno = false;
    }
    if (DataValida) {
      var DataMinima = Controle.getAttribute("DataMinima").substring(6,10) + Controle.getAttribute("DataMinima").substring(3,5) + Controle.getAttribute("DataMinima").substring(0,2);
      var DataMaxima = Controle.getAttribute("DataMaxima").substring(6,10) + Controle.getAttribute("DataMaxima").substring(3,5) + Controle.getAttribute("DataMaxima").substring(0,2);
      var DataDigitada = Controle.value.substring(6,10) + Controle.value.substring(3,5) + Controle.value.substring(0,2);
      if ((DataDigitada < DataMinima) || (DataDigitada > DataMaxima)) {
        if (!SairFoco) {SetaFoco(Controle);}
        Controle.title = Controle.title + 'Data informada fora da faixa permitida. Data M\u00EDnima: ' + Controle.getAttribute("DataMinima") + ' Data M\u00E1xima: ' + Controle.getAttribute("DataMaxima");
        AdicionaErroTela(Controle.title);
        Controle.style.background = Controle.getAttribute("CorBackGroundErro");
        Retorno = false;
      }
    }
  }
  //return (SairFoco) ? SairFoco : Retorno;
  return Retorno;
}
function ValidaDataMMAAAA(Controle,SairFoco,Obrigatorio,EfetuarValidacao) {
  var DataValida = false;
  var Retorno = true;
  Obrigatorio = ConvBool(Obrigatorio)
  EfetuarValidacao = ConvBool(EfetuarValidacao)
  Controle.title = (Trim(Controle.getAttribute("DescricaoCampo"))=='' ? Controle.id : Trim(Controle.getAttribute("DescricaoCampo"))) + '. ';
  Controle.style.background = Controle.getAttribute("CorBackGroundInicial");
  if ((Controle.disabled) || (isParentDIVDesabilitado(Controle))) return Retorno;
  if (Controle.value.length == 7 && EfetuarValidacao) {
    var Mes = Controle.value.substring(0,2);
    var Ano = Controle.value.substring(3,7);  
    var DataValida = ((Mes >= 1) && (Mes <= 12));
    if (DataValida) {DataValida = ((Ano >= 1) && (Ano <= 9999));}
  }
  if (Trim(Controle.value) == '') {
    if (Obrigatorio) {
      if (!SairFoco) {SetaFoco(Controle);}
      Controle.title = Controle.title + 'Data deve ser digitada';
      AdicionaErroTela(Controle.title);
      Controle.style.background = Controle.getAttribute("CorBackGroundErro");
      Retorno = false;
    }
  }
  else {
    if ((!DataValida && EfetuarValidacao) || (Controle.value.length < 7)) { 
      if (!SairFoco) {SetaFoco(Controle);}
      Controle.title = Controle.title + 'Data informada incorretamente';
      AdicionaErroTela(Controle.title);
      Controle.style.background = Controle.getAttribute("CorBackGroundErro");
      Retorno = false;
    }
  }
  //return (SairFoco) ? SairFoco : Retorno;
  return Retorno;
}
function ValidaDataDDMM(Controle,SairFoco,Obrigatorio,EfetuarValidacao) {
  var DataValida = false;
  var Retorno = true;
  Obrigatorio = ConvBool(Obrigatorio)
  EfetuarValidacao = ConvBool(EfetuarValidacao)
  Controle.title = (Trim(Controle.getAttribute("DescricaoCampo"))=='' ? Controle.id : Trim(Controle.getAttribute("DescricaoCampo"))) + '. ';
  Controle.style.background = Controle.getAttribute("CorBackGroundInicial");
  if ((Controle.disabled) || (isParentDIVDesabilitado(Controle))) return Retorno;
  if (Controle.value.length == 5 && EfetuarValidacao) {
    var Dia = Controle.value.substring(0,2);
    var Mes = Controle.value.substring(3,5);  
    var DataValida = ((Mes >= 1) && (Mes <= 12));
    if (DataValida) {DataValida = ((Dia >= 1) && (Dia <= 31));}
    if ((DataValida) && ((Mes == 4) || (Mes == 6) || (Mes == 9) || (Mes == 11))) {DataValida = (Dia <= 30);}
    if ((DataValida) && (Mes == 2)) {DataValida = (Dia <= 29);}
  }
  if (Trim(Controle.value) == '') {
    if (Obrigatorio) {
      if (!SairFoco) {SetaFoco(Controle);}
      Controle.title = Controle.title + 'Data deve ser digitada';
      AdicionaErroTela(Controle.title);
      Controle.style.background = Controle.getAttribute("CorBackGroundErro");
      Retorno = false;
    }
  }
  else {
    if ((!DataValida && EfetuarValidacao) || (Controle.value.length < 5)) { 
      if (!SairFoco) {SetaFoco(Controle);}
      Controle.title = Controle.title + 'Data informada incorretamente';
      AdicionaErroTela(Controle.title);
      Controle.style.background = Controle.getAttribute("CorBackGroundErro");
      Retorno = false;
    }
  }
  //return (SairFoco) ? SairFoco : Retorno;
  return Retorno;
}

