(function($, window, document, undefined) { 'use strict'; var gridcontainer = $('#grid-container'), filterscontainer = $('#filters-container'), wrap, filterscallback; /********************************* init cubeportfolio *********************************/ gridcontainer.cubeportfolio({ layoutmode: 'grid', rewindnav: true, scrollbypage: false, defaultfilter: '*', animationtype: 'slideleft', gaphorizontal: 40, gapvertical:40, gridadjustment: 'responsive', mediaqueries: [{ width: 800, cols: 3 }, { width: 500, cols: 2 }, { width: 320, cols: 1 }], caption: 'zoom', displaytype: 'lazyloading', displaytypespeed: 100 }); /********************************* add listener for filters *********************************/ if (filterscontainer.hasclass('cbp-l-filters-dropdown')) { wrap = filterscontainer.find('.cbp-l-filters-dropdownwrap'); wrap.on({ 'mouseover.cbp': function() { wrap.addclass('cbp-l-filters-dropdownwrap-open'); }, 'mouseleave.cbp': function() { wrap.removeclass('cbp-l-filters-dropdownwrap-open'); } }); filterscallback = function(me) { wrap.find('.cbp-filter-item').removeclass('cbp-filter-item-active'); wrap.find('.cbp-l-filters-dropdownheader').text(me.text()); me.addclass('cbp-filter-item-active'); wrap.trigger('mouseleave.cbp'); }; } else { filterscallback = function(me) { me.addclass('cbp-filter-item-active').siblings().removeclass('cbp-filter-item-active'); }; } filterscontainer.on('click.cbp', '.cbp-filter-item', function() { var me = $(this); if (me.hasclass('cbp-filter-item-active')) { return; } // get cubeportfolio data and check if is still animating (reposition) the items. if (!$.data(gridcontainer[0], 'cubeportfolio').isanimating) { filterscallback.call(null, me); } // filter the items gridcontainer.cubeportfolio('filter', me.data('filter'), function() {}); }); /********************************* activate counter for filters *********************************/ gridcontainer.cubeportfolio('showcounter', filterscontainer.find('.cbp-filter-item'), function() { // read from url and change filter active var match = /#cbpf=(.*?)([#|?&]|$)/gi.exec(location.href), item; if (match !== null) { item = filterscontainer.find('.cbp-filter-item').filter('[data-filter="' + match[1] + '"]'); if (item.length) { filterscallback.call(null, item); } } }); })(jquery, window, document);