function jq(selector) {
    return "#" + $.escapeSelector(selector);
}
function mediaWidth() {
    try {
        var found;
        $("#media-width").children().each(function () {
            if ($(this).css("display") !== "none") {
                found = $(this);
                return false;
            }
            return true;
        });
        if (found) {
            return found.attr("data-id");
        } else {
            return "xs";
        }
    } catch (e) {
        console.log(e);
        return "xs";
    }
}
function xs() {
    return mediaWidth() === "xs";
}
function sm() {
    return mediaWidth() === "sm";
}
function md() {
    return mediaWidth() === "md";
}
function lg() {
    return mediaWidth() === "lg";
}
function xl() {
    return mediaWidth() === "xl";
}

$.prototype.btnLoading = function (type) {
    var $btn = $(this);

    var src = type === "white" ? "//f.nordiskemedier.dk/ajax-loader/transparent-white-16x16.svg"
            : type === "black" ? "//f.nordiskemedier.dk/ajax-loader/transparent-black-16x16.svg"
            : "";

    $btn.attr("disabled", true);
    $btn.addClass("disabled");
    var old = {
        backgroundImage: $btn.css("background-image"),
        backgroundRepeat: $btn.css("background-repeat"),
        backgroundPosition: $btn.css("background-position"),
        paddingRight: $btn.css("padding-right")
    };
    $btn.css("background-image", "url(" + src + ")");
    $btn.css("background-repeat", "no-repeat");
    $btn.css("background-position", "90% 50%");
    $btn.css("padding-right", (parseInt(old["paddingRight"]) + 32) + "px");

    return {
        stop: function () {
            $btn.attr("disabled", false);
            $btn.removeClass("disabled");
            $btn.css("background-image", old.backgroundImage);
            $btn.css("background-repeat", old.backgroundRepeat);
            $btn.css("background-position", old.backgroundPosition);
            $btn.css("padding-right", old.paddingRight);
        }
    };
};

$.prototype.showFormErrors = function (errors) {
    var $form = $(this);
    var formId = $form.attr("id");
    $form.find(".ajax-alert").remove();
    for (var i = 0 in errors) {
        if (errors[i].target) {
            var alertId = formId + ":" + errors[i].target;
            var alert = "<div id=\"" + alertId + "\" class=\"ajax-alert text-danger\" role=\"alert\">" + errors[i].message + "</div>";
            var $input = $form.find("*[name='" + errors[i].target + "']");
            var alertTarget = $input.attr("data-alert-target-selector");
            if (alertTarget !== undefined && alertTarget !== false) {
                $(alertTarget).html(alert);
            } else {
                $input.after(alert);
            }
            if ($input.hasClass("form-control")) {
                $input.addClass("is-invalid");
            }
            $input.attr("data-alert-selector", "#" + $.escapeSelector(alertId))
                    .keyup(function () {
                        $($(this).removeClass("is-invalid").attr("data-alert-selector")).remove();
                    });
        } else {
            var alert = "<div class=\"ajax-alert alert alert-danger my-4\" role=\"alert\">" + errors[i].message + "</div>";
            $form.prepend(alert);
        }
    }
};