/* Minification failed. Returning unminified contents.
(1,10): run-time error CSS1031: Expected selector, found 'ExecuteRecaptchaForm('
(1,10): run-time error CSS1025: Expected comma or open brace, found 'ExecuteRecaptchaForm('
(27,1): run-time error CSS1019: Unexpected token, found '$'
(27,2): run-time error CSS1019: Unexpected token, found '('
(27,11): run-time error CSS1031: Expected selector, found ')'
(27,11): run-time error CSS1025: Expected comma or open brace, found ')'
(39,2): run-time error CSS1019: Unexpected token, found ')'
(41,30): run-time error CSS1031: Expected selector, found '='
(41,30): run-time error CSS1025: Expected comma or open brace, found '='
(43,10): run-time error CSS1031: Expected selector, found 'CalculateDeliverySuccess('
(43,10): run-time error CSS1025: Expected comma or open brace, found 'CalculateDeliverySuccess('
(82,1): run-time error CSS1019: Unexpected token, found '$'
(82,2): run-time error CSS1019: Unexpected token, found '('
(82,11): run-time error CSS1031: Expected selector, found ')'
(82,11): run-time error CSS1025: Expected comma or open brace, found ')'
(123,2): run-time error CSS1019: Unexpected token, found ')'
 */
function ExecuteRecaptchaForm(form) {

    var googleRecaptchaSiteKey = $(form).data("recaptcha-site-key");

    // Set up ReCaptcha
    var recaptchaAction = $(form).data("recaptcha-action");

    grecaptcha.execute('' + googleRecaptchaSiteKey + '', { action: '' + recaptchaAction + '' }).then(function (token) {

        // Remove any existing Recaptcha Results
        $("#g-recaptcha-response", form).remove();

        // Add Hidden Input containing Google Recaptcha token
        $('<input type="hidden">').attr({
            id: 'g-recaptcha-response',
            name: 'g-recaptcha-response'
        })
            .val(token)
            .appendTo(form);

        $(form).submit();

    });

}

$(document).on("click", ".js-recaptcha-form button[type='submit']", function (e) {

    e.preventDefault();

    var submitButton = $(this);
    var form = $(submitButton).closest(".js-recaptcha-form");

    if ($(form).valid()) {
        $(submitButton).prop("disabled", true);
        ExecuteRecaptchaForm(form);
    }

});
// Initialise Calculate Delivery Modal
const calculateDeliveryModal = new bootstrap.Modal('#calculateDeliveryModal');

function CalculateDeliverySuccess(data) {

    var postCodes = $(".js-cd-postcode", "#calculateDeliveryModal");
    var charges = $(".js-cd-charge", "#calculateDeliveryModal");
    var deliveryAvailable = $("#cdModalDeliveryAvailable");
    var deliveryUnavailable = $("#cdModalDeliveryUnavailable");
    var deliveryError = $("#cdModalError");

    $(postCodes).html(data.PostCode);

    // Update Modal contents
    if (data.Success) {

        if (data.InServiceArea) {
            $(charges).html(data.DeliveryCharge);
            $(deliveryAvailable).removeClass("d-none");
            $(deliveryUnavailable).addClass("d-none");
            $(deliveryError).addClass("d-none");
        }
        else {
            $(deliveryAvailable).addClass("d-none");
            $(deliveryUnavailable).removeClass("d-none");
            $(deliveryError).addClass("d-none");
        }

    }
    else {
        $(deliveryAvailable).addClass("d-none");
        $(deliveryUnavailable).addClass("d-none");
        $(deliveryError).removeClass("d-none");
    }

    // Show 'Calculate Delivery' Modal
    calculateDeliveryModal.show();

    // Re-enable search button
    $("#btnCalculateDelivery").prop("disabled", false);
}

$(document).ready(function () {

    // Add item to basket
    $(document).on("click", ".js-add-to-basket", function (e) {

        e.preventDefault();

        var button = $(this);
        var buttonText = $(".js-button-text", button);
        var productId = $(this).data("product-id");

        $.post("/basket/add", { id: productId })
            .done(function (data) {
                if (data) {

                    // Update Basket totals in header
                    UpdateBasketTotal();

                }
            });

        // Update 'Add to Basket' button
        $(buttonText).text("Added to Basket");
        $(button).removeClass("js-add-to-basket btn-primary").addClass("js-added-to-basket btn-tertiary");
        $(button).prepend("<i class='fa-solid fa-check'></i>");

    });

    // Go to checkout if user has already added item to basket
    $(document).on("click", ".js-added-to-basket", function (e) {

        e.preventDefault();

        window.location.href = "/checkout";

    });

    $(document).on("click", "#btnCloseCDModal", function () {
        calculateDeliveryModal.hide();
    });

});
