// JavaScript Document

//
// Check date
//
function CheckDate(date)
{
    //
    // Check if date is a string which consists number only
    //
    var nDayArray = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
    var cDateArray = new Array(3);

    cDateArray = date.split("-");
    if (cDateArray.length != 3)
    {
        return false;
    }
    if ((cDateArray[0].length > 4) || (cDateArray[1].length > 2) || (cDateArray[2].length > 2))
    {
        return false;
    }

    //
    // Parse date
    //
    var year = parseInt(cDateArray[0], 10);
    var month = parseInt(cDateArray[1], 10);
    var day = parseInt(cDateArray[2], 10);
    if (isNaN(year) || isNaN(month) || isNaN(day))
    {
        return false;
    }

    //
    // Check year, month and day
    //
    if ((year < 1900) || (year > 2100))
    {
        return false;
    }
    if ((month < 1) || (month > 12))
    {
        return false;
    }
    if (((0 === (year % 4)) && ((year % 100) !== 0)) || (0 === (year % 400)))
    {
        nDayArray[1] = 29;
    }
    if ((day < 1) || (day > nDayArray[month - 1]))
    {
        return false;
    }

    //
    // All done
    //
    return true;
}

//
// Compare date
//
function CompareDate(date1, date2)
{
    //
    // Parse date
    //
    var cDateArray1 = new Array(3);
    var cDateArray2 = new Array(3);
    var date;
    var year1, year2;
    var month1, month2;
    var day1, day2;

    if (("" == date1) && ("" == date2))
    {
        return true;
    }
    else if ("" == date1)
    {
        date = new Date();
        year1 = date.getFullYear();
        month1 = date.getMonth() + 1;
        day1 = date.getDate();

        cDateArray2 = date2.split("-");
        year2 = parseInt(cDateArray2[0], 10);
        month2 = parseInt(cDateArray2[1], 10);
        day2 = parseInt(cDateArray2[2], 10);
    }
    else if ("" == date2)
    {
        cDateArray1 = date1.split("-");
        year1 = parseInt(cDateArray1[0], 10);
        month1 = parseInt(cDateArray1[1], 10);
        day1 = parseInt(cDateArray1[2], 10);

        date = new Date();
        year2 = date.getFullYear();
        month2 = date.getMonth() + 1;
        day2 = date.getDate();
    }
    else
    {
        cDateArray1 = date1.split("-");
        year1 = parseInt(cDateArray1[0], 10);
        month1 = parseInt(cDateArray1[1], 10);
        day1 = parseInt(cDateArray1[2], 10);

        cDateArray2 = date2.split("-");
        year2 = parseInt(cDateArray2[0], 10);
        month2 = parseInt(cDateArray2[1], 10);
        day2 = parseInt(cDateArray2[2], 10);
    }

    //
    // Compare date
    //
    if (year1 > year2)
    {
        return false;
    }
    if (year1 < year2)
    {
        return true;
    }
    if (month1 > month2)
    {
        return false;
    }
    if (month1 < month2)
    {
        return true;
    }
    if (day1 > day2)
    {
        return false;
    }
    return true;
}
