calcIsSlider())">
`; } preViewEl.innerHTML = designHTML; } } function renderSlide (images) { let imageEl = document.querySelector('#giftcard-information-container input[name="image"]'); let wrapListImg = document.querySelector('.giftcard-template-choose-images .splide__track .splide__list'); if(wrapListImg) { wrapListImg.innerHTML = ''; let paginationEl = document.querySelector('.splide__pagination.splide__pagination--ltr'); if (paginationEl) { paginationEl.innerHTML = ''; } images.forEach((img, index) => { if (index === 0) { activeImageSrc = img.src; imageEl.value = img.file; } wrapListImg.innerHTML += `
`; }); new Splide('#giftcard-template-choose-images', { perPage: 4, arrows: false }).mount(); } } function renderTemplates () { if (!defaultTemplate?.canUpload) { if(document.querySelector('.giftcard-template-upload')) { document.querySelector('.giftcard-template-upload').innerHTML = ''; } } let wrapPreviewEl = document.querySelector('.giftcard-template-setting-select'); if(wrapPreviewEl) { wrapPreviewEl.innerHTML = ''; if (Object.keys(templates).length > 5) { let options = ``; for (const prop in templates){ options += `
` } wrapPreviewEl.innerHTML = `
` } else { let isActiveClass = true; for (const prop in templates){ wrapPreviewEl.innerHTML += ` `; isActiveClass = false; } } } } function isImageField (key) { return ['image', 'logo', 'barcode'].includes(key); } function textCss (objCss) { var cssText = ""; for (var prop in objCss){ if (objCss.hasOwnProperty(prop)) { cssText += prop + ": " + objCss[prop] + "; "; } } return cssText; } function calculateScale () { var card = defaultTemplate?.card?.css ?? 0, width = parseInt(card.width, 10), height = parseInt(card.height, 10), maxWidth = Number(document.getElementById('giftcard-template-container')?.offsetWidth) * 0.8, rate = Math.min(maxWidth / width, 350 / height, 1); let templateReview = document.querySelector('.giftcard-template-preview'); if (templateReview) { templateReview.style = textCss({ transform: 'scale(' + rate + ')', height: Math.max(rate * height, 350) + 'px' }); } let tempContainerPreview = document.querySelector('.giftcard-template-container-preview'); if (tempContainerPreview) { tempContainerPreview.style = textCss({ width: rate * width + 'px' }); } if (document.querySelector('.preview-giftcard')) { document.querySelector('.preview-giftcard').style = textCss(card); } } function changeAmount (amount, id, price) { let listAmounts = document.querySelector('ul.giftcard-amount'); var amountEl = document.querySelector('input[name="amount"]'); var rangeAmountEl = document.querySelector('input[name="range_amount"]'); let finalPrice = document.querySelector('.final-price .price'); let listLi = listAmounts.querySelectorAll('li'); listLi.forEach(liEl => { liEl.classList.remove('active'); if (liEl.id === 'amount-' + id) { liEl.classList.add('active'); } }); activeAmount = amount; amountEl.value = amount; rangeAmountEl.value = 0; finalPrice.innerHTML = hyva.formatPrice(price); renderPreviewImg(defaultTemplate.design) } function changeImage (src, id, file) { let imageEl = document.querySelector('#giftcard-information-container input[name="image"]'); imageEl.value = file; activeImageSrc = src; renderPreviewImg(defaultTemplate.design); let listImg = document.querySelectorAll('.giftcard-template-choose-images .image.item-template'); listImg.forEach(img => { img.classList.remove('active'); if (img.id === 'item-template-' + id) { img.classList.add('active'); } }); removeActiveImageUploaded(); } function changeTemplate (prop) { defaultTemplate = templates[prop]; let templateEl = document.querySelector('#giftcard-information-container input[name="template"]'); templateEl.value = defaultTemplate.id; renderSlide(defaultTemplate.images); renderPreviewImg(defaultTemplate.design); if (!defaultTemplate?.canUpload) { document.querySelector('.giftcard-template-upload').style.display = 'none'; } else { document.querySelector('.giftcard-template-upload').style.display = 'block'; } let listBtnTemp = document.querySelectorAll('.giftcard-button-template'); listBtnTemp.forEach(tempEl => { tempEl.classList.remove('active'); if (tempEl.id === 'giftcard-button-template-' + prop) { tempEl.classList.add('active'); } }) } function handleChangeInput (e, name) { if (name === 'from') { from = e.value; } if (name === 'to') { to = e.value; } if (name === 'message') { message = e.value; } renderPreviewImg(defaultTemplate.design); } function handleOnInput (e, min, max, rate) { if (!Number(e.value)) { e.value = '' } else { if (Number(e.value) < min) { e.value = min } if (Number(e.value) > max) { e.value = max } activeAmount = e.value; rateActive = rate; renderPreviewImg(defaultTemplate.design); let finalPrice = document.querySelector('.final-price .price'); finalPrice.innerHTML = hyva.formatPrice(activeAmount * rateActive / 100); var amountEl = document.querySelector('input[name="amount"]'); amountEl.value = activeAmount; var rangeAmountEl = document.querySelector('input[name="range_amount"]'); rangeAmountEl.value = 1; let listAmounts = document.querySelector('ul.giftcard-amount'); let listLi = listAmounts.querySelectorAll('li'); listLi.forEach(liEl => { liEl.classList.remove('active'); }); let liElement = e.closest('li'); liElement.classList.add('active'); } } function checkOpenAmount (e) { if (e.value) { activeAmount = e.value; renderPreviewImg(defaultTemplate.design); let finalPrice = document.querySelector('.final-price .price'); finalPrice.innerHTML = hyva.formatPrice(activeAmount * rateActive / 100); var amountEl = document.querySelector('input[name="amount"]'); amountEl.value = activeAmount; var rangeAmountEl = document.querySelector('input[name="range_amount"]'); rangeAmountEl.value = 1; let listAmounts = document.querySelector('ul.giftcard-amount'); let listLi = listAmounts.querySelectorAll('li'); listLi.forEach(liEl => { liEl.classList.remove('active'); }); let liElement = e.closest('li'); liElement.classList.add('active'); } } function handleChangeDelivery (key, index) { let listLi = document.querySelectorAll('.giftcard-delivery li'); listLi.forEach(liEl => { liEl.classList.remove('active'); if (liEl.id === 'giftcard-delivery-' + key) { liEl.classList.add('active'); } }); let deliveryEl = document.querySelector('#giftcard-information-container input[name="delivery"]'); deliveryEl.value = key; let deliveryFields = initDeliveryFields(productData.delivery[index]); renderDeliveryFileds(deliveryFields); } function uploadFile (e) { let files = (e.files); if (files) { for (const key in files){ if (files.hasOwnProperty(key)) { const file = files[key]; if (file.size > 1048576) { dispatchMessages([ { type: "error", text: 'File size exceeds the maximum allowed size (1 MB)' } ], 5000); } else { var formData = new FormData(); formData.append('image', file); fetch(config.information.fileUploadUrl, { method: 'POST', headers: { "X-Requested-With": "XMLHttpRequest" }, body: formData, mode: "cors", credentials: "include" }) .then(response => response.json()) .then(responseData => { if (!responseData?.error) { activeImageSrc = responseData.url; let imageEl = document.querySelector('#giftcard-information-container input[name="image"]'); imageEl.value = responseData.file; uploadedImages.push(responseData); renderUploadedImages(); renderPreviewImg(defaultTemplate.design); } }) .catch(error => console.error('Error:', error)); } } } } } function renderUploadedImages () { let wrapperUploadedImgs = document.querySelector('#giftcard-template-upload-image'); wrapperUploadedImgs.innerHTML = ``; uploadedImages.forEach((img, index) => { let isActive = index === uploadedImages.length - 1 ? 'active' : ''; wrapperUploadedImgs.innerHTML += `
` }); wrapperUploadedImgs.innerHTML += `
Browse to find or drag image here
`; removeActiveImageChoose(); } function changeImageUploaded (url, file) { activeImageSrc = url; let imageEl = document.querySelector('#giftcard-information-container input[name="image"]'); imageEl.value = file; renderPreviewImg(defaultTemplate.design); removeActiveImageChoose(); let listImg = document.querySelectorAll('.giftcard-template-upload-image .image.item-template'); listImg.forEach(img => { const dataFile = img.getAttribute("data-file"); img.classList.remove('active'); if (dataFile === file) { img.classList.add('active'); } }) } function removeActiveImageChoose () { let listImg = document.querySelectorAll('.giftcard-template-choose-images .image.item-template'); listImg.forEach(img => { img.classList.remove('active'); }); } function removeActiveImageUploaded () { let listImg = document.querySelectorAll('.giftcard-template-upload-image .image.item-template'); listImg.forEach(img => { img.classList.remove('active'); }); } function previewGiftCardEmail() { let amountEl = document.querySelector('#giftcard-information-container input[name="amount"]'), deliveryEl = document.querySelector('#giftcard-information-container input[name="delivery"]'); let imageEl = document.querySelector('#giftcard-information-container input[name="image"]'); let dataSend ={ 'giftcode_pattern': config.information['giftcodePattern'], 'template_id': defaultTemplate.id, 'expire_after': productData.expire_after, 'balance': amountEl.value, 'delivery_method': deliveryEl.value, 'template_fields': JSON.stringify({ 'sender': from ? from : 'Sender name', 'recipient': to, 'message': message }), 'timezone': timezoneValue, 'image': imageEl.value }; let queryParams = ''; for (const key in dataSend) { if (dataSend.hasOwnProperty(key)) { queryParams += `productData[${key}]=${dataSend[key]}&`; } } queryParams = queryParams.slice(0, -1); let path = '/V1/mpgiftcard/preview/email'; var url = BASE_URL + 'rest/' + CURRENT_STORE_CODE + path; url += '?' + new URLSearchParams( queryParams ).toString(); fetch(url,{ headers: { contentType: "application/json", "X-Requested-With": "XMLHttpRequest" }, method: "GET", mode: "cors", credentials: "include" }) .then(function(response) { if (!response.ok) { throw new Error('Network response was not ok'); } return response.json(); }) .then(function(response) { window.openDialogPreview(); document.querySelector('#dom-element-id').innerHTML = response; }) .catch(function(error) { console.error('Error:', error); }); }
• Fully cushioned foot
• Reinforced nylon heel and toe
• Ankle padding
• JR 3-6uk, SR 6-11uk
In stock
- SKU
- SW2104
As low as: £12.99
As low as:
Tax and Duty NOT Included outside of UK
Apple Pay
- Standard Delivery (2-4 Working Days) Free Standard Delivery on orders over £70 *Exclusions apply
- Express Delivery (Next Day Delivery) Order before 3pm for Next Working Day Delivery Orders placed on Friday after 3pm and over the weekend will be dispatched Monday
- Returns Policy All purchases have a 30 day return policy
Description / Suzi Wong Olympic Boxing Socks
Suzi Wong Olympic Boxing Socks -Ribbed Leg, for a secure fit, helps protect calf against fatigue.
Fully Cushioned Foot, aids impact protection and shock absorption.
Arch Support Grip, to minimise friction and movement delivering improved hold in the boot for better traction and stability.
Ankle Padding, strategic cushioning adds comfort and protects.
Reinforced Nylon Heel and Toe, for durability and strength.
Polypropylene Footbed wicks perspiration away from the skin keeping it dry and comfortable.
Loop Terry Impact Protection Zones, extra cushioning for areas of the foot more susceptible to impact and injury.
Materials:
79% Nylon, 15% Polypropylene, 5% Polyester, 1% Elastane