var janlTitle;//RSSタイトル格納用配列

function createHttpRequest(){// XMLファイルを開くための関数
	if(window.ActiveXObject){
		try{
			return new ActiveXobject("Msxml2.XMLHTTP")
		}catch(e){
			try{
				return new ActiveXObject("Microsoft.XMLHTTP")
			}catch(e2){
				return null;
			}
		}
	}else if(window.XMLHttpRequest){
		return new XMLHttpRequest();
	}else{
		return null;
	}
}

function listEntries(booksInfo) {//本を表示するgba_searchのコールバック関数：表示先はidが[ISBN:+資料のISBN](ない時は出力しない)
  for (i in booksInfo) {
    // Create a DIV for each book
    var book = booksInfo[i];
    var thumbnailDiv = document.createElement("div");
    thumbnailDiv.className = "thumbnail";
    // Add a link to each books informtaion page
    var a = document.createElement("a");
    a.href = book.info_url;
    a.setAttribute("target","_blank");
  	if(imgflg=="true"){	//表紙画像表示フラグがtrueの時
    	var img = document.createElement("img");
    	img.src = book.thumbnail_url; 
    	img.setAttribute("border","0");
    	a.appendChild(img);
  	}
    var p = document.createElement("p");
    if(book.preview != "noview"&&imgflg=="false"){
    	p.style.paddingTop="0.5em";
    	p.style.paddingBottom="0.5em";
    	p.innerHTML ="preview<br>byGoogle";
    	var anc_class="preview";
    }else if(book.preview == "noview"&&imgflg=="false"){
        p.style.paddingTop="0.5em";
    	p.style.paddingBottom="0.5em";
    	p.innerHTML =" 概要有<br>byGoogle";
    	var anc_class="noview";
    }else if(book.preview != "noview"&&imgflg=="true"){
    	p.innerHTML ="byGoogle";
    	var anc_class="preview";
    }else{
    	p.innerHTML ="byGoogle";
    	var anc_class="noview";
    }
    p.style.margin = "0"; 
    a.appendChild(p); 
    a.className=anc_class;
    thumbnailDiv.appendChild(a);
	var divisbn = document.getElementById('ISBN:'+ book.bib_key);
	if (divisbn){
		var thumb=divisbn.getElementsByTagName("div");
		for(var j=0;j<thumb.length;j++){
			if(thumb[j].getAttribute('className')=='thumbnail'){
				thumb[j].parentNode.removeChild(thumb[j]);
			}else if(thumb[j].getAttribute('class')=='thumbnail'){
				thumb[j].parentNode.removeChild(thumb[j]);
			}
			
		}
		divisbn.insertBefore(thumbnailDiv,divisbn.childNodes[0]);
	}
  }
}

function gba_search(isbn) {//ISBNを引数にして、idが[ISBN:+資料のISBN]のところに表示するための関数
  var scriptElement = document.createElement("script");
  scriptElement.setAttribute("id", "json"+isbn);
  scriptElement.setAttribute("src","http://books.google.com/books?bibkeys="+isbn+"&jscmd=viewapi&callback=listEntries");
  scriptElement.setAttribute("type", "text/javascript");
  // make the request to Google booksearch
  document.documentElement.firstChild.appendChild(scriptElement);
}

function reViewRss(listno,div){	//RSSを表示する際に＋GoogleBookAPIs、つまりメインプログラム
  var filename = newrss[listno][0];
  var flg = newrss[listno][1];
	
//以下、画面の初期化プロセス//
  var jsonScript = document.getElementsByTagName("script");
  if (i in jsonScript) {
  	if(jsonScript[i].getAttrribute('id').indexOf("json")==0){
    	jsonScript[i].parentNode.removeChild(jsonScript[i]);
  	}
  }
  document.getElementById('t_list').innerHTML="";

//初期化ここまで。　以下RSSリスト作成//

  document.getElementById('t_list').innerHTML +="<a href=\"#\" onClick=\"window.location.reload();\" style=\"width:6em;\">RSS一覧</a>";
  for(var i=0;i<newrss.length;i++){
  	if(i==listno){
  		document.getElementById('t_list').innerHTML +="<span class=\"selected\" style=\"width:"+(janlTitle[i].length+2)+"em;\">"+ janlTitle[i] +"</span>";
  	}else{
  		document.getElementById('t_list').innerHTML +="<a href=\"#\" onClick=\"reViewRss('"+i+"','"+div+"')\" style=\"width:"+(janlTitle[i].length+2)+"em;\">"+janlTitle[i]+"</a>";
  	}
  }

//ここからRSSを表示型にを作成。Ajax処理//
  var httpobj = createHttpRequest(); //検索対象のファイルを開く

  httpobj.open("GET",filename,false);
  httpobj.send(null);
  var xmldoc = httpobj.responseXML;
  if (typeof(xmldoc.normalize) != "undefined") {
	  xmldoc.normalize();
  }
  var node = xmldoc.getElementsByTagName('item');
  document.getElementById(div).innerHTML="";
  if(!node.length){
  	alert(filename+'を確認してください');
  }else{
	for(i=0; i<node.length; i++){ //検索対象ノードを順番に表示
		var desc="";
		var lidiv = document.createElement("div");
		if(flg=='true'){
			var thumb = document.createElement("div");
			thumb.className="thumbnail";
    		var p = document.createElement("p");
			p.innerHTML ="該当無<br>　";
			p.style.margin = "0";
    		p.style.paddingTop="0.5em";
    		p.style.paddingBottom="0.5em";
			thumb.style.width="3.8em";
			thumb.appendChild(p);
			lidiv.appendChild(thumb);
		}
		var link = document.createElement("a");
		link.setAttribute("target","_blank");
		var isbn="";
		for(var j=0; j<node[i].childNodes.length; j++){
			if(node[i].childNodes[j].hasChildNodes()){
				if(node[i].childNodes[j].nodeName=='title'){
					link.appendChild(document.createTextNode(node[i].childNodes[j].childNodes[0].nodeValue));
				}else if(node[i].childNodes[j].nodeName=='link'){
					link.setAttribute('href',node[i].childNodes[j].childNodes[0].nodeValue);
				}else if(node[i].childNodes[j].nodeName=='guid'){
					var isbn=node[i].childNodes[j].childNodes[0].nodeValue;
				}else if(node[i].childNodes[j].nodeName=='pubDate'){
					var pubd=node[i].childNodes[j].childNodes[0].nodeValue;
				}else if(node[i].childNodes[j].nodeName=='#text'){
					//	何もしない//
				}else{
					for(var k=0; k<node[i].childNodes[j].childNodes.length; k++){
						desc +=node[i].childNodes[j].childNodes[k].nodeValue+'<br>';
					}
				}
			}
		}

		lidiv.appendChild(link);
		lidiv.innerHTML += '<br>　' + desc + '　' + '書誌登録日' + pubd;
		if(isbn){
			lidiv.setAttribute('id','ISBN:' + isbn);
		}
		document.getElementById(div).appendChild(lidiv);
		if(isbn && flg == "true"){
			gba_search(isbn);
		}
	}
	document.getElementById(div).innerHTML +='<div></div>';
  }
}

function viewRss(){//初期画面（対象RSS一覧）表示と、janlTitleの作成
  var filename;
  janlTitle =new Array();
  document.getElementById('t_list').innerHTML ="<span class=\"selected\" style=\"width:6em;\">RSS一覧</span>";
  for(var i=0;i<newrss.length;i++){
    var div = document.createElement("div");
  	filename=newrss[i][0];
  	var httpobj = createHttpRequest(); //検索対象のファイルを開く
    httpobj.open("GET",filename,false);
    httpobj.send(null);
    var xmldoc = httpobj.responseXML;
    if (typeof(xmldoc.normalize) != "undefined") {
	  xmldoc.normalize();
	}
	var node = xmldoc.getElementsByTagName('channel');
	if(!node.length){
		alert(newrss[i][0]+'を確認してください');
	}else{
		for(var j=0; j<node.length; j++){ //対象ノードを順番に表示
			var desc="";
			for(var k=0; k<node[j].childNodes.length; k++){
				if(node[j].childNodes[k].hasChildNodes()){
					if(node[j].childNodes[k].nodeName=='title'){
						var tit=node[j].childNodes[k].childNodes[0].nodeValue;
						janlTitle[i]=tit.replace(delstr,"");
					}else if(node[j].childNodes[k].nodeName=='lastBuildDate'){
						var bday=node[j].childNodes[k].childNodes[0].nodeValue;
					}else if(node[j].childNodes[k].nodeName=='link'){
						var link = node[j].childNodes[k].childNodes[0].nodeValue;
					}else if(node[j].childNodes[k].nodeName=='#text'||node[j].childNodes[k].nodeName=='language'||node[j].childNodes[k].nodeName=='item'){
						//	何もしない//
					}else{
						for(var l=0; l<node[j].childNodes[k].childNodes.length; l++){
							desc +=' '+node[j].childNodes[k].childNodes[l].nodeValue+'<br>';
						}
					}
				}
			}
			div.innerHTML += ' <a href=\"'+filename+'"><img src=\"'+feedIcon+'\" alt=\"rss\" border=\"0\"></a> <b>'+tit+'</b>　<a href=\"#\" onClick=\"reViewRss(\''+i+'\',\'RSSfeed\')\">内容を見る</a>　更新日:'+bday+'<br>　';//+desc+'';
		}
	}
  	document.getElementById('t_list').innerHTML +="<a href=\"#\" onClick=\"reViewRss('"+i+"','RSSfeed')\" style=\"width:"+(janlTitle[i].length+2)+"em;\">"+janlTitle[i]+"</a>";
	document.getElementById('RSSfeed').appendChild(div);
  }
  div.innerHTML +='<div></div>';
}

window.onload = function(){viewRss()}


