Event.observe(window, 'load', calendar);

function calendar() {
	// 今日の日付から読み込むファイル名を生成
	var todayFile = 'calendar/' + whatToday('mmdd') + '.json';
	
	// テスト用に指定日のカレンダーを表示
	/* 書式「index.html?0401」（4月1日のカレンダーを指定）*/
	var theDay = location.href.split('?')[1];
	if (theDay) todayFile = 'calendar/' + theDay + '.json';
	
	// JSONデータからデータを生成
	new Ajax.Request(
		todayFile,
		{
			method: 'get',
			parameters: 'cache=' + (new Date()).getTime(),
			onSuccess: function(httpObj){
				$('calendarMess').innerHTML = calendarDisplay(httpObj.responseText);
			}
		}
	);
	
	// タイトルに日付を追記
	var today = ' （' + whatToday('today') + '）';
	$('calendarTitle').innerHTML += today;
}

// 今日の日付を「mmdd」形式で返す
function whatToday(a) {
	var dateObj = new Date();
	//var dateObj = new Date('Feb 28, 2009');	// 日付を指定してテスト
	
	//
	var y = dateObj.getFullYear();
	// 「月」を取得→常に2桁の文字列になるように整形
	var m = '0' + (dateObj.getMonth() + 1);
	m = m.substring(m.length-2, m.length);
	// 「日」を取得→常に2桁の文字列になるように整形
	var d = '0' + dateObj.getDate();
	d = d.substring(d.length-2, d.length);
	//
	if (a == 'mmdd') {
		return (m+d);
	} else if (a == 'today') {
		return (y+'年'+m+'月'+d+'日');
	}
}

// カレンダーデータを生成する
function calendarDisplay(jsonData) {
	// JSONデータをeval化
	var json = eval( '(' + jsonData + ')' );
	
	// ◇御金言の取得・整形
	var dataG = '';
	dataG += '<dl>';
	dataG += '<dt>◇今日の御金言</dt>';
	dataG += '<dd>' + json.g.gokingen + '</dd>';
	dataG += '<dd id="gosho">' + json.g.gosho + ' ' + json.g.page + '頁</dd>';
	if (json.g.tsuuge != '') {
		dataG += '<dd id="tsuuge" style="display:none;">【通解】' + json.g.tsuuge + '</dd>';
		dataG += '<dd id="tsuugeSW"><a href="#" onclick="displayTsuuge();return false;">（通解を表示）</a></dd>';
	}
	dataG += '</dl>';
	
	// ◇記念日の取得・整形
	var arrayM = json.m;
	var dataM = '';
	var cnt = 0;
	
	for (var i = 0; i<arrayM.length; i++) {
		if(arrayM[i] == '') continue;	// ダミー行、空白データは回避
		dataM += '<dd>' + '・' + arrayM[i] + '</dd>';
		// チェック用カウントアップ
		cnt++;
	}
	// 記念日データ存在するなら（chk>0）表示用データを生成
	if (cnt > 0) {
		dataM = '<dl id="kinenbi"><dt>◇記念日</dt>' + dataM + '</dl>';
	}
	
	// 整形データを返す
	return (dataG + dataM);
}

//
function displayTsuuge() {
	$('tsuuge').style.display = 'block';
	$('tsuugeSW').style.display = 'none';
}
