var currentYear; var currentMonth; var currentDay; function setCurrentDate() { data = new Date(); currentYear = data.getYear(); currentYear = (currentYear < 2000) ? currentYear + 1900 : currentYear; currentMonth = data.getMonth() + 1; currentDay = data.getDate();}
function isToday(year, month, day) { if (year == currentYear && parseInt(month,10) == currentMonth && day == currentDay) { return true;}
return false;}
function isSaturday(year, month, day) { var week = new Date(year, month - 1, day).getDay(); if (week == 6) { return true;}
return false;}
function isHoliday(year, month, day) { var week = new Date(year, month - 1, day).getDay(); if (week == 0) { return true;}
switch(parseInt(month,10)) { case 1:
if (day == 1) { return true;}
if (day == 2 && isSunday(year, month, 1)) { return true;}
if (day == (getFirstMonday(year, month) + 7)) { return true;}
break; case 2:
if (day == 11) { return true;}
if (day == 12 && isSunday(year, month, 11)) { return true;}
break; case 3:
if(year > 1979 && year < 2100) { if (day == parseInt(20.8431 + 0.242194 * (year - 1980) - parseInt((year - 1980) / 4))) { return true;}
if (day == (parseInt(20.8431 + 0.242194 * (year - 1980) - parseInt((year - 1980) / 4)) + 1) && isSunday(year, month, day - 1)) { return true;}
}
break; case 4:
if (day == 29) { return true;}
if (day == 30 && isSunday(year, month, 29)) { return true;}
break; case 5:
if (day == 3 || day == 4 || day == 5) { return true;}
if (day == 6 && (isSunday(year, month, 3) || isSunday(year, month, 4) || isSunday(year, month, 5))) { return true;}
break; case 7:
if (day == (getFirstMonday(year, month) + 14)) { return true;}
break; case 9:
if (day == (getFirstMonday(year, month) + 14)) { return true;}
if(year > 1979 && year < 2100) { if (day == parseInt(23.2488 + 0.242194 * (year - 1980) - parseInt((year - 1980) / 4))) { return true;}
if (day == (parseInt(23.2488 + 0.242194 * (year - 1980) - parseInt((year - 1980) / 4)) + 1) && isSunday(year, month, day - 1)) { return true;}
}
break; case 10:
if (day == (getFirstMonday(year, month) + 7)) { return true;}
break; case 11:
if (day == 3 || day == 23) { return true;}
if (day == 4 && isSunday(year, month, 3)) { return true;}
if (day == 24 && isSunday(year, month, 23)) { return true;}
break; case 12:
if (day == 23) { return true;}
if (day == 24 && isSunday(year, month, 23)) { return true;}
break;}
return false;}
function isSunday(year, month, day) { var week = new Date(year, month - 1, day).getDay(); if (week == 0) { return true;}
return false;}
function getFirstMonday(year, month) { var monday; for(monday = 1; monday < 8; monday++) { if(new Date(year, month - 1, monday).getDay() == 1) { break;}
}
return monday;}
function setWeekendAndHoliday(y,m) { var element = document.getElementById("wp-calendar"); var caption = document.getElementsByTagName("caption"); var date = caption[0].innerHTML; var number = date.match(/\d{1,}/g); var year = number[0]; var month = number[1]; var tbody = element.getElementsByTagName("tbody"); var td = tbody[0].getElementsByTagName("td"); var day; for (i = 0; i < td.length; i++) { if(td[i].innerHTML.indexOf("href") != -1){ day = td[i].getElementsByTagName("a")[0].innerHTML;} else { day = td[i].innerHTML;}
if (isHoliday(year, month, day)) { if (isToday(year, month, day)) { td[i].setAttribute('class', 'tholiday'); td[i].setAttribute('className', 'tholiday');} else { td[i].setAttribute('class', 'holiday'); td[i].setAttribute('className', 'holiday');}
} else if(isSaturday(year, month, day)) { if (isToday(year, month, day)) { td[i].setAttribute('class', 'tsaturday'); td[i].setAttribute('className', 'tsaturday');} else { td[i].setAttribute('class', 'saturday'); td[i].setAttribute('className', 'saturday');}
} else { if (isToday(year, month, day)) { td[i].setAttribute('class', 'today'); td[i].setAttribute('className', 'today');}
}
}
}
