	
	
	
	
	//画像の先読み
	var p_img_last_month = new Image();
	var p_img_last_month_dis = new Image();
	var p_img_next_month = new Image();
	var p_img_next_month_dis = new Image();
	p_img_last_month.src = "image/last_month.gif";
	p_img_last_month_dis.src = "image/last_month_dis.gif";
	p_img_next_month.src = "image/next_month.gif";
	p_img_next_month_dis.src = "image/next_month_dis.gif";
	
	
	
	
	
	var DAT_DIR = "dat/";
	var EVENT_DIR = "event/";
	var DATE_BACK_COLOR_OVER = "#00CCFF";
	var DATE_BACK_COLOR_OUT  = "#DC81F3";
	var DATE_FONT_COLOR = "#FFFFFF";
	var NAME_BACK_COLOR = "#FFE8FF";
	var NAME_FONT_COLOR = "#6F004A";
	var DATE_BACK_COLOR_OVER_TODAY = "#00CCFF";
	var DATE_BACK_COLOR_OUT_TODAY = "#FF0066";
	
	
	
	
	var p_today = _GET_STR_DATE();	//yyyy_mm_dd
	
	//当日
	var p_today_yyyy = p_today.substr(0, 4);
	var p_today_mm   = p_today.substr(5, 2);
	var p_today_dd   = p_today.substr(8, 2);
	
	//表示する日付
	var p_disp_yyyy = p_today_yyyy;	//初期値は当日
	var p_disp_mm   = p_today_mm;	//初期値は当日
	var p_disp_dd   = p_today_dd;	//初期値は当日
	
	
	var p_yymm_lower_bound = "";	//スケジュール表示の過去端
	var p_yymm_upper_bound = "";	//スケジュール表示の未来端
	
	
	var p_xml_data;
	var p_xml_files = Array();
	
	
	var p_first_show_flag = true;
	
	
	var p_loading_flag = false;
	var p_event_count;
	var p_loaded_count;
	var p_event_info_htmls;
	
	
	
	
	
	function _CHANGE_BGCOLOR_BY_ID(id, clr){
		var elm = document.getElementById(id);
		elm.style.backgroundColor = clr;
	}
	
	
	
	function _ON_MOUSE_OVER(change_elm_id){
		_CHANGE_BGCOLOR_BY_ID(change_elm_id, DATE_BACK_COLOR_OVER);
	}
	
	
	
	function _ON_MOUSE_OUT(change_elm_id){
		var a_temp = change_elm_id.split("_");
		if(p_disp_yyyy == p_today_yyyy && p_disp_mm == p_today_mm && Number(a_temp[1]) == p_today_dd){
			//当日
			_CHANGE_BGCOLOR_BY_ID(change_elm_id, DATE_BACK_COLOR_OUT_TODAY);
		}else{
			//当日ではない
			_CHANGE_BGCOLOR_BY_ID(change_elm_id, DATE_BACK_COLOR_OUT);
		}
	}
	
	
	function _INIT(){
		var dt = new Date();
		var ms = dt.getMilliseconds();
		var xml_file = EVENT_DIR + "eventlist.xml";
//		alert(xml_file);
		_SEND_REQUEST(xml_file, _CALLBACK, "GET", String(ms));
		
	}
	
	
	function _CALLBACK(req){
		p_xml_data = req.responseXML;
		
		if(!p_xml_data){
			return;
		}
		
		
		var aInfo = p_xml_data.getElementsByTagName("info");
		var aList = aInfo[0].getElementsByTagName("list");
		
		
		//スケジュール表示可能な範囲を取得
		//xml上で、月が降順で並んでると仮定する
		for(i = 0; i < aList.length; i++){
			var yymm = aList[i].getAttribute("yymm");
			if(i == 0){
				p_yymm_upper_bound = yymm;
			}
			if(i == aList.length - 1){
				p_yymm_lower_bound = yymm;
			}
		}
		
		
//		alert(location.href + "\n" + location.search);
		if(location.search != ""){
			var param = location.search.substr(1);
			var key;
			var val;
			//パラメーターチェック
			if(param.match(/^param=[0-9]{6}$/) == false || param.length != 12){
				
			}else{
				var a_temp = param.split("=");
				key = a_temp[0];
				val = a_temp[1];
				
				y = Number("20" + val.substr(0, 2));
				m = Number(val.substr(2, 2));
				d = Number(val.substr(4, 2));
				
				if(_CHECK_DATE(y, m, d) == true){
					p_disp_yyyy = "20" + val.substr(0, 2);
					p_disp_mm   = val.substr(2, 2);
					p_disp_dd   = val.substr(4, 2);
				}
			}
		}
		
		
		/**
		_SHOW_EVENT_LIST_HTML(p_disp_yyyy, p_disp_mm);
		_SHOW_EV(p_disp_dd);
		
		/*/
		if(getCookie("CURRENT_MONTH") != ""){
			_SHOW_EVENT_LIST_HTML(getCookie("CURRENT_MONTH").substr(0, 4), getCookie("CURRENT_MONTH").substr(5, 2));
			_SHOW_EV(getCookie("CURRENT_DAY"));
		}else{
			_SHOW_EVENT_LIST_HTML(p_today_yyyy, p_today_mm);
			_SHOW_EV(p_today_dd);
		}
		/**/
	}
	
	
	
	
	function _SHOW_EVENT_LIST_HTML(yyyy, mm){
		document.getElementById("MONTH_VALUE").innerHTML = yyyy + "." + mm;
		if(yyyy + "_" + mm == p_yymm_lower_bound){
			document.getElementById("LAST_MONTH").innerHTML = "<img src=\"image/last_month_dis.gif\">";
		}else{
			var a_temp = _GET_LAST_MONTH(yyyy, mm).split("_");
			document.getElementById("LAST_MONTH").innerHTML = "<img src=\"image/last_month.gif\" onclick=\"_SHOW_EVENT_LIST_HTML('" + a_temp[0] + "', '" + a_temp[1] + "')\" style=\"cursor:pointer;\">";
		}
		if(yyyy + "_" + mm == p_yymm_upper_bound){
			document.getElementById("NEXT_MONTH").innerHTML = "<img src=\"image/next_month_dis.gif\">";
		}else{
			var a_temp = _GET_NEXT_MONTH(yyyy, mm).split("_");
			document.getElementById("NEXT_MONTH").innerHTML = "<img src=\"image/next_month.gif\" onclick=\"_SHOW_EVENT_LIST_HTML('" + a_temp[0] + "', '" + a_temp[1] + "')\" style=\"cursor:pointer;\">";
		}
		
		
		var i;
		var current_list;
		var elm = p_xml_data.getElementsByTagName("list");
		for(i = 0; i < elm.length; i++){
			if(elm[i].getAttribute("yymm") == yyyy + "_" + mm){
				current_list = elm[i];
			}
		}
		
		
		var log = "";
		//該当の月のイベントを日付ごとに集計する
		var aEvent = Array();
		var t_event = current_list.getElementsByTagName("event");
		for(i = 0; i < t_event.length; i++){
			aEvent[i] = Array();
			
			//データを追加
			aEvent[i]["name"] = _TRIM(t_event[i].getElementsByTagName("name")[0].firstChild.nodeValue);
			aEvent[i]["file"] = new Array();
			for(j = 0; j < t_event[i].getElementsByTagName("file").length; j++){
				aEvent[i]["file"][j] = _TRIM(t_event[i].getElementsByTagName("file")[j].firstChild.nodeValue);
			}
		}
		
		//パブリック変数にコピー
		p_xml_files = new Array();
		for(i = 0; i < aEvent.length; i++){
			p_xml_files[i] = new Array();
			p_xml_files[i] = aEvent[i]["file"];
		}
		
		
		
		
		
		
		for(i = 0; i < 31; i++){
			var row_id = "TR_";
			var day_id = "DATE_";
			var eve_id = "EVENT_";
			if(i + 1 < 10){
				row_id += "0" + (i + 1);
				day_id += "0" + (i + 1);
				eve_id += "0" + (i + 1);
			}else{
				row_id += (i + 1);
				day_id += (i + 1);
				eve_id += (i + 1);
			}
			
			//
			if(i < aEvent.length){
				document.getElementById(day_id).style.visibility = "visible";
				document.getElementById(eve_id).style.visibility = "visible";
			}else{
				document.getElementById(day_id).style.visibility = "hidden";
				document.getElementById(eve_id).style.visibility = "hidden";
				continue;
			}
			var year_temp = yyyy;
			var month_temp = mm;
			var day_temp = String(i + 1);
			if(day_temp.length == 1){
				day_temp = "0" + day_temp;
			}
			
			document.getElementById(day_id).innerHTML = day_temp + " (" + _GET_WEEKVALUE(year_temp, month_temp, day_temp) + ")";
			document.getElementById(eve_id).innerHTML = aEvent[i]["name"].replace(/\\n/g, "<br>");
			
			if(year_temp == p_today_yyyy && month_temp == p_today_mm && day_temp == p_today_dd){
				document.getElementById(day_id).style.backgroundColor = DATE_BACK_COLOR_OUT_TODAY;
			}else{
				document.getElementById(day_id).style.backgroundColor = DATE_BACK_COLOR_OUT;
			}
		}
		p_disp_yyyy = yyyy;
		p_disp_mm   = mm;
	}
	
	
	function _CLICK_ROW(day){
		/*
		var url = window.location.href;
		var param = window.location.search;
		if(param != ""){
			url = url.substr(0, url.length - param.length);
		}
		window.location.href = url + "?param=" + String(p_disp_yyyy.substr(2, 2)) + String(p_disp_mm) + String(day);
		*/
		_SHOW_EV(day);
	}
	
	
	function _SHOW_EV(day){
		if(p_loading_flag == true){
			return;
		}
		p_loading_flag = true;
		p_disp_dd = day;
		
		p_event_info_htmls = new Array();
		p_event_count = p_xml_files[day - 1].length;
		p_loaded_count = 0;
		
		var year_temp = p_disp_yyyy;
		var month_temp = p_disp_mm;
		var day_temp = String(day);
		
		
		document.getElementById("ADV_TITLE").innerHTML = "";
		
		var strDayVal = year_temp + "/" + month_temp + "/" + day_temp + " (" + _GET_WEEKVALUE(year_temp, month_temp, day_temp) + ")";
		if(Number(p_today_yyyy) == Number(year_temp) && Number(p_today_mm) == Number(month_temp) && Number(p_today_dd) == Number(day_temp)){
			strDayVal += "<span style=\"color:#FF0000; padding-left:20px;\">TODAY</span>";
		}
		document.getElementById("ADV_TITLE").innerHTML = strDayVal;
		
		
		
		var dt = new Date();
		var ms = dt.getMilliseconds();
		var xml_file = _GET_XML_FILE_NAME(0);
		_SEND_REQUEST(xml_file, _GET_EVENT_INFO_HTML, "GET", String(ms));
		
		
		if(p_first_show_flag){
			p_first_show_flag = false;
		}else{
			location.hash = "top";
		}
		
		//Cookieに保存
		setTempCookie("CURRENT_MONTH", p_disp_yyyy + "_" + p_disp_mm);
		setTempCookie("CURRENT_DAY", day);
	}
	
	
	
	
	
	function _GET_EVENT_INFO_HTML(req){
		var xml_data_temp = req.responseXML;
		
		if(!xml_data_temp){
			return;
		}
		
		p_event_info_htmls[p_loaded_count] = "";
		
		var elm = xml_data_temp.getElementsByTagName("unit");
//		alert(elm.length);
		var i;
		var retHTML = "";
		for(i = 0; i < elm.length; i++){
			if(i != 0){
				retHTML += "<br><img src=\"image/1x1_b.gif\" width=\"100%\" height=\"1\">";
			}
			var aData = Array();
			if(elm[i].getElementsByTagName("name")[0].hasChildNodes()){
				aData["name"] = _TRIM(elm[i].getElementsByTagName("name")[0].firstChild.nodeValue);
			}else{
				aData["name"] = "";
			}
			if(elm[i].getElementsByTagName("photo")[0].hasChildNodes()){
				aData["photo"] = _TRIM(elm[i].getElementsByTagName("photo")[0].firstChild.nodeValue);
			}else{
				aData["photo"] = "";
			}
			if(elm[i].getElementsByTagName("url")[0].hasChildNodes()){
				aData["url"] = _TRIM(elm[i].getElementsByTagName("url")[0].firstChild.nodeValue);
			}else{
				aData["url"] = "";
			}
			if(elm[i].getElementsByTagName("comment")[0].hasChildNodes()){
				aData["comment"] = _TRIM(elm[i].getElementsByTagName("comment")[0].firstChild.nodeValue);
			}else{
				aData["comment"] = "";
			}
			
			retHTML += "<table border=\"0\" cellpadding=\"2\" cellspacing=\"1\" width=\"100%\">\n";
			retHTML += "	<tr>\n";
			retHTML += "		<td><div style=\"font-weight:bold; color:#0000CC; margin-bottom:18px;\"><br>" + _N2BR(aData["name"]) + "</div></td>\n";
			retHTML += "	</tr>\n";
			if(aData["photo"] != ""){
				//画像ファイルは"/"で分けて、そのどれかをランダムに表示する
				aryPhotos = aData["photo"].split("/");
				xx = Math.floor(Math.random() * aryPhotos.length);
				var photo_src = aryPhotos[xx];
				
				retHTML += "	<tr>\n";
				retHTML += "		<td><img src=\"" + EVENT_DIR + p_disp_yyyy + "_" + p_disp_mm + "/" + photo_src + "\" style=\"margin-bottom:18px;\"></td>\n";
				retHTML += "	</tr>\n";
			}
			retHTML += "	<tr>\n";
			retHTML += "		<td><div style=\"margin-right:34px; margin-bottom:18px; border:0px solid red;\">" + _N2BR(aData["comment"]) + "</div></td>\n";
			retHTML += "	</tr>\n";
			
			if(aData["url"] != ""){
				retHTML += "	<tr>\n";
				retHTML += "		<td><a href=\"" + EVENT_DIR + p_disp_yyyy + "_" + p_disp_mm + "/" + aData["url"] + "\">詳細はこちら&gt;&gt;&gt;</a></td>\n";
				retHTML += "	</tr>\n";
			}
			retHTML += "</table>\n";
		}
		
		
		p_event_info_htmls[p_loaded_count] = retHTML;
		p_loaded_count++;
		
		if(p_event_count == p_loaded_count){
			var temp_html = "";
			for(i = 0; i < p_event_info_htmls.length; i++){
				if(i != 0){
					temp_html += "<br><img src=\"image/1x1_b.gif\" width=\"100%\" height=\"1\">";
				}
				temp_html += p_event_info_htmls[i]
			}
			document.getElementById("ADV_BODY").innerHTML = temp_html;
			p_loading_flag = false;
		}else{
			var dt = new Date();
			var ms = dt.getMilliseconds();
			_SEND_REQUEST(_GET_XML_FILE_NAME(p_loaded_count), _GET_EVENT_INFO_HTML, "GET", String(ms));
		}
		return;
	}
	
	
	function _GET_XML_FILE_NAME(num){
		return EVENT_DIR + p_disp_yyyy + "_" + p_disp_mm + "/" + p_xml_files[p_disp_dd - 1][num];
	}
