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