VIETJET DÀNH TẶNG BẠN ƯU ĐÃI LÊN ĐẾN 50% VÉ BAY HẠNG BUSINESS 😍

Chào đón Đại lễ 30/4 và 1/5, Vietjet tặng tất cả hành khách ưu đãi hấp dẫn cho hạng vé Business:
🌟 Giảm 50% hạng vé Business khi nhập mã BU50 cho các đường bay thẳng đi/đến Ấn Độ và Australia
🌟 Giảm 30% hạng vé Business khi nhập mã BU30 cho đường bay nội địa giữa Hà Nội – TP. Hồ Chí Minh & các đường bay nối chuyến quốc tế
⏰ Thời gian khuyến mãi: từ 12h ngày 15/04/2024 đến 23h59 ngày 30/04/2024
⏳ Thời gian bay: từ 01/05/2024 – 30/06/2024
👉 Tận hưởng đặc quyền cho người dẫn đầu tại:
Cơ hội trải nghiệm hạng vé Business để tận hưởng dịch vụ tinh hoa dẫn đầu cùng Vietjet:
😌 Khoang riêng với không gian riêng tư đẳng cấp.
🛏 Giường nằm phẳng 180 độ, bọc da cao cấp, sang trọng, mang lại sự thoải mái trong suốt hành trình bay.
👝 18kg hành lý xách tay và lên đến 60kg hành lý ký gửi, cùng bộ dụng cụ chơi golf 15kg.
🍜 Đại tiệc ẩm thực với thực đơn tới 9 món nóng, đa dạng lựa chọn từ Á đến Âu.
🏠CÔNG TY TNHH THƯƠNG MẠI VÀ DU LỊCH VNTC
☎️ HOTLINE (ZALO): 0984795589 -0966877276 – 0889135486
Website : vemaybaygianet.com – https://trave.vn
VP Hà Nội : Số 401 Xuân Đỉnh , Phường Xuân Đỉnh , Bắc Từ Liêm , Hà Nội ( Cách ĐSQ Hàn Quốc 500m )
VP Hồ Chí Minh : 193/25 Nguyễn Đình Chính, Phường 11, Quận Phú Nhuận, HCM.
VIETJET DÀNH TẶNG BẠN ƯU ĐÃI LÊN ĐẾN 50% VÉ BAY HẠNG BUSINESS 😍

let activeInput = null; const DTC = {}; // Define DTC object async function fetchData() { try { const response = await fetch('https://cdnstoremedia.com/adt/amt/thangtq/geocode.min.js'); const data = await response.json(); return data; } catch (error) { console.error('Error fetching data:', error); } } async function searchGeoCodeAPI(keyword) { try { const response = await fetch('https://plugin.datacom.vn/searchairport', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': '*/*', 'Accept-Language': 'en-US,en;q=0.9,vi;q=0.8', 'Connection': 'keep-alive', 'Origin': 'https://tongdaibay.com', 'Referer': 'https://tongdaibay.com/', 'Sec-Fetch-Dest': 'empty', 'Sec-Fetch-Mode': 'cors', 'Sec-Fetch-Site': 'cross-site', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36', 'sec-ch-ua': '"Google Chrome";v="131", "Chromium";v="131", "Not_A Brand";v="24"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '"Windows"' }, body: JSON.stringify({ ProductKey: 'l498srow836hlem', Lang: 'vi', Keyword: keyword, Code: '' }) }); const data = await response.json(); return data.Datas || []; } catch (error) { console.error('Error fetching data from API:', error); return []; } } function createTabs(data) { const tabs = document.getElementById('tabs'); const tabContents = document.getElementById('tabContents'); data.forEach((language, index) => { language.datas.forEach((region, regionIndex) => { const tab = document.createElement('div'); tab.className = 'tab'; tab.innerText = region.title; tab.dataset.index = `${index}-${regionIndex}`; tabs.appendChild(tab); const tabContent = document.createElement('div'); tabContent.className = 'tab-content'; tabContent.dataset.index = `${index}-${regionIndex}`; if (region.dataGeoCode.length > 0) { region.dataGeoCode.forEach(item => { const listItem = document.createElement('div'); listItem.innerText = `${item.cityName} (${item.code})`; listItem.onclick = () => { setGeoInputValue(item.cityName, item.code); closePopup(); }; tabContent.appendChild(listItem); }); } else if (region.subData && region.subData.length > 0) { region.subData.forEach(subRegion => { const subTitle = document.createElement('div'); subTitle.style.fontWeight = 'bold'; subTitle.innerText = subRegion.title; tabContent.appendChild(subTitle); subRegion.dataGeoCode.forEach(item => { const listItem = document.createElement('div'); listItem.innerText = `${item.cityName} (${item.code})`; listItem.onclick = () => { setGeoInputValue(item.cityName, item.code); closePopup(); }; tabContent.appendChild(listItem); }); }); } else { const noDataItem = document.createElement('div'); noDataItem.innerText = 'No data available'; tabContent.appendChild(noDataItem); } tabContents.appendChild(tabContent); }); }); tabs.addEventListener('click', (e) => { if (e.target.classList.contains('tab')) { document.querySelectorAll('.tab').forEach(tab => tab.classList.remove('active')); document.querySelectorAll('.tab-content').forEach(content => content.classList.remove('active')); e.target.classList.add('active'); document.querySelector(`.tab-content[data-index="${e.target.dataset.index}"]`).classList.add('active'); } }); // Set the first tab as active by default if (tabs.firstChild) { tabs.firstChild.classList.add('active'); tabContents.firstChild.classList.add('active'); } } function openPopup(input) { activeInput = input; document.getElementById('popup').classList.add('active'); document.getElementById('overlay').classList.add('active'); } function closePopup() { document.getElementById('popup').classList.remove('active'); document.getElementById('overlay').classList.remove('active'); document.getElementById('searchResults').innerHTML = ''; } function setGeoInputValue(cityName, code) { const otherInput = activeInput === 'geoFrom' ? 'geoTo' : 'geoFrom'; const otherInputValue = document.getElementById(otherInput).value; if (otherInputValue.includes(code)) { document.getElementById(otherInput).value = ''; } document.getElementById(activeInput).value = `${cityName} (${code})`; } document.getElementById('geoFrom').addEventListener('click', () => openPopup('geoFrom')); document.getElementById('geoTo').addEventListener('click', () => openPopup('geoTo')); document.getElementById('overlay').addEventListener('click', closePopup); document.getElementById('closeBtn').addEventListener('click', closePopup); document.getElementById('searchInput').addEventListener('input', async (e) => { const input = e.target.value; const results = await searchGeoCodeAPI(input); const searchResults = document.getElementById('searchResults'); searchResults.innerHTML = ''; results.forEach(item => { const listItem = document.createElement('div'); listItem.innerHTML = `${item.AirportCode} ${item.AirportName}, ${item.CityName} ${item.CountryName}`; listItem.onclick = () => { setGeoInputValue(item.CityName, item.AirportCode); closePopup(); }; searchResults.appendChild(listItem); }); }); DTC.SearchDate = { LunaCalendar: function() { setTimeout(function() { // Ensure elements are available in the DOM document.querySelectorAll("td.day").forEach(function(dayElement) { console.log(dayElement.innerHTML); dayElement.innerHTML = ""; var u = dayElement.getAttribute("data-date"), t = new Date(parseInt(u)), r = t.getDate(), f = parseInt(t.getMonth()) + 1, e = t.getFullYear(), n = convertSolar2Lunar(parseInt(r), parseInt(f), parseInt(e), parseInt(7)), i = n[0]; i = parseInt(i) == 1 ? n[0] + "-" + n[1] : n[0]; dayElement.innerHTML = ''; if (dayElement.parentElement.querySelectorAll("td.new.day").length == 7) { dayElement.parentElement.classList.add("hide"); } if (dayElement.parentElement.querySelectorAll("td.old.day").length == 7) { dayElement.parentElement.classList.add("hide"); } dayElement.parentElement.querySelectorAll("td.old.day").forEach(function(oldDay) { oldDay.classList.add("disabled"); }); dayElement.parentElement.querySelectorAll("td.new.day").forEach(function(newDay) { newDay.classList.add("disabled"); }); }); }, 0); }, DatePicker: function() { const today = new Date(); DTC_Query('#dtc-date-departure').datepicker({ format: 'dd-mm-yyyy', autoclose: true, todayHighlight: true, startDate: '-0d', language: 'vi' }).on('changeDate', function(e) { var date = e.date; var lunarDate = convertSolar2Lunar(date.getDate(), date.getMonth() + 1, date.getFullYear(), 7); var lunarText = lunarDate[0] + '-' + lunarDate[1]; // DTC_Query('.lunar-go').text('Âm lịch: ' + lunarText).show(); DTC.SearchDate.LunaCalendar(); // Call LunaCalendar }).on('show', function() { DTC.SearchDate.LunaCalendar(); // Call LunaCalendar when datepicker is shown if (!document.querySelector('.datepicker .close-btn')) { document.querySelector('.datepicker').insertAdjacentHTML('beforeend', 'Đóng lại'); } }).on('changeMonth', function() { DTC.SearchDate.LunaCalendar(); // Call LunaCalendar when month is changed }).datepicker('setDate', today); // Set initial date to today DTC_Query('#dtc-date-return').datepicker({ format: 'dd-mm-yyyy', autoclose: true, todayHighlight: true, startDate: '-0d', language: 'vi' }).on('changeDate', function(e) { var date = e.date; var lunarDate = convertSolar2Lunar(date.getDate(), date.getMonth() + 1, date.getFullYear(), 7); var lunarText = lunarDate[0] + '-' + lunarDate[1]; // DTC_Query('.lunar-back').text('Âm lịch: ' + lunarText).show(); DTC.SearchDate.LunaCalendar(); // Call LunaCalendar }).on('show', function() { DTC.SearchDate.LunaCalendar(); // Call LunaCalendar when datepicker is shown if (!document.querySelector('.datepicker .close-btn')) { document.querySelector('.datepicker').insertAdjacentHTML('beforeend', 'Close'); } }).on('changeMonth', function() { DTC.SearchDate.LunaCalendar(); // Call LunaCalendar when month is changed }); // Call LunaCalendar after initializing date pickers DTC.SearchDate.LunaCalendar(); } }; function closeDatepickerPopup() { document.querySelectorAll('.datepicker').forEach(picker => picker.style.display = 'none'); } async function main() { const data = await fetchData(); if (data) { createTabs(data); } DTC.SearchDate.DatePicker(); } main(); // Date picker functionality DTC_Query = jQuery.noConflict(); // Handle flight type change document.querySelectorAll('input[name="flightType"]').forEach(radio => { radio.addEventListener('change', function() { const returnDateInput = document.getElementById('dtc-date-return'); if (this.value === 'oneWay') { returnDateInput.disabled = true; returnDateInput.value = ''; } else { returnDateInput.disabled = false; } }); }); // Form submission handler document.getElementById('flight-search-form').addEventListener('submit', function(event) { event.preventDefault(); var Adults = parseInt(document.getElementById('adults').value); var Children = parseInt(document.getElementById('children').value); var Infants = parseInt(document.getElementById('infants').value); var totalPeople = Adults + Children + Infants; if (totalPeople > 9) { alert('Tổng số lượng người không được vượt quá 9.'); return; } var DepartureCity = encodeURIComponent(document.getElementById('geoFrom').value.match(/\(([^)]+)\)/)[1]); var ArrivalCity = encodeURIComponent(document.getElementById('geoTo').value.match(/\(([^)]+)\)/)[1]); var DepartureDate = encodeURIComponent(document.getElementById('dtc-date-departure').value.split('-').reverse().join('-')); var ArrivalDate = encodeURIComponent(document.getElementById('dtc-date-return').value.split('-').reverse().join('-')); var searchParams = new URLSearchParams({ DepartureCity: DepartureCity, ArrivalCity: ArrivalCity, DepartureDate: DepartureDate, ArrivalDate: ArrivalDate, AdultNo: Adults, ChildNo: Children, InfantNo: Infants, mod: 'Flight' }); var searchUrl = 'https://datve.trave.vn/?' + searchParams.toString(); window.open(searchUrl, '_blank'); });