/*******************************************************************************
' Nome........: IsDate
'
' Objetivo....: Verifica se a strData é uma data válida
'
' Entrada.....: strData - Data no formato DD/MM/AAAA
'
' Retorno.....: true(data ok) ou false(data nok)
'
' Funções Uti.: IsAnoBissexto()
'               IsNumber()
'
' Atualizações: [00]   Data: 19/07/2000   Autor: Fábrica
'               [01]   Data: 13/01/2002   Autor: Juliana Ferris - Fábrica
'                      Revisão de Padrões e Testes
*******************************************************************************/
function IsDate (strData)
{
    var arrDiasMes = new Array(31,29,31,30,31,30,31,31,30,31,30,31);
    var strDia, strMes, strAno;
    var blnResultado = false;

    // Pré-analisa o String:
    if ( strData != "" )
    {

        if ((strData.length == 10) && (strData.substr(2,1) == "/") && (strData.substr(5,1) == "/"))
        {
            // Levanta Campos:
            if (IsNumber (strData.substr(0,2))) strDia = strData.substr(0,2);
            if (IsNumber (strData.substr(3,2))) strMes = strData.substr(3,2);
            if (IsNumber (strData.substr(6,4))) strAno = strData.substr(6,4);


            // Analisa strAno e strMes:
            if ((strAno > 0) && (strMes >= 1) && (strMes <= 12))
            {
                // Analisa strDia:
                if ((strDia >= 1) && (strDia <= arrDiasMes[strMes - 1]))
                {
                    // Analisa os casos não-bissextos:
                    if ((strMes == 2) && (!IsAnoBissexto (strAno)))
                    {
                        if (strDia <= 28) blnResultado = true;
                    }
                    else
                        blnResultado = true;
                }
            }
        }
    }        

    return blnResultado;
}

/*******************************************************************************
' Nome........: IsAnoBissexto
'
' Objetivo....: Verifica se o ano dado é bissexto
'
' Entrada.....: Ano a ser verificado no formato  AAAA
'
' Retorno.....: true(é bissexto) ou false(não é bissexto)
'
' Funções Uti.: IsNumber()
'
' Atualizações: [00]   Data: 19/07/2000   Autor: Fábrica
'               [01]   Data: 13/01/2002   Autor: Juliana Ferris - Fábrica
'                      Revisão de Padrões e Testes
*******************************************************************************/
function IsAnoBissexto( strAno )
{
    if ( IsNumber(strAno) )
        if ( ( (strAno % 4)==0 ) && ( (strAno % 100)!=0 ) || ( (strAno % 400)==0 ) )
            return true;
    return false;
}


