let jsonData=[],filteredData=[];const SHEET_ID="1aQiwbtrQu1QOIOkFrOYl9WkzT0mqnZqIwI9KJCXGb4E",API_KEY="AIzaSyDsqxZhhN2llBnbX13DldQ0ChLD1VZLs5s",SHEET_NAMES=["學校總表_中文"],COLLEGES=["醫學院","工學院","管理學院","智慧運算學院"],PROGRAMS=["學士班","碩士班","博士班"];async function fetchSheetData(t){document.getElementById("loading-message").style.display="block";let e=`https://sheets.googleapis.com/v4/spreadsheets/1aQiwbtrQu1QOIOkFrOYl9WkzT0mqnZqIwI9KJCXGb4E/values/${t}?key=AIzaSyDsqxZhhN2llBnbX13DldQ0ChLD1VZLs5s`;try{let l=await fetch(e),a=await l.json();if(!a.values||a.values.length<=1)return console.warn(`工作表 ${t} 沒有數據,跳過。`),[];return a.values.slice(1).map((e,l)=>{let a=extractPlainText(e[6]),n=extractPlainText(e[7]);return{id:l,rowIndex:l,國家:extractPlainText(e[1]),校名:formatCell(e[2],e[3]),網址:e[3]||"",學院:a,colleges:parseColleges(a),學制:n,programs:parsePrograms(n),學系:formatCell(e[8]),類型:formatCell(e[11]),更多資訊:"",sheetName:t}})}catch(n){return console.error("讀取 Google Sheets 失敗:",n),[]}finally{document.getElementById("loading-message").style.display="none"}}async function fetchAllSheets(){for(let t of(jsonData=[],filteredData=[],SHEET_NAMES)){let e=await fetchSheetData(t);e.length>0&&(filteredData=[...jsonData=jsonData.concat(e)])}displayResults(),populateFilters(jsonData)}function extractPlainText(t){return t?t.toString().replace(/<\/?[^>]+(>|$)/g,""):""}function parseColleges(t){let e=extractPlainText(t||"").trim();if(!e)return[];if(e.includes("全校"))return[...COLLEGES];let l=e.split(/[,\s、\/;;]+/g).map(t=>t.trim()).filter(Boolean);return[...new Set(l.filter(t=>COLLEGES.includes(t)))]}function parsePrograms(t){let e=extractPlainText(t||"").trim();if(!e)return[];if(e.includes("不限"))return[...PROGRAMS];let l=e.split(/[,\s、\/;;]+/g).map(t=>t.trim()).filter(Boolean);return[...new Set(l.filter(t=>PROGRAMS.includes(t)))]}function formatCell(t,e=null){if(!t)return"";let l=t.toString().replace(/\n/g,"
"),a=e&&e.startsWith("http")?e:"";return a?`${l}`:`${l}`}function populateFilters(t){let e=document.getElementById("country-filter"),l=document.getElementById("college-filter"),a=document.getElementById("type-filter");populateFilterOptions(e,[...new Set(t.map(t=>extractPlainText(t.國家)))]),populateFilterOptions(l,COLLEGES),populateFilterOptions(a,PROGRAMS)}function populateFilterOptions(t,e){t.innerHTML='',e.forEach(e=>{let l=document.createElement("option");l.value=e,l.textContent=e,t.appendChild(l)})}function search(){let t=document.getElementById("search-input").value.trim().toLowerCase(),e=document.getElementById("country-filter").value,l=document.getElementById("college-filter").value,a=document.getElementById("type-filter").value;filteredData=jsonData.filter(n=>(""===t||Object.values(n).some(e=>"string"==typeof e&&e.toLowerCase().includes(t)))&&(""===e||n.國家===e)&&(""===l||(n.colleges||[]).includes(l))&&(""===a||(n.programs||[]).includes(a))),displayResults()}function displayResults(){let t=document.getElementById("table-body"),e=document.getElementById("total-count");t.innerHTML="",filteredData.forEach(e=>{let l=e.sheetName,a=document.createElement("tr");a.innerHTML=`