﻿/* 店舗インフォカレンダー用JS */

ajax = false;
if (window.XMLHttpRequest) {
	ajax = new XMLHttpRequest();
} else if (window.ActiveXObject) {
	try {
		ajax = new ActiveXObject('Msxml2.XMLHTTP');
	} catch (e) {
		ajax = new ActiveXObject('Microsoft.XMLHTTP');
	}
}

var showYear = (new Date()).getFullYear();
var showMonth = (new Date()).getMonth() + 1;

/*--------------------------------------------------*/
/*	店舗、年月からブログ、キャンペーン情報取得
/*--------------------------------------------------*/
function getInfoData() {
	ajax.open('GET', '/parts/shop/getInfoData.aspx?shop=' + ShopUrlText + '&y=' + showYear + '&m=' + showMonth, true);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			showCalendar(ajax.responseXML);
		}
	}
	ajax.send(null);
}

function changeMonth(param) {
	var tmpDate = new Date(showYear, showMonth + param - 1, 1);
	showYear = tmpDate.getFullYear();
	showMonth = tmpDate.getMonth() + 1;
	getInfoData();
}

function showCalendar(objXML) {
	var arrayWeekday = new Array('日', '月', '火', '水', '木', '金', '土');
	var arrayCss = new Array('sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat');
	var row = new Object();
	var i = 0;
	var j = 0;
	var day = '';
	var cday = '';
	var camp_flg = false;
	var camp_css = '';
	
	var blog = {};
	var camp = {};
	var ins_day = '';
	var end_day = '';
	var date_temp = '';

	var tmp = '';

	tmp = tmp + '<p>';
	tmp = tmp + '	' + showYear + ' 年 ' + (showMonth == 0 ? 12 : showMonth) + ' 月';
	tmp = tmp + '<p>';
	tmp = tmp + '<table cellspacing="1" cellpadding="3">';
	tmp = tmp + '	<tr>';

	for (i = 0; i < 7; i++) {
		tmp = tmp + '		<th>' + arrayWeekday[i] + '</th>';
	}
	tmp = tmp + '	</tr>';

	var week = (new Date(showYear, showMonth - 1, 1)).getDay();
	var lastDate = (new Date(showYear, showMonth, 0)).getDate();
	tmp = tmp + '	<tr>';
	for (i = 0; i < week; i++) {
		tmp = tmp + '		<td class="' + arrayCss[i] + '"></td>';
	}
	
	if(objXML.getElementsByTagName('row').length > 0){
		// データがあれば
		for (j = 0; j < objXML.getElementsByTagName('row').length; j++) {
			ins_day = objXML.getElementsByTagName('INS_DAY').item(j).firstChild.nodeValue;
			end_day = objXML.getElementsByTagName('END_DAY').item(j).firstChild.nodeValue
			// 一つずつ処理
			if(end_day == 0){
				date_temp = '<a href="/blog/' + ShopUrlText + '/' + objXML.getElementsByTagName('INFO_ID').item(j).firstChild.nodeValue + '/index.aspx"';
				date_temp = date_temp + ' title="' + objXML.getElementsByTagName('INFO_TITLE').item(j).firstChild.nodeValue + '">' + ins_day + '</a>';
				blog[String(ins_day)] = date_temp;
			}else{
				date_temp = '<br /><a href="/campaign/' + ShopUrlText + '/' + objXML.getElementsByTagName('INFO_ID').item(j).firstChild.nodeValue + '/index.aspx"><img src="/img/shop/ico_fair.gif" alt="" /></a>';
				camp[String(ins_day)] = Array(date_temp,"start");
				camp[String(end_day)] = Array(date_temp,"end");
			}
		}
	}

	for (i = 1; i <= lastDate; i++) {
		if (week >= 7) {
			week = 0;
			tmp = tmp + '	</tr>';
			tmp = tmp + '	<tr>';
		}

		if(objXML.getElementsByTagName('row').length > 0){
			if(blog[String(i)]){
				// ブログがセットされている
				day = blog[String(i)];
			}else{
				day = i;
			}
			if(camp[String(i)]){
				// キャンペーンがセットされている
				cday = camp[String(i)][0];
				if(camp[String(i)][1] == 'start') {
					// 開始
					camp_flg = true;
				}else if(camp[String(i)][1] == 'end'){
					// 終了
					camp_flg = false;
				}
			}else{
				// キャンペーン期間終了後、空にする
				if(!camp_flg) cday = '';
			}
		}else{
			day = i;
		}
		tmp = tmp + '		<td class="' + arrayCss[week] + '">' + day + cday + '</td>';
		week++;
	}
	if (week != 0) {
		for (i = week; i < 7; i++) {
			tmp = tmp + '		<td class="' + arrayCss[i] + '"></td>';
		}
	}
	tmp = tmp + '	</tr>';

	tmp = tmp + '</table>';

	document.getElementById(DivName).innerHTML = tmp;
}

