

/* --------------------- 変数の初期化 --------------------- */

/*  半角数字 -> 全角数字  */
var toZenkakuNum = {
	'0':'０',
	'1':'１',
	'2':'２',
	'3':'３',
	'4':'４',
	'5':'５',
	'6':'６',
	'7':'７',
	'8':'８',
	'9':'９'
};

/*  全角数字 -> 半角数字  */
var toHankakuNum = {
	'０':'0',
	'１':'1',
	'２':'2',
	'３':'3',
	'４':'4',
	'５':'5',
	'６':'6',
	'７':'7',
	'８':'8',
	'９':'9'
};


/* --------------------- ユーザー定義関数 --------------------- */

/* 正規表現文字をクォート */
function preg_quote(str){
	return str.replace(/[!$(-+--/:<-?\[\\\]^{-}]/g, '\\$&')
}

/* 文字列の一括置換 (連想配列型) */
function hstr_replace(replace, subject){
	subject = subject.toString();

	for (var index in replace) {
		rObj = new RegExp(preg_quote(index),'g');
		subject = subject.replace(rObj, replace[index]);
	}

	return subject;
}

/* 正規表現による文字列の一括置換 (連想配列型) */
function hreg_replace(replace, subject){
	subject = subject.toString();

	for (var index in replace) {
		rObj = new RegExp(index,'g');
		subject = subject.replace(rObj, replace[index]);
	}

	return subject;
}

/* window.onloadにイベント追加 */
function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

/* ゼロパディング */
function zeroPadding(num, zero_num){
	num = num.toString();
	var num_len = num.length;

	if(zero_num > num_len){
		for(var i = 0; zero_num - num_len > i; i++){
			num = '0' + num;
		}
	}

	return num;
}

/* ゼロサプレス */
function zeroSuppress(num){
	num = num.toString();
	num = num.replace(/^0+/g, '');

	return num;
}

/* 全角：西暦年を取得 */
function mb_getCurrentYear(){
	var today = new Date();
	var cur_year = today.getFullYear();
	return hstr_replace(toZenkakuNum, cur_year);
}

/* 今月を取得 */
function getCurrentMonth(){
	var today = new Date();
	return today.getMonth() + 1;
}

/* 全角：前年度を返す */
function mb_prevYear(year){
	year = hstr_replace(toHankakuNum, year);
	year--;
	return hstr_replace(toZenkakuNum, year);
}

/* 全角：来年度を返す */
function mb_nextYear(year){
	year = hstr_replace(toHankakuNum, year);
	year++;
	return hstr_replace(toZenkakuNum, year);
}

/* 次のカレンダーの年度を返す */
function nextCalendar(ical){
	var cal = new Array();
	cal['year'] = hstr_replace(toHankakuNum, ical['year']);
	cal['month'] = hstr_replace(toHankakuNum, zeroSuppress(ical['month']));

	if(cal['month'] < 12){
		cal['month']++;
	} else {
		cal['year']++;
		cal['month'] = 1;
	}

	cal['year'] = hstr_replace(toZenkakuNum, cal['year']);
	cal['month'] = zeroPadding(cal['month'], 2);
	return cal;
}

/* 前のカレンダーの年度を返す */
function prevCalendar(ical){
	var cal = new Array();
	cal['year'] = hstr_replace(toHankakuNum, ical['year']);
	cal['month'] = hstr_replace(toHankakuNum, zeroSuppress(ical['month']));

	if(cal['month'] > 1){
		cal['month']--;
	} else {
		cal['year']--;
		cal['month'] = 12;
	}

	cal['year'] = hstr_replace(toZenkakuNum, cal['year']);
	cal['month'] = zeroPadding(cal['month'], 2);
	return cal;
}


/* トップページのリンクを変換 */
function convert_top_link(cal_date) {
	var cur_year = mb_getCurrentYear();
	var cur_month = getCurrentMonth();
	cur_month = zeroPadding(cur_month, 2);

	var cur_link = document.getElementById('CAL_CUR_LINK');
	if(cur_link)cur_link.href = 'http://www.topicserv.com/mbs/lstdisp.asp?tpl=lst_eve_' + cur_month + '.html&var1=' + cur_year;

	document.getElementById('CAL_CUR_LINK_Q').value='http://www.topicserv.com/mbs/lstdisp.asp?tpl=lst_eve_' + cur_month + '.html&var1=' + cur_year;



	// 前月
	var prev_date;
	var prevNode = document.getElementById('PREV_MONTH');
	if(prevNode){
		prev_date = prevCalendar(cal_date);
		prevNode.href = 'lstdisp.asp?tpl=lst_eve_'+ prev_date['month'] + '.html&var1=' + prev_date['year'];
	}
	// 翌月
	var next_date;
	var nextNode = document.getElementById('NEXT_MONTH');
	if(nextNode){
			next_date = nextCalendar(cal_date);
			nextNode.href = 'lstdisp.asp?tpl=lst_eve_'+ next_date['month'] + '.html&var1=' + next_date['year'];
	}
}


