Merge branch 'master' of github.com:hainatravel/information-system

master
赵鹏 6 months ago
commit 16480f5649

@ -2449,6 +2449,14 @@ class Information extends CI_Controller {
);
$information->ic_content = str_replace('<!--@LANTERN-FORM-2025@-->', $lantern_form_content_2025, $information->ic_content);
// 水灯节2026表单
$lantern_form_content_2026 = $this->load->view(
'mobile_first/htravel-lantern-form-2026',
['information' => $information],
true
);
$information->ic_content = str_replace('<!--@LANTERN-FORM-2026@-->', $lantern_form_content_2026, $information->ic_content);
// Chiang Mai Authentic Sky Lantern Festival on Nov. 5, 2025
$lantern_form_content_authentic_sky = $this->load->view(
'mobile_first/htravel-chiang-mai-lantern-festival',
@ -4585,7 +4593,7 @@ class Information extends CI_Controller {
}else{
$ic_content = $this->html_optimize_lib->add_htmlcode($ic_content, ".container-details", $floatButton);
}
}
if ($meta_ct_page_type == "tourdetail") {

@ -45,6 +45,23 @@
f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-T75N4LL');</script>
<!-- End Google Tag Manager -->
<!-- Meta Pixel Code -->
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '1062130966092243');
fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=1062130966092243&ev=PageView&noscript=1"
/></noscript>
<!-- End Meta Pixel Code -->
<!-- Hotjar Tracking Code for https://www.chinahighlights.com/
<script>
@ -77,7 +94,7 @@
<ul class="pctopnavi">
<li><a href="/" class="p_toplogo"> <img
src="https://data.chinahighlights.com/pic/logo/china-highlights-top-navigation-logo.png"
src="https://images.chinahighlights.com/allpicture/2025/10/a5f1e160c3c849a9a54afc16b8775a33.jpg"
width="154" height="83" alt="chinahighlights logo"
class="chinahighlightslogo img-responsive"></a></li>
@ -469,9 +486,9 @@
<div class="aboutusleft">
<div class="bottomaboutus">
<img src="https://data.chinahighlights.com/grey.gif" loader="lazy"
originalsrc="https://data.chinahighlights.com/pic/logo/bottom-logo-b.png" width="170"
height="121"
style="float: left; margin-right: 10px; width: 170px; height: 121px;margin-bottom: 20px;"
originalsrc="https://images.chinahighlights.com/allpicture/2025/10/b95dcb86473b4b828a5b0564ddfaf153.jpg" width="609"
height="122"
style="float: left; margin-right: 10px; width: 200px; height: auto;margin-bottom: 20px;"
alt="China Highlights logo" />
<div class="aboutusinfo" style="display: flex;">
4.9 <img
@ -566,9 +583,7 @@
</div>
<div class="bottomlogo">
<div class="list_content">
<img src="https://data.chinahighlights.com/grey.gif" loader="lazy"
originalsrc="https://data.chinahighlights.com/pic/guide/info-template-bottom-logo.jpg" width="114"
height="71" alt="China Highlights logo" class="img-responsive bottomlogopc"><span
<span
class="bottomcopyright">© 1998-2025 China Highlights — Discovery Your Way! </span>
</div>
</div>

@ -37,6 +37,23 @@
'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-T75N4LL');</script>
<!-- End Google Tag Manager -->
<!-- Meta Pixel Code -->
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '1062130966092243');
fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=1062130966092243&ev=PageView&noscript=1"
/></noscript>
<!-- End Meta Pixel Code -->
<!-- Hotjar Tracking Code for https://www.chinahighlights.com/
<script>
@ -70,7 +87,7 @@
<a href="/" style="width: 100%;
display: inline-block;
position: relative;
top: -30px;"> <img src="https://data.chinahighlights.com/pic/logo/china-highlights-top-navigation-logo.png"
top: -30px;"> <img src="https://images.chinahighlights.com/allpicture/2025/10/a3a4095ed29345cbb391c5e122ca8b2c.jpg"
width="255" height="64" alt="chinahighlights logo" class="chinahighlightslogo img-responsive"></a>
<div class="topnavitailor">
<a href="/contactus/?product_code=" class="infocustomize">Contact</a>
@ -465,8 +482,8 @@
<div class="infobottom">
<img src="https://data.chinahighlights.com/grey.gif" loader="lazy"
originalsrc="https://data.chinahighlights.com/pic/logo/bottom-logo-b.png" alt="China Highlights Logo"
width="152px" height="108" class="bottomlogocenter" style="margin-bottom: 10px;">
originalsrc="https://images.chinahighlights.com/allpicture/2025/10/b95dcb86473b4b828a5b0564ddfaf153.jpg" alt="China Highlights Logo"
width="352px" height="245px" class="bottomlogocenter" style="margin-bottom: 10px;">
<div style=" color: #fff;
text-align: center;line-height: 30px;
clear: both;

@ -6,14 +6,14 @@
<p style="font-size: 20px; margin-bottom: 15px;"><strong>Choose a Date:</strong></p>
<div class="selectHotl" style="margin-bottom: 20px;">
<div class="optionLable" id="ticket_date_november15th">
<input type="radio" value="2025-11-5" checked id="november15th" name="ticket_date">
<input type="radio" value="2025-11-5" disabled id="november15th" name="ticket_date">
<label for="november15th">
November 5th, 2025
</label>
</div>
<div class="optionLable" id="ticket_date_november16th">
<input type="radio" value="2025-11-6" id="november16th" name="ticket_date">
<input type="radio" value="2025-11-6" checked id="november16th" name="ticket_date">
<label for="november16th">
November 6th, 2025
</label>
@ -23,7 +23,7 @@
<p style="font-size: 20px; margin-bottom: 15px;"><strong>Select a Ticket Type:</strong></p>
<div class="selectHotl" style="margin-bottom: 20px;">
<div class="optionLable" id="ticket_type_premium_khomloy">
<input type="radio" value="Premium+Transfer+Dinner" disabled id="premium_khomloy" data-price="229" name="ticket_type">
<input type="radio" value="Premium+Transfer+Dinner" checked id="premium_khomloy" data-price="229" name="ticket_type">
<label for="premium_khomloy" style="font-size:18px;">
Premium+Transfer+Dinner
<div class="selectionMemo">
@ -32,7 +32,7 @@
</label>
</div>
<div class="optionLable" id="ticket_type_vip_khomloy">
<input type="radio" value="VIP+Transfer+Dinner" checked id="vip_khomloy" data-price="209" name="ticket_type">
<input type="radio" value="VIP+Transfer+Dinner" id="vip_khomloy" data-price="209" name="ticket_type">
<label for="vip_khomloy" style="font-size:18px;">
VIP+Transfer+Dinner
<div class="selectionMemo">
@ -415,10 +415,10 @@
document.addEventListener('DOMContentLoaded', function () {
setNovember15thTicket();
setNovember16thTicket();
ticket_date_november15th.addEventListener('click', function () {
setNovember15thTicket();
// setNovember15thTicket();
});
ticket_date_november16th.addEventListener('click', function () {
@ -427,25 +427,19 @@
});
function setNovember15thTicket() {
// ticket_type_premium_khomloy_div.style.display = '';
// ticket_type_vip_khomloy_div.style.display = '';
// ticket_type_standard_khomloy_div.style.display = 'none';
premium_radio.disabled = true;
vip_radio.disabled = false;
vip_radio.disabled = true;
standard_radio.disabled = true;
costume_radio.disabled = false;
costume_radio.disabled = true;
vip_radio.checked = true;
currentTicketPrice = parseInt(vip_radio.getAttribute('data-price'));
adultNumberValue = parseInt(adultNumberNode.value);
calcTotalPrice(currentTicketPrice, adultNumberValue);
// vip_radio.checked = true;
// currentTicketPrice = parseInt(vip_radio.getAttribute('data-price'));
// adultNumberValue = parseInt(adultNumberNode.value);
// calcTotalPrice(currentTicketPrice, adultNumberValue);
}
function setNovember16thTicket() {
// ticket_type_premium_khomloy_div.style.display = '';
// ticket_type_vip_khomloy_div.style.display = '';
// ticket_type_standard_khomloy_div.style.display = '';
premium_radio.disabled = false;
vip_radio.disabled = false;

@ -0,0 +1,562 @@
<!--lantern-form start-->
<script src="https://www.recaptcha.net/recaptcha/enterprise.js?render=6Lf828MhAAAAANNetijCXKwW5ARyhcJ-b1Hhslja"></script>
<div class="tmbottom">
<h3 style="font-size: 24px; line-height: 22px; font-family: Calibri;margin-top: 60px;">Chiang Mai CAD Yi Peng Festival 2026 Ticket Booking</h3>
<form id='ticket_form' action="https://www.highlightstravel.com/orders/lantern_save" method="post" >
<p style="font-size: 20px; margin-bottom: 15px;"><strong>Choose a Date:</strong></p>
<div class="selectHotl" style="margin-bottom: 20px;">
<div class="optionLable" id="first_ticket_date">
<input type="radio" value="2026-11-24" checked id="first_date_radio" name="ticket_date">
<label for="first_date_radio">
November 24th, 2026
</label>
</div>
<div class="optionLable" id="second_ticket_date">
<input type="radio" value="2026-11-25" id="second_date_radio" name="ticket_date">
<label for="second_date_radio">
November 25th, 2026
</label>
</div>
</div>
<p style="font-size: 20px; margin-bottom: 15px;"><strong>Select a Ticket Type:</strong></p>
<div class="selectHotl" style="margin-bottom: 20px;">
<div class="optionLable" id="ticket_type_premium_khomloy">
<input type="radio" value="Premium+Transfer+Dinner" checked id="premium_khomloy" data-price="209" name="ticket_type">
<label for="premium_khomloy" style="font-size:18px;">
Premium+Transfer+Dinner
<div class="selectionMemo">
US$209
</div>
</label>
</div>
<div class="optionLable" id="ticket_type_vip_khomloy">
<input type="radio" value="VIP+Transfer+Dinner" id="vip_khomloy" data-price="199" name="ticket_type">
<label for="vip_khomloy" style="font-size:18px;">
VIP+Transfer+Dinner
<div class="selectionMemo">
US$199
</div>
</label>
</div>
<div class="optionLable" id="ticket_type_standard_khomloy">
<input type="radio" value="Standard+Transfer+Dinner" id="standard_khomloy" data-price="159" name="ticket_type">
<label for="standard_khomloy" style="font-size:18px;">
Standard+Transfer+Dinner
<div class="selectionMemo">
US$159
</div>
</label>
</div>
<div class="optionLable" id="ticket_type_standard_khomloy">
<input type="radio" value="Premium+Dinner+Exclusive Transfer+Thai Costume" id="premium_costume" data-price="369" name="ticket_type">
<label for="premium_costume" style="font-size:18px;">
Premium+Thai Costume<br>+Exclusive Transfer+Dinner
<div class="selectionMemo">
US$369
</div>
</label>
</div>
</div>
<div id="ticket_type_errmsg" style="display: none">
<div class="requiredArea" style="margin-top:-10px;">Please select at least one option.</div>
</div>
<p style="font-size: 20px;margin-bottom: 5px; margin-top: 10px;"><strong>Quantity:</strong> Adults & children (8+) Free for under 8</p>
<div class="peopleSelect" style="width: auto;">
<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" style="width: 50px; height: 22px; top: -5px; position: relative; text-align: center; font-size: 20px;">
<input class="minaddBtn addadult" id='plusButton' type="button" value="+">
</div>
</div>
<div class="payonline_price">Total price: <strong id="totalPriceText">$149</strong></div>
<p style=" margin-top: 30px; margin-bottom: 10px;"><strong>Please provide correct personal info. Double check.</strong></p>
<input class="FullName" id="ticket_realname" name="fullname"
placeholder="Your name * (exactly per passport)" required="" type="text" value="" />
<div id="ticket_realname_errmsg" style="display: none">
<div class="requiredArea" style="margin-top:-10px;">Please enter your name.</div>
</div>
<input class="EmailAddress" id="ticket_email" name="email" placeholder="Email *" required="" type="text"
value="" />
<div id="ticket_email_errmsg" style="display: none">
<div class="requiredArea" style="margin-top:-10px;">Please enter your email.</div>
</div>
<div id="ticket_email_verify_errmsg" style="display: none">
<div class="requiredArea" style="margin-top:-10px;">Please verify your email.</div>
</div>
<select name="country_code" class="country_code" id="country_code">
<option value="Afghanistan +93">Afghanistan    +93</option>
<option value="Albania +355">Albania    +355</option>
<option value="Algeria +213">Algeria   +213</option>
<option value="Andorra +376">Andorra   +376</option>
<option value="Angola +244">Angola   +244</option>
<option value="Anguilla +1264">Anguilla   +1264</option>
<option value="Australia +61">Australia   +61</option>
<option value="Antigua and Barbuda +1268">Antigua and Barbuda   +1268</option>
<option value="Argentina +54">Argentina   +54</option>
<option value="Armenia +374">Armenia    +374</option>
<option value="Aruba +297">Aruba   +297</option>
<option value="Ascension Island +247">Ascension Island   +247</option>
<option value="Austria +43">Austria   +43</option>
<option value="Azerbaijan +994">Azerbaijan   +994</option>
<option value="Bahamas +1242">Bahamas   +1242</option>
<option value="Bahrain +973">Bahrain   +973</option>
<option value="Bangladesh +880">Bangladesh   +880</option>
<option value="Barbados +1246">Barbados   +1246</option>
<option value="Belarus +375">Belarus   +375</option>
<option value="Belgium +32">Belgium   +32</option>
<option value="Belize +501">Belize   +501</option>
<option value="Benin +229">Benin   +229</option>
<option value="Bermuda +1441">Bermuda   +1441</option>
<option value="Bhutan +975">Bhutan   +975</option>
<option value="Bolivia +591">Bolivia   +591</option>
<option value="Bosnia and Herzegovina +387">Bosnia and Herzegovina   +387</option>
<option value="Botswana +267">Botswana   +267</option>
<option value="Brazil +55">Brazil   +55</option>
<option value="British Indian Ocean Territory +246">British Indian Ocean Territory   +246</option>
<option value="British Virgin Islands +1284">British Virgin Islands   +1284</option>
<option value="Brunei +673">Brunei   +673</option>
<option value="Bulgaria +359">Bulgaria    +359</option>
<option value="Burkina Faso +226">Burkina Faso   +226</option>
<option value="Burundi +257">Burundi   +257</option>
<option value="Cambodia +855">Cambodia   +855</option>
<option value="Cameroon +237">Cameroon   +237</option>
<option value="Canada +001">Canada   +001</option>
<option value="Cape Verde +238">Cape Verde   +238</option>
<option value="Caribbean Netherlands +599">Caribbean Netherlands   +599</option>
<option value="Cayman Islands +1345">Cayman Islands   +1345</option>
<option value="Central African Republic +236">Central African Republic   +236</option>
<option value="Chad +235">Chad   +235</option>
<option value="Chile +56">Chile   +56</option>
<option value="China +86">China   +86</option>
<option value="Christmas Island +6189164">Christmas Island   +6189164</option>
<option value="Cocos Islands +6189162">Cocos Islands   +6189162</option>
<option value="Colombia +57">Colombia   +57</option>
<option value="Comoros +269">Comoros   +269</option>
<option value="Congo +243">Congo (DRC)   +243</option>
<option value="Congo +242">Congo (Republic)   +242</option>
<option value="Cook Islands +682">Cook Islands   +682</option>
<option value="Costa Rica +506">Costa Rica   +506</option>
<option value="Côte d'Ivoire +225">Côte d'Ivoire   +225</option>
<option value="Croatia +385">Croatia   +385</option>
<option value="Cuba +53">Cuba   +53</option>
<option value="Curaçao +599">Curaçao   +599</option>
<option value="Cyprus +357">Cyprus   +357</option>
<option value="Czech Republic +420">Czech Republic   +420</option>
<option value="Denmark +45">Denmark   +45</option>
<option value="Djibouti +253">Djibouti   +253</option>
<option value="Dominica +1767">Dominica   +1767</option>
<option value="Dominican Republic +1809">Dominican Republic   +1809</option>
<option value="Ecuador +593">Ecuador   +593</option>
<option value="Egypt +20">Egypt   +20</option>
<option value="El Salvador +503">El Salvador   +503</option>
<option value="Equatorial Guinea +240">Equatorial Guinea   +240</option>
<option value="Eritrea +291">Eritrea   +291</option>
<option value="Estonia +372">Estonia   +372</option>
<option value="Eswatini +268">Eswatini   +268</option>
<option value="Ethiopia +251">Ethiopia   +251</option>
<option value="Falkland Islands +500">Falkland Islands   +500</option>
<option value="Faroe Islands +298">Faroe Islands   +298</option>
<option value="Fiji +679">Fiji   +679</option>
<option value="Finland +358">Finland   +358</option>
<option value="France +33">France   +33</option>
<option value="French Guiana +594">French Guiana   +594</option>
<option value="French Polynesia +689">French Polynesia   +689</option>
<option value="Gabon +241">Gabon   +241</option>
<option value="Gambia +220">Gambia   +220</option>
<option value="Georgia +995">Georgia   +995</option>
<option value="Germany +49">Germany   +49</option>
<option value="Ghana +233">Ghana   +233</option>
<option value="Gibraltar +350">Gibraltar   +350</option>
<option value="Greece +30">Greece   +30</option>
<option value="Greenland +299">Greenland   +299</option>
<option value="Grenada +1473">Grenada   +1473</option>
<option value="Guadeloupe +590">Guadeloupe   +590</option>
<option value="Guam +1671">Guam   +1671</option>
<option value="Guatemala +502">Guatemala   +502</option>
<option value="Guinea +224">Guinea   +224</option>
<option value="Guinea-Bissau +245">Guinea-Bissau   +245</option>
<option value="Guyana +592">Guyana   +592</option>
<option value="Haiti +509">Haiti   +509</option>
<option value="Honduras +504">Honduras   +504</option>
<option value="Hong Kong +852">Hong Kong   +852</option>
<option value="Hungary +36">Hungary   +36</option>
<option value="Iceland +354">Iceland   +354</option>
<option value="India +91">India   +91</option>
<option value="Indonesia +62">Indonesia   +62</option>
<option value="Iran +98">Iran   +98</option>
<option value="Iraq +964">Iraq   +964</option>
<option value="Ireland +353">Ireland   +353</option>
<option value="Israel +972">Israel   +972</option>
<option value="Italy +39">Italy   +39</option>
<option value="Jamaica +1876">Jamaica   +1876</option>
<option value="Japan +81">Japan   +81</option>
<option value="Jersey +44">Jersey   +44</option>
<option value="Jordan +962">Jordan   +962</option>
<option value="Kazakhstan +7">Kazakhstan    +7</option>
<option value="Kenya +254">Kenya   +254</option>
<option value="Kiribati +686">Kiribati   +686</option>
<option value="Kosovo +383">Kosovo   +383</option>
<option value="Kuwait +965">Kuwait   +965</option>
<option value="Kyrgyzstan +996">Kyrgyzstan    +996</option>
<option value="Laos +856">Laos   +856</option>
<option value="Latvia +371">Latvia    +371</option>
<option value="Lebanon +961">Lebanon   +961</option>
<option value="Lesotho +266">Lesotho   +266</option>
<option value="Liberia +231">Liberia   +231</option>
<option value="Libya +218">Libya   +218</option>
<option value="Liechtenstein +423">Liechtenstein   +423</option>
<option value="Lithuania +370">Lithuania   +370</option>
<option value="Luxembourg +352">Luxembourg   +352</option>
<option value="Macau +853">Macau   +853</option>
<option value="Macedonia +389">Macedonia   +389</option>
<option value="Madagascar +261">Madagascar   +261</option>
<option value="Malawi +265">Malawi   +265</option>
<option value="Malaysia +60">Malaysia   +60</option>
<option value="Maldives +960">Maldives   +960</option>
<option value="Mali +223">Mali   +223</option>
<option value="Malta +356">Malta   +356</option>
<option value="Marshall +692">Marshall Islands   +692</option>
<option value="Martinique +596">Martinique   +596</option>
<option value="Mauritania +222">Mauritania   +222</option>
<option value="Mauritius +230">Mauritius   +230</option>
<option value="Mayotte +262">Mayotte   +262</option>
<option value="Mexico +52">Mexico   +52</option>
<option value="Micronesia +691">Micronesia   +691</option>
<option value="Moldova +373">Moldova   +373</option>
<option value="Monaco +377">Monaco   +377</option>
<option value="Mongolia +976">Mongolia   +976</option>
<option value="Montenegro +382">Montenegro   +382</option>
<option value="Montserrat +1664">Montserrat   +1664</option>
<option value="Morocco +212">Morocco   +212</option>
<option value="Mozambique +258">Mozambique   +258</option>
<option value="Myanmar +95">Myanmar    +95</option>
<option value="Namibia +264">Namibia   +264</option>
<option value="Nauru +674">Nauru   +674</option>
<option value="Nepal +977">Nepal   +977</option>
<option value="New Caledonia +687">New Caledonia   +687</option>
<option value="New Zealand +64">New Zealand   +64</option>
<option value="Netherlands +31">Netherlands   +31</option>
<option value="Nicaragua +505">Nicaragua   +505</option>
<option value="Niger +227">Niger   +227</option>
<option value="Nigeria +234">Nigeria   +234</option>
<option value="Niue +683">Niue   +683</option>
<option value="Norfolk Island +6723">Norfolk Island   +6723</option>
<option value="North Korea +850">North Korea   +850</option>
<option value="Northern Mariana Islands +1670">Northern Mariana Islands   +1670</option>
<option value="Norway +47">Norway   +47</option>
<option value="Oman +968">Oman   +968</option>
<option value="Pakistan +92">Pakistan   +92</option>
<option value="Palau +680">Palau   +680</option>
<option value="Palestine +970">Palestine    +970</option>
<option value="Panama +507">Panama    +507</option>
<option value="Papua New Guinea +675">Papua New Guinea   +675</option>
<option value="Paraguay +595">Paraguay   +595</option>
<option value="Peru +51">Peru    +51</option>
<option value="Philippines +63">Philippines   +63</option>
<option value="Poland +48">Poland   +48</option>
<option value="Portugal +351">Portugal   +351</option>
<option value="Puerto Rico +1787">Puerto Rico   +1787</option>
<option value="Qatar +974">Qatar   +974</option>
<option value="Réunion +262">Réunion   +262</option>
<option value="Romania +40">Romania   +40</option>
<option value="Russia +7">Russia   +7</option>
<option value="Rwanda +250">Rwanda   +250</option>
<option value="Saint Barthélemy +590">Saint Barthélemy   +590</option>
<option value="Saint Helena +290">Saint Helena   +290</option>
<option value="Saint Kitts and Nevis +1869">Saint Kitts and Nevis   +1869</option>
<option value="Saint Lucia +1758">Saint Lucia   +1758</option>
<option value="Saint Martin +590">Saint Martin   +590</option>
<option value="Saint Pierre and Miquelon +508">Saint Pierre and Miquelon   +508</option>
<option value="Saint Vincent and the Grenadines +1784">Saint Vincent and the Grenadines   +1784
</option>
<option value="Samoa +685">Samoa   +685</option>
<option value="San Marino +378">San Marino   +378</option>
<option value="São Tomé and Príncipe +239">São Tomé and Príncipe   +239</option>
<option value="Saudi Arabia +966">Saudi Arabia    +966</option>
<option value="Senegal +221">Senegal    +221</option>
<option value="Serbia +381">Serbia   +381</option>
<option value="Seychelles +248">Seychelles   +248</option>
<option value="Sierra Leone +232">Sierra Leone   +232</option>
<option value="Singapore +65">Singapore   +65</option>
<option value="Sint Maarten +1721">Sint Maarten   +1721</option>
<option value="Slovakia +421">Slovakia   +421</option>
<option value="Slovenia +386">Slovenia   +386</option>
<option value="Solomon Islands +677">Solomon Islands   +677</option>
<option value="Somalia +252">Somalia   +252</option>
<option value="South Africa +27">South Africa   +27</option>
<option value="South Korea +82">South Korea   +82</option>
<option value="South Sudan +211">South Sudan   +211</option>
<option value="Spain +34">Spain   +34</option>
<option value="Sri Lanka +94">Sri Lanka    +94</option>
<option value="Sudan +249">Sudan   +249</option>
<option value="Suriname +597">Suriname   +597</option>
<option value="Svalbard and Jan Mayen +47">Svalbard and Jan Mayen   +47</option>
<option value="Sweden +46">Sweden   +46</option>
<option value="Switzerland +41">Switzerland   +41</option>
<option value="Syria +963">Syria    +963</option>
<option value="Taiwan +886">Taiwan   +886</option>
<option value="Tajikistan +992">Tajikistan   +992</option>
<option value="Tanzania +255">Tanzania   +255</option>
<option value="Thailand +66">Thailand   +66</option>
<option value="Timor-Leste +670">Timor-Leste   +670</option>
<option value="Togo +228">Togo   +228</option>
<option value="Tokelau +690">Tokelau   +690</option>
<option value="Tonga +676">Tonga   +676</option>
<option value="Trinidad and Tobago +1868">Trinidad and Tobago   +1868</option>
<option value="Tunisia +216">Tunisia   +216</option>
<option value="Turkey +90">Turkey   +90</option>
<option value="Turkmenistan +993">Turkmenistan   +993</option>
<option value="Turks and Caicos Islands +1649">Turks and Caicos Islands   +1649</option>
<option value="Tuvalu +688">Tuvalu   +688</option>
<option value="U.S. Virgin Islands +1340">U.S. Virgin Islands   +1340</option>
<option value="Uganda +256">Uganda   +256</option>
<option value="Ukraine +380">Ukraine   +380</option>
<option value="United Arab Emirates +971">United Arab Emirates    +971</option>
<option value="United Kingdom +44">United Kingdom   +44</option>
<option value="United States +1">United States   +1</option>
<option value="Uruguay +598">Uruguay   +598</option>
<option value="Uzbekistan +998">Uzbekistan   +998</option>
<option value="Vanuatu +678">Vanuatu   +678</option>
<option value="Vatican City +39">Vatican City   +379</option>
<option value="Venezuela +58">Venezuela   +58</option>
<option value="Vietnam +84">Vietnam   +84</option>
<option value="Wallis and Futuna +681">Wallis and Futuna   +681</option>
<option value="Western Sahara +21228">Western Sahara    +21228</option>
<option value="Yemen +967">Yemen   +967</option>
<option value="Zambia +260">Zambia   +260</option>
<option value="Zimbabwe +263">Zimbabwe   +263</option>
<option value="Åland Islands +35818">Åland Islands   +35818</option>
</select>
<input class="Inquiryphone" id="ticket_PhoneNo" name="PhoneNo"
placeholder="Phone number *" type="tel" value="" />
<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_travelers_names" placeholder="If booking two or more tickets, please fill in other traveler name(s) here: (per passport, e.g.Smith Sarah Jean)."></textarea>
<input name="total_price" id="totalPriceHidden" type="hidden" value="10000" />
<input name="product_code" id="cli_no" type="hidden" value="YDFW-AH"/>
<input name="itinerary" type="hidden" value="Chiang Mai CAD Yi Peng 2025 Tickets: Best Seats & Value" />
<button class="sendButton" id="submit_ticket_button" name="submit_ticket_form"
type="button" style="margin-top: 20px;">Proceed to Payment</button>
<p style=" text-align: center; margin-top: -15px; line-height: 20px;"><strong>Once payment is received, we'll send your e-ticket within 24 hours.</strong></p>
</form>
</div>
<script>
function calcTotalPrice(ticketPrice, adultNumber) {
var totalPrice = (ticketPrice * adultNumber);
if (adultNumber >= 10) {
totalPrice = totalPrice * 0.95;
}
totalPrice = totalPrice.toFixed(2);
totalPriceHidden.value = totalPrice;
totalPriceText.innerText = '$' + totalPrice;
}
var adultNumberNode = document.getElementById("adultNumberValue");
var ticketDateList = document.querySelectorAll("input[name='ticket_date']");
var ticketTypeList = document.querySelectorAll("input[name='ticket_type']");
var ticket_type_premium_khomloy_div = document.getElementById("ticket_type_premium_khomloy");
var ticket_type_vip_khomloy_div = document.getElementById("ticket_type_vip_khomloy");
var ticket_type_standard_khomloy_div = document.getElementById("ticket_type_standard_khomloy");
var premium_radio = document.getElementById("premium_khomloy");
var vip_radio = document.getElementById("vip_khomloy");
var standard_radio = document.getElementById("standard_khomloy");
var costume_radio = document.getElementById("premium_costume");
var first_ticket_date = document.getElementById("first_ticket_date");
var second_ticket_date = document.getElementById("second_ticket_date");
var totalPriceText = document.getElementById("totalPriceText");
var totalPriceHidden = document.getElementById("totalPriceHidden");
var adultNumberValue = parseInt(adultNumberNode.value);
var currentTicketPrice = 10000;
for (var i = 0; i < ticketTypeList.length; i++) {
var ticketTypeNode = ticketTypeList[i];
var dataPrice = parseInt(ticketTypeNode.getAttribute('data-price'));
if (ticketTypeNode.checked) {
currentTicketPrice = dataPrice;
calcTotalPrice(currentTicketPrice, adultNumberValue);
}
ticketTypeNode.addEventListener('click', function (event) {
var currentTarget = event.currentTarget;
currentTicketPrice = parseInt(currentTarget.getAttribute('data-price'));
adultNumberValue = parseInt(adultNumberNode.value);
calcTotalPrice(currentTicketPrice, adultNumberValue);
});
}
document.addEventListener('DOMContentLoaded', function () {
setFirstDateTicket();
first_ticket_date.addEventListener('click', function () {
setFirstDateTicket();
});
second_ticket_date.addEventListener('click', function () {
setSecondTicket();
});
});
function setFirstDateTicket() {
premium_radio.disabled = false;
vip_radio.disabled = false;
standard_radio.disabled = false;
costume_radio.disabled = false;
premium_radio.checked = true;
currentTicketPrice = parseInt(vip_radio.getAttribute('data-price'));
adultNumberValue = parseInt(adultNumberNode.value);
calcTotalPrice(currentTicketPrice, adultNumberValue);
}
function setSecondTicket() {
premium_radio.disabled = false;
vip_radio.disabled = false;
standard_radio.disabled = false;
costume_radio.disabled = false;
premium_radio.checked = true;
currentTicketPrice = parseInt(premium_radio.getAttribute('data-price'));
adultNumberValue = parseInt(adultNumberNode.value);
calcTotalPrice(currentTicketPrice, adultNumberValue);
}
var plusButton = document.getElementById("plusButton");
var minusButton = document.getElementById("minusButton");
plusButton.addEventListener('click', function (event) {
adultNumberValue = parseInt(adultNumberNode.value) + 1;
adultNumberNode.value = adultNumberValue;
calcTotalPrice(currentTicketPrice, adultNumberValue);
});
minusButton.addEventListener('click', function (event) {
var beforeValue = parseInt(adultNumberNode.value);
if (beforeValue > 1) {
adultNumberValue = beforeValue - 1;
adultNumberNode.value = adultNumberValue;
calcTotalPrice(currentTicketPrice, adultNumberValue);
}
});
</script>
<script>
var submit_ticket_button = document.getElementById("submit_ticket_button");
var ticket_form = document.getElementById("ticket_form");
submit_ticket_button.addEventListener('click', function (event) {
var validateResult = validateTicketForm();
if (validateResult) {
if (typeof (grecaptcha) === "undefined") {
console.warn('grecaptcha is disabled.');
ticket_form.submit();
} else {
grecaptcha.enterprise.ready(async () => {
const token = await grecaptcha.enterprise.execute('6Lf828MhAAAAANNetijCXKwW5ARyhcJ-b1Hhslja', { action: 'ADD_TO_CART' });
var el = document.createElement("input");
el.type = "hidden";
el.name = "__grecaptcha_token__";
el.value = token;
ticket_form.appendChild(el);
ticket_form.submit();
submit_ticket_button.innerText = "Submitted successfully";
});
}
}
});
function validateTicketForm() {
var result = true;
var realnameVal = document.getElementById("ticket_realname").value;
var emailVal = document.getElementById("ticket_email").value;
var contactVal = document.getElementById("ticket_PhoneNo").value;
var realnameErrEl = document.getElementById("ticket_realname_errmsg");
var emailErrEl = document.getElementById("ticket_email_errmsg");
var emailVerifyErrEl = document.getElementById("ticket_email_verify_errmsg");
var contactErrEl = document.getElementById("ticket_contact_errmsg");
var ticketTypeErrEl = document.getElementById("ticket_type_errmsg");
realnameErrEl.style.display = 'none';
emailErrEl.style.display = 'none';
emailVerifyErrEl.style.display = 'none';
contactErrEl.style.display = 'none';
ticketTypeErrEl.style.display = 'none';
var selectedTicketType = false;
for (var i = 0; i < ticketTypeList.length; i++) {
var ticketTypeNode = ticketTypeList[i];
if (ticketTypeNode.checked) {
selectedTicketType = true;
}
}
if (!selectedTicketType) {
ticketTypeErrEl.style.display = '';
result = false;
}
if (realnameVal === '') {
realnameErrEl.style.display = '';
result = false;
}
if (emailVal === '') {
emailErrEl.style.display = '';
result = false;
} else {
var emailPattern = /^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/;
if (!emailPattern.test(emailVal)) {
emailVerifyErrEl.style.display = '';
result = false;
}
}
if (contactVal === '') {
contactErrEl.style.display = '';
result = false;
}
return result;
}
</script>
<script src="https://data.highlightstravel.com/min/?f=/js/jquery-1.8.2.min.js,/js/jquery.mailAutoComplete-4.0.min.js&amp;v=202508110934"></script>
<script>
$(function () {
$.getJSON("https://www.chinahighlights.com/guide-use.php/apps/ip2location/index/get_country", function (data) {
var yourCountry = data.country_name;
$('#country_code option').each((i, optionEle) => {
var countryName = optionEle.value.split('+')[0].trim();
if (yourCountry === countryName) {
optionEle.selected = true;
}
});
})
.fail(function (xhr, status, error) {
console.error(error);
});
})
</script>
<style>
.minaddBtn { width:auto !important;}
.optionLable input[type="radio"]+label {min-height: auto;}
.optionLable input[type="radio"]:checked+label, .optionLable input[type="radio"]+label:hover {
border: 1px solid #ad1818;
color: #ad1818;
background: #ad1818;
color: #fff;
}
</style>
<!--lantern-form end-->

@ -32,6 +32,23 @@
j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-56CMWN3');</script>
<!-- Meta Pixel Code -->
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '671558239234893');
fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=671558239234893&ev=PageView&noscript=1"
/></noscript>
<!-- End Meta Pixel Code -->
<!-- TrustBox script -->
<script type="text/javascript" src="//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js" async></script>
<!-- End TrustBox script -->
@ -364,7 +381,7 @@
</div>
<!-- End TrustBox widget -->
</div>
</div>
</div>

@ -28,6 +28,23 @@
j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-56CMWN3');</script>
<!-- Meta Pixel Code -->
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '671558239234893');
fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=671558239234893&ev=PageView&noscript=1"
/></noscript>
<!-- End Meta Pixel Code -->
<!-- TrustBox script -->
<script type="text/javascript" src="//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js" async></script>
<!-- End TrustBox script -->
@ -164,7 +181,7 @@
</div>
<!-- End TrustBox widget -->
</div>
</div>
</div>
<div class="newsletter_form">
<div class="list_content">
<h2 style="padding-top: 0; text-align: center;">Sign up to Our Newsletter</h2>
@ -286,7 +303,7 @@
</div>
<!-- End TrustBox widget -->
</div>
<div class="language_links">
<span class="followtitle">Highlights Family</span>
<div class="listtour" style="display: flex;">

@ -30,7 +30,23 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-WDMQBHWC');</script>
<!-- End Google Tag Manager -->
<!-- Meta Pixel Code -->
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '1334512364891517');
fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=1334512364891517&ev=PageView&noscript=1"
/></noscript>
<!-- End Meta Pixel Code -->
</head>
<body>
@ -42,7 +58,7 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!--PC头部-->
<header class="headerbar" id="header">
<div class="p_topnavigation">
<nav>
<ul class="pctopnavi">
<li><a href="/" class="p_toplogo"> <img
@ -68,7 +84,7 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
Destinations</a>
<div class="dropdown-content japan_destinations">
<div class="inspirationinfo">
<ul class="inspiration">
<li><a href="/japan/tokyo">Tokyo</a></li>
<li><a href="/japan/kyoto">Kyoto</a></li>
@ -80,14 +96,14 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<li><a href="/japan/osaka/kumano-kodo">Kumano Kodo</a></li>
<li><a href="/japan/osaka/mount-koya">Mount Koya</a></li>
</ul>
</div>
</div>
</li>
<li class="dropdown"><a class="p_topnavilink" href="/japan/things-to-do">Experiences</a>
<div class="dropdown-content japan_experiences">
<div class="inspirationinfo">
<ul class="inspiration">
<li><a href="/japan/tokyo/best-places-to-see-anime">Anime</a></li>
@ -104,7 +120,7 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<li><a href="/japan/plan-a-cherry-blossom-trip">Cherry Blossoms</a></li>
</ul>
</div>
</div>
</li>
@ -112,14 +128,14 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<li class="dropdown"><a href="/about-us" class="p_topnavilink">About Us</a>
<div class="dropdown-content about_us">
<div class="inspirationinfo">
<ul class="inspiration">
<li><a href="/about-us/meet-our-team">Meet Our Team</a></li>
<li><a href="/reviews">Reviews (★★★★★ 5/5)</a></li>
<li><a href="/about-us/our-company">Our Company</a></li>
<li><a href="/about-us/responsible-travel">Responsible Travel</a></li>
<li><a href="/about-us/loyalty-program">Loyalty Program</a></li>
</ul>
</ul>
</div>
</div>
</li>
@ -202,7 +218,7 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<span class="infotailormade"><a href="/forms/tailormade?product_code=">Create My Trip</a></span>
</span>
</div>
<div class="newsletter_form">
@ -344,7 +360,7 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
width: 90px;
filter: brightness(170%);
margin: 3px 10px 10px 10px;" alt="Trip Advisor rating"> | 98.5% Excellence<br>
</div><img src="https://images.japanhighlights.com/allpicture/2025/08/2593c995dea543ee8f08ff553dd56514_cut_300x70_241_1755016884.png" alt="Trip Advisor" class="img-responsive" style="
width: 180px;
margin-top: 5px;
@ -357,7 +373,7 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<div class="bottompctitle">Highlights Family</div>
<ul>
<li><a href="https://www.highlightstravel.com/" target="_blank" rel="nofollow">Highlights Travel</a></li>
<li><a href="https://www.chinahighlights.com/" target="_blank" rel="nofollow">China
Highlights</a></li>
<li><a href="https://www.globalhighlights.com/" target="_blank" rel="nofollow">Global

@ -26,6 +26,23 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-WDMQBHWC');</script>
<!-- End Google Tag Manager -->
<!-- Meta Pixel Code -->
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '1334512364891517');
fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=1334512364891517&ev=PageView&noscript=1"
/></noscript>
<!-- End Meta Pixel Code -->
</head>
@ -158,7 +175,7 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
from our travel advisors.
<span class="infotailormade"><a href="/forms/tailormade?product_code=">Create My Trip</a></span>
</span>
</div>
@ -272,10 +289,10 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
originalsrc="https://images.japanhighlights.com/allpicture/2025/07/582770fd50354a28b51256bc10bc799f_cut_800x250_241_1752510506.jpg"
class="img-responsive" style="width: 260px; margin: 0 auto; height:auto;" alt="Japan Highlights logo">
<div class="bottomlogoinfo">
5.0 <img src="https://images.chinahighlights.com/allpicture/2024/12/c81b67573a2d40d6922e95b33aeaf03d_cut_80x14_241_1733323252.png"
style="width: 85px;margin: 0px 10px;filter: brightness(170%);" alt="Trip Advisor rating"> | 98.5% Excellence<br>
</div><img src="https://images.japanhighlights.com/allpicture/2025/08/2593c995dea543ee8f08ff553dd56514_cut_300x70_241_1755016884.png" alt="Trip Advisor" class="img-responsive" style="
width: 180px;
margin: -15px auto 60px auto;
@ -292,7 +309,7 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
</div>
<div>
<ul>
<li><a href="https://www.globalhighlights.com/" target="_blank" rel="nofollow">Global Highlights</a></li>
</ul>
</div>
@ -417,7 +434,7 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
}
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",

Loading…
Cancel
Save