{"id":33,"date":"2025-09-05T09:20:42","date_gmt":"2025-09-05T09:20:42","guid":{"rendered":"https:\/\/shippingblue.com\/?page_id=33"},"modified":"2025-12-12T11:53:13","modified_gmt":"2025-12-12T11:53:13","slug":"home","status":"publish","type":"page","link":"https:\/\/shippingblue.com\/en\/","title":{"rendered":""},"content":{"rendered":"\r\n<script>\r\nwp.domReady(() => {\r\n    const loadTrustpilot = () => {\r\n        \/*if (window.Trustpilot) {\r\n            window.Trustpilot.loadFromElement(document.querySelector('.trustpilot-widget'));\r\n        }*\/\r\n    };\r\n    loadTrustpilot();\r\n    wp.data.subscribe(() => {\r\n        loadTrustpilot();\r\n    });\r\n});\r\n<\/script>\r\n<section class=\"hero py-5 pb-2 position-relative\"  data-effect=\"none\">\r\n  <video autoplay muted loop playsinline class=\"hero-video\">\r\n    <source src=\"https:\/\/shippingblue.com\/en\/wp-content\/uploads\/2025\/09\/AdobeStock_445589006-2.mp4\" type=\"video\/mp4\">\r\n  <\/video>\r\n        <div class=\"fireworks-overlay\"><\/div>\r\n        <div class=\"hero-content flex-grow-1\">\r\n\t\t\t\t\t\t<div class=\"text-content d-flex align-self-stretch\">\r\n\t\t\t\t\r\n            <div class=\"slider-container position-relative\" style=\" overflow: hidden; padding-bottom:25px; width:100%;\">\r\n                <div class=\"slider-content d-flex transition top-50 translate-middle-y\" style=\"transition: transform 0.5s ease;  position: relative;\"><div class=\"slide flex-shrink-0 d-flex flex-column justify-content-center\" data-slideview=\"0\" style=\"width: 100%; padding: 0 2rem; box-sizing: border-box; \/* horizontaal centreren *\/ align-items: center;\"><div style=\"width:100%;\"><h1>The Easiest Way to Ship Locally or Worldwide<\/h1><\/div><div style=\"width:100%;\"><p>Whether it\u2019s one parcel or a thousand, we compare 250 carriers so you get the best price and can ship instantly, no account needed. <\/p><\/div><\/div>                <\/div>            <\/div>\t\t\t<\/div>\r\n\t\t\t\t\t\t<div class=\"calculator-box mt-4 mt-md-0 mb-5\" style=\"width:100%; position:relative;\">\r\n\t\t\t\t<div class=\"calctools\">\r\n\t\t\t\t  <h3>Get Your Best Rate<\/h3>\r\n\t\t\t\t  <form id=\"rateCalcForm\" style=\"width:100%; position:relative;\" novalidate>\r\n\t\t\t\t\t<div class=\"mb-2\">\r\n\t\t\t\t\t  <input class=\"form-control\" id=\"originCountry\" type=\"text\" required>\r\n\r\n\t\t\t\t\t  <div class=\"zipcode-input mt-2\" id=\"originZipWrap\" style=\"display:none !important;\">\r\n\t\t\t\t\t\t<input class=\"form-control pe-5 calculator-hiddeninput\" autocomplete=\"off\" autocorrect=\"off\" data-target=\"origin\" id=\"originZipcode\" placeholder=\"Add a postalcode\">\r\n\t\t\t\t\t\t<button type=\"button\" class=\"close-btn\" onclick=\"toggleZip('origin', false)\">&times;<\/button>\r\n\t\t\t\t\t  <\/div>\r\n\r\n\t\t\t\t\t  <div class=\"d-flex justify-content-center align-items-center mt-1\" style=\"font-size:12px;display:none !important;\">\r\n\t\t\t\t\t\t<a href=\"#\" class=\"zipcode-toggle\" data-target=\"origin\">Add a postalcode<\/a>\r\n\t\t\t\t\t\t<i class=\"fa fa-question-circle ms-1 text-muted\" id=\"originQuestion\" data-bs-toggle=\"tooltip\" title=\"Postal codes help us determine the correct price zone immediately. This makes your rate calculation faster and more accurate.\"><\/i>\r\n\t\t\t\t\t  <\/div>\r\n\t\t\t\t\t<\/div>\r\n\r\n\t\t\t\t\t<div class=\"mb-2\">\r\n\t\t\t\t\t  <input class=\"form-control\" id=\"destinationCountry\" type=\"text\" required>\r\n\r\n\t\t\t\t\t  <div class=\"zipcode-input mt-2\" id=\"destinationZipWrap\" style=\"display:none !important;\">\r\n\t\t\t\t\t\t<input class=\"form-control pe-5 calculator-hiddeninput\" autocomplete=\"off\" autocorrect=\"off\" data-target=\"destination\" id=\"destinationZipcode\" placeholder=\"Add a postalcode\">\r\n\t\t\t\t\t\t<button type=\"button\" class=\"close-btn\" onclick=\"toggleZip('destination', false)\">&times;<\/button>\r\n\t\t\t\t\t  <\/div>\r\n\r\n\t\t\t\t\t  <div class=\"d-flex justify-content-center align-items-center mt-1\" style=\"font-size:12px;display:none !important;\">\r\n\t\t\t\t\t\t<a href=\"#\" class=\"zipcode-toggle\" data-target=\"destination\">Add a postalcode<\/a>\r\n\t\t\t\t\t\t<i class=\"fa fa-question-circle ms-1 text-muted\" id=\"destinationQuestion\" data-bs-toggle=\"tooltip\" title=\"Postal codes help us determine the correct price zone immediately. This makes your rate calculation faster and more accurate.\"><\/i>\r\n\t\t\t\t\t  <\/div>\r\n\t\t\t\t\t<\/div>\r\n\r\n\t\t\t\t\t<div class=\"mb-3 mt-3\">\r\n\t\t\t\t\t  <label class=\"form-label\">What are you sending?<\/label>\r\n\t\t\t\t\t  <div class=\"d-flex\">\r\n\t\t\t\t\t\t<div class=\"btn-option me-2 active\" data-class=\"parceltype\" data-contenttype=\"package\">\r\n\t\t\t\t\t\t  <i class=\"fa-duotone fa fa-box\"><\/i>\r\n\t\t\t\t\t\t  <span>Package<\/span>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t<div class=\"btn-option me-2\" data-class=\"parceltype\" data-contenttype=\"document\">\r\n\t\t\t\t\t\t  <i class=\"fa-duotone fa fa-envelope\"><\/i>\r\n\t\t\t\t\t\t  <span>Document<\/span>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t<!--<div class=\"btn-option\" data-class=\"parceltype\" data-contenttype=\"pallet\">\r\n\t\t\t\t\t\t  <i class=\"fa-duotone fa fa-pallet-boxes\"><\/i>\r\n\t\t\t\t\t\t  <span>Pallet<\/span>\r\n\t\t\t\t\t\t<\/div>-->\r\n\t\t\t\t\t  <\/div>\r\n\r\n\t\t\t\t\t  <div id=\"dimensionInputs\" class=\"dimensions-wrapper mt-3\">\r\n\t\t\t\t\t\t<div class=\"d-flex align-items-center gap-2\">\r\n\t\t\t\t\t\t  <input type=\"number\" id=\"dimlength\" class=\"form-control\" placeholder=\"Length (cm)\" style=\"max-width: 90px;\" \/>\r\n\t\t\t\t\t\t  <input type=\"number\" id=\"dimwidth\" class=\"form-control\" placeholder=\"Width (cm)\" style=\"max-width: 90px;\" \/>\r\n\t\t\t\t\t\t  <input type=\"number\" id=\"dimheight\" class=\"form-control\" placeholder=\"Height (cm)\" style=\"max-width: 90px;\" \/>\r\n\t\t\t\t\t\t  <input type=\"number\" id=\"dimweight\" class=\"form-control\" placeholder=\"Weight (kg)\" style=\"max-width: 90px;\" \/>\r\n\t\t\t\t\t\t  <button type=\"button\" id=\"removeDimensions\" class=\"btn btn-outline-secondary btn-sm\" style=\"line-height: 1;\">\r\n\t\t\t\t\t\t\t\u00d7\r\n\t\t\t\t\t\t  <\/button>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t  <\/div>\r\n\r\n\t\t\t\t\t  <div class=\"d-flex justify-content-center align-items-center mt-1\" style=\"font-size:12px;\">\r\n\t\t\t\t\t\t<a href=\"#\" id=\"toggleDimensions\">35 x 25 x 20 2kg<\/a>\r\n\t\t\t\t\t\t<i class=\"fa fa-question-circle ms-1 text-muted\" id=\"dimensionQuestion\" data-bs-toggle=\"tooltip\" title=\"This is a sample size. Click on it to enter your own dimensions and weight for an accurate rate.\"><\/i>\r\n\t\t\t\t\t  <\/div>\r\n\t\t\t\t\t<\/div>\r\n\r\n\t\t\t\t\t<a class=\"btn btn-primary w-100\" id=\"calculateRate\" href=\"#\">Get Rate<\/a>\r\n\t\t\t\t  <\/form>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"calcresult\">\r\n\t\t\t\t\t<div class=\"resultTitleBox\"  data-bs-toggle=\"tooltip\" title=\"Klik hier om een ander tarief te berekenen\"  onclick=\"hideResult();\">\r\n\t\t\t\t\t<h3 id=\"resultTitle\"><\/h3>\r\n\t\t\t\t\t<div class=\"d-flex justify-content-center align-items-center mt-1\" style=\"font-size:12px;\">\r\n\t\t\t\t\t\t<a href=\"#\" id=\"dimensionsUsed\">35 x 25 x 20 2kg<\/a>\r\n\t\t\t\t\t  <\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<hr style=\"margin-bottom:0px; margin-top:0.5rem\" \/>\r\n\r\n\t\t\t\t\t<div class=\"w-100\" style=\"text-align: center; height: 78%; overflow-y:scroll;\">\r\n\t\t\t\t\t<div id=\"loader\" style=\"display: flex; align-items: center; justify-content: center; height:10em background: #f8f9fa; padding-bottom:4em; margin-top:2rem;\">\r\n\t\t\t\t\t\t<div id=\"textSlider\" style=\"font-size: 1.2rem; color: #333; opacity: 0; transition: opacity 0.5s ease;\">Start...<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<i id=\"loaderIcon\" style=\"font-size:5em; --fa-primary-color: #ffffff; --fa-secondary-color: #ffffff;\" class=\"fa-duotone fa-solid fa-gear fa-spin ms-50\"><\/i>\r\n\t\t\t\t\t<!--<span class=\"price\">\u20ac 12,34 <small class=\"text-muted\">(excl. btw)<\/small><\/span>-->\r\n\t\t\t\t\t\r\n\t\t\t\t\t<div id=\"rateResults\" class=\"mt-2\">\r\n\t\t\t\t\t  <!-- Resultaatkaarten worden hier ingevuld -->\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t<script>\r\n\r\n  const messages = [\r\n    { text: \"Connecting with carriers...\", duration: 4500 },\r\n\t{ text: \"Loading prices...\", duration: 6000 },\r\n\t{ text: \"Calculating fastest routes...\", duration: 4700 },\r\n\t{ text: \"Checking package formats...\", duration: 4400 },\r\n\t{ text: \"Getting customs zones...\", duration: 4800 },\r\n\t\/\/ { text: \"Checking dangerous goods restrictions...\", duration: 6100 },\r\n\t{ text: \"Getting delivery options...\", duration: 4600 },\r\n\t{ text: \"Performing postal code validation...\", duration: 4500 },\r\n\t{ text: \"Compare rates...\", duration: 6000 },\r\n\t{ text: \"Optimizing results...\", duration: 4700 }\r\n  ];\r\n\r\n  const slider = document.getElementById(\"textSlider\");\r\n  let index = 0;\r\n  let messageTimer = null;\r\n\r\n  function showNextMessage() {\r\n    const msg = messages[index];\r\n    slider.style.opacity = 0;\r\n\r\n    setTimeout(() => {\r\n      slider.textContent = msg.text;\r\n      slider.style.opacity = 1;\r\n    }, 300); \/\/ fade out before switching\r\n\r\n    messageTimer = setTimeout(() => {\r\n      index = (index + 1) % messages.length;\r\n      showNextMessage();\r\n    }, msg.duration);\r\n  }\r\n  \r\n  function startMessageLoop() {\r\n    stopMessageLoop(); \/\/ reset als iets al loopt\r\n    index = 0;\r\n    showNextMessage();\r\n  }\r\n\r\n  function stopMessageLoop() {\r\n    clearTimeout(messageTimer);\r\n    messageTimer = null;\r\n    index = 0;\r\n  }\r\n\r\n\r\nlet allRateResults = [];\r\nlet collectedRates = 0;\r\nfunction collectRates(data, type) {\r\n  if (data?.rates?.length) {\r\n    data.rates.forEach(rate => {\r\n      rate._sourceType = type;\r\n      allRateResults.push(rate);\r\n    });\r\n  }\r\n  collectedRates += 1;\r\n  if(collectedRates == 2){\r\n\t  $('#loaderIcon').hide();\r\n\t  $('#loader').hide();\r\n\t  \/\/console.log(allRateResults);\r\n\t  allRateResults.sort((a, b) => a.price - b.price);\r\n\t  renderCompactRateBlocks();\r\n  }\r\n}\r\n\r\n\r\nfunction hideResult() {\r\n\tconst toolBox = document.querySelector('.calctools');\r\n\tconst resultBox = document.querySelector('.calcresult');\r\n\tconst screenWidth = window.innerWidth;\r\n\t\r\n\tdocument.querySelector('.calculator-box .calcresult')?.classList.remove('slide-in');\r\n  \tif (screenWidth < 640 || screenWidth >= 941) {\r\n\t\t\r\n\t\t\/\/on small screens we hide the tool because there is not enough space to show both\r\n\t\t\/\/on large screens we hide the tool, because the calculator switches to smaller widh\r\n\t\ttoolBox.style.setProperty('display', 'block', 'important');\r\n\t\t\r\n\t\t\/\/resultBox.classList.remove('slide-in');\r\n\t}\r\n}\r\n\r\nlet user_changed_dimensions = false;\r\nlet active_parcel_type = 'package';\r\nconst parceltypes = {\r\n  package: {\r\n    length: 35,\r\n    width: 25,\r\n\theight: 20,\r\n\tweight: 5\r\n  },\r\n  document: {\r\n    length: 30,\r\n    width: 25,\r\n\theight: 1,\r\n\tweight: 0.5\r\n  },\r\n  pallet: {\r\n    length: 120,\r\n    width: 80,\r\n\theight: 80,\r\n\tweight: 200\r\n  }\r\n};\r\n\r\nfunction setActiveParcel(){\r\n\tdocument.getElementById('toggleDimensions').innerHTML = parceltypes[active_parcel_type]['length'] + ' x ' + \r\n\t\tparceltypes[active_parcel_type]['width'] + ' x ' + \r\n\t\tparceltypes[active_parcel_type]['height'] + ' ' + parceltypes[active_parcel_type]['weight'] + 'kg';\r\n\t\t\r\n\tdocument.getElementById(`dimlength`).value = parceltypes[active_parcel_type]['length'];\r\n\tdocument.getElementById(`dimwidth`).value = parceltypes[active_parcel_type]['width'];\r\n\tdocument.getElementById(`dimheight`).value = parceltypes[active_parcel_type]['height'];\r\n\tdocument.getElementById(`dimweight`).value = parceltypes[active_parcel_type]['weight'];\r\n\t\r\n\tuser_changed_dimensions = false;\r\n}\r\n\r\nfunction renderCompactRateBlocks() {\r\n  const container = document.getElementById(\"rateResults\");\r\n  container.innerHTML = \"\";\r\n  \r\n  const categories = { Budget: [], Standard: [], Express: [] };\r\n\r\n  allRateResults.forEach(rate => {\r\n\tconst el = document.createElement(\"div\");\r\n    el.className = \"rate-card-rowed\";\r\n\tel.onclick = function () {\r\n\t\t\/\/ jouw code hier\r\n\t\twindow.open('https:\/\/quick.shippingblue.com\/?from_country=' + $('#originCountry').val().toLowerCase() + '&to_country=' + $('#destinationCountry').val().toLowerCase() + '&language=en', '_blank');\r\n\t};\r\nel.innerHTML = `\r\n  <div class=\"label\"><\/div>\r\n  <div class=\"rate-content\">\r\n    <div class=\"rate-carrier\">${rate.name}<\/div>\r\n    <div class=\"rate-details\">\r\n      ${rate.delivery_time} workdays<br>  \r\n\t  ${mapType(rate.type)}\r\n    <\/div>\r\n    <div class=\"rate-price\">\r\n      \u20ac${rate.price.toFixed(2)}\r\n      <div class=\"rate-meta\">excl. vat<\/div>\r\n    <\/div>\r\n  <\/div>\r\n`;\r\n    container.appendChild(el);\r\n\t  \r\n    if (categories[rate.service]) {\r\n      categories[rate.service].push(rate);\r\n    }\r\n  });\r\n\r\n  Object.entries(categories).forEach(([label, items]) => {\r\n    if (!items.length) return;\r\n\r\n    const best = items.reduce((a, b) => a.price < b.price ? a : b);\r\n\r\n    const el = document.createElement(\"div\");\r\n    el.className = \"rate-card-rowed\";\r\n\r\nel.innerHTML = `\r\n  <div class=\"label\"><\/div>\r\n  <div class=\"rate-content\">\r\n    <div class=\"rate-carrier\">${best.name}<\/div>\r\n    <div class=\"rate-details\">\r\n      ${best.delivery_time} workdays<br> \r\n\t  ${mapType(best.type)}\r\n    <\/div>\r\n    <div class=\"rate-price\">\r\n      \u20ac${best.price.toFixed(2)}\r\n      <div class=\"rate-meta\">excl. vat<\/div>\r\n    <\/div>\r\n  <\/div>\r\n`;\r\n\r\n    container.appendChild(el);\r\n  });\r\n\r\n}\r\n\r\nfunction getBestRatePerType(list) {\r\n  if (!list?.length) return null;\r\n  return list.reduce((a, b) => (a.price < b.price ? a : b));\r\n}\r\n\r\nfunction mapType(t) {\r\n  return {\r\n    D2D: \"Door-to-Door\",\r\n    P2D: \"Port-to-Door\",\r\n    P2P: \"Port-to-Port\"\r\n  }[t] || t;\r\n}\r\n\r\nlet calcState = null;\r\n\r\n\r\n\r\n\r\ndocument.getElementById('calculateRate').addEventListener('click', function (e) {\r\n\t\r\n\te.preventDefault();\r\n    const form = document.getElementById('rateCalcForm');\r\n\tlet mistakes = false;\r\n\tif( $('#originCountry').val() == \"\"){\r\n\t\t$('#originCountry_dropdown').addClass('is-invalid');\r\n\t\tmistakes = true;\r\n\t}else{\r\n\t\tconsole.log('country = ' + $('#originCountry').val());\r\n\t}\r\n\tif( $('#destinationCountry').val() == \"\"){\r\n\t\t$('#destinationCountry_dropdown').addClass('is-invalid');\r\n\t\tmistakes = true;\r\n\t}\r\n\tif(mistakes === true){\r\n\t\treturn;\r\n\t}\r\n\tconst container = document.getElementById(\"rateResults\");\r\n\tcontainer.innerHTML = \"\";\r\n\tcollectedRates = 0;\r\n\tallRateResults = [];\r\n\t$('#loaderIcon').show();\r\n\t$('#loader').show();\r\n\tcalcState = \"showRates\";\r\n\t\r\n\t\r\n\tconst resultTitle = document.getElementById(\"resultTitle\");\r\n\tconst dimensionsUsed = document.getElementById(\"dimensionsUsed\");\r\n\t\/\/console.log(originCountry);\r\n\t\r\n\tlet parcel_type_class = \"\";\r\n\tif(active_parcel_type == \"package\"){\r\n\t\tparcel_type_class = \"fa-box\";\r\n\t}\r\n\tif(active_parcel_type == \"document\"){\r\n\t\tparcel_type_class = \"fa-envelope\";\r\n\t}\r\n\tif(active_parcel_type == \"pallet\"){\r\n\t\tparcel_type_class = \"fa-pallet-boxes\";\r\n\t}\r\n\t\r\n\tif(originCountry.value == destinationCountry.value){\r\n\t  let countryName = $(\"#originCountry_dropdown\").data(\"countryname\");\r\n\t  resultTitle.innerHTML = `<i class=\"fa-duotone fa ${parcel_type_class}\"><\/i> Within ` + countryName + ` <i class=\"fa fa-edit ms-1 text-muted\" id=\"editRate\" style=\"font-size:0.5em;font-size: 0.6em; float: right; margin-top: 0.4em;\"><\/i>`;\r\n\t}else{\r\n\t  let countryName = $(\"#destinationCountry_dropdown\").data(\"countryname\");\r\n\t  resultTitle.innerHTML = `<i class=\"fa-duotone fa ${parcel_type_class}\"><\/i> To ${countryName}` + ` <i class=\"fa fa-edit ms-1 text-muted\" id=\"editRate\" style=\"font-size:0.5em;font-size: 0.6em; float: right; margin-top: 0.4em;\"><\/i>`;\r\n\t}\r\n\r\n\tdimensionsUsed.innerHTML = document.getElementById(`dimlength`).value + ` x ` + document.getElementById(`dimwidth`).value + ` x ` + document.getElementById(`dimheight`).value + ` ` + document.getElementById(`dimweight`).value + `kg`\r\n\t\r\n\t\r\n\t\/\/alert('calculate price');\r\n\tconst toolBox = document.querySelector('.calctools');\r\n\tconst resultBox = document.querySelector('.calcresult');\r\n\tconst screenWidth = window.innerWidth;\r\n\r\n\t$.ajax({\r\n\t\turl: \"\/en\/calculator\/\",\r\n\t\tmethod: \"POST\",\r\n\t\tdata: {\r\n\t\t\ttype: \"D2D\",\r\n\t\t\torigin: {\r\n\t\t\t\tcountry: $('#originCountry').val(),\r\n\t\t\t\tzipcode: $('#originZipcode').val()\r\n\t\t\t},\r\n\t\t\tdestination: {\r\n\t\t\t\tcountry: $('#destinationCountry').val(),\r\n\t\t\t\tzipcode: $('#destinationZipcode').val()\r\n\t\t\t},\r\n\t\t\tsizes: {\r\n\t\t\t\ttype: active_parcel_type,\r\n\t\t\t\tlength: document.getElementById(`dimlength`).value,\r\n\t\t\t\twidth: document.getElementById(`dimwidth`).value,\r\n\t\t\t\theight: document.getElementById(`dimheight`).value,\r\n\t\t\t\tweight: document.getElementById(`dimweight`).value\r\n\t\t\t}\r\n\t\t},\r\n\t\tdataType: \"json\"\r\n\t})\r\n\t.done(function(msg) {\r\n\t\tconsole.log(msg);\r\n\t\tcollectRates(msg);\r\n\t})\r\n\t.fail(function(jqXHR, textStatus) {\r\n\t\tconsole.log(\"Request failed: \" + textStatus);\r\n\t});\r\n\t\r\n\t$.ajax({\r\n\t\turl: \"\/en\/calculator\/\",\r\n\t\tmethod: \"POST\",\r\n\t\tdata: {\r\n\t\t\ttype: \"P2D\",\r\n\t\t\torigin: {\r\n\t\t\t\tcountry: $('#originCountry').val(),\r\n\t\t\t\tzipcode: $('#originZipcode').val()\r\n\t\t\t},\r\n\t\t\tdestination: {\r\n\t\t\t\tcountry: $('#destinationCountry').val(),\r\n\t\t\t\tzipcode: $('#destinationZipcode').val()\r\n\t\t\t},\r\n\t\t\tsizes: {\r\n\t\t\t\ttype: active_parcel_type,\r\n\t\t\t\tlength: document.getElementById(`dimlength`).value,\r\n\t\t\t\twidth: document.getElementById(`dimwidth`).value,\r\n\t\t\t\theight: document.getElementById(`dimheight`).value,\r\n\t\t\t\tweight: document.getElementById(`dimweight`).value\r\n\t\t\t}\r\n\t\t},\r\n\t\tdataType: \"json\"\r\n\t})\r\n\t.done(function(msg) {\r\n\t\tconsole.log(msg);\r\n\t\tcollectRates(msg);\r\n\t})\r\n\t.fail(function(jqXHR, textStatus) {\r\n\t\tconsole.log(\"Request failed: \" + textStatus);\r\n\t});\r\n\r\n\t\r\n\tif (screenWidth < 640 || screenWidth >= 941) {\r\n\t\t\r\n\t\t\/\/on small screens we hide the tool because there is not enough space to show both\r\n\t\t\/\/on large screens we hide the tool, because the calculator switches to smaller widh\r\n\t\ttoolBox.style.setProperty('display', 'none', 'important');\r\n\t\t\r\n\t\tresultBox.classList.add('slide-in');\r\n\t\t\/\/ init messages\r\n\t\tstartMessageLoop();\r\n\t}\r\n\t\r\n});\r\n\r\n  document.getElementById('toggleDimensions').addEventListener('click', function (e) {\r\n\tconst tooltipIcon = document.getElementById(`dimensionQuestion`);\r\n    e.preventDefault();\r\n    document.getElementById('dimensionInputs').classList.add('show');\r\n    this.classList.add('d-none');\r\n\ttooltipIcon.style.setProperty('display', 'none', 'important');\r\n  });\r\n\r\n  document.getElementById('removeDimensions').addEventListener('click', function () {\r\n\tconst tooltipIcon = document.getElementById(`dimensionQuestion`);\r\n\tif(user_changed_dimensions){\r\n\t\t\/\/alert('dont do it');\r\n\t\treturn;\r\n\t}\r\n    document.getElementById('dimensionInputs').classList.remove('show');\r\n    document.getElementById('toggleDimensions').classList.remove('d-none');\r\n\r\n    \/\/ Leegmaken van de inputs (optioneel)\r\n\tsetActiveParcel(); \/\/set to default sizes\r\n    \/\/document.querySelectorAll('#dimensionInputs input').forEach(i => i.value = '');\r\n\ttooltipIcon.style.setProperty('display', 'inline-block', 'important');\r\n  });\r\n\r\n\r\nfunction toggleZip(type, show = true) {\r\n  const wrap = document.getElementById(`${type}ZipWrap`);\r\n  const element = document.getElementById(`${type}Zipcode`);\r\n  const tooltipIcon = document.getElementById(`${type}Question`);\r\n  const closeBtn = wrap.querySelector('.close-btn');\r\n  \r\n  const toggleLink = document.querySelector(`.zipcode-toggle[data-target=\"${type}\"]`);\r\n  if (show) {\r\n    wrap.classList.add('show');\r\n    toggleLink.style.setProperty('display', 'none', 'important');\r\n\ttooltipIcon.style.setProperty('display', 'none', 'important');\r\n\telement.focus();\r\n  } else {\r\n    wrap.classList.remove('show');\r\n    toggleLink.style.setProperty('display', 'block', 'important');\r\n\ttooltipIcon.style.setProperty('display', 'inline-block', 'important');\r\n    document.getElementById(`${type}Zipcode`).value = '';\r\n  }\r\n}\r\n\r\n\/\/ Link click handler\r\ndocument.querySelectorAll('.zipcode-toggle').forEach(link => {\r\n\tlink.addEventListener('click', function (e) {\r\n\t\te.preventDefault();\r\n\t\tconst type = this.getAttribute('data-target');\r\n\t\ttoggleZip(type, true);\r\n\t});\r\n});\r\n\r\n\r\n\r\ndocument.querySelectorAll(`.btn-option[data-class=\"parceltype\"]`).forEach(link => {\r\n\tlink.addEventListener('click', function (e) {\r\n\t\te.preventDefault();\r\n\t\tdocument.querySelector('.btn-option[data-class=\"parceltype\"].active').classList.remove('active');\r\n\t\t\/\/const type = this.getAttribute('data-target');\r\n\t\tthis.classList.add('active');\r\n\t\tactive_parcel_type =  this.getAttribute('data-contenttype');\r\n\t\tsetActiveParcel();\r\n\t});\r\n});\r\n\r\nconst wrap = document.getElementById('originZipWrap');\r\nconst closeBtn = wrap.querySelector('.close-btn');\r\n\r\ncloseBtn.addEventListener('mousedown', () => {\r\n  clickedClose = true;\r\n});\r\n\r\ndocument.querySelectorAll('.zipcode-input').forEach(wrap => {\r\n  const closeBtn = wrap.querySelector('.close-btn');\r\n  if (!closeBtn) return;\r\n\r\n  closeBtn.addEventListener('mousedown', () => {\r\n\twrap.dataset.closing = 'true';\r\n  });\r\n});\r\n\t\r\n\t\r\n  \r\n  document.querySelectorAll('.calculator-hiddeninput').forEach(function(input) {\r\n\t  input.addEventListener('blur', function (me) {\r\n\t\tconst wrap = document.getElementById(`${input.getAttribute('data-target')}ZipWrap`);\r\n\t\tif(wrap.dataset.closing == 'true'){\r\n\t\t\twrap.dataset.closing = 'false';\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t\/\/ code die je wilt uitvoeren\r\n\t\tconsole.log(`input ${input.name || input.id} verlaten`);\r\n\t\t\r\n\t\tconst toggleLink = document.querySelector(`.zipcode-toggle[data-target=\"${input.getAttribute('data-target')}\"]`);\r\n\t\tif(input.value != ''){\r\n\t\t\ttoggleLink.innerHTML = input.value;\r\n\t\t}\r\n\t\twrap.classList.remove('show');\r\n\t\ttoggleLink.style.setProperty('display', 'block', 'important');\r\n\t  });\r\n  });\r\n  \r\n  document.addEventListener('DOMContentLoaded', () => {\r\n\r\n\t\/\/ Handmatig aangepaste inputs detecteren\r\n\tconst inputIds = ['dimlength', 'dimwidth', 'dimheight', 'dimweight'];\r\n\tinputIds.forEach(id => {\r\n\t  const el = document.getElementById(id);\r\n\t  el.addEventListener('input', () => {\r\n\t\tuser_changed_dimensions = true;\r\n\t  });\r\n\t});\r\n\tsetActiveParcel();\r\n  });\r\n  \r\n  <\/script>\r\n\t\t\t\r\n        <\/div>\r\n        <!--<div class=\"trustpilot-wrapper mt-5\" style=\"position:relative; z-index:1;\">\r\n            <script type=\"text\/javascript\" src=\"\/\/widget.trustpilot.com\/bootstrap\/v5\/tp.widget.bootstrap.min.js\" async><\/script>\r\n            <div class=\"trustpilot-widget w-100 px-3\" data-locale=\"en-US\" data-template-id=\"5406e65db0d04a09e042d5fc\" data-businessunit-id=\"5e1362561dbbcf000152c818\" data-style-height=\"28px\" data-theme=\"dark\" data-style-width=\"100%\" data-font-family=\"Roboto\">\r\n                <a href=\"https:\/\/www.trustpilot.com\/review\/parcelinternational.com\" target=\"_blank\" rel=\"noopener\">Trustpilot<\/a>\r\n            <\/div>\r\n        <\/div>-->\r\n    <\/section>\r\n<div style=\"display:none;\"><div class=\"hiddenSlide\" data-slide=\"0\"><div style=\"width:100%;\"><h1>The Easiest Way to Ship Locally or Worldwide<\/h1><\/div><div style=\"width:100%;\"><p>Whether it\u2019s one parcel or a thousand, we compare 250 carriers so you get the best price and can ship instantly, no account needed. <\/p><\/div><\/div><\/div><style>\r\n\r\n\r\n.calculator-box input.form-control:focus {\r\n  box-shadow: none !important;\r\n  \/*border-color: #ccc;*\/\r\n}\r\n\r\n.country-picker .dropdown-toggle:focus {\r\n  box-shadow: none !important;\r\n  border-color: #ced4da; \/* of je eigen gewenste kleur *\/\r\n  outline: none;\r\n}\r\n\r\n.btn-option {\r\n  display: flex;\r\n  flex-direction: column;\r\n  align-items: center;\r\n  justify-content: center;\r\n  padding: 0.75rem 1rem;\r\n  border: 1px solid #ccc;\r\n  border-radius: 0.5rem;\r\n  cursor: pointer;\r\n  font-size: 0.9rem;\r\n  transition: all 0.2s ease;\r\n  text-align: center;\r\n  flex: 1 1 0;\r\n}\r\n.btn-option i {\r\n  font-size: 1.2rem;\r\n  margin-bottom: 0.25rem;\r\n}\r\n.btn-option.active {\r\n  border-color: #0d6efd;\r\n  background-color: #e8f1ff;\r\n  color: #0d6efd;\r\n  box-shadow: 0 0 0 1px #0d6efd;\r\n}\r\n\r\n\r\n\r\n#origin_country {\r\n    width: 100%;\r\n    padding-left: 55px !important;\r\n}\r\n.country-select{\r\n\twidth:100%;\r\n\tposition:relative !important;\r\n}\r\n\r\n.country-list{\r\n\twidth:100%;\r\n\tposition:relative !important;\r\n}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n  .zipcode-input {\r\n    display: none;\r\n    position: relative;\r\n    animation: fadeIn 0.3s ease forwards;\r\n  }\r\n\r\n  .zipcode-input.show {\r\n    display: block;\r\n  }\r\n\r\n  .zipcode-input .close-btn {\r\n    position: absolute;\r\n    top: 50%;\r\n    right: 12px;\r\n    transform: translateY(-50%);\r\n    border: none;\r\n    background: transparent;\r\n    font-size: 1rem;\r\n    color: #999;\r\n    cursor: pointer;\r\n    padding: 0;\r\n  }\r\n\r\n  @keyframes fadeIn {\r\n    from { opacity: 0; transform: translateY(-4px); }\r\n    to   { opacity: 1; transform: translateY(0); }\r\n  }\r\n  \r\n  .dimensions-wrapper {\r\n  max-height: 0;\r\n  overflow: hidden;\r\n  transition: all 0.3s ease;\r\n  opacity: 0;\r\n}\r\n.dimensions-wrapper.show {\r\n  max-height: 100px; \/* of meer als nodig *\/\r\n  opacity: 1;\r\n}\r\n  \r\n\/* 1. Verberg standaard de .calcresult *\/\r\n.calcresult {\r\n  \/*display: none;*\/\r\n  transition: transform 0.4s ease, opacity 0.4s ease;\r\n  padding-right: 2rem !important;\r\n  padding-left: 2rem !important;\r\n}\r\n\r\n\/* 2. Toon op middelgrote schermen (bijv. tablets) inline naast calctools *\/\r\n@media (min-width: 650px) and (max-width: 940.98px) {\r\n  .calculator-box {\r\n    display: flex;\r\n    gap: 2rem;\r\n  }\r\n  .calcresult {\r\n    display: block !important;\r\n    transform: none !important;\r\n    opacity: 1 !important;\r\n    width: 100%;\r\n\tborder-left: 1px solid #c0bdbd;\r\n    padding-right: 0rem !important;\r\n  }\r\n}\r\n\r\n\/* 3. Slide-in gedrag voor groot \u00e9n klein formaat *\/\r\n@media (max-width: 649.98px), (min-width: 941px) {\r\n    .calculator-box {\r\n  }\r\n\r\n  .calculator-box .calcresult {\r\n\tpadding-top:2rem;\r\n    position: absolute;\r\n    top: 0;\r\n    right: 0;\r\n    bottom: 0;\r\n    width: 100%;\r\n    max-width: 100%;\r\n    z-index: 20;\r\n    \/*transform: translateX(100%);*\/\r\n    opacity: 0;\r\n    transition: transform 0.4s ease, opacity 0.4s ease;\r\n    pointer-events: none; \/* voorkomt klik terwijl buiten beeld *\/\r\n  }\r\n\r\n  .calculator-box .calcresult.slide-in {\r\n    transform: translateX(0);\r\n    opacity: 1;\r\n    pointer-events: auto;\r\n  }\r\n  \r\n  \r\n\r\n}\r\n\r\n\r\n.rate-card-rowed {\r\n  background: white;\r\n  border-radius: 0.5rem;\r\n  border: 1px solid #ddd;\r\n  padding: 0.5rem 0.75rem;\r\n  margin-bottom: 1rem;\r\n  font-size: 0.9rem;\r\n  display: flex;\r\n  flex-direction: column;\r\n  box-shadow: 0 2px 6px rgba(0,0,0,0.05);\r\n}\r\n.rate-card-rowed .label {\r\n  font-weight: 700;\r\n  text-transform: uppercase;\r\n  font-size: 0.75rem;\r\n  color: var(--pi-primary);\r\n  margin-bottom: 0.5rem;\r\n  \r\n}\r\n.rate-content {\r\n  display: grid;\r\n  grid-template-columns: auto 1fr auto;\r\n  align-items: center;\r\n  column-gap: 1rem;\r\n  min-height: 50px;\r\n}\r\n\r\n.rate-carrier {\r\n  background: #f1f1f1;\r\n  font-weight: bold;\r\n  font-size: 0.85rem;\r\n  padding: 0.75rem;\r\n  min-width: 60px;\r\n  text-align: center;\r\n  border-radius: 0.25rem;\r\n}\r\n\r\n.rate-details {\r\n  text-align: center;\r\n  font-size: 0.8rem;\r\n  line-height: 1.3;\r\n  color: #666;\r\n}\r\n\r\n.rate-price {\r\n  font-size: 1.4rem;\r\n  font-weight: bold;\r\n  color: var(--pi-accent);\r\n  text-align: right;\r\n}\r\n.rate-meta {\r\n  font-size: 0.65rem;\r\n  color: #666;\r\n  line-height: 1.3;\r\n  font-weight: 100;\r\n  \/*margin-top: 0.25rem;*\/\r\n}\r\n\r\n.rate-card-rowed:hover{\r\n\tbackground: var(--pi-primary);\r\n\tcursor: pointer;\r\n}\r\n\r\n.rate-card-rowed:hover .rate-price, .rate-card-rowed:hover .label, .rate-card-rowed:hover .rate-details, .rate-card-rowed:hover .rate-meta{\r\n\tcolor:#FFF;\r\n}\r\n\r\n.resultTitleBox{\r\n\tpadding: 0.4em;\r\n\tpadding-bottom:0px;\r\n\tcursor: pointer; \r\n}\r\n\r\n.resultTitleBox:hover{\r\n\tborder-radius: 0.5em;\r\n    \/*background-color: #fff;\r\n    border: 1px solid #ddd;*\/\r\n\tbackground-color: #dddddd80;\r\n}\r\n\r\n<\/style>\r\n\r\n\r\n  <script>\r\n  \r\nfunction hasClass(element, clsName) {\r\n\treturn (' ' + element.className + ' ').indexOf(' ' + clsName + ' ') > -1;\r\n}\r\n\r\nfunction resizeEvt(){\r\n\tconst screenWidth = window.innerWidth;\r\n\tconst toolBox = document.querySelector('.calctools');\r\n\tconst resultBox = document.querySelector('.calcresult');\r\n\r\n\tif(calcState == \"showRates\"){\r\n\t\tif (screenWidth < 640 || screenWidth >= 941) {\r\n\r\n\r\n\t\t\t\t\/\/on small screens we hide the tool because there is not enough space to show both\r\n\t\t\t\t\/\/on large screens we hide the tool, because the calculator switches to smaller widh\r\n\t\t\t\ttoolBox.style.setProperty('display', 'none', 'important');\r\n\t\t\t\t\r\n\t\t\t\tresultBox.classList.add('slide-in');\r\n\t\t\t\t\/\/ init messages\r\n\t\t\t\t\/\/showNextMessage();\r\n\t\t}else{\r\n\t\t\ttoolBox.style.setProperty('display', 'block', 'important');\r\n\t\t\tresultBox.classList.remove('slide-in');\r\n\t\t}\r\n\t}\r\n}\r\n\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n\t\r\n\tconst dropdownEl = document.getElementById('languageDropdownMobile');\r\n\tconst dropdownEl2 = document.getElementById('languageDropdown');\r\n    if (dropdownEl) {\r\n      const dd = bootstrap.Dropdown.getOrCreateInstance(dropdownEl);\r\n      dropdownEl.addEventListener('click', function (e) {\r\n        e.preventDefault();\r\n        dd.toggle();\r\n      });\r\n    }\r\n\tif (dropdownEl2) {\r\n      const dd = bootstrap.Dropdown.getOrCreateInstance(dropdownEl2);\r\n      dropdownEl2.addEventListener('click', function (e) {\r\n        e.preventDefault();\r\n        dd.toggle();\r\n      });\r\n    }\r\n\t  \r\n\t  \r\n\t\r\n\t\r\n    const sliderContainer = document.querySelector('.slider-container');\r\n    const sliderContent = sliderContainer.querySelector('.slider-content');\r\n    const slides = document.querySelectorAll('.hiddenSlide');\r\n\t\r\n    const prevBtn = sliderContainer.querySelector('.slider-prev');\r\n    const nextBtn = sliderContainer.querySelector('.slider-next');\r\n\tconst dots = sliderContainer.querySelectorAll('.dot');\r\n\r\n\r\n    let currentIndex = 0;\r\n    let activeSlideId = 0;\r\n    \/\/let inactiveSlideId = 1;\r\n    const totalSlides = slides.length;\r\n\r\n    let currentDirection = 'next';\r\n\r\n    function updateSlider(direction = currentDirection, overrideNext = false) {\r\n        currentDirection = direction;\r\n        var activeSlide = document.querySelector(`.slide[data-slideview=\"${activeSlideId}\"]`);  \r\n        var otherSlide = document.querySelector(`.slide[data-slideview=\"${activeSlideId === 0 ? 1 : 0}\"]`);\r\n        console.log(activeSlide);\r\n        console.log(otherSlide); \r\n\t\t\/\/alert(totalSlides);\r\n        \/\/const prevIndex = (currentIndex - 1 + totalSlides) % totalSlides;\r\n        var nextIndex = 0;\r\n\t\t\r\n\t\tif(direction == \"next\"){\r\n\t\t\tnextIndex = (currentIndex + 1 + totalSlides) % totalSlides;\r\n\t\t}else{\r\n\t\t\tnextIndex = (currentIndex - 1 + totalSlides) % totalSlides;\r\n\t\t}\r\n\t\t\r\n\t\tif(overrideNext !== false){\r\n\t\t\tnextIndex = overrideNext;\r\n\t\t\t\r\n\t\t\tif(overrideNext > currentIndex){\r\n\t\t\t\tdirection = \"next\";\r\n\t\t\t}else{\r\n\t\t\t\tdirection = \"prev\";\r\n\t\t\t}\r\n\t\t}\r\n\r\n        newContent = slides[nextIndex];\r\n\r\n        if(direction == \"next\"){           \r\n            \/\/set it to the start position  \r\n            otherSlide.style.transition = 'none';\r\n            otherSlide.style.transform = 'translateX(' + ((activeSlide.dataset.slideview) * 100) + '%)';\r\n            otherSlide.style.opacity = '0'; \/\/and hide\r\n            otherSlide.offsetHeight;  \/\/immediately update the screen!\r\n            \r\n            otherSlide.innerHTML = newContent.innerHTML;\r\n\r\n\t\t\totherSlide.style.transition = 'transform 0.5s ease, opacity 0.5s ease'; \/\/set the animation for the coming movement\r\n            activeSlide.style.transition = 'transform 0.5s ease, opacity 0.5s ease';\r\n            \/\/alert(otherSlide.dataset.slideview);\r\n            activeSlide.style.transform = 'translateX(-' + ((parseInt(activeSlide.dataset.slideview,10)+1) * 100) + '%)';\r\n            \/\/alert(activeSlide.style.transform);\r\n            activeSlide.style.opacity = '0';\r\n\r\n            otherSlide.style.transform = 'translateX(-' + ((parseInt(otherSlide.dataset.slideview,10)) * 100) + '%)';\r\n            \/\/alert(otherSlide.style.transform);\r\n            otherSlide.style.opacity = '1';            \r\n\r\n        }else{ \/\/going rightside\r\n\r\n            \/\/set it to the start position  \r\n            otherSlide.style.transition = 'none';\r\n            otherSlide.style.transform = 'translateX(-' + ((parseInt(otherSlide.dataset.slideview,10)+1)*100) + '%)';\r\n            otherSlide.style.opacity = '0'; \/\/and hide\r\n            otherSlide.offsetHeight;  \/\/immediately update the screen!\r\n\r\n            \/\/set the new content\r\n            otherSlide.innerHTML = newContent.innerHTML;\r\n\r\n\t\t\totherSlide.style.transition = 'transform 0.5s ease, opacity 0.5s ease'; \/\/set the animation for the coming movement\r\n            activeSlide.style.transition = 'transform 0.5s ease, opacity 0.5s ease'; \/\/set the animation for the coming movement\r\n            \/\/!!!!WE USE ACTIVESLIDE - OTHERSLIDE HERE ON PURPOSE!!!!\r\n            activeSlide.style.transform = 'translateX(' + (parseInt(otherSlide.dataset.slideview,10) * 100) + '%)';\r\n            activeSlide.style.opacity = '0';\r\n\r\n            otherSlide.style.transform = 'translateX(-' + (parseInt(otherSlide.dataset.slideview,10) * 100) + '%)';\r\n            otherSlide.style.opacity = '1'; \r\n        }\r\n\r\n\t\tcurrentIndex = nextIndex;\r\n        if(activeSlideId === 0){\r\n            activeSlideId = 1;\r\n        }else{\r\n            activeSlideId = 0;\r\n        }\r\n\r\n\t\tdots.forEach((dot, index) => {\r\n\t\t\tdot.classList.remove(\"active\");\r\n\t\t\tif(currentIndex === index){\r\n\t\t\t\tdot.classList.add(\"active\");\r\n\t\t\t}\r\n\t\t});\r\n    }\r\n\tdots.forEach((dot, index) => {\r\n\t\tdot.addEventListener('click', () => {\r\n\t\t\t\/\/currentIndex = (currentIndex - 1 + totalSlides) % totalSlides;\r\n\t\t\tif(!hasClass(dot, \"active\")){\r\n\t\t\t\tupdateSlider('next', index);\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n    if (prevBtn) {\r\n\t\tprevBtn.addEventListener('click', () => {\r\n\t\t\t\/\/currentIndex = (currentIndex - 1 + totalSlides) % totalSlides;\r\n\t\t\tupdateSlider('prev');\r\n\t\t});\r\n\t}\r\n   if (nextBtn) {\r\n\t\tnextBtn.addEventListener('click', () => {\r\n\t\t\t\/\/currentIndex = (currentIndex + 1) % totalSlides;\r\n\t\t\tupdateSlider('next');\r\n\t\t});\r\n   }\r\n\r\n    window.addEventListener('resize', () => resizeEvt());\r\n\r\n    \/\/updateSlider();\r\n\t\r\n\tconst originCountry = $('#originCountry').bootstrap5CountryPicker({\r\n\t  enableCodeSearch: true,\r\n\t  enableNameSearch: true,\r\n\t  dataUrl: 'https:\/\/shippingblue.com\/en\/wp-content\/themes\/parcelinternational\/assets\/',\r\n      debug: true,\r\n      language: 'en',\r\n\t  favorites: ['NL'],\r\n      startText: 'Where do you want to ship from?',\r\n      selectedTextTemplate: 'From: {name} {flag}'\r\n\t});\r\n\r\n\tconst destinationCountry = $('#destinationCountry').bootstrap5CountryPicker({\r\n\t  enableCodeSearch: true,\r\n\t  enableNameSearch: true,\r\n\t  dataUrl: 'https:\/\/shippingblue.com\/en\/wp-content\/themes\/parcelinternational\/assets\/',\r\n      debug: true,\r\n      language: 'en',\r\n\t  favorites: ['NL'],\r\n      startText: 'Where is your shipment going?',\r\n      selectedTextTemplate: 'To: {name} {flag}'\r\n\t});\r\n\r\n    var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle=\"tooltip\"]'))\r\n    tooltipTriggerList.forEach(function (tooltipTriggerEl) {\r\n      new bootstrap.Tooltip(tooltipTriggerEl)\r\n    })\r\n});\r\n\r\njQuery(function () {\r\n\t\/\/alert(jQuery('.hero').data('effect'));\r\n\tconst effectList = jQuery('.hero').data('effect').split(' '); \/\/ ['snow', 'fireworks']\r\n\tif(effectList.includes('snow')){\r\n\t\tjQuery(\".fireworks-overlay\").snowfall({\r\n\t\t\tflakeCount: 40,\r\n\t\t\tmaxSpeed: 3,\r\n\t\t\tmaxSize: 8\r\n\t\t});\r\n\t}\r\n\t\r\n\tif(effectList.includes('hearts')){\r\n\t\tstartHearts(\".fireworks-overlay\");\r\n\t}\r\n\t\r\n\tif(effectList.includes('fireworks')){\r\n\t\tstartSimpleFireworks();\r\n\t}\r\n\t\/\/\r\n\t\/\/startSimpleFireworks();\r\n});\r\n<\/script>\r\n\r\n\r\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-landing.php","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-33","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/shippingblue.com\/en\/wp-json\/wp\/v2\/pages\/33","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/shippingblue.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/shippingblue.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/shippingblue.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/shippingblue.com\/en\/wp-json\/wp\/v2\/comments?post=33"}],"version-history":[{"count":7,"href":"https:\/\/shippingblue.com\/en\/wp-json\/wp\/v2\/pages\/33\/revisions"}],"predecessor-version":[{"id":51,"href":"https:\/\/shippingblue.com\/en\/wp-json\/wp\/v2\/pages\/33\/revisions\/51"}],"wp:attachment":[{"href":"https:\/\/shippingblue.com\/en\/wp-json\/wp\/v2\/media?parent=33"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}