// calen.js
// Copyright (c) 2008 Pleasure Sky Corp., All Rights Reserved.
// Ver1.00 2008.05.08 create.
// need calen.css, holiday.js
//
// ※月の引数は、0(１月)〜11(１２月)なので注意
// ※holiday.jsはPic-Upマネージャーで生成
// ※祝日の判定は平日への振替(5/6)、国民の休日(9/22)に対応
//
document.write("<script type=\"text/javascript\" src=\"/holiday.js\" charset=\"shift-jis\"></script>");var dow=new Array("日","月","火","水","木","金","土");var cow=new Array("sun","mon","tue","wed","thu","fri","sat");function isSunday(year,mon,date){return(new Date(year,mon,date).getDay()==0)}function firstMonday(year,mon){for(var i=1;i<8;i++){if(new Date(year,mon,i).getDay()==1){break}}return i}function checkPublic(year,mon,date,pub){for(var i=0;i<pub.length;i++){if(date==pub[i]){return true}else if(date==pub[i]+1){if(isSunday(year,mon,pub[i])){return true}}else{}}return false}function isPublicHoliday(year,mon,date){switch(mon){case 0:return checkPublic(year,mon,date,[1,firstMonday(year,mon)+7]);case 1:return checkPublic(year,mon,date,[11]);case 2:var y=year-1980;var d=parseInt(20.8431+0.242194*y-parseInt(y/4));return checkPublic(year,mon,date,[d]);case 3:return checkPublic(year,mon,date,[29]);case 4:if(date==6){var iweek=new Date(year,mon,date).getDay();if(iweek>0&&iweek<=3){return true}}return checkPublic(year,mon,date,[3,4,5]);case 6:return checkPublic(year,mon,date,[firstMonday(year,mon)+14]);case 8:var y=year-1980;var kero=firstMonday(year,mon)+14;var shunbun=parseInt(23.2488+0.242194*y-parseInt(y/4));if(date==kero+1&&date==shunbun-1){return true}return checkPublic(year,mon,date,[kero,shunbun]);case 9:return checkPublic(year,mon,date,[firstMonday(year,mon)+7]);case 10:return checkPublic(year,mon,date,[3,23]);case 11:return checkPublic(year,mon,date,[23])}return false}function isHoliday(year,mon,date){var i,j;var d=new Date(year,mon,date);year=d.getFullYear();mon=d.getMonth();date=d.getDate();var day=cow[d.getDay()];var no=parseInt((date+6)/7,10);for(i=0;i<HolidayTb[day].length;i++){j=HolidayTb[day][i];if(j==0||j==no){return true}}for(i=0;i<HolidayTb[mon].length;i++){if(HolidayTb[mon][i]==date){return true}}if(HolidayTb["public"].length>0){return isPublicHoliday(year,mon,date)}return false}function calendar(year,mon,day){var i,j,cls;var today=new Date();if(year==undefined){var year=today.getFullYear()}if(mon==undefined){var mon=today.getMonth()}if(day==undefined){var day=today.getDate()}var title=CalenTitle;title=title.replace("<YEAR>",year);title=title.replace("<MONTH>",mon+1);var calendar="<div class=\"calen\"><table>";calendar+="<caption>"+title+"<\/caption>";calendar+="<tr>";for(i=0;i<7;i++){calendar+="<th class=\""+cow[i]+"\">"+dow[i]+"<\/th>"}calendar+="<\/tr>";var leap_year=((year%4==0&&year%100!=0)||(year%400==0));var lom=new Array(31,28+leap_year,31,30,31,30,31,31,30,31,30,31);j=0;var days=0;for(i=0;i<mon;i++){days+=lom[i]}var week=Math.floor((year*365.2425+days)%7);for(i=0;i<week;i++){if(j==0){calendar+="<tr>";}calendar+="<td>&nbsp;<\/td>";j++}for(i=1;i<=lom[mon];i++){if(j==0){calendar+="<tr>";}if(isHoliday(year,mon,i)){if(day==i){cls="todayholiday"}else{cls="holiday"}}else{if(day==i){cls="today"}else{cls=cow[j]}}calendar+="<td class=\""+cls+"\"";calendar+=">"+i+"<\/td>";j++;if(j>6){calendar+="<\/tr>";j=0}}if(j>0){while(j<=6){calendar+="<td>&nbsp;<\/td>";j++;}calendar+="<\/tr>";}calendar+="<\/table><\/div>\n";document.write(calendar)}function next_calendar(add){if(add==undefined){var add=1}var today=new Date();var d=new Date(today.getFullYear(),today.getMonth()+add,1);var year=d.getFullYear();var mon=d.getMonth();return calendar(year,mon,0)}function strDay(year,mon,date,hour){var d=new Date(year,mon,date);var s=(d.getMonth()+1)+"月"+d.getDate()+"日（"+dow[d.getDay()]+"）";if(hour!=undefined){s+=hour+"時"}return s}function writeStrDay(year,mon,date,hour){document.write(strDay(year,mon,date,hour))}function deliveryDay(year,mon,date,hour){var today=new Date();if(year==undefined){var year=today.getFullYear()}if(mon==undefined){var mon=today.getMonth()}if(date==undefined){var date=today.getDate()}if(hour==undefined){var hour=today.getHours()}if(hour>=parseInt(OrderDelivery['limit'],10)){date++}while(isHoliday(year,mon,date)){date++}for(var i=0;i<OrderDelivery['delivery'];i++){date++;while(isHoliday(year,mon,date)){date++}}return strDay(year,mon,date)}function writeDeliveryDay(year,mon,date,hour){document.write(deliveryDay(year,mon,date,hour))}
