Urgent Vietnam Visa Rescue Center
https://cdn.tailwindcss.com
https://cdn.jsdelivr.net/npm/chart.js
body { font-family: ‘Inter’, sans-serif; }
.chart-container {
position: relative;
width: 100%;
max-width: 600px;
margin-left: auto;
margin-right: auto;
height: 300px;
max-height: 400px;
}
@media (min-width: 768px) {
.chart-container { height: 350px; }
}
/* Custom scrollbar for clean look */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #f1f1f1; }
::-webkit-scrollbar-thumb { background: #d6d3d1; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #a8a29e; }
.step-connector::before {
content: ”;
position: absolute;
top: 0;
bottom: 0;
left: 50%;
width: 2px;
background-color: #e5e7eb;
z-index: -1;
transform: translateX(-50%);
}
.animate-pulse-slow {
animation: pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes pulse {
0%, 100% { opacity: 1; }
50% { opacity: .5; }
}
/* Disabled link styling */
a.disabled {
pointer-events: none;
opacity: 0.5;
}
Urgent Protocol Active
Don’t Let a Missing Visa Ground You.
We specialize in urgent Vietnam visa approval in as little as 2 hours.
Select your current status below to activate the correct solution.
📄
I Already Applied
My application is stuck in “Processing” on the government portal.
Select Rescue Mission →
🆘
I Haven’t Applied Yet
I have no visa application and my flight is coming up soon.
Select Emergency Application →
Vietnam Time (GMT+7)
Loading…
Processing Windows: 08:00-12:00 & 14:00-18:00 (Mon-Fri)
Syncing to server…
Select a Service Above
Please select your current situation to see the specific protocol.
Speed vs. Cost Analysis
Interactive Chart
* Prices in USD per person. Timelines are in working hours.
Action Plan
1
Select Urgency
Choose between 2h, 4h, or 8h processing based on your flight time.
2
Submit Details
Provide requirements.
3
Receive Approval
We email your E-visa directly. Print it and board your flight.
📋 Required Documents
Select a service to see requirements.
🇨🇳 Chinese E-Passport Holders
If your passport has the “nine-dash line”, you will receive a loose-leaf visa upon arrival. We still process the e-visa approval for you. You must use the Visa-on-Arrival counter.
Why Trust Us With Your Emergency?
We don’t just hope for the best; we have the local connections to ensure it.
24/7
Support Availability
Frequently Asked Questions
Is the “2-hour” service guaranteed?
▼
Yes. If we accept your order during working hours (08:00 – 15:00 GMT+7), we commit to delivering within that timeframe. If we fail, you get a full refund.
What if I apply on the weekend?
▼
The Immigration Department is generally closed. However, please contact us immediately via chat or email. In extreme emergencies, “Overtime” options may be available for a higher fee depending on officer availability.
My existing application is stuck. Can you help?
▼
Yes. Select “I Already Applied” in the tool above. We use your Registration Code to push your specific file to the top of the approval list.
Can I get a refund if it fails?
▼
Absolutely. We offer a 100% money-back guarantee if we do not deliver within the promised timeframe. We use PayPal for secure transactions which also offers buyer protection.
// — 1. State Management —
const appState = {
mode: null, // ‘pending’ or ‘new’
chartInstance: null
};
const data = {
pending: {
title: “Rescue Mission: Pending Application”,
desc: “We prioritize your existing application code to clear the ‘Processing’ backlog immediately.”,
url: “
https://www.vietnamimmigration.org/boost-your-e-visa-application-form/” ;,
prices: [
{ time: ‘2 Hours’, cost: 200, label: ‘Supersonic’, desc: ‘Flights in < 6hrs' },
{ time: '4 Hours', cost: 175, label: 'Express', desc: 'Flights in < 12hrs' },
{ time: '8 Hours', cost: 145, label: 'Priority', desc: 'Flights tomorrow' }
],
requirements: [
"E-visa Registration Code (e.g., E123…)",
"Email address used for the application",
"No new documents needed"
],
step2: { title: "Provide Code", desc: "Enter your Registration Code & Email." },
color: '#3b82f6', // Blue
borderColor: 'border-blue-500',
btnText: "Activate Rescue Now"
},
new: {
title: "Emergency Protocol: New Application",
desc: "We handle the entire data entry and submission process to ensure zero errors and immediate approval.",
url: "
https://www.visa-vietnam.org/vietnam-visa-application-online" ;,
prices: [
{ time: '2 Hours', cost: 230, label: 'Supersonic', desc: 'Flights in < 6hrs' },
{ time: '4 Hours', cost: 200, label: 'Express', desc: 'Flights in p.cost);
appState.chartInstance.data.datasets[0].backgroundColor = modeData.prices.map(p => {
// Highlight the fastest option with the main color
return p.time === ‘2 Hours’ ? modeData.color : ‘#d6d3d1’;
});
appState.chartInstance.update();
}
// — 3. UI Interaction —
function setMode(mode) {
appState.mode = mode;
const modeData = data[mode];
// Toggle Button Visuals
const btnPending = document.getElementById(‘btn-pending’);
const btnNew = document.getElementById(‘btn-new’);
const dotPending = document.getElementById(‘dot-pending’);
const dotNew = document.getElementById(‘dot-new’);
const dashboard = document.getElementById(‘dashboard’);
const pricingCard = document.getElementById(‘pricing-card’);
// Reset classes
btnPending.classList.remove(‘border-blue-500’, ‘ring-2’, ‘ring-blue-100’);
btnNew.classList.remove(‘border-red-500’, ‘ring-2’, ‘ring-red-100’);
dotPending.style.opacity = ‘0’;
dotNew.style.opacity = ‘0’;
// Active State
if (mode === ‘pending’) {
btnPending.classList.add(‘border-blue-500’, ‘ring-2’, ‘ring-blue-100’);
dotPending.style.opacity = ‘1’;
pricingCard.className = “bg-white p-6 rounded-xl shadow-lg border-t-4 border-blue-500 transition-colors duration-500”;
} else {
btnNew.classList.add(‘border-red-500’, ‘ring-2’, ‘ring-red-100’);
dotNew.style.opacity = ‘1’;
pricingCard.className = “bg-white p-6 rounded-xl shadow-lg border-t-4 border-red-500 transition-colors duration-500”;
}
// Reveal Dashboard
dashboard.classList.remove(‘opacity-30’, ‘pointer-events-none’, ‘grayscale’);
// Scroll to dashboard on mobile
if(window.innerWidth {
dashboard.scrollIntoView({ behavior: ‘smooth’, block: ‘start’ });
}, 100);
}
// Update Content
document.getElementById(‘dashboard-title’).innerText = modeData.title;
document.getElementById(‘dashboard-desc’).innerText = modeData.desc;
document.getElementById(‘step-2-title’).innerText = modeData.step2.title;
document.getElementById(‘step-2-desc’).innerText = modeData.step2.desc;
// Update CTA Button
const ctaBtn = document.getElementById(‘cta-btn’);
ctaBtn.innerHTML = `
${modeData.btnText} → `;
ctaBtn.href = modeData.url;
ctaBtn.classList.remove(‘disabled’, ‘opacity-50’, ‘pointer-events-none’);
// Update CTA styling
ctaBtn.className = `w-full py-4 text-white font-bold rounded-lg shadow transition-colors flex items-center justify-center gap-2 ${mode === ‘pending’ ? ‘bg-blue-600 hover:bg-blue-700’ : ‘bg-red-600 hover:bg-red-700’}`;
// Update Requirements List
const reqList = document.getElementById(‘req-list’);
reqList.innerHTML = modeData.requirements.map(req =>
`
✓
${req}
`
).join(”);
// Update Pricing List
const pricingList = document.getElementById(‘pricing-list’);
pricingList.innerHTML = modeData.prices.map((p, index) =>
`
${p.time}
${index === 0 ? ‘Fastest ‘ : ”}
${p.desc}
$${p.cost}
`
).join(”);
// Update Chart
updateChart(modeData);
}
// — 4. Clock Logic (Vietnam Time) —
function updateClock() {
const vnTime = new Date().toLocaleString(“en-US”, {timeZone: “Asia/Ho_Chi_Minh”});
const dateObj = new Date(vnTime);
// Format Time HH:MM:SS
const timeStr = dateObj.toLocaleTimeString(‘en-US’, { hour12: false });
document.getElementById(‘vn-clock’).innerText = timeStr;
// Determine Office Status
const hour = dateObj.getHours();
const day = dateObj.getDay(); // 0 is Sunday, 6 is Saturday
const statusEl = document.getElementById(‘office-status’);
const dot = document.getElementById(‘clock-indicator-dot’);
const ping = document.getElementById(‘clock-indicator-ping’);
let statusText = “”;
let colorClass = “”;
let bgClass = “”;
if (day === 0 || day === 6) {
statusText = “Weekend (Closed) – Contact for Emergency Overtime”;
colorClass = “text-red-400 font-bold”;
bgClass = “bg-red-500”;
} else {
// Mon-Fri
if ((hour >= 8 && hour = 14 && hour = 12 && hour {
initChart();
updateClock();
setInterval(updateClock, 1000);
});