$(function() {
	if (document.getElementById('calbase')) {
		$('#calbase').html('<div id="foodcalender"><h2>フードカレンダー</h2><div id="calendar"></div></div>');
		var _y = new Date().getFullYear();
		make_calendars(_y, document.getElementById('calendar'));
		$('table.mcal').css('width', '160px');
		$('table.mcal caption').css({
			fontSize: '12px'
		});
		$('table.mcal th, table.mcal td').css({
			border: '1px solid #ccc',
			fontSize: '12px',
			color: '#999',
			textAlign: 'center'
		});
		$('table.mcal th').css({
			fontSize: '10px',
			color: '#333'
		});
		$('table.mcal td.none').css('background-color', '#eee');
		var _d = new Date().getDate();
		var _m = new Date().getMonth() + 1;
		$('table.mcal td').each(function(i,o){
			if ($(this).text() == _d) $(this).css('background-color', '#ff9');
		});
		$.get(BASE_URI + '/edit/' + _y + _m + '.txt', function(data){
			var _data = data.split('&');
			var fdata = [];
			$(_data).each(function(i,o){
				var p = o.split('=');
				fdata[p[0]] = p[1];
				$('table.mcal td').each(function(i,o){
					if ($(this).text() == p[0]) {
						$(this).css({
							fontWeight: 'bold', color: '#333', cursor: 'pointer'
						}).click(function(){
							var _date = new Date();
							var _c = fdata[$(this).text()];
							var _c = _c.replace(/\r\n/g, "<br />");
							var _c = _c.replace(/(\n|\r)/g, "<br />");
							var _data = '<span style="font-size:10px;font-weight:bold;color:#f33;">' + _y + '年' + _m + '年' + $(this).text() + '日</span><br />';
							_data += '<p style="font-size:10px;margin:0;">' + _c + '<br />※＝毎月恒例</p>';
							$('#foodparams').hide().html(_data).fadeIn('slow');
						});
						if ($(this).text() == _d) {
							var _date = new Date();
							var _c = fdata[$(this).text()];
							var _c = _c.replace(/\r\n/g, "<br />");
							var _c = _c.replace(/(\n|\r)/g, "<br />");
							var _data = '<span style="font-size:10px;font-weight:bold;color:#f33;">' + _y + '年' + _m + '年' + $(this).text() + '日</span><br />';
							_data += '<p style="font-size:10px;margin:0;">' + _c + '<br />※＝毎月恒例</p>';
							$('#foodparams').hide().html(_data).fadeIn('slow');
						}
					}
				});
			});
		})
	}
});
function leap(year){
	return year % 4 ? 0 : year % 100 ? 1 : year % 400 ? 0 : 1;
}
function make_cal_array(year, m){
	var months = [31, 28 + leap(year), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
	var result = [];
	var dofw1 = (new Date(year, m, 1, 0, 0, 0)).getDay();
	for (var d = 1; d <= months[m]; d++){
		result[d + dofw1 - 1] = d;
	}
	return result;
}
var day_params = [
	{ e:'sun', j:'日' },
	{ e:'mon', j:'月' },
	{ e:'tue', j:'火' },
	{ e:'wed', j:'水' },
	{ e:'thu', j:'木' },
	{ e:'fri', j:'金' },
	{ e:'sat', j:'土' }
];
function make_cal_monthly(year, m){
	var cal = make_cal_array(year, m);
	var table = document.createElement('table');
	var tr = document.createElement('tr');
	for (var d = 0; d < 7; d++){
		var th = document.createElement('th');
		th.className = day_params[d].e;
		th.innerHTML = day_params[d].j;
		if (d == 0) {
			$(th).css('background-color', '#ffd3ce');
		} else if (d == 6) {
			$(th).css('background-color', '#cee4ff');
		}
		tr.appendChild(th);
	}
	var thead = document.createElement('thead');
	thead.appendChild(tr);
	table.appendChild(thead);
	var tbody = document.createElement('tbody');
	for (var d = 0, l = cal.length; d < l; d++){
		if (d % 7 == 0) tr = document.createElement('tr');
		var td = document.createElement('td');
		if (cal[d]){
			td.className = 'cal' + (d-1);
			td.innerHTML = cal[d];
			if (d % 7 == 0) {
				$(td).css('background-color', '#ffd3ce');
			} else if (d % 7 == 6) {
				$(td).css('background-color', '#cee4ff');
			}
		} else {
			td.className = 'none';
		}
		tr.appendChild(td);
		if (d % 7 == 6) tbody.appendChild(tr);
	}
	var _d = 7 - d % 7;
	for (var i=0; i<_d; i++) {
		var td = document.createElement('td');
		td.className = 'none';
		tr.appendChild(td);
	}
	tbody.appendChild(tr);
	table.className = 'mcal';
	var caption = document.createElement('caption');
	caption.innerHTML = year + '/' + (m+1);
	table.appendChild(caption);
	table.appendChild(tbody);
	return table;
}
function make_calendars(year, p){
	p.innerHTML = '';
	var m = new Date().getMonth();
	var mcal = make_cal_monthly(year, m);
	p.appendChild(mcal);
	$(p).after('<div id="foodparams" style="background-color:#ddd;padding:5px;"></div>');
	$('#foodparams').hide();
}
