(function () { let topNavLikesCountSpanFQ = document.getElementById('topNavLikesCount'); let fqEmptyLabel = document.getElementById("fqEmpty"); let fqSearchbox = document.getElementById("fqSearchbox"); const addEventListenersToButtons = function() { let f = document.getElementById("fqList") let moreShopsButtons = f.getElementsByClassName("fq_more_shops_btn") let lessShopsButtons = f.getElementsByClassName("fq_less_shops_btn") for (let btn of moreShopsButtons) btn.addEventListener('click', showMoreShops); for (let btn of lessShopsButtons) btn.addEventListener('click', showLessShops); let deleteFqButtons = f.getElementsByClassName("fq__delete__button"); for (let btn of deleteFqButtons) btn.addEventListener('click', deleteFq); let confirmDeleteFqButtons = f.getElementsByClassName("fq__confirm__delete__btn"); for (let btn of confirmDeleteFqButtons) btn.addEventListener('click', confirmDeleteFq); let denyDeleteFqButtons = f.getElementsByClassName("fq__deny__delete__btn"); for (let btn of denyDeleteFqButtons) btn.addEventListener('click', denyDeleteFq); } const filterFqList = function () { let re, re_remove_mark, input, filter, fqList, fq, fqPart, i, txtValue, found, searched, text, new_text; input = document.getElementById("fqSearchbox"); searched = input.value.trim(); filter = searched.toUpperCase(); fqList = document.getElementById("fqList"); fq = fqList.getElementsByClassName("fq"); re = new RegExp("(" + searched + ")", "ig"); re_remove_mark = new RegExp("?mark>", "g") // Loop through all table rows, and hide those who don't match the search query for (i = 0; i < fq.length; i++) { found = false text = fq[i].innerHTML; fq[i].innerHTML = text.replace(re_remove_mark, ''); const fqClasses = ['fq__item__text'] for (let fqClass of fqClasses) { fqPart = fq[i].getElementsByClassName(fqClass)[0] txtValue = fqPart.textContent || fqPart.innerText; if (txtValue.toUpperCase().indexOf(filter) > -1) { found = true; if (searched.trim() !== "") { fqPart.innerHTML = fqPart.innerHTML.replace(re, `$1`); } } } if (found) { fq[i].classList.remove("hidden"); } else { fq[i].classList.add("hidden"); } addEventListenersToButtons(); } } const confirmDeleteFq = function(e) { let currentFq = document.getElementById(`fq_${e.target.dataset.fqid}`); localStorage.removeItem(e.target.dataset.fqid); currentFq.remove(); nFq = getFavQueriesCountFQ(); topNavLikesCountSpanFQ.textContent = nFq.toString(); //когда нет запросов if (nFq === 0 ) { fqEmptyLabel.style.display = "block"; document.getElementById("fqSection").style.display="none"; } } const denyDeleteFq = function(e) { let currentBC = document.getElementById(`fq_bc_${e.target.dataset.fqid}`) let currentCDC = document.getElementById(`fq_cdc_${e.target.dataset.fqid}`) currentBC.classList.remove('hidden'); currentCDC.classList.add('hidden'); } const deleteFq = function(e) { let currentBC = document.getElementById(`fq_bc_${e.target.dataset.fqid}`) let currentCDC = document.getElementById(`fq_cdc_${e.target.dataset.fqid}`) currentBC.classList.add('hidden'); currentCDC.classList.remove('hidden'); } const showLessShops = function (e) { let currentFq = document.getElementById(`fq_${e.target.dataset.fqid}`); let shopTags = currentFq.getElementsByClassName("fq_shop") for (let currentFqShop of shopTags) { if (currentFqShop.classList.contains("to_hidden")) { currentFqShop.classList.remove("to_hidden"); currentFqShop.classList.add("hidden"); } } let currentShowMoreButton = currentFq.getElementsByClassName("fq_more_shops_btn"); if (currentShowMoreButton.length > 0) currentShowMoreButton[0].classList.remove("hidden"); let currentShowLessButton = currentFq.getElementsByClassName("fq_less_shops_btn"); if (currentShowLessButton.length > 0) currentShowLessButton[0].classList.add("hidden"); } const showMoreShops = function (e) { let currentFq = document.getElementById(`fq_${e.target.dataset.fqid}`); let shopTags = currentFq.getElementsByClassName("fq_shop") for (let currentFqShop of shopTags) { if (currentFqShop.classList.contains("hidden")) { currentFqShop.classList.add("to_hidden"); currentFqShop.classList.remove("hidden"); } } let currentShowMoreButton = currentFq.getElementsByClassName("fq_more_shops_btn"); if (currentShowMoreButton.length > 0) currentShowMoreButton[0].classList.add("hidden"); let currentShowLessButton = currentFq.getElementsByClassName("fq_less_shops_btn"); if (currentShowLessButton.length > 0) currentShowLessButton[0].classList.remove("hidden"); } const getFavQueriesCountFQ = function () { let res = 0; let i = 0; while (i < localStorage.length) { if (localStorage.key(i).startsWith('fb_fq_')) res++; i++; } return res; } // начало main let nFq = getFavQueriesCountFQ(); topNavLikesCountSpanFQ.textContent = nFq.toString(); if (nFq === 0) { fqEmptyLabel.style.display = "block"; document.getElementById("fqSection").style.display = "none"; } const num_word = function (value, words) { value = Math.abs(value) % 100; let num = value % 10; if (value > 10 && value < 20) return words[2]; if (num > 1 && num < 5) return words[1]; if (num === 1) return words[0]; return words[2]; } const compareFQ = function (a, b) { return a.dttm - b.dttm; } let fqList = document.getElementById("fqList") let i = 0; let fqs = []; while (i < localStorage.length) { if (localStorage.key(i).startsWith('fb_fq_')) { fqs.push(JSON.parse(localStorage.getItem(localStorage.key(i)))); } i++; } let fqsSorted = fqs.sort(compareFQ); let rowNumber = 0; fqsSorted.forEach(fq => { rowNumber++; let dttm = new Date(fq.dttm); let dtString = dttm.toLocaleDateString('ru-RU', { year: '2-digit', month: '2-digit', day: '2-digit', }); let tmString = dttm.toTimeString().substring(0, 5); let innerHTML = `