var today = new Date();
var plans=false;

function createCalendar(){
	var MSIE= /*@cc_on!@*/false;
	
	//テーブル構築
	var calendar=calendar=document.createElement('table');
	calendar.className='calendar';
	calendar.thead=calendar.appendChild(document.createElement('thead'));
	calendar.tbody=calendar.appendChild(document.createElement('tbody'));
	calendar.tfoot=calendar.appendChild(document.createElement('tfoot'));
	
	calendar.thead=calendar.thead.appendChild(document.createElement('tr'));
	calendar.thead=calendar.thead.appendChild(document.createElement('th'));
	calendar.thead.setAttribute(MSIE?'colSpan':'colspan','7');

	calendar.tfoot=calendar.tfoot.appendChild(document.createElement('tr'));
	calendar.tfoot=calendar.tfoot.appendChild(document.createElement('td'));
	calendar.tfoot.setAttribute(MSIE?'colSpan':'colspan','7');

	//前へボタン
	calendar.btn_prev = document.createElement('input');
	calendar.btn_prev.type='button';
	calendar.btn_prev.value='<<';
	calendar.thead.appendChild(calendar.btn_prev);

	//月の表示
	calendar.thead.caption = calendar.thead.appendChild(document.createTextNode(''));

	//次へボタン
	calendar.btn_next = document.createElement('input');
	calendar.btn_next.type='button';
	calendar.btn_next.value='>>';
	calendar.thead.appendChild(calendar.btn_next);

	//当月作成
	calendar.setMonth=function(year,month){
	
		var start=new Date(year,month-1,1);
		var end=new Date(year,month,0);

		this.thead.caption.nodeValue=' '+year+'年'+month+'月 ';

		while(this.tbody.firstChild) this.tbody.removeChild(this.tbody.firstChild);
		
		for(var i=0,d=start.getDate()-start.getDay();i<6;i++){
			var tr=this.tbody.appendChild(document.createElement('tr'));
			for(var j=0;j<7;j++){
				var td=tr.appendChild(document.createElement('td'));
				if(j==0) td.className='Sun';
				else if(j==6) td.className='Sat';
				
				//祝日
				else if(month==1 && d==1){ td.className='holiday'; td.title='元旦';}
				else if(month==1 && j==1 && 7<d && d<15 ){ td.className='holiday'; td.title='成人の日';}
				else if(month==2 && d==11){ td.className='holiday'; td.title='建国記念日';}
				else if(month==4 && d==29){ td.className='holiday'; td.title='昭和の日';}
				else if(month==5 && d==3){ td.className='holiday'; td.title='憲法記念日';}
				else if(month==5 && d==4){ td.className='holiday'; td.title='みどりの日';}
				else if(month==5 && d==5){ td.className='holiday'; td.title='こどもの日';}
				else if(month==7 && j==1 && 14<d && d<22){ td.className='holiday'; td.title='海の日';}
				else if(month==9 && j==1 && 14<d && d<22){ td.className='holiday'; td.title='敬老の日';}
				else if(month==10 && j==1 && 7<d && d<15){ td.className='holiday'; td.title='体育の日';}
				else if(month==11 && d==3){ td.className='holiday'; td.title='文化の日';}
				else if(month==11 && d==23){ td.className='holiday'; td.title='勤労感謝の日';}
				else if(month==12 && d==23){ td.className='holiday'; td.title='天皇誕生日';}
				
				var key=(year*10000)+(month*100)+d;
				if(plans[key]){
					td.className= plans[key].holiday ? 'holiday' : '';
				//	td.title=plans[key].subject;
				}
				
				if(0<d&&d<=end.getDate()){
					td.appendChild(document.createTextNode(d));
				}
				d++;
			}
			if(end.getDate()<d)break;
		}
		this.month=month;
		this.year=year;
		this.btn_prev.disabled=today.getFullYear()==this.year && today.getMonth()+1==this.month ? true : false;
	}

	calendar.prev=function(){
		var month=this.month;
		var year=this.year;
		if(month<2){
			year-=1;
			month=12;
		}else{
			month-=1;
		}
		this.setMonth(year,month);		
	}

	//翌月へ移動
	calendar.next=function(){
		var month=this.month;
		var year=this.year;
		if(11<month){
			month=1;
			year+=1
		}else{
			month+=1;
		}
		this.setMonth(year,month);
	}

	//ボタンに設定
	calendar.btn_prev.calendar=calendar;
	calendar.btn_prev.onclick=function(){this.calendar.prev();}
	
	calendar.btn_next.calendar=calendar;
	calendar.btn_next.onclick=function(){this.calendar.next();}

	return calendar;
}

window.onload=function(){
	var cal = createCalendar();
	var menu=document.getElementById('menu');
	if(menu){
		plans=getplans();
		var p=menu.appendChild(document.createElement('p'));
		p.className='fs09 mgl10';
		p.appendChild(document.createTextNode('営業日カレンダー'));
		p.appendChild(document.createElement('br'));
		p=p.appendChild(document.createElement('span'));
		p.className='fs08 fF00';
		p.appendChild(document.createTextNode('赤い表示日が定休日です。'));
		cal.setMonth(today.getFullYear(),today.getMonth()+1);
		menu.appendChild(cal);
	}
}