@ -1,10 +1,15 @@
< script
src= "https://www.recaptcha.net/recaptcha/enterprise.js?render=6Lf828MhAAAAANNetijCXKwW5ARyhcJ-b1Hhslja">< / script >
<!-- AH - Lantern - From - Info -->
< script src = "https://www.recaptcha.net/recaptcha/enterprise.js?render=6Lf828MhAAAAANNetijCXKwW5ARyhcJ-b1Hhslja" >< / script >
< div class = "tmbottom" >
< h3 style = "font-size: 24px; line-height: 22px;" > Chiang Mai CAD Yi Peng Festival 2023 - Secure Your Exclusive Tickets Before They're Gone!< / h3 >
< form id = 'ticket_form' action = "https://www.asiahighlights.com/orders/lantern_save" method = "post" >
< p > < strong > SPECIAL NOTE:< / strong > < br >
1. We have exclusive, reserved premium tickets available for customers who reserve both the ticket and the hotel. < br >
2. Regardless of the quantity of tickets required, a minimum of one night's stay in one room at < strong > < em > Novotel Chiang Mai (4 star)< / em > < / strong > or < strong > < em > Smile Lanna Hotel (4.5 star)< / em > < / strong > between November 26th and 29th is required.< br >
3. Superior room of Novotel Chiang Mai or deluxe room of Smile Lanna Hotel, both at < strong > < em > US$110 per room per night< / em > < / strong > , which includes breakfast and tax.
< / p >
< form id = 'ticket_form' action = "https://www.asiahighlights.com/orders/lantern_save" method = "post" >
< p style = " font-size: 22px;" > < strong > Select Date< / strong > < / p >
< div class = "selectHotl" style = "margin-bottom: 20px;" >
< div class = "selectHotl" style = "margin-bottom: 20px;" >
< div class = "optionLable" >
< input type = "radio" value = "2023-11-27" id = "november27th" name = "ticket_date" >
< label for = "november27th" >
@ -18,8 +23,9 @@
< / label >
< / div >
< / div >
< p style = " font-size: 22px;" > < strong > Select Ticket Type< / strong > < / p >
< div class = "selectHotl" style = "margin-bottom: 20px;" >
< p style = "font-size: 22px;" > < strong > Select Ticket Type< / strong > < / p >
< div class = "selectHotl" style = "margin-bottom: 20px;" >
< div class = "optionLable" id = "ticket_type_premium" >
< input type = "radio" value = "Premium+Transfer+Dinner" id = "Premium" name = "ticket_type" >
< label for = "Premium" style = "font-size:18px;" >
@ -51,31 +57,58 @@
< / label >
< / div >
< / div >
< p style = "display: inline-block;" > The standard ticket for the 27th has been sold out.< / p >
< p style = "display: inline-block;" > < strong > Premium ticket booking for the 27th is now closed.< / strong > However, we have exclusive reserved tickets available for the following customers:< br >
A. Customers who < a href = "/thailand/tours/lantern-festival" > book our Lantern Festival Tour< / a > . < br >
B. Customers who < a href = "/contact-us" > reserve both the ticket and the hotel< / a > . A minimum of one night's stay at Novotel Chiang Mai between November 26th and 29th is required. We offer a competitive price of US$100 per room per night, which includes breakfast and tax.
< / p >
< p style = " font-size: 22px;" > < strong > Select Quantity< / strong > < / p >
< div id = "hotel_choice" style = "display: none" >
< p style = "font-size: 22px;" > < strong > What's your hotel choice?< / strong > < / p >
< div class = "selectHotl" style = "margin-bottom: 20px;" >
< div class = "optionLable" >
< input type = "radio" value = "Novotel Chiang Mai" id = "Novotel" name = "hotel" checked >
< label for = "Novotel" >
Novotel Chiang Mai (4 star)
< div > superior room with balcony< / div >
< / label >
< / div >
< div class = "optionLable" >
< input type = "radio" value = "Smile Lanna Hotel" id = "Lanna" name = "hotel" >
< label for = "Lanna" >
Smile Lanna Hotel (4.5 star)
< div > deluxe room< / div >
< / label >
< / div >
< / div >
< div class = "peopleSelect" style = "width: auto;" >
< span class = "formMemo" >
Select the Number of Hotel Rooms and Length of Stay
< / span >
< div class = "numberBtn" >
< input class = "minaddBtn reduce_room" id = 'minusRoomBtn' type = "button" value = "-" >
< input class = "number" id = "hotel_room" readonly = "readonly" type = "text" value = "1" name = "hotelrooms" >
< input class = "minaddBtn add_room" id = 'plusRoomBtn' type = "button" value = "+" >
< / div >
< div class = "numberBtn" >
< input class = "minaddBtn reduce_stay" id = 'minusStayBtn' type = "button" value = "-" >
< input class = "number" id = "stay_length" readonly = "readonly" type = "text" value = "1" name = "hotelstay" >
< input class = "minaddBtn add_stay" id = 'plusStayBtn' type = "button" value = "+" >
< / div >
< / div >
< / div >
< p style = "font-size: 22px;" > < strong > Select Quantity< / strong > < / p >
< div class = "peopleSelect" style = "width: auto;" >
< span class = "formMemo" >
Adults and older children (8+ years old)
< / span >
< div class = "numberBtn" >
< input class = "minaddBtn reduceadult" id = 'minusButton' type = "button" value = "-" >
< input class = "number" id = "adultNumberValue" readonly = "readonly" type = "text" value = "1"
name="adult">
< input class = "number" id = "adultNumberValue" readonly = "readonly" type = "text" value = "1" name = "adult" >
< input class = "minaddBtn addadult" id = 'plusButton' type = "button" value = "+" >
< / div >
< / div >
< p style = "display: inline-block;" > Children under 8 years old enter free; 8-year-olds and above are charged the same as adults. You can buy a
ticket for your child under 8 if you would like her or him to enjoy the same provision.< / p >
< p style = "display: inline-block;" > Children under 8 years old enter free; 8-year-olds and above are charged the same as adults. You can buy a ticket for your child under 8 if you would like her or him to enjoy the same provision.< / p >
< div class = "payonline_price" > Total price: < strong id = "totalPriceText" > $122< / strong > < / div >
< p style = "margin-top: 50px;" > < strong > Please provide correct personal information for your ticket
booking. Double
check.< / strong > < / p >
< input class = "FullName" id = "ticket_realname" name = "fullname"
placeholder="Your name * (exactly as in your passport)" required="" type="text" value="" />
< div id = "ticket_realname_errmsg" style = "display: none" >
@ -90,7 +123,7 @@ B. Customers who <a href="/contact-us">reserve both the ticket and the hotel</a>
< div class = "requiredArea" style = "margin-top:-10px;" > Please verify your email.< / div >
< / div >
< select name = "country_code" class = "country_code" >
< option style = "font-weight: 600;" value = "United States +1" > United States +1< / option >
< option style = "font-weight: 600;" value = "United States +1" > United States +1< / option >
< option style = "font-weight: 600;" value = "United Kingdom +44" > United Kingdom +44< / option >
< option style = "font-weight: 600;" value = "Australia +61" > Australia +61< / option >
< option style = "font-weight: 600;" value = "Canada +1" > Canada +1< / option >
@ -348,139 +381,203 @@ B. Customers who <a href="/contact-us">reserve both the ticket and the hotel</a>
< div id = "ticket_contact_errmsg" style = "display: none" >
< div class = "requiredArea" style = "margin-top:-10px;" > Please enter your phone number.< / div >
< / div >
< textarea name = "other_travels_name"
placeholder="For booking two/or more tickets, please fill in other traveler name(s) here: (per passport, e.g. Smith Sarah Jean)">< / textarea >
< textarea name = "other_travelers_names" placeholder = "For booking two/or more tickets, please fill in other traveler name(s) here: (per passport, e.g. Smith Sarah Jean)" > < / textarea >
< textarea name = "additional_requirements"
placeholder="If you have other requirements such as hotel booking, customized guided tour, private transport, or a full tour package, please let us know .... (optional)">< / textarea >
placeholder="If you have other requirements such as hotel booking, customized guided tour, private transport, or a full tour package, please let us know .... (optional)"
>< / textarea >
< p style = "
< p style = "
margin-top: 0;
margin-bottom: 10px;
padding: 0;
">I prefer to be contacted via:< / p >
< div class = "checkYes" >
< input type = "checkbox" value = "yes" name = "contact_via_whatsapp" id = "whatsapp" class = "checkBorder" >
< label for = "whatsapp" > WhatsApp< / label >
< / div >
< div class = "checkYes" >
< input type = "checkbox" value = "yes" name = "contact_via_iMessage" id = "iMessage" class = "checkBorder" >
< label for = "iMessage" > iMessage< / label >
< / div >
< div class = "checkYes" >
< input type = "checkbox" value = "yes" name = "contact_via_phone_call" id = "Phone" class = "checkBorder" >
< label for = "Phone" > Phone call< / label >
< / div >
< div class = "checkYes" >
< input type = "checkbox" value = "yes" name = "contact_via_email" id = "Email" class = "checkBorder" >
< label for = "Email" > Email< / label >
< / div >
< div class = "checkYes" >
< input type = "checkbox" value = "yes" name = "contact_via_video_appointment" id = "Video" class = "checkBorder" >
< label for = "Video" > Video appointment< / label >
< / div >
< div class = "checkYes" >
< input type = "checkbox" value = "yes" name = "contact_via_whatsapp" id = "whatsapp" class = "checkBorder" >
< label for = "whatsapp" > WhatsApp< / label >
< / div >
< div class = "checkYes" >
< input type = "checkbox" value = "yes" name = "contact_via_iMessage" id = "iMessage" class = "checkBorder" >
< label for = "iMessage" > iMessage< / label >
< / div >
< div class = "checkYes" >
< input type = "checkbox" value = "yes" name = "contact_via_phone_call" id = "Phone" class = "checkBorder" >
< label for = "Phone" > Phone call< / label >
< / div >
< div class = "checkYes" >
< input type = "checkbox" value = "yes" name = "contact_via_email" id = "Email" class = "checkBorder" >
< label for = "Email" > Email< / label >
< / div >
< div class = "checkYes" >
< input type = "checkbox" value = "yes" name = "contact_via_video_appointment" id = "Video" class = "checkBorder" >
< label for = "Video" > Video appointment< / label >
< / div >
< input name = "total_price" id = "totalPriceHidden" type = "hidden" value = "10000" / >
< input name = "product_sn" id = "product_sn" type = "hidden" value = "13949" / >
< input name = "product_code" id = "cli_no" type = "hidden" value = "YDFW-AH" / >
< input name = "product_code" id = "cli_no" type = "hidden" value = "YDFW-AH" / >
< input name = "itinerary" type = "hidden" value = " <?php echo $information -> ic_title ; ?> " />
< button class = "sendButton" id = "submit_ticket_button" name = "submit_ticket_form" type = "button" > Proceed to
Payment< / button >
< button class = "sendButton" id = "submit_ticket_button" name = "submit_ticket_form"
type="button">Proceed to Payment< / button >
< / form >
< / div >
< script >
function calcTotalPrice(ticketPrice, adultNumber ) {
var totalPrice = ticketPrice * adultNumber;
if (adultNumber >= 10) {
totalPrice = totalPrice * 0.95;
}
function calcTotalPrice() {
var ticketT otalPrice = ticketPrice * adultNumberValue ;
if (adultNumberValue >= 10) {
ticketT otalPrice = ticketT otalPrice * 0.95;
}
return totalPrice.toFixed(2);
// 27 号 P 票,酒店 110 美金/间/夜
var hotelTotalPrice = 0;
if (selectedTicketDate === 'november27th' & & selectedTicketType === 'Premium+Transfer+Dinner') {
hotelTotalPrice = 110 * hotelRoomValue * stayLengthValue;
}
var adultNumberNode = document.getElementById("adultNumberValue");
var ticketTypeList = document.querySelectorAll("input[name='ticket_type']");
var totalPriceText = document.getElementById("totalPriceText");
var totalPriceHidden = document.getElementById("totalPriceHidden");
var adultNumberValue = parseInt(adultNumberNode.value);
var ticketPrice = 139;
totalPriceHidden.value = ticketPrice * adultNumberValue;
totalPriceText.innerText = '$' + ticketPrice;
for (var i = 0; i < ticketTypeList.length ; i + + ) {
var ticketTypeNode = ticketTypeList[i];
ticketTypeNode.addEventListener('click', function (event) {
var currentTarget = event.currentTarget;
var adultNumberValue = parseInt(adultNumberNode.value);
if (currentTarget.value === 'Premium+Transfer+Dinner') {
ticketPrice = 199;
} else if (currentTarget.value === 'Standard+Transfer+Dinner') {
ticketPrice = 139;
} else if (currentTarget.value === 'VIP+Transfer+Dinner') {
ticketPrice = 179;
}
var totalPrice = calcTotalPrice(ticketPrice, adultNumberValue);
totalPriceText.innerText = '$' + totalPrice;
totalPriceHidden.value = totalPrice;
});
var totalPrice = ticketTotalPrice + hotelTotalPrice;
if (!Number.isInteger(totalPrice)) {
totalPrice = totalPrice.toFixed(2);
}
var ticketDateList = document.querySelectorAll("input[name='ticket_date']");
var ticketTypePremium = document.getElementById("ticket_type_premium");
var vipTypePremium = document.getElementById("vip_type_premium");
var ticketTypeStandard = document.getElementById("ticket_type_standard");
totalPriceText.innerText = '$' + totalPrice;
totalPriceHidden.value = totalPrice;
}
var adultNumberNode = document.getElementById("adultNumberValue");
var hotelRoomNode = document.getElementById("hotel_room");
var stayLengthNode = document.getElementById("stay_length");
var ticketTypeList = document.querySelectorAll("input[name='ticket_type']");
var totalPriceText = document.getElementById("totalPriceText");
var totalPriceHidden = document.getElementById("totalPriceHidden");
var hotelChoiceBlock = document.getElementById("hotel_choice");
var premiumTicketLeft = document.getElementById("premium_ticket_left");
var vipTicketLeft = document.getElementById("vip_ticket_left");
var standardTicketLeft = document.getElementById("standard_ticket_left");
setNovember28thTicketLeft();
var adultNumberValue = parseInt(adultNumberNode.value);
var hotelRoomValue = parseInt(hotelRoomNode.value);
var stayLengthValue = parseInt(stayLengthNode.value);
var ticketPrice = 139;
var selectedTicketDate = '';
var selectedTicketType = '';
calcTotalPrice();
for (var i = 0; i < ticketTypeList.length ; i + + ) {
var ticketTypeNode = ticketTypeList[i];
ticketTypeNode.addEventListener('click', function (event) {
var currentTarget = event.currentTarget;
selectedTicketType = currentTarget.value;
var adultNumberValue = parseInt(adultNumberNode.value);
if (currentTarget.value === 'Premium+Transfer+Dinner') {
ticketPrice = 199;
} else if (currentTarget.value === 'Standard+Transfer+Dinner') {
ticketPrice = 139;
} else if (currentTarget.value === 'VIP+Transfer+Dinner') {
ticketPrice = 179;
}
for (var i = 0; i < ticketDateList.length ; i + + ) {
var ticketDateNode = ticketDateList[i];
ticketDateNode.addEventListener('click', function (event) {
var currentTarget = event.currentTarget;
if (currentTarget.id === 'november27th') {
ticketTypePremium.style.display = 'none';
ticketTypeStandard.style.display = 'none';
// vipTypePremium.style.display = 'none';
setNovember27thTicketLeft();
} else {
ticketTypePremium.style.display = '';
ticketTypeStandard.style.display = '';
// vipTypePremium.style.display = '';
setNovember28thTicketLeft();
}
});
}
if (selectedTicketDate === 'november27th' & & currentTarget.value === 'Premium+Transfer+Dinner') {
hotelChoiceBlock.style.display = '';
} else {
hotelChoiceBlock.style.display = 'none';
}
calcTotalPrice();
});
}
function setNovember27thTicketLeft() {
premiumTicketLeft.innerText = '0 left';
vipTicketLeft.innerText = '14 left';
standardTicketLeft.innerText = '18 left';
}
var ticketDateList = document.querySelectorAll("input[name='ticket_date']");
var ticketTypePremium = document.getElementById("ticket_type_premium");
var vipTypePremium = document.getElementById("vip_type_premium");
var ticketTypeStandard = document.getElementById("ticket_type_standard");
var premiumOption = document.getElementById("Premium");
var vipOption = document.getElementById("VIP");
var standardOption = document.getElementById("Standard");
var premiumTicketLeft = document.getElementById("premium_ticket_left");
var vipTicketLeft = document.getElementById("vip_ticket_left");
var standardTicketLeft = document.getElementById("standard_ticket_left");
setNovember28thTicketLeft();
for (var i = 0; i < ticketDateList.length ; i + + ) {
var ticketDateNode = ticketDateList[i];
ticketDateNode.addEventListener('click', function (event) {
var currentTarget = event.currentTarget;
selectedTicketDate = currentTarget.id;
if (currentTarget.id === 'november27th') {
// ticketTypePremium.style.display = 'none';
ticketTypeStandard.style.display = 'none';
// vipTypePremium.style.display = 'none';
// standardOption.disabled = true;
setNovember27thTicketLeft();
} else { // november28th
// ticketTypePremium.style.display = '';
ticketTypeStandard.style.display = '';
// vipTypePremium.style.display = '';
// standardOption.disabled = false;
setNovember28thTicketLeft();
}
if (selectedTicketDate === 'november27th' & & selectedTicketType === 'Premium+Transfer+Dinner') {
hotelChoiceBlock.style.display = '';
} else {
hotelChoiceBlock.style.display = 'none';
}
});
}
function setNovember28thTicketLeft() {
premiumTicketLeft.innerText = '90 left';
vipTicketLeft.innerText = '198 left';
standardTicketLeft.innerText = '149 left';
function setNovember27thTicketLeft() {
premiumTicketLeft.innerText = '30 left';
vipTicketLeft.innerText = '14 left';
standardTicketLeft.innerText = '0 left';
}
function setNovember28thTicketLeft() {
premiumTicketLeft.innerText = '35 left';
vipTicketLeft.innerText = '198 left';
standardTicketLeft.innerText = '149 left';
}
var plusButton = document.getElementById("plusButton");
var minusButton = document.getElementById("minusButton");
plusButton.addEventListener('click', function (event) {
adultNumberValue = parseInt(adultNumberNode.value) + 1;
adultNumberNode.value = adultNumberValue;
calcTotalPrice();
});
minusButton.addEventListener('click', function (event) {
var beforeValue = parseInt(adultNumberNode.value);
if (beforeValue > 1) {
adultNumberValue = beforeValue - 1;
adultNumberNode.value = adultNumberValue;
calcTotalPrice();
}
var plusButton = document.getElementById("plusButton");
var minusButton = document.getElementById("minusButton");
plusButton.addEventListener('click', function (event) {
var adultNumberValue = parseInt(adultNumberNode.value) + 1;
adultNumberNode.value = adultNumberValue;
var totalPrice = calcTotalPrice(ticketPrice, adultNumberValue);
totalPriceText.innerText = '$' + totalPrice;
totalPriceHidden.value = totalPrice;
});
minusButton.addEventListener('click', function (event) {
var beforeValue = parseInt(adultNumberNode.value);
if (beforeValue > 1) {
var adultNumberValue = beforeValue - 1;
adultNumberNode.value = adultNumberValue;
var totalPrice = calcTotalPrice(ticketPrice, adultNumberValue);
totalPriceText.innerText = '$' + totalPrice;
totalPriceHidden.value = totalPrice;
}
});
});
var plusRoomBtn = document.getElementById("plusRoomBtn");
var minusRoomBtn = document.getElementById("minusRoomBtn");
var plusStayBtn = document.getElementById("plusStayBtn");
var minusStayBtn = document.getElementById("minusStayBtn");
plusRoomBtn.addEventListener('click', function (event) {
hotelRoomValue = parseInt(hotelRoomNode.value) + 1;
hotelRoomNode.value = hotelRoomValue;
calcTotalPrice();
});
minusRoomBtn.addEventListener('click', function (event) {
var beforeValue = parseInt(hotelRoomNode.value);
if (beforeValue > 1) {
hotelRoomValue = beforeValue - 1;
hotelRoomNode.value = hotelRoomValue;
calcTotalPrice();
}
});
plusStayBtn.addEventListener('click', function (event) {
stayLengthValue = parseInt(stayLengthNode.value) + 1;
stayLengthNode.value = stayLengthValue;
calcTotalPrice();
});
minusStayBtn.addEventListener('click', function (event) {
var beforeValue = parseInt(stayLengthNode.value);
if (beforeValue > 1) {
stayLengthValue = beforeValue - 1;
stayLengthNode.value = stayLengthValue;
calcTotalPrice();
}
});
< / script >
< script >
var submit_ticket_button = document.getElementById("submit_ticket_button");
@ -543,3 +640,4 @@ B. Customers who <a href="/contact-us">reserve both the ticket and the hotel</a>
return result;
}
< / script >
<!-- AH - Lantern - From - Info -->