///////////////////////////////////////////////////////////
//
// 図書館システム用の独自実装
//
////////////////////////////////////////////////////////////
// 関連スクリプトのロード
document.write("<script type='text/javascript' src='dwr/interface/WikiLibraryController.js' charset='ISO-8859-1'></script>");

// 参考文献挿入ダイアログで入力された書誌情報のURL
var SDWikiReferenceUrl = "";

// wysiwyg-plugin.jsが読み込まれている場合のみ有効化 start
if (com.nec.jp.ngsf.wiki.Plugin) {

/**
 * 参考文献挿入プラグイン。
 */
com.nec.jp.ngsf.wiki.InsertReferencePlugin = function(wysiwyg) {
	if (wysiwyg) {
		this.initialize(wysiwyg);
	}
};
com.nec.jp.ngsf.wiki.InsertReferencePlugin.prototype =
	Object.extend(new com.nec.jp.ngsf.wiki.Plugin, {

	/** 参考文献挿入ダイアログが起動される直前のrangeオブジェクト */
	tmpRange: null,
	/**
	 * WYSIWYGコマンドを実行します。
	 *
	 * execCommandで不可能な処理を行う場合、本メソッドをオーバーライドします。
	 */
	execute: function(args) {
		var plugin = this;
		// WYSIWYGエディタ以外にプラグイン操作が適用されてしまうときがあるため、
		// 一度フォーカスを設定する
		plugin._wysiwyg.getDocument().body.focus();

		var callback = function() {
			// 選択されたページのリンクを作成
			if (SDWikiReferenceUrl != null && SDWikiReferenceUrl && SDWikiReferenceUrl.length > 0) {
				try {
					var callback2 = function(jsondata) {
						// 関数callbackmethodの定義
						var callbackmethod = function(data) {
							if (data["isSuccess"] != "0" || data["title_id"] == "null") {
								alert("書誌情報の取得に失敗しました。");
								return false;
							}

							// 一般用と職員向けでURIが変更になる
							var linkurl = SDWikiReferenceUrl.replace("licsxp-dantai","licsxp-opac");

							data["tags"]["title"] = data["tags"]["title"].link(linkurl);

							// 取得した書誌情報を元にHTMLを生成
							// 『書名』 ISBN-10 ISBN-13 出版年月 著者名 出版社名
							// 書名
							var title = "『" + data["tags"]["title"] + "』 ";
							// 著者名
							var auther = "";
							if(data["tags"]["auther"]!=""){
								auther = data["tags"]["auther"] + " ";
							}
							// 出版社名
							var publisher = "";
							if(data["tags"]["publisher"]!=""){
								publisher = data["tags"]["publisher"] + " ";
							}
							// 出版年月
							var publish_ymd ="";
							if(data["tags"]["publish_ymd"]!=""){
								publish_ymd ="出版年月：" +  data["tags"]["publish_ymd"] + " ";
							}
							// ISBN-10
							var isbn1 ="";
							if(data["tags"]["isbn1"]!=""){
								isbn1 ="ＩＳＢＮ：" +  data["tags"]["isbn1"] + " ";
							}
							// ISBN-13
							var isbn2 ="";
							if(data["tags"]["isbn2"]!=""){
								isbn2 ="ＩＳＢＮ：" +  data["tags"]["isbn2"] + " ";
							}

							var html = title +	auther + publisher + publish_ymd + isbn1 + isbn2;

							// HTMLを挿入
							if (document.all) {
								// IE
								plugin.tmpRange.pasteHTML(html);
							} else {
								// Firefox
								plugin._wysiwyg.getDocument().execCommand('inserthtml', false, html);
							}

							return true;
						};
						// 関数callbackmethodの呼び出し
						return eval("callbackmethod("+jsondata+")");
					}
					// 書誌情報をJSONで取得するURLを生成
					var container = plugin._wysiwyg.getDocument().createElement('div');
					container.innerHTML = "".link(SDWikiReferenceUrl);
					var linkElement = container.firstChild;
					if (document.all) {
						// IE
						linkElement.pathname = linkElement.pathname.split("/")[0] + "/cgi-bin/getjsondata.do";
					} else {
						// Firefox
						linkElement.pathname = linkElement.pathname.split("/")[1] + "/cgi-bin/getjsondata.do";
					}
					linkElement.search = linkElement.search.replace("tilcod","title_id");

					WikiLibraryController.getJsonData(linkElement.href,callback2);
				} catch (e) {
					window.alert("書誌情報の取得に失敗しました。");
				}
			}

			return true;
		};
		this.tmpRange = this._wysiwyg.getRange();

		com.nec.jp.ngsf.wiki.openInsertReferenceDialog(callback);
	}
});

};
// wysiwyg-plugin.jsが読み込まれている場合のみ有効化 end

/*
 * 参考文献挿入ダイアログを表示する。
 *
 */
com.nec.jp.ngsf.wiki.openInsertReferenceDialog = function(closeCallback) {
	try {
		var callback = {
			success: function(oResponse) {
				if (oResponse != undefined && oResponse.length > 0) {
					popupWindow.open(oResponse, "popup", "gleanfeed-wiki-popup-title", 300, 150, true, closeCallback);
				}
				com.nec.jp.ngsf.wiki.close_popup(); // TODO;may be bug, should call here to close existing popup.
			}
		}
		WikiLibraryController.getReferenceForm(callback.success);
	} catch (e) {
		window.alert("書誌情報の取得に失敗しました。");
	}
}

/*
 * 入力された書誌情報のURLを設定しウィンドウを閉じます。
 *
 */
com.nec.jp.ngsf.wiki.SDWikiReferenceUrl = function(url) {

	SDWikiReferenceUrl = url;

	popupWindow.close(0);
}

/*
 * 書誌簡易検索ボックスを表示します。
 *
 */
com.nec.jp.ngsf.wiki.SearchBox = function() {

	var action = "https://www.lib-shimane.jp/licsxp-dantai/WOpacTifSchCmpdPreExecAction.do";

//	document.write('<div style="position:absolute;top:30px;right:0;padding:5px;">' +
	document.write('<div id="book-search">' +
					'<form name="SearchForm" action="' + action + '" id="gleanfeed-wiki-find-form" target="_library" method="post" Accept-charset="UTF-8">' +
					'<input type="hidden" name="chkflg" value="nocheck" />' + // 資料種別をチェックしない
					'<input type="hidden" name="loccodschkflg" value="nocheck" />' + // 館をチェックしない
					'<input type="hidden" name="langcodschkflg" value="nocheck" />' + // 言語区分をチェックしない
					'<input type="hidden" name="currentSubSystem" value="0" />' +
					'<input type="hidden" name="dummy" value="&#65533;" />' +
//					'書誌簡易検索 ' +
					'<input type="text"value="書誌簡易検索" name="kensaku_keyword" maxlength="32" size="24"  style="padding:2px;" onfocus="if(this.value==\'書誌簡易検索\')this.value=\'\'" onblur="if(this.value==\'\')this.value=\'書誌簡易検索\'"  /> ' +
					'<input type="submit" value="検索" onClick="if(kensaku_keyword.value==\'書誌簡易検索\')kensaku_keyword.value=\'\'" />' +
					'</form>' +
					'</div>');
}