Вы в оффлайн режиме, для работы поиска в оффлайн-режиме его необходимо скачать. `);
}
function ensureUrlPrefix(item) {
const prefix = 'https://ru.ecoplantagro.com/';
if (!item.url) {
item.url = prefix;
return item;
}
if (!item.url.startsWith(prefix)) {
item.url = prefix + (item.url.startsWith('/') ? item.url.substring(1) : item.url);
}
return item;
}
// Функция для преобразования URL в SPA-формат и сохранения ID
function processItemForSpa(item) {
const url = ensureUrlPrefix(item.url);
let spaUrl = url;
let idToSave = null;
let storageKey = null;
// Обработка пестицидов
if (url.includes('/pesticide/product/')) {
const match = url.match(/\/pesticide\/product\/([^\/?]+)/);
if (match && match[1]) {
spaUrl = 'https://ru.ecoplantagro.com/pesticide/product/';
idToSave = match[1];
storageKey = 'currentProductId';
}
}
// Обработка объектов
else if (url.includes('/grobject/') && !url.includes('/group/')) {
const match = url.match(/\/grobject\/([^\/?]+)/);
if (match && match[1]) {
spaUrl = 'https://ru.ecoplantagro.com/object/';
idToSave = match[1];
storageKey = 'currentObjectId';
}
}
// Обработка групп объектов
else if (url.includes('/grobject/group/')) {
const match = url.match(/\/grobject\/group\/([^\/?]+)/);
if (match && match[1]) {
spaUrl = 'https://ru.ecoplantagro.com/grobject/group/';
idToSave = match[1];
storageKey = 'currentGroupId';
}
}
// Обработка культур
else if (url.includes('/cultures/')) {
const match = url.match(/\/cultures\/([^\/?]+)/);
if (match && match[1]) {
spaUrl = 'https://ru.ecoplantagro.com/culture-spa/';
idToSave = match[1];
storageKey = 'currentCulturesId';
}
}
// Обработка элементов удобрений
else if (url.includes('/fertiliser/elements/')) {
const match = url.match(/\/fertiliser\/elements\/([^\/?]+)/);
if (match && match[1]) {
spaUrl = 'https://ru.ecoplantagro.com/fertiliser/elements/';
idToSave = match[1];
storageKey = 'currentElementsId';
}
}
// Обработка удобрений
else if (url.includes('/fertiliser/') && !url.includes('/elements/')) {
const match = url.match(/\/fertiliser\/([^\/?]+)/);
if (match && match[1]) {
spaUrl = 'https://ru.ecoplantagro.com/fertiliser_spa/';
idToSave = match[1];
storageKey = 'currentFertiliserId';
}
}
// Обработка механизмов действия
else if (url.includes('/modeaction/')) {
const match = url.match(/\/modeaction\/([^\/?]+)/);
if (match && match[1]) {
spaUrl = 'https://ru.ecoplantagro.com/modeaction/';
idToSave = match[1];
storageKey = 'currentModeactionId';
}
}
// Обработка действующих веществ
else if (url.includes('/substance/')) {
const match = url.match(/\/substance\/([^\/?]+)/);
if (match && match[1]) {
spaUrl = 'https://ru.ecoplantagro.com/substance/';
idToSave = match[1];
storageKey = 'currentSubstanceId';
}
}
// Обработка химических классов
else if (url.includes('/chem-class/')) {
const match = url.match(/\/chem-class\/([^\/?]+)/);
if (match && match[1]) {
spaUrl = 'https://ru.ecoplantagro.com/chem-class/';
idToSave = match[1];
storageKey = 'currentChemClass';
}
}
return {
originalUrl: url,
spaUrl: spaUrl,
idToSave: idToSave,
storageKey: storageKey,
item: item
};
}
// Функция для обработки клика
function handleSpaClick(processedData) {
// Сохраняем ID в localStorage
if (processedData.idToSave && processedData.storageKey) {
localStorage.setItem(processedData.storageKey, processedData.idToSave);
}
// Отправляем сообщение для перехода
if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.linkClickedVerif) {
window.webkit.messageHandlers.linkClickedVerif.postMessage(
`${processedData.spaUrl}?bg_token=${bgToken}`
);
}
return false;
}
function displayResults(results, query) {
const $resultsContainer = $('.search_autocomplete');
$resultsContainer.empty();
const groupedResults = results.reduce((acc, result) => {
if (!acc[result.type]) {
acc[result.type] = [];
}
acc[result.type].push(result);
return acc;
}, {});
let hasResults = false;
for (const type in groupedResults) {
if (groupedResults[type].length > 0) {
hasResults = true;
$resultsContainer.append(`
${type.charAt(0).toUpperCase() + type.slice(1)} `);
// Очистка дубликатов в текущей категории
const uniqueItems = [];
const seenNames = new Set();
groupedResults[type].forEach(item => {
if (!seenNames.has(item.name)) {
seenNames.add(item.name);
uniqueItems.push(item);
}
});
// Используем только уникальные элементы
uniqueItems.forEach(item => {
const processed = processItemForSpa(item);
// Создаем уникальный ID для обработчика
const clickId = `click_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
// Создаем элемент
const itemHtml = `
`;
$resultsContainer.append(itemHtml);
// Вешаем обработчик после добавления элемента в DOM
setTimeout(() => {
const element = document.getElementById(clickId);
if (element) {
element.addEventListener('click', function(e) {
e.preventDefault();
handleSpaClick(processed);
});
// Для совместимости с onclick
element.onclick = function(e) {
e.preventDefault();
handleSpaClick(processed);
return false;
};
}
}, 0);
});
}
}
if (!hasResults) {
$resultsContainer.append(`
Результатов по запросу: ${query} не найдено.
`);
}
}
$(document).on('click', '.custom-link', function(event) {
event.preventDefault(); // Отменяем стандартное поведение ссылки
const url = $(this).data('url'); // Получаем URL из атрибута data-url
window.webkit.messageHandlers.linkClicked.postMessage(url); // Вызываем метод с URL
});
function searchResultsNew() {
if (navigator.onLine) {
const query = document.querySelector('input[name="query"]').value;
searchResults();
if (query.length >= 2 && query.length < 142) {
$.post(
PATH + "/cropScience/search/", {
query: query,
},
function (data) {
$(".search_autocomplete").html(data);
}
);
}
} else {
noSearchOffline();
}
}
function searchResults() {
const query = "";
fetch('/search_page.php', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ query }),
})
.then(response => response.json())
.then(data => {
window.webkit.messageHandlers.fetchData.postMessage(data);
// Создаем отметку о скачивании на 2 недели
const twoWeeks = 14 * 24 * 60 * 60 * 1000; // 2 недели в миллисекундах
const expiryDate = new Date().getTime() + twoWeeks;
localStorage.setItem('downloaded', expiryDate.toString());
})
.catch(error => {
console.error('Error:', error);
});
}
function openSearch() {
const query = document.querySelector('input[name="query"]').value;
// Проверяем, что длина query больше 3 символов
if (query.length >= 2) {
window.webkit.messageHandlers.fromCoreData.postMessage(query);
}
};
$(".search_input").keyup(function () {
const query = document.querySelector('input[name="query"]').value;
// Проверяем, что длина query больше 3 символов
if (query.length >= 2) {
window.webkit.messageHandlers.fromCoreData.postMessage(query);
}
});
} else {
function openSearch() {
const query = document.querySelector('input[name="query"]]').value;
if (query.length >= 2 && query.length < 142) {
$.post(
PATH + "/cropScience/search/", {
query: query,
},
function (data) {
$(".search_autocomplete").html(data);
}
);
}
};
$(".search_input").keyup(function () {
const query = $(this).val().toLowerCase();
if (query.length >= 2 && query.length < 142) {
$.post(
PATH + "/cropScience/search/", {
query: query,
},
function (data) {
$(".search_autocomplete").html(data);
//displayResults(data, query);
}
);
}
});
}