var lastUrlOfBrowserWindow; var prevUrlOfBrowserWindow; var lastTitleOfBrowserWindow; var prevTitleOfBrowserWindow; var lastCompleteFunctionOfBrowserWindow; var lastCloseFunctionOfBrowserWindow; var browser_window_mode; function setBrowserWindowMode(mode) { browser_window_mode = mode; } function getBrowserWindowMode() { return browser_window_mode; } function webFunctionJSON(url, onComplete, type, async) { $.ajax({ url: url, cache: false, contentType: false, processData: false, type: (type == undefined ? "GET" : type), async: (async == undefined ? false : async), success: function (data) { var result; try { result = JSON.parse(data); } catch (e) { alert("Ошибка парсинга формата JSON - результата асинхрого запроса webFunctionJSON к серверу: " + e + " Где возврат подлежащий разбору как JSON внутри угловых скобок: <" + data + ">"); return; } onComplete(result); }, error: function () { alert("Ошибка при асинхронном запросе webFunctionJSON к серверу."); } }); } function executeAction(url, onComplete, onFail, type, async) { $.ajax({ url: url, cache: false, contentType: false, processData: false, type: (type == undefined ? "GET" : type), async: (async == undefined ? false : async), success: function (data) { var result; try { result = JSON.parse(data); } catch (e) { alert("Ошибка парсинга формата JSON - результата асинхрого запроса executeAction к серверу: " + e + " Где возврат подлежащий разбору как JSON внутри угловых скобок: <" + data + ">"); return; } if (result.value == "0") onComplete(); else onFail("Ошибка, возвращенная Веб-шлюзом при обработке асинхрого запроса executeAction: " + result.value); }, error: function () { alert("Ошибка при асинхронном запросе executeAction к серверу."); } }); } function browseURL(url, title, onComplete, onClose, type, formData, async) { prevUrlOfBrowserWindow = lastUrlOfBrowserWindow; lastUrlOfBrowserWindow = url; prevCompleteFunctionOfBrowserWindow = lastCompleteFunctionOfBrowserWindow; lastCompleteFunctionOfBrowserWindow = onComplete; $("#ctrl_userCard_browserWindow").html(""); $.ajax({ url: url, data: formData, cache: false, contentType: false, processData: false, type: (type === undefined ? "GET" : type), async: (async == undefined ? false : async), success: function (data) { openHTML(data, title, onClose); if (isAuthPage) window.location.href = CGI_PATH + "?C21COM=F&Z21ID="; if (onComplete !== undefined) onComplete(); }, error: function (XMLHttpRequest, textStatus, errorThrown) { alert("Ошибка при асинхронном запросе browseURL к серверу"); } }); } var dialog_userCard_browserWindow = undefined; function openHTML(html, title, onClose) { prevTitleOfBrowserWindow = lastTitleOfBrowserWindow; lastTitleOfBrowserWindow = title; prevCloseFunctionOfBrowserWindow = lastCloseFunctionOfBrowserWindow; lastCloseFunctionOfBrowserWindow = onClose; $("#ctrl_userCard_browserWindow").html(html); if ($("#ctrl_userCard_browserWindow").dialog("instance") !== undefined) dialog_userCard_browserWindow.dialog("close"); $("body").css("overflow", "hidden"); dialog_userCard_browserWindow = $("#ctrl_userCard_browserWindow") .dialog( { title: title, modal: true, close: function () { if (onClose !== undefined) onClose(); $("body").css("overflow", "auto"); } }); if (Cookies.get('bvi-panel-active') === 'true') { $('.ui-dialog').addClass('bvi-body'); $('.ui-dialog').attr( { 'data-bvi-panel-hide' : Cookies.get("bvi-panel-hide"), 'data-bvi-size' : Cookies.get("bvi-font-size"), 'data-bvi-theme' : Cookies.get("bvi-theme"), 'data-bvi-images' : Cookies.get("bvi-images"), 'data-bvi-line-height' : Cookies.get("bvi-line-height"), 'data-bvi-letter-spacing' : Cookies.get("bvi-letter-spacing"), 'data-bvi-font-family' : Cookies.get("bvi-font-family"), 'data-bvi-flash-iframe' : Cookies.get("bvi-flash-iframe"), 'data-bvi-reload' : Cookies.get("bvi-reload"), 'data-bvi-voice' : Cookies.get("bvi-voice"), 'data-bvi-fixed' : Cookies.get("bvi-fixed") }); } refreshBrowserWindowMode(); } function refreshBrowserWindowMode() { if ((browser_window_mode == "maximized") || (browser_window_mode == "frozen-maximized")) maximizeBrowserWindow(); else normalizeBrowserWindow(); dialog_userCard_browserWindow .dialog() .height(dialog_userCard_browserWindow.dialog("widget").height() - dialog_userCard_browserWindow.dialog("widget").find(".ui-dialog-titlebar").height() * 1.5); } function maximizeBrowserWindow() { if ($("#ctrl_userCard_browserWindow").dialog("instance") !== undefined) { dialog_userCard_browserWindow .dialog("widget") .find(".ui-dialog-titlebar").hide(); dialog_userCard_browserWindow .dialog("widget") .width("100%") .height(document.body.clientHeight) .position({ my: "center top", at: "center top", of: "#ctrl_userCard_browserWindow_holder" }); } } function normalizeBrowserWindow() { if ($("#ctrl_userCard_browserWindow").dialog("instance") !== undefined) { dialog_userCard_browserWindow .dialog("widget") .find(".ui-dialog-titlebar").show(); dialog_userCard_browserWindow .dialog("widget") .width("95%") .height(document.body.clientHeight * 0.95) .position({ my: "center top", at: "center top", of: "#ctrl_userCard_browserWindow_holder" }); } var ctrl = document.getElementById("ctrl_userCard_browserWindow"); if (ctrl != null) window.scrollTo(0, getOffset(ctrl).top - 50); } function refreshBrowserWindow() { var url = new WebIrbisQuery(CGI_PATH).blockCacheChange(lastUrlOfBrowserWindow); browseURL(url, lastTitleOfBrowserWindow, lastCompleteFunctionOfBrowserWindow, lastCloseFunctionOfBrowserWindow); } function haveBrowserWindow() { return document.getElementById("ctrl_userCard_browserWindow") != null; } function browsePrevURL() { if (prevUrlOfBrowserWindow === undefined) return; if (prevTitleOfBrowserWindow === undefined) return; browseURL(prevUrlOfBrowserWindow, prevTitleOfBrowserWindow); } function clearBrowseHistory() { prevUrlOfBrowserWindow = undefined; prevCompleteFunctionOfBrowserWindow = undefined; prevTitleOfBrowserWindow = undefined; prevCloseFunctionOfBrowserWindow = undefined; lastUrlOfBrowserWindow = undefined; lastCompleteFunctionOfBrowserWindow = undefined; lastTitleOfBrowserWindow = undefined; lastCloseFunctionOfBrowserWindow = undefined; } function srShowResult(mfn, rec, frame_name, first_record_mfn, auto_open_mode) { var pageViewer_title = rec.getIrbisField_First("brief"); var get_innerTextSearch_openPageViewer = function(mfn, rec) { return function(query, pages, startPage) { var url = new WebIrbisQuery(CGI_PATH).createQuery_openPageViewer(true, true, mfn, rec, query, pages, startPage); browseURL(url, pageViewer_title, undefined, bookViewerController.onClose_bookViewer(mfn, frame_name)); } }; var fn_openPageViewer_2 = function () { innerTextSearch_openPageViewer = get_innerTextSearch_openPageViewer(mfn, rec); var url = new WebIrbisQuery(CGI_PATH).createQuery_openPageViewer(true, true, mfn, rec); browseURL(url, pageViewer_title, undefined, bookViewerController.onClose_bookViewer(mfn, frame_name)); }; $("#ctrl_openPageViewer_withSearchResult_goFirstSearchResult_" + frame_name + "_" + mfn) .click(fn_openPageViewer_2); $("#ctrl_openPageViewer_withSearchResult_" + frame_name + "_" + mfn) .click(function () { innerTextSearch_openPageViewer = get_innerTextSearch_openPageViewer(mfn, rec); var url = new WebIrbisQuery(CGI_PATH).createQuery_openPageViewer(true, false, mfn, rec); browseURL(url, pageViewer_title, undefined, bookViewerController.onClose_bookViewer(mfn, frame_name)); }); var fn_openPageViewer_1 = function () { innerTextSearch_openPageViewer = get_innerTextSearch_openPageViewer(mfn, rec); var url = new WebIrbisQuery(CGI_PATH).createQuery_openPageViewer(false, false, mfn, rec); browseURL(url, pageViewer_title, undefined, bookViewerController.onClose_bookViewer(mfn, frame_name)); }; $("#ctrl_openPageViewer_" + frame_name + "_" + mfn) .click(fn_openPageViewer_1); if (first_record_mfn == mfn) { if (auto_open_mode == "1") fn_openPageViewer_1(); if (auto_open_mode == "2") fn_openPageViewer_2(); if (auto_open_mode == "3") fn_openPageViewer_2(); if (auto_open_mode == "4") fn_openPageViewer_1(); } var checkbox = $("#ctrl_search_result_checkbox_" + frame_name + "_" + mfn); if (!flag_pageLoading) { checkedCtrlArray_mfn.push(mfn); checkedCtrlArray_ctrl.push(checkbox); } else { allCheckedCtrlArray_ctrl.push(checkbox); } checkbox .prop("checked", isCheckedBook(mfn)) .click(function () { depopulateCheckedControl(mfn, checkbox.prop("checked")); }); if (rec.getIrbisField_First("others_ext") != "") { var others_click = function () { openHTML(new WebIrbisSystem(CGI_PATH).applyWebIrbisSyntax(rec.getIrbisField_First("others_ext")), others_title); }; $("#ctrl_others_link_container_" + frame_name + "_" + mfn) .attr("title", "Электронные издания высоко оцененные читателями этого издания") .click(others_click) .css("display", "block"); $("#ctrl_others_link_" + frame_name + "_" + mfn) .text(others_title) .attr("title", "Электронные издания высоко оцененные читателями этого издания") .click(others_click); } if (rec.getIrbisField_First("others2_ext") != "") { var others_click = function () { openHTML(new WebIrbisSystem(CGI_PATH).applyWebIrbisSyntax(rec.getIrbisField_First("others2_ext")), others2_title); }; $("#ctrl_others2_link_container_" + frame_name + "_" + mfn) .attr("title", "Печатные издания наиболее часто выдаваемые читателям этого издания") .click(others_click) .css("display", "block"); $("#ctrl_others2_link_" + frame_name + "_" + mfn) .text(others2_title) .attr("title", "Печатные издания наиболее часто выдаваемые читателям этого издания") .click(others_click); } } function openAtNewTab_onFormSubmit(ui_form) { var url = CGI_PATH + "?" + ui_form.serialize(); window.open(url); } function setAutoComplete(ui, cgiPATH, Z21ID, P21DBN, S21P03, autoCompleteType) { function split( val ) { return val.split( /\s+/ ); } function extractLastWord( term ) { return split( term ).pop(); } function wholeQuery( term ) { return term; } function autocompleteSource(request, response, autocompleteSourceUrl, termProcessing) { var autocompleteTerm = termProcessing(request.term); $.ajax({ url: autocompleteSourceUrl(autocompleteTerm), success: function(terms) { terms_arr = terms.split("\n"); terms_for_autocomplete = new Array(); for (term in terms_arr) terms_for_autocomplete.push(terms_arr[term].split("|")[0]); var matcher = new RegExp( "^" + $.ui.autocomplete.escapeRegex(autocompleteTerm), "i" ); response( $.grep( terms_for_autocomplete, function( item ){ return matcher.test( item ); } )); //response(terms_for_autocomplete); }, error: function (XMLHttpRequest, textStatus, errorThrown) { response([]); } }); } var autocompleteSourceUrl = function (autocompleteTerm) { return cgiPATH + "?" + "Z21ID=" + Z21ID + "&" //+ "SEARCH_IN_FULL_TEXT=1&" + "T21CNR=10&" + "C21COM=T&" + "T21PRF=" + S21P03 + "&" + "I21DBN=" + P21DBN + "&" + "T21TRM=" + encodeURIComponent(autocompleteTerm) + "&"; // encodeURIComponent для IE }; var autocompleteSettings_wholeQuery = { source: function (request, response) { autocompleteSource(request, response, autocompleteSourceUrl, wholeQuery); }, focus: function() { // prevent value inserted on focus return false; } }; var autocompleteSettings_extractLastWord = { source: function (request, response) { autocompleteSource(request, response, autocompleteSourceUrl, extractLastWord); }, focus: function() { // prevent value inserted on focus return false; }, select: function( event, ui ) { var terms = split( this.value ); // remove the current input terms.pop(); // add the selected item terms.push( ui.item.value ); // add placeholder to get the comma-and-space at the end terms.push( "" ); this.value = terms.join( " " ); return false; } }; ui .bind( "keydown", function( event ) { if ( event.keyCode === $.ui.keyCode.TAB && $( this ).autocomplete( "instance" ).menu.active ) { event.preventDefault(); } }); if (autoCompleteType == "wholeQuery") ui.autocomplete(autocompleteSettings_wholeQuery); if (autoCompleteType == "extractLastWord") ui.autocomplete(autocompleteSettings_extractLastWord); }