Created At: 2026-06-14T13:50:06Z
Completed At: 2026-06-14T13:50:06Z
File Path: `file:///c:/Users/HP/Downloads/climate-system/climate-system/index.php`
Total Lines: 4581
Total Bytes: 193572
Showing lines 2250 to 3049
The following code has been modified to include a line number before every line, in the format: <line_number>: <original_line>. Please note that any changes targeting the original code should remove the line number, colon, and leading space.
2250:     © 2026 Climate Information System Indonesia
2251:   </footer>
2252: 
2253:   <!-- ====================================================== -->
2254:   <!-- ======================= SCRIPT ======================= -->
2255:   <!-- ====================================================== -->
2256:   <script>
2257:     const PLACEHOLDER_IMG = "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='800' height='400'%3E%3Crect width='800' height='400' fill='%23f1f5f9' rx='15'/%3E%3Ctext x='400' y='200' text-anchor='middle' font-family='Arial,sans-serif' font-size='18' fill='%2394a3b8'%3ETerapkan Filter untuk menampilkan gambar%3C/text%3E%3C/svg%3E";
2258: 
2259:     const pages = [
2260:       "beranda",
2261:       "historical-climate",
2262:       "future-climate",
2263:       "expert-mode",
2264:       "settings"
2265:     ];
2266: 
2267:     let isAdminLoggedIn = false;
2268: 
2269:     async function showPage(pageId) {
2270:       if (pageId === "settings" && !isAdminLoggedIn) {
2271:         try {
2272:           const res = await fetch('?action=check_auth');
2273:           const authData = await res.json();
2274:           if (authData.authenticated) {
2275:             isAdminLoggedIn = true;
2276:           } else {
2277:             openAdminLoginModal();
2278:             return;
2279:           }
2280:         } catch (err) {
2281:           console.error('Gagal memverifikasi status login:', err);
2282:           openAdminLoginModal();
2283:           return;
2284:         }
2285:       }
2286: 
2287:       pages.forEach(function (id) {
2
<truncated 32324 bytes>
      else if (vDisplay.toLowerCase().includes('suhu') && vDisplay.toLowerCase().includes('mak')) vDisplay = 'Maximum Air Temperature';
3027:         else if (vDisplay.toLowerCase().includes('suhu') && vDisplay.toLowerCase().includes('min')) vDisplay = 'Minimum Air Temperature';
3028:         else if (vDisplay.toLowerCase().includes('kelembaban')) vDisplay = 'Relative Humidity';
3029:         else if (vDisplay.toLowerCase().includes('kecepatan') && vDisplay.toLowerCase().includes('angin')) vDisplay = 'Wind Speed';
3030:         else if (vDisplay.toLowerCase().includes('radiasi')) vDisplay = 'Solar Radiation';
3031:         else if (vDisplay.toLowerCase().includes('suhu') && vDisplay.toLowerCase().includes('permukaan')) vDisplay = 'Sea Surface Temperature';
3032:         else if (vDisplay.toLowerCase().includes('anomali') && vDisplay.toLowerCase().includes('muka')) vDisplay = 'Sea Level Anomaly';
3033:         else if (vDisplay.toLowerCase().includes('salinitas')) vDisplay = 'Sea Surface Salinity';
3034:         else if (vDisplay.toLowerCase().includes('ph')) vDisplay = 'Sea Surface pH';
3035: 
3036:         titleEl.innerText = `Projected ${vDisplay} until 2100`;
3037:       }
3038: 
3039:       let startYearVal = 1991;
3040:       let endYearVal = 2100;
3041: 
3042:       if (canvasId === 'futureChartCanvas') {
3043:         const syEl = document.getElementById('futureStartYearTS');
3044:         const eyEl = document.getElementById('futureEndYearTS');
3045:         if (syEl && syEl.value !== '') startYearVal = parseInt(syEl.value);
3046:         if (eyEl && eyEl.value !== '') endYearVal = parseInt(eyEl.value);
3047:       } else if (canvasId === 'settingsFutureChartCanvas') {
3048:         const syEl = document.getElementById('futureSetStartYearGraph');
3049:         const eyEl = document.getElementById('futureSetEndYearGraph');
The above content does NOT show the entire file contents. If you need to view any lines of the file which were not shown to complete your task, call this tool again to view those lines.
