﻿//-------------------------------------------------------
//通信オブジェクト生成ファンクション
function createXMLHttpRequest(func){

	var xmlHttpObject = null;

	if(window.XMLHttpRequest){ //Safari,Firefoxなど
		xmlHttpObject = new XMLHttpRequest();
		}else if(window.ActiveXObject) { //InternetExplorer（以下IE）
			try{
				xmlHttpObject = new ActiveXObject("Msxml2.XMLHTTP"); //IE6
				}catch(e){
					try{
						xmlHttpObject = new ActiveXObject("Microsoft.XMLHTTP"); //IE5
						}catch(e){
							return null;
					}
			}
	}

	if (xmlHttpObject){
		xmlHttpObject.onreadystatechange = func;
	}

	return xmlHttpObject;

}

//-------------------------------------------------------
//指定されたファイル名を取得するためのリクエストを送信
function loadFile(fileName,callBackFunc,calledId){

	httpObj = null
	findDay = calledId;
	httpObj = createXMLHttpRequest(callBackFunc);

	if (httpObj){
		httpObj.open("GET",fileName,true);
		httpObj.send("");
	}

}

//-------------------------------------------------------
//XMLファイル情報のレスポンスを取得して全スケジュールを画面上に表示（コールバック関数）
function displayAllSchedule(){

	if ((httpObj.readyState == 4) && (httpObj.status == 200)){ //ファイル取得OK
		xmlData = httpObj.responseXML;
		scheduleListTags = xmlData.getElementsByTagName("schedule");
		records = scheduleListTags.length; //ファイル内のスケジュール日数
		//データ内容表示用変数代入
		resultText = "**** 読込ファイルのデータ表示テスト ****<hr color='gray'>";
		for(i=0; i<records; i++){
			resultText = resultText + eval(i+1) + "：" + scheduleListTags[i].getAttribute("month") + "/"
					 + scheduleListTags[i].getAttribute("day") + "<br>";
			if (scheduleListTags[i].getElementsByTagName("stitle").length != 0){
				titleNodes = scheduleListTags[i].getElementsByTagName("stitle");
				titleString = titleNodes[0].text;
				}else{
					titleString = "";
			}
			if (scheduleListTags[i].getElementsByTagName("stext").length != 0){
				textNodes = scheduleListTags[i].getElementsByTagName("stext");
				textString = textNodes[0].text;
				}else{
					textString = "";
			}
			if ((titleString != "") || (textString != "")){
				resultText = resultText + "タイトル：" + titleString + "　[詳細内容]："
						 + textString + "<br>";
				}else{
					resultText = resultText + "予定無し<br>";
			}
		}
		document.getElementById("detail").innerHTML = resultText;
		}else if((httpObj.readyState == 4) && (httpObj.status == 404)){ //指定されたファイルが存在しない
			document.getElementById("detail").innerText = "XMLファイルを正常に読み込む事ができませんでした。";
		}else{
			document.getElementById("detail").innerHTML = "<b>wait．．．．．．</b>";
	}

}

//-------------------------------------------------------
//XMLファイル情報のレスポンスを取得して選択日のスケジュールを画面上に表示（コールバック関数）
function displaySchedule(){

	findMonth = document.getElementById("month").innerHTML;

	if ((httpObj.readyState == 4) && (httpObj.status == 200)){ //ファイル取得OK
		xmlData = httpObj.responseXML;
		scheduleListTags = xmlData.getElementsByTagName("schedule");
		records = scheduleListTags.length; //ファイル内のスケジュール日数
		//データ内容表示用変数代入
		for(i=0; i<records; i++){
			currentMonth = scheduleListTags[i].getAttribute("month");
			currentDay = scheduleListTags[i].getAttribute("day");
			currentWeek = scheduleListTags[i].getAttribute("week");
			if ((currentMonth == findMonth) && (currentDay == findDay)){
				dateBar = "**** " + currentMonth + "月 " + currentDay + "日 (" + currentWeek + "） ****<hr color='gray' size = '1'>";
				resultText = dateBar;
				if (scheduleListTags[i].getElementsByTagName("stitle").length != 0){
					titleNodes = scheduleListTags[i].getElementsByTagName("stitle");
					titleString = titleNodes[0].text;
					}else{
						titleString = "";
				}
				if (scheduleListTags[i].getElementsByTagName("stext").length != 0){
					textNodes = scheduleListTags[i].getElementsByTagName("stext");
					textString = textNodes[0].text;
					}else{
						textString = "";
				}
				if (titleString != ""){
					resultText = resultText + "<div class='scheduletitle'>" + titleString + "</div><br>";
					}else{
						resultText = resultText + "<br>";
				}
				if (textString != ""){
					resultText = resultText + "<div class='scheduletext'>" + textString + "</div><br>";
					}else{
						resultText = resultText + "<br>";
				}
				if ((titleString == "") && (textString == "")){
					resultText = "現在の予定はありません。";
					}else{
						break;
				}
				}else{
					resultText = "現在の予定はありません。";
			}
		}
		document.getElementById("detail").innerHTML = resultText;
		}else if((httpObj.readyState == 4) && (httpObj.status == 404)){ //指定されたファイルが存在しない
			document.getElementById("detail").innerText = "XMLファイルを正常に読み込む事ができませんでした。";
		}else{
			document.getElementById("detail").innerHTML = "<b>wait．．．．．．</b>";
	}

}

