HEX
Server: Apache
System: Linux webm006.cluster128.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
User: slyfwmm (169339)
PHP: 8.1.34
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/s/l/y/slyfwmm/pianob/wp-content/themes/zk-monaco/assets/2.0/js/vc/vc_grid.min.js
/**
 * ZK Choles 
 * This theme just added rtl support for VC Grid
 * added settings option to data-vc-grid-settings
 * js_composer/include/templates/shortcodes/vc_basic_grid.php
 * added:  $this->grid_settings['rtl'] = is_rtl();
 * making change in js

 * .vcOwlCarousel({
                rtl: this.settings.rtl,
*/

var vcGridStyleAll;
! function($) {
    vcGridStyleAll = function(grid) {
        this.grid = grid, this.settings = grid.settings, this.filterValue = null, this.$el = !1, this.$content = !1, this.isLoading = !1, this.$loader = $('<div class="vc_grid-loading"></div>'), this.init()
    }, vcGridStyleAll.prototype.init = function() {
        _.bindAll(this, "addItems", "showItems")
    }, vcGridStyleAll.prototype.render = function() {
        this.$el = this.grid.$el, this.$content = this.$el, this.setIsLoading(), this.grid.ajax({}, this.addItems)
    }, vcGridStyleAll.prototype.setIsLoading = function() {
        this.$content.append(this.$loader), this.isLoading = !0
    }, vcGridStyleAll.prototype.unsetIsLoading = function() {
        this.isLoading = !1, this.$loader && this.$loader.remove()
    }, vcGridStyleAll.prototype.filter = function(filter) {
        if (filter = _.isUndefined(filter) || "*" === filter ? "" : filter, this.filterValue == filter) return !1;
        var animation = this.$content.closest(".vc_grid-container").data("initial-loading-animation");
        vcGridSettings.addItemsAnimation = animation, this.$content.find(".vc_visible-item").removeClass("vc_visible-item " + vcGridSettings.addItemsAnimation + " animated"), this.filterValue = filter, _.defer(this.showItems)
    }, vcGridStyleAll.prototype.showItems = function(delay,callback) {
        var $this = this, $els = this.$content.find(".vc_grid-item" + this.filterValue);
        this.setIsLoading();
        var animation = this.$content.closest(".vc_grid-container").data("initial-loading-animation");
        if(Number.isInteger(delay))
        {
            setTimeout(function () {
                vcGridSettings.addItemsAnimation = animation,
                    $els.addClass("vc_visible-item " + ("none" !== vcGridSettings.addItemsAnimation ? vcGridSettings.addItemsAnimation + " animated" : "")),
                    $this.unsetIsLoading(), $(window).trigger("grid:items:added", $this.$el)
                if(typeof callback == 'function')
                    callback();
            },delay);
        }
        else {
            vcGridSettings.addItemsAnimation = animation, $els.addClass("vc_visible-item " + ("none" !== vcGridSettings.addItemsAnimation ? vcGridSettings.addItemsAnimation + " animated" : "")), this.unsetIsLoading(), $(window).trigger("grid:items:added", this.$el)
        }
    }, vcGridStyleAll.prototype.addItems = function(html) {
        var els = $(html);
        this.$el.append(els), this.unsetIsLoading(), this.$content = els.find('[data-vc-grid-content="true"]'), this.grid.initFilter(), this.filter(), window.vc_prettyPhoto()
    }
}(window.jQuery);
var vcGridStyleLoadMore = null;
! function($) {
    vcGridStyleLoadMore = function(grid) {
        this.grid = grid, this.settings = grid.settings, this.$loadMoreBtn = !1, this.$el = !1, this.filterValue = null, this.$content = !1, this.isLoading = !1, this.$loader = $('<div class="vc_grid-loading"></div>'), this.init()
    }, vcGridStyleLoadMore.prototype.setIsLoading = function() {
        this.$loadMoreBtn && this.$loadMoreBtn.hide(), this.isLoading = !0
    }, vcGridStyleLoadMore.prototype.unsetIsLoading = function() {
        this.isLoading = !1, this.setLoadMoreBtn()
    }, vcGridStyleLoadMore.prototype.init = function() {
        _.bindAll(this, "addItems")
    }, vcGridStyleLoadMore.prototype.render = function() {
        this.$el = this.grid.$el, this.$content = this.$el, this.setIsLoading(), this.$content.append(this.$loader), this.grid.ajax({}, this.addItems)
    }, vcGridStyleLoadMore.prototype.showItems = function(delay,callback) {
        var $this=this, $els = this.$content.find(".vc_grid_filter-item:not(.vc_visible-item):lt(" + this.settings.items_per_page + ")");
        this.setIsLoading();
        var animation = this.$content.closest(".vc_grid-container").data("initial-loading-animation");
        if(Number.isInteger(delay))
        {
            setTimeout(function () {
                vcGridSettings.addItemsAnimation = animation,
                    vcGridSettings.addItemsAnimation = animation,
                    $els.addClass("vc_visible-item " + vcGridSettings.addItemsAnimation + " animated"),
                    $this.unsetIsLoading(), $(window).trigger("grid:items:added", $this.$el)
                if(typeof callback == 'function')
                    callback();
            },delay);
        }
        else {
            vcGridSettings.addItemsAnimation = animation, $els.addClass("vc_visible-item " + vcGridSettings.addItemsAnimation + " animated"), this.unsetIsLoading(), $(window).trigger("grid:items:added", this.$el)
        }
    }, vcGridStyleLoadMore.prototype.filter = function(filter) {
        if (filter = _.isUndefined(filter) || "*" === filter ? "" : filter, this.filterValue == filter) return !1;
        this.$content.closest(".vc_grid-container").data("initial-loading-animation");
        this.$content.find(".vc_visible-item, .vc_grid_filter-item").removeClass("vc_visible-item vc_grid_filter-item "), this.filterValue = filter, this.$content.find(".vc_grid-item" + this.filterValue).addClass("vc_grid_filter-item"), this.showItems()
    }, vcGridStyleLoadMore.prototype.addItems = function(html) {
        var els = $(html);
        this.$el.append(els), this.unsetIsLoading(), this.$content = els.find('[data-vc-grid-content="true"]'), this.$loadMoreBtn = els.find('[data-vc-grid-load-more-btn="true"] .vc_btn3'), this.$loadMoreBtn.length || (this.$loadMoreBtn = els.find('[data-vc-grid-load-more-btn="true"] .vc_btn'));
        var self = this;
        this.$loadMoreBtn.click(function(e) {
            e.preventDefault(), self.showItems()
        }), this.$loadMoreBtn.hide(), this.grid.initFilter(), this.filter(), this.$loader.remove(), window.vc_prettyPhoto()
    }, vcGridStyleLoadMore.prototype.setLoadMoreBtn = function() {
        $('.vc_grid_filter-item:not(".vc_visible-item")', this.$content).length && $(".vc_grid_filter-item", this.$content).length ? this.$loadMoreBtn && this.$loadMoreBtn.show() : this.$loadMoreBtn && this.$loadMoreBtn.hide()
    }
}(window.jQuery);
var vcGridStyleLazy = null;
! function($) {
    $.waypoints("extendFn", "vc_grid-infinite", function(options) {
        var opts, el = this;
        return opts = $.extend({}, $.fn.waypoint.defaults, {
            container: "auto",
            items: ".infinite-item",
            offset: "bottom-in-view",
            handle: {
                load: function(opts) {}
            }
        }, options), "auto" === opts.container ? el : $(opts.container, el), opts.handler = function(direction) {
            var $this;
            "down" !== direction && "right" !== direction || ($this = $(this), $this.waypoint("destroy"), opts.handle.load.call(this, opts))
        }, this.waypoint(opts)
    }), vcGridStyleLazy = function(grid) {
        this.grid = grid, this.settings = grid.settings, this.$el = !1, this.filterValue = null, this.$content = !1, this.isLoading = !1, this.$loader = $('<div class="vc_grid-loading"></div>'), this.init()
    }, vcGridStyleLazy.prototype.setIsLoading = function() {
        this.$content.append(this.$loader), this.isLoading = !0
    }, vcGridStyleLazy.prototype.unsetIsLoading = function() {
        this.isLoading = !1, this.$loader && this.$loader.remove()
    }, vcGridStyleLazy.prototype.init = function() {
        _.bindAll(this, "addItems", "showItems")
    }, vcGridStyleLazy.prototype.render = function() {
        this.$el = this.grid.$el, this.$content = this.$el, this.setIsLoading(), this.grid.ajax({}, this.addItems)
    }, vcGridStyleLazy.prototype.showItems = function(delay,callback) {
        var _this=this,$els = this.$content.find(".vc_grid_filter-item:not(.vc_visible-item):lt(" + this.settings.items_per_page + ")");
        this.setIsLoading();
        var animation = this.$content.closest(".vc_grid-container").data("initial-loading-animation");
        if(Number.isInteger(delay))
        {
            setTimeout(function () {
                vcGridSettings.addItemsAnimation = animation,
                    $els.addClass("vc_visible-item " + vcGridSettings.addItemsAnimation + " animated"),
                    _this.unsetIsLoading(),
                    $(window).trigger("grid:items:added", this.$el);
                if(typeof callback == 'function')
                    callback();
            },delay);
        }
        else
        {
            vcGridSettings.addItemsAnimation = animation,
                $els.addClass("vc_visible-item " + vcGridSettings.addItemsAnimation + " animated"),
                this.unsetIsLoading(),
                $(window).trigger("grid:items:added", this.$el);
        }
    }, vcGridStyleLazy.prototype.filter = function(filter) {
        if (filter = _.isUndefined(filter) || "*" === filter ? "" : filter, this.filterValue == filter) return !1;
        var animation = this.$content.closest(".vc_grid-container").data("initial-loading-animation");
        vcGridSettings.addItemsAnimation = animation, this.$content.find(".vc_visible-item, .vc_grid_filter-item").removeClass("vc_visible-item vc_grid_filter-item " + ("none" !== vcGridSettings.addItemsAnimation ? vcGridSettings.addItemsAnimation + " animated" : "")), this.filterValue = filter, this.$content.find(".vc_grid-item" + this.filterValue).addClass("vc_grid_filter-item"), _.defer(this.showItems), this.initScroll()
    }, vcGridStyleLazy.prototype.addItems = function(html) {
        var els = $(html);
        this.$el.append(els), this.unsetIsLoading(), this.$content = els.find('[data-vc-grid-content="true"]'), this.grid.initFilter(), this.filter(), window.vc_prettyPhoto()
    }, vcGridStyleLazy.prototype.initScroll = function() {
        var self = this;
        var loading_delay;
        if(self.$el.length > 0)
        {
            var att_class = self.$el.attr('class'),class_prefix = 'zk-loading-delay-';
            att_class.split(' ').forEach(function (item,index) {
                if(item.indexOf(class_prefix) == 0)
                {
                    loading_delay = parseInt(item.substring(class_prefix.length));
                    return false;
                }
            });
        }
        if(!Number.isInteger( loading_delay ) || loading_delay < 0)
            loading_delay = 3000;
        this.$content.unbind("waypoint").waypoint("vc_grid-infinite", {
            container: "auto",
            items: ".vc_grid-item",
            handle: {
                load: function(opts) {
                    self.showItems(loading_delay,function () {
                        self.checkNext(opts);
                        jQuery(document).trigger('scroll')
                    });
                }
            }
        })
    }, vcGridStyleLazy.prototype.checkNext = function(opts) {
        if (this.$content.find('.vc_grid_filter-item:not(".vc_visible-item")').length) {
            var fn, self = this;
            fn = function() {
                return self.$content.waypoint(opts)
            }, _.defer(fn)
        }
    }
}(window.jQuery);
var vcGridStylePagination = null;
! function($) {
    vcGridStylePagination = function(grid) {
        this.grid = grid, this.settings = grid.settings, this.$el = !1, this.$content = !1, this.filterValue = null, this.isLoading = !1, this.htmlCache = !1, this.$loader = $('<div class="vc_grid-loading"></div>'), this.$firstSlideItems, this.init()
    }, vcGridStylePagination.prototype.init = function() {
        _.bindAll(this, "addItems", "initCarousel")
    }, vcGridStylePagination.prototype.setIsLoading = function() {
        this.$loader.show(), this.isLoading = !0
    }, vcGridStylePagination.prototype.unsetIsLoading = function() {
        this.isLoading = !1, this.$loader.hide()
    }, vcGridStylePagination.prototype.render = function() {
        this.$el = this.grid.$el, this.$content = this.$el, this.$content.append(this.$loader), this.setIsLoading(), this.grid.ajax({}, this.addItems)
    }, vcGridStylePagination.prototype.filter = function(filter) {
        if (filter = _.isUndefined(filter) || "*" === filter ? "" : filter, this.filterValue == filter) return !1;
        var $html;
        this.$content.data("owl.vccarousel") && (this.$content.off("initialized.owl.vccarousel"), this.$content.off("changed.owl.vccarousel"), this.$content.data("vcPagination") && this.$content.data("vcPagination").twbsPagination("destroy"), this.$content.data("owl.vccarousel").destroy()), this.$content.empty(), $html = $(".vc_grid-item", this.htmlCache), "" !== filter && ($html = $html.filter(filter)), this.filterValue = filter, this.buildSlides($html.addClass("vc_visible-item"))
    }, vcGridStylePagination.prototype.buildSlides = function($html) {
        var i, j, tempArray, chunk = parseInt(this.settings.items_per_page);
        for (i = 0, j = $html.length; i < j; i += chunk) tempArray = $html.slice(i, i + chunk), $('<div class="vc_pageable-slide-wrapper">').append($(tempArray)).appendTo(this.$content);
        this.$content.find(".vc_pageable-slide-wrapper:first").imagesLoaded(this.initCarousel)
    }, vcGridStylePagination.prototype.addItems = function(html) {
        this.$el.append(html), !1 === this.htmlCache && (this.htmlCache = html), this.unsetIsLoading(), this.$content = this.$el.find('[data-vc-pageable-content="true"]'), this.$content.addClass("owl-carousel vc_grid-owl-theme"), this.grid.initFilter(), this.filter(), window.vc_prettyPhoto()
    }, vcGridStylePagination.prototype.initCarousel = function() {
        if ($.fn.vcOwlCarousel) {
            var $vcCarousel, that = this;
            $vcCarousel = this.$content.data("owl.vccarousel"), $vcCarousel && $vcCarousel.destroy(), this.$content.on("initialized.owl.vccarousel", function(event) {
                var $carousel = event.relatedTarget,
                    items = $carousel.items(),
                    animation = that.$content.closest(".vc_grid-container").data("initial-loading-animation");
                if (items.forEach(function(i) {
                        jQuery(i).find(".vc_grid-item").addClass(animation + " animated");
                    }), that.settings.paging_design.indexOf("pagination") > -1) {
                    var itemsCount = $carousel.items().length,
                        $pagination = $("<div></div>").addClass("vc_grid-pagination").appendTo(that.$el);
                    $pagination.twbsPagination({
                        totalPages: itemsCount,
                        visiblePages: that.settings.visible_pages,
                        onPageClick: function(event, page) {
                            $carousel.to(page - 1)
                        },
                        paginationClass: "vc_grid-pagination-list vc_grid-" + that.settings.paging_design + " vc_grid-pagination-color-" + that.settings.paging_color,
                        nextClass: "vc_grid-next",
                        first: 20 < itemsCount && " ",
                        last: 20 < itemsCount && " ",
                        prev: 5 < itemsCount && " ",
                        next: 5 < itemsCount && " ",
                        prevClass: "vc_grid-prev",
                        lastClass: "vc_grid-last",
                        loop: that.settings.loop,
                        firstClass: "vc_grid-first",
                        pageClass: "vc_grid-page",
                        activeClass: "vc_grid-active",
                        disabledClass: "vc_grid-disabled"
                    }), $(this).data("vcPagination", $pagination), that.$content.on("changed.owl.vccarousel", function(event) {
                        var $pagination = $(this).data("vcPagination"),
                            $pag_object = $pagination.data("twbsPagination");
                        $pag_object.render($pag_object.getPages(1 + event.page.index)), $pag_object.setupEvents()
                    }), window.vc_prettyPhoto()
                }
            }).vcOwlCarousel({
            	rtl: this.settings.rtl,
                autoplayHoverPause: true,
                items: 1,
                loop: this.settings.loop,
                margin: 10,
                nav: !0,
                navText: ["", ""],
                navContainerClass: "vc_grid-owl-nav vc_grid-owl-nav-color-" + this.settings.arrows_color,
                dotClass: "vc_grid-owl-dot",
                dotsClass: "vc_grid-owl-dots vc_grid-" + this.settings.paging_design + " vc_grid-owl-dots-color-" + this.settings.paging_color,
                navClass: ["vc_grid-owl-prev " + this.settings.arrows_design + " vc_grid-nav-prev-" + this.settings.arrows_position, "vc_grid-owl-next " + this.settings.arrows_design.replace("_left", "_right") + " vc_grid-nav-next-" + this.settings.arrows_position],
                animateIn: "none" !== this.settings.animation_in && this.settings.animation_in,
                animateOut: "none" !== this.settings.animation_out && this.settings.animation_out,
                autoHeight: !0,
                autoplay: !0 === this.settings.auto_play,
                autoplayTimeout: this.settings.speed,
                callbacks: !0,
                onTranslated: function() {
                    setTimeout(function() {
                        $(window).trigger("grid:items:added", that.$el)
                    }, 750)
                },
                onRefreshed: function() {
                    setTimeout(function() {
                        $(window).trigger("grid:items:added", that.$el)
                    }, 750)
                }
            })
        }
    }
}(window.jQuery);
var vcGridStyleAllMasonry;
! function($) {
    vcGridStyleAllMasonry = function(grid) {
        this.grid = grid, this.settings = grid.settings, this.filterValue = null, this.$el = !1, this.$content = !1, this.isLoading = !1, this.filtered = !1, this.$loader = $('<div class="vc_grid-loading"></div>'), this.masonryEnabled = !1, _.bindAll(this, "setMasonry"), this.init()
    }, vcGridStyleAllMasonry.prototype = _.extend({}, vcGridStyleAll.prototype, {
        showItems: function(delay,callback) {
            var $els = this.$content.find(".vc_grid-item" + this.filterValue),
                self = this,is_over_delay = false,is_image_loaded = false;
            this.setIsLoading(), $els.imagesLoaded(function() {
                if(!is_over_delay && Number.isInteger(delay))
                {
                    is_image_loaded = true;
                    return;
                }
                $els.addClass("vc_visible-item"), self.setItems($els), self.filtered && (self.filtered = !1, self.setMasonry()), self.unsetIsLoading(), window.vc_prettyPhoto(), $(window).trigger("grid:items:added", self.$el);
                if(typeof callback == 'function')
                    callback();
            });
            if(Number.isInteger(delay))
            {
                setTimeout(function () {
                    if(!is_image_loaded)
                    {
                        is_over_delay = true;
                        return;
                    }
                    vcGridSettings.addItemsAnimation = animation,
                        $els.addClass("vc_visible-item"),
                        self.setItems($els),
                    self.filtered && (self.filtered = !1, self.setMasonry()), self.unsetIsLoading(),
                        window.vc_prettyPhoto(), $(window).trigger("grid:items:added", self.$el);
                    if(typeof callback == 'function')
                        callback();
                },delay);
            }
        },
        filter: function(filter) {
            if (filter = _.isUndefined(filter) || "*" === filter ? "" : filter, this.filterValue == filter) return !1;
            this.filterValue = filter, this.$content.data("masonry") && this.$content.masonry("destroy"), this.masonryEnabled = !1, this.$content.find(".vc_visible-item").removeClass("vc_visible-item"), this.$content.find(".vc_grid-item" + this.filterValue), this.filtered = !0, $(window).resize(this.setMasonry), this.setMasonry(), this.showItems()
        },
        setIsLoading: function() {
            this.$el.append(this.$loader), this.isLoading = !0
        },
        unsetIsLoading: function() {
            this.isLoading = !1, this.$loader && this.$loader.remove()
        },
        setItems: function(els) {
            this.masonryEnabled ? this.$content.masonry("appended", els) : this.setMasonry()
        },
        setMasonry: function() {
            var animation, settings;
            window.innerWidth < vcGridSettings.mobileWindowWidth ? (this.$content.data("masonry") && this.$content.masonry("destroy"), this.masonryEnabled = !1) : this.masonryEnabled ? (this.$content.masonry("reloadItems"), this.$content.masonry("layout")) : (animation = this.$content.closest(".vc_grid-container").data("initial-loading-animation"), settings = {
                itemSelector: ".vc_visible-item",
                isResizeBound: !1
            }, "none" == animation ? (settings.hiddenStyle = {
                visibility: "hidden"
            }, settings.visibleStyle = {
                visibility: "visible"
            }) : "fadeIn" == animation ? (settings.hiddenStyle = {
                opacity: 0
            }, settings.visibleStyle = {
                opacity: 1
            }) : (settings.hiddenStyle = {
                opacity: 0,
                transform: "scale(0.001)"
            }, settings.visibleStyle = {
                opacity: 1,
                transform: "scale(1)"
            }), 
                settings.columnWidth = 10,
                settings.percentPosition = true, 
                this.$content.masonry(settings), this.masonryEnabled = !0)
        }
    })
}(window.jQuery);
var vcGridStyleLazyMasonry;
! function($) {
    vcGridStyleLazyMasonry = function(grid) {
        this.grid = grid, this.settings = grid.settings, this.$el = !1, this.filterValue = null, this.filtered = !1, this.$content = !1, this.isLoading = !1, this.$loader = $('<div class="vc_grid-loading"></div>'), this.masonryEnabled = !1, _.bindAll(this, "setMasonry"), this.init()
    }, vcGridStyleLazyMasonry.prototype = _.extend({}, vcGridStyleLazy.prototype, {
        showItems: function(delay,callback) {
            if (!0 === this.isLoading)
            {
                if(typeof callback == 'function')
                    callback();
                return !1;
            }
            this.setIsLoading();
            var $els = this.$content.find(".vc_grid_filter-item:not(.vc_visible-item):lt(" + this.settings.items_per_page + ")"),
                self = this,
                self = this,is_over_delay = false,is_image_loaded = false;

            $els.imagesLoaded(function() {
                if(!is_over_delay && Number.isInteger(delay) )
                {
                    is_image_loaded = true;
                    return;
                }
                $els.addClass("vc_visible-item"), self.setItems($els), self.filtered && (self.filtered = !1, self.setMasonry(), self.initScroll(), window.vc_prettyPhoto()), self.unsetIsLoading(), $(window).trigger("grid:items:added", self.$el);
                if(typeof callback == 'function')
                    callback();
            });
            if(Number.isInteger(delay))
            {
                setTimeout(function () {
                    if(!is_image_loaded)
                    {
                        is_over_delay = true;
                        return;
                    }
                    $els.addClass("vc_visible-item"),
                        self.setItems($els),
                    self.filtered && (self.filtered = !1, self.setMasonry(), self.initScroll(), window.vc_prettyPhoto()),
                        self.unsetIsLoading(), $(window).trigger("grid:items:added", self.$el);
                    if(typeof callback == 'function')
                        callback();
                },delay);
            }
        },
        setIsLoading: function() {
            this.$el.append(this.$loader), this.isLoading = !0
        },
        filter: function(filter) {
            if (filter = _.isUndefined(filter) || "*" === filter ? "" : filter, this.filterValue == filter) return !1;
            this.$content.data("masonry") && this.$content.masonry("destroy"), this.masonryEnabled = !1, this.$content.find(".vc_visible-item, .vc_grid_filter-item").removeClass("vc_visible-item vc_grid_filter-item"), this.filterValue = filter, this.$content.find(".vc_grid-item" + this.filterValue).addClass("vc_grid_filter-item"), this.filtered = !0, $(window).resize(this.setMasonry), this.setMasonry(), _.defer(this.showItems)
        },
        setItems: function(els) {
            this.masonryEnabled ? this.$content.masonry("appended", els) : this.setMasonry()
        },
        setMasonry: function() {
            var animation, settings;
            window.innerWidth < vcGridSettings.mobileWindowWidth ? (this.$content.data("masonry") && this.$content.masonry("destroy"), this.masonryEnabled = !1) : this.masonryEnabled ? (this.$content.masonry("reloadItems"), this.$content.masonry("layout")) : (animation = this.$content.closest(".vc_grid-container").data("initial-loading-animation"), settings = {
                itemSelector: ".vc_visible-item",
                isResizeBound: !1
            }, "none" == animation ? (settings.hiddenStyle = {
                visibility: "hidden"
            }, settings.visibleStyle = {
                visibility: "visible"
            }) : "fadeIn" == animation ? (settings.hiddenStyle = {
                opacity: 0
            }, settings.visibleStyle = {
                opacity: 1
            }) : (settings.hiddenStyle = {
                opacity: 0,
                transform: "scale(0.001)"
            }, settings.visibleStyle = {
                opacity: 1,
                transform: "scale(1)"
            }), 
                settings.columnWidth = 10,
                settings.percentPosition = true, 
                this.$content.masonry(settings), this.masonryEnabled = !0)
        }
    })
}(window.jQuery);
var vcGridStyleLoadMoreMasonry;
! function($) {
    vcGridStyleLoadMoreMasonry = function(grid) {
        this.grid = grid, this.settings = grid.settings, this.$loadMoreBtn = !1, this.$el = !1, this.filterValue = null, this.$content = !1, this.isLoading = !1, this.filtered = !1, this.$loader = $('<div class="vc_grid-loading"></div>'), this.masonryEnabled = !1, _.bindAll(this, "setMasonry"), this.init()
    }, vcGridStyleLoadMoreMasonry.prototype = _.extend({}, vcGridStyleLoadMore.prototype, {
        showItems: function(delay,callback) {
            if (!0 === this.isLoading)
            {
                if(typeof callback == 'function')
                    callback();
                return !1;
            }
            this.setIsLoading();
            var $els = this.$content.find(".vc_grid_filter-item:not(.vc_visible-item):lt(" + this.settings.items_per_page + ")"),
                self = this,
                self = this,is_over_delay = false,is_image_loaded = false;
            $els.imagesLoaded(function() {
                if(!is_over_delay && Number.isInteger(delay) )
                {
                    is_image_loaded = true;
                    return;
                }
                $els.addClass("vc_visible-item"), self.setItems($els), self.filtered && (self.filtered = !1, self.setMasonry(), window.vc_prettyPhoto()), self.unsetIsLoading(), $(window).trigger("grid:items:added", self.$el)
                if(typeof callback == 'function')
                    callback();
            });
            if(Number.isInteger(delay))
            {
                setTimeout(function () {
                    if(!is_image_loaded)
                    {
                        is_over_delay = true;
                        return;
                    }
                    $els.addClass("vc_visible-item"),
                        self.setItems($els),
                    self.filtered && (self.filtered = !1, self.setMasonry(), window.vc_prettyPhoto()),
                        self.unsetIsLoading(), $(window).trigger("grid:items:added", self.$el);
                    if(typeof callback == 'function')
                        callback();
                },delay);
            }
        },
        filter: function(filter) {
            if (filter = _.isUndefined(filter) || "*" === filter ? "" : filter, this.filterValue == filter) return !1;
            this.$content.data("masonry") && this.$content.masonry("destroy"), this.masonryEnabled = !1, this.$content.find(".vc_visible-item, .vc_grid_filter-item").removeClass("vc_visible-item vc_grid_filter-item"), this.filterValue = filter, this.$content.find(".vc_grid-item" + this.filterValue).addClass("vc_grid_filter-item"), this.filtered = !0, $(window).resize(this.setMasonry), this.setMasonry(), this.showItems()
        },
        setIsLoading: function() {
            this.$el.append(this.$loader), this.$loadMoreBtn && this.$loadMoreBtn.hide(), this.isLoading = !0
        },
        unsetIsLoading: function() {
            this.isLoading = !1, this.$loader && this.$loader.remove(), this.setLoadMoreBtn()
        },
        setItems: function(els) {
            this.masonryEnabled ? this.$content.masonry("appended", els) : this.setMasonry()
        },
        setMasonry: function() {
            var animation, settings;
            window.innerWidth < vcGridSettings.mobileWindowWidth ? (this.$content.data("masonry") && this.$content.masonry("destroy"), this.masonryEnabled = !1) : this.masonryEnabled ? (this.$content.masonry("reloadItems"), this.$content.masonry("layout")) : (animation = this.$content.closest(".vc_grid-container").data("initial-loading-animation"), settings = {
                itemSelector: ".vc_visible-item",
                isResizeBound: !1
            }, "none" == animation ? (settings.hiddenStyle = {
                visibility: "hidden"
            }, settings.visibleStyle = {
                visibility: "visible"
            }) : "fadeIn" == animation ? (settings.hiddenStyle = {
                opacity: 0
            }, settings.visibleStyle = {
                opacity: 1
            }) : (settings.hiddenStyle = {
                opacity: 0,
                transform: "scale(0.001)"
            }, settings.visibleStyle = {
                opacity: 1,
                transform: "scale(1)"
            }), 
                settings.columnWidth = 10,
                settings.percentPosition = true, 
                this.$content.masonry(settings), this.masonryEnabled = !0)
        }
    })
}(window.jQuery);
var VcGrid, vcGridSettings = {
    addItemsAnimation: "zoomIn",
    mobileWindowWidth: 768,
    itemAnimationSpeed: 1e3,
    itemAnimationDelay: [],
    clearAnimationDelays: function() {
        _.each(this.itemAnimationDelay, function(id) {
            window.clearTimeout(id)
        }), this.itemAnimationDelay = []
    }
};
! function($) {
    "use strict";

    function Plugin(option) {
        return this.each(function() {
            var $this = $(this),
                data = $this.data("vcGrid");
            data || $this.data("vcGrid", data = new VcGrid(this)), "string" == typeof option && data[option]()
        })
    }
    VcGrid = function(el) {
        this.$el = $(el), this.settings = {}, this.$filter = !1, this.gridBuilder = !1, this.init()
    }, VcGrid.prototype.init = function() {
        _.bindAll(this, "filterItems", "filterItemsDropdown"), this.setSettings(), this.initStyle(), this.initHover(), this.initZoneLink()
    }, VcGrid.prototype.setSettings = function() {
        this.settings = $.extend({
            visible_pages: 5
        }, this.$el.data("vcGridSettings") || {})
    }, VcGrid.prototype.initStyle = function() {
        var styleObject = !!this.settings.style && $.camelCase("vc-grid-style-" + this.settings.style);
        styleObject && !_.isUndefined(window[styleObject]) && window[styleObject].prototype.render && (this.gridBuilder = new window[styleObject](this), this.gridBuilder.render())
    }, VcGrid.prototype.initFilter = function() {
        this.$filter = this.$el.find("[data-vc-grid-filter]"), this.$filterDropdown = this.$el.find("[data-vc-grid-filter-select]"), this.$filter.length && this.$filter.find(".vc_grid-filter-item").unbind("click").click(this.filterItems), this.$filterDropdown.length && this.$filterDropdown.unbind("change").change(this.filterItemsDropdown)
    }, VcGrid.prototype.initHover = function() {
        this.$el.on("mouseover", ".vc_grid-item-mini", function() {
            $(this).addClass("vc_is-hover")
        }).on("mouseleave", ".vc_grid-item-mini", function() {
            $(this).removeClass("vc_is-hover")
        })
    }, VcGrid.prototype.initZoneLink = function() {
        window.vc_iframe ? (this.$el.on("click.zonePostLink", "[data-vc-link]", function() {
            var href = ($(this), $(this).data("vcLink"));
            window.open(href)
        }), this.$el.on("click", ".vc_gitem-link", function(e) {
            var $this = $(this);
            e.preventDefault(), !$this.hasClass("vc-gitem-link-ajax") && window.open($this.attr("href"))
        })) : (this.$el.on("click.zonePostLink", "[data-vc-link]", function() {
            var $this = $(this),
                href = $(this).data("vcLink");
            "_blank" === $this.data("vcTarget") ? window.open(href) : window.location.href = href
        }), this.$el.on("click", ".vc_gitem-link", function(e) {
            var $this = $(this);
            if (e.preventDefault(), $this.hasClass("vc-gitem-link-ajax")) {
                var httpRequest = new XMLHttpRequest;
                $this.addClass("vc-spinner"), httpRequest.open("GET", $this.attr("href"), !0), httpRequest.send();
                var removeSpinner = function() {
                        $this.removeClass("vc-spinner vc-spinner-complete vc-spinner-failed")
                    },
                    timeout = 0;
                httpRequest.onreadystatechange = function() {
                    httpRequest.readyState === XMLHttpRequest.DONE && (200 === httpRequest.status ? ($this.addClass("vc-spinner-complete"), timeout && (window.clearTimeout(timeout), timeout = 0), timeout = window.setTimeout(removeSpinner, 500)) : ($this.addClass("vc-spinner-failed"), timeout && (window.clearTimeout(timeout), timeout = 0), timeout = window.setTimeout(removeSpinner, 500)))
                }
            } else "_blank" === $this.attr("_target") ? window.open($this.attr("href")) : window.location.href = $this.attr("href")
        }))
    }, VcGrid.prototype.initHover_old = function() {
        this.$el.on("mouseover", ".vc_grid-item", function() {
            var $this = $(this);
            $this.hasClass("vc_is-hover") || (vcGridSettings.clearAnimationDelays(), $this.addClass("vc_is-hover vc_is-animated"), $this.find(".vc_grid-item-row-animate").each(function() {
                var $animate = $(this),
                    animationIn = $animate.data("animationIn"),
                    animationOut = $animate.data("animationOut");
                $animate.removeClass(animationOut).addClass(animationIn), vcGridSettings.itemAnimationDelay.push(_.delay(function() {
                    $animate.removeClass(animationIn), $this.removeClass("vc_is-animated")
                }, vcGridSettings.itemAnimationSpeed))
            }))
        }).on("mouseleave", ".vc_grid-item", function() {
            var $this = $(this);
            vcGridSettings.clearAnimationDelays(), $this.addClass("vc_is-animated").removeClass("vc_is-hover"), $this.find(".vc_grid-item-row-animate").each(function() {
                var $animate = $this.find(".vc_grid-item-row-animate"),
                    animationOut = $animate.data("animationOut"),
                    animationIn = $animate.data("animationIn");
                $animate.addClass(animationOut), vcGridSettings.itemAnimationDelay.push(_.delay(function() {
                    $animate.removeClass(animationOut + " " + animationIn), $this.removeClass("vc_is-animated")
                }, vcGridSettings.itemAnimationSpeed - 1))
            })
        })
    }, VcGrid.prototype.filterItems = function(e) {
        var $control = (this.style && $.camelCase("filter-" + this.style), $(e.currentTarget).find("[data-vc-grid-filter-value]")),
            filter = $control.data("vcGridFilterValue");
        if (e && e.preventDefault(), $control.hasClass("vc_active")) return !1;
        this.$filter.find(".vc_active").removeClass("vc_active"), this.$filterDropdown.find(".vc_active").removeClass("vc_active"), this.$filterDropdown.find('[value="' + filter + '"]').addClass("vc_active").attr("selected", "selected"), $control.parent().addClass("vc_active"), this.gridBuilder.filter(filter)
    }, VcGrid.prototype.filterItemsDropdown = function(e) {
        var $control = this.$filterDropdown.find(":selected"),
            filter = $control.val();
        if ($control.hasClass("vc_active")) return !1;
        this.$filterDropdown.find(".vc_active").removeClass("vc_active"), this.$filter.find(".vc_active").removeClass("vc_active"), this.$filter.find('[data-vc-grid-filter-value="' + filter + '"]').parent().addClass("vc_active"), $control.addClass("vc_active"), this.gridBuilder.filter(filter)
    }, VcGrid.prototype.ajax = function(data, callback) {
        var requestData;
        _.isUndefined(data) && (data = {}), requestData = _.extend({
            action: "vc_get_vc_grid_data",
            vc_action: "vc_get_vc_grid_data",
            tag: this.settings.tag,
            data: this.settings,
            vc_post_id: this.$el.data("vcPostId"),
            _vcnonce: this.$el.data("vcPublicNonce")
        }, data), $.ajax({
            type: "POST",
            dataType: "html",
            url: this.$el.data("vcRequest"),
            data: requestData
        }).done(callback)
    }, $.fn.vcGrid = Plugin, $.fn.vcGrid.Constructor = VcGrid, $(document).ready(function() {
        $("[data-vc-grid-settings]").vcGrid()
    })
}(window.jQuery);