(function(){
'use strict';
if(window.__rlgCartCountReady){
return;
}
window.__rlgCartCountReady=true;
var STORAGE_KEY='rlg_checkout_cart';
function getCartItems(){
try {
var raw=window.localStorage.getItem(STORAGE_KEY);
var parsed=raw ? JSON.parse(raw):[];
return Array.isArray(parsed) ? parsed:[];
} catch (e){
return [];
}}
function updateCartCount(items){
var cartItems=Array.isArray(items) ? items:getCartItems();
var count=cartItems.length;
document.querySelectorAll('[data-cart-count]').forEach(function(node){
node.textContent=String(count);
node.classList.toggle('is-empty', count < 1);
});
}
function bindCartCount(){
updateCartCount();
window.addEventListener('storage', function(event){
if(!event||event.key===STORAGE_KEY||event.key===null){
updateCartCount();
}});
window.addEventListener('rlgCartUpdated', function(event){
var items=event&&event.detail ? event.detail.items:null;
updateCartCount(items);
});
}
if(document.readyState==='loading'){
document.addEventListener('DOMContentLoaded', bindCartCount, {
once: true
});
document.addEventListener('DOMContentLiteSpeedLoaded', bindCartCount, {
once: true
});
return;
}
bindCartCount();
})();
(function(){
'use strict';
var BK=window.bkData||{};
var PRICES=BK.prices||{};
var RETURN_METHODS=BK.returnMethods||PRICES||{};
var ADDONS=BK.addons||{};
var PAYMENT_OPTIONS=BK.paymentOptions||{};
var RETURN_KEYS=Object.keys(RETURN_METHODS);
var DEFAULT_RETURN=BK.defaultReturn||(RETURN_KEYS.length ? RETURN_KEYS[0]:'default');
var D={
name: BK.name||document.title||'',
id: BK.id||0,
link: BK.link||window.location.href,
dep: BK.dep||"100",
diasBloqueo: BK.diasBloqueo||1,
ajax: BK.ajax||(window.location.origin + '/wp-admin/admin-ajax.php'),
nonce: BK.nonce||'',
logo: BK.logo||'',
izsvg: BK.izsvg||'',
pk: BK.pk||''
};
var hasSinglePaymentOption=Object.keys(PAYMENT_OPTIONS).length <=1;
var q=function(s){
return document.querySelector(s)
};
var qa=function(s){
return document.querySelectorAll(s)
};
var qv=function(s){
var el=q(s);
return el ? parseInt(el.value)||0:0
};
function onReady(fn){
if(document.readyState!=='loading'){
fn();
return;
}
document.addEventListener('DOMContentLoaded', fn, {
once: !0
});
document.addEventListener('DOMContentLiteSpeedLoaded', fn, {
once: !0
});
}
if(!q('#bk-widget')||!q('#bk-ov'))
return;
function initCountrySelect(){
var wrap=q('#bk-country');
var select=q('#bk-pais');
var trigger=q('#bk-country-trigger');
var menu=q('#bk-country-menu');
var label=q('#bk-country-label');
var search=q('#bk-country-search');
var selectedFlag=q('.bk-country__selected .bk-country__flag');
if(!wrap||!select||!trigger||!menu||!label||!selectedFlag)
return;
var options=qa('.bk-country__option');
function closeMenu(){
wrap.classList.remove('open');
trigger.setAttribute('aria-expanded', 'false');
menu.hidden = !0;
}
function openMenu(){
wrap.classList.add('open');
trigger.setAttribute('aria-expanded', 'true');
menu.hidden = !1;
if(search){
search.value='';
options.forEach(function(option){
option.hidden = !1;
});
search.focus();
}}
function setValue(value, flagUrl){
select.value=value||'';
label.textContent=value||'Select your country';
if(flagUrl){
selectedFlag.innerHTML='<img src="' + flagUrl + '" alt="">';
selectedFlag.classList.remove('bk-country__flag--placeholder');
}else{
selectedFlag.innerHTML='';
selectedFlag.classList.add('bk-country__flag--placeholder');
}}
trigger.addEventListener('click', function(){
if(menu.hidden){
openMenu();
}else{
closeMenu();
}});
options.forEach(function(option){
option.addEventListener('click', function(){
setValue(option.dataset.value||'', option.dataset.flag||'');
closeMenu();
});
});
if(search){
search.addEventListener('input', function(){
var term=search.value.trim().toLowerCase();
options.forEach(function(option){
option.hidden=term&&option.dataset.value.toLowerCase().indexOf(term)===-1;
});
});
}
document.addEventListener('click', function(e){
if(!wrap.contains(e.target))
closeMenu();
});
var defaultOption=q('.bk-country__option[data-value="' + select.value + '"]');
setValue(select.value, defaultOption ? defaultOption.dataset.flag||'':'');
}
function initLanguageSelect(){
var wrap=q('#bk-w-lang');
var select=q('#bk-w-language');
var trigger=q('#bk-w-lang-trigger');
var menu=q('#bk-w-lang-menu');
var label=q('#bk-w-lang-label');
if(!wrap||!select||!trigger||!menu||!label)
return;
var options=qa('.bk-w-lang__option');
function closeMenu(){
wrap.classList.remove('open');
trigger.setAttribute('aria-expanded', 'false');
menu.hidden = !0;
}
function openMenu(){
wrap.classList.add('open');
trigger.setAttribute('aria-expanded', 'true');
menu.hidden = !1;
}
function setValue(value){
select.value=value||'English';
label.textContent=value||'English';
options.forEach(function(option){
option.classList.toggle('is-selected', option.dataset.value===select.value);
});
}
trigger.addEventListener('click', function(e){
e.preventDefault();
e.stopPropagation();
if(menu.hidden){
openMenu();
}else{
closeMenu();
}});
options.forEach(function(option){
option.addEventListener('click', function(e){
e.preventDefault();
e.stopPropagation();
setValue(option.dataset.value||'English');
closeMenu();
});
});
document.addEventListener('click', function(e){
if(!wrap.contains(e.target))
closeMenu();
});
var defaultOption=q('.bk-w-lang__option[data-value="' + select.value + '"]');
if(defaultOption)
setValue(defaultOption.dataset.value||'English');
}
function initWidgetTravelers(){
var wrap=q('#bk-w-travelers');
var trigger=q('#bk-w-travelers-trigger');
var panel=q('#bk-w-travelers-panel');
var select=q('#bk-w-adults');
var display=q('#bk-w-adults-display');
var minus=q('#bk-w-adults-minus');
var plus=q('#bk-w-adults-plus');
var done=q('#bk-w-travelers-continue');
if(!wrap||!trigger||!panel||!select||!display||!minus||!plus||!done)
return;
function setCount(value){
var count=Math.max(0, Math.min(10, parseInt(value, 10)||0));
select.value=String(count);
display.value=String(count);
widgetCalc();
}
function openPanel(){
wrap.classList.add('open');
trigger.setAttribute('aria-expanded', 'true');
panel.hidden = !1;
}
function closePanel(){
wrap.classList.remove('open');
trigger.setAttribute('aria-expanded', 'false');
panel.hidden = !0;
}
trigger.addEventListener('click', function(){
if(panel.hidden){
openPanel();
}else{
closePanel();
}});
minus.addEventListener('click', function(){
setCount((parseInt(select.value, 10)||0) - 1);
});
plus.addEventListener('click', function(){
setCount((parseInt(select.value, 10)||0) + 1);
});
done.addEventListener('click', closePanel);
document.addEventListener('click', function(e){
if(!wrap.contains(e.target))
closePanel();
});
setCount(select.value);
}
function initWidgetDatePicker(){
var wrap=q('#bk-w-date');
var trigger=q('#bk-w-date-trigger');
var input=q('#bk-fecha');
var panel=q('#bk-w-calendar');
var monthsEl=q('#bk-w-calendar-months');
var prevBtn=q('#bk-w-calendar-prev');
var nextBtn=q('#bk-w-calendar-next');
var closeBtn=q('#bk-w-calendar-close');
if(!wrap||!trigger||!input||!panel||!monthsEl||!prevBtn||!nextBtn)
return;
var mobileMedia=window.matchMedia('(max-width: 767px)');
var mobileMonthWindow=12;
var mobileInitialMonths=24;
var mobileRenderedMonths=0;
var monthNames=['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
var weekdayNames=['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
var minDate=parseDateValue(getMinBookingDate());
var selectedDate=parseDateValue(input.value);
var viewDate=selectedDate&&selectedDate >=minDate ? new Date(selectedDate.getFullYear(), selectedDate.getMonth(), 1):new Date(minDate.getFullYear(), minDate.getMonth(), 1);
function parseDateValue(value){
if(!value)
return null;
var parts=value.split('-');
if(parts.length!==3)
return null;
return new Date(parseInt(parts[0], 10),parseInt(parts[1], 10) - 1,parseInt(parts[2], 10));
}
function formatDateValue(date){
var y=date.getFullYear();
var m=String(date.getMonth() + 1).padStart(2, '0');
var d=String(date.getDate()).padStart(2, '0');
return y + '-' + m + '-' + d;
}
function startOfMonth(date){
return new Date(date.getFullYear(),date.getMonth(),1);
}
function sameDay(a, b){
return !!a&&!!b&&a.getFullYear()===b.getFullYear()&&a.getMonth()===b.getMonth()&&a.getDate()===b.getDate();
}
function sameMonth(a, b){
return a.getFullYear()===b.getFullYear()&&a.getMonth()===b.getMonth();
}
function isBefore(a, b){
return a.getTime() < b.getTime();
}
function monthDiff(from, to){
return (to.getFullYear() - from.getFullYear()) * 12 + (to.getMonth() - from.getMonth());
}
function getRenderedMonthCount(){
if(!mobileMedia.matches)
return 2;
var targetMonth=startOfMonth(selectedDate&&selectedDate >=minDate ? selectedDate:viewDate);
return Math.max(mobileInitialMonths, monthDiff(startOfMonth(minDate), targetMonth) + 12);
}
function getMonthDateAt(index){
return new Date(minDate.getFullYear(),minDate.getMonth() + index,1);
}
function appendMobileMonths(count){
for (var monthIndex=mobileRenderedMonths; monthIndex < mobileRenderedMonths + count; monthIndex++)
monthsEl.appendChild(renderMonth(getMonthDateAt(monthIndex)));
mobileRenderedMonths +=count;
}
function ensureMobileScrollCapacity(){
if(!mobileMedia.matches)
return;
if(monthsEl.scrollHeight - monthsEl.scrollTop - monthsEl.clientHeight < 240)
appendMobileMonths(mobileMonthWindow);
}
function scrollSelectedMonthIntoView(){
if(!mobileMedia.matches)
return;
var target=monthsEl.querySelector('.bk-w-calendar__day.is-selected');
if(!target)
target=monthsEl.querySelector('.bk-w-calendar__day:not(.is-disabled)');
if(target&&typeof target.scrollIntoView==='function'){
target.scrollIntoView({
block: 'center'
});
}}
function renderMonth(date){
var monthWrap=document.createElement('div');
monthWrap.className='bk-w-calendar__month';
var title=document.createElement('div');
title.className='bk-w-calendar__month-title';
title.textContent=monthNames[date.getMonth()] + ' ' + date.getFullYear();
monthWrap.appendChild(title);
var weekdays=document.createElement('div');
weekdays.className='bk-w-calendar__weekdays';
weekdayNames.forEach(function(name){
var dayName=document.createElement('div');
dayName.className='bk-w-calendar__weekday';
dayName.textContent=name;
weekdays.appendChild(dayName);
});
monthWrap.appendChild(weekdays);
var days=document.createElement('div');
days.className='bk-w-calendar__days';
var first=new Date(date.getFullYear(),date.getMonth(),1);
var firstWeekday=(first.getDay() + 6) % 7;
for (var i=0; i < firstWeekday; i++){
var empty=document.createElement('span');
empty.className='bk-w-calendar__empty';
days.appendChild(empty);
}
var daysInMonth=new Date(date.getFullYear(),date.getMonth() + 1,0).getDate();
var today=new Date();
today.setHours(0, 0, 0, 0);
for (var day=1; day <=daysInMonth; day++){
var cellDate=new Date(date.getFullYear(),date.getMonth(),day);
var btn=document.createElement('button');
btn.type='button';
btn.className='bk-w-calendar__day';
btn.textContent=String(day);
if(sameDay(cellDate, today))
btn.classList.add('is-today');
if(selectedDate&&sameDay(cellDate, selectedDate))
btn.classList.add('is-selected');
if(isBefore(cellDate, minDate)){
btn.classList.add('is-disabled');
}else{
btn.addEventListener('click', function(selected){
return function(){
selectedDate=selected;
input.value=formatDateValue(selected);
widgetCalc();
renderCalendar();
closePicker();
};}(cellDate));
}
days.appendChild(btn);
}
monthWrap.appendChild(days);
return monthWrap;
}
function renderCalendar(){
monthsEl.innerHTML='';
if(mobileMedia.matches){
mobileRenderedMonths=0;
appendMobileMonths(getRenderedMonthCount());
prevBtn.disabled = !0;
return;
}
var firstMonth=startOfMonth(viewDate);
for (var monthIndex=0; monthIndex < 2; monthIndex++)
monthsEl.appendChild(renderMonth(new Date(firstMonth.getFullYear(),firstMonth.getMonth() + monthIndex,1)));
prevBtn.disabled=sameMonth(firstMonth, startOfMonth(minDate));
}
function openPicker(){
wrap.classList.add('is-open');
trigger.setAttribute('aria-expanded', 'true');
panel.hidden = !1;
scrollSelectedMonthIntoView();
}
function closePicker(){
wrap.classList.remove('is-open');
trigger.setAttribute('aria-expanded', 'false');
panel.hidden = !0;
}
trigger.addEventListener('click', function(e){
e.preventDefault();
e.stopPropagation();
if(panel.hidden){
renderCalendar();
openPicker();
}else{
closePicker();
}});
prevBtn.addEventListener('click', function(e){
e.preventDefault();
if(mobileMedia.matches)
return;
var step=mobileMedia.matches ? mobileMonthWindow:1;
var prevMonth=new Date(viewDate.getFullYear(),viewDate.getMonth() - step,1);
if(!isBefore(prevMonth, startOfMonth(minDate))){
viewDate=prevMonth;
}else{
viewDate=startOfMonth(minDate);
}
renderCalendar();
});
nextBtn.addEventListener('click', function(e){
e.preventDefault();
if(mobileMedia.matches){
appendMobileMonths(mobileMonthWindow);
return;
}
viewDate=new Date(viewDate.getFullYear(),viewDate.getMonth() + (mobileMedia.matches ? mobileMonthWindow:1),1);
renderCalendar();
});
monthsEl.addEventListener('scroll', function(){
ensureMobileScrollCapacity();
});
input.addEventListener('change', function(){
selectedDate=parseDateValue(input.value);
widgetCalc();
renderCalendar();
});
if(closeBtn){
closeBtn.addEventListener('click', function(e){
e.preventDefault();
closePicker();
});
}
if(typeof mobileMedia.addEventListener==='function'){
mobileMedia.addEventListener('change', function(){
renderCalendar();
});
}else if(typeof mobileMedia.addListener==='function'){
mobileMedia.addListener(function(){
renderCalendar();
});
}
document.addEventListener('click', function(e){
if(!wrap.contains(e.target))
closePicker();
});
renderCalendar();
}
function initWhatsAppField(){
var hiddenInput=q('#bk-wa');
var numberInput=q('#bk-wa-number');
var countryCodeInput=q('#bk-wa-country-code');
var trigger=q('#bk-wa-prefix');
var menu=q('#bk-wa-menu');
var search=q('#bk-wa-search');
var flag=q('#bk-wa-flag');
var codeLabel=q('#bk-wa-code');
var wrap=q('#bk-wa-country');
if(!hiddenInput||!numberInput||!countryCodeInput||!trigger||!menu||!flag||!codeLabel||!wrap)
return;
var options=qa('.bk-wa-country__option');
function closeMenu(){
trigger.setAttribute('aria-expanded', 'false');
menu.hidden = !0;
}
function openMenu(){
trigger.setAttribute('aria-expanded', 'true');
menu.hidden = !1;
if(search){
search.value='';
options.forEach(function(option){
option.hidden = !1;
});
search.focus();
}}
function syncWhatsApp(){
var digits=numberInput.value.replace(/[^\d\s()+-]/g, '').trim();
var dial=codeLabel.textContent.trim();
hiddenInput.value=digits ? dial + ' ' + digits:'';
}
function setCountry(option){
if(!option)
return;
countryCodeInput.value=option.dataset.code||'';
if(option.dataset.flag)
flag.src=option.dataset.flag;
codeLabel.textContent=option.dataset.dial||'';
closeMenu();
syncWhatsApp();
}
trigger.addEventListener('click', function(){
if(menu.hidden){
openMenu();
}else{
closeMenu();
}});
options.forEach(function(option){
option.addEventListener('click', function(){
setCountry(option);
});
});
if(search){
search.addEventListener('input', function(){
var term=search.value.trim().toLowerCase();
options.forEach(function(option){
var haystack=((option.dataset.country||'') + ' ' + (option.dataset.dial||'')).toLowerCase();
option.hidden=term&&haystack.indexOf(term)===-1;
});
});
}
document.addEventListener('click', function(e){
if(!wrap.contains(e.target))
closeMenu();
});
numberInput.addEventListener('input', syncWhatsApp);
var defaultOption=q('.bk-wa-country__option[data-code="' + countryCodeInput.value + '"]');
if(defaultOption)
setCountry(defaultOption);
syncWhatsApp();
}
function fetchFreshNonce(){
return new Promise(function(resolve, reject){
var fd=new FormData();
fd.append('action', 'bk_get_fresh_nonce');
fetch(D.ajax, {
method: 'POST',
body: fd,
credentials: 'same-origin',
cache: 'no-store'
}).then(function(r){
return r.json()
}).then(function(res){
if(res.success&&res.data&&res.data.nonce){
D.nonce=res.data.nonce;
resolve(res.data.nonce)
}else{
reject(new Error('Could not obtain security token.'))
}}).catch(function(err){
reject(err)
})
}
)
}
function getReturn(context){
if(context==='m'){
var el=q('#bk-m-return');
return el ? el.value:DEFAULT_RETURN
}
var el=q('#bk-return');
return el ? el.value:DEFAULT_RETURN
}
function getPrices(ret){
return PRICES[ret]||PRICES[DEFAULT_RETURN]||{
adult: 0,
student: 0,
child: 0
}}
function getVisibility(ret){
var p=getPrices(ret);
return {
adult: !0,
student: (parseFloat(p.student)||0) > 0,
child: (parseFloat(p.child)||0) > 0
}}
function getReturnLabel(ret){
return RETURN_METHODS[ret]&&RETURN_METHODS[ret].label ? RETURN_METHODS[ret].label:ret
}
function getPaymentPercentage(){
return 100
}
function getAddonTotals(context){
var selector=context==='m' ? '.bk-m-addon':'.bk-w-addon';
var els=qa(selector);
var items={};
var total=0;
els.forEach(function(el){
var key=el.dataset.addon;
var price=parseFloat(el.dataset.price)||0;
var qty=parseInt(el.value)||0;
if(qty > 0){
items[key]={
qty: qty,
price: price,
label: ADDONS[key] ? ADDONS[key].label:key,
subtotal: price * qty
};
total +=price * qty
}});
return {
items: items,
total: total
}}
var minOffset=D.diasBloqueo > 0 ? D.diasBloqueo:1;
function getMinBookingDate(){
var date=new Date();
date.setHours(0, 0, 0, 0);
date.setDate(date.getDate() + minOffset);
return date.toISOString().slice(0, 10);
}
function applyDateMin(selector){
var el=q(selector);
if(!el)
return;
el.min=getMinBookingDate();
}
function syncModalTravelDate(value){
if(q('#bk-sd'))
q('#bk-sd').textContent=value||'\u2014';
}
function initModalDateEditor(){
var input=q('#bk-fmod');
if(!input)
return;
input.addEventListener('change', function(){
syncModalTravelDate(this.value||'');
if(q('#bk-fecha'))
q('#bk-fecha').value=this.value||'';
widgetCalc();
calcSum();
});
}
function initModalTravelersEditor(){
var input=q('#bk-sx-input');
var modalAdults=q('#bk-m-adults');
if(!input||!modalAdults)
return;
input.addEventListener('change', function(){
modalAdults.value=this.value||'1';
if(q('#bk-w-adults'))
q('#bk-w-adults').value=this.value||'1';
buildPax();
calcSum();
widgetCalc();
});
}
onReady(function(){
applyDateMin('#bk-fecha');
applyDateMin('#bk-fmod');
initWidgetTravelers();
initWidgetDatePicker();
initCountrySelect();
initLanguageSelect();
initWhatsAppField();
initModalDateEditor();
initModalTravelersEditor();
});
function widgetCalc(){
var ret=getReturn('w');
var p=getPrices(ret);
var vis=getVisibility(ret);
if(q('#bk-w-pa'))
q('#bk-w-pa').textContent=p.adult.toFixed(2);
if(q('#bk-w-ps'))
q('#bk-w-ps').textContent=p.student.toFixed(2);
if(q('#bk-w-pc'))
q('#bk-w-pc').textContent=p.child.toFixed(2);
var nA=qv('#bk-w-adults')
, nS=vis.student ? qv('#bk-w-students'):0
, nC=vis.child ? qv('#bk-w-children'):0;
if(q('#bk-w-travelers-label'))
q('#bk-w-travelers-label').textContent='Adult x ' + nA;
if(q('#bk-w-date-label')){
var rawDate=q('#bk-fecha') ? q('#bk-fecha').value:'';
if(rawDate){
var dateObj=new Date(rawDate + 'T00:00:00');
q('#bk-w-date-label').textContent=isNaN(dateObj.getTime()) ? rawDate:dateObj.toLocaleDateString('en-US', {
month: 'short',
day: 'numeric',
year: 'numeric'
});
}else{
q('#bk-w-date-label').textContent='Select date';
}}
var tourTotal=(p.adult * nA) + (p.student * nS) + (p.child * nC);
if(q('#bk-total'))
q('#bk-total').textContent=tourTotal.toFixed(2);
togglePaxVisibility()
}
function togglePaxVisibility(){
var vis=getVisibility(getReturn('w'));
var wStudents=q('#bk-w-students');
var wChildren=q('#bk-w-children');
var mStudents=q('#bk-m-students');
var mChildren=q('#bk-m-children');
if(wStudents&&wStudents.closest('.bk-pax-row'))
wStudents.closest('.bk-pax-row').style.display=vis.student ? '':'none';
if(wChildren&&wChildren.closest('.bk-pax-row'))
wChildren.closest('.bk-pax-row').style.display=vis.child ? '':'none';
if(mStudents&&mStudents.closest('.bk-fg'))
mStudents.closest('.bk-fg').style.display=vis.student ? '':'none';
if(mChildren&&mChildren.closest('.bk-fg'))
mChildren.closest('.bk-fg').style.display=vis.child ? '':'none';
if(!vis.student&&wStudents)
wStudents.value='0';
if(!vis.child&&wChildren)
wChildren.value='0';
if(!vis.student&&mStudents)
mStudents.value='0';
if(!vis.child&&mChildren)
mChildren.value='0';
}
var wRetEl=q('#bk-return');
if(wRetEl&&wRetEl.tagName==='SELECT')
wRetEl.addEventListener('change', widgetCalc);
if(q('#bk-w-adults'))
q('#bk-w-adults').addEventListener('change', widgetCalc);
if(q('#bk-w-students'))
q('#bk-w-students').addEventListener('change', widgetCalc);
if(q('#bk-w-children'))
q('#bk-w-children').addEventListener('change', widgetCalc);
widgetCalc();
var ov=q('#bk-ov');
function openModal(){
if(!q('#bk-fmod'))
return;
q('#bk-fmod').value=q('#bk-fecha') ? q('#bk-fecha').value||'':'';
if(q('#bk-m-return')&&wRetEl)
q('#bk-m-return').value=DEFAULT_RETURN;
if(q('#bk-m-adults')&&q('#bk-w-adults'))
q('#bk-m-adults').value=q('#bk-w-adults').value;
if(q('#bk-sx-input')&&q('#bk-w-adults'))
q('#bk-sx-input').value=q('#bk-w-adults').value;
if(q('#bk-m-students')&&q('#bk-w-students'))
q('#bk-m-students').value=q('#bk-w-students').value;
if(q('#bk-m-children')&&q('#bk-w-children'))
q('#bk-m-children').value=q('#bk-w-children').value;
qa('.bk-w-addon').forEach(function(wEl){
var key=wEl.dataset.addon;
var mEl=q('.bk-m-addon[data-addon="' + key + '"]');
if(mEl)
mEl.value=wEl.value
});
buildPax();
calcSum();
syncModalTravelDate(q('#bk-fecha').value||'');
if(q('#bk-s-lang')&&q('#bk-w-language'))
q('#bk-s-lang').textContent=q('#bk-w-language').value||'English';
ov.classList.add('on');
document.body.style.overflow='hidden';
}
function closeModal(){
if(!ov)
return;
ov.classList.remove('on');
document.body.style.overflow=''
}
onReady(function(){
var openBtn=q('#bk-open');
var closeBtn=q('#bk-x');
var bgBtn=q('#bk-bg');
if(openBtn)
openBtn.addEventListener('click', openModal);
var btn1=q('#btn-open1');
if(btn1)
btn1.addEventListener('click', function(e){
e.preventDefault();
openModal()
});
var btn2=q('#btn-open2');
if(btn2)
btn2.addEventListener('click', function(e){
e.preventDefault();
openModal()
});
if(closeBtn)
closeBtn.addEventListener('click', closeModal);
if(bgBtn)
bgBtn.addEventListener('click', closeModal);
document.addEventListener('keydown', function(e){
if(e.key==='Escape'&&ov.classList.contains('on'))
closeModal();
})
});
function calcSum(){
var ret=getReturn('m');
var p=getPrices(ret);
var payPct=getPaymentPercentage();
var vis=getVisibility(ret);
var nA=vis.adult ? qv('#bk-m-adults'):0;
var nS=vis.student ? qv('#bk-m-students'):0;
var nC=vis.child ? qv('#bk-m-children'):0;
var totalPax=nA + nS + nC;
var totA=p.adult * nA;
var totS=p.student * nS;
var totC=p.child * nC;
var tourTotal=totA + totS + totC;
var addonsData=getAddonTotals('m');
var addonsTotal=addonsData.total;
var grandTotal=tourTotal + addonsTotal;
var sub=grandTotal * (payPct / 100);
var fee=sub * 0.05;
var tot=sub + fee;
var bal=grandTotal - sub;
q('#bk-sn').textContent=D.name;
if(q('#bk-s-lang')&&q('#bk-w-language'))
q('#bk-s-lang').textContent=q('#bk-w-language').value||'English';
var detailEl=q('#bk-s-pax-detail');
detailEl.innerHTML='';
if(nA > 0&&p.adult > 0){
detailEl.innerHTML +='<div class="bk-sr bk-sr--sub"><span>Adults: ' + nA + ' × $' + p.adult.toFixed(2) + '</span><span>$' + totA.toFixed(2) + '</span></div>'
}
if(nS > 0&&p.student > 0){
detailEl.innerHTML +='<div class="bk-sr bk-sr--sub"><span>Students: ' + nS + ' × $' + p.student.toFixed(2) + '</span><span>$' + totS.toFixed(2) + '</span></div>'
}
if(nC > 0&&p.child > 0){
detailEl.innerHTML +='<div class="bk-sr bk-sr--sub"><span>Children: ' + nC + ' × $' + p.child.toFixed(2) + '</span><span>$' + totC.toFixed(2) + '</span></div>'
}
var addonDetailEl=q('#bk-s-addon-detail');
var addonTotalRow=q('#bk-s-addon-total-row');
addonDetailEl.innerHTML='';
if(addonsTotal > 0){
addonDetailEl.innerHTML +='<div class="bk-sr--addon-head">Additional Services</div>';
for (var key in addonsData.items){
var ad=addonsData.items[key];
addonDetailEl.innerHTML +='<div class="bk-sr bk-sr--sub"><span>' + ad.label + ': ' + ad.qty + ' × $' + ad.price.toFixed(2) + '</span><span>$' + ad.subtotal.toFixed(2) + '</span></div>'
}
addonTotalRow.style.display='flex';
q('#bk-ss-addons').textContent=addonsTotal.toFixed(2)
}else{
addonTotalRow.style.display='none'
}
q('#bk-sx').textContent=totalPax;
if(q('#bk-sx-input'))
q('#bk-sx-input').value=String(totalPax);
q('#bk-ss-tour').textContent=tourTotal.toFixed(2);
q('#bk-ss-grand').textContent=grandTotal.toFixed(2);
q('#bk-ss').textContent=sub.toFixed(2);
q('#bk-sf').textContent=fee.toFixed(2);
q('#bk-st').textContent=tot.toFixed(2);
if(q('#bk-sb'))
q('#bk-sb').textContent=bal.toFixed(2)
}
if(q('#bk-m-return'))
q('#bk-m-return').addEventListener('change', function(){
buildPax();
calcSum()
});
if(q('#bk-m-adults'))
q('#bk-m-adults').addEventListener('change', function(){
if(q('#bk-sx-input'))
q('#bk-sx-input').value=this.value||'1';
if(q('#bk-w-adults'))
q('#bk-w-adults').value=this.value||'1';
widgetCalc();
buildPax();
calcSum()
});
if(q('#bk-m-students'))
q('#bk-m-students').addEventListener('change', function(){
buildPax();
calcSum()
});
if(q('#bk-m-children'))
q('#bk-m-children').addEventListener('change', function(){
buildPax();
calcSum()
});
qa('.bk-m-addon').forEach(function(el){
el.addEventListener('change', calcSum)
});
var termsCheck=q('#bk-terms-check');
var subBtn=q('#bk-sub');
if(termsCheck&&subBtn)
termsCheck.addEventListener('change', function(){
subBtn.disabled = !this.checked
});
function buildPax(){
var ret=getReturn('m');
var p=getPrices(ret);
var vis=getVisibility(ret);
var nA=vis.adult ? qv('#bk-m-adults'):0;
var nS=vis.student ? qv('#bk-m-students'):0;
var nC=vis.child ? qv('#bk-m-children'):0;
var c=q('#bk-tc');
if(!c)
return;
c.innerHTML='';
var idx=1;
function addCard(type, label, count){
for (var i=0; i < count; i++){
var d=document.createElement('div');
d.className='bk-tc';
d.innerHTML='<div class="bk-tc__t">Traveler ' + idx + '<span class="bk-tc__type">' + label + '</span></div>' + '<input type="hidden" data-p="' + idx + '" data-f="pax_type" value="' + type + '"/>' + '<div class="bk-tg">' + '<div class="bk-fg"><label>Doc Type</label><select data-p="' + idx + '" data-f="tipo_doc"><option value="Passport">Passport</option><option value="ID">ID / DNI</option></select></div>' + '<div class="bk-fg"><label>Doc Number</label><input type="text" data-p="' + idx + '" data-f="num_doc"/></div>' + '<div class="bk-fg"><label>Full Name</label><input type="text" data-p="' + idx + '" data-f="nombre"/></div>' + '<div class="bk-fg"><label>Country</label><input type="text" data-p="' + idx + '" data-f="country"/></div>' + '<div class="bk-fg"><label>Age</label><input type="number" data-p="' + idx + '" data-f="edad" min="0" max="120"/></div>' + '<div class="bk-fg"><label>Gender</label><select data-p="' + idx + '" data-f="genero"><option value="Male">Male</option><option value="Female">Female</option><option value="Other">Other</option></select></div>' + '<div class="bk-fg"><label>Diet</label><select data-p="' + idx + '" data-f="diet"><option value="None">None</option><option value="Vegetarian">Vegetarian</option><option value="Vegan">Vegan</option><option value="Gluten-Free">Gluten-Free</option></select></div>' + '</div>';
c.appendChild(d);
idx++
}}
if(nA > 0&&p.adult > 0)
addCard('Adult', 'Adult', nA);
if(nS > 0&&p.student > 0)
addCard('Student', 'Student', nS);
if(nC > 0&&p.child > 0)
addCard('Child', 'Child', nC);
}
if(!subBtn)
return;
subBtn.addEventListener('click', function(){
var btn=this
, err=q('#bk-err');
err.innerHTML='';
var nombre=q('#bk-nombre').value.trim();
var pais=q('#bk-pais').value.trim();
var email=q('#bk-email').value.trim();
var wa=q('#bk-wa').value.trim();
var language=q('#bk-w-language') ? q('#bk-w-language').value.trim():'English';
var pickup=q('#bk-pickup') ? q('#bk-pickup').value.trim():'';
var fecha=q('#bk-fmod').value;
var tp='100';
var comments=q('#bk-comments').value.trim();
var ret=getReturn('m');
var p=getPrices(ret);
var vis=getVisibility(ret);
var nA=vis.adult ? qv('#bk-m-adults'):0;
var nS=vis.student ? qv('#bk-m-students'):0;
var nC=vis.child ? qv('#bk-m-children'):0;
var totalPax=nA + nS + nC;
if(!nombre||!pais||!email||!wa||!fecha){
err.innerHTML='<div class="bk-al bk-al--e">Please fill in all required fields (name, country, email, WhatsApp, travel date).</div>';
err.scrollIntoView({
behavior: 'smooth',
block: 'center'
});
return
}
if(totalPax < 1){
err.innerHTML='<div class="bk-al bk-al--e">Please select at least one traveler.</div>';
err.scrollIntoView({
behavior: 'smooth',
block: 'center'
});
return
}
if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)){
err.innerHTML='<div class="bk-al bk-al--e">Please enter a valid email address.</div>';
return
}
var pax={};
for (var i=1; i <=totalPax; i++){
pax[i]={};
qa('[data-p="' + i + '"]').forEach(function(el){
pax[i][el.dataset.f]=el.value
})
}
var addonsSubmit={};
qa('.bk-m-addon').forEach(function(el){
var qty=parseInt(el.value)||0;
if(qty > 0)
addonsSubmit[el.dataset.addon]=qty
});
btn.disabled = !0;
btn.innerHTML='<span class="bk-sp"></span> Processing...';
fetchFreshNonce().then(function(freshNonce){
return doSubmit(freshNonce)
}).then(function(res){
handleSubmitResponse(res, btn, err)
}).catch(function(submitErr){
err.innerHTML='<div class="bk-al bk-al--e">Connection error. Please check your internet and try again.</div>';
btn.disabled = !1;
btn.textContent='Send Your Booking'
});
function doSubmit(nonceValue){
var fd=new FormData();
fd.append('action', 'bk_submit_reservation');
fd.append('nonce', nonceValue);
fd.append('tour_name', D.name);
fd.append('tour_id', D.id);
fd.append('permalink', D.link);
fd.append('deposito', D.dep);
fd.append('nombre_completo', nombre);
fd.append('pais', pais);
fd.append('email', email);
fd.append('whatsapp', wa);
fd.append('language', language);
fd.append('pickup_location', pickup);
fd.append('fecha_viaje', fecha);
fd.append('return_method', ret);
fd.append('num_adults', nA);
fd.append('num_students', nS);
fd.append('num_children', nC);
fd.append('price_adult', p.adult);
fd.append('price_student', p.student);
fd.append('price_child', p.child);
fd.append('tipo_pago', tp);
fd.append('comentarios', comments);
fd.append('pasajeros', JSON.stringify(pax));
fd.append('addons', JSON.stringify(addonsSubmit));
return fetch(D.ajax, {
method: 'POST',
body: fd,
credentials: 'same-origin'
}).then(function(r){
return r.json()
})
}
function handleSubmitResponse(res, btn, err){
if(res.success&&res.data.formToken){
if(res.data.publicKey){
D.pk=res.data.publicKey;
}
if(res.data.mailWarning){
console.warn('[Booking]', res.data.mailWarning);
}
q('#bk-s1').style.display='none';
q('#bk-s2').classList.add('on');
q('#bk-mt').textContent='Secure Payment';
q('#bk-izlogo').src=D.logo;
q('#bk-izbadge').src=D.izsvg;
q('#bk-izt').textContent=res.data.totalPay;
loadIzi(res.data.formToken)
}else if(res.data&&res.data.code==='NONCE_EXPIRED'){
console.log('[Booking] Nonce expired, retrying with fresh nonce...');
fetchFreshNonce().then(function(retryNonce){
return doSubmit(retryNonce)
}).then(function(retryRes){
if(retryRes.success&&retryRes.data.formToken){
if(retryRes.data.publicKey){
D.pk=retryRes.data.publicKey;
}
if(retryRes.data.mailWarning){
console.warn('[Booking]', retryRes.data.mailWarning);
}
q('#bk-s1').style.display='none';
q('#bk-s2').classList.add('on');
q('#bk-mt').textContent='Secure Payment';
q('#bk-izlogo').src=D.logo;
q('#bk-izbadge').src=D.izsvg;
q('#bk-izt').textContent=retryRes.data.totalPay;
loadIzi(retryRes.data.formToken)
}else{
err.innerHTML='<div class="bk-al bk-al--e">' + (retryRes.data&&retryRes.data.message ? retryRes.data.message:'An error occurred. Please try again.') + '</div>';
btn.disabled = !1;
btn.textContent='Send Your Booking'
}}).catch(function(){
err.innerHTML='<div class="bk-al bk-al--e">Connection error. Please try again.</div>';
btn.disabled = !1;
btn.textContent='Send Your Booking'
})
}else{
err.innerHTML='<div class="bk-al bk-al--e">' + (res.data&&res.data.message ? res.data.message:'An error occurred. Please try again.') + '</div>';
btn.disabled = !1;
btn.textContent='Send Your Booking'
}}
});
function loadIzi(token){
if(!document.querySelector('link[href*="krypton-client"]')){
var c=document.createElement('link');
c.rel='stylesheet';
c.href='https://static.micuentaweb.pe/static/js/krypton-client/V4.0/ext/classic.css';
document.head.appendChild(c)
}
if(!document.querySelector('script[src*="kr-payment-form"]')){
var s=document.createElement('script');
s.src='https://static.micuentaweb.pe/static/js/krypton-client/V4.0/stable/kr-payment-form.min.js';
s.setAttribute('kr-public-key', D.pk);
s.setAttribute('kr-post-url-success', '/thanks-for-your-payment');
s.setAttribute('kr-language', 'en-US');
s.onload=function(){
var e=document.createElement('script');
e.src='https://static.micuentaweb.pe/static/js/krypton-client/V4.0/ext/classic.js';
e.onload=function(){
renderIzi(token)
}
;
document.head.appendChild(e)
}
;
document.head.appendChild(s)
}else{
renderIzi(token)
}}
function renderIzi(token){
var el=q('#bk-kr');
el.setAttribute('kr-form-token', token);
if(typeof KR!=='undefined'){
KR.setFormConfig({
formToken: token,
'kr-post-url-success': '/thanks-for-your-payment'
})
}}
}
)();
(function(){
'use strict';
function ready(fn){
if(document.readyState!=='loading'){
fn()
}else{
document.addEventListener('DOMContentLiteSpeedLoaded', fn)
}}
ready(function(){
var form=document.getElementById('mpt-form');
var btn=document.getElementById('mpt-submit');
var bannerOk=document.getElementById('mpt-ok-banner');
var bannerErr=document.getElementById('mpt-err-banner');
var errTxt=document.getElementById('mpt-err-txt');
var capErr=document.getElementById('mpt-cap-err');
var capNum=document.getElementById('mpt_captcha');
if(!form)
return;
form.querySelectorAll('.mpt-control').forEach(function(el){
el.addEventListener('input', function(){
this.classList.remove('err')
});
el.addEventListener('change', function(){
this.classList.remove('err')
})
});
capNum.addEventListener('input', function(){
capNum.classList.remove('err');
capErr.style.display='none'
});
form.addEventListener('submit', function(e){
e.preventDefault();
bannerOk.classList.remove('show');
bannerErr.classList.remove('show');
if(!validate())
return;
btn.disabled = !0;
btn.classList.remove('st-done');
btn.classList.add('st-sending');
var ajaxUrl=(typeof mptAjax!=='undefined') ? mptAjax.url:'https://www.machupicchuteam.com/wp-admin/admin-ajax.php';
var ajaxNonce=(typeof mptAjax!=='undefined') ? mptAjax.nonce:'';
var data=new FormData(form);
data.append('action', 'mpt_send_email');
data.append('security', ajaxNonce);
fetch(ajaxUrl, {
method: 'POST',
body: data
}).then(function(r){
return r.json()
}).then(function(res){
btn.classList.remove('st-sending');
if(res.success){
btn.classList.add('st-done');
setTimeout(function(){
bannerOk.classList.add('show');
bannerOk.scrollIntoView({
behavior: 'smooth',
block: 'nearest'
});
form.querySelectorAll('.mpt-control').forEach(function(el){
el.value=''
});
capNum.value=''
}, 400)
}else{
btn.disabled = !1;
errTxt.textContent=res.data||'Something went wrong. Please try again.';
bannerErr.classList.add('show');
bannerErr.scrollIntoView({
behavior: 'smooth',
block: 'nearest'
})
}}).catch(function(){
btn.classList.remove('st-sending');
btn.disabled = !1;
errTxt.textContent='Network error. Please check your connection and try again.';
bannerErr.classList.add('show')
})
});
function validate(){
var ok = !0;
var ids=['mpt_name', 'mpt_country', 'mpt_email', 'mpt_whatsapp', 'mpt_travelers', 'mpt_message'];
ids.forEach(function(id){
var el=document.getElementById(id);
if(!el)
return;
var v=el.value.trim();
if(!v||(id==='mpt_email'&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(v))){
el.classList.add('err');
ok = !1
}});
var ans=parseInt(form.querySelector('[name="mpt_captcha_answer"]').value, 10);
if(isNaN(parseInt(capNum.value, 10))||parseInt(capNum.value, 10)!==ans){
capNum.classList.add('err');
capErr.style.display='block';
ok = !1
}
if(!ok){
var first=form.querySelector('.err');
if(first)
first.scrollIntoView({
behavior: 'smooth',
block: 'center'
})
}
return ok
}})
}());
var mptAjax={
url: 'https://www.machupicchuteam.com/wp-admin/admin-ajax.php',
nonce: '480da19d85'
};
jQuery(function($){
function actualizarValores(){
if(!$('#personas').length)
return;
let valor=$('#personas').val();
if(!valor)
return;
let partes=valor.split(',');
let precio=parseFloat(partes[0]);
let cantidad=parseInt(partes[1]);
let total=precio * cantidad;
$('#cantidad_personas').val(cantidad);
$('#monto_total').text(total.toFixed(2));
$('#precio_total').val(total.toFixed(2))
}
if($('#personas').length){
$('#personas').on('change', actualizarValores);
actualizarValores()
}
const swiper=new Swiper('.slider-tour',{
loop: !1,
speed: 300,
effect: 'fade',
slidesPerView: 1,
slidesPerGroup: 1,
autoplay: {
delay: 2000,
disableOnInteraction: !1,
pauseOnMouseEnter: !1
},
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev'
},
breakpoints: {
480: {
slidesPerView: 1,
slidesPerGroup: 1
},
600: {
slidesPerView: 1,
slidesPerGroup: 1
},
1024: {
slidesPerView: 1,
slidesPerGroup: 1,
loop: !0
}}
});
const swiper2=new Swiper('.similar-trips',{
loop: !1,
speed: 300,
slidesPerView: 3,
slidesPerGroup: 1,
autoplay: {
delay: 2000,
disableOnInteraction: !1,
pauseOnMouseEnter: !1
},
pagination: {
el: '.swiper-pagination',
clickable: !0
},
breakpoints: {
480: {
slidesPerView: 1,
slidesPerGroup: 1
},
600: {
slidesPerView: 1,
slidesPerGroup: 1
},
1024: {
slidesPerView: 3,
slidesPerGroup: 1,
loop: !0
}}
});
const swiper3=new Swiper('.galeria-swiper',{
slidesPerView: 1,
spaceBetween: 12,
grabCursor: !0,
pagination: {
el: '.galeria-swiper .swiper-pagination',
clickable: !0,
},
navigation: {
nextEl: '.galeria-swiper .swiper-button-next',
prevEl: '.galeria-swiper .swiper-button-prev',
},
breakpoints: {
768: {
slidesPerView: 2,
spaceBetween: 16,
},
1024: {
slidesPerView: 3,
spaceBetween: 20,
},
},
});
$('#nav').onePageNav({
currentClass: 'current',
changeHash: !1,
scrollSpeed: 30,
scrollThreshold: 0.5,
scrollOffset: 80,
filter: ':not(.external)',
begin: function(){},
end: function(){},
});
$('#nav-responsive').onePageNav({
currentClass: 'current',
changeHash: !1,
scrollSpeed: 30,
scrollThreshold: 0.5,
scrollOffset: 80,
filter: ':not(.external)',
begin: function(){},
end: function(){},
});
Fancybox.bind("[data-fancybox]", {});
const header=$('.page');
let isHovering = !1;
function updateHeader(){
const scrolled=$(window).scrollTop() >=300;
const shouldBeColored=scrolled||isHovering;
header.toggleClass('color', shouldBeColored)
}
header.on('mouseenter', function(){
isHovering = !0;
updateHeader()
});
header.on('mouseleave', function(){
isHovering = !1;
updateHeader()
});
$(window).on('scroll', updateHeader);
updateHeader();
$('#close_offscreen').on('click', function(){
$('#offscreen_menu').animate({
left: '-100%'
}, 200, function(){
$(this).hide()
})
});
$('#open_offscreen').on('click', function(){
$('#offscreen_menu').show().animate({
left: '0'
}, 200)
})
});
document.getElementsByClassName("accordion-button").onclick=function(){
topFunction()
}
;
function topFunction(){
document.body.scrollTop=0;
document.documentElement.scrollTop=0
}
const height=(elem)=> {
return elem.getBoundingClientRect().height
}
const distance=(elemA, elemB, prop)=> {
const sizeA=elemA.getBoundingClientRect()[prop]
const sizeB=elemB.getBoundingClientRect()[prop]
return sizeB - sizeA
}
const factor=(elemA, elemB, prop)=> {
const sizeA=elemA.getBoundingClientRect()[prop]
const sizeB=elemB.getBoundingClientRect()[prop]
return sizeB / sizeA
}
document.querySelectorAll('.travel_tour_card').forEach((elem)=> {
const head=elem.querySelector('.travel_tour_card__head')
const image=elem.querySelector('.travel_tour_card__image')
const author=elem.querySelector('.travel_tour_card__author')
const body=elem.querySelector('.travel_tour_card__body')
const foot=elem.querySelector('.travel_tour_card__foot')
elem.onmouseenter=()=> {
elem.classList.add('hover')
const imageScale=1 + factor(head, body, 'height')
image.style.transform=`scale(${imageScale})`
const bodyDistance=height(foot) * -1
body.style.transform=`translateY(${bodyDistance}px)`
const authorDistance=distance(head, author, 'height')
author.style.transform=`translateY(${authorDistance}px)`
}
elem.onmouseleave=()=> {
elem.classList.remove('hover')
image.style.transform=`none`
body.style.transform=`none`
author.style.transform=`none`
}}
)
const ReadMore=(()=> {
let s;
return {
settings(){
return {
content: document.querySelectorAll('.js-read-more'),
originalContentArr: [],
truncatedContentArr: [],
moreLink: "Read more",
lessLink: "Read less",
}},
init(){
s=this.settings();
this.bindEvents()
},
bindEvents(){
ReadMore.truncateText()
},
countWords(str){
return str.split(/\s+/).length
},
ellipseContent(str, wordsNum){
return str.split(/\s+/).slice(0, wordsNum).join(' ') + '...'
},
truncateText(){
for (let i=0; i < s.content.length; i++){
const originalContent=s.content[i].innerHTML;
const numberOfWords=s.content[i].dataset.rmWords;
const truncateContent=ReadMore.ellipseContent(originalContent, numberOfWords);
const originalContentWords=ReadMore.countWords(originalContent);
s.originalContentArr.push(originalContent);
s.truncatedContentArr.push(truncateContent);
if(numberOfWords < originalContentWords){
s.content[i].innerHTML=s.truncatedContentArr[i];
let self=i;
ReadMore.createLink(self)
}}
ReadMore.handleClick(s.content)
},
createLink(index){
const linkWrap=document.createElement('span');
linkWrap.className='read-more__link-wrap';
linkWrap.innerHTML=`<a id="read-more_${index}"
class="read-more__link"
style="cursor:pointer;">
${s.moreLink}
</a>`;
s.content[index].parentNode.insertBefore(linkWrap, s.content[index].nextSibling)
},
handleClick(el){
const readMoreLink=document.querySelectorAll('.read-more__link');
for (let j=0, l=readMoreLink.length; j < l; j++){
readMoreLink[j].addEventListener('click', function(){
const moreLinkID=this.getAttribute('id');
let index=moreLinkID.split('_')[1];
el[index].classList.toggle('is-expanded');
if(this.dataset.clicked!=='true'){
el[index].innerHTML=s.originalContentArr[index];
this.innerHTML=s.lessLink;
this.dataset.clicked = !0
}else{
el[index].innerHTML=s.truncatedContentArr[index];
this.innerHTML=s.moreLink;
this.dataset.clicked = !1
}})
}},
openAll(){
const instances=document.querySelectorAll('.read-more__link');
for (let i=0; i < instances.length; i++){
content[i].innerHTML=s.truncatedContentArr[i];
instances[i].innerHTML=s.moreLink
}}
}}
)();
ReadMore.init();
(function($){
var wa_time_out, wa_time_in;
$(document).ready(function(){
$(".wa__btn_popup").on("click", function(){
if($(".wa__popup_chat_box").hasClass("wa__active")){
$(".wa__popup_chat_box").removeClass("wa__active");
$(".wa__btn_popup").removeClass("wa__active");
clearTimeout(wa_time_in);
if($(".wa__popup_chat_box").hasClass("wa__lauch")){
wa_time_out=setTimeout(function(){
$(".wa__popup_chat_box").removeClass("wa__pending");
$(".wa__popup_chat_box").removeClass("wa__lauch")
}, 400)
}}else{
$(".wa__popup_chat_box").addClass("wa__pending");
$(".wa__popup_chat_box").addClass("wa__active");
$(".wa__btn_popup").addClass("wa__active");
clearTimeout(wa_time_out);
if(!$(".wa__popup_chat_box").hasClass("wa__lauch")){
wa_time_in=setTimeout(function(){
$(".wa__popup_chat_box").addClass("wa__lauch")
}, 100)
}}
});
function setCookie(cname, cvalue, exdays){
var d=new Date();
d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);
var expires="expires=" + d.toUTCString();
document.cookie=cname + "=" + cvalue + ";" + expires + ";path=/"
}
function getCookie(cname){
var name=cname + "=";
var ca=document.cookie.split(";");
for (var i=0; i < ca.length; i++){
var c=ca[i];
while (c.charAt(0)==" "){
c=c.substring(1)
}
if(c.indexOf(name)==0){
return c.substring(name.length, c.length)
}}
return ""
}
$("#nta-wa-gdpr").change(function(){
if(this.checked){
setCookie("nta-wa-gdpr", "accept", 30);
if(getCookie("nta-wa-gdpr")!=""){
$('.nta-wa-gdpr').hide(500);
$('.wa__popup_content_item').each(function(){
$(this).removeClass('pointer-disable');
$('.wa__popup_content_list').off('click')
})
}}
});
if(getCookie("nta-wa-gdpr")!=""){
$('.wa__popup_content_list').off('click')
}else{
$('.wa__popup_content_list').click(function(){
$('.nta-wa-gdpr').delay(500).css({
"background": "red",
"color": "#fff"
})
})
}});
$(document).ready(function(){
var hoverTimeout;
$('.megamenu > li').each(function(){
var $li=$(this);
var $mega=$li.children('.megacontent');
var $a=$li.children('a').first();
if($mega.length){
$li.on('mouseenter', function(){
clearTimeout(hoverTimeout);
$('.megamenu > li').not($li).each(function(){
var $otherLi=$(this);
var $otherMega=$otherLi.children('.megacontent');
if($otherMega.length&&$otherMega.is(':visible')){
$otherMega.css({
'opacity': '0',
'transform': 'translateY(20px)'
});
setTimeout(function(){
if(!$otherMega.is(':visible'))
return;
$otherMega.hide()
}, 400)
}});
var $container=$li.closest('.container');
var containerWidth=$container.outerWidth();
var containerLeft=$container.offset().left;
var liLeft=$li.offset().left;
var leftAdjustment=-(liLeft - containerLeft);
$mega.css({
'position': 'absolute',
'top': $li.outerHeight() + 'px',
'left': leftAdjustment + 'px',
'width': containerWidth + 'px',
'opacity': '0',
'transform': 'translateY(20px)',
'display': 'block'
});
$mega[0].offsetHeight;
$mega.css({
'opacity': '1',
'transform': 'translateY(0)'
})
});
$li.on('mouseleave', function(){
hoverTimeout=setTimeout(function(){
$mega.css({
'opacity': '0',
'transform': 'translateY(20px)'
});
setTimeout(function(){
$mega.hide()
}, 400)
}, 800)
});
$mega.on('mouseenter', function(){
clearTimeout(hoverTimeout)
});
$a.on('mouseenter', function(){
clearTimeout(hoverTimeout)
})
}})
});
const totalSlides=3;
const progressBar=document.getElementById('swiperProgress');
function updateProgress(index){
const pct=((index + 1) / totalSlides) * 100;
progressBar.style.width=pct + '%'
}
const swiper=new Swiper('#aboutSwiper',{
slidesPerView: 1,
spaceBetween: 0,
speed: 700,
loop: !0,
effect: 'slide',
grabCursor: !0,
navigation: {
prevEl: '#prevBtn',
nextEl: '#nextBtn',
},
pagination: {
el: '#swiperPag',
clickable: !0,
bulletClass: 'swiper-pagination-bullet',
bulletActiveClass: 'swiper-pagination-bullet-active',
},
on: {
init: function(){
updateProgress(this.activeIndex)
},
slideChange: function(){
updateProgress(this.activeIndex);
document.querySelectorAll('.swiper-slide:not(.swiper-slide-active) .slide-anim-left').forEach(el=> {
el.style.opacity='0';
el.style.transform='translateX(-50px)'
}
);
document.querySelectorAll('.swiper-slide:not(.swiper-slide-active) .slide-anim-right').forEach(el=> {
el.style.opacity='0';
el.style.transform='translateX(50px)'
}
);
const active=this.slides[this.activeIndex];
if(active){
active.querySelectorAll('.slide-anim-left, .slide-anim-right').forEach(el=> {
el.style.removeProperty('opacity');
el.style.removeProperty('transform')
}
)
}}
}});
const observer=new IntersectionObserver((entries)=> {
entries.forEach(entry=> {
if(entry.isIntersecting){
entry.target.classList.add('visible');
observer.unobserve(entry.target)
}}
)
}
,{
threshold: 0.1
});
document.querySelectorAll('.reveal-section').forEach(el=> observer.observe(el));
window.addEventListener('scroll', ()=> {
const nav=document.querySelector('.navbar-custom');
const btn=document.getElementById('backToTop');
if(window.scrollY > 80){
nav.classList.add('scrolled')
}else{
nav.classList.remove('scrolled')
}
if(window.scrollY > 600){
btn.classList.add('visible')
}else{
btn.classList.remove('visible')
}}
);
document.getElementById('backToTop').addEventListener('click', ()=> {
window.scrollTo({
top: 0,
behavior: 'smooth'
})
}
);
const revealElements=document.querySelectorAll('.reveal');
const revealObserver=new IntersectionObserver((entries)=> {
entries.forEach(entry=> {
if(entry.isIntersecting){
entry.target.classList.add('active')
}}
)
}
,{
threshold: 0.12
});
revealElements.forEach(el=> revealObserver.observe(el));
new Swiper('.tourSwiper',{
slidesPerView: 1,
spaceBetween: 24,
loop: !0,
pagination: {
el: '.tour-pagination',
clickable: !0
},
navigation: {
nextEl: '.tour-next',
prevEl: '.tour-prev'
},
breakpoints: {
640: {
slidesPerView: 2
},
1024: {
slidesPerView: 3
},
}});
new Swiper('.testimonialSwiper',{
slidesPerView: 1,
spaceBetween: 24,
loop: !0,
autoplay: {
delay: 5000,
disableOnInteraction: !1
},
pagination: {
el: '.testimonial-pagination',
clickable: !0
},
breakpoints: {
768: {
slidesPerView: 2
},
1024: {
slidesPerView: 3
},
}});
new Swiper('.blogSwiper',{
slidesPerView: 1,
spaceBetween: 24,
loop: !0,
pagination: {
el: '.blog-pagination',
clickable: !0
},
navigation: {
nextEl: '.blog-next',
prevEl: '.blog-prev'
},
breakpoints: {
640: {
slidesPerView: 2
},
1024: {
slidesPerView: 3
},
}});
$('[data-fancybox="gallery"]').fancybox({
buttons: ['zoom', 'slideShow', 'fullScreen', 'thumbs', 'close'],
loop: !0,
transitionEffect: 'slide',
thumbs: {
autoStart: !1,
axis: 'x'
}});
const counters=document.querySelectorAll('.hero-stat-item h3');
const animateCounter=(el)=> {
const text=el.textContent;
const match=text.match(/(\d[\d,]*)/);
if(!match)
return;
const target=parseInt(match[0].replace(/,/g, ''));
const suffix=text.replace(match[0], '').trim();
const prefix=text.indexOf(match[0]) > 0 ? text.substring(0, text.indexOf(match[0])):'';
let current=0;
const increment=target / 60;
const timer=setInterval(()=> {
current +=increment;
if(current >=target){
el.textContent=text;
clearInterval(timer)
}else{
el.textContent=prefix + Math.floor(current).toLocaleString() + suffix
}}
, 25)
}
;
const counterObserver=new IntersectionObserver((entries)=> {
entries.forEach(entry=> {
if(entry.isIntersecting){
animateCounter(entry.target);
counterObserver.unobserve(entry.target)
}}
)
}
,{
threshold: 0.5
});
counters.forEach(c=> counterObserver.observe(c));
document.querySelectorAll('a[href^="#"]').forEach(anchor=> {
anchor.addEventListener('click', function(e){
const target=document.querySelector(this.getAttribute('href'));
if(target){
e.preventDefault();
target.scrollIntoView({
behavior: 'smooth',
block: 'start'
});
const collapse=document.querySelector('.navbar-collapse');
if(collapse.classList.contains('show')){
new bootstrap.Collapse(collapse).hide()
}}
})
}
)
}
)(jQuery);
document.querySelectorAll('.altitude').forEach(el=> {
const meters=parseFloat(el.dataset.meters);
const feet=Math.round(meters * 3.28084);
const span=el.querySelector('.alt-text');
let isHovered = !1;
el.addEventListener('mouseenter', ()=> {
isHovered = !0;
setTimeout(()=> {
if(isHovered)
span.textContent=`${feet.toLocaleString()} fasl`
}
, 200)
}
);
el.addEventListener('mouseleave', ()=> {
isHovered = !1;
setTimeout(()=> {
if(!isHovered)
span.textContent=`${meters.toLocaleString()} msnm`
}
, 200)
}
)
}
);
document.addEventListener('DOMContentLiteSpeedLoaded', function(){
document.querySelectorAll('.toggle-details').forEach(function(link){
link.addEventListener('click', function(e){
e.preventDefault();
const card=this.closest('.detalles_card');
const collapsible=card.querySelector('.details-collapsible');
const text=this.querySelector('.toggle-text');
collapsible.classList.toggle('open');
this.classList.toggle('active');
text.textContent=collapsible.classList.contains('open') ? 'Less details':'More details'
})
})
});
(()=> {
"use strict";
class elementorHelloThemeHandler {
constructor(){
this.initSettings(),
this.initElements(),
this.bindEvents()
}
initSettings(){
this.settings={
selectors: {
header: "header.site-header",
footer: "footer.site-footer",
menuToggle: ".site-header .site-navigation-toggle",
menuToggleHolder: ".site-header .site-navigation-toggle-holder",
dropdownMenu: ".site-header .site-navigation-dropdown"
}}
}
initElements(){
this.elements={
$window: jQuery(window),
$document: jQuery(document),
$header: jQuery(this.settings.selectors.header),
$footer: jQuery(this.settings.selectors.footer),
$menuToggle: jQuery(this.settings.selectors.menuToggle),
$menuToggleHolder: jQuery(this.settings.selectors.menuToggleHolder),
$dropdownMenu: jQuery(this.settings.selectors.dropdownMenu)
}}
bindEvents(){
this.elements.$menuToggle.on("click",(()=> this.handleMenuToggle())).on("keyup", (e=> {
13!==e.keyCode&&32!==e.keyCode||e.currentTarget.click()
}
)),
this.elements.$dropdownMenu.on("click", ".menu-item-has-children > a", this.handleMenuChildren)
}
closeMenuItems(){
this.elements.$menuToggleHolder.removeClass("elementor-active"),
this.elements.$window.off("resize",(()=> this.closeMenuItems()))
}
handleMenuToggle(){
const e = !this.elements.$menuToggleHolder.hasClass("elementor-active");
this.elements.$menuToggle.attr("aria-expanded", e),
this.elements.$dropdownMenu.attr("aria-hidden", !e),
this.elements.$menuToggleHolder.toggleClass("elementor-active", e),
this.elements.$dropdownMenu.find(".elementor-active").removeClass("elementor-active"),
e ? this.elements.$window.on("resize",(()=> this.closeMenuItems())):this.elements.$window.off("resize",(()=> this.closeMenuItems()))
}
handleMenuChildren(e){
const t=jQuery(e.currentTarget).parent("li");
t.hasClass("elementor-active") ? t.removeClass("elementor-active"):t.addClass("elementor-active")
}}
jQuery((()=> {
new elementorHelloThemeHandler
}
))
}
)();
;