{ "@context": "https://schema.org", "@type": "TravelAgency", "name": "Paradise Vacations", "url": "https://paradisevacations.ca", "logo": "https://paradisevacations.ca/logo.png", "aggregateRating": { "@type": "AggregateRating", "ratingValue": "3.9", "reviewCount": "2", "bestRating": "5", "worstRating": "5" }, "sameAs": [ "https://www.trustpilot.com/review/paradisevacations.ca" ] } import { submitTravelRequest } from 'backend/travelRequests.web'; $w.onReady(function () { $w('#successMessage').hide(); $w('#errorMessage').hide(); $w('#requestNumber').hide(); $w('#submitButton').onClick(async () => { await submitRequest(); }); }); async function submitRequest() { $w('#successMessage').hide(); $w('#errorMessage').hide(); const required = [ '#travelType', '#destination', '#firstName', '#lastName', '#email', '#phone' ]; for (const field of required) { if (!$w(field).value || String($w(field).value).trim() === '') { showError('Please complete all required fields.'); return; } } const email = String($w('#email').value).trim(); if (!isValidEmail(email)) { showError('Please enter a valid email address.'); return; } $w('#submitButton').disable(); $w('#submitButton').label = 'Sending...'; try { const result = await submitTravelRequest({ travelType: $w('#travelType').value, departure: $w('#departure').value, destination: $w('#destination').value, departureDate: $w('#departureDate').value, returnDate: $w('#returnDate').value, adults: Number($w('#adults').value || 0), children: Number($w('#children').value || 0), budget: $w('#budget').value, preferences: $w('#preferences').value, firstName: $w('#firstName').value, lastName: $w('#lastName').value, email: email, phone: $w('#phone').value, specialRequests: $w('#specialRequests').value }); $w('#successMessage').text = 'Thank you! Your travel request has been received.'; $w('#requestNumber').text = `Your request number is ${result.requestId}.`; $w('#successMessage').show(); $w('#requestNumber').show(); clearForm(); } catch (error) { console.error(error); showError( 'We were unable to submit your request. Please try again or contact us directly.' ); } finally { $w('#submitButton').enable(); $w('#submitButton').label = 'Request My Trip'; } } function isValidEmail(email) { return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email); } function showError(message) { $w('#errorMessage').text = message; $w('#errorMessage').show(); } function clearForm() { $w('#departure').value = ''; $w('#destination').value = ''; $w('#departureDate').value = null; $w('#returnDate').value = null; $w('#adults').value = ''; $w('#children').value = ''; $w('#budget').value = ''; $w('#preferences').value = ''; $w('#firstName').value = ''; $w('#lastName').value = ''; $w('#email').value = ''; $w('#phone').value = ''; $w('#specialRequests').value = ''; }
top of page

Destination Spotlight

online travel

Oh the Places
You'll Go

Our interactive map was designed to inspire and each destination is linked to more information on our site.  At the top left of the map is a menu where you can search by continent, country and more.  

​

Already know where you're headed next?  That's awesome; reach out to one of our Travel Specialists to start planning an unforgettable experience.

bottom of page