function check_all_sources(direction){ //alert(direction); chk_obj=new Array(); if (document.SEARCH['R21DBN'] && !document.SEARCH['R21DBN'].length) chk_obj[0]=document.SEARCH['R21DBN']; else chk_obj=document.SEARCH['R21DBN']; for (i=0; i < chk_obj.length; i++){ // chk_obj[i].style.display = "none"; chk_obj[i].checked = direction; //chk_obj[i].style.display = ""; } } function gid(element_id){ return document.getElementById(element_id); } function st(exp) { document.SEARCH_FORM.S21STN.value='1'; document.SEARCH_FORM.SAME_SEARCH.value=''; document.SEARCH_FORM.FT_REQUEST.value=''; document.SEARCH_FORM.S21ALL.value="(<.>"+exp+"<.>)"; document.SEARCH_FORM.submit(); } function sh(layer){ gid(layer).style.display=(gid(layer).style.display=="none") ? "" : "none"; } function fulltext_search(mfn) { document.SEARCH_FORM.S21ALL.value=''; document.SEARCH_FORM.S21STN.value='1'; document.SEARCH_FORM.SAME_SEARCH.value=mfn; document.SEARCH_FORM.FT_NEAR_MFN_NEW.value=mfn; document.SEARCH_FORM.SEARCHNEAR.value='1'; //document.SEARCH_FORM.FT_REQUEST.value=my_req; //document.SEARCH_FORM.S21SRW.value=''; document.SEARCH_FORM.submit(); } function next_card(mfn) { document.SEARCH_FORM.S21ALL.value=''; document.SEARCH_FORM.S21STN.value='1'; document.SEARCH_FORM.Z21MFN.value=mfn; //document.SEARCH_FORM.FT_NEAR_MFN_NEW.value=mfn; //document.SEARCH_FORM.SEARCHNEAR.value='1'; document.SEARCH_FORM.FT_REQUEST.value=''; //document.SEARCH_FORM.S21SRW.value=''; document.SEARCH_FORM.submit(); } function SSForm(r_number){ if (document.SEARCH_FORM.MFN && document.SEARCH_FORM.SEL_MFN) print_bo(); document.SEARCH_FORM.S21STN.value=r_number; //alert('ALL'+document.SEARCH_FORM.S21ALL.value); //alert('BACK'+document.SEARCH_FORM.REQ_BACK.value); //Страховка от проблем при history back, связанных с динамической модификацией поля if (document.SEARCH_FORM.REQ_BACK) document.SEARCH_FORM.S21ALL.value=document.SEARCH_FORM.REQ_BACK.value; document.SEARCH_FORM.submit(); } function request_decrypt(request,ft_requst){ pref=new Array(); pref[0]=new Array('T=','ЗАГЛАВИЕ','ЗАГЛАВИЯ'); pref[1]=new Array('D=','ДИСЦИПЛИНА','ДИСЦИПЛИНЫ'); pref[2]=new Array('SP=','СПЕЦИАЛЬНОСТЬ','СПЕЦИАЛЬНОСТИ'); pref[3]=new Array('A=','АВТОР','АВТОРЫ'); pref[4]=new Array('T=','ЗАГЛАВИЕ','ЗАГЛАВИЯ'); pref[5]=new Array('K=','КЛЮЧЕВЫЕ СЛОВА','КЛЮЧЕВЫЕ СЛОВА'); pref[6]=new Array('O=','ИЗДАТЕЛЬСТВО','ИЗДАТЕЛЬСТВА'); pref[7]=new Array('G=','ГОД ИЗДАНИЯ','ГОДЫ ИЗДАНИЯ'); pref[8]=new Array('R=','РУБРИКА','РУБРИКИ'); pref[9]=new Array('V=','ВИД ИЗДАНИЯ','ВИДЫ ИЗДАНИЯ'); pref[10]=new Array('HD=','ХАРАКТЕР ДОКУМЕНТА','ХАРАКТЕРЫ ДОКУМЕНТА'); pref[11]=new Array('MHR=','МЕСТО ХРАНЕНИЯ','МЕСТА ХРАНЕНИЯ'); pref[12]=new Array('TJ=','ЗАГЛАВИЕ СТАТЬИ','ЗАГЛАВИЯ СТАТЕЙ'); pref[13]=new Array('VR=','ВИД ДОКУМЕНТА','ВИДЫ ДОКУМЕНТОВ'); pref[14]=new Array('KAF=','КАФЕДРА','КАФЕДРЫ'); integrator2=''; prf_last=''; if (ft_requst)document.writeln(' ПОЛНОТЕКСТОВЫЙ ЗАПРОС: '+ft_requst); if (request.indexOf('I=')>0 || request.indexOf('TXT=')>0) return; multi=request.split('*'); for(i in multi){ addi=multi[i].split('+'); prf_find=false; for(d in pref){ if (multi[i].indexOf(pref[d][0])>0){ prf_decript=(addi.length>1) ? pref[d][2]+': ' : pref[d][1]+': '; prf_decript=(prf_last!=pref[d][0]) ? prf_decript : ''; document.writeln(integrator2+''+prf_decript+''); integrator2=' И ' prf_find=true; prf_last=pref[d][0]; break; } } if (prf_find){ integrator=''; for(k in addi){ document.writeln(integrator+'"'+addi[k].replace(/(.*=)|(\<\.\>)|(\))|\$|(\/\(.*\))/g,'')+'"'); integrator=' ИЛИ '; } } } } function make_win(mode,par,waiting){ cmd_str=new Array(); cmd_str[7]= new Array('Печать_записей',cgi+'?I21DBN='+par[0]+'_PRINT&P21DBN='+par[0]+'&S21FMT='+par[1]+'&S21CNR=500&S21COLORTERMS=0&C21COM=S&S21SRW='+par[2]+'&S21ALL='+par[3]+'&FT_PREFIX='+par[6]+'&SAME_SEARCH='+par[4]+'&FT_REQUEST='+par[5]+'&FT_DISTANCE='+par[7]+'&FT_PARAMS='+par[8]+'&FT_NEAR_MFN'+par[9],"status=no,location=no,directories=no,toolbar=no,scrollbars=yes,resizable=yes",620,440); //make_win(7,[document.SEARCH_FORM.P21DBN.value,document.SEARCH_FORM.PRINT_FORMAT.value,srw,s_expression,full_search,encodeURIComponent(full_search_req),document.SEARCH_FORM.FT_PREFIX.value,document.SEARCH_FORM.FT_DISTANCE.value,document.SEARCH_FORM.FT_PARAMS.value]); x=cmd_str[mode][3]; y=cmd_str[mode][4]; cx=screen.width/2-(x/2); cy=screen.height/2-(y/2); adr=(waiting) ? '' : cmd_str[mode][1]; var load_window=window.open(adr,cmd_str[mode][0],cmd_str[mode][2]+',width='+x+',height='+y+',top='+cy+',left='+cx); load_window.focus(); if (load_window == null) { alert('Отключите блокировку всплывающих окон в своём браузере! Всплывающие окна необходимы для корректной работы сайта!'); return; } if (waiting){ load_window.document.writeln('
Ждите... '+waiting+'
'); load_window.document.location=cmd_str[mode][1]; } } jQuery(function ($) { //$.cookie("selected_codes2",""); $(".code_checkbox").each (function(){ var codes_cookies=$.cookie("selected_codes2") ? $.cookie("selected_codes2").split("*") : []; if ($.inArray(this.value,codes_cookies)>=0) this.checked=true; }); $(".navLeft").click(function(){ $.cookie("selected_codes2",""); }); $(".code_checkbox").change(function () { var codes_cookies=$.cookie("selected_codes2") ? $.cookie("selected_codes2").split("*") : []; if (this.checked){ codes_cookies.push(this.value); }else { if (codes_cookies) { var current_code=this.value; codes_cookies = $.grep(codes_cookies, function(val, index){ return (val!= current_code); }); } } //codes_cookies=$.unique(codes_cookies); $.cookie("selected_codes2",codes_cookies.join('*')); }); }); function print_bo(sel_type){ var codes_cookies=$.cookie("selected_codes2") ? $.cookie("selected_codes2").split("*") : []; var full_search=document.SEARCH_FORM.SAME_SEARCH.value; var full_search_req=document.SEARCH_FORM.FT_REQUEST.value; var srw='avhead'; var id_prefix=(sp_base) ? 'TXT=' : 'I='; var s_expression=""; if ((sel_type=="2"||sel_type=="3") && !codes_cookies.join()) alert("Для выбранного режима печати требуется отобрать записи!"); else{ if (sel_type){ s_expression=""; if (sel_type=="1"){ s_expression=document.SEARCH_FORM.SEL_ALL.value; srw=''; } else { integrator="%2B"; if (sel_type=="3"){ s_expression=document.SEARCH_FORM.SEL_ALL.value; integrator="^"; if (document.SEARCH_FORM.SAME_SEARCH.value){ alert("В режиме ранжированного поиска исключение записей из списка печати невозможно!"); return; } } for(i=0; i"+id_prefix+encodeURIComponent(decodeURIComponent(codes_cookies[i]))+"<.>"; } full_search=''; full_search_req=''; } if (full_search) full_search_req='' //alert('SAME'+full_search); //alert('FREQ'+full_search_req); //alert('SEXPR'+s_expression); make_win(7,[document.SEARCH_FORM.P21DBN.value,document.SEARCH_FORM.PRINT_FORMAT.value,srw,s_expression,full_search,full_search_req,document.SEARCH_FORM.FT_PREFIX.value,document.SEARCH_FORM.FT_DISTANCE.value,document.SEARCH_FORM.FT_PARAMS.value,document.SEARCH_FORM.FT_NEAR_MFN.value]); } } } // Запускаем только после отстройки DOM $().ready(function() { // Инициализируем автодополнение. Здесь задаём только общие для всех запросов параметры $("#X_S21STR").autocomplete(cgi, { multipleSeparator: " ", cacheLength: 0, matchSubset: false, scrollHeight: 350 }); // Обрабатываем переключение области поиска. Событие также генерируется при загрузке страницы $('#X_S21P03').change(function() { // Определяем текущее значение выпадающего списка с префиксами var prf=$(this).val(); // Устанавливаем параметры автодополнения для текущего случая. $("#X_S21STR").setOptions({ multiple: ((prf==keywords_prefix) ? true : false), // Здесь задаются параметры, которые мы хотим видеть в запросе для получения словаря extraParams: { T21CNR: '10', C21COM: 'T', T21PRF: prf, I21DBN: $("#P21DBN").val() } }); }); // Имитируем изменение списка с префиксами при загрузке страницы (чтобы нам не плодить лишние функции :)) $('#X_S21P03').trigger( "change" ); // Ставим обработчик на отправку формы $('#SEARCH').submit(function() { // Если в форме есть и установлен флажок поиска в найденном var searchIn=$('#searchIn:checked').length; var prf=$('#X_S21P03').val(); // Если флаг Искать в найденном установлен и if (!searchIn && $('#searchIn').length>0){ document.SEARCH.S21ALL.value=""; document.SEARCH.FT_REQUEST.value=""; document.SEARCH.FT_PREFIX.value=""; } //===== Значения параметров поиска по умолчанию. Могут быть полезны при возврате назад ===== // Термином является фраза целиком document.SEARCH.X_S21LOG.value = "2"; // Текст как термин document.SEARCH.X_S21P01.value = "0"; // Усечение применяем. Для года позволяет document.SEARCH.X_S21P02.value = "1"; // Квалификаторы не используем document.SEARCH.X_S21P04.value = ""; //\===== Значения параметров поиска по умолчанию ===== switch ( prf ) { case keywords_prefix: // Слова, связанные логикой И document.SEARCH.X_S21LOG.value = "1"; // Если мы хотим добавить уточнение по ключевым словам к полнотекстовому запросу или используется ИРБИС 32... if (searchIn || irbis_generation==32) document.SEARCH.X_S21P01.value = "3"; else document.SEARCH.X_S21P01.value = "4"; break; case "G=": // Берём значение до пробела document.SEARCH.X_S21P01.value = "2"; break; case "A=": var req=author_req($("#X_S21STR").val()); // Если нормализация была проведена if (req){ if ($("#S21ALL").val()){ $("#S21ALL").val($("#S21ALL").val()+"*"+req); }else { $("#S21ALL").val(req); } $("#X_S21STR").val(""); }else { document.SEARCH.A_S21LOG.value = "1"; document.SEARCH.A_S21P01.value = "1"; document.SEARCH.A_S21P02.value = "0"; document.SEARCH.A_S21P04.value = "700"; document.SEARCH.A_S21P03.value = keywords_prefix; } break; default: // По умолчанию (заглавие, автор) весь текст -- термин document.SEARCH.X_S21P01.value = "0"; } return true; }); $('#SEARCH_EX').submit(function() { if ($("#A_S21STR").val()){ var req=author_req($("#A_S21STR").val()); if (req){ $("#S21ALL").val(req); $("#A_S21STR").val(""); }else { document.SEARCH_EX.A_S21LOG.value = "1"; document.SEARCH_EX.A_S21P01.value = "1"; document.SEARCH_EX.A_S21P02.value = "0"; document.SEARCH_EX.A_S21P04.value = "700"; document.SEARCH_EX.A_S21P03.value = keywords_prefix; } } return true; }); var unique=function(arr){ var i, len=arr.length, out=[], obj={}; for (i=0;i0){ return "(<.>A="+variants.join("$<.>+<.>A=")+"$<.>)"; } return ""; } // console.log(jQuery.unique(['иванов','иванов','иванов'])); //console.log(unique(['иванов','иванов','иванов'])); /* Отладочный код для функции add_comma, демонстрирующий обработку различных вариантов написания данных об авторе. Результат отображается в консоли браузера (кнопка F12) */ /* var output=function(author_string){ console.log(author_string+'=>'+author_req(author_string)); } output("иванов"); output("ГОРДУКАЛОВА, ГАЛИНА ФЕОФАНОВНА (БИБЛИОГРАФ, ПЕДАГОГ)"); output("валентина брежнева"); output("кирилл евгеньевич соколинский"); output("Соколинский, К. Е."); output("к. соколинский"); output("к.е. соколинский"); output("к. е. соколинский"); output("д.а.иванов"); output("и. а. иванов"); output("и.а. иванов"); output("иванов и.а."); output("иВанОв, И.а."); output("иванов И."); output("д'артаньян и.и."); output("мольер ж.-б."); output("ёмкин а.в."); output("ВЕБЕР, В. \\СОСТ.\\"); output("ÜNAY, D. \\ED.\\"); output("Соколинский Кирилл Евгеньевич"); output("ким чен ир"); output("Сер. Вл. Иванов"); output("Кирилл Петров"); */ });