﻿// ===================================
//  asynchronous Javascript + XML Library
//  for change text
//  Author: Masanori Ugawa
//  Ver: 2.0
// ===================================

	
function createRequest(){
	var req = null;
	if("XMLHttpRequest" in window){
		req = new XMLHttpRequest();
	}else if("ActiveXObject" in window){
		try{
			req = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e){
			try{
				req = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e){}
		}
	}
return req;
}

var req;

function init(){
	var divLeftPanel = document.getElementById("leftPanel");
	req = createRequest();
	req.open("GET","setup.xml",false);
	req.send(null);
	var doc = req.responseXML;
	var setup = doc.getElementsByTagName("setup")[0];
	var docsList = setup.childNodes;
	
	var i = 0;
	for(var i = 0; i<docsList.length; i++){
		var docs = docsList.item(i);
		if(docs.nodeType == 1 && docs.nodeName == "title"){
			var l_name = docs.getAttribute("l_name");
		}
		if(docs.nodeType == 1 && docs.nodeName == "documents"){
			var from = docs.getAttribute("from");
			var to = docs.getAttribute("to");
			var prefix = docs.getAttribute("prefix");
			var suffix = docs.getAttribute("suffix");
			var title = docs.getAttribute("title");
			var j = 0;
			var m = 0;
			var n = 0;
			for(var j = from; j<=to; j++){
				m = --j;
				n = ++j;
				divLeftPanel.innerHTML += "<li><a href=\"javascript:requestText('" + j + prefix + suffix + "')\">" + title + m + "泊" + n + "日</a></li>";
			}
		}
	}
}

function init_img(){
	var divimgLink = document.getElementById("imgLink");
	req = createRequest();
	req.open("GET","setup_img.xml",false);
	req.send(null);
	var doc = req.responseXML;
	var setup = doc.getElementsByTagName("setup")[0];
	var docsList = setup.childNodes;
	
	var i = 0;
	for(var i = 0; i<docsList.length; i++){
		var docs = docsList.item(i);
		if(docs.nodeType == 1 && docs.nodeName == "title"){
			var l_name = docs.getAttribute("l_name");
		}
		if(docs.nodeType == 1 && docs.nodeName == "documents"){
			var from = docs.getAttribute("from");
			var to = docs.getAttribute("to");
			var prefix = docs.getAttribute("prefix");
			var suffix = docs.getAttribute("suffix");
			var title = docs.getAttribute("title");
			var j = 0;
			var m = 0;
			var n = 0;
			for(var j = from; j<=to; j++){
				divimgLink.innerHTML += "<li><a href=\"javascript:requestText_img('i/disp/" + prefix + j + suffix + "')\">" + "<img src=\"i/thumb/"+ prefix + j + suffix + "\" /></a></li>";
			}
		}
	}
}

function init_img2(){
	var divimgLink = document.getElementById("imgLink");
	req = createRequest();
	req.open("GET","setup_img.xml",false);
	req.send(null);
	var doc = req.responseXML;
	var setup = doc.getElementsByTagName("setup")[0];
	var docsList = setup.childNodes;
	
	var i = 0;
	for(var i = 0; i<docsList.length; i++){
		var docs = docsList.item(i);
		if(docs.nodeType == 1 && docs.nodeName == "title"){
			var l_name = docs.getAttribute("l_name");
		}
		if(docs.nodeType == 1 && docs.nodeName == "documents"){
			var from = docs.getAttribute("from");
			var to = docs.getAttribute("to");
			var prefix = docs.getAttribute("prefix");
			var suffix = docs.getAttribute("suffix");
			var title = docs.getAttribute("title");
			var j = 0;
			var m = 0;
			var n = 0;
			for(var j = from; j<=to; j++){
				divimgLink.innerHTML += "<li><a href=\"javascript:showImg("+  (j - 1) +")\">" + "<img src=\"i/thumb/"+ prefix + j + suffix + "\" /></a></li>";
			}
		}
	}
}


function requestText(url){
	req = createRequest();
	req.open("GET",url,true);
	req.onreadystatechange = req_readystatechange;
	req.send(null);
}

function requestText_img(url){
	req = createRequest();
	req.open("GET",url,true);
	req.overrideMimeType('text/plain; charset=x-user-defined'); //x-user-defined
	req.onreadystatechange = req_readystatechangeimg;
	req.send(null);
}


function req_readystatechange(){
	var divRightPanel = document.getElementById("rightPanel");
	if(req.readyState == 4){
		if(req.status == 200){
			divRightPanel.innerHTML = req.responseText;
		}else{
			divRightPanel.innerHTML = "システムエラー：読み込めませんでした。";
		}
	}
}

function req_readystatechangeimg(){
	var divImgDisp = document.getElementById("imgDisp");
	if(req.readyState == 4){
		if(req.status == 200){
	var filestream = req.responseText;
	var bytes = [];
	for (i = 0; i < filestream.length; i++)
	bytes[i] = filestream.charCodeAt(i) & 0xff;
  
	var ele = document.createElement('img');
	ele.src = 'data:image/gif;base64,' + base64.encode(String.fromCharCode.apply(String, bytes));

		//divImgDisp.innerHTML = req.responseText;
			var firstChild = divImgDisp.childNodes[0];
			if(firstChild){
			divImgDisp.removeChild(firstChild);
			}
			divImgDisp.appendChild(ele);
		}else{
			divImgDisp.innerHTML = "システムエラー：読み込めませんでした。";
		}
	}
}


// ----------------------------------------------------------

function requestArticle(url){
	req = createRequest();
	req.open("GET",url,true);
	req.onreadystatechange = req_readystatechange2;
	req.send(null);
}

function req_readystatechange2(){
	var divRightPanel = document.getElementById("rightPanel");
	if(req.readyState == 4){
		if(req.status == 200){
			setArticle(req.responseXML);
		}else{
			divRightpanel.innerHTML = "システムエラー：読み込めませんでした。";
		}
	}
}


function getElementText(element){
	var nodes = element.childNodes;
	var result = "";
	for(var l=0; l<nodes.length; l++){
		var item = nodes.item(l);
		if(item.nodeType==3){
			result += item.nodeValue;
		}
	}
	return result;
}

function setArticle(articleDoc){
	var divRightPanel = document.getElementById("rightPanel");
	var title;
	var author;
	var copyright;
	var article = articleDoc.getElementsByTagName("article")[0];
	for(var l = 0; l<article.childNodes.length; l++){
		var item = article.childNodes.item(l);
		if(item.nodeType==1){
			if(item.nodeName == "title"){
				title = getElementText(item);
			}else if(item.nodeName == "author"){
				author = getElementText(item);
			}else if(item.nodeName == "copyright"){
				copyright = getElementText(item);
			}
		}
	}
	divRightPanel.innerHTML = "<h2>" + title + "</h2>";
	var body = articleDoc.getElementsByTagName("body")[0];
	for(var l = 0; l<body.childNodes.length; l++){
		var item = body.childNodes.item(l);
		if(item.nodeType==1){
			if(item.nodeName=="div"){
				divRightPanel.innerHTML += "<div>" + getElementText(item) + "</div>";
			}
		}	
	
	}
}
