hubs-travel-js 0.0.56 → 0.0.57
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 te(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 L(e,o=null){return isNaN(parseFloat(e))?o:parseFloat(e)}function oe(){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(a=>{let u=a.getAttribute("data-condition-value")===s,l=a.matches("input, select, textarea")?a:a.querySelector("input, select, textarea");a.style.display=u?"block":"none",l&&(l.required=u,u||(l.value=""))})}}function ne(){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",c=>{c.preventDefault();let a=s.dataset.value,u=s.cloneNode(!0);u.style.padding=0,t.innerHTML="",t.appendChild(u),o.value=a})})})}function re(e,o,t=30){let n=document.querySelector(e),s=document.querySelector(o),c=new DateRangePicker(n,{format:"dd. MM yyyy"}),a=t;return c.setMinimumDays=u=>{a=u},c.validateDateRange=()=>{let[u,l]=c.getDates();u&&l&&Math.floor((l-u)/864e5)<a?(s.setCustomValidity(`You need to choose a minimum of ${a} days.`),c.setDates(u,new Date(u.getTime()+a*24*60*60*1e3))):s.setCustomValidity(""),s.reportValidity()},n.addEventListener("changeDate",c.validateDateRange),{rangepicker:c,datesInput:n,startDateField:s}}function se(){let e=document.querySelectorAll(".form-step"),o=document.querySelectorAll(".form-wizard-step .form-wizard-step-progress"),t=0;function n(l){e.forEach((r,d)=>{r.style.display=d===l?"block":"none"}),o.forEach((r,d)=>{d<l||d===l?r.classList.add("active"):r.classList.remove("active")})}function s(){let l=e[t].querySelectorAll("input, select, textarea"),r=[];return l.forEach(d=>{let p=d.type==="hidden"||d.offsetParent===null;if(d.required&&(!d.value||d.value.trim()==="")){let S=d.dataset.name||d.name||d.placeholder||"Unnamed field";r.push(`${S} is required.`)}if(!p&&d.value&&!d.checkValidity()){let h=d.name||d.placeholder||"Unnamed field";r.push(`${h} is invalid.`)}}),r}function c(l,r){let d=document.querySelector(l);if(!d)return;d.innerHTML="";let p=document.createElement("ul");r.forEach(h=>{let S=document.createElement("li");S.textContent=h,p.appendChild(S)}),d.appendChild(p)}function a(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(),d=`#error-list-step-${t}`;a(d),r.length==0?(t=Math.min(t+1,e.length-1),t===e.length-1&&u(),n(t)):c(d,r)})});function u(){document.querySelectorAll('[id^="review-"]').forEach(r=>{let d=r.dataset.fieldname;try{let p=document.querySelector(`[name="${d}"]`).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 ue(e){let o=document.querySelectorAll(".edition-data");return Array.from(o).map(n=>JSON.parse(n.textContent)).find(n=>n.editionSlug===e)||null}function me(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(),oe(),se(),ne(),_=re("#dates-start-end-group","#Start-Date"),fe(),ye(),he(),pe(),ge()});function pe(){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 c=t&&J("#edition-dropdown",t,"data-editionslug");if(n&&J("#room-dropdown",n,"data-roomslug"),s){let a=document.getElementById("Guests");a&&(a.value=s)}if(c){let a=c.dataset.startdate,u=c.dataset.enddate,l=_.rangepicker;l.setOptions({minDate:a,maxDate:u}),l.setDates(a,u)}}function fe(){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"),c=s.querySelector(".dropdown-selected-value"),a=e.querySelectorAll(".dropdown-item"),u=o.querySelectorAll(".dropdown-item"),l=s.querySelectorAll(".dropdown-item");function r(d,p){t.setAttribute("disabled",d===""?"true":"false"),c.setAttribute("disabled",d===""?"true":"false"),t.innerHTML=n,c.innerHTML=n,f=p,[...u,...l].forEach(h=>{let S=h.dataset.destinationslug===d;h.style.display=S?"flex":"none"})}r("",f),a.forEach(d=>{d.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(c=>c.getAttribute(t)===o);return s&&s.click(),s}function ye(){let o=document.querySelector("#edition-dropdown").querySelectorAll(".dropdown-item"),t=document.querySelector("#dates-start-end-group");function n(s,c){let a=t.rangepicker;a.setOptions({minDate:s,maxDate:c}),a.setDates(s,c)}o.forEach(s=>{s.addEventListener("click",function(){n(this.dataset.startdate,this.dataset.enddate)})})}function he(){document.querySelector("#dates-start-end-group").addEventListener("changeDate",()=>{$(),ie()}),document.querySelector("#room-dropdown").querySelectorAll(".dropdown-item").forEach(a=>{a.addEventListener("click",()=>{$();let u=a.getAttribute("data-allow-weekly-booking"),l=_.rangepicker;l.setMinimumDays(u==="Enabled"?7:30),l.validateDateRange()})}),document.querySelector("#Guests").addEventListener("change",()=>{$()});let s=document.querySelector("#pet-travel-checkbox"),c=document.querySelector("#pet-count-input");s&&s.addEventListener("change",()=>{$()}),c&&(c.addEventListener("input",()=>{$()}),c.addEventListener("change",()=>{$()}))}function ge(){ie(),$()}function ie(){let o=document.querySelector("#dates-start-end-group").rangepicker,t=document.querySelector(".discount-info-blue"),n=document.querySelector(".discount-info-green"),[s,c]=o.getDates(),a=z(s,c);!s||!c||a<=2?(t.style.display="flex",n.style.display="none"):(t.style.display="none",n.style.display="flex")}function $(){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"),c=document.querySelector("#room-dropdown .dropdown-selected-value .dropdown-item"),a=document.querySelector("#Guests"),u=n?n.dataset.destinationslug:"",l=s?s.dataset.editionslug:"",r=c?c.dataset.roomslug:"",d=c?c.getAttribute("data-allow-weekly-booking")==="Enabled":!1,[p,h]=t.getDates(),S=a?parseInt(a.value):0;if(u&&l&&r&&p&&h&&S>0){let w=me(u),D=document.querySelector("#pet-travel-section");if(D)if(w&&w.allowpets)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=te();e.forEach(q=>{q.style.display="flex",Se(q,P,l,r,p,h,S,d)});let I={day:"numeric",month:"short",year:"numeric"},C=p.toLocaleDateString("en-GB",{day:"numeric",month:"short"}).replace(",",""),V=h.toLocaleDateString("en-GB",I).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 Se(e,o,t,n,s,c,a,u){function l(i){return i===1?"st":i===2?"nd":i===3?"rd":"th"}function r(i,m){i&&(i.style.display=m)}function d(i,m,g){!i||!m||(m.style.pointerEvents=g?"auto":"none",m.style.backgroundColor=g?"var(--_colors---primary)":"var(--_colors---light-silver)",m.style.opacity=g?1:.3,i.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(I?.parentElement,"none"),r(R,"none"),r(P,"none"),d(B,j,!1),Q.forEach(i=>r(i,"none")),G&&(G.value=0)}function h(){r(C,"block"),r(w,"block"),r(I?.parentElement,"flex"),r(R,"block"),r(P,"block"),d(B,j,!0),Q.forEach(i=>r(i,"block"))}let S=z(s,c),w=e.querySelector(".room-price"),D=e.querySelector(".room-price-discount"),P=e.querySelector(".room-price-month-desc"),I=e.querySelector(".total-guests"),C=e.querySelector(".total-totalprice"),V=C.firstElementChild,q=e.querySelector(".room-price-breakdown"),R=e.querySelector(".total-dates"),B=document.querySelector("#form-next-step-btn-step-1"),j=B?B.querySelector("a"):null,M=o.find(i=>i.editionSlug===t&&i.roomSlug===n),Q=e.querySelectorAll(".price-info-card-title"),G=document.querySelector('[name="Total-Price"]');if(!M){p();return}h();let A=ue(t),H=L(M.basePriceWeek),O=M.basePriceMonth,ae=M.discountMonth2,de=M.discountMonth3,v=0,E=[],T=Math.round((c-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;E.push({text:`${T} days: ${y(m,f)}`}),v=m;let g=L(M.surcharge2ndPerson,0);if(a===2&&g>0){let k=g/30*T;k>0&&(E.push({text:`2nd person surcharge: ${y(k,f)}`}),v+=k)}}else if(S>=1){let i=T,m=1,g=0,X=0,k=0,Z=L(M.surcharge2ndPerson,0),ee=a===2&&Z>0;for(;i>0;){let x=0;m===1?x=0:m===2?x=ae:m>=3&&(x=de),g=x;let F=i>=30?30:i;X=F;let W=O*(1-x/100)/30*F;if(v+=W,E.push({text:F===30?`Month ${m}: ${y(W,f)}`:`+ ${i} days: ${y(W,f)}`,discount:x,month:m}),ee){let le=Z*(1-x/100)/30*F;k+=le}i-=F,m++}let b=E[E.length-1];if(b&&b.discount!==void 0&&b.discount>0){let x=b.month<=3?`${b.month}${l(b.month)} month`:"from 3rd month";D.innerText=`${b.discount.toFixed(1)}% discount - ${x}`,r(D,"flex"),w.innerText=`${y(O*(1-b.discount/100),f)}`,P.innerText=x}else r(D,"none"),w.innerText=`${y(O,f)}`,P.innerText="1st month";ee&&k>0&&(E.push({text:`2nd person surcharge: ${y(k,f)}`}),v+=k)}let U=0;if(A){if(T>=1&&A.taxFirstMonth){let i=L(A.taxFirstMonth,0);i>0&&(U+=i,E.push({text:`Tax (1st month): ${y(i,f)}`}))}if(T>30&&A.taxSecondMonth){let i=L(A.taxSecondMonth,0);i>0&&(U+=i,E.push({text:`Tax (2nd month): ${y(i,f)}`}))}}v+=U;let N=0,Y=document.querySelector("#pet-travel-checkbox"),K=document.querySelector("#pet-count-input");if(Y&&Y.checked&&K&&A){let i=parseInt(K.value)||0,m=L(A.petPricePerMonth,0);if(i>0&&m>0){let g=T/30;N=m*g*i,N>0&&E.push({text:`Pet${i>1?"s":""} (${i} \xD7 ${g.toFixed(1)} month${g!==1?"s":""}): ${y(N,f)}`})}}v+=N,q.innerHTML=E.map(i=>i.text).join("<br>"),I.innerText=`${a} x Person`,V.innerText=`${y(v,f)}`,G&&(G.value=`${y(v,f)}`)}})();
|
|
1
|
+
(()=>{function te(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 L(e,o=null){return isNaN(parseFloat(e))?o:parseFloat(e)}function oe(){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(a=>{let u=a.getAttribute("data-condition-value")===s,l=a.matches("input, select, textarea")?a:a.querySelector("input, select, textarea");a.style.display=u?"block":"none",l&&(l.required=u,u||(l.value=""))})}}function ne(){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",c=>{c.preventDefault();let a=s.dataset.value,u=s.cloneNode(!0);u.style.padding=0,t.innerHTML="",t.appendChild(u),o.value=a})})})}function re(e,o,t=30){let n=document.querySelector(e),s=document.querySelector(o),c=new DateRangePicker(n,{format:"dd. MM yyyy"}),a=t;return c.setMinimumDays=u=>{a=u},c.validateDateRange=()=>{let[u,l]=c.getDates();u&&l&&Math.floor((l-u)/864e5)<a?(s.setCustomValidity(`You need to choose a minimum of ${a} days.`),c.setDates(u,new Date(u.getTime()+a*24*60*60*1e3))):s.setCustomValidity(""),s.reportValidity()},n.addEventListener("changeDate",c.validateDateRange),{rangepicker:c,datesInput:n,startDateField:s}}function se(){let e=document.querySelectorAll(".form-step"),o=document.querySelectorAll(".form-wizard-step .form-wizard-step-progress"),t=0;function n(l){e.forEach((r,d)=>{r.style.display=d===l?"block":"none"}),o.forEach((r,d)=>{d<l||d===l?r.classList.add("active"):r.classList.remove("active")})}function s(){let l=e[t].querySelectorAll("input, select, textarea"),r=[];return l.forEach(d=>{let p=d.type==="hidden"||d.offsetParent===null;if(d.required&&(!d.value||d.value.trim()==="")){let S=d.dataset.name||d.name||d.placeholder||"Unnamed field";r.push(`${S} is required.`)}if(!p&&d.value&&!d.checkValidity()){let h=d.name||d.placeholder||"Unnamed field";r.push(`${h} is invalid.`)}}),r}function c(l,r){let d=document.querySelector(l);if(!d)return;d.innerHTML="";let p=document.createElement("ul");r.forEach(h=>{let S=document.createElement("li");S.textContent=h,p.appendChild(S)}),d.appendChild(p)}function a(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(),d=`#error-list-step-${t}`;a(d),r.length==0?(t=Math.min(t+1,e.length-1),t===e.length-1&&u(),n(t)):c(d,r)})});function u(){document.querySelectorAll('[id^="review-"]').forEach(r=>{let d=r.dataset.fieldname;try{let p=document.querySelector(`[name="${d}"]`).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 ue(e){let o=document.querySelectorAll(".edition-data");return Array.from(o).map(n=>JSON.parse(n.textContent)).find(n=>n.editionSlug===e)||null}function me(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(),oe(),se(),ne(),_=re("#dates-start-end-group","#Start-Date"),fe(),ye(),he(),pe(),ge()});function pe(){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 c=t&&J("#edition-dropdown",t,"data-editionslug");if(n&&J("#room-dropdown",n,"data-roomslug"),s){let a=document.getElementById("Guests");a&&(a.value=s)}if(c){let a=c.dataset.startdate,u=c.dataset.enddate,l=_.rangepicker;l.setOptions({minDate:a,maxDate:u}),l.setDates(a,u)}}function fe(){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"),c=s.querySelector(".dropdown-selected-value"),a=e.querySelectorAll(".dropdown-item"),u=o.querySelectorAll(".dropdown-item"),l=s.querySelectorAll(".dropdown-item");function r(d,p){t.setAttribute("disabled",d===""?"true":"false"),c.setAttribute("disabled",d===""?"true":"false"),t.innerHTML=n,c.innerHTML=n,f=p,[...u,...l].forEach(h=>{let S=h.dataset.destinationslug===d;h.style.display=S?"flex":"none"})}r("",f),a.forEach(d=>{d.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(c=>c.getAttribute(t)===o);return s&&s.click(),s}function ye(){let o=document.querySelector("#edition-dropdown").querySelectorAll(".dropdown-item"),t=document.querySelector("#dates-start-end-group");function n(s,c){let a=t.rangepicker;a.setOptions({minDate:s,maxDate:c}),a.setDates(s,c)}o.forEach(s=>{s.addEventListener("click",function(){n(this.dataset.startdate,this.dataset.enddate)})})}function he(){document.querySelector("#dates-start-end-group").addEventListener("changeDate",()=>{$(),ie()}),document.querySelector("#room-dropdown").querySelectorAll(".dropdown-item").forEach(a=>{a.addEventListener("click",()=>{$();let u=a.getAttribute("data-allow-weekly-booking"),l=_.rangepicker;l.setMinimumDays(u==="Enabled"?7:30),l.validateDateRange()})}),document.querySelector("#Guests").addEventListener("change",()=>{$()});let s=document.querySelector("#pet-travel-checkbox"),c=document.querySelector("#pet-count-input");s&&s.addEventListener("change",()=>{$()}),c&&(c.addEventListener("input",()=>{$()}),c.addEventListener("change",()=>{$()}))}function ge(){ie(),$()}function ie(){let o=document.querySelector("#dates-start-end-group").rangepicker,t=document.querySelector(".discount-info-blue"),n=document.querySelector(".discount-info-green"),[s,c]=o.getDates(),a=z(s,c);!s||!c||a<=2?(t.style.display="flex",n.style.display="none"):(t.style.display="none",n.style.display="flex")}function $(){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"),c=document.querySelector("#room-dropdown .dropdown-selected-value .dropdown-item"),a=document.querySelector("#Guests"),u=n?n.dataset.destinationslug:"",l=s?s.dataset.editionslug:"",r=c?c.dataset.roomslug:"",d=c?c.getAttribute("data-allow-weekly-booking")==="Enabled":!1,[p,h]=t.getDates(),S=a?parseInt(a.value):0;if(u&&l&&r&&p&&h&&S>0){let w=me(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=te();e.forEach(q=>{q.style.display="flex",Se(q,P,l,r,p,h,S,d)});let I={day:"numeric",month:"short",year:"numeric"},C=p.toLocaleDateString("en-GB",{day:"numeric",month:"short"}).replace(",",""),V=h.toLocaleDateString("en-GB",I).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 Se(e,o,t,n,s,c,a,u){function l(i){return i===1?"st":i===2?"nd":i===3?"rd":"th"}function r(i,m){i&&(i.style.display=m)}function d(i,m,g){!i||!m||(m.style.pointerEvents=g?"auto":"none",m.style.backgroundColor=g?"var(--_colors---primary)":"var(--_colors---light-silver)",m.style.opacity=g?1:.3,i.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(I?.parentElement,"none"),r(R,"none"),r(P,"none"),d(B,j,!1),Q.forEach(i=>r(i,"none")),G&&(G.value=0)}function h(){r(C,"block"),r(w,"block"),r(I?.parentElement,"flex"),r(R,"block"),r(P,"block"),d(B,j,!0),Q.forEach(i=>r(i,"block"))}let S=z(s,c),w=e.querySelector(".room-price"),D=e.querySelector(".room-price-discount"),P=e.querySelector(".room-price-month-desc"),I=e.querySelector(".total-guests"),C=e.querySelector(".total-totalprice"),V=C.firstElementChild,q=e.querySelector(".room-price-breakdown"),R=e.querySelector(".total-dates"),B=document.querySelector("#form-next-step-btn-step-1"),j=B?B.querySelector("a"):null,M=o.find(i=>i.editionSlug===t&&i.roomSlug===n),Q=e.querySelectorAll(".price-info-card-title"),G=document.querySelector('[name="Total-Price"]');if(!M){p();return}h();let A=ue(t),H=L(M.basePriceWeek),O=M.basePriceMonth,ae=M.discountMonth2,de=M.discountMonth3,v=0,E=[],T=Math.round((c-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;E.push({text:`${T} days: ${y(m,f)}`}),v=m;let g=L(M.surcharge2ndPerson,0);if(a===2&&g>0){let k=g/30*T;k>0&&(E.push({text:`2nd person surcharge: ${y(k,f)}`}),v+=k)}}else if(S>=1){let i=T,m=1,g=0,X=0,k=0,Z=L(M.surcharge2ndPerson,0),ee=a===2&&Z>0;for(;i>0;){let x=0;m===1?x=0:m===2?x=ae:m>=3&&(x=de),g=x;let F=i>=30?30:i;X=F;let W=O*(1-x/100)/30*F;if(v+=W,E.push({text:F===30?`Month ${m}: ${y(W,f)}`:`+ ${i} days: ${y(W,f)}`,discount:x,month:m}),ee){let le=Z*(1-x/100)/30*F;k+=le}i-=F,m++}let b=E[E.length-1];if(b&&b.discount!==void 0&&b.discount>0){let x=b.month<=3?`${b.month}${l(b.month)} month`:"from 3rd month";D.innerText=`${b.discount.toFixed(1)}% discount - ${x}`,r(D,"flex"),w.innerText=`${y(O*(1-b.discount/100),f)}`,P.innerText=x}else r(D,"none"),w.innerText=`${y(O,f)}`,P.innerText="1st month";ee&&k>0&&(E.push({text:`2nd person surcharge: ${y(k,f)}`}),v+=k)}let U=0;if(A){if(T>=1&&A.taxFirstMonth){let i=L(A.taxFirstMonth,0);i>0&&(U+=i,E.push({text:`Tax (1st month): ${y(i,f)}`}))}if(T>30&&A.taxSecondMonth){let i=L(A.taxSecondMonth,0);i>0&&(U+=i,E.push({text:`Tax (2nd month): ${y(i,f)}`}))}}v+=U;let N=0,Y=document.querySelector("#pet-travel-checkbox"),K=document.querySelector("#pet-count-input");if(Y&&Y.checked&&K&&A){let i=parseInt(K.value)||0,m=L(A.petPricePerMonth,0);if(i>0&&m>0){let g=T/30;N=m*g*i,N>0&&E.push({text:`Pet${i>1?"s":""} (${i} \xD7 ${g.toFixed(1)} month${g!==1?"s":""}): ${y(N,f)}`})}}v+=N,q.innerHTML=E.map(i=>i.text).join("<br>"),I.innerText=`${a} x Person`,V.innerText=`${y(v,f)}`,G&&(G.value=`${y(v,f)}`)}})();
|