document.addEventListener('DOMContentLoaded', function () { var positionCartBlocks = function () { var blocks = document.querySelectorAll('[data-crosssellpro-block="1"][data-crosssellpro-mode="cart"]'); Array.prototype.forEach.call(blocks, function (block) { var cartContainer = document.querySelector('.card.cart-container'); if (cartContainer && cartContainer.parentNode) { cartContainer.insertAdjacentElement('afterend', block); } }); }; var getStep = function (block) { var track = block.querySelector('.js-crosssellpro-track'); if (!track) { return 280; } var firstItem = track.querySelector('.crosssellpro-item'); if (!firstItem) { return 280; } var style = window.getComputedStyle(track); var gap = parseFloat(style.columnGap || style.gap || '0'); return firstItem.offsetWidth + gap; }; positionCartBlocks(); document.addEventListener('click', function (event) { var prevBtn = event.target.closest('.js-crosssellpro-prev'); if (prevBtn) { var prevBlock = prevBtn.closest('[data-crosssellpro-block="1"]'); var prevViewport = prevBlock ? prevBlock.querySelector('.js-crosssellpro-viewport') : null; if (prevViewport && prevBlock) { event.preventDefault(); prevViewport.scrollBy({ left: -getStep(prevBlock), behavior: 'smooth' }); } return; } var nextBtn = event.target.closest('.js-crosssellpro-next'); if (nextBtn) { var nextBlock = nextBtn.closest('[data-crosssellpro-block="1"]'); var nextViewport = nextBlock ? nextBlock.querySelector('.js-crosssellpro-viewport') : null; if (nextViewport && nextBlock) { event.preventDefault(); nextViewport.scrollBy({ left: getStep(nextBlock), behavior: 'smooth' }); } return; } var addBtn = event.target.closest('[data-crosssellpro-add="1"]'); if (!addBtn) { return; } event.preventDefault(); var block = addBtn.closest('[data-crosssellpro-block="1"]'); if (!block) { window.location.href = addBtn.getAttribute('href') || '/'; return; } var cartUrl = block.getAttribute('data-cart-url'); var returnUrl = block.getAttribute('data-return-url'); var token = block.getAttribute('data-token'); var productId = addBtn.getAttribute('data-id-product'); var qty = addBtn.getAttribute('data-qty') || '1'; var postAddUrl = addBtn.getAttribute('data-post-add-url'); if (!cartUrl || !token || !productId) { window.location.href = returnUrl || cartUrl || '/'; return; } var body = new URLSearchParams(); body.set('token', token); body.set('id_product', productId); body.set('qty', qty); body.set('add', '1'); body.set('action', 'update'); fetch(postAddUrl || cartUrl, { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }, body: body.toString(), credentials: 'same-origin' }) .then(function () { window.location.href = returnUrl || cartUrl; }) .catch(function () { window.location.href = returnUrl || cartUrl || '/'; }); }); });