function onloadRendering(){yearPicker=document.getElementById("yearPicker"),monthPicker=document.getElementById("monthPicker"),dayPicker=document.getElementById("dayPicker"),monthOption=document.getElementsByClassName("month-picker-option"),dayOption=document.getElementsByClassName("day-picker-option"),dayFilterLink=document.getElementById("dayFilterLink"),yearPicker.addEventListener("change",changeMonth),monthPicker.addEventListener("change",changeDay),dayPicker.addEventListener("change",()=>{generateFilterLink(yearPicker.value,monthPicker.value,dayPicker.value)}),dayFilterWrap=document.getElementById("dayFilterWrap"),dayFilterWrap.classList.remove("day-filter-loading")}function generateNewOption(e,n,t){"mon"==n?(monOrDayEN="month",monOrDayJP="月"):"day"==n&&(monOrDayEN="day",monOrDayJP="日");let a=e;"mon"==n&&e<10&&(a="0"+e);let i=document.createElement("option");"を選択"==e?(i.value="",i.textContent=monOrDayJP+e):(i.classList.add(monOrDayEN+"-picker-option"),i.value=a,i.textContent=e+monOrDayJP),"app"==t?"mon"==n?monthPicker.appendChild(i):"day"==n&&dayPicker.appendChild(i):"pre"==t&&("mon"==n?monthPicker.prepend(i):"day"==n&&dayPicker.prepend(i))}function generateFilterLink(e,n,t){e&&n&&t?(dayFilterLink.href="?y="+e+"&mon="+n+"&d="+t,dayFilterLink.classList.remove("filter-link-disabled")):(dayFilterLink.href="#",dayFilterLink.classList.add("filter-link-disabled"))}window.addEventListener("load",onloadRendering); function changeMonth(){ let monthLength = monthOption.length - 1; if(!(monthOption[1].value == '01')){ monthPicker.innerHTML = ''; monthLength = monthOption.length; } let year = yearPicker.value; if((year == 2022) && (monthLength > 6)){//2022 when over May for(let i = 1; i < 6; i++){ monthPicker.removeChild(monthOption[1]); } }else if((year == 2022) && (monthLength < 6)){//2022 less than May for(let i = 1; i <= 12; i++){ if((monthOption[1]) && (i < 6)){ monthPicker.removeChild(monthOption[1]); }else if(i >= 6 && (!monthOption[i])){ generateNewOption(i, 'mon', 'app'); } } }else if((year == 2024) && (monthLength > 04)){//ThisYear over ThisMonth for(let i = monthLength; i > 04; i--){ monthPicker.removeChild(monthOption[i]); } }else if((year == 2024) && (monthLength < 04)){ for(let i = monthLength + 1; i <= 04; i++){ generateNewOption(i, 'mon', 'app'); } }else if(!((year == 2024) || (year == 2022)) && monthOption.length < 12){ if(monthOption[1] && (monthOption[1].value == '01')){ for(let i = 5; i <= 12; i++){ generateNewOption(i, 'mon', 'app'); } }else{//after 2022 for(let i = 1; i <= 12; i++){ generateNewOption(i, 'mon', 'app'); } } } changeDay(); let month = monthPicker.value, day = dayPicker.value; generateFilterLink(year, month, day); } function changeDay(){ let year = yearPicker.value; let month = monthPicker.value; let dayLength = dayOption.length - 1; if(year == 2024 && month == 04){//ThisYear & ThisMonth if(dayLength < 04){ for(let i = dayLength + 1; i <= 27; i++){ generateNewOption(i, 'day', 'app'); } }else{ for(let i = dayLength; i > 27; i--){ dayPicker.removeChild(dayOption[i]); } } }else if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12){ if(dayLength < 31){ for(let i = dayLength + 1; i <= 31; i++){ generateNewOption(i, 'day', 'app'); } } }else if(month == 2){ let febLast; if((new Date(year + '/2/29').getMonth() === 1)){//leapYear febLast = 29; }else{//notLeapYear febLast = 28; } if(dayLength < febLast){ for(let i = dayLength + 1; i <= febLast; i++){ generateNewOption(i, 'day', 'app'); } }else{ for(let i = dayLength; i > febLast; i--){ dayPicker.removeChild(dayOption[i]); } } }else{//4-6-9-11 if(dayLength < 30){ for(let i = dayLength + 1; i <= 30; i++){ generateNewOption(i, 'day', 'app'); } }else{ for(let i = dayLength; i > 30; i--){ dayPicker.removeChild(dayOption[i]); } } } let day = dayPicker.value; generateFilterLink(year, month, day); }