PageSourceSearch

https://www.evomontreal.com/wp-content/plugins/awesome-gallery/assets/js/awesome-gallery.js

js evomontreal.com collected 2026-10-04 07:05:11 UTC 69,325 bytes, 2,141 lines download raw bytes

1/******/ (function(modules) { // webpackBootstrap
2/******/ 	// The module cache
3/******/ 	var installedModules = {};
4
5/******/ 	// The require function
6/******/ 	function __webpack_require__(moduleId) {
7
8/******/ 		// Check if module is in cache
9/******/ 		if(installedModules[moduleId])
10/******/ 			return installedModules[moduleId].exports;
11
12/******/ 		// Create a new module (and put it into the cache)
13/******/ 		var module = installedModules[moduleId] = {
14/******/ 			exports: {},
15/******/ 			id: moduleId,
16/******/ 			loaded: false
17/******/ 		};
18
19/******/ 		// Execute the module function
20/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21
22/******/ 		// Flag the module as loaded
23/******/ 		module.loaded = true;
24
25/******/ 		// Return the exports of the module
26/******/ 		return module.exports;
27/******/ 	}
28
29
30/******/ 	// expose the modules object (__webpack_modules__)
31/******/ 	__webpack_require__.m = modules;
32
33/******/ 	// expose the module cache
34/******/ 	__webpack_require__.c = installedModules;
35
36/******/ 	// __webpack_public_path__
37/******/ 	__webpack_require__.p = "";
38
39/******/ 	// Load entry module and return exports
40/******/ 	return __webpack_require__(0);
41/******/ })
42/************************************************************************/
43/******/ ([
44/* 0 */
45/***/ function(module, exports, __webpack_require__) {
46
47	var jQuery;
48
49	jQuery = __webpack_require__(1);
50
51	if (!jQuery) {
52	  alert('Message from Awesome Gallery: jQuery not found!');
53	} else {
54	  if (parseInt(jQuery().jquery.replace(/\./g, '')) < 172) {
55	    alert('Message from Awesome Gallery: You have jQuery < 1.7.2. Please upgrade your jQuery or enable "Force new jQuery version" option at Awesome Gallery settings page.');
56	  } else {
57	    window.AwesomeGallery = __webpack_require__(2);
58	  }
59	}
60
61
62/***/ },
63/* 1 */
64/***/ function(module, exports) {
65
66	module.exports = window.asgjQuery || window.jQuery || window.$  || jQuery || $;
67
68/***/ },
69/* 2 */
70/***/ function(module, exports, __webpack_require__) {
71
72	var $, AwesomeGallery, GalleryFilters, GalleryImage, LayoutStrategy, Lightbox,
73	  bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
74
75	LayoutStrategy = __webpack_require__(3);
76
77	GalleryFilters = __webpack_require__(9);
78
79	Lightbox = __webpack_require__(10);
80
81	GalleryImage = __webpack_require__(18);
82
83	$ = __webpack_require__(1);
84
85	module.exports = AwesomeGallery = (function() {
86	  function AwesomeGallery(id, options) {
87	    this.dispose = bind(this.dispose, this);
88	    this.loadMore = bind(this.loadMore, this);
89	    this.filterCallback = bind(this.filterCallback, this);
90	    this.initLoadMore = bind(this.initLoadMore, this);
91	    this.loadMoreActive = bind(this.loadMoreActive, this);
92	    this.getVisibleImages = bind(this.getVisibleImages, this);
93	    this.showWhenVisible = bind(this.showWhenVisible, this);
94	    var images;
95	    this.$window = $(window);
96	    this.id = id;
97	    this.options = options;
98	    this.page = 1;
99	    this.$el = $("#awesome-gallery-" + id);
100	    this.$el.data('awesome-gallery', this);
101	    this.$images = this.$el.find('.asg-images');
102	    if ((this.$filters = this.$el.find('.asg-filters')).size() > 0) {
103	      this.filters = new GalleryFilters(this.$filters, this.filterCallback);
104	    }
105	    this.images = this.buildImages();
106	    this.layout = LayoutStrategy.create(this.$images, this.images, this.options.layout);
107	    if (this.loadMoreActive()) {
108	      this.initLoadMore();
109	    }
110	    images = this.getVisibleImages();
111	    this.lightboxAdapter = Lightbox.create(this.$images, this.options.lightbox);
112	    this.showWhenVisible();
113	  }
114
115	  AwesomeGallery.prototype.buildImages = function() {
116	    var images;
117	    images = [];
118	    this.$images.find("> .asg-image").each(function(index, el) {
119	      return images.push(new GalleryImage(jQuery(el)));
120	    });
121	    return images;
122	  };
123
124	  AwesomeGallery.prototype.showWhenVisible = function() {
125	    if (!this.$el.is(':visible') || this.$el.width() < 50) {
126	      return setTimeout(this.showWhenVisible, 250);
127	    } else {
128	      return this.layout.show(this.getVisibleImages());
129	    }
130	  };
131
132	  AwesomeGallery.prototype.getVisibleImages = function() {
133	    var images, index, pageSize;
134	    index = 0;
135	    images = this.images;
136	    images = images.filter((function(_this) {
137	      return function(image) {
138	        return image.matchesTag(_this.currentFilter);
139	      };
140	    })(this));
141	    if (this.loadMoreActive()) {
142	      pageSize = parseInt(this.options.load_more.page_size);
143	      images = images.slice(0, this.page * pageSize);
144	    }
145	    return images;
146	  };
147
148	  AwesomeGallery.prototype.loadMoreActive = function() {
149	    return this.$el.find('.asg-bottom').size() > 0;
150	  };
151
152	  AwesomeGallery.prototype.initLoadMore = function() {
153	    if ((this.$loadMore = this.$el.find('.asg-bottom .asg-load-more')).size() > 0) {
154	      this.$loadMore.addClass('asg-visible');
155	      return this.$loadMore.click((function(_this) {
156	        return function() {
157	          return _this.loadMore();
158	        };
159	      })(this));
160	    } else {
161	      return this.$window.on('scroll.asg', (function(_this) {
162	        return function() {
163	          if (!_this.allLoaded) {
164	            if (_this.$images.height() + _this.$images.offset().top - 400 < _this.$window.scrollTop() + _this.$window.height()) {
165	              return _this.loadMore();
166	            }
167	          }
168	        };
169	      })(this));
170	    }
171	  };
172
173	  AwesomeGallery.prototype.filterCallback = function(filter) {
174	    var visibleImages;
175	    this.currentFilter = filter;
176	    this.page = 1;
177	    this.layout.show(visibleImages = this.getVisibleImages());
178	    this.updateLoadMoreVisibility(visibleImages);
179	    if (this.lightboxAdapter) {
180	      return this.lightboxAdapter.reset();
181	    }
182	  };
183
184	  AwesomeGallery.prototype.updateLoadMoreVisibility = function(visibleImages) {
185	    var matching;
186	    matching = this.images.filter((function(_this) {
187	      return function(image) {
188	        return image.matchesTag(_this.currentFilter);
189	      };
190	    })(this));
191	    if (visibleImages.length < matching.length) {
192	      return this.$el.find('.asg-bottom').show();
193	    } else {
194	      return this.$el.find('.asg-bottom').hide();
195	    }
196	  };
197
198	  AwesomeGallery.prototype.loadMore = function() {
199	    var visibleImages;
200	    if (this.loading || this.allLoaded) {
201	      return;
202	    }
203	    this.page += 1;
204	    visibleImages = this.getVisibleImages();
205	    this.layout.show(visibleImages);
206	    this.updateLoadMoreVisibility(visibleImages);
207	    if (this.lightboxAdapter) {
208	      return this.lightboxAdapter.reset();
209	    }
210	  };
211
212	  AwesomeGallery.prototype.dispose = function() {
213	    this.$window.off('scroll', this.windowScrolled);
214	    if (this.$loadMore) {
215	      return this.$loadMore.off('click', this.loadNextPage);
216	    }
217	  };
218
219	  return AwesomeGallery;
220
221	})();
222
223
224/***/ },
225/* 3 */
226/***/ function(module, exports, __webpack_require__) {
227
228	var GridLayoutStrategy, HorizontalFlowLayoutStrategy, VerticalFlowLayoutStrategy;
229
230	GridLayoutStrategy = __webpack_require__(4);
231
232	VerticalFlowLayoutStrategy = __webpack_require__(7);
233
234	HorizontalFlowLayoutStrategy = __webpack_require__(8);
235
236	module.exports = {
237	  create: function(wrapper, images, config) {
238	    if (config.mode === "usual") {
239	      return new GridLayoutStrategy(wrapper, images, config);
240	    } else if (config.mode === "vertical-flow") {
241	      return new VerticalFlowLayoutStrategy(wrapper, images, config);
242	    } else if (config.mode === 'horizontal-flow') {
243	      return new HorizontalFlowLayoutStrategy(wrapper, images, config);
244	    }
245	  }
246	};
247
248
249/***/ },
250/* 4 */
251/***/ function(module, exports, __webpack_require__) {
252
253	var $, GridLayoutStrategy, LayoutStrategy, jQuery,
254	  bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
255	  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
256	  hasProp = {}.hasOwnProperty;
257
258	jQuery = __webpack_require__(1);
259
260	$ = __webpack_require__(1);
261
262	LayoutStrategy = __webpack_require__(5);
263
264	module.exports = GridLayoutStrategy = (function(superClass) {
265	  extend(GridLayoutStrategy, superClass);
266
267	  function GridLayoutStrategy() {
268	    this.getContainerSize = bind(this.getContainerSize, this);
269	    this.placeItems = bind(this.placeItems, this);
270	    this.reset = bind(this.reset, this);
271	    return GridLayoutStrategy.__super__.constructor.apply(this, arguments);
272	  }
273
274	  GridLayoutStrategy.prototype.reset = function() {
275	    GridLayoutStrategy.__super__.reset.apply(this, arguments);
276	    return this.rowHeight = Math.floor(this.options.height * this.columnWidth / this.options.width);
277	  };
278
279	  GridLayoutStrategy.prototype.placeItems = function(images) {
280	    var border, col, i, image, len, results, row, x, y;
281	    if (this.index === 0 && images.length < this.columns) {
282	      this.columns = images.length;
283	      this.columnWidth = this.options.width;
284	      this.rowHeight = this.options.height;
285	    }
286	    border = this.options.border * 2;
287	    results = [];
288	    for (i = 0, len = images.length; i < len; i++) {
289	      image = images[i];
290	      col = this.index % this.columns;
291	      row = Math.floor(this.index / this.columns);
292	      x = col * (this.columnWidth + this.options.gap);
293	      y = row * (this.rowHeight + this.options.gap);
294	      this.placeElement(image.$el, x, y, this.columnWidth - border, Math.floor(this.rowHeight - border));
295	      results.push(this.index += 1);
296	    }
297	    return results;
298	  };
299
300	  GridLayoutStrategy.prototype.getContainerSize = function() {
301	    var size;
302	    size = {};
303	    size.height = Math.ceil(1.0 * this.index / this.columns) * (this.rowHeight + this.options.gap + this.options.border);
304	    if (this.options.hanging === 'hide' && this.index % this.columns !== 0) {
305	      size.height -= this.rowHeight + this.options.gap + this.options.border;
306	    }
307	    if (this.index <= this.columns) {
308	      size.width = this.columnWidth * this.index + this.options.gap * this.index - 1;
309	    } else {
310	      size.width = this.width;
311	    }
312	    return size;
313	  };
314
315	  return GridLayoutStrategy;
316
317	})(LayoutStrategy);
318
319
320/***/ },
321/* 5 */
322/***/ function(module, exports, __webpack_require__) {
323
324	var $, AnimationQueue, LayoutStrategy, jQuery,
325	  bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
326
327	AnimationQueue = __webpack_require__(6);
328
329	jQuery = __webpack_require__(1);
330
331	$ = __webpack_require__(1);
332
333	LayoutStrategy = (function() {
334	  function LayoutStrategy($el, images, options) {
335	    this.getColumnWidth = bind(this.getColumnWidth, this);
336	    this.getColumns = bind(this.getColumns, this);
337	    this.reLayoutRequired = bind(this.reLayoutRequired, this);
338	    this.layout = bind(this.layout, this);
339	    this.show = bind(this.show, this);
340	    this.reset = bind(this.reset, this);
341	    this.reLayout = bind(this.reLayout, this);
342	    this.onResized = bind(this.onResized, this);
343	    this.$el = $el;
344	    this.images = images;
345	    $(window).smartresize(this.onResized);
346	    this.checkLayoutInterval = setInterval(this.onResized, 500);
347	    this.options = options;
348	    this.visibleImages = [];
349	    this.reset();
350	    this.queue = new AnimationQueue();
351	  }
352
353	  LayoutStrategy.prototype.onResized = function() {
354	    if (this.reLayoutRequired()) {
355	      return this.reLayout();
356	    }
357	  };
358
359	  LayoutStrategy.prototype.reLayout = function(images) {
360	    if (images == null) {
361	      images = null;
362	    }
363	    if (images) {
364	      this.images = images;
365	    }
366	    this.reset();
367	    return this.layout();
368	  };
369
370	  LayoutStrategy.prototype.reset = function() {
371	    this.index = 0;
372	    this.width = this.$el.parent().width();
373	    this.columns = this.getColumns();
374	    return this.columnWidth = this.getColumnWidth();
375	  };
376
377	  LayoutStrategy.prototype.difference = function(array1, array2) {
378	    var diff, element, i, len;
379	    diff = [];
380	    for (i = 0, len = array1.length; i < len; i++) {
381	      element = array1[i];
382	      if (array2.indexOf(element) === -1) {
383	        diff.push(element);
384	      }
385	    }
386	    return diff;
387	  };
388
389	  LayoutStrategy.prototype.show = function(images) {
390	    var i, image, j, len, len1, toHide, toShow;
391	    if (this.visibleImages) {
392	      toShow = this.difference(images, this.visibleImages);
393	      toHide = this.difference(this.visibleImages, images);
394	    } else {
395	      toShow = this.images;
396	      toHide = [];
397	    }
398	    for (i = 0, len = toShow.length; i < len; i++) {
399	      image = toShow[i];
400	      image.show();
401	    }
402	    for (j = 0, len1 = toHide.length; j < len1; j++) {
403	      image = toHide[j];
404	      image.hide();
405	    }
406	    this.visibleImages = images;
407	    this.reset();
408	    return this.layout();
409	  };
410
411	  LayoutStrategy.prototype.layout = function() {
412	    var size;
413	    this.queue.clear();
414	    this.placeItems(this.visibleImages);
415	    size = this.getContainerSize();
416	    return this.$el.css({
417	      width: size.width + "px",
418	      height: size.height + "px"
419	    });
420	  };
421
422	  LayoutStrategy.prototype.placeElement = function(el, x, y, width, height) {
423	    var css;
424	    css = {
425	      left: x,
426	      top: y
427	    };
428	    if (width && height) {
429	      css.width = width;
430	      css.height = height;
431	    }
432	    return this.queue.enqueue(el, css);
433	  };
434
435	  LayoutStrategy.prototype.reLayoutRequired = function() {
436	    return this.$el.parent().width() !== this.width;
437	  };
438
439	  LayoutStrategy.prototype.getColumns = function() {
440	    var columns, fullWidth, width;
441	    width = this.width;
442	    columns = Math.floor((width + this.options.gap) / (this.options.width + this.options.gap + this.options.border * 2));
443	    fullWidth = columns * (this.options.width + this.options.border * 2) + (columns - 1) * this.options.gap;
444	    if (width > fullWidth) {
445	      columns = columns + 1;
446	    }
447	    if (columns === 0) {
448	      columns = 1;
449	    }
450	    return columns;
451	  };
452
453	  LayoutStrategy.prototype.getColumnWidth = function() {
454	    var columns;
455	    columns = this.columns;
456	    if (columns > 1) {
457	      return Math.floor((this.width + this.options.gap) / columns - this.options.gap);
458	    }
459	    return this.width;
460	  };
461
462	  return LayoutStrategy;
463
464	})();
465
466	module.exports = LayoutStrategy;
467
468
469/***/ },
470/* 6 */
471/***/ function(module, exports) {
472
473	var AnimationQueue,
474	  bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
475
476	module.exports = AnimationQueue = (function() {
477	  function AnimationQueue() {
478	    this.flush = bind(this.flush, this);
479	    this.clear = bind(this.clear, this);
480	    this.enqueue = bind(this.enqueue, this);
481	  }
482
483	  AnimationQueue.prototype.queue = [];
484
485	  AnimationQueue.prototype.queues = [];
486
487	  AnimationQueue.prototype.flushInterval = null;
488
489	  AnimationQueue.prototype.flushTimespan = 10;
490
491	  AnimationQueue.prototype.enqueue = function($el, style) {
492	    this.queue.push([$el, style]);
493	    if (!this.flushInterval) {
494	      return this.flushInterval = setTimeout(this.flush, this.flushTimespan);
495	    }
496	  };
497
498	  AnimationQueue.prototype.clear = function() {
499	    this.queue = [];
500	    clearTimeout(this.flushInterval);
501	    return this.flushInterval = null;
502	  };
503
504	  AnimationQueue.prototype.flush = function() {
505	    var i, item;
506	    i = 50;
507	    while (i > 0 && this.queue.length > 0) {
508	      item = this.queue.shift();
509	      item[0].css(item[1]);
510	      i -= 1;
511	    }
512	    if (this.queue.length > 0) {
513	      this.flushInterval = setTimeout(this.flush, this.flushTimespan);
514	      return this.flushInterval = null;
515	    }
516	  };
517
518	  return AnimationQueue;
519
520	})();
521
522
523/***/ },
524/* 7 */
525/***/ function(module, exports, __webpack_require__) {
526
527	var $, LayoutStrategy, VerticalFlowLayoutStrategy, jQuery,
528	  bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
529	  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
530	  hasProp = {}.hasOwnProperty;
531
532	jQuery = __webpack_require__(1);
533
534	$ = __webpack_require__(1);
535
536	LayoutStrategy = __webpack_require__(5);
537
538	module.exports = VerticalFlowLayoutStrategy = (function(superClass) {
539	  extend(VerticalFlowLayoutStrategy, superClass);
540
541	  function VerticalFlowLayoutStrategy() {
542	    this.placeItems = bind(this.placeItems, this);
543	    this.reset = bind(this.reset, this);
544	    return VerticalFlowLayoutStrategy.__super__.constructor.apply(this, arguments);
545	  }
546
547	  VerticalFlowLayoutStrategy.prototype.reset = function() {
548	    var col, j, ref, results;
549	    VerticalFlowLayoutStrategy.__super__.reset.apply(this, arguments);
550	    this.columnHeights = [];
551	    this.columnImages = [];
552	    results = [];
553	    for (col = j = 0, ref = this.columns - 1; 0 <= ref ? j <= ref : j >= ref; col = 0 <= ref ? ++j : --j) {
554	      this.columnImages[col] = [];
555	      results.push(this.columnHeights[col] = 0);
556	    }
557	    return results;
558	  };
559
560	  VerticalFlowLayoutStrategy.prototype.placeItems = function(images) {
561	    var columnIndex, columnWidth, columns, highestColumn, highestHeight, image, imageHeight, imageWidth, j, lastInHighestColumn, lastInHighestColumnHeight, len, lowestColumn, lowestHeight, newLowestHeight;
562	    if (this.index === 0 && images.length < this.columns) {
563	      this.columns = images.length;
564	      this.columnWidth = this.options.width;
565	    }
566	    columns = this.columns;
567	    columnWidth = this.columnWidth;
568	    imageWidth = columnWidth - this.options.border * 2;
569	    for (j = 0, len = images.length; j < len; j++) {
570	      image = images[j];
571	      imageHeight = image.naturalHeight * imageWidth * 1.0 / image.naturalWidth;
572	      columnIndex = this.index % columns;
573	      this.columnImages[columnIndex].push(image);
574	      this.placeElement(image.$el, columnIndex * columnWidth + this.options.gap * columnIndex, this.columnHeights[columnIndex] + this.options.gap, imageWidth, imageHeight);
575	      this.columnHeights[columnIndex] += imageHeight + this.options.gap + this.options.border * 2;
576	      this.index += 1;
577	    }
578	    while (true) {
579	      lowestColumn = $.inArray(Math.min.apply(null, this.columnHeights), this.columnHeights);
580	      highestColumn = $.inArray(Math.max.apply(null, this.columnHeights), this.columnHeights);
581	      if (lowestColumn === highestColumn) {
582	        return;
583	      }
584	      lastInHighestColumn = this.columnImages[highestColumn].pop();
585	      if (!lastInHighestColumn) {
586	        return;
587	      }
588	      lastInHighestColumnHeight = lastInHighestColumn.naturalHeight * imageWidth / lastInHighestColumn.naturalWidth + this.options.gap + this.options.border * 2;
589	      lowestHeight = this.columnHeights[lowestColumn];
590	      highestHeight = this.columnHeights[highestColumn];
591	      newLowestHeight = lowestHeight + lastInHighestColumnHeight;
592	      if (newLowestHeight >= highestHeight) {
593	        return;
594	      }
595	      this.columnImages[lowestColumn].push(lastInHighestColumn);
596	      this.placeElement(lastInHighestColumn.$el, lowestColumn * (this.columnWidth + this.options.gap), this.columnHeights[lowestColumn] + this.options.gap);
597	      this.columnHeights[highestColumn] -= lastInHighestColumnHeight;
598	      this.columnHeights[lowestColumn] += lastInHighestColumnHeight;
599	    }
600	  };
601
602	  VerticalFlowLayoutStrategy.prototype.getContainerSize = function() {
603	    var height, i, j, ref, size;
604	    height = 0;
605	    size = {};
606	    for (i = j = 0, ref = this.columns - 1; 0 <= ref ? j <= ref : j >= ref; i = 0 <= ref ? ++j : --j) {
607	      if (this.columnHeights[i] > height) {
608	        height = this.columnHeights[i];
609	      }
610	    }
611	    if (this.index < this.columns) {
612	      size.width = this.columnWidth * this.index;
613	    } else {
614	      size.width = this.width;
615	    }
616	    size.height = height + this.options.gap;
617	    return size;
618	  };
619
620	  return VerticalFlowLayoutStrategy;
621
622	})(LayoutStrategy);
623
624
625/***/ },
626/* 8 */
627/***/ function(module, exports, __webpack_require__) {
628
629	var $, HorizontalFlowLayoutStrategy, LayoutStrategy, jQuery,
630	  bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
631	  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
632	  hasProp = {}.hasOwnProperty;
633
634	jQuery = __webpack_require__(1);
635
636	$ = __webpack_require__(1);
637
638	LayoutStrategy = __webpack_require__(5);
639
640	module.exports = HorizontalFlowLayoutStrategy = (function(superClass) {
641	  extend(HorizontalFlowLayoutStrategy, superClass);
642
643	  function HorizontalFlowLayoutStrategy() {
644	    this.getContainerSize = bind(this.getContainerSize, this);
645	    this.placeItems = bind(this.placeItems, this);
646	    this.startNewRow = bind(this.startNewRow, this);
647	    this.shrinkCurrentRow = bind(this.shrinkCurrentRow, this);
648	    this.reset = bind(this.reset, this);
649	    return HorizontalFlowLayoutStrategy.__super__.constructor.apply(this, arguments);
650	  }
651
652	  HorizontalFlowLayoutStrategy.prototype.reset = function() {
653	    HorizontalFlowLayoutStrategy.__super__.reset.apply(this, arguments);
654	    this.currentRow = [];
655	    this.sizes = [];
656	    this.currentRowWidth = 0;
657	    this.rows = [this.currentRow];
658	    this.elementSizes = [this.sizes];
659	    this.height = 0;
660	    return this.prevWidth = 0;
661	  };
662
663	  HorizontalFlowLayoutStrategy.prototype.shrinkCurrentRow = function(newHeight) {
664	    var shrinkFactor, x;
665	    x = 0;
666	    shrinkFactor = this.options.height / newHeight;
667	    return $.each(this.currentRow, ((function(_this) {
668	      return function(rowIndex, image) {
669	        var imageWidth;
670	        if (rowIndex !== _this.currentRow.length - 1 || _this.currentRowWidth < _this.prevWidth) {
671	          imageWidth = Math.floor(_this.sizes[rowIndex] / shrinkFactor);
672	          _this.placeElement(image.$el, x, _this.height, imageWidth, newHeight);
673	          return x += imageWidth + _this.options.gap + _this.options.border * 2;
674	        } else {
675	          return _this.placeElement(image.$el, x, _this.height, _this.width - x - _this.options.border * 2, newHeight);
676	        }
677	      };
678	    })(this)));
679	  };
680
681	  HorizontalFlowLayoutStrategy.prototype.startNewRow = function() {
682	    this.rows.push(this.currentRow = []);
683	    this.elementSizes.push(this.sizes = []);
684	    return this.currentRowWidth = 0;
685	  };
686
687	  HorizontalFlowLayoutStrategy.prototype.placeItems = function(images) {
688	    var elementWidth, height, i, image, index, len, shrinkFactor, width, x;
689	    width = this.width;
690	    index = 0;
691	    for (i = 0, len = images.length; i < len; i++) {
692	      image = images[i];
693	      this.currentRow.push(image);
694	      this.sizes.push(elementWidth = image.naturalWidth / image.naturalHeight * this.options.height);
695	      this.currentRowWidth += elementWidth + this.options.gap + this.options.border * 2;
696	      if (this.currentRowWidth >= width + this.options.gap) {
697	        this.currentRowWidth -= this.options.gap;
698	        shrinkFactor = (this.currentRowWidth - (this.currentRow.length - 1) * this.options.gap - this.currentRow.length * this.options.border * 2) / (width - (this.currentRow.length - 1) * this.options.gap - this.currentRow.length * this.options.border * 2);
699	        height = Math.floor(this.options.height / shrinkFactor);
700	        this.shrinkCurrentRow(height);
701	        this.height += height + this.options.gap + this.options.border * 2;
702	        this.startNewRow();
703	      }
704	      index += 1;
705	    }
706	    if (this.currentRowWidth < this.width) {
707	      x = 0;
708	      return $.each(this.currentRow, (function(_this) {
709	        return function(rowIndex, image) {
710	          var imageWidth;
711	          imageWidth = Math.floor(_this.sizes[rowIndex]);
712	          _this.placeElement(image.$el, x, _this.height, imageWidth, _this.options.height);
713	          return x += imageWidth + _this.options.gap + _this.options.border * 2;
714	        };
715	      })(this));
716	    }
717	  };
718
719	  HorizontalFlowLayoutStrategy.prototype.getContainerSize = function() {
720	    var size;
721	    size = {};
722	    if (this.rows.length > 1) {
723	      size.height = this.height;
724	      if (this.options.allowHanging && this.currentRowWidth < this.width && this.currentRowWidth > 0) {
725	        size.height += this.options.height + this.options.gap + this.options.border * 2;
726	      }
727	    } else {
728	      if (this.currentRow.length > 0) {
729	        size.height = this.options.height + this.options.gap + this.options.border * 2;
730	      } else {
731	        size.height = 0;
732	      }
733	    }
734	    if (this.rows.length < 2 && this.currentRowWidth > 0) {
735	      size.width = this.currentRowWidth;
736	    } else {
737	      size.width = this.width;
738	    }
739	    return size;
740	  };
741
742	  return HorizontalFlowLayoutStrategy;
743
744	})(LayoutStrategy);
745
746
747/***/ },
748/* 9 */
749/***/ function(module, exports, __webpack_require__) {
750
751	var $, GalleryFilters, jQuery,
752	  bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
753
754	jQuery = __webpack_require__(1);
755
756	$ = __webpack_require__(1);
757
758	module.exports = GalleryFilters = (function() {
759	  function GalleryFilters($el, filterCallback) {
760	    this.onFilterClick = bind(this.onFilterClick, this);
761	    this.$el = $el;
762	    this.tags = [];
763	    this.filterCallback = filterCallback;
764	    this.current = null;
765	    this.$el.on('click', '.asg-filter', this.onFilterClick);
766	  }
767
768	  GalleryFilters.prototype.onFilterClick = function(event) {
769	    var filter;
770	    event.preventDefault();
771	    filter = $(event.target);
772	    this.$el.find('> div').removeClass('asg-active');
773	    $(filter).parent().addClass('asg-active');
774	    this.current = $(filter).attr('data-tag');
775	    return this.filterCallback(this.current.toLowerCase().trim());
776	  };
777
778	  return GalleryFilters;
779
780	})();
781
782
783/***/ },
784/* 10 */
785/***/ function(module, exports, __webpack_require__) {
786
787	var JetpackAdapter, MagnificPopupAdapter, PrettyPhotoAdapter, SwipeboxAdapter, UberboxAdapter, iLightboxAdapter;
788
789	MagnificPopupAdapter = __webpack_require__(11);
790
791	SwipeboxAdapter = __webpack_require__(13);
792
793	PrettyPhotoAdapter = __webpack_require__(14);
794
795	iLightboxAdapter = __webpack_require__(15);
796
797	JetpackAdapter = __webpack_require__(16);
798
799	UberboxAdapter = __webpack_require__(17);
800
801	module.exports = {
802	  create: function($images, config) {
803	    switch (config.name) {
804	      case 'magnific-popup':
805	        return new MagnificPopupAdapter($images, config);
806	      case 'swipebox':
807	        return new SwipeboxAdapter($images, config);
808	      case 'prettyphoto':
809	        return new PrettyPhotoAdapter($images, config);
810	      case 'ilightbox':
811	        return new iLightboxAdapter($images, config);
812	      case 'jetpack':
813	        return new JetpackAdapter($images, config);
814	      case 'foobox':
815	        return new FooBoxAdapter($images, config);
816	      case 'uberbox':
817	        return new UberboxAdapter($images, config);
818	      default:
819	        return null;
820	    }
821	  }
822	};
823
824
825/***/ },
826/* 11 */
827/***/ function(module, exports, __webpack_require__) {
828
829	var $, LightboxAdapter, MagnificPopupAdapter, jQuery,
830	  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
831	  hasProp = {}.hasOwnProperty;
832
833	LightboxAdapter = __webpack_require__(12);
834
835	jQuery = __webpack_require__(1);
836
837	$ = jQuery;
838
839	module.exports = MagnificPopupAdapter = (function(superClass) {
840	  extend(MagnificPopupAdapter, superClass);
841
842	  function MagnificPopupAdapter($el, config) {
843	    var _this;
844	    _this = this;
845	    $el.magnificPopup({
846	      type: 'image',
847	      delegate: this.linkSelector,
848	      gallery: {
849	        enabled: true
850	      },
851	      mainClass: 'mfp-asg',
852	      image: {
853	        titleSrc: function() {
854	          var caption_1, caption_2, el;
855	          el = this.currItem.el.parent();
856	          if (caption_1 = el.find('.asg-lightbox-caption1').html()) {
857	            caption_1 = $('<h3 />').html(caption_1)[0].outerHTML;
858	          } else {
859	            caption_1 = '';
860	          }
861	          if (caption_2 = el.find('.asg-lightbox-caption2').html()) {
862	            caption_2 = $('<div />').html(caption_2)[0].outerHTML;
863	          } else {
864	            caption_2 = '';
865	          }
866	          if (caption_1 + caption_2) {
867	            return caption_1 + caption_2;
868	          }
869	          return null;
870	        },
871	        markup: '<div class="mfp-figure">' + '<div class="mfp-close"></div>' + '<figure>' + '<div class="mfp-img"></div>' + '<div class="mfp-asg-border"></div>' + '<figcaption>' + '<div class="mfp-bottom-bar">' + '<div class="mfp-title"></div>' + '<div class="mfp-counter"></div>' + '</div>' + '</figcaption>' + '</figure>' + '</div>'
872	      },
873	      callbacks: {
874	        open: (function() {
875	          jQuery('.mfp-wrap').addClass('mfp-asg');
876	          return this._lastFocusedEl = null;
877	        }),
878	        markupParse: (function(template) {
879	          return template.find('.mfp-counter').remove();
880	        }),
881	        afterClose: (function(_this) {
882	          return function() {
883	            return _this.resetHash();
884	          };
885	        })(this),
886	        afterChange: function() {
887	          return _this.setHash(this.currItem.el.closest('.asg-image'));
888	        }
889	      }
890	    });
891	    MagnificPopupAdapter.__super__.constructor.call(this, $el, config);
892	  }
893
894	  return MagnificPopupAdapter;
895
896	})(LightboxAdapter);
897
898
899/***/ },
900/* 12 */
901/***/ function(module, exports, __webpack_require__) {
902
903	var $, LightboxAdapter, jQuery,
904	  bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
905
906	$ = __webpack_require__(1);
907
908	jQuery = __webpack_require__(1);
909
910	module.exports = LightboxAdapter = (function() {
911	  function LightboxAdapter($el, config) {
912	    this.onPrevSlide = bind(this.onPrevSlide, this);
913	    this.onNextSlide = bind(this.onNextSlide, this);
914	    this.onAfterClose = bind(this.onAfterClose, this);
915	    this.onKeyUp = bind(this.onKeyUp, this);
916	    this.setHash = bind(this.setHash, this);
917	    this.getInstanceIndex = bind(this.getInstanceIndex, this);
918	    this.onImageClicked = bind(this.onImageClicked, this);
919	    this.getSlug = bind(this.getSlug, this);
920	    this.getId = bind(this.getId, this);
921	    this.getAllLightboxLinks = bind(this.getAllLightboxLinks, this);
922	    this.getLightboxLinks = bind(this.getLightboxLinks, this);
923	    this.getDeeplinkImage = bind(this.getDeeplinkImage, this);
924	    this.loadDeepLink = bind(this.loadDeepLink, this);
925	    this.checkForDeeplink = bind(this.checkForDeeplink, this);
926	    this.addImages = bind(this.addImages, this);
927	    this.reset = bind(this.reset, this);
928	    this.$el = $el;
929	    this.config = config;
930	    this.getAllLightboxLinks().off('click').removeClass('prettyphoto').removeClass('thickbox');
931	    setTimeout(this.reset, 1);
932	    this.reset();
933	    this.checkForDeeplink();
934	  }
935
936	  LightboxAdapter.prototype.reset = function() {
937	    this.getAllLightboxLinks().off('click', this.onImageClicked);
938	    return this.getLightboxLinks().on('click', this.onImageClicked);
939	  };
940
941	  LightboxAdapter.prototype.addImages = function(images) {
942	    return this.reset();
943	  };
944
945	  LightboxAdapter.prototype.checkForDeeplink = function() {
946	    var gridId, image;
947	    if (location.hash.match(/^#\d+\-/)) {
948	      gridId = location.hash.replace(/^\#/, '').replace(/\-.*/, '');
949	      if (gridId !== this.getId()) {
950	        return false;
951	      }
952	      image = location.hash.replace(/^.*\//, '');
953	      this.loadDeepLink(image);
954	      return true;
955	    }
956	  };
957
958	  LightboxAdapter.prototype.loadDeepLink = function(image) {
959	    var linkedImage;
960	    linkedImage = this.getDeeplinkImage(image);
961	    if (linkedImage.length > 0) {
962	      return this.clickImage(linkedImage);
963	    }
964	  };
965
966	  LightboxAdapter.prototype.clickImage = function(image) {
967	    return $(image).find('a.asg-lightbox').click();
968	  };
969
970	  LightboxAdapter.prototype.getDeeplinkImage = function(id) {
971	    return jQuery.grep(this.getLightboxLinks().closest('.asg-image'), function(cell) {
972	      return $(cell).data('slug').toString() === id;
973	    });
974	  };
975
976	  LightboxAdapter.prototype.linkSelector = '.asg-image.asg-match-filter .asg-image-wrapper.asg-lightbox';
977
978	  LightboxAdapter.prototype.allLinkSelector = '.asg-image .asg-image-wrapper.asg-lightbox';
979
980	  LightboxAdapter.prototype.getLightboxLinks = function() {
981	    return this.$el.find(this.linkSelector);
982	  };
983
984	  LightboxAdapter.prototype.getAllLightboxLinks = function() {
985	    return this.$el.find(this.allLinkSelector);
986	  };
987
988	  LightboxAdapter.prototype.getId = function() {
989	    return this.$el.parent().attr('id').replace(/\-\d+$/, '').replace(/^.*\-/, '');
990	  };
991
992	  LightboxAdapter.prototype.getSlug = function() {
993	    return this.$el.parent().attr('data-slug');
994	  };
995
996	  LightboxAdapter.prototype.getLightboxCaption1 = function(el) {
997	    var caption_1;
998	    if (caption_1 = el.find('.asg-lightbox-caption1').html()) {
999	      caption_1 = $('<h3 />').html(caption_1)[0].outerHTML;
1000	    } else {
1001	      caption_1 = '';
1002	    }
1003	    return caption_1;
1004	  };
1005
1006	  LightboxAdapter.prototype.getLightboxCaption2 = function(el) {
1007	    var caption_2;
1008	    if (caption_2 = el.find('.asg-lightbox-caption2').html()) {
1009	      caption_2 = $('<div />').html(caption_2)[0].outerHTML;
1010	    } else {
1011	      caption_2 = '';
1012	    }
1013	    return caption_2;
1014	  };
1015
1016	  LightboxAdapter.prototype.onImageClicked = function(event) {
1017	    var cell;
1018	    cell = jQuery(event.target).closest('.asg-image');
1019	    this.scrollTop = jQuery(document).scrollTop();
1020	    return this.setHash(cell);
1021	  };
1022
1023	  LightboxAdapter.prototype.getID = function() {
1024	    return this.$el.parent().attr('id').replace(/\-\d+$/, '').replace(/.+\-/, '');
1025	  };
1026
1027	  LightboxAdapter.prototype.getInstanceIndex = function() {
1028	    return this.$el.parent().attr('id').replace(/.*\-/, '');
1029	  };
1030
1031	  LightboxAdapter.prototype.setHash = function(cell) {
1032	    var cellSlug, id;
1033	    id = this.getID();
1034	    cellSlug = cell.data('slug');
1035	    this.prevHash = location.hash;
1036	    return location.hash = id + "-" + (this.getSlug()) + "/" + cellSlug;
1037	  };
1038
1039	  LightboxAdapter.prototype.resetHash = function() {
1040	    if (this.prevHash) {
1041	      location.hash = this.prevHash;
1042	      delete this.prevHash;
1043	    } else {
1044	      location.hash = '#';
1045	    }
1046	    if (this.scrollTop && this.scrollTop > 0) {
1047	      return jQuery(document).scrollTop(this.scrollTop);
1048	    }
1049	  };
1050
1051	  LightboxAdapter.prototype.onKeyUp = function(event) {
1052	    if (event.keyCode === 37) {
1053	      return this.onPrevSlide();
1054	    } else if (event.keyCode === 39) {
1055	      return this.onNextSlide();
1056	    } else if (event.keyCode === 27) {
1057	      return this.onAfterClose();
1058	    }
1059	  };
1060
1061	  LightboxAdapter.prototype.onAfterClose = function() {
1062	    $(window).off('keyup', this.onKeyup);
1063	    return this.resetHash();
1064	  };
1065
1066	  LightboxAdapter.prototype.onNextSlide = function() {
1067	    var lightboxLinks;
1068	    this.currentIndex += 1;
1069	    lightboxLinks = this.getLightboxLinks();
1070	    if (this.currentIndex === lightboxLinks.length) {
1071	      this.currentIndex = lightboxLinks.length - 1;
1072	    }
1073	    return this.setHash(this.getLightboxLinks().eq(this.currentIndex).closest('.asg-image'));
1074	  };
1075
1076	  LightboxAdapter.prototype.onPrevSlide = function() {
1077	    this.currentIndex -= 1;
1078	    if (this.currentIndex < 0) {
1079	      this.currentIndex = 0;
1080	    }
1081	    return this.setHash(this.getLightboxLinks().eq(this.currentIndex).closest('.asg-image'));
1082	  };
1083
1084	  return LightboxAdapter;
1085
1086	})();
1087
1088
1089/***/ },
1090/* 13 */
1091/***/ function(module, exports, __webpack_require__) {
1092
1093	var $, LightboxAdapter, SwipeboxAdapter, jQuery,
1094	  bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
1095	  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
1096	  hasProp = {}.hasOwnProperty;
1097
1098	jQuery = __webpack_require__(1);
1099
1100	$ = jQuery;
1101
1102	LightboxAdapter = __webpack_require__(12);
1103
1104	SwipeboxAdapter = (function(superClass) {
1105	  extend(SwipeboxAdapter, superClass);
1106
1107	  function SwipeboxAdapter() {
1108	    this.onImageClicked = bind(this.onImageClicked, this);
1109	    return SwipeboxAdapter.__super__.constructor.apply(this, arguments);
1110	  }
1111
1112	  SwipeboxAdapter.prototype.onImageClicked = function(event) {
1113	    var elements, lightboxImages;
1114	    SwipeboxAdapter.__super__.onImageClicked.call(this, event);
1115	    event.preventDefault();
1116	    elements = this.$el.find(this.linkSelector);
1117	    lightboxImages = $.map(elements, (function(_this) {
1118	      return function(image) {
1119	        image = $(image);
1120	        return {
1121	          href: image.attr('href'),
1122	          title: function() {
1123	            var caption1, caption2, html;
1124	            image = image.closest('.asg-image');
1125	            html = $('<div/>');
1126	            if (caption2 = _this.getLightboxCaption2(image)) {
1127	              html.append($('<small class="asg-small"/>').html(caption2));
1128	            }
1129	            if (caption1 = _this.getLightboxCaption1(image)) {
1130	              html.append($('<div />').html(caption1));
1131	            }
1132	            return html.html();
1133	          }
1134	        };
1135	      };
1136	    })(this));
1137	    this.currentIndex = elements.index($(event.target).closest('a.asg-image-wrapper'));
1138	    $.swipebox(lightboxImages, {
1139	      initialIndexOnArray: this.currentIndex
1140	    });
1141	    jQuery('#swipebox-next').click(this.onNextSlide);
1142	    jQuery('#swipebox-prev').click(this.onPrevSlide);
1143	    return jQuery(window).on('keyup', this.onKeyUp);
1144	  };
1145
1146	  return SwipeboxAdapter;
1147
1148	})(LightboxAdapter);
1149
1150	module.exports = SwipeboxAdapter;
1151
1152
1153/***/ },
1154/* 14 */
1155/***/ function(module, exports, __webpack_require__) {
1156
1157	var $, LightboxAdapter, PrettyPhotoAdapter, jQuery,
1158	  bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
1159	  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
1160	  hasProp = {}.hasOwnProperty;
1161
1162	$ = jQuery = __webpack_require__(1);
1163
1164	LightboxAdapter = __webpack_require__(12);
1165
1166	module.exports = PrettyPhotoAdapter = (function(superClass) {
1167	  extend(PrettyPhotoAdapter, superClass);
1168
1169	  function PrettyPhotoAdapter() {
1170	    this.onPrevSlide = bind(this.onPrevSlide, this);
1171	    this.onNextSlide = bind(this.onNextSlide, this);
1172	    this.onKeyUp = bind(this.onKeyUp, this);
1173	    this.onImageClicked = bind(this.onImageClicked, this);
1174	    return PrettyPhotoAdapter.__super__.constructor.apply(this, arguments);
1175	  }
1176
1177	  PrettyPhotoAdapter.prototype.onImageClicked = function(event) {
1178	    var descriptions, elements, titles, urls;
1179	    event.preventDefault();
1180	    event.stopPropagation();
1181	    elements = this.$el.find(this.linkSelector);
1182	    urls = elements.map((function(_this) {
1183	      return function(index, image) {
1184	        return $(image).closest('a.asg-image-wrapper').attr('href');
1185	      };
1186	    })(this));
1187	    titles = elements.map((function(_this) {
1188	      return function(index, image) {
1189	        return _this.getLightboxCaption1($(image).closest('.asg-image'));
1190	      };
1191	    })(this));
1192	    descriptions = elements.map((function(_this) {
1193	      return function(index, image) {
1194	        return _this.getLightboxCaption2($(image).closest('.asg-image'));
1195	      };
1196	    })(this));
1197	    $.fn.prettyPhoto(this.config.settings);
1198	    $.prettyPhoto.open(urls, titles, descriptions, this.currentIndex = elements.index($(event.target).closest('.asg-image-wrapper')));
1199	    this.setHash($(event.target).closest('.asg-image'));
1200	    $(document).on('keydown.prettyphoto', this.onKeyUp);
1201	    $('.pp_previous').on('click.asg', this.onPrevSlide);
1202	    return $('.pp_next').on('click.asg', this.onNextSlide);
1203	  };
1204
1205	  PrettyPhotoAdapter.prototype.onKeyUp = function(event) {
1206	    if (event.keyCode === 37) {
1207	      return this.onPrevSlide();
1208	    } else if (event.keyCode === 39) {
1209	      return this.onNextSlide();
1210	    } else if (event.keyCode === 27) {
1211	      return this.resetHash();
1212	    }
1213	  };
1214
1215	  PrettyPhotoAdapter.prototype.onNextSlide = function() {
1216	    var lightboxLinks;
1217	    this.currentIndex += 1;
1218	    lightboxLinks = this.getLightboxLinks();
1219	    if (this.currentIndex === lightboxLinks.length) {
1220	      this.currentIndex = lightboxLinks.length - 1;
1221	    }
1222	    return this.setHash(this.getLightboxLinks().eq(this.currentIndex).closest('.asg-image'));
1223	  };
1224
1225	  PrettyPhotoAdapter.prototype.onPrevSlide = function() {
1226	    this.currentIndex -= 1;
1227	    if (this.currentIndex < 0) {
1228	      this.currentIndex = 0;
1229	    }
1230	    return this.setHash(this.getLightboxLinks().eq(this.currentIndex).closest('.asg-image'));
1231	  };
1232
1233	  return PrettyPhotoAdapter;
1234
1235	})(LightboxAdapter);
1236
1237
1238/***/ },
1239/* 15 */
1240/***/ function(module, exports, __webpack_require__) {
1241
1242	var $, LightboxAdapter, iLightboxAdapter, jQuery,
1243	  bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
1244	  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
1245	  hasProp = {}.hasOwnProperty;
1246
1247	jQuery = __webpack_require__(1);
1248
1249	$ = __webpack_require__(1);
1250
1251	LightboxAdapter = __webpack_require__(12);
1252
1253	module.exports = iLightboxAdapter = (function(superClass) {
1254	  extend(iLightboxAdapter, superClass);
1255
1256	  function iLightboxAdapter($el, config) {
1257	    this.onImageClicked = bind(this.onImageClicked, this);
1258	    if (!$.iLightBox) {
1259	      alert('iLightbox not detected. Please install end enable iLightbox plugin.');
1260	    }
1261	    iLightboxAdapter.__super__.constructor.call(this, $el, config);
1262	  }
1263
1264	  iLightboxAdapter.prototype.onImageClicked = function(event) {
1265	    var elements, index, lightboxImages, options;
1266	    iLightboxAdapter.__super__.onImageClicked.call(this, event);
1267	    event.preventDefault();
1268	    elements = this.$el.find(this.linkSelector);
1269	    lightboxImages = $.map(elements, function(el) {
1270	      var data, image;
1271	      data = $(el);
1272	      image = data.closest('.asg-image').data('asg-image');
1273	      return {
1274	        url: data.attr('href'),
1275	        caption: image.getLightboxCaption1(),
1276	        thumbnail: data.find('.asg-image-wrapper img').attr('src')
1277	      };
1278	    });
1279	    this.currentIndex = index = elements.index($(event.target).closest('.asg-image-wrapper'));
1280	    options = $.extend(this.config.settings, ILIGHTBOX.options && eval("(" + rawurldecode(ILIGHTBOX.options) + ")") || {});
1281	    return $.iLightBox(lightboxImages, $.extend({
1282	      startFrom: index,
1283	      callback: {
1284	        onAfterChange: (function(_this) {
1285	          return function(instance) {
1286	            _this.currentIndex = instance.currentItem;
1287	            return _this.setHash(elements.eq(_this.currentIndex).closest('.asg-image'));
1288	          };
1289	        })(this),
1290	        onHide: (function(_this) {
1291	          return function() {
1292	            return _this.resetHash();
1293	          };
1294	        })(this)
1295	      }
1296	    }, options));
1297	  };
1298
1299	  return iLightboxAdapter;
1300
1301	})(LightboxAdapter);
1302
1303
1304/***/ },
1305/* 16 */
1306/***/ function(module, exports, __webpack_require__) {
1307
1308	var $, JetpackAdapter, LightboxAdapter, jQuery,
1309	  bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
1310	  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
1311	  hasProp = {}.hasOwnProperty;
1312
1313	jQuery = __webpack_require__(1);
1314
1315	$ = jQuery;
1316
1317	LightboxAdapter = __webpack_require__(12);
1318
1319	module.exports = JetpackAdapter = (function(superClass) {
1320	  extend(JetpackAdapter, superClass);
1321
1322	  function JetpackAdapter($el, config) {
1323	    this.onPrevSlide = bind(this.onPrevSlide, this);
1324	    this.onNextSlide = bind(this.onNextSlide, this);
1325	    this.setHashFromCurrentIndex = bind(this.setHashFromCurrentIndex, this);
1326	    this.onAfterClose = bind(this.onAfterClose, this);
1327	    this.startCarousel = bind(this.startCarousel, this);
1328	    this.onImageClicked = bind(this.onImageClicked, this);
1329	    this.addImages = bind(this.addImages, this);
1330	    JetpackAdapter.__super__.constructor.call(this, $el, config);
1331	    this.$el.data('carousel-extra', {
1332	      blog_id: 1,
1333	      permalink: 'http://awesome-gallery.dev'
1334	    });
1335	  }
1336
1337	  JetpackAdapter.prototype.addImages = function(images) {
1338	    var i, image, len, url, wrapper;
1339	    images.addClass('tiled-gallery-item');
1340	    for (i = 0, len = images.length; i < len; i++) {
1341	      image = images[i];
1342	      image = $(image);
1343	      wrapper = image.closest('.asg-image');
1344	      url = image.find('.asg-image-wrapper').attr('href');
1345	      image.find('img').data({
1346	        'orig-file': url,
1347	        'orig-size': (wrapper.data('width')) + "," + (wrapper.data('height')),
1348	        'large-file': url,
1349	        'medium-file': url,
1350	        'small-file': url,
1351	        'image-title': this.getLightboxCaption1(wrapper),
1352	        'image-description': this.getLightboxCaption2(wrapper),
1353	        'image-meta': wrapper.data('meta'),
1354	        'attachment-id': wrapper.data('attachment-id') ? wrapper.data('attachment-id') : 'asg-hack',
1355	        'comments-opened': wrapper.data('attachment-id') ? 1 : null
1356	      });
1357	    }
1358	    return images.on('click', this.onImageClicked);
1359	  };
1360
1361	  JetpackAdapter.prototype.onImageClicked = function(event) {
1362	    event.preventDefault();
1363	    if ($.fn.jp_carousel) {
1364	      return this.startCarousel(event);
1365	    } else {
1366	      return $(document).ready(setTimeout(((function(_this) {
1367	        return function() {
1368	          return _this.startCarousel(event);
1369	        };
1370	      })(this)), 500));
1371	    }
1372	  };
1373
1374	  JetpackAdapter.prototype.startCarousel = function(event) {
1375	    this.currentIndex = this.$el.find(this.linkSelector).index($(event.target).closest('.asg-image-wrapper'));
1376	    if (this.$el.jp_carousel) {
1377	      this.$el.jp_carousel({
1378	        start_index: this.currentIndex,
1379	        'items_selector': ".asg-image:not(.asg-hidden) .asg-image-wrapper img"
1380	      });
1381	      return setTimeout(this.setHashFromCurrentIndex, 500);
1382	    } else {
1383	      return $(document).ready((function(_this) {
1384	        return function() {
1385	          return setTimeout(function() {
1386	            _this.$el.jp_carousel({
1387	              start_index: _this.currentIndex,
1388	              'items_selector': ".asg-image:not(.asg-hidden) .asg-image-wrapper img"
1389	            });
1390	            return setTimeout(_this.setHashFromCurrentIndex, 500);
1391	          }, 600);
1392	        };
1393	      })(this));
1394	    }
1395	  };
1396
1397	  JetpackAdapter.prototype.onAfterClose = function() {
1398	    JetpackAdapter.__super__.onAfterClose.apply(this, arguments);
1399	    jQuery(document).off('keyup', this.onKeyUp);
1400	    $('.jp-carousel-next-button').off('click', this.onNextSlide);
1401	    return $('.jp-carousel-previous-button').off('click', this.onPrevSlide);
1402	  };
1403
1404	  JetpackAdapter.prototype.setHashFromCurrentIndex = function() {
1405	    this.setHash(this.getLightboxLinks().eq(this.currentIndex).closest('.asg-image'));
1406	    $('.jp-carousel-next-button').click(this.onNextSlide);
1407	    $('.jp-carousel-previous-button').click(this.onPrevSlide);
1408	    $(document).on('keyup', this.onKeyUp);
1409	    return $(document).on('click', '.jp-carousel-close-hint', this.onAfterClose);
1410	  };
1411
1412	  JetpackAdapter.prototype.onNextSlide = function() {
1413	    var lightboxLinks;
1414	    this.currentIndex += 1;
1415	    lightboxLinks = this.getLightboxLinks();
1416	    if (this.currentIndex === lightboxLinks.length) {
1417	      this.currentIndex = 0;
1418	    }
1419	    return setTimeout(this.setHashFromCurrentIndex, 400);
1420	  };
1421
1422	  JetpackAdapter.prototype.onPrevSlide = function() {
1423	    this.currentIndex -= 1;
1424	    if (this.currentIndex < 0) {
1425	      this.currentIndex = this.getLightboxLinks().size() - 1;
1426	    }
1427	    return setTimeout(this.setHashFromCurrentIndex, 400);
1428	  };
1429
1430	  return JetpackAdapter;
1431
1432	})(LightboxAdapter);
1433
1434
1435/***/ },
1436/* 17 */
1437/***/ function(module, exports, __webpack_require__) {
1438
1439	var $, LightboxAdapter, UberboxAdapter, jQuery,
1440	  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
1441	  hasProp = {}.hasOwnProperty;
1442
1443	LightboxAdapter = __webpack_require__(12);
1444
1445	$ = __webpack_require__(1);
1446
1447	jQuery = __webpack_require__(1);
1448
1449	module.exports = UberboxAdapter = (function(superClass) {
1450	  extend(UberboxAdapter, superClass);
1451
1452	  function UberboxAdapter() {
1453	    return UberboxAdapter.__super__.constructor.apply(this, arguments);
1454	  }
1455
1456	  UberboxAdapter.prototype.onImageClicked = function(e) {
1457	    var box, index, items;
1458	    UberboxAdapter.__super__.onImageClicked.call(this, e);
1459	    e.preventDefault();
1460	    items = this.getLightboxLinks();
1461	    index = items.index(jQuery(e.target).closest('a.asg-lightbox'));
1462	    box = Uberbox.show(this.getItems(), {
1463	      orientation: 'horizontal',
1464	      current: index,
1465	      carousel: true
1466	    });
1467	    return box.on('close', (function(_this) {
1468	      return function() {
1469	        box.off('close');
1470	        return _this.resetHash();
1471	      };
1472	    })(this));
1473	  };
1474
1475	  UberboxAdapter.prototype.getItems = function() {
1476	    var items;
1477	    items = [];
1478	    this.getLightboxLinks().each(function(index, cell) {
1479	      var image;
1480	      image = jQuery(cell).closest('.asg-image').data('asg-image');
1481	      image = {
1482	        type: 'image',
1483	        url: image.getImageUrl(),
1484	        thumbnail: image.getThumbnailUrl(),
1485	        title: image.getLightboxCaption1(),
1486	        description: image.getLightboxCaption2(),
1487	        description_style: 'mini',
1488	        download_url: image.getImageUrl(),
1489	        share: true
1490	      };
1491	      return items.push(image);
1492	    });
1493	    return items;
1494	  };
1495
1496	  return UberboxAdapter;
1497
1498	})(LightboxAdapter);
1499
1500
1501/***/ },
1502/* 18 */
1503/***/ function(module, exports, __webpack_require__) {
1504
1505	var $, GalleryImage, ImageCaption, ImageOverlay, jQuery,
1506	  bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
1507
1508	jQuery = __webpack_require__(1);
1509
1510	$ = __webpack_require__(1);
1511
1512	ImageCaption = __webpack_require__(19);
1513
1514	ImageOverlay = __webpack_require__(22);
1515
1516	module.exports = GalleryImage = (function() {
1517	  function GalleryImage($el) {
1518	    this.slideIn = bind(this.slideIn, this);
1519	    this.getTags = bind(this.getTags, this);
1520	    this.show = bind(this.show, this);
1521	    this.hide = bind(this.hide, this);
1522	    var $caption, $overlay;
1523	    this.$el = $el;
1524	    this.$image = this.$el.find('.asg-image-wrapper img');
1525	    if (window.devicePixelRatio) {
1526	      setTimeout(((function(_this) {
1527	        return function() {
1528	          return _this.$image.attr('src', _this.$image.attr('src') + ("&zoom=" + window.devicePixelRatio));
1529	        };
1530	      })(this)), Math.random() * 1500);
1531	    }
1532	    if (this.$image[0].complete || this.$image[0].naturalWidth > 0) {
1533	      this.$el.addClass('asg-loaded');
1534	    } else {
1535	      this.$image.on('load', (function(_this) {
1536	        return function() {
1537	          return _this.$el.addClass('asg-loaded');
1538	        };
1539	      })(this));
1540	    }
1541	    this.naturalWidth = this.$el.data('width');
1542	    this.naturalHeight = this.$el.data('height');
1543	    this.$el.data('asg-image', this);
1544	    if (($overlay = this.$el.find('.asg-image-overlay')).size() > 0) {
1545	      this.overlay = new ImageOverlay($overlay, this.$el);
1546	    }
1547	    if (($caption = this.$el.find('.asg-image-caption-wrapper')).size() > 0) {
1548	      this.caption = new ImageCaption($caption, this.$el);
1549	    }
1550	  }
1551
1552	  GalleryImage.prototype.hide = function() {
1553	    return this.$el.removeClass('asg-visible').css({
1554	      'transform': ''
1555	    });
1556	  };
1557
1558	  GalleryImage.prototype.show = function() {
1559	    return setTimeout(((function(_this) {
1560	      return function() {
1561	        return _this.$el.addClass('asg-visible');
1562	      };
1563	    })(this)), 100);
1564	  };
1565
1566	  GalleryImage.prototype.matchesTag = function(filter) {
1567	    var i, len, ref, tag;
1568	    if (!filter || filter === '') {
1569	      this.$el.addClass('asg-match-filter');
1570	      return true;
1571	    }
1572	    ref = this.getTags();
1573	    for (i = 0, len = ref.length; i < len; i++) {
1574	      tag = ref[i];
1575	      if (tag.toLowerCase().trim() === filter) {
1576	        this.$el.addClass('asg-match-filter');
1577	        return true;
1578	      }
1579	    }
1580	    this.$el.removeClass('asg-match-filter');
1581	    return false;
1582	  };
1583
1584	  GalleryImage.prototype.getTags = function() {
1585	    if (this.tags) {
1586	      return this.tags;
1587	    }
1588	    return this.tags = this.$el.data('tags').toString().split(', ');
1589	  };
1590
1591	  GalleryImage.prototype.getImageUrl = function() {
1592	    return this.$el.find('.asg-image-wrapper').attr('href');
1593	  };
1594
1595	  GalleryImage.prototype.getThumbnailUrl = function() {
1596	    return this.$el.find('img').attr('src');
1597	  };
1598
1599	  GalleryImage.prototype.getTitle = function() {
1600	    return this.$el.find('.asg-image-caption-wrapper .asg-image-caption1').html();
1601	  };
1602
1603	  GalleryImage.prototype.getDescription = function() {
1604	    return this.$el.find('.asg-image-caption-wrapper .asg-image-caption2').html();
1605	  };
1606
1607	  GalleryImage.prototype.getLightboxCaption1 = function() {
1608	    return this.$el.find('.asg-lightbox-caption1').html();
1609	  };
1610
1611	  GalleryImage.prototype.getLightboxCaption2 = function() {
1612	    return this.$el.find('.asg-lightbox-caption2').html();
1613	  };
1614
1615	  GalleryImage.prototype.slideIn = function(event, element, zero) {
1616	    var css, x, y;
1617	    x = event.offsetX - this.wrapper.width() / 2;
1618	    y = event.offsetY - this.wrapper.height() / 2;
1619	    if (Math.abs(x) > Math.abs(y)) {
1620	      if (x > 0) {
1621	        css = {
1622	          'left': (this.wrapper.width()) + "px",
1623	          top: 0
1624	        };
1625	      } else {
1626	        css = {
1627	          'left': "-" + (this.wrapper.width()) + "px",
1628	          top: 0
1629	        };
1630	      }
1631	    } else {
1632	      if (y < 0) {
1633	        css = {
1634	          'top': "-" + (this.wrapper.height()) + "px",
1635	          left: 0
1636	        };
1637	      } else {
1638	        css = {
1639	          'top': (this.wrapper.height()) + "px",
1640	          left: 0
1641	        };
1642	      }
1643	    }
1644	    return element.css(css).animate(zero, 'fast');
1645	  };
1646
1647	  GalleryImage.prototype.slideOut = function(event, element) {
1648	    var css, x, y;
1649	    x = event.offsetX - this.wrapper.width() / 2;
1650	    y = event.offsetY - this.wrapper.height() / 2;
1651	    if (x > 0) {
1652	      if (Math.abs(x) > Math.abs(y)) {
1653	        css = {
1654	          'left': (this.wrapper.width()) + "px"
1655	        };
1656	      } else {
1657	        if (y < 0) {
1658	          css = {
1659	            'top': "-" + (this.wrapper.height()) + "px"
1660	          };
1661	        } else {
1662	          css = {
1663	            'top': (this.wrapper.height()) + "px"
1664	          };
1665	        }
1666	      }
1667	    } else {
1668	      if (Math.abs(x) > Math.abs(y)) {
1669	        css = {
1670	          'left': "-" + (this.wrapper.width()) + "px"
1671	        };
1672	      } else {
1673	        if (y < 0) {
1674	          css = {
1675	            'top': "-" + (this.wrapper.height()) + "px"
1676	          };
1677	        } else {
1678	          css = {
1679	            'top': (this.wrapper.height()) + "px"
1680	          };
1681	        }
1682	      }
1683	    }
1684	    return element.animate(css, 'fast');
1685	  };
1686
1687	  return GalleryImage;
1688
1689	})();
1690
1691
1692/***/ },
1693/* 19 */
1694/***/ function(module, exports, __webpack_require__) {
1695
1696	var $, ImageCaption, SlidingElement, jQuery,
1697	  bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
1698	  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
1699	  hasProp = {}.hasOwnProperty;
1700
1701	jQuery = __webpack_require__(1);
1702
1703	$ = __webpack_require__(1);
1704
1705	SlidingElement = __webpack_require__(20);
1706
1707	module.exports = ImageCaption = (function(superClass) {
1708	  extend(ImageCaption, superClass);
1709
1710	  function ImageCaption($el, $wrapper, animationQueue) {
1711	    this.layout = bind(this.layout, this);
1712	    var h, img;
1713	    ImageCaption.__super__.constructor.call(this, $el, $wrapper, animationQueue);
1714	    this.centered = $el.hasClass('asg-position-center');
1715	    if (this.centered) {
1716	      $el.on('resize', (function(_this) {
1717	        return function() {
1718	          return _this.layout();
1719	        };
1720	      })(this));
1721	    }
1722	    img = $el.parent().find('img');
1723	    h = $el.height();
1724	    if ($el.hasClass('asg-position-bottom') && $el.hasClass('asg-effect-slide') && $el.hasClass('asg-on-hover')) {
1725	      this.$wrapper.hover(((function(_this) {
1726	        return function() {
1727	          h = $el.outerHeight();
1728	          img.animate({
1729	            'top': "-" + (h / 2) + "px"
1730	          }, {
1731	            'queue': false,
1732	            duration: 400
1733	          });
1734	          return $el.css({
1735	            bottom: "-" + h + "px"
1736	          }).animate({
1737	            bottom: 0
1738	          }, {
1739	            queue: false,
1740	            duration: 350
1741	          });
1742	        };
1743	      })(this)), ((function(_this) {
1744	        return function() {
1745	          img.animate({
1746	            top: 0
1747	          }, {
1748	            queue: false,
1749	            duration: 400
1750	          });
1751	          return $el.animate({
1752	            bottom: "-" + h + "px"
1753	          }, {
1754	            queue: false,
1755	            duration: 350
1756	          });
1757	        };
1758	      })(this)));
1759	    }
1760	  }
1761
1762	  ImageCaption.prototype.layout = function() {
1763	    if (this.centered) {
1764	      if ((this.$el.hasClass('asg-mode-on') || this.$el.hasClass('asg-mode-on-hover')) && !this.$el.hasClass('asg-effect-off')) {
1765	        return this.$el.css({
1766	          opacity: 0
1767	        });
1768	      }
1769	    }
1770	  };
1771
1772	  return ImageCaption;
1773
1774	})(SlidingElement);
1775
1776
1777/***/ },
1778/* 20 */
1779/***/ function(module, exports, __webpack_require__) {
1780
1781	var $, SlidingElement, helpers, jQuery,
1782	  bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
1783
1784	jQuery = __webpack_require__(1);
1785
1786	$ = __webpack_require__(1);
1787
1788	helpers = __webpack_require__(21);
1789
1790	module.exports = SlidingElement = (function() {
1791	  function SlidingElement($el, $wrapper) {
1792	    this.slideOut = bind(this.slideOut, this);
1793	    this.cleanupClass = bind(this.cleanupClass, this);
1794	    this.slideIn = bind(this.slideIn, this);
1795	    this.getTransitionClass = bind(this.getTransitionClass, this);
1796	    this.$el = $el;
1797	    this.$wrapper = $wrapper;
1798	    if (helpers.transitionEndEvent) {
1799	      this.$el.on(helpers.transitionEndEvent[helpers.transitionProp], this.cleanupClass);
1800	    } else {
1801	      setTimeout(((function(_this) {
1802	        return function() {
1803	          return _this.cleanupClass();
1804	        };
1805	      })(this)), 200);
1806	    }
1807	    if (!($el.hasClass('asg-position-bottom') && $el.hasClass('asg-effect-slide') && $el.hasClass('asg-on-hover'))) {
1808	      if (!this.$el.hasClass('asg-off-hover')) {
1809	        this.$wrapper.on('mouseout', this.cleanupClass);
1810	      }
1811	      if (this.$el.hasClass('asg-on-hover') && this.$el.hasClass('asg-effect-slide')) {
1812	        this.$wrapper.hover(((function(_this) {
1813	          return function(event) {
1814	            return _this.slideIn(event);
1815	          };
1816	        })(this)), (function(_this) {
1817	          return function(event) {
1818	            return _this.slideOut(event);
1819	          };
1820	        })(this));
1821	      }
1822	    }
1823	    if (this.$el.hasClass('asg-off-hover') && this.$el.hasClass('asg-effect-slide')) {
1824	      this.$wrapper.hover(((function(_this) {
1825	        return function(event) {
1826	          return _this.slideOut(event);
1827	        };
1828	      })(this)), (function(_this) {
1829	        return function(event) {
1830	          return _this.slideIn(event);
1831	        };
1832	      })(this));
1833	    }
1834	  }
1835
1836	  SlidingElement.prototype.getTransitionClass = function(event) {
1837	    var klass, x, y;
1838	    x = event.offsetX - this.$wrapper.width() / 2;
1839	    y = event.offsetY - this.$wrapper.height() / 2;
1840	    if (x > 0) {
1841	      if (Math.abs(x) > Math.abs(y)) {
1842	        klass = 'asg-slide-right';
1843	      } else {
1844	        if (y < 0) {
1845	          klass = 'asg-slide-top';
1846	        } else {
1847	          klass = 'asg-slide-bottom';
1848	        }
1849	      }
1850	    } else {
1851	      if (Math.abs(x) > Math.abs(y)) {
1852	        klass = 'asg-slide-left';
1853	      } else {
1854	        if (y < 0) {
1855	          klass = 'asg-slide-top';
1856	        } else {
1857	          klass = 'asg-slide-bottom';
1858	        }
1859	      }
1860	    }
1861	    return klass;
1862	  };
1863
1864	  SlidingElement.prototype.slideIn = function(event) {
1865	    this.$el.addClass('asg-no-transition');
1866	    this.cleanupClass();
1867	    this.$el.addClass(this.getTransitionClass(event));
1868	    this.$el.height();
1869	    this.$el.removeClass('asg-no-transition');
1870	    return this.cleanupClass();
1871	  };
1872
1873	  SlidingElement.prototype.cleanupClass = function() {
1874	    var i, klass, len, ref, results;
1875	    ref = ['asg-slide-left', 'asg-slide-right', 'asg-slide-top', 'asg-slide-bottom'];
1876	    results = [];
1877	    for (i = 0, len = ref.length; i < len; i++) {
1878	      klass = ref[i];
1879	      results.push(this.$el.removeClass(klass));
1880	    }
1881	    return results;
1882	  };
1883
1884	  SlidingElement.prototype.slideOut = function(event) {
1885	    var klass;
1886	    klass = this.getTransitionClass(event);
1887	    return this.$el.addClass(klass);
1888	  };
1889
1890	  return SlidingElement;
1891
1892	})();
1893
1894
1895/***/ },
1896/* 21 */
1897/***/ function(module, exports, __webpack_require__) {
1898
1899	var $, $event, Modernizr, capitalize, classes, dispatchMethod, document, getStyleProperty, prefixes, resizeTimeout, result, setIsoTransform, testName, tests, transformFnNotations, transformProp, transitionEndEvent, transitionProp;
1900
1901	$ = __webpack_require__(1);
1902
1903	document = window.document;
1904
1905	Modernizr = window.Modernizr;
1906
1907	transitionEndEvent = null;
1908
1909	capitalize = function(str) {
1910	  return str.charAt(0).toUpperCase() + str.slice(1);
1911	};
1912
1913	prefixes = "Moz Webkit O Ms".split(" ");
1914
1915	getStyleProperty = function(propName) {
1916	  var i, len, prefixed, style;
1917	  style = document.documentElement.style;
1918	  prefixed = void 0;
1919	  if (typeof style[propName] === "string") {
1920	    return propName;
1921	  }
1922	  propName = capitalize(propName);
1923	  i = 0;
1924	  len = prefixes.length;
1925	  while (i < len) {
1926	    prefixed = prefixes[i] + propName;
1927	    if (typeof style[prefixed] === "string") {
1928	      return prefixed;
1929	    }
1930	    i++;
1931	  }
1932	};
1933
1934	transformProp = getStyleProperty("transform");
1935
1936	transitionProp = getStyleProperty("transitionProperty");
1937
1938	tests = {
1939	  csstransforms: function() {
1940	    return !!transformProp;
1941	  },
1942	  csstransforms3d: function() {
1943	    var $div, $style, mediaQuery, test, vendorCSSPrefixes;
1944	    test = !!getStyleProperty("perspective");
1945	    if (test) {
1946	      vendorCSSPrefixes = " -o- -moz- -ms- -webkit- -khtml- ".split(" ");
1947	      mediaQuery = "@media (" + vendorCSSPrefixes.join("transform-3d),(") + "modernizr)";
1948	      $style = $("<style>" + mediaQuery + "{#modernizr{height:3px}}" + "</style>").appendTo("head");
1949	      $div = $("<div id=\"modernizr\" />").appendTo("html");
1950	      test = $div.height() === 3;
1951	      $div.remove();
1952	      $style.remove();
1953	    }
1954	    return test;
1955	  },
1956	  csstransitions: function() {
1957	    return !!transitionProp;
1958	  }
1959	};
1960
1961	testName = void 0;
1962
1963	if (Modernizr) {
1964	  for (testName in tests) {
1965	    if (!Modernizr.hasOwnProperty(testName)) {
1966	      Modernizr.addTest(testName, tests[testName]);
1967	    }
1968	  }
1969	} else {
1970	  Modernizr = window.Modernizr = {
1971	    _version: "1.6ish: miniModernizr for Isotope"
1972	  };
1973	  classes = " ";
1974	  result = void 0;
1975	  for (testName in tests) {
1976	    result = tests[testName]();
1977	    Modernizr[testName] = result;
1978	    classes += " " + (result ? "" : "no-") + testName;
1979	  }
1980	  $("html").addClass(classes);
1981	}
1982
1983
1984	/*
1985	provides hooks for .css({ scale: value, translate: [x, y] })
1986	Progressively enhanced CSS transforms
1987	Uses hardware accelerated 3D transforms for Safari
1988	or falls back to 2D transforms.
1989	 */
1990
1991	if (Modernizr.csstransforms) {
1992	  transformFnNotations = (Modernizr.csstransforms3d ? {
1993	    translate: function(position) {
1994	      return "translate3d(" + position[0] + "px, " + position[1] + "px, 0) ";
1995	    },
1996	    scale: function(scale) {
1997	      return "scale3d(" + scale + ", " + scale + ", 1) ";
1998	    }
1999	  } : {
2000	    translate: function(position) {
2001	      return "translate(" + position[0] + "px, " + position[1] + "px) ";
2002	    },
2003	    scale: function(scale) {
2004	      return "scale(" + scale + ") ";
2005	    }
2006	  });
2007	  setIsoTransform = function(elem, name, value) {
2008	    var data, fnName, newData, scaleFn, transformObj, transformValue, translateFn, valueFns;
2009	    data = $.data(elem, "isoTransform") || {};
2010	    newData = {};
2011	    fnName = void 0;
2012	    transformObj = {};
2013	    transformValue = void 0;
2014	    newData[name] = value;
2015	    $.extend(data, newData);
2016	    for (fnName in data) {
2017	      transformValue = data[fnName];
2018	      transformObj[fnName] = transformFnNotations[fnName](transformValue);
2019	    }
2020	    translateFn = transformObj.translate || "";
2021	    scaleFn = transformObj.scale || "";
2022	    valueFns = translateFn + scaleFn;
2023	    $.data(elem, "isoTransform", data);
2024	    elem.style[transformProp] = valueFns;
2025	  };
2026	  $.cssNumber.scale = true;
2027	  $.cssHooks.scale = {
2028	    set: function(elem, value) {
2029	      setIsoTransform(elem, "scale", value);
2030	    },
2031	    get: function(elem, computed) {
2032	      var transform;
2033	      transform = $.data(elem, "isoTransform");
2034	      if (transform && transform.scale) {
2035	        return transform.scale;
2036	      } else {
2037	        return 1;
2038	      }
2039	    }
2040	  };
2041	  $.fx.step.scale = function(fx) {
2042	    $.cssHooks.scale.set(fx.elem, fx.now + fx.unit);
2043	  };
2044	  $.cssNumber.translate = true;
2045	  $.cssHooks.translate = {
2046	    set: function(elem, value) {
2047	      setIsoTransform(elem, "translate", value);
2048	    },
2049	    get: function(elem, computed) {
2050	      var transform;
2051	      transform = $.data(elem, "isoTransform");
2052	      if (transform && transform.translate) {
2053	        return transform.translate;
2054	      } else {
2055	        return [0, 0];
2056	      }
2057	    }
2058	  };
2059	}
2060
2061	transitionEndEvent = void 0;
2062
2063	if (Modernizr.csstransitions) {
2064	  transitionEndEvent = {
2065	    WebkitTransitionProperty: "webkitTransitionEnd",
2066	    MozTransitionProperty: "transitionend",
2067	    OTransitionProperty: "oTransitionEnd otransitionend",
2068	    transitionProperty: "transitionend"
2069	  };
2070	}
2071
2072	$event = $.event;
2073
2074	dispatchMethod = ($.event.handle ? "handle" : "dispatch");
2075
2076	resizeTimeout = void 0;
2077
2078	$event.special.smartresize = {
2079	  setup: function() {
2080	    $(this).bind("resize", $event.special.smartresize.handler);
2081	  },
2082	  teardown: function() {
2083	    $(this).unbind("resize", $event.special.smartresize.handler);
2084	  },
2085	  handler: function(event, execAsap) {
2086	    var args, context;
2087	    context = this;
2088	    args = arguments;
2089	    event.type = "smartresize";
2090	    if (resizeTimeout) {
2091	      clearTimeout(resizeTimeout);
2092	    }
2093	    resizeTimeout = setTimeout(function() {
2094	      $event[dispatchMethod].apply(context, args);
2095	    }, (execAsap === "execAsap" ? 0 : 100));
2096	  }
2097	};
2098
2099	$.fn.smartresize = function(fn) {
2100	  if (fn) {
2101	    return this.bind("smartresize", fn);
2102	  } else {
2103	    return this.trigger("smartresize", ["execAsap"]);
2104	  }
2105	};
2106
2107	module.exports = {
2108	  transitionEndEvent: transitionEndEvent,
2109	  transformProp: transformProp,
2110	  transitionProp: transitionProp
2111	};
2112
2113
2114/***/ },
2115/* 22 */
2116/***/ function(module, exports, __webpack_require__) {
2117
2118	var $, ImageOverlay, SlidingElement, jQuery,
2119	  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
2120	  hasProp = {}.hasOwnProperty;
2121
2122	jQuery = __webpack_require__(1);
2123
2124	$ = __webpack_require__(1);
2125
2126	SlidingElement = __webpack_require__(20);
2127
2128	module.exports = ImageOverlay = (function(superClass) {
2129	  extend(ImageOverlay, superClass);
2130
2131	  function ImageOverlay($el, $wrapper, animationQueue) {
2132	    ImageOverlay.__super__.constructor.call(this, $el, $wrapper, animationQueue);
2133	  }
2134
2135	  return ImageOverlay;
2136
2137	})(SlidingElement);
2138
2139
2140/***/ }
2141/******/ ]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.