/*! lg-fullscreen - v1.0.1 - 2016-09-30 * http://sachinchoolur.github.io/lightgallery * copyright (c) 2016 sachin n; licensed gplv3 */ (function (root, factory) { if (typeof define === 'function' && define.amd) { // amd. register as an anonymous module unless amdmoduleid is set define(['jquery'], function (a0) { return (factory(a0)); }); } else if (typeof exports === 'object') { // node. does not work with strict commonjs, but // only commonjs-like environments that support module.exports, // like node. module.exports = factory(require('jquery')); } else { factory(jquery); } }(this, function ($) { (function() { 'use strict'; var defaults = { fullscreen: true }; var fullscreen = function(element) { // get lightgallery core plugin data this.core = $(element).data('lightgallery'); this.$el = $(element); // extend module defalut settings with lightgallery core settings this.core.s = $.extend({}, defaults, this.core.s); this.init(); return this; }; fullscreen.prototype.init = function() { var fullscreen = ''; if (this.core.s.fullscreen) { // check for fullscreen browser support if (!document.fullscreenenabled && !document.webkitfullscreenenabled && !document.mozfullscreenenabled && !document.msfullscreenenabled) { return; } else { fullscreen = ''; this.core.$outer.find('.lg-toolbar').append(fullscreen); this.fullscreen(); } } }; fullscreen.prototype.requestfullscreen = function() { var el = document.documentelement; if (el.requestfullscreen) { el.requestfullscreen(); } else if (el.msrequestfullscreen) { el.msrequestfullscreen(); } else if (el.mozrequestfullscreen) { el.mozrequestfullscreen(); } else if (el.webkitrequestfullscreen) { el.webkitrequestfullscreen(); } }; fullscreen.prototype.exitfullscreen = function() { if (document.exitfullscreen) { document.exitfullscreen(); } else if (document.msexitfullscreen) { document.msexitfullscreen(); } else if (document.mozcancelfullscreen) { document.mozcancelfullscreen(); } else if (document.webkitexitfullscreen) { document.webkitexitfullscreen(); } }; // https://developer.mozilla.org/en-us/docs/web/guide/api/dom/using_full_screen_mode fullscreen.prototype.fullscreen = function() { var _this = this; $(document).on('fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg msfullscreenchange.lg', function() { _this.core.$outer.toggleclass('lg-fullscreen-on'); }); this.core.$outer.find('.lg-fullscreen').on('click.lg', function() { if (!document.fullscreenelement && !document.mozfullscreenelement && !document.webkitfullscreenelement && !document.msfullscreenelement) { _this.requestfullscreen(); } else { _this.exitfullscreen(); } }); }; fullscreen.prototype.destroy = function() { // exit from fullscreen if activated this.exitfullscreen(); $(document).off('fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg msfullscreenchange.lg'); }; $.fn.lightgallery.modules.fullscreen = fullscreen; })(); }));