PageSourceSearch

https://www.damon.nl/templates/default/scripts/shoppingcart.min.js?v=1776140386

js damon.nl collected 2026-10-02 11:24:32 UTC 18,973 bytes, 1 lines download raw bytes

1function updateSummary(data){const explData=data.split("|"),winkelwagenBadge=document.querySelector(".winkelwagenBtn .badge");winkelwagenBadge&&(winkelwagenBadge.innerText=explData[1]);const summarySubtotal=document.querySelector(".summary .subtotal");summarySubtotal&&(summarySubtotal.innerText="€ "+number_format(explData[3],2,",","."));const summaryBTW=document.querySelector(".summary .btw");summaryBTW&&(summaryBTW.innerText="€ "+number_format(explData[4],2,",","."));const summaryVerzendkosten=document.querySelector(".summary .verzendkosten");summaryVerzendkosten&&(0==explData[5]?summaryVerzendkosten.innerHTML="<span>Gratis</span>":summaryVerzendkosten.innerText="€ "+number_format(explData[5],2,",","."));const summaryTotal=document.querySelector(".summary dd.total");summaryTotal&&(summaryTotal.innerText="€ "+number_format(explData[7],2,",","."))}function updateSummaryCard(data){const explData=data.split("|"),winkelwagenBadge=document.querySelector(".winkelwagenBtn .badge");winkelwagenBadge&&(winkelwagenBadge.innerText=explData[1]);const summarySubtotal=document.querySelector(".summaryCard .subtotal");summarySubtotal&&(summarySubtotal.innerText="€ "+number_format(explData[3],2,",","."));const summaryBTW=document.querySelector(".summaryCard .btw");summaryBTW&&(summaryBTW.innerText="€ "+number_format(explData[4],2,",","."));const summaryVerzendkosten=document.querySelector(".summaryCard .verzendkosten");summaryVerzendkosten&&(0==explData[5]?summaryVerzendkosten.innerHTML="<span>Gratis</span>":summaryVerzendkosten.innerText="€ "+number_format(explData[5],2,",","."));const summaryTotal=document.querySelector(".summaryCard dd.total");summaryTotal&&(summaryTotal.innerText="€ "+number_format(explData[7],2,",","."))}function checkAdres(event){var beforeId="";-1!==event.target.id.indexOf("aflever")&&(beforeId="aflever_");var isLogin=document.body.classList.contains("com_login"),invoiceSameInput=document.querySelector('input[name="bezorg_factuur_gelijk"]'),isSame=invoiceSameInput&&invoiceSameInput.checked,postcodeField=document.querySelector("#"+beforeId+"postcode"),huisnummerField=document.querySelector("#"+beforeId+"huisnummer"),landField=document.querySelector("#"+beforeId+"land"),postcode=postcodeField?postcodeField.value.trim():"",huisnummer=huisnummerField?huisnummerField.value.trim():"",land=landField?landField.value.trim():"";"NL"===land&&-1!==postcode.indexOf(" ")&&(postcode=postcode.replace(/\s+/g,""),postcodeField&&(postcodeField.value=postcode));var postalRequired=["NL","BE","DE","FR","LU","AT","CH","SE","NO","DK","FI","IT","ES","PT","IE","PL","CZ","SK","HU"],postcodeRegex=/^\d{4}[A-Z]{2}$/,isRequired=-1!==postalRequired.indexOf(land);if(postcodeField&&(postcodeField.required=isRequired),huisnummerField&&(huisnummerField.required="NL"===land),isLogin&&""===beforeId){var afleverPostcodeField=document.querySelector("#aflever_postcode"),afleverHuisnummerField=document.querySelector("#aflever_huisnummer");afleverPostcodeField&&(afleverPostcodeField.required=isRequired),afleverHuisnummerField&&(afleverHuisnummerField.required="NL"===land)}if(!isLogin&&isSame&&"aflever_"===beforeId){var basisPostcodeField=document.querySelector("#postcode"),basisHuisnummerField=document.querySelector("#huisnummer"),basisLandField=document.querySelector("#land");basisPostcodeField&&(basisPostcodeField.value=postcode,basisPostcodeField.required=isRequired,basisPostcodeField.classList.remove("is-valid"),basisPostcodeField.classList.remove("is-invalid")),basisHuisnummerField&&(basisHuisnummerField.value=huisnummer,basisHuisnummerField.required="NL"===land,basisHuisnummerField.classList.remove("is-valid"),basisHuisnummerField.classList.remove("is-invalid")),basisLandField&&(basisLandField.value=land)}if("NL"!==land){if(postcodeField&&(postcodeField.classList.remove("is-valid"),postcodeField.classList.remove("is-invalid")),isRequired&&""===postcode)return void(postcodeField&&postcodeField.classList.add("is-invalid"));if(!isRequired&&""===postcode)return;return postcodeField&&postcodeField.classList.add("is-valid"),void(huisnummerField&&(huisnummerField.classList.remove("is-invalid"),""!==huisnummer?huisnummerField.classList.add("is-valid"):huisnummerField.classList.remove("is-valid")))}if(postcodeField&&(postcodeField.classList.remove("is-valid"),postcodeField.classList.remove("is-invalid")),postcodeRegex.test(postcode))if(huisnummer){huisnummerField&&(huisnummerField.classList.remove("is-invalid"),huisnummerField.classList.add("is-valid")),postcodeField&&postcodeField.classList.add("is-valid");var query=postcode+" "+huisnummer,url="https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?q="+encodeURIComponent(query);fetch(url).then(function(response){return response.json()}).then(function(data){if(data&&data.response&&data.response.docs&&data.response.docs.length>0){var adres=data.response.docs[0],adresField=document.querySelector("#"+beforeId+"adres");
1adresField&&(adresField.value=adres.straatnaam,validateField(adresField));var woonplaatsField=document.querySelector("#"+beforeId+"woonplaats");woonplaatsField&&(woonplaatsField.value=adres.woonplaatsnaam,validateField(woonplaatsField));var invoiceSame=document.querySelector('input[name="bezorg_factuur_gelijk"]');if(invoiceSame&&invoiceSame.checked){var factuurAdresField=document.querySelector("#adres");factuurAdresField&&(factuurAdresField.value=adres.straatnaam,validateField(factuurAdresField));var factuurWoonplaatsField=document.querySelector("#woonplaats");factuurWoonplaatsField&&(factuurWoonplaatsField.value=adres.woonplaatsnaam,validateField(factuurWoonplaatsField))}if(document.body.classList.contains("com_login")&&""===beforeId){var afleverAdresField=document.querySelector("#aflever_adres");afleverAdresField&&(afleverAdresField.value=adres.straatnaam,validateField(afleverAdresField));var afleverWoonplaatsField=document.querySelector("#aflever_woonplaats");afleverWoonplaatsField&&(afleverWoonplaatsField.value=adres.woonplaatsnaam,validateField(afleverWoonplaatsField))}}}).catch(function(error){console.error("Fout bij ophalen:",error)})}else huisnummerField&&huisnummerField.classList.add("is-invalid");else postcodeField&&postcodeField.classList.add("is-invalid")}function validateField(field){if(!field.classList.contains("dontvalidate")){const value=field.value.trim(),type=field.getAttribute("type"),isRequired=field.hasAttribute("required");let isValid=!0;if(isRequired&&""===value&&(isValid=!1),"email"===type){const emailRegex=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;isValid=emailRegex.test(value)}if(("tel"===type||"telefoon"===field.name)&&""!==value){const telRegex=/^[\d\s()+-]{9,}$/;isValid=telRegex.test(value)}if("postcode"==field.name||"aflever_postcode"==field.name){let landField=document.querySelector("#aflever_land");"postcode"==field.name&&(landField=document.querySelector("#land"));const postcodeRegex=/^\d{4}\s?[A-Z]{2}$/;if(!postcodeRegex.test(value)&&"NL"==landField.value)return field.classList.remove("is-valid"),void field.classList.add("is-invalid");if("NL"!=landField.value){let postcodeField=document.querySelector("#aflever_postcode");return"land"==landField.id&&(postcodeField=document.querySelector("#postcode")),postcodeField.classList.remove("is-invalid"),void postcodeField.classList.add("is-valid")}}if("password"===type){const passwordField=document.querySelector("#password"),passwordControlField=document.querySelector("#password_controle");passwordField.value==passwordControlField.value&&""!=passwordField.value&&""!=passwordControlField.value&&passwordField.value.length>=8&&passwordControlField.value.length>=8?(passwordField.classList.remove("is-invalid"),passwordControlField.classList.remove("is-invalid"),passwordField.classList.add("is-valid"),passwordControlField.classList.add("is-valid")):(passwordField.classList.remove("is-valid"),passwordControlField.classList.remove("is-valid"),passwordField.classList.add("is-invalid"),passwordControlField.classList.add("is-invalid"))}else isValid?(field.classList.remove("is-invalid"),field.classList.add("is-valid")):(field.classList.remove("is-valid"),field.classList.add("is-invalid"));const form=document.querySelector('[name="gegevensForm"]');if(form){const fields=form.querySelectorAll("input, textarea, select"),paymentButtons=document.querySelectorAll('.payments button[type="submit"]');let allValid=!0;fields.forEach(field=>{const isRequired=field.hasAttribute("required");let valueEmpty=!1;valueEmpty="checkbox"===field.type||"radio"===field.type?!field.checked:!field.value.trim(),(field.classList.contains("is-invalid")||isRequired&&valueEmpty)&&(allValid=!1)}),paymentButtons.forEach(btn=>{btn.disabled=!allValid})}}}function checkAllValid(){let allValid=!0;const fields=form.querySelectorAll("input, textarea, select");return fields.forEach(field=>{const isRequired=field.hasAttribute("required");let valueEmpty=!1;valueEmpty="checkbox"===field.type||"radio"===field.type?!field.checked:!field.value.trim(),(field.classList.contains("is-invalid")||isRequired&&valueEmpty)&&(allValid=!1)}),allValid}document.addEventListener("DOMContentLoaded",function(){const formFields=document.querySelectorAll("input, select, textarea");formFields&&formFields.forEach(field=>{["input","change","blur"].forEach(eventName=>{field.addEventListener(eventName,()=>validateField(field))})});const fields=document.querySelectorAll("#aflever_postcode, #aflever_huisnummer, #aflever_land,\t#postcode, #huisnummer, #land");fields.forEach(field=>{field.addEventListener("blur",event=>{let landField=document.querySelector("#land"),postcodeField=document.querySelector("#postcode");if("aflever_land"!=event.target.name&&"aflever_postcode"!=event.target.name||(landField=document.querySelector("#aflever_land"),postcodeField=document.querySelector("#aflever_postcode")),"land"==event.target.name||"aflever_land"==event.target.name){let tooltip=bootstrap.Tooltip.getInstance(postcodeField);"NL"===landField.value?tooltip||(tooltip=new bootstrap.Tooltip(postcodeField,{title:"1111AA (met kapitalen)",trigger:"focus"})):tooltip&&tooltip.dispose()}checkAdres(event)})});const amountField=document.querySelector('.cartItem input[name="amount"]');
1if(amountField){const allAmountFields=document.querySelectorAll('input[name="amount"]');allAmountFields.forEach(field=>{field.addEventListener("change",event=>{const postValues=[],idField=event.target.parentNode.querySelector('input[name="id"]');postValues.action="amount",postValues.id=idField.value,postValues.amount=event.target.value,ajax.post("/app/components/com_webshop/helpers/ajax.php",postValues,function(data){const explData=data.split("|");if("SUCCESS"==explData[0]){const prodPrice=event.target.parentNode.parentNode.querySelector(".prodPrice");prodPrice.innerText=explData[2],updateSummary(data)}else console.log(data)})})})}const emailField=document.querySelector('input[name="email"]');emailField&&emailField.addEventListener("change",event=>{const emailField=event.target,emailRegex=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,emailValid=emailRegex.test(emailField.value),submitButtons=document.querySelectorAll('.payments button[type="submit"]');emailValid&&""!=emailField.value&&!emailField.classList.contains("is-invalid")?(emailField.classList.remove("is-invalid"),submitButtons&&submitButtons.forEach(button=>{console.log("Disable2"),button.disabled=!1})):(emailField.classList.add("is-invalid"),submitButtons&&submitButtons.forEach(button=>{button.disabled=!0}))});const remarkField=document.querySelector("#opmerkingenCart");remarkField&&remarkField.addEventListener("blur",event=>{const postValues=[];postValues.action="remarks",postValues.remarkfield=event.target.value,ajax.post("/app/components/com_webshop/helpers/ajax.php",postValues,function(data){})});const cadeaupapier=document.querySelector("#cadeaupapier");cadeaupapier&&cadeaupapier.addEventListener("change",event=>{const giftpaperProduct=document.getElementById("giftpaperProduct"),postValues=[];postValues.action="giftpaper",postValues.prod_id="357",!0===event.target.checked?(postValues.amount="1",giftpaperProduct&&giftpaperProduct.classList.remove("d-none")):(postValues.amount="0",giftpaperProduct&&giftpaperProduct.classList.add("d-none")),ajax.post("/app/components/com_webshop/helpers/ajax.php",postValues,function(data){const explData=data.split("|");"SUCCESS"==explData[0]?(updateSummary(data),console.log(data)):console.log(data)})});const removeItemButtons=document.querySelectorAll(".removeItem");removeItemButtons&&removeItemButtons.forEach(button=>{button.parentNode.parentNode.parentNode.classList.add("show"),button.addEventListener("click",event=>{let cartItem=event.target.parentNode.parentNode.parentNode,button=event.target;"i"==event.target.tagName.toLowerCase()&&(cartItem=event.target.parentNode.parentNode.parentNode.parentNode,button=event.target.parentNode);const postValues=[];postValues.action="removeitem",postValues.id=button.dataset.id,ajax.post("/app/components/com_webshop/helpers/ajax.php",postValues,function(data){const explData=data.split("|");"SUCCESS"==explData[0]?(updateSummary(data),cartItem.classList.remove("show"),cartItem.classList.add("fadeOut"),setTimeout(function(){cartItem.classList.add("d-none")},300)):console.log(data)})})});const passwordField=document.querySelector("#password");if(passwordField){const passwordControlField=document.querySelector("#password_controle"),fieldArray=[passwordField,passwordControlField];fieldArray.forEach(field=>{["input","change","blur"].forEach(event=>{passwordField.value!=passwordControlField.value?(passwordField.classList.remove("is-valid"),passwordControlField.classList.remove("is-valid"),passwordField.classList.add("is-invalid"),passwordControlField.classList.add("is-invalid")):(passwordField.classList.remove("is-invalid"),passwordControlField.classList.remove("is-invalid"),passwordField.classList.add("is-valid"),passwordControlField.classList.add("is-valid"))})})}const accountRadios=document.querySelectorAll('input[name="account_aanmaken"]');accountRadios&&accountRadios.forEach(radio=>{radio.addEventListener("change",event=>{const passwordField=document.querySelector('input[name="password"]'),passwordCheckField=document.querySelector('input[name="password_controle"]');"Ja"==event.target.value?(passwordField.parentElement.parentElement.classList.remove("d-none"),passwordCheckField.parentElement.parentElement.classList.remove("d-none")):(passwordField.parentElement.parentElement.classList.add("d-none"),passwordCheckField.parentElement.parentElement.classList.add("d-none"))})});const businessField=document.querySelectorAll('input[name="zakelijke_bestelling"]');businessField&&businessField.forEach(radio=>{radio.addEventListener("change",event=>{const bedrijfsnaamField=document.querySelector('input[name="bedrijfsnaam"]');"Ja"==event.target.value?bedrijfsnaamField.parentElement.parentElement.classList.remove("d-none"):bedrijfsnaamField.parentElement.parentElement.classList.add("d-none")})});const invoiceField=document.querySelectorAll('input[name="bezorg_factuur_gelijk"]');invoiceField&&invoiceField.forEach(radio=>{radio.addEventListener("change",event=>{const invoiceDiv=document.querySelector(".invoiceData");invoiceDiv&&invoiceDiv.classList.toggle("d-none")})});const landInputs=document.querySelectorAll('[name="aflever_land"]');
1landInputs&&landInputs.forEach(input=>{input.addEventListener("change",event=>{const postValues=[];postValues.action="changecountry",postValues.session_id=document.querySelector('[name="session_id"]').value,postValues.afleverland=event.target.value,ajax.post("/app/components/com_webshop/helpers/ajax.php",postValues,function(data){const explData=data.split("|");if("SUCCESS"==explData[0]){const summary=document.querySelector(".summary");summary?updateSummary(data):updateSummaryCard(data)}else console.log(data)})})});const afleverInputs=document.querySelectorAll(".afleverInput");afleverInputs&&afleverInputs.forEach(input=>{input.addEventListener("change",event=>{let targetName=event.target.name;const afleverField=document.querySelector(`[name="aflever_${targetName}"`);afleverField.value=event.target.value,validateField(afleverField)})});const afleverInputOneCart=document.querySelectorAll(".afleverInputOneCart");afleverInputOneCart&&afleverInputOneCart.forEach(input=>{input.addEventListener("change",event=>{let targetName=event.target.name;event.target.id.includes("aflever")&&(targetName=targetName.replace("aflever_",""));const afleverField=document.querySelector(`[name="${targetName}"`);afleverField.value=event.target.value,validateField(afleverField)})});const summaryButton=document.querySelector('.summary .btn:not([name="kortingBtn"])');summaryButton&&summaryButton.addEventListener("click",event=>{const step=event.target.dataset.step;if(1!=step){let formBtn;event.preventDefault(),2==step&&(formBtn=document.querySelector("#submitData")),3==step&&(formBtn=document.querySelector("#paymentSubmit")),null!=formBtn&&formBtn.click()}});const paymentItems=document.querySelectorAll(".payments .card-header");if(paymentItems){const paymentForm=document.querySelector(".paymentScreen");paymentForm&&paymentForm.addEventListener("submit",event=>{const inputField=document.querySelector("#betaalmethode"),paymentSubmit=document.querySelector("#paymentSubmit"),summaryButton=document.querySelector(".summary .btn");null==inputField.value||null==inputField.value||""==inputField.value?event.preventDefault():(paymentSubmit.disabled=!0,summaryButton.classList.add("disabled"))});const form=document.querySelector('[name="gegevensForm"]');if(form){const paymentButtons=document.querySelectorAll('.payments button[type="submit"]');let allValid=checkAllValid();paymentButtons.forEach(btn=>{btn.disabled=!allValid}),paymentItems.forEach(item=>{item.addEventListener("click",event=>{const inputField=event.target.querySelector("input"),button=event.target.querySelector("button");if(inputField&&event.target!=button&&(inputField.checked=!0),!allValid){const leveringsvoorwaarden=document.querySelector("#leveringsvoorwaarden");if(leveringsvoorwaarden&&0==leveringsvoorwaarden.checked){leveringsvoorwaarden.classList.add("is-invalid");const parentEl=leveringsvoorwaarden.parentElement;parentEl.setAttribute("data-bs-toggle","tooltip"),parentEl.setAttribute("data-bs-placement","top"),parentEl.setAttribute("title","Voorwaarden zijn verplicht");const tooltip=new bootstrap.Tooltip(parentEl);tooltip.show(),setTimeout(()=>{tooltip.hide()},5e3)}const algemenevoorwaarden=document.querySelector("#algemenevoorwaarden");if(algemenevoorwaarden&&0==algemenevoorwaarden.checked){algemenevoorwaarden.classList.add("is-invalid");const parentEl=algemenevoorwaarden.parentElement;parentEl.setAttribute("data-bs-toggle","tooltip"),parentEl.setAttribute("data-bs-placement","top"),parentEl.setAttribute("title","Voorwaarden zijn verplicht");const tooltip=new bootstrap.Tooltip(parentEl);0!=leveringsvoorwaarden.checked&&(tooltip.show(),setTimeout(()=>{tooltip.hide()},5e3))}}})})}}});

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.