').addClass('shipping-title')
                                .append($('').addClass('shipping-price-title').text('Shipping:'))
                                .append($('').addClass('shipping-loading'));
                            $('#open-estimate-shipping-popup-14').html(shippingTitle);
                        }
                    },
                    success: function (address, response) {
                        // initialize on load only once
                        var option = popUp.getActiveShippingOption();
                        popUp.selectShippingOption(option);
                        initialized = true;
                        popUp.settings.handlers.success = undefined;
                    },
                    error: function () {
                        popUp.selectShippingOption();
                    },
                    selectedOption: function (option) {
                        if (option && option.provider && option.price && popUp.validateAddress(option.address)) {
                            var shippingContent = $('#open-estimate-shipping-popup-14');
                            var shippingTitle = $('').addClass('shipping-title')
                                .append($('').addClass('shipping-price-title').text('Shipping:'))
                                .append($('').addClass('shipping-price').text(option.price));
                            shippingContent.html(shippingTitle);
                            var estimatedDelivery = $('').addClass('estimated-delivery')
                                .append($('').addClass('shipping-address')
                                    .append($('').text(`to ${option.address.countryName}, ${(option.address.stateProvinceName ? option.address.stateProvinceName + ',' : '')} ${option.address.zipPostalCode} via ${option.provider}`))
                                    .append($('').addClass('arrow-down')));
                            if (option.deliveryDate && option.deliveryDate !== '-')
                                estimatedDelivery.append($('').addClass('shipping-date').text(`Estimated Delivery on ${option.deliveryDate}`));
                            shippingContent.append(estimatedDelivery);
                        } else {
                            $('#open-estimate-shipping-popup-14')
                                .html($('').text('Please select the address you want to ship from'))
                                .append($('').addClass('arrow-down'));
                        }
                    }
                }
            };
            popUp = createEstimateShippingPopUp(settings);
            popUp.init();
            var initialLoad = function () {
                var address = popUp.getShippingAddress();
                if (popUp.validateAddress(address))
                    popUp.getShippingOptions(address);
                else
                    popUp.selectShippingOption();
            };
            initialLoad();
            var attributeChangedHandler = function (e) {
                var productId = e.changedData.productId;
                if (productId === 14) {
                    if (popUp.params.selectedShippingOption) {
                        var address = popUp.params.selectedShippingOption.address;
                        var enteredAddress = popUp.getShippingAddress();
                        if (!popUp.addressesAreEqual(address, enteredAddress))
                            reloadPopUp = true;
                        popUp.getShippingOptions(address);
                    } else {
                        if (!initialized)
                            initialLoad();
                        else
                            reloadPopUp = true;
                    }
                }
            };
            // Prevent double init on load. If product has attributes then trigger is fires when page is loaded and attributes are loaded.
            setTimeout(function () {
                $(document).on('product_attributes_changed', attributeChangedHandler);
            }, 500);
            $(document).on('product_quantity_changed', attributeChangedHandler);
        });