PageSourceSearch

https://opac.nijl.ac.jp/media/js_c/opac_details.js?20240722

js nijl.ac.jp collected 2026-09-24 08:51:54 UTC 18,538 bytes, 722 lines download raw bytes

1/* Change Year  */
2function chg_year(url,val) {
3	url = url + '&selyear=' + val;
4	move_detailpage(url,'volumes-list');
5	return false;
6}
7
8/* view detail info (smartphone, iecatsで使用) */
9function view_info(block_id,view_txt,view_img,show,hide){
10	var obj_bb = $(block_id);
11	var obj_txt = $(view_txt);
12	var obj_img = $(view_img);
13	var plus = media_url + 'img/icon_plus.png';
14	var minus = media_url + 'img/icon_minus.png';
15
16	if( obj_bb.is(":visible")) {
17		obj_txt.html(show);
18		obj_img.attr("src", plus);
19	}else{
20		obj_txt.html(hide);
21		obj_img.attr("src", minus);
22	}
23}
24
25/* Book Plus - submit */
26var errflg = 0;
27function view_bookplus(path,isbn,bibid,close_length){
28
29	var url = path;
30	var param = "isbn=" + isbn + "&bibid=" + bibid;
31
32	url = url + "?" +  param;
33
34	var tag = '<center><div class=\"dummy_s_div\"><img class=\"img_loading\"  src=\"' + media_url + 'img/icon_loading_m.gif\"></div></center>';
35
36	$("#bookplus_block").empty();
37	$("#bookplus_block").html(tag);
38	$.ajax({
39		async:true,
40		cache:false,
41		url: url,
42		error: function(){
43			$("#bookplus_block").empty();
44			$("#bookplus_block").hide();
45		},
46		success: function(msg,textStatus){
47			$("#bookplus_block").empty();
48			//$("#bookplus_block").addClass("bookplus_block_success");
49			$("#bookplus_block").addClass("more_bookPlus");
50			//msg = "<textarea readonly>" + msg + "</textarea>";
51			msg = msg.replace(/\n/g, "<br>");
52			$("#bookplus_block").append(msg);
53			linkMake(close_length, "more_bookPlus");
54			preventLongPress("#bookplus_block");
55		}
56	});
57}
58
59/* openBD - submit */
60var errflg = 0;
61function view_openbd(path,isbn,bibid,close_length){
62
63	var url = path;
64	var param = "isbn=" + isbn + "&bibid=" + bibid;
65
66	url = url + "?" +  param;
67
68	var tag = '<center><div class=\"dummy_s_div\"><img class=\"img_loading\"  src=\"' + media_url + 'img/icon_loading_m.gif\"></div></center>';
69
70	$("#openbd_block").empty();
71	$("#openbd_block").html(tag);
72	$.ajax({
73		async:true,
74		cache:false,
75		url: url,
76		error: function(){
77			$("#openbd_block").empty();
78			$("#openbd_block").hide();
79		},
80		success: function(msg,textStatus){
81			$("#openbd_block").empty();
82			$("#openbd_block").addClass("more_openBD");
83			msg = msg.replace(/\n/g, "<br>");
84			$("#openbd_block").append(msg);
85			linkMake(close_length, "more_openBD");
86			preventLongPress("#openbd_block");
87		}
88	});
89}
90
91/******************
92 * 長い文章の開閉   *
93 ******************/
94function linkMake(showSize, className) {
95	var ellipsestext = "...";
96	var moretext = "続きを読む";
97	var lesstext = "閉じる";
98	var crStr = "<br />";
99	var adjustSize = 50;
100	var chkSize = showSize + adjustSize;
101	var escapeAry = ['&amp;', '&lt;', '&gt;', '&nbsp;'];
102	var targetName = 'more';
103	if (className) {
104		targetName = className;
105	}
106	if (document.forms[0].lang.value == "1") {
107		moretext = "Read more";
108		lesstext = "Close";
109	}
110
111	$('.'+targetName).each(function() {
112		var content = $(this).html();
113		var contentLen = content.length;
114		var pos = 0;
115		var cnt = 0;
116		var crPos = 0;
117
118		while (cnt < 6) {
119			pos = content.indexOf(crStr, pos);
120			if (pos < 0) {
121				break;
122			}
123			pos = pos + 4;
124			cnt = cnt + 1;
125			if (cnt == 4) {
126				// 4行目のポジションを保持
127				var crPos = pos;
128			}
129		}
130		if (cnt >= 6) {
131			// 6行以上いくなら、4行までで区切る
132			i = crPos;
133			cutPos = chkSize + 1; // 閉じるリンク生成の条件に必ず入るようにしておく
134		} else {
135			// 開いた結果、1文字とかにならないように、adjustSize以上超えていたら開閉にする
136			chkSize = showSize + adjustSize;
137
138			var cntFlg = true; // <>の範囲はカウントしないように考慮する
139			var charFlg = true; // エスケープ文字もカウントしないように考慮する
140			var cutPos = 0;
141			var notClose = false;
142			for (i = 0; i < contentLen && (cutPos <= chkSize || notClose); i++ ) {
143				var chkdata = content.charAt(i);
144				if (chkdata == '<' && cntFlg) {
145					cntFlg = false;
146
147					// aタグなら、閉じないようにする
148					if (content.charAt(i+1) == 'a') {
149						notClose = true;
150					}
151					continue;
152				} else if (chkdata == '>' && cntFlg == false) {
153					cntFlg = true;
154
155					if (content.charAt(i-1) == 'a') {
156						notClose = false;
157					}
158					continue;
159				}
160				if (cntFlg) {
161					for (var j = 0; j < escapeAry.length; j++) {
162						var escape = escapeAry[j];
163						var escapeLen = escape.length;
164						if (charFlg && content.substring(i, i + escapeLen) == escape) {
165							charFlg = false;
166							continue;
167						} else if (!charFlg && content.substring(i - (escapeLen - 1), i + 1) == escape) {
168							charFlg = true;
169						}
170					}
171				}
172				if (cntFlg && charFlg) {
173					cutPos++;
174				}
175			}
176		}
177
178		if(cutPos > chkSize) {
179			var c = content.substr(0, i);
180			var h = content.substr(i, contentLen - i);
181			var html = c + '<span class="moreelipses" >'+ellipsestext+'</span><span class="morecontent"><span style="display: none;">' + h + '</span>&nbsp;&nbsp;<a href="" class="' + targetName + 'link">'+moretext+'</a></span>';
182			$(this).html(html);
183		}
184	});
185
186	$('.'+targetName + 'link').click(function(){
187		if($(this).hasClass("less")) {
188			$(this).removeClass("less");
189			$(this).html(moretext);
190		} else {
191			$(this).addClass("less");
192			$(this).html(lesstext);
193		}
194		$(this).parent().prev().toggle();
195		$(this).prev().toggle();
196		return false;
197	});
198};
199
200
201/******************
202 * 特集記事の展開 *
203 ******************/
204function view_topic_open(id) {
205	document.getElementById('topic_close_' + id).style.display = "block";
206	document.getElementById('topic_open_'  + id).style.display = "none";
207	document.getElementById('topic_'	   + id).style.display = "block";
208}
209
210/******************
211 * 特集記事の格納 *
212 ******************/
213function view_topic_close(id) {
214	document.getElementById('topic_open_'  + id).style.display = "block";
215	document.getElementById('topic_close_' + id).style.display = "none";
216	document.getElementById('topic_'	   + id).style.display = "none";
217}
218
219/**************************
220詳細の書影表示
221***************************/
222function img_out_link_detail(obj_id, url, isbn, jfcd, datatype, img_param, size, lang, bibid) {
223
224	var xml_url = url + "?isbn=" + isbn + "&jfcd=" + jfcd + "&datatype=" + datatype + "&img_param=" + img_param + "&size=" + size + "&lang=" + lang;
225
226	// メタデータ用
227	if (bibid) {
228		xml_url += '&bibid=' + bibid;
229	}
230	$.ajax({
231		type: "GET",
232		url: xml_url,
233		dataType: "json",
234		async:true,
235		cache:false,
236		success: function(response) {
237			var img_url;
238			var newval;
239			var no_img = $("#" + obj_id).html();
240
241			$("#" + obj_id).empty();
242
243			if (!!response.link_url) {
244				newval = '<a href=\"' + response.link_url + '\" onclick=\"window.open(this.href);return false;\">';
245				if (!!response.img_url) {
246					newval += '<img src=\"' + response.img_url + '\" alt=\"cover\" class=\"img-responsive\" \/>';
247				} else {
248					newval += no_img;
249				}
250				newval += '<\/a>';
251			} else {
252				if (!!response.img_url) {
253					newval = '<img src=\"' + response.img_url + '\" alt=\"cover\" class=\"img-responsive\" \/>';
254				} else {
255					newval = no_img;
256				}
257			}
258			if (!!response.img_source && response.img_source != "") {
259				newval += '<p class=\"image_source\">' + response.img_source + '<\/p>';
260			}
261			$("#" + obj_id).append(newval);
262			preventLongPress("#" + obj_id);
263
264			if (!!response.img_msg) {
265				$("#" + obj_id + "_msg").addClass("bb_image_msg");
266				$("#" + obj_id + "_msg").append(response.img_msg);
267				preventLongPress("#" + obj_id + "_msg");
268			}
269		}
270	});
271}
272
273/**************************
274詳細の書影表示
275***************************/
276function img_out_link_detail_all(xml_url, isbn_list, csrf_token, img_param, size, opt_arg) {
277	/* 引数追加 レコメンド対応 */
278	var ident = '';
279	if (opt_arg !== undefined) {
280		ident = opt_arg
281	}
282
283	/* jsonでデータ送信 */
284	var data_list = JSON.parse(isbn_list);
285	var send_data;
286	/* Ajaxの非同期通信をする処理をループさせる時には$.eachを使う */
287	$.each(data_list, function(i){
288		/* 20件ごとに1リクエスト */
289		var data = data_list[i];
290		send_data = {"csrfmiddlewaretoken": csrf_token, "size": size, "isbn_list":JSON.stringify(data), "img_param":img_param};
291		$.ajax({
292			type: "POST",
293			url: xml_url,
294			dataType: "json",
295			data: send_data,
296			async:true,
297			cache:false,
298			success: function(response) {
299			  if (!!response.img_list) {
300				var img_list = response.img_list;
301				var data;
302				var no_img;
303				var obj_class;
304				$.each(img_list, function(i){
305					data = img_list[i];
306					obj_class = ".bb_image" + ident + "_" + data.bibid;
307					no_img = $(obj_class + ":eq(0)").html();
308					if (!!data.img_url && data.img_url != '') {
309						newval = '<p><img src=\"' + data.img_url + '\" alt=\"cover\" class=\"img-responsive\" \/><\/p>';
310					} else {
311						newval = no_img;
312					}
313					/* カルーセルによる要素のクローンの考慮 */
314					$(obj_class).each(function(){
315						$(this).empty();
316						$(this).append(newval);
317						preventLongPress(obj_class);
318					});
319				});
320			  }
321			}
322		});
323	});
324}
325
326/**************************
327詳細の書影表示 (BookPlus)
328***************************/
329function img_out_link_detail_bookplus(obj_id, url, isbn, img_source) {
330
331	var xml_url = url + "?isbn=" + isbn;
332
333	$.ajax({
334		type: "GET",
335		url: xml_url,
336		async:true,
337		cache:false,
338		success: function(response) {
339			if (response != '') {
340				$("#" + obj_id).empty();
341				newval = '<img src=\"' + response + '\" alt=\"cover\" class=\"img-responsive\" \/>';
342				newval += '<p class=\"image_source\">' + img_source + '<\/p>';
343				$("#" + obj_id).append(newval);
344				preventLongPress("#" + obj_id);
345			}
346		}
347	});
348}
349
350/* remodal.jsを使用 */
351var bl_dialog_obj = $("<div id=\"bl_dialog\" class=\"remodal\" data-remodal-id=\"opac_bl_dialog\"><\/div>");
352
353function DisplayHoldDetail(url) {
354
355	var obj_url;
356	if(url){
357		obj_url = url;
358
359		$.ajax({
360			type: "GET",
361			url: obj_url,
362			async:true,
363			cache:false,
364			success: function(msg,response) {
365				bl_dialog_obj.empty();
366				bl_dialog_obj.html(msg);
367				bl_dialog_obj.remodal().open();
368			}
369		});
370	}
371}
372
373/* remodal.jsを使用 */
374function DisplayBookmarkAdd(bok_url) {
375
376	var tag = '<center><div class=\"dummy_div_s\"><img class=\"img_loading\"  src=\"'+ media_url +'img/icon_loading.gif\"></div></center>';
377	$("#bookmark_container").empty();
378	$("#bookmark_container").html(tag);
379	$('[data-remodal-id=opac_bookmark]').remodal().open();
380	if(bok_url){
381		$.ajax({
382			type: "GET",
383			url: bok_url,
384			async:true,
385			cache:false,
386			success: function(html) {
387				$("#bookmark_container").empty();
388				$("#bookmark_container").html(html);
389				preventLongPress("#bookmark_container");
390			},
391			error: function() {
392				$("#bookmark_container").empty();
393			}
394		});
395	}
396}
397
398/* remodal.jsを使用 */
399function DisplayTagAdd(url) {
400
401	var obj_url;
402	if(url){
403		obj_url = url;
404
405		$.ajax({
406			type: "GET",
407			url: obj_url,
408			async:true,
409			cache:false,
410			success: function(msg,response) {
411				var dialog_obj = $("#tag_dialog");
412				dialog_obj.html(msg);
413				$('[data-remodal-id=opac_add_tag]').remodal().open();
414				preventLongPress("#tag_dialog");
415			}
416		});
417	}
418}
419
420function DeleteTag(url, msg) {
421	if( confirm(msg) ){
422		location.href = url;
423	} else {
424		return false;
425	}
426}
427
428function DisplayTagDetail(objid, url) {
429
430	var obj_url;
431	if(url){
432		obj_url = url;
433		$("." + objid).empty();
434		$.ajax({
435			type: "GET",
436			url: obj_url,
437			async:true,
438			cache:false,
439			success: function(msg,response) {
440				if (msg != null && msg.trim() != '') {
441					$("." + objid).append(msg);
442					preventLongPress("." + objid);
443				} else {
444					$("." + objid).remove();
445				}
446			}
447		});
448	}
449}
450
451/*****************
452 * OPAC書評 *
453 *****************/
454function UpdateReview(url, msg) {
455	if( confirm(msg) ){
456		location.href = url;
457	} else {
458		return false;
459	}
460}
461
462function DisplayReviewDetail(objid, url) {
463
464	var obj_url;
465	if(url){
466		obj_url = url;
467		var obj = $("#" + objid);
468		obj.empty();
469		$.ajax({
470			type: "GET",
471			url: obj_url,
472			async:true,
473			cache:false,
474			success: function(msg,response) {
475				if (msg != '' && msg != null) {
476					obj.append(msg);
477					preventLongPress("#" + objid);
478				}
479			}
480		});
481	}
482}
483
484/*****************
485 * 購入依頼/希望 *
486 *****************/
487function ActionRtlBok(url, objid) {
488
489	var srv_form = document.getElementById(objid);
490	srv_form.action = url;
491	srv_form.submit();
492}
493
494/*****************
495 * magazineplus 件数取得 *
496 *****************/
497function view_magazineplus_cnt(path,listpath,issn,bibid,lang,tagnm){
498
499	var url = path;
500	var param = "issn=" + issn;
501	var scWidth = screen.availWidth;
502	var scHigh = screen.availHeight;
503	var wid = 768;
504	var high = 710;
505
506	if (wid > scWidth) {
507		wid = scWidth;
508	}
509	if (high > scHigh) {
510		high = scHigh;
511	}
512
513	url = url + "?" +  param + "&lang=" + lang;
514
515	var tag = '<center><div class=\"dummy_s_div\"><img class=\"img_loading\"  src=\"' + media_url + 'img/icon_loading_m.gif\"></div></center>';
516
517	$("#magazineplus_block").empty();
518	$("#magazineplus_block").html(tag);
519	$.ajax({
520		async:true,
521		cache:false,
522		url: url,
523		error: function(){
524			$("#magazineplus_block").empty();
525			$("#magazineplus_block").hide();
526		},
527		success: function(msg,textStatus){
528			$("#magazineplus_block").empty();
529			//$("#bookplus_block").addClass("bookplus_block_success");
530			//msg = "<textarea readonly>" + msg + "</textarea>";
531			cnt = msg
532			if (isNaN(cnt)) {
533				msg = cnt;
534			} else {
535				msg = '<a href=\"' + listpath + '?issn=' + issn + '&bibid=' + bibid + '&lang=' + lang + '\" onclick="SubWinOpen(this.href,\'magazineplus_pop\','+ wid +','+ high +');return false;"\">' + tagnm;
536				if (lang=='0'){
537					msg = msg + '(全' + cnt + '件)';
538				} else {
539					msg = msg + ' ' + cnt;
540				}
541				msg = msg + '<\/a>';
542			}
543			$("#magazineplus_block").append(msg);
544			preventLongPress("#magazineplus_block");
545		}
546	});
547}
548
549/* Ciniibooks - 子書誌一覧取得 */
550function view_ciniibooks_pt(path,lang,ncid,relations,opkey){
551
552	var url = path;
553	var param = "lang=" + lang + "&ncid=" + ncid + "&relations=" + relations + "&opkey=" + opkey;
554
555	url = url + "?" +  param;
556
557	var tag = '<center><div class=\"dummy_s_div\"><img class=\"img_loading\"  src=\"' + media_url + 'img/icon_loading_m.gif\"></div></center>';
558
559	$("#ciniibooks_pt_block").empty();
560	$("#ciniibooks_pt_block").html(tag);
561	$.ajax({
562		async:true,
563		cache:false,
564		url: url,
565		error: function(){
566			$("#ciniibooks_pt_block").empty();
567			$("#ciniibooks_pt_block").hide();
568		},
569		success: function(msg,textStatus){
570			$("#ciniibooks_pt_block").empty();
571			$("#ciniibooks_pt_block").append(msg);
572			preventLongPress("#ciniibooks_pt_block");
573		}
574	});
575}
576
577/**************************
578AmazonカスタマーレビューHelp Open
579***************************/
580var reviewHelp;
581var	reviewHelpfl=0;
582
583function amazonReviewHelpOpen(url) {
584	reviewHelp=window.open(url,'reviewHelp','toolbar=0,location=0,directories=0,status=0,menuber=0,scrollbars=0,resizable=1,width=420,height=480');
585	reviewHelpfl=1;
586	reviewHelp.focus();
587}
588
589/**************************
590リンク情報取得 (GoogleBooks)
591***************************/
592function get_googlebooks_link(url, isbn, lang) {
593
594	var xml_url = url + "?isbn=" + isbn + "&lang=" + lang;
595
596	var tag = '<center><div class=\"dummy_s_div\"><img class=\"img_loading\"  src=\"' + media_url + 'img/icon_loading_m.gif\"></div></center>';
597
598	$("#googlebooks-preview").empty();
599	$("#googlebooks-preview").html(tag);
600
601	$.ajax({
602		type: "GET",
603		url: xml_url,
604		async:true,
605		cache:false,
606		error: function(){
607			$("#googlebooks-preview").empty();
608			$("#googlebooks-preview").hide();
609		},
610		success: function(response) {
611			$("#googlebooks-preview").empty();
612			if (response != '') {
613				$("#googlebooks-preview").append(response);
614				preventLongPress("#googlebooks-preview");
615			}
616		}
617	});
618}
619
620
621/**************************
622レコメンドスタンプ取得
623***************************/
624function get_recommend_stamp(url,fieldId) {
625
626	if (url) {
627		var tag = '<center><div class=\"dummy_s_div\"><img class=\"img_loading\"  src=\"' + media_url + 'img/icon_loading_m.gif\"></div></center>';
628		var obj = $("#" + fieldId);
629		obj.empty();
630		obj.html(tag);
631
632		$.ajax({
633			type: "GET",
634			url: url,
635			dataType: "json",
636			async:true,
637			cache:false,
638			success: function(response){
639				if (!!response.stamp_data) {
640					obj.empty();
641					var stamp_disp_list = response.stamp_data;
642					var stamp_data;
643					var newval = '';
644					$.each(stamp_disp_list, function(i){
645						stamp_data = stamp_disp_list[i];
646						newval +='<span class="label label-primary label-' + stamp_data.name + '">' + stamp_data.label + '</span>';
647					});
648					if (newval != '') {
649						obj.empty();
650						obj.append(newval);
651						obj.addClass("loaded");
652					} else {
653						obj.remove();
654					}
655				} else {
656					obj.remove();
657				}
658			}
659		});
660	}
661}
662
663/**************************
664アマゾンレビュー表示
665***************************/
666function disp_amazon_review(url) {
667	if(url){
668		$.ajax({
669			type: "GET",
670			url: url,
671			dataType: "json",
672			async:true,
673			cache:false,
674			error: function(){
675				$("#amazon-review-load,#amazon-review").remove();
676			},
677			success: function(response) {
678				if (response != '' && response != null) {
679					// jqueryのattrでは履歴が生成してしまうため、DOMのlocation.replaceでURLを指定する
680					document.getElementById('iframe_amazon').contentWindow.location.replace(response);
681					$("#iframe_amazon").load(function(){
682						$("#amazon-review").css("display", "block");
683						$("#amazon-review-load").remove();
684					});
685				} else {
686					$("#amazon-review-load,#amazon-review").remove();
687				}
688			}
689		});
690	}
691}
692
693/* Outlink Click (V5でも未使用) */
694//function outlink_lbl_click(id,img){
695//	var obj_id = document.getElementById(id);
696//	var obj_img = document.getElementById(img);
697//	if(obj_id.style.display == 'block'){
698//		obj_id.style.display='none';
699//		obj_img.src=media_url + 'img/acc_plus.png';
700//	}else{
701//		obj_id.style.display='block';
702//		obj_img.src=media_url + 'img/acc_plus.png';
703//	}
704//}
705
706/*****************
707 * 購入依頼/希望 * (V5でも未使用)
708 *****************/
709//function ActionRtlBok(url,title,wid,hi) {
710//  var dispwidth;
711//  var Features;
712//
713//  dispwidth=screen.width - wid - 10;
714//
715//  Features = "toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=1,resizable=1,width=" 
715+ wid + ",height=" + hi + ",left=" + dispwidth + ",top=0";
716//
717//  var Winlend = window.open('',title,Features);
718//  Winlend.focus();
719//  document.service.action = url;
720//  document.service.target = title;
721//  document.service.submit();
722//}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.