{"version":3,"file":"wzard-customize-id-page.js","names":["document","addEventListener","URLSearchParams","window","location","search","sizeSelected","colorSelected","idType","$","click","this","hasClass","show","removeClass","addClass","data","getAttribute","url","val","urlEngrave","urlToUse","ajax","method","success","response","error","xhr","status","checkIfAllSelected","ctaElement","querySelector","element","offset","elementPosition","getBoundingClientRect","top","scrollY","scrollTo","behavior","smoothScrollToElement","handleDesktopScroll","upButton","downButton","imagesWrapper","productImages","querySelectorAll","currentPosition","getElementById","sizeContainers","colorContainers","maxScroll","length","style","transform","forEach","sizeContainer","html","container","classList","remove","add","innerHTML","productSize","each","selectedSizeContainer","on","prop","css","text","colorContainer","contains","colorName","productColor","handleColorSelection","selectedColorContainer","pid","textContent","dataUrl","attr","get","selectedVariant","inCart","opacity","err","imageContainer","imageSelected","setAttribute","img","firstColumn","secondColumn","containerRow","Imagewrappercontainer","innerWidth","scrollLeft","marginLeft","isScrollingTogether","firstColumnRect","secondColumnRect","containerRect","bottom","position","customizeid","pdpEditbutton","customizeidQr","find","trim","editPid","type","redirectUrl","href","input","counter","nextElementSibling","previewId","id","previewElement","value","remaining","button","event","stopPropagation","body","previousElementSibling","isExpanded","toggle","toggleReadMore","ready","accordions","accordion","collapseElement"],"sources":["wzard-customize-id-page.js"],"sourcesContent":["document.addEventListener(\"DOMContentLoaded\", function () {\n // Get the full URL\n var urlParams = new URLSearchParams(window.location.search);\n const productData = {};\n\n let sizeSelected = null;\n let colorSelected = null;\n let idType = null;\n\n $(\".engrave-cards-container\").click(function () {\n if ($(this).hasClass(\"selected-engrave-cards-container\")) {\n return;\n }\n $(\".pdpLoader\").show();\n $(\".engrave-cards-container\").removeClass(\n \"selected-engrave-cards-container\"\n );\n $(this).addClass(\"selected-engrave-cards-container\");\n var data = this.getAttribute(\"data-name\");\n idType = data;\n var url = $(\".call-sm\").val();\n var urlEngrave = $(\".call-engrave\").val();\n var cardType = $(this).data(\"name\");\n var urlToUse = cardType === \"QR\" ? url : urlEngrave;\n\n $.ajax({\n url: urlToUse,\n method: \"GET\",\n success: function (response) {\n console.log(\"Response:\", response);\n },\n error: function (xhr, status, error) {\n console.log(\"AJAX error:\", error);\n },\n });\n\n // Check if all selected to handle desktop scroll\n if (checkIfAllSelected()) {\n handleDesktopScroll();\n }\n });\n\n const upButton = document.querySelector(\".up-button\");\n const downButton = document.querySelector(\".down-button\");\n const imagesWrapper = document.querySelector(\".images-wrapper\");\n const productImages = imagesWrapper.querySelectorAll(\".product-colors-image\");\n let imageHeight = 88 + 5 * 2; // Image height (88px) + margin (8px * 2)\n\n const EngraveID = document.querySelector(\".EngraveID-Container\");\n const compareBenifits = document.querySelector(\".compareBenifits\");\n\n const visibleImagesCount = 5;\n let currentPosition = 0;\n const button = document.getElementById(\"customizeid\");\n\n const sizeContainers = document.querySelectorAll(\n \".customize-size-container-variation\"\n );\n const colorContainers = document.querySelectorAll(\n \".customize-color-container\"\n );\n\n // Calculate the max scroll position based on the number of images\n const maxScroll = -(\n (productImages.length - visibleImagesCount) *\n imageHeight\n );\n\n // Function to check if all options are selected\n function checkIfAllSelected() {\n //eslint-disable-line\n\n if (sizeContainers.length == 0 && colorContainers.length == 0) {\n return true;\n }\n\n if (sizeContainers.length != 0 && colorContainers.length != 0) {\n return sizeSelected && colorSelected;\n } else {\n if (sizeContainers.length != 0 && sizeSelected != null) {\n return true;\n } else {\n if (colorContainers.length != 0 && colorSelected != null) {\n return true;\n } else {\n return false;\n }\n }\n }\n }\n\n // Scroll functionality for product images\n upButton.addEventListener(\"click\", function () {\n if (currentPosition < 0) {\n currentPosition += imageHeight;\n imagesWrapper.style.transform = \"translateY(\" + currentPosition + \"px)\";\n }\n });\n\n downButton.addEventListener(\"click\", function () {\n if (currentPosition > maxScroll) {\n currentPosition -= imageHeight;\n imagesWrapper.style.transform = \"translateY(\" + currentPosition + \"px)\";\n }\n });\n\n // Handle size selection\n sizeContainers.forEach(function (sizeContainer) {\n sizeContainer.addEventListener(\"click\", function () {\n $(\"#sizeHeader\").html(\"Size: \");\n sizeContainers.forEach(function (container) {\n return container.classList.remove(\"customize-size-container-active\");\n });\n this.classList.add(\"customize-size-container-active\");\n sizeSelected = this.getAttribute(\"data-size\");\n document.querySelectorAll(\".customize-size\").forEach(function (element) {\n element.innerHTML = sizeSelected;\n });\n productSize = sizeSelected;\n if (checkIfAllSelected()) {\n // handleDesktopScroll();\n }\n $(\"#sizeHeader\").removeClass(\"errorState\");\n $(\".customizeid-sizechart .customize-size-container\").each(function () {\n $(this).removeClass(\"size-error-state\");\n });\n });\n });\n\n const selectedSizeContainer = document.querySelector(\n \".customize-size-container-variation.selected\"\n );\n if (selectedSizeContainer) {\n selectedSizeContainer.classList.add(\"customize-size-container-active\"); // Ensure it's visually active\n sizeSelected = selectedSizeContainer.getAttribute(\"data-size\");\n document.querySelectorAll(\".customize-size\").forEach(function (element) {\n element.innerHTML = sizeSelected;\n });\n productSize = sizeSelected;\n $(\"#sizeHeader\").html(\"Size: \");\n }\n\n // $(\".customize-color-container\").click(function() {\n // $(\".customize-color-container\").removeClass(\"customize-color-active\");\n // $(this).addClass(\"customize-color-active\");\n // });\n\n // $(\"#customizeEngraveid\").click(function () {\n // if ($(\"#EngraveCheckboxPDP\").prop(\"checked\")) {\n // $(\".custom-checkbox-container .checkmark\").css(\"border-color\", \"\");\n // $(\".declaration .text\").css(\"color\", \"\");\n // } else {\n // $(\".custom-checkbox-container .checkmark\").css(\"border-color\", \"#e63946\");\n // $(\".declaration .text\").css(\"color\", \"#e63946\");\n // }\n // });\n\n $(\"#EngraveCheckbox\").on(\"change\", function () {\n if ($(this).prop(\"checked\")) {\n // Reset styles if the checkbox is checked\n $(\".custom-checkbox-container .checkmark\").css({\n \"border-color\": \"#051424\",\n });\n $(\".declaration .text\").css(\"color\", \"#051424\");\n } else {\n $(\"#engravingline3\").val(\"\");\n $(\"#engravingline4\").val(\"\");\n $(\"#pengravingline3\").text(\"\");\n $(\"#pengravingline4\").text(\"\");\n }\n });\n\n function handleColorSelection(colorContainer) {\n // Check if there is only one color and prevent unselecting\n if (colorContainers.length === 1) {\n return; // Exit without changing anything\n }\n if (colorContainer.classList.contains(\"selected\")) {\n // If already selected, reset\n colorSelected = null;\n $(\"#colorHeader\").html(\"Select Your Color: \");\n colorContainer.classList.remove(\"customize-color-active\");\n\n document.querySelectorAll(\".customize-color\").forEach(function (element) {\n element.innerHTML = \"\";\n });\n } else {\n // If not selected, update selection\n $(\"#colorHeader\").html(\"Color: \");\n\n // Remove active class from all\n colorContainers.forEach(function (container) {\n container.classList.remove(\"customize-color-active\");\n });\n\n // Add active class to the clicked one\n colorContainer.classList.add(\"customize-color-active\");\n\n colorSelected = colorContainer.getAttribute(\"data-attr-value\");\n var colorName = colorSelected; // Just a more readable name\n\n document.querySelectorAll(\".customize-color\").forEach(function (element) {\n element.innerHTML = colorName;\n });\n\n productColor = colorName;\n }\n }\n\n // Add event listeners for clicks\n colorContainers.forEach(function (colorContainer) {\n colorContainer.addEventListener(\"click\", function () {\n handleColorSelection(colorContainer);\n $(\"#colorHeader\").removeClass(\"errorState\");\n $(\".customize-color-container\").each(function () {\n $(this).removeClass(\"color-error-state\");\n });\n });\n });\n\n const selectedColorContainer = document.querySelector(\n \".customize-color-container.selected\"\n );\n if (selectedColorContainer) {\n selectedColorContainer.classList.add(\"customize-color-active\"); // Ensure it's visually active\n colorSelected = selectedColorContainer.getAttribute(\"data-attr-value\");\n productColor = colorSelected;\n\n // Update UI with the selected color name\n document.querySelectorAll(\".customize-color\").forEach(function (element) {\n element.innerHTML = colorSelected;\n });\n\n $(\"#colorHeader\").html(\"Color: \");\n var pid = $(\".product-id\")[0].textContent;\n var dataUrl = $(\"#selectedVariationURL\").attr(\"data-url\");\n var urlParams = new URLSearchParams(window.location.search);\n var editPid = urlParams.get(\"editPid\");\n if (!editPid) {\n $.ajax({\n url: dataUrl,\n method: \"POST\",\n data: { selectedVariant: pid },\n success: function (response) {\n if (response.inCart) {\n $(\"#customizeid , #customizeidQr\")\n .text(\"Already In Your Cart\")\n .css({ opacity: \"0.5\", \"pointer-events\": \"none\" });\n } else {\n $(\"#customizeid , #customizeidQr\")\n .text(\"Next\")\n .css({ opacity: \"1\", \"pointer-events\": \"auto\" });\n }\n },\n error: function (err) {\n console.error(\"Error fetching product variation:\", err);\n },\n });\n }\n }\n\n // Handle product image selection\n productImages.forEach(function (imageContainer) {\n imageContainer.addEventListener(\"click\", function () {\n // Update selected image\n imageSelected = this.querySelector(\"img\").getAttribute(\"src\");\n document\n .querySelector(\".Product-image img\")\n .setAttribute(\"src\", imageSelected);\n\n productImages.forEach(function (img) {\n return img.classList.remove(\"product-colors-image-border\");\n });\n this.classList.add(\"product-colors-image-border\");\n\n // checkIfAllSelected();\n });\n });\n\n const firstColumn = document.querySelector(\".product-container-col\");\n const secondColumn = document.querySelector(\".customizeid-col\");\n const containerRow = document.querySelector(\".product-container-row\");\n\n const Imagewrappercontainer = document.querySelector(\n \".images-wrapper-container\"\n );\n\n Imagewrappercontainer.addEventListener(\"scroll\", function () {\n if (window.innerWidth < 767) {\n if (Imagewrappercontainer.scrollLeft > 0) {\n Imagewrappercontainer.style.marginLeft = \"0px\"; // Remove left margin when scrolling\n } else {\n Imagewrappercontainer.style.marginLeft = \"16px\"; // Restore margin when scrolled back\n }\n }\n });\n\n let isScrollingTogether = false; // Track whether the columns are scrolling together\n\n const handleScroll = function () {\n const isDesktop = window.innerWidth > 1200; // Desktop breakpoint\n if (!isDesktop) return; // Exit if not on desktop\n\n const firstColumnRect = firstColumn.getBoundingClientRect();\n const secondColumnRect = secondColumn.getBoundingClientRect();\n const containerRect = containerRow.getBoundingClientRect();\n\n // Check if the second column has reached the bottom of the first column\n if (secondColumnRect.bottom <= firstColumnRect.bottom) {\n if (isScrollingTogether) {\n isScrollingTogether = true; // Update state to scrolling together\n firstColumn.style.position = \"relative\";\n firstColumn.style.top =\n \"\" + secondColumnRect.top - containerRect.top + \"px\";\n }\n } else if (secondColumnRect.top <= containerRect.top) {\n // Reset sticky behavior when scrolling back up\n if (!isScrollingTogether) {\n isScrollingTogether = false; // Update state to not scrolling together\n firstColumn.style.position = \"sticky\";\n firstColumn.style.top = \"88px\";\n }\n }\n };\n\n window.addEventListener(\"scroll\", handleScroll);\n\n // Re-check window size on resize to enable/disable the function dynamically\n window.addEventListener(\"resize\", function () {\n const isDesktop = window.innerWidth >= 1200; // Desktop breakpoint\n if (!isDesktop) {\n // Reset styles if switching to mobile\n firstColumn.style.position = \"\";\n firstColumn.style.top = \"\";\n }\n });\n\n // Helper function to smoothly scroll to an element\n function smoothScrollToElement(element, offset = 0) {\n const elementPosition =\n element.getBoundingClientRect().top + window.scrollY - offset;\n window.scrollTo({\n top: elementPosition - 300,\n behavior: \"smooth\",\n });\n }\n\n // Desktop: Trigger scroll when validation is complete\n function handleDesktopScroll() {\n const ctaElement = document.querySelector(\"#customizeid\"); // Replace with your CTA button selector\n const desktopOffset = 100; // Adjust offset to ensure button is above the fold\n smoothScrollToElement(ctaElement, desktopOffset);\n }\n\n const customizeid = document.getElementById(\"customizeid\");\n const pdpEditbutton = document.getElementById(\"pdpEditbutton\");\n const customizeidQr = document.getElementById(\"customizeidQr\");\n\n pdpEditbutton?.addEventListener(\"click\", function () {\n document.querySelector(\".custom-engrave-container\").classList.add(\"d-none\");\n document.querySelector(\".engravepdplikeheader\").classList.remove(\"d-none\");\n document\n .querySelector(\".engrave-plp-card-container\")\n .classList.remove(\"d-none\");\n document\n .querySelector(\".productOnlyContainerPDP\")\n .classList.remove(\"d-none\");\n // $(\".engraveBar\").addClass(\"d-none\");\n $(\".engraveBar\").removeClass(\"Wizard-account\");\n $(\".Wizard-account-bar, .Wizard-engrave-bar\").css(\n \"background-color\",\n \"#828991\"\n );\n $(\".Wizard-engrave\").removeClass(\"progress-active\");\n $(\".Wizard-account\").removeClass(\"progress-deactive\");\n $(\".Wizard-account\").addClass(\"progress-active\");\n $(\".Wizard-checked-circle-account\").removeClass(\"Wizard-account-circle\");\n });\n\n customizeid.addEventListener(\"click\", function () {\n window.scrollTo({\n top: 0,\n behavior: \"smooth\", // Enables smooth scrolling\n });\n if (checkIfAllSelected()) {\n document\n .querySelector(\".custom-engrave-container\")\n .classList.remove(\"d-none\");\n document.querySelector(\".engravepdplikeheader\").classList.add(\"d-none\");\n document\n .querySelector(\".engrave-plp-card-container\")\n .classList.add(\"d-none\");\n document\n .querySelector(\".productOnlyContainerPDP\")\n .classList.add(\"d-none\");\n $(\".engraveBar\").removeClass(\"d-none\");\n $(\".Wizard-account-bar, .Wizard-engrave-bar\").css(\n \"background-color\",\n \"#0f7ef8\"\n );\n $(\".Wizard-engrave\").addClass(\"progress-active\");\n $(\".Wizard-account\").removeClass(\"progress-active\");\n $(\".Wizard-account\").addClass(\"progress-deactive\");\n $(\".Wizard-checked-circle-account\").addClass(\"Wizard-account-circle\");\n } else {\n if (colorSelected == null) {\n $(\"#colorHeader\").addClass(\"errorState\");\n $(\".customize-color-container\").each(function () {\n $(this).addClass(\"color-error-state\");\n });\n }\n if (sizeSelected == null) {\n $(\"#sizeHeader\").addClass(\"errorState\");\n $(\".customizeid-sizechart .customize-size-container\").each(function () {\n $(this).addClass(\"size-error-state\");\n });\n }\n }\n });\n\n customizeidQr?.addEventListener(\"click\", function () {\n window.scrollTo({\n top: 0,\n behavior: \"smooth\", // Enables smooth scrolling\n });\n if (checkIfAllSelected()) {\n // Check if all options are selected\n var pid = null;\n $(\".modern-product-detail\").each(function () {\n pid = $(this).find(\".product-id\").text();\n });\n var idType = $(\"#idType\").text().trim();\n var url = $(\".move-to-plan\").val();\n var urlParams = new URLSearchParams(window.location.search);\n var editPid = urlParams.get(\"editPid\");\n $.ajax({\n url: url,\n type: \"POST\",\n data: {\n pid: pid,\n idType: idType,\n editPid: editPid\n },\n success: function (response) {\n if (response.redirectUrl) {\n window.location.href = response.redirectUrl;\n }\n },\n error: function (xhr, status, error) {\n console.log(\"Error:\", error);\n },\n });\n } else {\n if (colorSelected == null) {\n $(\"#colorHeader\").addClass(\"errorState\");\n $(\".customize-color-container\").each(function () {\n $(this).addClass(\"color-error-state\");\n });\n }\n if (sizeSelected == null) {\n $(\"#sizeHeader\").addClass(\"errorState\");\n $(\".customizeid-sizechart .customize-size-container\").each(function () {\n $(this).addClass(\"size-error-state\");\n });\n }\n }\n });\n\n document.querySelectorAll(\".engraveInput\").forEach(function (input) {\n const counter = input.nextElementSibling; // Selects the adjacent counter div\n input.addEventListener(\"input\", function () {\n const previewId = \"p\" + input.id;\n const previewElement = document.getElementById(previewId);\n if (previewElement) {\n previewElement.textContent = input.value; // Update preview with input value\n }\n const maxLength = input.getAttribute(\"maxlength\");\n const remaining = maxLength - input.value.length;\n counter.textContent = remaining; // Updates the counter text\n });\n });\n\n // Handle Read More functionality\n document.querySelectorAll(\".read-more\").forEach(function (button) {\n button.addEventListener(\"click\", function (event) {\n toggleReadMore(this, event);\n });\n });\n\n function toggleReadMore(button, event) {\n event.stopPropagation(); // Prevent accordion collapse\n const body = button.previousElementSibling;\n const isExpanded = body.classList.toggle(\"expanded\");\n button.textContent = isExpanded ? \"Read Less\" : \"Read More\";\n }\n\n $(document).ready(function () {\n const accordions = $(\".accordion-item\");\n\n accordions.each(function () {\n const accordion = $(this);\n const collapseElement = accordion.find(\".collapse\");\n\n collapseElement.on(\"show.bs.collapse\", function () {\n accordions.removeClass(\"active\");\n accordion.addClass(\"active\");\n });\n\n collapseElement.on(\"hidden.bs.collapse\", function () {\n accordion.removeClass(\"active\");\n });\n });\n\n // Ensure accordion remains open when clicking a link that opens in a new tab\n $(document).ready(function () {\n const accordions = $(\".accordion-item\");\n\n accordions.each(function () {\n const accordion = $(this);\n const collapseElement = accordion.find(\".collapse\");\n\n collapseElement.on(\"show.bs.collapse\", function () {\n accordions.removeClass(\"active\");\n accordion.addClass(\"active\");\n });\n\n collapseElement.on(\"hidden.bs.collapse\", function () {\n accordion.removeClass(\"active\");\n });\n });\n\n // Prevent accordion from closing when clicking a link inside it\n $(\".accordion-item a[target='_blank']\").on(\"click\", function (event) {\n event.stopPropagation(); // Stops Bootstrap from handling this click\n });\n });\n });\n});\n"],"mappings":"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"}