/*! lightgallery - v1.2.6 - 2015-10-07 * http://sachinchoolur.github.io/lightGallery/ * Copyright (c) 2015 Sachin N; Licensed Apache 2.0 */ (function($, window, document, undefined) { 'use strict'; var defaults = { hash: true }; var Hash = function(element) { this.core = $(element).data('lightGallery'); this.core.s = $.extend({}, defaults, this.core.s); if (this.core.s.hash) { this.oldHash = window.location.hash; this.init(); } return this; }; Hash.prototype.init = function() { var _this = this; var _hash; // Change hash value on after each slide transition _this.core.$el.on('onAfterSlide.lg.tm', function(event, prevIndex, index) { window.location.hash = 'lg=' + _this.core.s.galleryId + '&slide=' + index; }); // Listen hash change and change the slide according to slide value $(window).on('hashchange', function() { _hash = window.location.hash; var _idx = parseInt(_hash.split('&slide=')[1], 10); // it galleryId doesn't exist in the url close the gallery if ((_hash.indexOf('lg=' + _this.core.s.galleryId) > -1)) { _this.core.slide(_idx); } else if (_this.core.lGalleryOn) { _this.core.destroy(); } }); }; Hash.prototype.destroy = function() { // Reset to old hash value if (this.oldHash && this.oldHash.indexOf('lg=' + this.core.s.galleryId) < 0) { window.location.hash = this.oldHash; } else { if (history.pushState) { history.pushState('', document.title, window.location.pathname + window.location.search); } else { window.location.hash = ''; } } }; $.fn.lightGallery.modules.hash = Hash; })(jQuery, window, document);