// JavaScript Document

window.onload = function() {
	var cookie = readCookie("style");
	var title = cookie ? cookie : getPreferredStyleSheet();
	setActiveStyleSheet(title);
	add_chimg("rollover");
	
	loadSchedule();
}

var httpObj;
var preloadFrame = 1;
var preloadActive = false;
var preloadTime = 0;
var month = 1;

myOP = window.opera;            // OP
myN6 = document.getElementById; // N6
myIE = document.all;            // IE
myN4 = document.layers;         // N4
if      (myOP) myBR="O6"; // ブラウザは OP6以上
else if (myIE) myBR="I4"; // ブラウザは IE4以上
else if (myN6) myBR="N6"; // ブラウザは NS6以上
else if (myN4) myBR="N4"; // ブラウザは NN4
else           myBR="";   // ブラウザは 不明

function createXMLHttpRequest() {
  if (window.XMLHttpRequest) {
    return new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    try {
      return new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        return new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e2) {
        return null;
      }
    }
  } else {
    return null;
  }
}

function loadSchedule(relative) {
	httpObj = createXMLHttpRequest();
	preloadActive = true;
	preloadAnimStart();
	document.getElementById("scheduleTable").style.display = "none";
	document.getElementById("noticeArea").style.display = "none";
	window.scrollTo(0,0);
	if(httpObj) {
		httpObj.onreadystatechange = checkSchedule;
		hash=location.hash.split("_");
		if((hash[0]!="")&&(hash[1]!="")){
			httpObj.open("GET","schedule.php?year="+hash[0].slice(1,5)+"&month="+hash[1]+"&rel="+relative,true);
		}else{
			httpObj.open("GET","schedule.php?rel="+relative,true);
		}

		httpObj.send(null);
	}
}

function checkSchedule() {
	if(httpObj.readyState == 4 && httpObj.status == 200) {
		var schedule = httpObj.responseXML.getElementsByTagName("schedules");
		month = schedule[0].attributes[1].value;
		if(month != 0) {

			if (myBR == "I4"){
				document.getElementById("schedule_title").innerText = month+"月の診察スケジュール";
			}else if (myBR == "N6") {
				myNode=document.getElementById("schedule_title");
				myNode.firstChild.nodeValue = month+"月の診察スケジュール";
			}
		
			var weeks = schedule[0].attributes[2].value;

			if(weeks < 5) {
				document.getElementById("date_4").style.display = "none";
				document.getElementById("schedule_4").style.display = "none";
				document.getElementById("note_4").style.display = "none";
				document.getElementById("date_5").style.display = "none";
				document.getElementById("schedule_5").style.display = "none";
				document.getElementById("note_5").style.display = "none";
			}else if(weeks < 6){
				document.getElementById("date_4").style.display = "";
				document.getElementById("schedule_4").style.display = "";
				document.getElementById("note_4").style.display = "";
				document.getElementById("date_5").style.display = "none";
				document.getElementById("schedule_5").style.display = "none";
				document.getElementById("note_5").style.display = "none";
			}else {
				document.getElementById("date_4").style.display = "";
				document.getElementById("schedule_4").style.display = "";
				document.getElementById("note_4").style.display = "";
				document.getElementById("date_5").style.display = "";
				document.getElementById("schedule_5").style.display = "";
				document.getElementById("note_5").style.display = "";
			}

			var days = httpObj.responseXML.getElementsByTagName("day");
			var thetimes1 = httpObj.responseXML.getElementsByTagName("thetime1");
			var thetimes2 = httpObj.responseXML.getElementsByTagName("thetime2");
			var notes = httpObj.responseXML.getElementsByTagName("note");

			for(var i = 0; i < days.length; ++i) {
				var myid = days[i].attributes[0].value;
				var mytype = days[i].attributes[1].value;
				var day = days[i].attributes[2].value;

				var scheduleNode1 = thetimes1[i].firstChild;
				var thetime1;
				if(scheduleNode1 != null) {
					thetime1 = scheduleNode1.nodeValue;
				}else {
					thetime1 = "　";
				}

				var scheduleNode2 = thetimes2[i].firstChild;
				var thetime2;
				if(scheduleNode2 != null) {
					thetime2 = scheduleNode2.nodeValue;
				}else {
					thetime2 = "　";
				}

				var noteNode = notes[i].firstChild;
				var note;
				if(noteNode != null) {
					note = noteNode.nodeValue;
				}else {
					note = "　";
				}

				if (myBR == "I4"){
					document.getElementById("date_"+myid).innerText = day;
					document.getElementById("schedule_"+myid).childNodes[0].innerText = thetime1;
					document.getElementById("schedule_"+myid).childNodes[1].innerText = thetime2;
					document.getElementById("note_"+myid).innerText = note;
				}else if (myBR == "N6") {
					myNode=document.getElementById("date_"+myid);
					myNode.firstChild.nodeValue = day;

					myNode=document.getElementById("schedule_"+myid);
					myNode.childNodes[0].firstChild.nodeValue = thetime1;
					myNode.childNodes[1].firstChild.nodeValue = thetime2;
				
					myNode=document.getElementById("note_"+myid);
					myNode.firstChild.nodeValue = note;
				}

				if(mytype == "sunday") {
					document.getElementById("date_"+myid).className = "date sunday";
					document.getElementById("schedule_"+myid).className = "sunday";
					document.getElementById("note_"+myid).className = "sunday";
				}else if(mytype == "saturday") {
					document.getElementById("date_"+myid).className = "date saturday";
					document.getElementById("schedule_"+myid).className = "saturday";
					document.getElementById("note_"+myid).className = "saturday";
				}else if(mytype == "absence") {
					document.getElementById("date_"+myid).className = "date absence";
					document.getElementById("schedule_"+myid).className = "absence";
					document.getElementById("note_"+myid).className = "absence";
				}else if(mytype == "absence_am") {
					document.getElementById("date_"+myid).className = "date absence_am";
					document.getElementById("schedule_"+myid).className = "absence_am";
					document.getElementById("note_"+myid).className = "absence_am";
				}else if(mytype == "absence_pm") {
					document.getElementById("date_"+myid).className = "date absence_pm";
					document.getElementById("schedule_"+myid).className = "absence_pm";
					document.getElementById("note_"+myid).className = "absence_pm";
				}else {
					document.getElementById("date_"+myid).className = "date";
					document.getElementById("schedule_"+myid).className = "";
					document.getElementById("note_"+myid).className = "";
				}
			}

			var othernotice = httpObj.responseXML.getElementsByTagName("othernotice");
		
			if(othernotice[0].firstChild != null) {
				if (myBR == "I4"){
					document.getElementById("othernotice").innerText = othernotice[0].firstChild.nodeValue;
				}else if (myBR == "N6") {
					myNode=document.getElementById("othernotice");
					myNode.firstChild.nodeValue = othernotice[0].firstChild.nodeValue;
				}
			}else {
				if (myBR == "I4"){
					document.getElementById("othernotice").innerText = "なし";
				}else if (myBR == "N6") {
					myNode=document.getElementById("othernotice");
					myNode.firstChild.nodeValue = "なし";
				}
			}
			document.getElementById("scheduleTable").style.display = "";
			document.getElementById("noticeArea").style.display = "";
		}else {

			if (myBR == "I4"){
				document.getElementById("schedule_title").innerText = "データがありません";
			}else if (myBR == "N6") {
				myNode=document.getElementById("schedule_title");
				myNode.firstChild.nodeValue = "データがありません";
			}
		
			document.getElementById("scheduleTable").style.display = "none";
			document.getElementById("noticeArea").style.display = "none";
		}

		preloadActive = false;
	}
}

function preloadAnimStart() {
	preloadTime = new Date();
	document.getElementById("LoadSpin").style.display = "block";
	preloadFrame = 1;
	document.getElementById("SpinImage").src = 'img/zoom-spin-'+preloadFrame+'.png';
	preloadAnimTimer = setInterval("preloadAnim()", 100);
}

function preloadAnim() {
	if (preloadActive != false) {
		document.getElementById("SpinImage").src = 'img/zoom-spin-'+preloadFrame+'.png';
		preloadFrame++;
		if (preloadFrame > 12) preloadFrame = 1;
	} else {
		document.getElementById("LoadSpin").style.display = "none";
		clearInterval(preloadAnimTimer);
	}
}





