Interactive Arrival Guide: Tho Xuan Airport (THD) https://cdn.tailwindcss.com https://cdn.jsdelivr.net/npm/chart.js Goal: Compare, Inform. -> Viz: Two parallel, interactive flowcharts made with HTML/CSS. -> Interaction: Clickable steps update a detail panel. -> Justification: Directly compares standard vs. expedited paths for clarity. -> Library/Method: Vanilla JS, Tailwind CSS. – Report Info: Visa stamping fees, transport costs. -> Goal: Inform. -> Viz: Dynamic text in detail panel, simple HTML table for transport. -> Interaction: N/A. -> Justification: Clear presentation of key data points in context. -> Library/Method: HTML. – Report Info: Time savings. -> Goal: Compare, Persuade. -> Viz: Bar Chart. -> Interaction: N/A. -> Justification: Visually represents the primary benefit of the service. -> Library/Method: Chart.js. – Report Info: Pre-arrival checklist. -> Goal: Organize, Prepare. -> Viz: Interactive HTML checklist. -> Interaction: Clickable checkboxes. -> Justification: Simple, useful tool for users. -> Library/Method: HTML. – Report Info: Trust-building points. -> Goal: Persuade. -> Viz: Card layout in a collapsible accordion. -> Interaction: Accordion toggle. -> Justification: Organizes detailed arguments into a digestible format. -> Library/Method: Vanilla JS, Tailwind CSS. –> body { font-family: ‘Inter’, sans-serif; background-color: #FDFBF8; /* A very light, warm off-white */ color: #3C3633; /* Dark, warm gray for text */ } .accent-bg { background-color: #A0937D; } /* Muted, earthy tan */ .accent-text { color: #A0937D; } .accent-border { border-color: #A0937D; } .secondary-bg { background-color: #E0D8B0; } /* Lighter, warm accent */ .secondary-text { color: #E0D8B0; } .highlight-bg { background-color: #A0937D; color: #FFFFFF; } .process-step { cursor: pointer; transition: all 0.3s ease; border-left-width: 4px; } .process-step:hover { transform: translateY(-2px); box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); } .process-step.active { border-color: #3C3633; background-color: #F3EFE0; } .btn-toggle { transition: all 0.3s ease; } .btn-toggle.active { background-color: #A0937D; color: #FFFFFF; box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); } .btn-toggle:not(.active) { background-color: #F3EFE0; color: #3C3633; } .accordion-content { max-height: 0; overflow: hidden; transition: max-height 0.5s ease-in-out; } .accordion-content.open { max-height: 1500px; /* Adjust as needed */ }

Tho Xuan Airport (THD) Interactive Arrival Guide

Your streamlined path from landing to exploring Vietnam.

First, what is your visa status?

Select your visa type to see a personalized guide for your arrival process. This will show you exactly what to expect and how you can save time.

Standard Process

Expedited Process

Essential Information for Your Trip

This interactive guide is provided by VietnamImmigration.org to ensure a smooth and informed arrival.

All information is based on current regulations and is for guidance purposes.

document.addEventListener(‘DOMContentLoaded’, function() { let currentVisaType = ‘evisa’; let activeStepId = ‘expedited-step-1’; const data = { evisa: { standard: [ { id: ‘standard-step-1’, icon: ‘✈️’, title: ‘Arrive at Airport’, details: ‘Upon disembarking, you will enter the terminal. The first checkpoint is Immigration.’ }, { id: ‘standard-step-2’, icon: ‘⏳’, title: ‘Queue for Immigration’, details: ‘Proceed to the “Foreigners” lane. This step can involve long wait times, especially during peak hours, as you join the queue with all other international passengers.’ }, { id: ‘standard-step-3’, icon: ‘πŸ›‚’, title: ‘Immigration Check’, details: ‘Present your passport and printed E-Visa (or just passport if visa-free) to the officer. They will verify your documents and stamp your passport.’ }, { id: ‘standard-step-4’, icon: ‘πŸ›„’, title: ‘Baggage Claim’, details: ‘After clearing immigration, find your flight on the monitors to locate the correct baggage carousel and collect your luggage.’ }, { id: ‘standard-step-5’, icon: ‘πŸ›ƒ’, title: ‘Customs Check’, details: ‘Proceed through the Green Channel if you have nothing to declare, or the Red Channel if you have goods exceeding duty-free limits.’ }, { id: ‘standard-step-6’, icon: ‘πŸ‘‹’, title: ‘Exit Airport’, details: ‘You have completed the arrival process. Welcome to Vietnam! Find your onward transportation in the arrivals hall.’ } ], expedited: [ { id: ‘expedited-step-1’, icon: ‘🀝’, title: ‘Meet & Greet at Gate’, details: ‘As you disembark, our agent will be waiting for you with a sign bearing your name. This personal welcome marks the start of your seamless entry.’ }, { id: ‘expedited-step-2’, icon: ‘πŸš€’, title: ‘Escort to Priority Lane’, details: ‘Bypass the long general queues. Our agent will escort you directly to the dedicated priority lane for immigration.’ }, { id: ‘expedited-step-3’, icon: ‘πŸ›‚’, title: ‘Fast-Track Immigration’, details: ‘The immigration check is completed swiftly without the usual wait. Our agent ensures all your documents are ready for a smooth process.’ }, { id: ‘expedited-step-4’, icon: ‘πŸ›„’, title: ‘Baggage Claim Assistance’, details: ‘Our agent can assist you in locating and collecting your luggage from the carousel.’ }, { id: ‘expedited-step-5’, icon: ‘πŸ›ƒ’, title: ‘Customs Guidance’, details: ‘You will be guided through the appropriate customs channel smoothly and efficiently.’ }, { id: ‘expedited-step-6’, icon: ‘πŸ‘‹’, title: ‘Exit Airport’, details: ‘You are escorted to the arrivals hall, ready to begin your Vietnam adventure in a fraction of the usual time.’ } ] }, voa: { standard: [ { id: ‘standard-step-1’, icon: ‘✈️’, title: ‘Arrive at Airport’, details: ‘Upon disembarking, your first stop is NOT the main immigration queue. You must first get your visa.’ }, { id: ‘standard-step-2’, icon: ‘πŸ“„’, title: ‘Locate VOA Counter’, details: ‘Find the “Visa On Arrival” or “Landing Visa” counter. Signage will direct you to the correct area.’ }, { id: ‘standard-step-3’, icon: ‘⏳’, title: ‘Queue for Visa Stamp’, details: ‘Submit your Visa Approval Letter, completed NA1 form, photo, passport, and cash stamping fee ($25 for single entry, $50 for multi-entry). This queue can be very long and slow.’ }, { id: ‘standard-step-4’, icon: ‘πŸ›‚’, title: ‘Queue for Immigration’, details: ‘Once your visa is in your passport, you must then join the separate, often long, queue for the final immigration check.’ }, { id: ‘standard-step-5’, icon: ‘πŸ›„’, title: ‘Baggage Claim’, details: ‘After finally clearing immigration, find your baggage carousel to collect your luggage.’ }, { id: ‘standard-step-6’, icon: ‘πŸ›ƒ’, title: ‘Customs Check’, details: ‘Proceed through the appropriate customs channel.’ }, { id: ‘standard-step-7’, icon: ‘πŸ‘‹’, title: ‘Exit Airport’, details: ‘After a lengthy process, you can now exit the airport.’ } ], expedited: [ { id: ‘expedited-step-1’, icon: ‘🀝’, title: ‘Meet & Greet at Gate’, details: ‘Our agent greets you as you leave the plane. You hand over your passport and VOA documents to them.’ }, { id: ‘expedited-step-2’, icon: ‘πŸ›‹οΈ’, title: ‘Relax While We Work’, details: ‘You can sit and relax while our agent handles the entire Visa on Arrival stamping process for you, including paying the fee. No queuing required.’ }, { id: ‘expedited-step-3’, icon: ‘πŸš€’, title: ‘Escort to Priority Lane’, details: ‘Once your visa is stamped, our agent returns your passport and escorts you directly to the priority immigration lane, bypassing another long queue.’ }, { id: ‘expedited-step-4’, icon: ‘πŸ›‚’, title: ‘Fast-Track Immigration’, details: ‘The final immigration check is completed in minutes.’ }, { id: ‘expedited-step-5’, icon: ‘πŸ›„’, title: ‘Baggage Claim Assistance’, details: ‘Our agent assists you in locating and retrieving your checked baggage.’ }, { id: ‘expedited-step-6’, icon: ‘πŸ‘‹’, title: ‘Exit Airport’, details: ‘Be escorted to the arrivals hall, having saved significant time and avoided all queues and hassle.’ } ] } }; const accordionData = [ { title: “Pre-Arrival Checklist”, content: `

Ensure you have everything ready for a smooth arrival. A little preparation goes a long way.

  • Valid Passport (min. 6 months validity)
  • Printed E-Visa or Visa Approval Letter
  • Completed NA1 Form (for VOA)
  • Passport Photo 4x6cm (for VOA)
  • Cash (USD/VND) for Stamping Fee (for VOA)
  • Proof of Onward/Return Travel
  • Accommodation Details
` }, { title: “About Tho Xuan Airport (THD) & Transport”, content: `

Tho Xuan Airport is located about 45km west of Thanh Hoa city center. Here are your main transport options to the city:

Transport Est. Cost (One-Way) Notes
Bus (No. 19)~25,000 VNDMost budget-friendly. Runs 5:30-18:30.
Taxi400,000 – 500,000 VNDConvenient for groups or lots of luggage.
Motorbike Taxi~7,000 VND / kmFlexible and quick, best for light travelers.
Private TransferVaries (Pre-book)Most comfortable and hassle-free option.
` }, { title: “Why Trust Our Expedited Service?”, content: `

Booking with VietnamImmigration.org ensures a secure, reliable, and professional service. Here’s why you can book with confidence:

15+ Years of Experience

Our domain has been active since 2008, a testament to our long-standing expertise in Vietnam immigration services.

100% Money-Back Guarantee

We stand by our service quality with a full refund policy, offering you complete peace of mind.

Secure PayPal Payments

Pay safely with PayPal and benefit from their robust Buyer Protection policy for all transactions.

Verified Customer Reviews

See what our satisfied customers say on independent review platforms like Sitejabber.

` }, { title: “Time Saved: A Visual Comparison”, content: `

The primary benefit of the Expedited Service is the significant time you save. While exact times vary, this chart illustrates the typical difference in total processing time from landing to exiting the airport.

` } ]; const standardCol = document.getElementById(‘standard-process-steps’); const expeditedCol = document.getElementById(‘expedited-process-steps’); const detailsContent = document.getElementById(‘details-content’); const btnEvisa = document.getElementById(‘btn-evisa’); const btnVoa = document.getElementById(‘btn-voa’); const accordionContainer = document.getElementById(‘accordion-container’); function createStepElement(step) { return `
${step.icon}

${step.title}

`; } function renderProcesses() { const visaData = data[currentVisaType]; standardCol.innerHTML = visaData.standard.map(createStepElement).join(”); expeditedCol.innerHTML = visaData.expedited.map(createStepElement).join(”); addStepListeners(); updateDetails(activeStepId); } function addStepListeners() { document.querySelectorAll(‘.process-step’).forEach(step => { step.addEventListener(‘click’, () => { activeStepId = step.id; updateDetails(activeStepId); }); }); } function findStepDetails(stepId) { const visaData = data[currentVisaType]; let stepInfo = visaData.standard.find(s => s.id === stepId); if (!stepInfo) { stepInfo = visaData.expedited.find(s => s.id === stepId); } return stepInfo; } function updateDetails(stepId) { const stepInfo = findStepDetails(stepId); if (stepInfo) { detailsContent.innerHTML = `

${stepInfo.title}

${stepInfo.details}

`; } document.querySelectorAll(‘.process-step’).forEach(step => { step.classList.toggle(‘active’, step.id === stepId); }); } function createAccordionItem(item, index) { const buttonId = `accordion-button-${index}`; const contentId = `accordion-content-${index}`; return `

${item.content}
`; } function renderAccordions() { accordionContainer.innerHTML = accordionData.map(createAccordionItem).join(”); document.querySelectorAll(‘[id^=”accordion-button-“]’).forEach(button => { button.addEventListener(‘click’, () => { const content = document.getElementById(button.getAttribute(‘aria-controls’)); const isExpanded = button.getAttribute(‘aria-expanded’) === ‘true’; button.setAttribute(‘aria-expanded’, !isExpanded); content.classList.toggle(‘open’); button.querySelector(‘svg’).classList.toggle(‘rotate-180’); if (button.getAttribute(‘aria-controls’) === ‘accordion-content-3’ && !isExpanded) { renderTimeChart(); } }); }); } let timeChartInstance = null; function renderTimeChart() { const ctx = document.getElementById(‘time-chart’)?.getContext(‘2d’); if (!ctx) return; if(timeChartInstance) { timeChartInstance.destroy(); } const chartData = { labels: [‘E-Visa / Visa-Free’, ‘Visa on Arrival’], datasets: [ { label: ‘Standard Process (mins)’, data: [45, 90], backgroundColor: ‘rgba(60, 54, 51, 0.5)’, borderColor: ‘rgba(60, 54, 51, 1)’, borderWidth: 1 }, { label: ‘Expedited Process (mins)’, data: [15, 20], backgroundColor: ‘rgba(160, 147, 125, 0.7)’, borderColor: ‘rgba(160, 147, 125, 1)’, borderWidth: 1 } ] }; timeChartInstance = new Chart(ctx, { type: ‘bar’, data: chartData, options: { responsive: true, maintainAspectRatio: false, plugins: { title: { display: true, text: ‘Estimated Total Airport Processing Time’ }, tooltip: { callbacks: { label: function(context) { return `${context.dataset.label}: ${context.raw} mins`; } } } }, scales: { y: { beginAtZero: true, title: { display: true, text: ‘Minutes’ } } } } }); } btnEvisa.addEventListener(‘click’, () => { if (currentVisaType !== ‘evisa’) { currentVisaType = ‘evisa’; activeStepId = ‘expedited-step-1’; btnEvisa.classList.add(‘active’); btnVoa.classList.remove(‘active’); renderProcesses(); } }); btnVoa.addEventListener(‘click’, () => { if (currentVisaType !== ‘voa’) { currentVisaType = ‘voa’; activeStepId = ‘expedited-step-1’; btnVoa.classList.add(‘active’); btnEvisa.classList.remove(‘active’); renderProcesses(); } }); // Initial render renderProcesses(); renderAccordions(); });
evisa.vn Avatar

Published by