document.addEventListener('DOMContentLoaded', async () => { const fileHostsTableContainer = document.getElementById('file-hosts-table-container'); const hostSearchInput = document.getElementById('host-search-input'); const clearHostSearchIcon = document.getElementById('clear-host-search'); const provider1Select = document.getElementById('provider1'); const provider2Select = document.getElementById('provider2'); const compareTableContainer = document.getElementById('compare-table-container'); const closeCompareButton = document.getElementById('close-compare'); const adultHostsTableContainer = document.getElementById('adult-hosts-table-container'); const adultHostSearchInput = document.getElementById('adult-host-search-input'); const clearAdultHostSearchIcon = document.getElementById('clear-adult-host-search'); const pricingSection = document.getElementById('pricing'); // Targeting the 'Pricing' section // Initially hide the comparison table container compareTableContainer.style.display = 'none'; try { const [fileHostsResponse, adultHostsResponse, pricingResponse] = await Promise.all([ fetch('./json/file-hosts.json'), fetch('./json/adult-hosts.json'), fetch('./json/pricing.json') // Fetching the pricing data ]); const fileHostsData = await fileHostsResponse.json(); const adultHostsData = await adultHostsResponse.json(); const pricingData = await pricingResponse.json(); // Parsed pricing data // Function to generate a table const generateTable = (data, tableId) => { const container = document.getElementById(tableId); let tableHTML = `
| Service Name | `; const providers = Object.keys(data[Object.keys(data)[0]]); providers.forEach(provider => { tableHTML += `${provider} | `; }); tableHTML += '
|---|---|
| ${host} | `; providers.forEach(provider => { const status = data[host][provider]; const icon = status === 'yes' ? '✅' : '❌'; tableHTML += `${icon} | `; }); tableHTML += '
| Plans | '; // Extract service names from the first plan object if (pricingData.plans && pricingData.plans.length > 0) { const services = Object.keys(pricingData.plans[0]).filter(key => key !== 'name'); services.forEach(service => { tableHTML += `${service} | `; }); tableHTML += '
|---|---|
| ${plan.name} | `; services.forEach(service => { tableHTML += `${plan[service]} | `; }); tableHTML += '
Error: Pricing data structure is incorrect.
'; } }; // Function to populate provider dropdowns const populateProviderDropdowns = (data) => { const providers = Object.keys(data[Object.keys(data)[0]]); providers.forEach(provider => { const option1 = document.createElement('option'); option1.value = provider; option1.textContent = provider; provider1Select.appendChild(option1); const option2 = document.createElement('option'); option2.value = provider; option2.textContent = provider; provider2Select.appendChild(option2); }); }; // Function to generate the comparison table const generateCompareTable = (data, provider1, provider2) => { let tableHTML = '| Service Name | ' + provider1 + ' | ' + provider2 + ' |
|---|---|---|
| ${host} | ${icon1} | ${icon2} |
Error loading file hosts data.
'; adultHostsTableContainer.innerHTML = 'Error loading adult hosts data.
'; pricingSection.innerHTML = 'Error loading pricing data.
'; } });