var CalenderFileName ='homepage/js/yasumi.txt';	//カレンダー用テキストファイル
var looksLoginObj;	//ログイン通信用オブジェクト
var reBookCsvFile='homepage/js/rebook.csv';	//在架なう用テキストファイル
var reBookDivId='rebook';	//在架なう挿入対象
var reBookInterval = 2500;	//表示インターバル
var reBookScrollTime = 800;	//スクロールインターバル
var reBookHeight = 5; //一度に表示する行数
var reBookArr = new Array();	//在架なうリスト挿入用配列
var rebookd;
var reBookTimerID;	//タイマーID
var reBookStopGyo;

function insertBook(gyo,flg){	//gyoは挿入行、flgはタイマの設定有無を指定
	rebookd.innerHTML="";
	if(navigator.userAgent.indexOf('MSIE')!=-1){
		rebookd.style.filter = 'alpha(opacity=100)';
	}else{
		rebookd.style.opacity=1;
	}
	for(var i=1;i<=reBookHeight;i++){
		if(gyo-i<=0)gyo=reBookArr.length-1;
		var anc = getAnc(reBookArr[gyo-i][0],trimStr(reBookArr[gyo-i][6]));
		rebookd.innerHTML = '<div style="white-space:nowrap;overflow:hidden;"><a href="'+anc["id"]+'">'+ reBookArr[gyo-i][2] +'</a>/'+ reBookArr[gyo-i][3] +'</div>' + rebookd.innerHTML;
	
	}
	reBookStopGyo=gyo-i;
	if(flg==1){
		if(gyo==0){	//行が先頭になったら、最終行からもう一度
			var ml = reBookArr.length-1;
			reBookTimerID=setTimeout("reBookScroll('"+ml+"',1)",reBookInterval);
		}else{	//それ以外は、前の行を挿入
			gyo--;
			reBookTimerID=setTimeout("reBookScroll('"+reBookStopGyo+"',1)",reBookInterval);
		}
	}
}
function reBookScroll(gyo,flg){
	var t = reBookScrollTime/reBookHeight;
	for(var i=0; i < reBookHeight; i++){
		var alp= (reBookHeight-i-2)/reBookHeight;
		var msAlp=alp*100;
		if(alp<0){
			alp=0;
			msAlp=0;
		}
		setTimeout("rebookd.innerHTML = '<br>' + rebookd.innerHTML; if(navigator.userAgent.indexOf('MSIE')!=-1){rebookd.style.filter = 'alpha(opacity="+msAlp+")';}else{rebookd.style.opacity="+alp+";}",t*i);
	}
	reBookTimerID=setTimeout("insertBook('"+gyo+"','"+flg+"')",reBookScrollTime);
}
function rb_stopList(){clearTimeout(reBookTimerID);}
function rb_startList(){var gyo=reBookStopGyo-1;reBookTimerID=setTimeout("reBookScroll('"+gyo+"',1)",500);}
function removediv(divid){	//与えられたIDのdivを削除する
 var d = document.getElementById(divid);
 d.parentNode.removeChild(d);
}
function returnBook(){	//トップぺージに在架リストを流す
	var cf = reBookCsvFile;
	var httpobj = createHttpRequest(); //検索対象のファイルを開く
    httpobj.open("GET",cf,true);
	httpobj.onreadystatechange = function(){
		if (httpobj.readyState==4){
			if(httpobj.status == 200||httpobj.status == 0){
				var csvdoc = httpobj.responseText;
				var csv = new Array();
  				var lines = csvdoc.split('\n');
  				var mxlng=lines.length;
  				for (var j = 0; j < mxlng; j++) {
  					lines[j]=lines[j].replace(/"/g,'');
    				var cells = lines[j].split(",");
    				if(cells.length >1)csv.push(cells);
				}	//"ここまでで配列csvにデータを格納
				var d = document.getElementById(reBookDivId);
				reBookArr = csv;
				var ml = reBookArr.length;
				var h=reBookHeight*2;
				d.innerHTML='<img src="homepage/js/zaikanow.gif" alt="在架なう！" style="height:1.2em;"> すぐ貸出できる本(<a href="#" style="font-size:0.8em;" onClick="rebook(0)">一覧</a>)';
				rebookd=document.createElement('div');
				rebookd.setAttribute('id','rebooklist');
				rebookd.onmouseover=rb_stopList;
				rebookd.onmouseout=rb_startList;
				rebookd.style.height= h+'em';
				rebookd.style.fontSize='80%';
				rebookd.style.lineHeight= '2em';
				rebookd.style.paddingLeft='0.5em';
				rebookd.style.overflow='hidden';
				rebookd.style.borderTop='solid 1px #999';
				d.appendChild(rebookd);
				var r = Math.floor( Math.random() * 100 ); //開始位置をランダムに
				for(var i=ml-1-r; i>ml-8-r ; i--){
					insertBook(i,0);
				}
				i=ml-8-r-reBookHeight;
				reBookTimerID=setTimeout("reBookScroll('"+i+"',1)",reBookInterval);	//行挿入タイマ開始
			}
		}
	}
    httpobj.send(null);
}
function rebook(num){	//「一覧する」をクリックの際divを表示
	if(document.getElementById('rebookbox')){
		var d = document.getElementById('rebookbox');
	}else{
		var d =document.createElement('div');
		var b = document.getElementsByTagName('body');
		d.setAttribute('id','rebookbox');
		b[0].appendChild(d);
	}
	d.style.width = '80%';
	d.style.overflow = 'auto';
	d.style.backgroundColor ='#fff';
	d.style.border = 'solid 1px #999';
	d.style.position ='absolute';
	d.style.top = '45px';
	d.style.right = '80px';
	d.style.padding = '0 0.5em';
	d.style.fontSize = '90%';
	d.innerHTML ='<a href="#" style="display:block; float:right;" onClick="removediv('+"'rebookbox'"+')">×閉じる</a>';
	d.innerHTML +='<h2 style="font-size:1.5em;"><img src="homepage/js/zaikanow.gif" alt="在架なう！"></h2>';
	d.innerHTML +='「在架なう！」は、新しく受入れされたり、他館から戻ってきたり、皆さまから返却されたりして、<br>「在架」(すぐ貸し出し可能な状態)になった資料を紹介するコーナーです。<br>リストは30分おきに更新されます。（すぐに貸出中になることもあるのでご注意ください）<br>';
	d.innerHTML +='図書館検索サイト「カーリル」は表紙画像などをご確認いただける<b class="red">外部サイト</b>です。<br>';
	d.innerHTML +='<hr>';
	
	var arr = reBookArr.sort(function(a, b) {
		if(a[1] == b[1]){
			return (a[3] > b[3]) ? 1 : -1;
		}
		return (a[1] > b[1]) ? 1 : -1;
	});
	var tbl = document.createElement('table');
	var bl = document.createElement('tbody');
	tbl.appendChild(bl);
	tbl.setAttribute('id','rebooklist');
	tbl.style.width='99%';
	var maxlen = arr.length;
	var tr = document.createElement('tr');
	tr.style.textAlign='left';
	bl.appendChild(tr);
	var th=document.createElement('th');
	th.innerHTML='形態';
	tr.appendChild(th);
	th=document.createElement('th');
	th.innerHTML='分類';
	tr.appendChild(th);
	th=document.createElement('th');
	th.innerHTML='表紙など';
	th.noWrap = "true";
	tr.appendChild(th);
	th=document.createElement('th');
	th.innerHTML='タイトル/その他';
	tr.appendChild(th);
	
    for(var i=num; i < num+20; i++){
    	arr[i][6]=trimStr(arr[i][6]);
    	var anc = getAnc(arr[i][0],arr[i][6]);
    	var isbn =ISBN13to10(arr[i][5]);
    	if(isbn !=0&&(anc["keitai"]=="コミック"||anc["keitai"]=="児童書"||anc["keitai"]=="一般書")){	
    		tr = document.createElement('tr');
			bl.appendChild(tr);
			th=document.createElement('td');
			th.innerHTML=anc["keitai"];
			tr.appendChild(th);
    		th.noWrap = "true";
			th=document.createElement('td');
			th.innerHTML=arr[i][1].substring(-1,5);
			tr.appendChild(th);
    		th.noWrap = "true";
			th=document.createElement('td');
			th.innerHTML='<a href="http://calil.jp/book/'+isbn+'" target="_calil"><img src="homepage/js/calil.gif" alt="calil" style="height:0.9em;" border="0"></a>';
			tr.appendChild(th);
			th=document.createElement('td');
			th.innerHTML='<a href="'+anc["id"]+'" target="_nodaopac">'+ arr[i][2] +'</a> /'+ arr[i][3] +'　'+arr[i][4]+'年';
			tr.appendChild(th);
		}else{
    		tr = document.createElement('tr');
			bl.appendChild(tr);
			th=document.createElement('td');
			th.innerHTML=anc["keitai"]+'　';
			tr.appendChild(th);
			th=document.createElement('td');
			th.innerHTML=arr[i][1].substring(-1,5);
			tr.appendChild(th);
			th=document.createElement('td');
			th.innerHTML=' ';
			tr.appendChild(th);
			th=document.createElement('td');
			th.innerHTML='<a href="'+anc["id"]+'" target="_blank">'+ arr[i][2] +'</a> /'+ arr[i][3] +'　'+arr[i][4]+'年';
			tr.appendChild(th);
		}
		if(i==maxlen-1)break;
	}
	d.appendChild(tbl);
	d.innerHTML += "<hr>";
	
	//以下、ページ表示
	var ft = document.createElement('div');
	ft.style.textAlign='center';
	ft.innerHTML ="";
	if(num != 0){
		ft.innerHTML += '<a href="#" onClick="rebook('+(num-20)+')">＜戻る</a>';
	}else{
		ft.innerHTML += '＜戻る';
	}
	var pg = Math.ceil(maxlen/20);
	for(var k = 0; k < pg; k++){
		if(num/20 == k){
			ft.innerHTML +='　<b>'+(k+1)+'</b> ';
		}else{
			ft.innerHTML +='　<a href="#" onClick="rebook('+(k*20)+')">'+(k+1)+'</a> ';
		}
	}
	if(i != maxlen-1){
		ft.innerHTML += '　<a href="#" onClick="rebook('+(num+20)+')">進む＞</a>';
	}else{
		ft.innerHTML += '　進む＞';
	}
	d.appendChild(ft);
}
function getAnc(id,keitai){	//資料形態ごとにリンク前文を作成
	var anc = new Array();
	if(keitai=='19'){
		anc["id"]='OPP1500?SELDATA=COMIC&SSNO='+id;
		anc["keitai"]='コミック';
	}else if(keitai=='51'){
		anc["id"]='OPP1500?SELDATA=AV&SSNO='+id;
		anc["keitai"]='ＣＤ　';
	}else if(keitai=='53'){
		anc["id"]='OPP1500?SELDATA=AV&SSNO='+id;
		anc["keitai"]='ビデオ';
	}else if(keitai=='55'){
		anc["id"]='OPP1500?SELDATA=AV&SSNO='+id;
		anc["keitai"]='ＤＶＤ';
	}else if(keitai.indexOf('2')==0){
		anc["id"]='OPP1500?SELDATA=TOSHO&SSNO='+id;
		anc["keitai"]='児童書';
		
	}else{
		anc["id"]='OPP1500?SELDATA=TOSHO&SSNO='+id;
		anc["keitai"]='一般書';
	}
	return anc;
}
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 ISBN13to10( isbn13 ){	//isbn13で与えられた文字列をISBNを10桁へ修正（10桁の場合はそのまま）
	isbn13 = isbn13.replace(/(^\s+)|(\s+$)/g, "");
	isbn13 = isbn13.replace(/\r\n/g,'');
	isbn13 = isbn13.replace(/(\n|\r)/g, '');
    var base = isbn13.toString().split("-").join("");
	if(base.length==13){
		base=base.slice(3,-1);
	    var digit = 0;
	    for(var i=0; i<base .length; i++){
	        digit += Number(base.charAt(i)) * (10-i);
	    }
	    digit %= 11;
	    digit = 11-digit;
	    if(digit == 10){
	    	digit='X';
	    }else if(digit == 11){
	    	digit='0';
	    }
	    return base + digit.toString();
	}else if(base.length==10){
		return base;
	}else{
		return '0';
	}
}
function trimStr(word){	//文字列をTrimする
	word = word.replace(/(^\s+)|(\s+$)/g, "");
	word = word.replace(/\r\n/g,'');
	word = word.replace(/(\n|\r)/g, '');
	return word;
}

//"以下カレンダー
function carender(){
 var myDate=new Date();
 var y=myDate.getFullYear();
 var m=myDate.getMonth()+1;
 var d = myDate.getDate();
 //以下monthの処理、当月と翌月を２ケタ表示に修正する
 if(m==12){
  var nm=1;
  var ny=y+1;
 }else{
  var nm=m+1;
  var ny=y;
 }
 m='0'+m;
 nm='0'+nm;
 var lng=m.length;
 m=m.substr(lng-2,2);
 var nlng=nm.length;
 nm=nm.substr(nlng-2,2);
 var kc='01'+y+m;//01YYYYMM(今月)の文字列作成
 var kcn='01'+ny+nm;//01YYYYMM(来月)の文字列作成
 var mc='02'+y+m;//02YYYYMM(今月)の文字列作成
 var mcn='02'+ny+nm;//02YYYYMM(今月)の文字列作成
 var diva = document.createElement('div');
 var divb = document.createElement('div');
 var httpobj = createHttpRequest(); //検索対象のファイルを開く
 httpobj.open("GET",CalenderFileName,true);
 httpobj.onreadystatechange = function(){
 if (httpobj.readyState==4){
	if(httpobj.status == 200||httpobj.status == 0){
		var csvdoc = httpobj.responseText;
		var lines = csvdoc.split('\n');
		for (var j = 0; j < lines.length; j++) {//以下条件分岐で、カレンダーテキストより該当行を取得
			if(lines[j].indexOf(kc)>=0){var kou_c=lines[j];}
			if(lines[j].indexOf(kcn)>=0){var kou_cn=lines[j];}
			if(lines[j].indexOf(mc)>=0){var min_c=lines[j];}
			if(lines[j].indexOf(mcn)>=0){var min_cn=lines[j];}
		}
		 diva.innerHTML='<h3 class="dark">野田市立興風図書館</h3>';
		if(kou_c){
			putCarend(diva,kou_c,d);
		}else{
			diva.innerHTML+='データがありません。<br><a href="OPP0100">お知らせ</a>よりご確認ください。<br>';
		}
		if(kou_cn){
			putCarend(diva,kou_cn,0);
		}
		divb.innerHTML='<h3 class="dark">他の野田市立図書館</h3>';
		if(min_c){
			putCarend(divb,min_c,d);
		}else{
			diva.innerHTML+='データがありません。<br><a href="OPP0100">お知らせ</a>よりご確認ください。<br>';
		}
		if(min_cn){
			putCarend(divb,min_cn,0);
		}
		var d = document.getElementById('calenda');
		d.innerHTML='<div style="padding-left:1em;"><span style="background-color:#f99;">日付</span>は休館日です。　<b>(日付)</b>は今日の日付です。</div>';
		d.appendChild(diva);
		d.appendChild(divb);
		if(navigator.appName == "Microsoft Internet Explorer"){
			diva.style.styleFloat='left';
			divb.style.styleFloat='left';
		}else{
			diva.style.cssFloat='left';
			divb.style.cssFloat='left';
		}
		diva.style.width='48%';
		divb.style.width='48%';
		diva.style.margin='0.2em';
		divb.style.margin='0.2em';
	}
 }
 }
 httpobj.send(null);
}
function putCarend(div,kou_c,da){//挿入div,開館カレンダー行,今日の日付(太字にするため）,を取得
 var w ='';
 for(var i=8;i<kou_c.length;i++){
 	if(da==(i-7)){
 		if(kou_c.charAt(i)=='o'){
 			w = w+'<td>(<b>'+(i-7)+'</b>)</td>';
 		}else if(kou_c.charAt(i)=='x'){
 			w = w+'<td style="background-color:#f99;">(<b>'+(i-7)+'</b>)</td>';
 		}
 	}else{
 		if(kou_c.charAt(i)=='o'){
 			w = w+'<td>'+(i-7)+'</td>';
 		}else if(kou_c.charAt(i)=='x'){
 			w = w+'<td style="background-color:#f99;">'+(i-7)+'</td>';
 		}
 	}
 	
 	if(kou_c.charAt(6)=='0'){//月が１ケタの時はif内、２桁のelseを行う
 		var d = new Date(kou_c.substr(2,4),kou_c.substr(7,1)-1,(i-7)).getDay();
 	}else{
 		var d = new Date(kou_c.substr(2,4),kou_c.substr(6,2)-1,(i-7)).getDay();
 	}
 	
 	if(d==6){
 		w=w+'</tr>';
 		if(i+1 != kou_c.length)w=w+'<tr align="center">';
 	}
 	if(i==8){
 		for(var k=0;k<d;k++){
 			w='<td> </td>'+w;
 		}
 	}
 }
 var w ='<tr align="center">'+w; 
 div.innerHTML +='<div style="text-align:center;">'+kou_c.substr(2,4)+'年'+kou_c.substr(6,2)+'月の休館日</div>';
 div.innerHTML +='<table border="1" width="100%"><tr style="background-color:#ccc;"><th style="color:#f66;">日</th><th>月</th><th>火</th><th>水</th><th>木</th><th>金</th><th style="color:#66f;">土</th></tr>' + w +'</table>';
}
//以下ログイン表示
function looksLogin(){
	var ua = navigator.userAgent;
	var safari = ua.indexOf("Safari")!=-1;
	var konqueror = ua.indexOf("Konqueror")!=-1;
	var mozes = ((a=navigator.userAgent.split("Gecko/")[1] )?a.split(" ")[0]:0) >= 20011128;
	looksLoginObj = createHttpRequest(); //検索対象のファイルを開く
	if(window.opera || safari || mozes){
		looksLoginObj.onload = function(){onReadyStateChanged();}
	}else{
		looksLoginObj.onreadystatechange = function(){
			if (looksLoginObj.readyState==4){onReadyStateChanged();}
		}
	}
	looksLoginObj.open('GET','OPP0100',false);
    looksLoginObj.send(null);
}
function onReadyStateChanged(){
	var t = looksLoginObj.responseText;
	var d = document.getElementById('lookslogin');
	if(d&&t){
		d.innerHTML='<h2 style="text-align:left;">ログイン</h2>';
		d.style.fontSize='100%';
		if(t.indexOf("現在ログイン中です")>=0){
			d.innerHTML +='<div class="normalanc"><span style="color:#f00;">現在ログイン中。</span><br>ログアウトは<a href="OPP1000">利用状況</a>から</div>';
		}else{
			d.innerHTML +='<iframe src="https://www.library-noda.jp/login2.html" id= "loginframe" frameborder="0" scrolling="no" style="width:100%;" name="loginframe"><a href="login.html">標準ログイン</a>をご利用下さい。</iframe>';
		}
	}
}


