// DrCalendar initialize
function draw_calendar(json) {
	var cal_obj = new DrCalendar("dr-calendar", "_brank"); /* or "_self" */
	cal_obj.drawCalendar(json);
}

// DrCalendar Object
var DrCalendar = function(container, target){
	this.weekJp = new Array("日", "月", "火", "水", "木", "金", "土");
	this.today = new Date();
	this.containerId = container;
	this.target = target;
};
DrCalendar.prototype.drawCalendar = function (json) {
	var objBody = document.getElementById(this.containerId);
	if (!objBody) {
		document.write("--Calendar body not found.");
		return;
	}
	this.itemCount = json.days.length;
	objBody.innerHTML = "";

	var month_div = document.createElement('div');
	month_div.id = "cal_header";
	
	var monthLink = '<a href="' + json.prev_url + '" target="' + 
	    this.target + '" title="先月のカレンダーを表示します">&lt;&lt;</a>&nbsp;&nbsp;';
	monthLink += '<a href="' + json.url + '" target="' + 
	    this.target + '" title="先月のカレンダーを表示します">' + 
		this.today.getFullYear() + '年' + (this.today.getMonth() + 1) + '月</a>';
	monthLink += '&nbsp;&nbsp;<a href="' + json.next_url + '" target="' + 
	    this.target + '" title="翌月のカレンダーを表示します">&gt;&gt;</a>';
	month_div.innerHTML = monthLink;
	/*
	var month_link = document.createElement('a');
	month_link.innerHTML = this.today.getFullYear() + "年" + (this.today.getMonth() + 1) + "月";
	month_link.href = json.url;
	month_link.target = this.target;
	month_link.title = "詳細カレンダーを表示します";
	month_div.appendChild(month_link);
	*/
	
	var calendar_table = document.createElement('table');
	calendar_table.id = "cal_table";
	var calendar_tbody = document.createElement('tbody');
	calendar_tbody.id = "cal_tbody";
	objBody.appendChild(month_div);
	objBody.appendChild(calendar_table);
	calendar_table.appendChild(calendar_tbody);
	
	var fDay = new Date(); fDay.setDate(1);
	var pad = fDay.getDay();          
	var daylbl = pad;
	var ithcount = 0 - pad;
	
	for (var itr = -1; itr < Math.ceil((this.itemCount + pad) / 7); itr++){
		var calendar_tr = document.createElement('tr');
		calendar_tr.id = "week" + itr;
		calendar_tbody.appendChild(calendar_tr);
		if (itr < 0){
			for (ith = 0; ith < 7; ith++){
				var calendar_th = document.createElement('th');
				calendar_th.id = "day-" + ith;
				calendar_th.innerHTML = this.weekJp[ith];
				calendar_tr.appendChild(calendar_th);
			}
		} else {
			for (var ith = ithcount; ith < ithcount + 7; ith++){
				var calendar_td = document.createElement('td');
				if (ith >= 0 && ith < this.itemCount) {
				    var date = json.days[ith].day;
				    calendar_td.id = "day-none";
				    if (json.days[ith].entry.length == 0){
					    calendar_td.innerHTML = date;
				    } else {
						calendar_td.id = "day-link";
						var calendar_link = document.createElement('a');
						calendar_link.innerHTML = date;
						calendar_link.href = json.days[ith].url;
						calendar_link.target = this.target;
						//ToolTips：最新のエントリのタイトル
						calendar_link.title = json.days[ith].entry[0].title; 
						calendar_td.appendChild(calendar_link);
						if (calendar_link.title == "休診日")  calendar_td.id = "day-all";
						else if (calendar_link.title == "臨時休診") calendar_td.id = "rinji";						
					}
					daylbl = (daylbl+1) % 7;
				} else {
				    calendar_td.id = "day-pad";
				}
				calendar_tr.appendChild(calendar_td);
			}
			if (ithcount < this.itemCount) ithcount = ithcount + 7;
		}
	}
};
