Author: Michelle Wright

Get Your Free Travel Starter Kit!

Sign up with your email to receive step-by-step planning checklists, free guides, and a wealth of money-saving tips to help you plan your trip like an expert!
Travel starter kit

${country.country} Entry Checklist

${checklist}
`); win.document.close(); win.focus(); win.print(); }; const handleAction = async (e) => { const action = e.currentTarget.dataset.action; const countryName = e.currentTarget.dataset.country; if (action === 'reset') { state.searchTerm = ''; state.selectedRegion = ''; state.hasInteracted = false; render(); const input = document.getElementById('search-input'); if (input) input.focus(); return; } const country = travelData.find(c => c.country === countryName); if (!country) return; const data = state.travelerType === 'US' ? country.us : country.uk; const checklist = buildChecklistText(country, data, state.travelerType); if (action === 'copy') { const ok = await copyToClipboard(checklist); flashButton(e.currentTarget, ok ? 'Copied!' : 'Copy failed'); } if (action === 'email') { const subject = `Travel Entry Checklist - ${country.country}`; const body = checklist; window.location.href = `mailto:?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`; } if (action === 'pdf') { openPrintWindow(country, checklist); } }; const render = () => { const searchTerm = normalizeText(state.searchTerm); const filteredData = travelData.filter(country => { const matchesSearch = searchTerm === '' || normalizeText(country.country).includes(searchTerm) || (country.keywords && country.keywords.some(k => normalizeText(k).includes(searchTerm))); const matchesRegion = !state.selectedRegion || country.region === state.selectedRegion; return matchesSearch && matchesRegion; }); const shouldShowResults = state.hasInteracted && (state.searchTerm.trim() !== '' || state.selectedRegion !== ''); const regionTotal = state.selectedRegion ? travelData.filter(c => c.region === state.selectedRegion).length : travelData.length; let summaryHtml = ''; if (shouldShowResults) { if (state.selectedRegion && state.searchTerm.trim()) { summaryHtml = `
Showing ${filteredData.length} destinations matching "${state.searchTerm}" in ${state.selectedRegion} for ${state.travelerType === 'US' ? 'US' : 'UK'} citizens.
`; } else if (state.selectedRegion) { summaryHtml = `
Showing ${filteredData.length} of ${regionTotal} destinations in ${state.selectedRegion} for ${state.travelerType === 'US' ? 'US' : 'UK'} citizens.
`; } else { summaryHtml = `
Showing ${filteredData.length} destinations matching "${state.searchTerm}" for ${state.travelerType === 'US' ? 'US' : 'UK'} citizens.
`; } } let resultsHtml = ''; if (!shouldShowResults) { resultsHtml = `

Start your search

Type a destination or pick a region to see results.

`; } else if (filteredData.length > 0) { resultsHtml = filteredData.map(country => { const data = state.travelerType === 'US' ? country.us : country.uk; if (!data) return ''; return `

${country.country}

${country.region}

${data.riskLevel} Risk (Safety)
${data.visaFree ? icons.checkCircle : icons.xCircle}${data.visaFree ? 'Visa Not Required' : 'Visa Required'}

${data.visaType}

${icons.calendar}Max Stay

${data.maxStay}

${icons.fileText}Key Requirement

${data.etaRequired ? 'Pre-Travel Authorization' : 'None'}

${data.additionalNotes ? `
Note: ${data.additionalNotes}
` : ''}
Travel insurance (VisitorsCoverage) eSIM (Airalo)
`; }).join(''); } else { resultsHtml = `

No Destinations Found

Your search for "${state.searchTerm}" returned no results.

`; } appRoot.innerHTML = `
${icons.globe}

Travel Entry Requirements

Select your citizenship and search for your destination to check the latest visa requirements.

${summaryHtml}
${resultsHtml}
${icons.alertTriangle}
Disclaimer: Information is provided for general guidance only and may change. Always verify entry requirements with the official government source before booking travel.
`; addEventListeners(); }; const addEventListeners = () => { document.getElementById('search-input').addEventListener('input', (e) => { state.searchTerm = e.target.value; state.hasInteracted = state.searchTerm.trim() !== '' || state.selectedRegion !== ''; render(); }); document.getElementById('region-select').addEventListener('change', (e) => { state.selectedRegion = e.target.value; state.searchTerm = ''; state.hasInteracted = state.selectedRegion !== ''; render(); }); document.getElementById('us-traveler-btn').addEventListener('click', () => { if (state.travelerType !== 'US') { state.travelerType = 'US'; render(); } }); document.getElementById('uk-traveler-btn').addEventListener('click', () => { if (state.travelerType !== 'UK') { state.travelerType = 'UK'; render(); } }); document.querySelectorAll('[data-action]').forEach(btn => { btn.addEventListener('click', handleAction); }); }; render(); }; if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } })();