1!function(){const e="/api/availability/cheapest-per-park",t=window.__VALOMA__&&!0===window.__VALOMA__.debug,r=new Intl.NumberFormat("nl-NL",{style:"currency",currency:"EUR",maximumFractionDigits:0});function n(){const e=new URLSearchParams(window.location.search),t=(t,r)=>{for(const r of t)if(e.has(r)){const t=parseInt(e.get(r),10);if(Number.isFinite(t))return t}return r},r=t=>{for(const r of t)if(e.has(r))return e.get(r);return null};return{checkIn:r(["check_in","checkin","from"]),checkOut:r(["check_out","checkout","to"]),adults:t(["guests_adults","adults"],2),children:t(["guests_children","children"],1),babies:t(["guests_babies","infants","babies"],0),pets:t(["guests_pets","pets"],0)}}function o(){const e={};document.querySelectorAll(".park-card[data-park][data-park_id]").forEach(t=>{(t.dataset.facilities||"").trim().split(/\s+/).filter(Boolean).forEach(t=>{e[t]=(e[t]||0)+1})}),document.querySelectorAll('input[type="checkbox"][data-facility]').forEach(t=>{const r=t.dataset.facility,n=t.closest("li"),o=n?.querySelector("span"),a=e[r]??0;o&&(o.textContent=a)})}function a(e){(function(e){const t=function(e,t){if(!e||!t)return null;const[r,n,o]=e.split("-").map(Number),[a,c,i]=t.split("-").map(Number);if([r,n,o,a,c,i].some(e=>!Number.isFinite(e)))return null;const s=Date.UTC(r,n-1,o),l=Date.UTC(a,c-1,i)-s;return l<=0?0:Math.round(l/864e5)}(e.checkIn,e.checkOut);document.querySelectorAll(".price-card__meta").forEach(r=>{const n=r.querySelector("#search-nights"),o=r.querySelector("#guests_adults"),a=r.querySelector("#guests_children"),c=r.querySelector("#guests_babies"),i=r.querySelector("#guests_pets");n&&Number.isFinite(t)&&(n.textContent=String(t)),o&&(o.textContent=String(e.adults??0)),a&&(a.textContent=String(e.children??0)),c&&(c.textContent=String(e.babies??0)),i&&(i.textContent=String(e.pets??0))})})(e),document.querySelectorAll(".price-card__meta").forEach(e=>{let t=e.innerHTML;t=t.replace(/<span[^>]*>\s*0\s*<\/span>\s*[^,<]*(?:,|\s*(?=$))/gi,""),t=t.replace(/\s*,\s*,/g,",").replace(/,\s*$/,"").replace(/^\s*,\s*/,"").replace(/\s{2,}/g," ").trim(),e.innerHTML=t})}async function c(){!function(){const e=document.getElementById("results-loading");e&&e.removeAttribute("hidden"),document.querySelector(".park-list-wrap")?.style.setProperty("visibility","hidden")}();const c=n(),i=Array.from(document.querySelectorAll(".park-card[data-park][data-park_id]")),s=Array.from(new Set(i.map(e=>e.getAttribute("data-park_id")).filter(Boolean)));if(a(c),!c.checkIn||!c.checkOut||0===s.length){t&&console.warn("[Valoma] Missing check_in/check_out or no park cards â aborting price fetch."),document.querySelector(".park-list-wrap")?.style.removeProperty("visibility"),o();const e=document.getElementById("results-loading");e&&e.setAttribute("hidden",""),"function"==typeof filterParks&&filterParks();const r=document.querySelectorAll(".park-card[data-park][data-park_id]").length,n=document.querySelector(".park-results-top");return n&&0===r&&(n.style.display="none"),void document.dispatchEvent(new CustomEvent("valoma:prices:ready",{detail:{results_count:r}}))}!function(e){e.forEach(e=>{const t=e.getAttribute("data-park_id"),r=document.querySelector(`.cheapest_price-${CSS.escape(t)} .price`);r&&(r.textContent="â¦")})}(i);try{const n=await async function(r,n){const o={park_ids:r,check_in:n.checkIn,check_out:n.checkOut,adults:n.adults,children:n.children,infants:n.babies};t&&(console.group("[Valoma] availability fetch"),console.log("endpoint:",e),console.log("payload:",o),console.groupEnd());const a=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(o)}),c=await a.text();let i=null;try{i=c?JSON.parse(c):null}catch(e){}if(t&&(console.group("[Valoma] availability response"),console.log("HTTP",a.status,a.ok?"OK":"ERROR"),a.ok?console.log("JSON:",i):console.log("Raw:",c),console.groupEnd()),!a.ok)throw new Error(`HTTP ${a.status}: ${c}`);return Array.isArray(i)?i:[]}(s,c);(function(e,n){const a=new Map;n.forEach(e=>{const t=e?.park_id,r=e?.price?.total_price_cents;t&&"number"==typeof r&&a.set(t,e)});let c=0;
1e.forEach(e=>{const t=e.getAttribute("data-park_id"),n=a.get(t);if(!n)return e.parentElement?.removeChild(e),void c++;const o=n.price.total_price_cents,i=document.querySelector(`.cheapest_price-${CSS.escape(t)} .price`);i&&(i.textContent=(e=>"number"==typeof e?r.format(e/100):"â")(o)),e.dataset.price=o}),t&&console.log(`[Valoma] Removed parks without prices: ${c}`),function(){const e=document.querySelector(".park-results-total");if(!e)return;const t=document.querySelectorAll(".park-card[data-park][data-park_id]").length;e.innerHTML=e.innerHTML.replace(/\d+/,String(t))}(),o(),"undefined"!=typeof jQuery&&jQuery.fn&&jQuery.fn.slick&&jQuery(".park-img-slider").each(function(){const e=jQuery(this);e.hasClass("slick-initialized")&&e.slick("unslick"),e.find("> div").length>1&&e.slick({dots:!0,arrows:!0,infinite:!1,slidesToShow:1,slidesToScroll:1,adaptiveHeight:!0,lazyLoad:"ondemand"})})})(i,n),a(c),"function"==typeof filterParks&&filterParks()}catch(e){console.error("[Valoma] RPC fetch error â leaving park list untouched:",e),i.forEach(e=>{const t=e.getAttribute("data-park_id"),r=document.querySelector(`.cheapest_price-${CSS.escape(t)} .price`);r&&(r.textContent="")}),o(),a(c)}finally{!function(){const e=document.getElementById("results-loading");e&&e.setAttribute("hidden",""),document.querySelector(".park-list-wrap")?.style.removeProperty("visibility");const t=document.querySelectorAll(".park-card[data-park][data-park_id]").length,r=document.querySelector(".park-results-top");r&&(t>0?r.style.removeProperty("display"):r.style.display="none")}(),document.dispatchEvent(new CustomEvent("valoma:prices:ready",{detail:{results_count:document.querySelectorAll(".park-card[data-park]").length}}))}}"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>setTimeout(c,0)):setTimeout(c,0),window.addEventListener("load",()=>a(n())),window.addEventListener("pageshow",e=>{e.persisted&&setTimeout(c,0)})}();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.