document.addEventListener('DOMContentLoaded', function () {
var input = document.getElementById('index-search-input');
var results = document.getElementById('index-search-results');
if (!input || !results) return;var allPanes = document.querySelectorAll('.kt-accordion-pane');
var panes = Array.prototype.filter.call(allPanes, function (p) {
return !p.querySelector('.kt-accordion-pane');
});function escapeRegex(str) {
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
}function makeSnippet(text, matchIndex, matchLength) {
var start = Math.max(0, matchIndex - 70);
var end = Math.min(text.length, matchIndex + matchLength + 70);
var snippet = text.slice(start, end);
if (start > 0) snippet = '…' + snippet;
if (end < text.length) snippet = snippet + '…';
return snippet;
}input.addEventListener('input', function () {
var query = input.value.trim();
results.innerHTML = '';
if (query.length < 2) return;var re = new RegExp('\\b' + escapeRegex(query), 'i');
var titleMatches = [];
var contentMatches = [];panes.forEach(function (pane) {
var titleEl = pane.querySelector('.kt-blocks-accordion-title');
var contentEl = pane.querySelector('.kt-accordion-panel-inner');
if (!titleEl || !contentEl) return;var title = titleEl.textContent.trim();
var content = contentEl.textContent.trim();if (re.test(title)) {
titleMatches.push({ title: title, content: content });
return;
}var match = re.exec(content);
if (match) {
contentMatches.push({
title: title,
snippet: makeSnippet(content, match.index, match[0].length)
});
}
});if (titleMatches.length === 0 && contentMatches.length === 0) {
results.innerHTML = 'Aucun résultat pour "' + query + '".
';
return;
}titleMatches.forEach(function (m) {
var block = document.createElement('div');
block.style.cssText = 'padding:12px;margin-bottom:10px;background:#fff3e0;border:2px solid #e67e22;border-radius:6px;';
block.innerHTML = '' + m.title + '' + m.content + '
';
results.appendChild(block);
});if (contentMatches.length > 0) {
var label = document.createElement('p');
label.style.cssText = 'margin:16px 0 8px;font-weight:bold;color:#666;';
label.textContent = 'Autres astuces qui mentionnent "' + query + '" :';
results.appendChild(label);contentMatches.slice(0, 15).forEach(function (m) {
var block = document.createElement('div');
block.style.cssText = 'padding:10px;margin-bottom:8px;background:#fafafa;border:1px solid #eee;border-radius:6px;';
block.innerHTML = '' + m.title + '' + m.snippet + '
';
results.appendChild(block);
});
}
});
});