const input = document.getElementById("searchInput"); const clearBtn = document.getElementById("clearBtn"); const results = document.getElementById("results"); const counter = document.getElementById("counter"); const resultsHeader = document.querySelector(".resultsHeader"); const COLUMNS = [ { key: "إسم المنشأة", label: "إسم المنشأة" }, { key: "السجل التجاري", label: "السجل التجاري" }, { key: "حالة العينة", label: "حالة العينة" }, { key: "اسم المسح", label: "اسم المسح" }, ]; function normalize(value){ return String(value ?? "") .toLowerCase() .trim() .replace(/[إأآا]/g,"ا") .replace(/ى/g,"ي") .replace(/ة/g,"ه") .replace(/[^\u0600-\u06FFa-zA-Z0-9 ]/g,"") .replace(/\s+/g," "); } function esc(value){ return String(value ?? "") .replace(/&/g,"&") .replace(//g,">") .replace(/"/g,""") .replace(/'/g,"'"); } function getStatusClass(status){ const s = normalize(status); if(s.includes("اعطت كامل البيانات")){ return "status success"; } if(s.includes("اعطت بعض البيانات") || s.includes("استيفاء ذاتي")){ return "status warning"; } if( s.includes("رفض") || s.includes("مغلق") || s.includes("لم يعثر") || s.includes("انتقلت") || s.includes("تحولت") || s.includes("خارج نطاق") || s.includes("لم تمارس") || s.includes("غير متاح") || s.includes("يطالب") || s.includes("اخري") ){ return "status danger"; } return "status"; } function getScore(row, q){ const name = normalize(row["إسم المنشأة"]); const cr = normalize(row["السجل التجاري"]); if(name === q || cr === q) return 1; if(name.startsWith(q) || cr.startsWith(q)) return 2; if(name.includes(q) || cr.includes(q)) return 3; return 99; } function showResultsArea(){ results.classList.add("active"); if(resultsHeader) resultsHeader.classList.add("active"); } function hideResultsArea(){ results.classList.remove("active"); if(resultsHeader) resultsHeader.classList.remove("active"); } function render(rows){ showResultsArea(); counter.textContent = rows.length ? `عدد النتائج: ${rows.length}` : ""; if(!rows.length){ results.innerHTML = `