
if (typeof olivean_event == "undefined" || !olivean_event) var olivean_event = {};

// 四季の月範囲を設定する。
olivean_event.seasons = {};
olivean_event.seasons.names = ['spring','summer','autumn','winter'];
olivean_event.seasons.names_jp = ['春','夏','秋','冬'];
olivean_event.seasons.spring = [3,4,5];
olivean_event.seasons.summer = [6,7,8];
olivean_event.seasons.autumn = [9,10,11];
olivean_event.seasons.winter = [12,1,2];

/**
 * 当月の季節を取得する。
 */
olivean_event.getSeasonName = function()
{
	var m = (new Date()).getMonth() + 1;
	var name = '';
	$.each(olivean_event.seasons.names, function(i, val){
		name = val;
		return ($.inArray(m, olivean_event.seasons[name]) == -1);
	});
	return name;
};

/**
 * 四季選択のタブメニューを表示する。
 * デザインは「/common/css/design.css」の「div.event_tab」で設定する。
 */
olivean_event.createTabMenu = function()
{

	var name = olivean_event.getSeasonName();
	var div = $('<div id="event_menu"></div>');
	var ul = $('<ul class="fix"></ul>');

	$.each(olivean_event.seasons.names, function(i, val){
		var li = $('<li class="btn fl"></li>');
		var a = $('<a href="javascript:void(0);" id="tab_' + val + '"><span class="reader">' + val + '</span></a>').click(function(){
			olivean_event.clickTab('#tab_' + val);
		});
		li.append(a);
		ul.append(li);
	});

	// 当月を選択状態にして、所定位置に表示する。
	ul.find('#tab_' + name).addClass('current');
	div.append(ul);
	$('div.event_list:first').before(div);
};

/**
 * 月選択のタブメニューを表示する。
 *
 * @param id String: タブメニューdivのid(tab_月)。
 */
olivean_event.clickTab = function(id)
{
	$('div#event_menu').find('a[class="current"]').removeClass('current');
	$('div#event_menu').find(id).addClass('current');
	olivean_event.monthEventList(id.split('_')[1]);
	return false;
};

/**
 * 選択した月に合致するイベント情報(div)を表示する。
 * "event_list h3"のclassに、カンマ句切りで月を記入する。
 * "0"の場合は常に表示する。
 *
 * @param name String: 四季(spring,summer,autumn,winter)。
 */
olivean_event.monthEventList = function(name)
{
	var month = olivean_event.seasons[name].slice(0);
	$('div.event_list').each(function(){
		var cls = $(this).find('h3').attr('class').split(',');
		if ($.inArray('0', cls) >= 0 || $.overArray(month,cls)) {
			$(this).show();
		} else {
			$(this).hide();
		}
	});
};

// メイン処理。
$(function(){

	// タブメニューを表示する。
	olivean_event.createTabMenu();

	// 当月のイベント情報を表示する。
	var name = olivean_event.getSeasonName();
	olivean_event.monthEventList(name);
});

