/*------------------------------------------------------------- # HTML5 Speech Recognition API --------------------------------------------------------------*/ (function ($) { let audioStart = new Audio('//cdn.azbyka.ru/wp-content/themes/azbyka/assets/sound/bling1.mp3'); let audioFin = new Audio('//cdn.azbyka.ru/wp-content/themes/azbyka/assets/sound/bling2.mp3'); $.fn.speech = function (options) { oFrm = this; if (!oFrm.length) { return false; } settings = $.extend(settings, options); oTxt = $(oFrm).find(settings.searchFormFieldSelector).first(); if (!oTxt.length) { console.error('text fields length = 0'); return false; } oBtn = $(oFrm).find(settings.inputSearchSelector).first(); if (!oBtn.length) { console.error('button length = 0'); return false; } showMic(); $(oBtn).click(function() { let searchBlock = this.parentNode; if (window.hasOwnProperty('webkitSpeechRecognition')) { if(audioStart)audioStart.play(); if(searchBlock)searchBlock.classList.add('voice-search'); var recognition = new webkitSpeechRecognition(); recognition.continuous = false; recognition.interimResults = false; recognition.lang = 'ru-RU'; recognition.start(); recognition.onresult = function (e) { console.log('recognition success'); if(audioFin)audioFin.play(); if(searchBlock)searchBlock.classList.remove('voice-search'); $(oTxt).val(e.results[0][0].transcript); recognition.stop(); $(oFrm).submit(); }; recognition.onerror = function (e) { console.log('recognition error'); recognition.stop(); if(searchBlock)searchBlock.classList.remove('voice-search'); } } }); }; var oFrm = null; var oTxt = null; var oBtn = null; var settings = { searchFormFieldSelector: '.search-form-field', inputSearchSelector: '.speech', }; function showMic() { try { if (window.hasOwnProperty('webkitSpeechRecognition')) { if (!(navigator.userAgent.search(/OPR/) > 0)) { $(oTxt).addClass('hide_cross'); $(oBtn).show(); return true; } } } catch (e) { console.error(e.name + ': ' + e.message); } $(oBtn).hide(); return false; } $(document).ready(function () { $('.fm-speech').speech(); }); }(jQuery)); //autocomplete (function(){ const ALLOWED_AUTOCOMPLETE_LANG_IDS = [1, 2, 10]; // Любой, ЦСЯ(рус), Синод., Англ. let search_input = $('input[type=search]'); if(!search_input.length) return; let search_form = search_input.closest('form'); let autocomplete; let can_autocomplete = true; let resetAutocomplete = ()=>{can_autocomplete = true}; search_input.on('input', e=>{ if(!autocomplete){ autocomplete = $('

'); search_input.after(autocomplete); autocomplete.click(function(e){ let $this = $(e.target); if($this.is('li')){ search_input.val($this.text()); search_form.submit(); } }); } if(!can_autocomplete) return; let txt = search_input.val(); if(txt.length { let vals = ''; for(itm of res.items){ vals+= '
  • '+itm+'
  • ' } if(vals !== ''){ autocomplete.html(''); autocomplete.show(); }else{ autocomplete.hide(); } }); can_autocomplete = false; setTimeout(resetAutocomplete,300); }); search_input.focusout(e=>{ setTimeout(()=>{ autocomplete.hide(); },100); }); //LIMIT requests per second let lastSubmit = localStorage.getItem('azBibSearchLastSubmit'); let now = Date.now(); const LIMIT = 5000; let delta = now - lastSubmit; let enableForm = ()=>search_form.removeClass('disabled'); let disableForm = (time)=>{ search_form.addClass('disabled'); setTimeout(enableForm, time); }; if(lastSubmit && delta { if(!search_input.val()){ e.preventDefault(); location.href = AZ.path['front.search']; return false; } if(search_form.is('.disabled')){ e.preventDefault(); return false; } localStorage.setItem('azBibSearchLastSubmit', Date.now()); disableForm(LIMIT); }); })() 1784 Animation-studio-–-flipbook-on-pc Warship-war-navy-fleet-combat-on-pc Godsworn-on-pc Toothman-on-pc