Transfer Summary
Personal Information
Arrival / Departure Details
Luxury Professional Footer
Transfer Booking

Book Your Transfer

Price: €0
Transfer Booking Widget

Book a trusted, English-speaking driver to pick you up at the same price as a regular taxi

Fixed pricing, meet & greet service, flight tracking adjustments included.

Estimated Total Price
€0.00
]; // Accurate Pricing Table Rules Matrix referenced from Hurghada Airport Hub base (In EUR) const baseRates = { "Hurghada Center Hotels": { sedan: 14, minibus: 23 }, "Sahl Hashesh": { sedan: 20, minibus: 28 }, "Makadi": { sedan: 20, minibus: 28 }, "Al Ahyia": { sedan: 18, minibus: 23 }, "El Gouna": { sedan: 20, minibus: 28 }, "Soma Bay": { sedan: 28, minibus: 38 }, "Safaga": { sedan: 28, minibus: 38 }, "Magic Life": { sedan: 45, minibus: 60 }, "El Quseir": { sedan: 60, minibus: 70 }, "Port Ghalib": { sedan: 95, minibus: 105 }, "Marsa Alam": { sedan: 110, minibus: 145 }, "Luxor": { sedan: 140, minibus: 155 }, "Cairo": { sedan: 165, minibus: 180 } }; // Currency Translations const currencyRates = { EUR: 1.0, USD: 1.08, GBP: 0.85 }; const currencySymbols = { EUR: '€', USD: '$', GBP: '£' }; let tripType = 'oneway'; // Generates dropdown data blocks cleanly during execution window.onload = function() { const pickupSelect = document.getElementById('pickup'); const dropoffSelect = document.getElementById('dropoff'); // Clear select spaces completely pickupSelect.options.length = 0; dropoffSelect.options.length = 0; // Loop inject complete list values into elements destinations.forEach((loc) => { pickupSelect.options[pickupSelect.options.length] = new Option(loc, loc); dropoffSelect.options[dropoffSelect.options.length] = new Option(loc, loc); }); // Set structural initialization defaults pickupSelect.value = "Hurghada airport"; dropoffSelect.value = "Hurghada Center Hotels"; // Setup timeline dates default settings automatically const today = new Date(); const tomorrow = new Date(today); tomorrow.setDate(tomorrow.getDate() + 1); document.getElementById('travel-date').value = tomorrow.toISOString().split('T')[0]; document.getElementById('return-date').value = tomorrow.toISOString().split('T')[0]; calculatePrice(); }; // Updates selected UI visual state and updates pricing multipliers instantly function setTripType(type) { tripType = type; document.getElementById('btn-oneway').classList.toggle('active', type === 'oneway'); document.getElementById('btn-return').classList.toggle('active', type === 'return'); // Show/Hide additional calendar return fields depending on context selection choice const returnRow = document.getElementById('return-details-row'); if(type === 'return') { returnRow.style.display = 'grid'; } else { returnRow.style.display = 'none'; } calculatePrice(); } // Engine executing pricing logic calculations automatically function calculatePrice() { const from = document.getElementById('pickup').value; const to = document.getElementById('dropoff').value; const vehicle = document.getElementById('vehicle').value; const currency = document.getElementById('currency').value; let baseEur = 0; if (from === to) { document.getElementById('total-price-tag').textContent = "Select unique destinations"; return; } // Identify lookup key target cleanly when path route orientation changes let targetZone = ""; if (from === "Hurghada airport") { targetZone = to; } else if (to === "Hurghada airport") { targetZone = from; } if (targetZone && baseRates[targetZone]) { baseEur = baseRates[targetZone][vehicle]; } else { // General flat calculation fallback rule for localized intermediate transfers outside airport bounds baseEur = 35; } // Apply 2x dynamic calculation rule adjustments for Return journeys automatically if (tripType === 'return') { baseEur = baseEur * 2; } // Calculate targeted selected currency value let finalPrice = baseEur * currencyRates[currency]; // Output result block directly into active target view document.getElementById('total-price-tag').textContent = currencySymbols[currency] + finalPrice.toFixed(2); } // Step 2 Dialog Modal Control structures function openCustomerModal() { const from = document.getElementById('pickup').value; const to = document.getElementById('dropoff').value; if(from === to) { alert("Please match distinctive points for accurate route determination before confirming booking."); return; } document.getElementById('details-modal').style.display = 'flex'; } function closeCustomerModal() { document.getElementById('details-modal').style.display = 'none'; } function handleFinalSubmit(event) { event.preventDefault(); const name = document.getElementById('cust-name').value; const hotel = document.getElementById('cust-hotel').value; const flight = document.getElementById('cust-flight').value; const price = document.getElementById('total-price-tag').textContent; alert(`Success! Transfer saved for ${name}.\n\nTrip details:\nRoute: ${document.getElementById('pickup').value} ➔ ${document.getElementById('dropoff').value}\nType: ${tripType.toUpperCase()}\nTotal Fee: ${price}\nHotel: ${hotel}\nFlight No: ${flight}`); closeCustomerModal(); }