﻿function YYYYMMDDstart() {
    MonHead = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
    var y = new Date().getFullYear();
    for (var i = (y-18); i > (y - 82); i--)
        document.getElementById("YYYY").options.add(new Option(" " + i + " 年", i));

    for (var i = 1; i < 13; i++)
        document.getElementById("MM").options.add(new Option(" " + i + " 月", i));

    document.getElementById("YYYY").value = '-1';
    document.getElementById("MM").value = '-1';

    var n = MonHead[new Date().getMonth()];
    if (new Date().getMonth() == 1 && IsLeapYear(YYYYvalue)) n++;
    writeDay(n);
    document.getElementById("DD").value = '-1';;
}

if (document.attachEvent)
    window.attachEvent("onload", YYYYMMDDstart);
else
    window.addEventListener('load', YYYYMMDDstart, false);

function YYYYDD(str) {
    var MMvalue = document.getElementById("MM").options[document.getElementById("MM").selectedIndex].value;
    if (MMvalue == "") {
        var e = document.getElementById("DD");
        OptionsClear(e);
        return;
    }
    var n = MonHead[MMvalue - 1];
    if (MMvalue == 2 && IsLeapYear(str)) n++;
    writeDay(n)
    document.getElementById("MM").value = "-1";
    document.getElementById("DD").value = "-1";
}

function MMDD(str) {
    var YYYYvalue = document.getElementById("YYYY").options[document.getElementById("YYYY").selectedIndex].value;
    if (YYYYvalue == "") {
        var e = document.getElementById("DD");
        OptionsClear(e);
        return;
    }
    var n = MonHead[str - 1];
    if (str == 2 && IsLeapYear(YYYYvalue)) n++;
    writeDay(n)
    document.getElementById("DD").value = "-1";
}

function writeDay(n) {
    var e = document.getElementById("DD"); 
    OptionsClear(e);
    for (var i = 1; i < (n + 1); i++)
        e.options.add(new Option(" " + i + " 日", i));
}

function IsLeapYear(year) {
    return (year % 4 == 0 && year % 100 != 0 || year % 400 == 0);
}

function OptionsClear(e) {
    e.options.length = 1;
}