hubs-travel-js 0.0.67 → 0.0.68
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{function oe(e){let o=document.querySelectorAll(".room-price-data"),t=Array.from(o).map(n=>JSON.parse(n.textContent));return e?t.filter(n=>n.editionSlug===e):t}function z(e,o){return!e||!o?0:Math.floor((o-e)/(1e3*60*60*24*30))}function y(e,o){return new Intl.NumberFormat("de-DE",{style:"currency",currency:o,currencyDisplay:"code"}).format(e)}function I(e,o=null){return isNaN(parseFloat(e))?o:parseFloat(e)}function ne(){document.querySelectorAll("[data-trigger]").forEach(t=>{t.addEventListener("change",()=>o(t)),o(t)});function o(t){let n=t.getAttribute("data-trigger"),s=t.value;document.querySelectorAll(`[data-condition-trigger="${n}"]`).forEach(d=>{let u=d.getAttribute("data-condition-value")===s,l=d.matches("input, select, textarea")?d:d.querySelector("input, select, textarea");d.style.display=u?"block":"none",l&&(l.required=u,u||(l.value=""))})}}function re(){document.querySelectorAll("[data-custom-dropdown]").forEach(e=>{let o=document.createElement("input");o.type="hidden",o.name=e.dataset.name||"custom-dropdown",o.setAttribute("required",e.dataset.required==="true"||!1),o.value="",e.appendChild(o);let t=e.querySelector(".dropdown-selected-value");e.querySelectorAll(".dropdown-item").forEach(s=>{s.addEventListener("click",i=>{i.preventDefault();let d=s.dataset.value,u=s.cloneNode(!0);u.style.padding=0,t.innerHTML="",t.appendChild(u),o.value=d})})})}function se(e,o,t=30){let n=document.querySelector(e),s=document.querySelector(o),i=new DateRangePicker(n,{format:"dd. MM yyyy"}),d=t;return i.setMinimumDays=u=>{d=u},i.validateDateRange=()=>{let[u,l]=i.getDates();u&&l&&Math.floor((l-u)/864e5)<d?(s.setCustomValidity(`You need to choose a minimum of ${d} days.`),i.setDates(u,new Date(u.getTime()+d*24*60*60*1e3))):s.setCustomValidity(""),s.reportValidity()},n.addEventListener("changeDate",i.validateDateRange),{rangepicker:i,datesInput:n,startDateField:s}}function ie(){let e=document.querySelectorAll(".form-step"),o=document.querySelectorAll(".form-wizard-step .form-wizard-step-progress"),t=0;function n(l){e.forEach((r,a)=>{r.style.display=a===l?"block":"none"}),o.forEach((r,a)=>{a<l||a===l?r.classList.add("active"):r.classList.remove("active")})}function s(){let l=e[t].querySelectorAll("input, select, textarea"),r=[];return l.forEach(a=>{let p=a.type==="hidden"||a.offsetParent===null;if(a.required&&(!a.value||a.value.trim()==="")){let S=a.dataset.name||a.name||a.placeholder||"Unnamed field";r.push(`${S} is required.`)}if(!p&&a.value&&!a.checkValidity()){let h=a.name||a.placeholder||"Unnamed field";r.push(`${h} is invalid.`)}}),r}function i(l,r){let a=document.querySelector(l);if(!a)return;a.innerHTML="";let p=document.createElement("ul");r.forEach(h=>{let S=document.createElement("li");S.textContent=h,p.appendChild(S)}),a.appendChild(p)}function d(l){let r=document.querySelector(l);r&&(r.innerHTML="")}document.querySelectorAll(".form-next-step-btn").forEach(l=>{l.addEventListener("click",()=>{if(l.getAttribute("disabled")==="true")return;let r=s(),a=`#error-list-step-${t}`;d(a),r.length==0?(t=Math.min(t+1,e.length-1),t===e.length-1&&u(),n(t)):i(a,r)})});function u(){document.querySelectorAll('[id^="review-"]').forEach(r=>{let a=r.dataset.fieldname;try{let p=document.querySelector(`[name="${a}"]`).value;r.innerText=p}catch{}})}document.querySelectorAll(".form-previous-step-btn").forEach(l=>{l.addEventListener("click",()=>{t=Math.max(t-1,0),n(t)})}),n(t)}function ce(){document.getElementById("close-button").addEventListener("click",function(){let e=document.referrer,o=window.location.hostname,t=null;try{t=e?new URL(e).hostname:null}catch{t=null}window.history.length>1&&t===o?window.history.back():window.location.href="/"})}var f="EUR",_=null;function ae(e){let o=document.querySelectorAll(".edition-data");return Array.from(o).map(n=>JSON.parse(n.textContent)).find(n=>n.editionSlug===e)||null}function pe(e){let o=document.querySelectorAll(".destination-data");return Array.from(o).map(n=>JSON.parse(n.textContent)).find(n=>n.destinationSlug===e)||null}document.addEventListener("DOMContentLoaded",function(){ce(),ne(),ie(),re(),_=se("#dates-start-end-group","#Start-Date"),ye(),he(),ge(),fe(),Se()});function fe(){let e=new URLSearchParams(window.location.search),o=e.get("destination"),t=e.get("edition"),n=e.get("room"),s=e.get("guests");o&&J("#destination-dropdown",o,"data-destinationslug");let i=t&&J("#edition-dropdown",t,"data-editionslug");if(n&&J("#room-dropdown",n,"data-roomslug"),s){let d=document.getElementById("Guests");d&&(d.value=s)}if(i){let d=i.dataset.startdate,u=i.dataset.enddate,l=i.dataset.editionslug||"",r=_.rangepicker;r.setOptions({minDate:d,maxDate:u}),r.setDates(d,u),j(l)}}function ye(){let e=document.querySelector("#destination-dropdown"),o=document.querySelector("#edition-dropdown"),t=o.querySelector(".dropdown-selected-value"),n=t.innerHTML,s=document.querySelector("#room-dropdown"),i=s.querySelector(".dropdown-selected-value"),d=e.querySelectorAll(".dropdown-item"),u=o.querySelectorAll(".dropdown-item"),l=s.querySelectorAll(".dropdown-item");function r(a,p){t.setAttribute("disabled",a===""?"true":"false"),i.setAttribute("disabled",a===""?"true":"false"),t.innerHTML=n,i.innerHTML=n,f=p,[...u,...l].forEach(h=>{let S=h.dataset.destinationslug===a;h.style.display=S?"flex":"none"}),j("")}r("",f),d.forEach(a=>{a.addEventListener("click",function(){r(this.dataset.destinationslug,this.dataset.currency)})})}function J(e,o,t){let n=document.querySelectorAll(`${e} .dropdown-item`),s=n&&Array.from(n).find(i=>i.getAttribute(t)===o);return s&&s.click(),s}function he(){let o=document.querySelector("#edition-dropdown").querySelectorAll(".dropdown-item"),t=document.querySelector("#dates-start-end-group");function n(s,i,d){let u=t.rangepicker;u.setOptions({minDate:s,maxDate:i}),u.setDates(s,i),j(d)}o.forEach(s=>{s.addEventListener("click",function(){let i=this.dataset.editionslug||"";console.log("this.dataset.editionslug",this.dataset.editionslug),n(this.dataset.startdate,this.dataset.enddate,i)})})}function j(e){let o=document.querySelector(".additional-booking-info"),t=document.querySelector(".additional-booking-info-text");if(console.log("additionalBookingInfoContainer",o),console.log("additionalBookingInfoText",t),console.log("editionSlug",e),!o||!t)return;if(!e){o.style.display="none";return}let n=ae(e);console.log("editionData",n);let s=n?.additionalBookingInfo||"";console.log("additionalInfo",s),s&&s.trim()!==""?(t.textContent=s,o.style.display=""):o.style.display="none"}function ge(){document.querySelector("#dates-start-end-group").addEventListener("changeDate",()=>{L(),de()}),document.querySelector("#room-dropdown").querySelectorAll(".dropdown-item").forEach(d=>{d.addEventListener("click",()=>{L();let u=d.getAttribute("data-allow-weekly-booking"),l=_.rangepicker;l.setMinimumDays(u==="Enabled"?7:30),l.validateDateRange()})}),document.querySelector("#Guests").addEventListener("change",()=>{L()});let s=document.querySelector("#pet-travel-checkbox"),i=document.querySelector("#pet-count-input");s&&s.addEventListener("change",()=>{L()}),i&&(i.addEventListener("input",()=>{L()}),i.addEventListener("change",()=>{L()}))}function Se(){de(),L()}function de(){let o=document.querySelector("#dates-start-end-group").rangepicker,t=document.querySelector(".discount-info-blue"),n=document.querySelector(".discount-info-green"),[s,i]=o.getDates(),d=z(s,i);!s||!i||d<=2?(t.style.display="flex",n.style.display="none"):(t.style.display="none",n.style.display="flex")}function L(){let e=document.querySelectorAll(".price-info-card"),t=document.querySelector("#dates-start-end-group").rangepicker,n=document.querySelector("#destination-dropdown .dropdown-selected-value .dropdown-item"),s=document.querySelector("#edition-dropdown .dropdown-selected-value .dropdown-item"),i=document.querySelector("#room-dropdown .dropdown-selected-value .dropdown-item"),d=document.querySelector("#Guests"),u=n?n.dataset.destinationslug:"",l=s?s.dataset.editionslug:"",r=i?i.dataset.roomslug:"",a=i?i.getAttribute("data-allow-weekly-booking")==="Enabled":!1,[p,h]=t.getDates(),S=d?parseInt(d.value):0;if(u&&l&&r&&p&&h&&S>0){let w=pe(u),D=document.querySelector("#pet-travel-section");if(D)if(w&&w.allowPets==="true")D.style.display="flex";else{D.style.display="none";let q=document.querySelector("#pet-travel-checkbox"),B=document.querySelector("#pet-count-input");q&&(q.checked=!1),B&&(B.value="1")}let P=oe();e.forEach(q=>{q.style.display="flex",we(q,P,l,r,p,h,S,a)});let $={day:"numeric",month:"short",year:"numeric"},C=p.toLocaleDateString("en-GB",{day:"numeric",month:"short"}).replace(",",""),V=h.toLocaleDateString("en-GB",$).replace(",","");document.querySelectorAll(".total-dates").forEach(q=>q.innerHTML=`${C} - ${V}`)}else{e.forEach(D=>D.style.display="none");let w=document.querySelector("#pet-travel-section");w&&(w.style.display="none")}}function we(e,o,t,n,s,i,d,u){function l(c){return c===1?"st":c===2?"nd":c===3?"rd":"th"}function r(c,m){c&&(c.style.display=m)}function a(c,m,g){!c||!m||(m.style.pointerEvents=g?"auto":"none",m.style.backgroundColor=g?"var(--_colors---primary)":"var(--_colors---light-silver)",m.style.opacity=g?1:.3,c.setAttribute("disabled",!g))}function p(){q.innerText="No room price found for the selected season or room.",r(C,"none"),r(w,"none"),r(D,"none"),r($?.parentElement,"none"),r(B,"none"),r(P,"none"),a(F,Q,!1),Y.forEach(c=>r(c,"none")),G&&(G.value=0)}function h(){r(C,"block"),r(w,"block"),r($?.parentElement,"flex"),r(B,"block"),r(P,"block"),a(F,Q,!0),Y.forEach(c=>r(c,"block"))}let S=z(s,i),w=e.querySelector(".room-price"),D=e.querySelector(".room-price-discount"),P=e.querySelector(".room-price-month-desc"),$=e.querySelector(".total-guests"),C=e.querySelector(".total-totalprice"),V=C.firstElementChild,q=e.querySelector(".room-price-breakdown"),B=e.querySelector(".total-dates"),F=document.querySelector("#form-next-step-btn-step-1"),Q=F?F.querySelector("a"):null,M=o.find(c=>c.editionSlug===t&&c.roomSlug===n),Y=e.querySelectorAll(".price-info-card-title"),G=document.querySelector('[name="Total-Price"]');if(!M){p();return}h();let A=ae(t),H=I(M.basePriceWeek),O=M.basePriceMonth,le=M.discountMonth2,ue=M.discountMonth3,k=0,x=[],T=Math.round((i-s)/(1e3*60*60*24));if(S<1&&u&&H){r(D,"none"),w.innerText=`${y(H,f)}`,P.innerText="per week";let m=H/7*T;x.push({text:`${T} days: ${y(m,f)}`}),k=m;let g=I(M.surcharge2ndPerson,0);if(d===2&&g>0){let v=g/30*T;v>0&&(x.push({text:`2nd person surcharge: ${y(v,f)}`}),k+=v)}}else if(S>=1){let c=T,m=1,g=0,Z=0,v=0,ee=I(M.surcharge2ndPerson,0),te=d===2&&ee>0;for(;c>0;){let E=0;m===1?E=0:m===2?E=le:m>=3&&(E=ue),g=E;let R=c>=30?30:c;Z=R;let W=O*(1-E/100)/30*R;if(k+=W,x.push({text:R===30?`Month ${m}: ${y(W,f)}`:`+ ${c} days: ${y(W,f)}`,discount:E,month:m}),te){let me=ee*(1-E/100)/30*R;v+=me}c-=R,m++}let b=x[x.length-1];if(b&&b.discount!==void 0&&b.discount>0){let E=b.month<=3?`${b.month}${l(b.month)} month`:"from 3rd month";D.innerText=`${b.discount.toFixed(1)}% discount - ${E}`,r(D,"flex"),w.innerText=`${y(O*(1-b.discount/100),f)}`,P.innerText=E}else r(D,"none"),w.innerText=`${y(O,f)}`,P.innerText="1st month";te&&v>0&&(x.push({text:`2nd person surcharge: ${y(v,f)}`}),k+=v)}let U=0;if(A){if(T>=1&&A.taxFirstMonth){let c=I(A.taxFirstMonth,0);c>0&&(U+=c,x.push({text:`Tax (1st month): ${y(c,f)}`}))}if(T>30&&A.taxSecondMonth){let c=I(A.taxSecondMonth,0);c>0&&(U+=c,x.push({text:`Tax (2nd month): ${y(c,f)}`}))}}k+=U;let N=0,K=document.querySelector("#pet-travel-checkbox"),X=document.querySelector("#pet-count-input");if(K&&K.checked&&X&&A){let c=parseInt(X.value)||0,m=I(A.petPricePerMonth,0);if(c>0&&m>0){let g=T/30;N=m*g*c,N>0&&x.push({text:`Pet${c>1?"s":""} (${c} \xD7 ${g.toFixed(1)} month${g!==1?"s":""}): ${y(N,f)}`})}}k+=N,q.innerHTML=x.map(c=>c.text).join("<br>"),$.innerText=`${d} x Person`,V.innerText=`${y(k,f)}`,G&&(G.value=`${y(k,f)}`)}})();
|
|
1
|
+
(()=>{function oe(e){let o=document.querySelectorAll(".room-price-data"),t=Array.from(o).map(r=>JSON.parse(r.textContent));return e?t.filter(r=>r.editionSlug===e):t}function z(e,o){return!e||!o?0:Math.floor((o-e)/(1e3*60*60*24*30))}function y(e,o){return new Intl.NumberFormat("de-DE",{style:"currency",currency:o,currencyDisplay:"code"}).format(e)}function I(e,o=null){return isNaN(parseFloat(e))?o:parseFloat(e)}function ne(){document.querySelectorAll("[data-trigger]").forEach(t=>{t.addEventListener("change",()=>o(t)),o(t)});function o(t){let r=t.getAttribute("data-trigger"),s=t.value;document.querySelectorAll(`[data-condition-trigger="${r}"]`).forEach(d=>{let u=d.getAttribute("data-condition-value")===s,l=d.matches("input, select, textarea")?d:d.querySelector("input, select, textarea");d.style.display=u?"block":"none",l&&(l.required=u,u||(l.value=""))})}}function re(){document.querySelectorAll("[data-custom-dropdown]").forEach(e=>{let o=document.createElement("input");o.type="hidden",o.name=e.dataset.name||"custom-dropdown",o.setAttribute("required",e.dataset.required==="true"||!1),o.value="",e.appendChild(o);let t=e.querySelector(".dropdown-selected-value");e.querySelectorAll(".dropdown-item").forEach(s=>{s.addEventListener("click",i=>{i.preventDefault();let d=s.dataset.value,u=s.cloneNode(!0);u.style.padding=0,t.innerHTML="",t.appendChild(u),o.value=d})})})}function se(e,o,t=30){let r=document.querySelector(e),s=document.querySelector(o),i=new DateRangePicker(r,{format:"dd. MM yyyy"}),d=t;return i.setMinimumDays=u=>{d=u},i.validateDateRange=()=>{let[u,l]=i.getDates();u&&l&&Math.floor((l-u)/864e5)<d?(s.setCustomValidity(`You need to choose a minimum of ${d} days.`),i.setDates(u,new Date(u.getTime()+d*24*60*60*1e3))):s.setCustomValidity(""),s.reportValidity()},r.addEventListener("changeDate",i.validateDateRange),{rangepicker:i,datesInput:r,startDateField:s}}function ie(){let e=document.querySelectorAll(".form-step"),o=document.querySelectorAll(".form-wizard-step .form-wizard-step-progress"),t=0;function r(l){e.forEach((n,a)=>{n.style.display=a===l?"block":"none"}),o.forEach((n,a)=>{a<l||a===l?n.classList.add("active"):n.classList.remove("active")})}function s(){let l=e[t].querySelectorAll("input, select, textarea"),n=[];return l.forEach(a=>{let p=a.type==="hidden"||a.offsetParent===null;if(a.required&&(!a.value||a.value.trim()==="")){let S=a.dataset.name||a.name||a.placeholder||"Unnamed field";n.push(`${S} is required.`)}if(!p&&a.value&&!a.checkValidity()){let h=a.name||a.placeholder||"Unnamed field";n.push(`${h} is invalid.`)}}),n}function i(l,n){let a=document.querySelector(l);if(!a)return;a.innerHTML="";let p=document.createElement("ul");n.forEach(h=>{let S=document.createElement("li");S.textContent=h,p.appendChild(S)}),a.appendChild(p)}function d(l){let n=document.querySelector(l);n&&(n.innerHTML="")}document.querySelectorAll(".form-next-step-btn").forEach(l=>{l.addEventListener("click",()=>{if(l.getAttribute("disabled")==="true")return;let n=s(),a=`#error-list-step-${t}`;d(a),n.length==0?(t=Math.min(t+1,e.length-1),t===e.length-1&&u(),r(t)):i(a,n)})});function u(){document.querySelectorAll('[id^="review-"]').forEach(n=>{let a=n.dataset.fieldname;try{let p=document.querySelector(`[name="${a}"]`).value;n.innerText=p}catch{}})}document.querySelectorAll(".form-previous-step-btn").forEach(l=>{l.addEventListener("click",()=>{t=Math.max(t-1,0),r(t)})}),r(t)}function ce(){document.getElementById("close-button").addEventListener("click",function(){let e=document.referrer,o=window.location.hostname,t=null;try{t=e?new URL(e).hostname:null}catch{t=null}window.history.length>1&&t===o?window.history.back():window.location.href="/"})}var f="EUR",_=null;function ae(e){let o=document.querySelectorAll(".edition-data");return Array.from(o).map(r=>JSON.parse(r.textContent)).find(r=>r.editionSlug===e)||null}function pe(e){let o=document.querySelectorAll(".destination-data");return Array.from(o).map(r=>JSON.parse(r.textContent)).find(r=>r.destinationSlug===e)||null}document.addEventListener("DOMContentLoaded",function(){ce(),ne(),ie(),re(),_=se("#dates-start-end-group","#Start-Date"),ye(),he(),ge(),fe(),Se()});function fe(){let e=new URLSearchParams(window.location.search),o=e.get("destination"),t=e.get("edition"),r=e.get("room"),s=e.get("guests");o&&J("#destination-dropdown",o,"data-destinationslug");let i=t&&J("#edition-dropdown",t,"data-editionslug");if(r&&J("#room-dropdown",r,"data-roomslug"),s){let d=document.getElementById("Guests");d&&(d.value=s)}if(i){let d=i.dataset.startdate,u=i.dataset.enddate,l=i.dataset.editionslug||"",n=_.rangepicker;n.setOptions({minDate:d,maxDate:u}),n.setDates(d,u),j(l)}}function ye(){let e=document.querySelector("#destination-dropdown"),o=document.querySelector("#edition-dropdown"),t=o.querySelector(".dropdown-selected-value"),r=t.innerHTML,s=document.querySelector("#room-dropdown"),i=s.querySelector(".dropdown-selected-value"),d=e.querySelectorAll(".dropdown-item"),u=o.querySelectorAll(".dropdown-item"),l=s.querySelectorAll(".dropdown-item");function n(a,p){t.setAttribute("disabled",a===""?"true":"false"),i.setAttribute("disabled",a===""?"true":"false"),t.innerHTML=r,i.innerHTML=r,f=p,[...u,...l].forEach(h=>{let S=h.dataset.destinationslug===a;h.style.display=S?"flex":"none"}),j("")}n("",f),d.forEach(a=>{a.addEventListener("click",function(){n(this.dataset.destinationslug,this.dataset.currency)})})}function J(e,o,t){let r=document.querySelectorAll(`${e} .dropdown-item`),s=r&&Array.from(r).find(i=>i.getAttribute(t)===o);return s&&s.click(),s}function he(){let o=document.querySelector("#edition-dropdown").querySelectorAll(".dropdown-item"),t=document.querySelector("#dates-start-end-group");function r(s,i,d){let u=t.rangepicker;u.setOptions({minDate:s,maxDate:i}),u.setDates(s,i),j(d)}o.forEach(s=>{s.addEventListener("click",function(){let i=this.dataset.editionslug||"";r(this.dataset.startdate,this.dataset.enddate,i)})})}function j(e){let o=document.querySelector(".additional-booking-info"),t=document.querySelector(".additional-booking-info-text");if(!o||!t)return;if(!e){o.style.display="none";return}let s=ae(e)?.additionalBookingInfo||"";s&&s.trim()!==""?(t.textContent=s,o.style.display=""):o.style.display="none"}function ge(){document.querySelector("#dates-start-end-group").addEventListener("changeDate",()=>{L(),de()}),document.querySelector("#room-dropdown").querySelectorAll(".dropdown-item").forEach(d=>{d.addEventListener("click",()=>{L();let u=d.getAttribute("data-allow-weekly-booking"),l=_.rangepicker;l.setMinimumDays(u==="Enabled"?7:30),l.validateDateRange()})}),document.querySelector("#Guests").addEventListener("change",()=>{L()});let s=document.querySelector("#pet-travel-checkbox"),i=document.querySelector("#pet-count-input");s&&s.addEventListener("change",()=>{L()}),i&&(i.addEventListener("input",()=>{L()}),i.addEventListener("change",()=>{L()}))}function Se(){de(),L()}function de(){let o=document.querySelector("#dates-start-end-group").rangepicker,t=document.querySelector(".discount-info-blue"),r=document.querySelector(".discount-info-green"),[s,i]=o.getDates(),d=z(s,i);!s||!i||d<=2?(t.style.display="flex",r.style.display="none"):(t.style.display="none",r.style.display="flex")}function L(){let e=document.querySelectorAll(".price-info-card"),t=document.querySelector("#dates-start-end-group").rangepicker,r=document.querySelector("#destination-dropdown .dropdown-selected-value .dropdown-item"),s=document.querySelector("#edition-dropdown .dropdown-selected-value .dropdown-item"),i=document.querySelector("#room-dropdown .dropdown-selected-value .dropdown-item"),d=document.querySelector("#Guests"),u=r?r.dataset.destinationslug:"",l=s?s.dataset.editionslug:"",n=i?i.dataset.roomslug:"",a=i?i.getAttribute("data-allow-weekly-booking")==="Enabled":!1,[p,h]=t.getDates(),S=d?parseInt(d.value):0;if(u&&l&&n&&p&&h&&S>0){let w=pe(u),D=document.querySelector("#pet-travel-section");if(D)if(w&&w.allowPets==="true")D.style.display="flex";else{D.style.display="none";let q=document.querySelector("#pet-travel-checkbox"),R=document.querySelector("#pet-count-input");q&&(q.checked=!1),R&&(R.value="1")}let P=oe();e.forEach(q=>{q.style.display="flex",we(q,P,l,n,p,h,S,a)});let $={day:"numeric",month:"short",year:"numeric"},C=p.toLocaleDateString("en-GB",{day:"numeric",month:"short"}).replace(",",""),V=h.toLocaleDateString("en-GB",$).replace(",","");document.querySelectorAll(".total-dates").forEach(q=>q.innerHTML=`${C} - ${V}`)}else{e.forEach(D=>D.style.display="none");let w=document.querySelector("#pet-travel-section");w&&(w.style.display="none")}}function we(e,o,t,r,s,i,d,u){function l(c){return c===1?"st":c===2?"nd":c===3?"rd":"th"}function n(c,m){c&&(c.style.display=m)}function a(c,m,g){!c||!m||(m.style.pointerEvents=g?"auto":"none",m.style.backgroundColor=g?"var(--_colors---primary)":"var(--_colors---light-silver)",m.style.opacity=g?1:.3,c.setAttribute("disabled",!g))}function p(){q.innerText="No room price found for the selected season or room.",n(C,"none"),n(w,"none"),n(D,"none"),n($?.parentElement,"none"),n(R,"none"),n(P,"none"),a(F,Q,!1),Y.forEach(c=>n(c,"none")),G&&(G.value=0)}function h(){n(C,"block"),n(w,"block"),n($?.parentElement,"flex"),n(R,"block"),n(P,"block"),a(F,Q,!0),Y.forEach(c=>n(c,"block"))}let S=z(s,i),w=e.querySelector(".room-price"),D=e.querySelector(".room-price-discount"),P=e.querySelector(".room-price-month-desc"),$=e.querySelector(".total-guests"),C=e.querySelector(".total-totalprice"),V=C.firstElementChild,q=e.querySelector(".room-price-breakdown"),R=e.querySelector(".total-dates"),F=document.querySelector("#form-next-step-btn-step-1"),Q=F?F.querySelector("a"):null,M=o.find(c=>c.editionSlug===t&&c.roomSlug===r),Y=e.querySelectorAll(".price-info-card-title"),G=document.querySelector('[name="Total-Price"]');if(!M){p();return}h();let A=ae(t),H=I(M.basePriceWeek),O=M.basePriceMonth,le=M.discountMonth2,ue=M.discountMonth3,k=0,x=[],T=Math.round((i-s)/(1e3*60*60*24));if(S<1&&u&&H){n(D,"none"),w.innerText=`${y(H,f)}`,P.innerText="per week";let m=H/7*T;x.push({text:`${T} days: ${y(m,f)}`}),k=m;let g=I(M.surcharge2ndPerson,0);if(d===2&&g>0){let v=g/30*T;v>0&&(x.push({text:`2nd person surcharge: ${y(v,f)}`}),k+=v)}}else if(S>=1){let c=T,m=1,g=0,Z=0,v=0,ee=I(M.surcharge2ndPerson,0),te=d===2&&ee>0;for(;c>0;){let E=0;m===1?E=0:m===2?E=le:m>=3&&(E=ue),g=E;let B=c>=30?30:c;Z=B;let W=O*(1-E/100)/30*B;if(k+=W,x.push({text:B===30?`Month ${m}: ${y(W,f)}`:`+ ${c} days: ${y(W,f)}`,discount:E,month:m}),te){let me=ee*(1-E/100)/30*B;v+=me}c-=B,m++}let b=x[x.length-1];if(b&&b.discount!==void 0&&b.discount>0){let E=b.month<=3?`${b.month}${l(b.month)} month`:"from 3rd month";D.innerText=`${b.discount.toFixed(1)}% discount - ${E}`,n(D,"flex"),w.innerText=`${y(O*(1-b.discount/100),f)}`,P.innerText=E}else n(D,"none"),w.innerText=`${y(O,f)}`,P.innerText="1st month";te&&v>0&&(x.push({text:`2nd person surcharge: ${y(v,f)}`}),k+=v)}let U=0;if(A){if(T>=1&&A.taxFirstMonth){let c=I(A.taxFirstMonth,0);c>0&&(U+=c,x.push({text:`Tax (1st month): ${y(c,f)}`}))}if(T>30&&A.taxSecondMonth){let c=I(A.taxSecondMonth,0);c>0&&(U+=c,x.push({text:`Tax (2nd month): ${y(c,f)}`}))}}k+=U;let N=0,K=document.querySelector("#pet-travel-checkbox"),X=document.querySelector("#pet-count-input");if(K&&K.checked&&X&&A){let c=parseInt(X.value)||0,m=I(A.petPricePerMonth,0);if(c>0&&m>0){let g=T/30;N=m*g*c,N>0&&x.push({text:`Pet${c>1?"s":""} (${c} \xD7 ${g.toFixed(1)} month${g!==1?"s":""}): ${y(N,f)}`})}}k+=N,q.innerHTML=x.map(c=>c.text).join("<br>"),$.innerText=`${d} x Person`,V.innerText=`${y(k,f)}`,G&&(G.value=`${y(k,f)}`)}})();
|