let documents = []; const searchInput = document.getElementById("searchInput"); const results = document.getElementById("results"); const status = document.getElementById("status"); // لینک مستقیم فایل CSV در مخزن Git const CSV_URL = "https://git.sadentel.net/f.taghipour/Document/raw/branch/main/SadenTel_Documents.csv"; // یکسانسازی حروف و اعداد function normalize(value) { return String(value ?? "") .trim() .toLowerCase() .replace(/[۰-۹]/g, digit => "۰۱۲۳۴۵۶۷۸۹".indexOf(digit) ) .replace(/[٠-٩]/g, digit => "٠١٢٣٤٥٦٧٨٩".indexOf(digit) ) .replace(/ي/g, "ی") .replace(/ك/g, "ک"); } // پردازش فایل CSV function parseCSV(text) { const rows = []; let row = []; let field = ""; let insideQuotes = false; for (let i = 0; i < text.length; i++) { const char = text[i]; if (char === '"') { if (insideQuotes && text[i + 1] === '"') { field += '"'; i++; } else { insideQuotes = !insideQuotes; } } else if (char === "," && !insideQuotes) { row.push(field); field = ""; } else if ( (char === "\n" || char === "\r") && !insideQuotes ) { if (char === "\r" && text[i + 1] === "\n") { i++; } row.push(field); if (row.some(value => value.trim() !== "")) { rows.push(row); } row = []; field = ""; } else { field += char; } } row.push(field); if (row.some(value => value.trim() !== "")) { rows.push(row); } return rows; } // دریافت اطلاعات از لینک آنلاین CSV async function loadDocuments() { try { searchInput.disabled = true; status.textContent = "در حال دریافت اسناد..."; const response = await fetch(CSV_URL, { cache: "no-store" }); if (!response.ok) { throw new Error("CSV file could not be loaded"); } const text = await response.text(); const rows = parseCSV(text); documents = rows.slice(1).map(columns => ({ row: columns[0]?.trim(), title: columns[1]?.trim(), id: columns[2]?.trim() })).filter(doc => doc.title && doc.id); status.textContent = `${documents.length} سند با موفقیت بارگذاری شد.`; searchInput.disabled = false; } catch (error) { status.textContent = "خطا در دریافت اطلاعات. دسترسی به فایل CSV را بررسی کنید."; console.error("Loading error:", error); } } // جستوجوی اسناد function searchDocuments() { const query = normalize(searchInput.value); results.innerHTML = ""; if (!query) { status.textContent = `${documents.length} سند ثبت شده است.`; return; } const matches = documents.filter(doc => { const title = normalize(doc.title); const id = normalize(doc.id); // استخراج کلمات کامل عنوان const titleWords = title.match(/[\p{L}\p{N}]+/gu) || []; // تطابق کامل کلمه یا شناسه return titleWords.includes(query) || id === query; }); console.log("Search query:", query); console.table(matches); status.textContent = `${matches.length} نتیجه پیدا شد.`; if (matches.length === 0) { results.innerHTML = '