/* File for Adding Custom script related to Loqate */ pca.on("load", function(type, id, control) { control.listen("populate", function() { if ($('select[name$="shippingAddress_addressFields_states_stateCode"]').length > 0) { $('body').trigger('shipping:forceUpdateShippingList'); $('.form-control').each(function () { const $field = $(this); $field.closest('.form-group').toggleClass('is-active', !!($field.val() || $field.val() === 0)); }); $('.shippingAddressOne.is-invalid, .shippingZipCode.is-invalid, .shippingAddressCity.is-invalid, .billingAddressOne.is-invalid, .billingAddressCity.is-invalid, .billingZipCode.is-invalid').each(function () { $(this).parent('.form-group').removeClass('isInvalid').addClass('isValid'); $(this).removeClass('is-invalid').addClass('is-valid'); $(this).parent('.form-group').find('.invalid-feedback').hide(); }); } }); control.listen("display", function (results, template, attributes) { var searchValue = $(control.autocomplete.field).val().toLowerCase(); var address = control; results = results.filter(function(result) { return result.Type === "Address" && !result.Text.toLowerCase().includes('po box'); }); if (results.length === 0 && searchValue.includes("po")) { results.push({ Description: "PO Box Addresses are not permitted", Highlight: "", HighlightedDescription: "", HighlightedText: "", Id: "", Text: "", Type: "", tag: "", title: "" }); } function clearPromptTimer() { if (address.lastActionTimer != null) { window.clearTimeout(address.lastActionTimer); address.lastActionTimer = null; } }; function showPromptMessage() { address.message(pca.messages[address.language].KEEPTYPING); } address.autocomplete.header.hide(); address.highlight(results); address.autocomplete.clear().add(results, pca.templates.AUTOCOMPLETE, address.select).show(); address.showFooterLogo(); address.autocomplete.list.collection.all(function (item) { if (item.data && item.data.Type && item.data.Type !== "Address") pca.addClass(item.element, "pcaexpandable"); }); if (address.options.preselect) address.autocomplete.list.first(); if (address.options.prompt) { function showPromptMessage() { address.message(pca.messages[address.language].KEEPTYPING); } clearPromptTimer(); if (address.options.promptDelay) address.lastActionTimer = window.setTimeout(showPromptMessage, address.options.promptDelay); else showPromptMessage(); } //show the number of matching results if (address.options.matchCount && attributes && attributes.ContainerCount) address.resultCountMessage(attributes.ContainerCount); return address; }); });