diff --git a/dev/App/User.js b/dev/App/User.js index f6dbb0eb5..9c88b87df 100644 --- a/dev/App/User.js +++ b/dev/App/User.js @@ -1390,7 +1390,7 @@ catch (e) { Utils.log(e); - }; + } } // PgpStore.openpgp.config.useWebCrypto = false; diff --git a/dev/Promises/User/Populator.js b/dev/Promises/User/Populator.js index 42ac66e1e..87a41bcf9 100644 --- a/dev/Promises/User/Populator.js +++ b/dev/Promises/User/Populator.js @@ -150,8 +150,6 @@ FolderStore.displaySpecSetting(0 >= iC || iLimit < iC); FolderStore.folderList(this.folderResponseParseRec( Utils.isUnd(oData.Namespace) ? '' : oData.Namespace, oData['@Collection'])); - - FolderStore.reComputeFolderListSubFolders(); } }; diff --git a/dev/Settings/User/Folders.js b/dev/Settings/User/Folders.js index b9602177b..9d826f69b 100644 --- a/dev/Settings/User/Folders.js +++ b/dev/Settings/User/Folders.js @@ -172,7 +172,6 @@ Remote.folderSetSubscribe(Utils.emptyFunction, oFolder.fullNameRaw, true); oFolder.subScribed(true); - FolderStore.reComputeFolderListSubFolders(); }; FoldersUserSettings.prototype.unSubscribeFolder = function (oFolder) @@ -181,7 +180,6 @@ Remote.folderSetSubscribe(Utils.emptyFunction, oFolder.fullNameRaw, false); oFolder.subScribed(false); - FolderStore.reComputeFolderListSubFolders(); }; FoldersUserSettings.prototype.checkableTrueFolder = function (oFolder) diff --git a/dev/Stores/User/Folder.js b/dev/Stores/User/Folder.js index a4a1e57d2..57081f7b1 100644 --- a/dev/Stores/User/Folder.js +++ b/dev/Stores/User/Folder.js @@ -241,26 +241,6 @@ return aResult; }; - FolderUserStore.prototype.reComputeFolderListSubFolders = function () - { - return; - - var - func = function (aList) { - _.each(aList, function (oFolder) { - if (oFolder && oFolder.subFolders) - { - func(oFolder.subFolders()); - - oFolder.subFolders.valueHasMutated(); - } - }); - } - ; - - func(this.folderList()); - }; - module.exports = new FolderUserStore(); }()); diff --git a/dev/Stores/User/Pgp.js b/dev/Stores/User/Pgp.js index 03d8857a9..3edb6f0c0 100644 --- a/dev/Stores/User/Pgp.js +++ b/dev/Stores/User/Pgp.js @@ -309,7 +309,7 @@ catch (e) { Utils.log(e); - }; + } if (oMessage && oMessage.getText && oMessage.verify && oMessage.decrypt) { @@ -378,7 +378,7 @@ catch (e) { Utils.log(e); - }; + } if (oMessage && oMessage.getText && oMessage.verify) { diff --git a/dev/Styles/_End.less b/dev/Styles/_End.less index d48b671d8..198942710 100644 --- a/dev/Styles/_End.less +++ b/dev/Styles/_End.less @@ -88,3 +88,7 @@ svg-icon { width: 14px; } } + +.lg-backdrop.in { + opacity: 0.8; +} diff --git a/dev/View/User/MailBox/MessageView.js b/dev/View/User/MailBox/MessageView.js index 4109bdc0b..5246082d8 100644 --- a/dev/View/User/MailBox/MessageView.js +++ b/dev/View/User/MailBox/MessageView.js @@ -10,8 +10,8 @@ ko = require('ko'), key = require('key'), - PhotoSwipe = require('PhotoSwipe'), - PhotoSwipeUI_Default = require('PhotoSwipeUI_Default'), +// PhotoSwipe = require('PhotoSwipe'), +// PhotoSwipeUI_Default = require('PhotoSwipeUI_Default'), Consts = require('Common/Consts'), Enums = require('Common/Enums'), @@ -452,6 +452,8 @@ this.toggleFullScreen(); }, this); + this.attachmentPreview = _.bind(this.attachmentPreview, this); + kn.constructorEnd(this); } @@ -578,12 +580,75 @@ // return sResult; // }; + /** + * @param {Object} oAttachment + * @returns {boolean} + */ + MessageViewMailBoxUserView.prototype.attachmentPreview = function (oAttachment) + { + if (oAttachment && oAttachment.isImage() && !oAttachment.isLinked && this.message() && this.message().attachments()) + { + var + oDiv = $('
'), + iIndex = 0, + iListIndex = 0, + aDynamicEl = _.compact(_.map(this.message().attachments(), function (oItem) { + if (oItem && !oItem.isLinked && oItem.isImage()) + { + if (oItem === oAttachment) + { + iIndex = iListIndex; + } + + iListIndex++; + + return { + 'src': oItem.linkPreview(), + 'thumb': oItem.linkThumbnail(), + 'subHtml': oItem.fileName, + 'downloadUrl': oItem.linkPreview() + }; + } + + return null; + })) + ; + + if (0 < aDynamicEl.length) + { + oDiv.on('onBeforeOpen.lg', function () { + Globals.useKeyboardShortcuts(false); + }); + + oDiv.on('onCloseAfter.lg', function () { + Globals.useKeyboardShortcuts(true); + }); + + oDiv.lightGallery({ + dynamic: true, + loadYoutubeThumbnail: false, + loadVimeoThumbnail: false, + thumbWidth: 80, + thumbContHeight: 95, + showThumbByDefault: false, + mode: 'lg-lollipop', // 'lg-slide', + index: iIndex, + dynamicEl: aDynamicEl + }); + } + + return false; + } + + return true; + }; + MessageViewMailBoxUserView.prototype.onBuild = function (oDom) { var self = this, oScript = null, - sErrorMessage = Translator.i18n('PREVIEW_POPUP/IMAGE_ERROR'), +// sErrorMessage = Translator.i18n('PREVIEW_POPUP/IMAGE_ERROR'), fCheckHeaderHeight = _.bind(this.checkHeaderHeight, this) ; @@ -625,6 +690,7 @@ this.oHeaderDom = $('.messageItemHeader', oDom); this.oHeaderDom = this.oHeaderDom[0] ? this.oHeaderDom : null; +/* this.pswpDom = $('.pswp', oDom)[0]; if (this.pswpDom) @@ -708,6 +774,7 @@ return false; }); } +*/ oDom .on('click', 'a', function (oEvent) { diff --git a/gulpfile.js b/gulpfile.js index d4f3108b4..36acf37ac 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -130,9 +130,9 @@ cfg.paths.css = { 'vendors/progress.js/minified/progressjs.rainloop.css', 'vendors/inputosaurus/inputosaurus.css', 'vendors/opentip/opentip.css', - 'vendors/photoswipe/photoswipe.css', - 'vendors/photoswipe/default-skin/default-skin.css', 'vendors/flags/flags-fixed.css', + 'vendors/lightGallery/dist/css/lightgallery.min.css', + 'vendors/lightGallery/dist/css/lg-transitions-lg-lollipop.css', cfg.paths.staticCSS + cfg.paths.less.main.name ] } @@ -204,12 +204,13 @@ cfg.paths.js = { 'vendors/Q/q.min.js', 'vendors/opentip/opentip-jquery.min.js', 'vendors/Autolinker/Autolinker.min.js', - 'vendors/photoswipe/photoswipe.min.js', - 'vendors/photoswipe/photoswipe-ui-default.min.js', -// 'vendors/jsencrypt/jsencrypt.min.js', + 'vendors/lightGallery/dist/js/lightgallery.min.js', + 'vendors/lightGallery/dist/js/lg-fullscreen.min.js', + 'vendors/lightGallery/dist/js/lg-thumbnail.min.js', + 'vendors/lightGallery/dist/js/lg-zoom.min.js', + 'vendors/lightGallery/dist/js/lg-autoplay.min.js', 'vendors/keymaster/keymaster.min.js', 'vendors/ifvisible/ifvisible.min.js', -// 'vendors/svg4everybody/svg4everybody.js', 'vendors/bootstrap/js/bootstrap.min.js' ] }, @@ -248,6 +249,7 @@ gulp.task('css:main-begin', ['less:main'], function() { return gulp.src(cfg.paths.css.main.src) .pipe(concat(cfg.paths.css.main.name)) .pipe(autoprefixer('last 3 versions', '> 1%', 'ie 9', 'Firefox ESR', 'Opera 12.1')) + .pipe(replace(/\.\.\/(img|images|fonts|svg)\//g, '$1/')) // .pipe(csscomb()) // .pipe(csslint()) // .pipe(csslint.reporter()) diff --git a/rainloop/v/0.0.0/app/templates/Views/User/MailMessageView.html b/rainloop/v/0.0.0/app/templates/Views/User/MailMessageView.html index f26d5a2f8..8039cdf3d 100644 --- a/rainloop/v/0.0.0/app/templates/Views/User/MailMessageView.html +++ b/rainloop/v/0.0.0/app/templates/Views/User/MailMessageView.html @@ -343,7 +343,7 @@
- +
diff --git a/rainloop/v/0.0.0/static/css/fonts/lg.eot b/rainloop/v/0.0.0/static/css/fonts/lg.eot new file mode 100644 index 000000000..5967563a0 Binary files /dev/null and b/rainloop/v/0.0.0/static/css/fonts/lg.eot differ diff --git a/rainloop/v/0.0.0/static/css/fonts/lg.svg b/rainloop/v/0.0.0/static/css/fonts/lg.svg new file mode 100644 index 000000000..f7c471498 --- /dev/null +++ b/rainloop/v/0.0.0/static/css/fonts/lg.svg @@ -0,0 +1,41 @@ + + + + + + +{ + "fontFamily": "lg", + "majorVersion": 1, + "minorVersion": 0, + "fontURL": "https://github.com/sachinchoolur/lightGallery", + "copyright": "sachin", + "license": "MLT", + "licenseURL": "http://opensource.org/licenses/MIT", + "version": "Version 1.0", + "fontId": "lg", + "psName": "lg", + "subFamily": "Regular", + "fullName": "lg", + "description": "Font generated by IcoMoon." +} + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/rainloop/v/0.0.0/static/css/fonts/lg.ttf b/rainloop/v/0.0.0/static/css/fonts/lg.ttf new file mode 100644 index 000000000..c28a50948 Binary files /dev/null and b/rainloop/v/0.0.0/static/css/fonts/lg.ttf differ diff --git a/rainloop/v/0.0.0/static/css/fonts/lg.woff b/rainloop/v/0.0.0/static/css/fonts/lg.woff new file mode 100644 index 000000000..c0599a54a Binary files /dev/null and b/rainloop/v/0.0.0/static/css/fonts/lg.woff differ diff --git a/rainloop/v/0.0.0/static/css/images/loading.gif b/rainloop/v/0.0.0/static/css/images/loading.gif new file mode 100644 index 000000000..7cdc671db Binary files /dev/null and b/rainloop/v/0.0.0/static/css/images/loading.gif differ diff --git a/rainloop/v/0.0.0/static/css/img/loading.gif b/rainloop/v/0.0.0/static/css/img/loading.gif new file mode 100644 index 000000000..7cdc671db Binary files /dev/null and b/rainloop/v/0.0.0/static/css/img/loading.gif differ diff --git a/rainloop/v/0.0.0/static/css/loading.gif b/rainloop/v/0.0.0/static/css/loading.gif new file mode 100644 index 000000000..7cdc671db Binary files /dev/null and b/rainloop/v/0.0.0/static/css/loading.gif differ diff --git a/vendors/lightGallery/LICENSE.md b/vendors/lightGallery/LICENSE.md new file mode 100644 index 000000000..8dada3eda --- /dev/null +++ b/vendors/lightGallery/LICENSE.md @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendors/lightGallery/README.md b/vendors/lightGallery/README.md new file mode 100644 index 000000000..70245de5b --- /dev/null +++ b/vendors/lightGallery/README.md @@ -0,0 +1,161 @@ +# lightGallery +A lightweight, customizable , modular, responsive, lightbox gallery plugin for jQuery. +![lightgallery](https://github.com/sachinchoolur/lightgallery1.2/blob/master/lib/lg.png?raw=true) +Demo +--- +[JQuery lightGallery demo](http://sachinchoolur.github.io/lightGallery/) + +Main features +--- + +* Fully responsive. +* Modular architecture with built in plugins. +* Touch and support for mobile devices. +* Mouse drag supports for desktops. +* Animated thumbnails. +* Youtube Vimeo and html5 videos Support. +* 20+ Hardware-Accelerated CSS3 transitions. +* Dynamic mode. +* Full screen support. +* Supports zoom. +* Browser history API. +* Responsive images. +* HTML iframe support. +* Multiple instances on one page. +* Easily customizable via CSS (SCSS) and Settings. +* Smart image preloading and code optimization. +* Keyboard Navigation for desktop. +* Font icon support. +* And many more. + +Installation +--- +#### Install with Bower + +You can Install lightGallery using the [Bower](http://bower.io) package manager. + +```sh +$ bower install lightgallery --save +``` + +#### npm + +You can also find ladda-angular on [npm](http://npmjs.org). + +```sh +$ npm install lightgallery +``` +#### Download from Github + +You can also directly download lightgallery from github. + +#### Include CSS and Javascript files +First of all add lightgallery.css in the <head> of the document. +``` html + + + +``` +Then include jQuery and lightgallery.min.js into your document. +If you want to include any lightgallery plugin you can include it after lightgallery.min.js. +``` html + + .... + + + + + + + + + +``` +##### The markup +lightgallery does not force you to use any kind of markup. you can use whatever markup you want. But i suggest you to use the following markup. [Here](http://sachinchoolur.github.io/lightGallery/demos/html-markup.html) you can find the detailed examples of deferent kind of markups. +``` html + +``` +#### Call the plugin +Finally you need to initiate the gallery by adding the following code. +``` javascript + +``` +Resources +---- +* [API Reference](http://sachinchoolur.github.io/lightGallery/docs/api.html) +* [Events](http://sachinchoolur.github.io/lightGallery/docs/api.html#events) +* [Methods](http://sachinchoolur.github.io/lightGallery/docs/api.html#methods) +* [Data Attributes](http://sachinchoolur.github.io/lightGallery/docs/api.html#attributes) +* [Dynamic variables](http://sachinchoolur.github.io/lightGallery/docs/api.html#dynamic) +* [Sass variables](http://sachinchoolur.github.io/lightGallery/docs/api.html#sass) +* [Module API](http://sachinchoolur.github.io/lightgallery1.2/docs/plugin-api.html) +* [Themes](http://sachinchoolur.github.io/lightGallery/themes/) + +Demos +---- +* Thumbnails + * [Gallery with animated thumbnails](http://sachinchoolur.github.io/lightGallery/demos/) + * [Gallery without animated thumbnails](http://sachinchoolur.github.io/lightGallery/demos/#normal-thumb) +* Youtube, Vimeo Video Gallery + * [Youtube, Vimeo Video Gallery](http://sachinchoolur.github.io/lightGallery/demos/videos.html) + * [Video Gallery Without Poster](http://sachinchoolur.github.io/lightGallery/demos/videos.html#video-without-poster) + * [Video Player Parameters](http://sachinchoolur.github.io/lightGallery/demos/videos.html#video-player-param) + * [Automatically load thumbnails](http://sachinchoolur.github.io/lightGallery/demos/videos.html#auto-thumb) +* Html5 Video Gallery + * [Html5 Video Gallery](http://sachinchoolur.github.io/lightGallery/demos/html5-videos.html) + * [Html5 video gallery with videojs](http://sachinchoolur.github.io/lightGallery/demos/html5-videos.html#video-without-poster) +* [Transitions](http://sachinchoolur.github.io/lightGallery/demos/transitions.html) +* [Dynamic](http://sachinchoolur.github.io/lightGallery/demos/dynamic.html) +* [Events](http://sachinchoolur.github.io/lightGallery/demos/events.html) +* [Methods](http://sachinchoolur.github.io/lightGallery/demos/methods.html) +* [Iframe. External websites, Google map etc..](http://sachinchoolur.github.io/lightGallery/demos/iframe.html) +* [Captions](http://sachinchoolur.github.io/lightGallery/demos/captions.html) +* Responsive images + * [Responsive images](http://sachinchoolur.github.io/lightGallery/demos/responsive.html) + * [Responsive images with html5 srcset](http://sachinchoolur.github.io/lightGallery/demos/responsive.html#srcset-demo) +* [Gallery with fixed size](http://sachinchoolur.github.io/lightGallery/demos/fixed-size.html) +* [Html Markup](http://sachinchoolur.github.io/lightGallery/demos/html-markup.html) +* [Facebook comments](http://sachinchoolur.github.io/lightGallery/demos/comment-box.html) +* [Easing](http://sachinchoolur.github.io/lightGallery/demos/easing.html) +* [History/hash plugin](http://sachinchoolur.github.io/lightGallery/demos/hash.html) +* [Angularjs directive](http://sachinchoolur.github.io/lightGallery/demos/angularjs.html) + +Built in modules +---- +1. [Thumbnail](http://sachinchoolur.github.io/lightGallery/docs/api.html#lg-thumbnial) +2. [Autoplay](http://sachinchoolur.github.io/lightGallery/docs/api.html#lg-autoplay) +3. [Video](http://sachinchoolur.github.io/lightGallery/docs/api.html#lg-video) +4. [Fullscreen](http://sachinchoolur.github.io/lightGallery/docs/api.html#lg-fullscreen) +4. [Pager](http://sachinchoolur.github.io/lightGallery/docs/api.html#lg-pager) +4. [Zoom](http://sachinchoolur.github.io/lightGallery/docs/api.html#lg-zoom) +4. [Hash](http://sachinchoolur.github.io/lightGallery/docs/api.html#lg-hash) + +Support +---- +Please use GitHub [issue tracker](https://github.com/sachinchoolur/lightGallery/issues/new) in the event that you have come across a bug or glitch. It would also be very helpful if you could add a jsFiddle, which would allow you to demonstrate the problem in question. + +You can post a comment [here](http://sachinchoolur.github.io/lightgallery1.2/#comments) to leave feedback, and offer any feature suggestions you may have for Lightgallery. + +Please use [stackoverflow](https://stackoverflow.com/search?q=lightgallery) instead of github issue tracker if you need any help with implementing lightgallery in your project or if you have any personal support requests. **If you need any special customization, feature or support email me at _sachi77n@gmail.com_. I can do it for reasonable price.** + +Do you like lightgallery? You can support the project by staring the github repository or [tweet](https://twitter.com/intent/tweet?original_referer=https%3A%2F%2Fabout.twitter.com%2Fresources%2Fbuttons&ref_src=twsrc%5Etfw&text=lightGallery%20-%20The%20complete%20%23jQuery%20lightbox%20gallery%20plugin.%20%23javascript&tw_p=tweetbutton&url=http%3A%2F%2Fsachinchoolur.github.io%2FlightGallery%2F) about this project. + +Follow me on twitter [@sachinchoolur](https://twitter.com/sachinchoolur) for the latest news, updates about this project. + + + + + diff --git a/vendors/lightGallery/dist/css/lg-fb-comment-box.css b/vendors/lightGallery/dist/css/lg-fb-comment-box.css new file mode 100644 index 000000000..00cece0b1 --- /dev/null +++ b/vendors/lightGallery/dist/css/lg-fb-comment-box.css @@ -0,0 +1,34 @@ +/*! lightgallery - v1.2.0 - 2015-08-26 +* http://sachinchoolur.github.io/lightGallery/ +* Copyright (c) 2015 Sachin N; Licensed Apache 2.0 */ +.lg-outer.fb-comments .lg-img-wrap { + padding-right: 400px !important; } +.lg-outer.fb-comments .fb-comments { + height: 100%; + overflow-y: auto; + position: absolute; + right: 0; + top: 0; + width: 420px; + z-index: 99999; + background: #fff url("../img/loading.gif") no-repeat scroll center center; } + .lg-outer.fb-comments .fb-comments.fb_iframe_widget { + background-image: none; } + .lg-outer.fb-comments .fb-comments.fb_iframe_widget.fb_iframe_widget_loader { + background: #fff url("../img/loading.gif") no-repeat scroll center center; } +.lg-outer.fb-comments .lg-toolbar { + right: 420px; + width: auto; } +.lg-outer.fb-comments .lg-actions .lg-next { + right: 420px; } +.lg-outer.fb-comments .lg-item { + background-image: none; } + .lg-outer.fb-comments .lg-item.lg-complete .lg-img-wrap { + background-image: none; } +.lg-outer.fb-comments .lg-img-wrap { + background: url(../img/loading.gif) no-repeat scroll center center transparent; } +.lg-outer.fb-comments .lg-sub-html { + padding: 0; + position: static; } + +/*# sourceMappingURL=lg-fb-comment-box.css.map */ diff --git a/vendors/lightGallery/dist/css/lg-fb-comment-box.min.css b/vendors/lightGallery/dist/css/lg-fb-comment-box.min.css new file mode 100644 index 000000000..a3e11312b --- /dev/null +++ b/vendors/lightGallery/dist/css/lg-fb-comment-box.min.css @@ -0,0 +1 @@ +.lg-outer.fb-comments .fb-comments{height:100%;overflow-y:auto;position:absolute;right:0;top:0;width:420px;z-index:99999;background:url(../img/loading.gif) center center no-repeat #fff}.lg-outer.fb-comments .fb-comments.fb_iframe_widget{background-image:none}.lg-outer.fb-comments .fb-comments.fb_iframe_widget.fb_iframe_widget_loader{background:url(../img/loading.gif) center center no-repeat #fff}.lg-outer.fb-comments .lg-toolbar{right:420px;width:auto}.lg-outer.fb-comments .lg-actions .lg-next{right:420px}.lg-outer.fb-comments .lg-item,.lg-outer.fb-comments .lg-item.lg-complete .lg-img-wrap{background-image:none}.lg-outer.fb-comments .lg-img-wrap{padding-right:400px!important;background:url(../img/loading.gif) center center no-repeat}.lg-outer.fb-comments .lg-sub-html{padding:0;position:static} \ No newline at end of file diff --git a/vendors/lightGallery/dist/css/lg-transitions-lg-lollipop.css b/vendors/lightGallery/dist/css/lg-transitions-lg-lollipop.css new file mode 100644 index 000000000..68730f766 --- /dev/null +++ b/vendors/lightGallery/dist/css/lg-transitions-lg-lollipop.css @@ -0,0 +1,23 @@ +/*! lightgallery - v1.2.0 - 2015-08-26 +* http://sachinchoolur.github.io/lightGallery/ +* Copyright (c) 2015 Sachin N; Licensed Apache 2.0 */ +.lg-css3.lg-lollipop .lg-item { + opacity: 0; } + .lg-css3.lg-lollipop .lg-item.lg-prev-slide { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); } + .lg-css3.lg-lollipop .lg-item.lg-next-slide { + -moz-transform: translate3d(0, 0, 0) scale(0.5); + -o-transform: translate3d(0, 0, 0) scale(0.5); + -ms-transform: translate3d(0, 0, 0) scale(0.5); + -webkit-transform: translate3d(0, 0, 0) scale(0.5); + transform: translate3d(0, 0, 0) scale(0.5); } + .lg-css3.lg-lollipop .lg-item.lg-current { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; } + .lg-css3.lg-lollipop .lg-item.lg-prev-slide, .lg-css3.lg-lollipop .lg-item.lg-next-slide, .lg-css3.lg-lollipop .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; } \ No newline at end of file diff --git a/vendors/lightGallery/dist/css/lg-transitions.css b/vendors/lightGallery/dist/css/lg-transitions.css new file mode 100644 index 000000000..6b0d70c35 --- /dev/null +++ b/vendors/lightGallery/dist/css/lg-transitions.css @@ -0,0 +1,779 @@ +/*! lightgallery - v1.2.0 - 2015-08-26 +* http://sachinchoolur.github.io/lightGallery/ +* Copyright (c) 2015 Sachin N; Licensed Apache 2.0 */ +.lg-css3.lg-zoom-in .lg-item { + opacity: 0; } + .lg-css3.lg-zoom-in .lg-item.lg-prev-slide { + -webkit-transform: scale3d(1.3, 1.3, 1.3); + transform: scale3d(1.3, 1.3, 1.3); } + .lg-css3.lg-zoom-in .lg-item.lg-next-slide { + -webkit-transform: scale3d(1.3, 1.3, 1.3); + transform: scale3d(1.3, 1.3, 1.3); } + .lg-css3.lg-zoom-in .lg-item.lg-current { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + opacity: 1; } + .lg-css3.lg-zoom-in .lg-item.lg-prev-slide, .lg-css3.lg-zoom-in .lg-item.lg-next-slide, .lg-css3.lg-zoom-in .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; } +.lg-css3.lg-zoom-in-big .lg-item { + opacity: 0; } + .lg-css3.lg-zoom-in-big .lg-item.lg-prev-slide { + -webkit-transform: scale3d(2, 2, 2); + transform: scale3d(2, 2, 2); } + .lg-css3.lg-zoom-in-big .lg-item.lg-next-slide { + -webkit-transform: scale3d(2, 2, 2); + transform: scale3d(2, 2, 2); } + .lg-css3.lg-zoom-in-big .lg-item.lg-current { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + opacity: 1; } + .lg-css3.lg-zoom-in-big .lg-item.lg-prev-slide, .lg-css3.lg-zoom-in-big .lg-item.lg-next-slide, .lg-css3.lg-zoom-in-big .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; } +.lg-css3.lg-zoom-out .lg-item { + opacity: 0; } + .lg-css3.lg-zoom-out .lg-item.lg-prev-slide { + -webkit-transform: scale3d(0.7, 0.7, 0.7); + transform: scale3d(0.7, 0.7, 0.7); } + .lg-css3.lg-zoom-out .lg-item.lg-next-slide { + -webkit-transform: scale3d(0.7, 0.7, 0.7); + transform: scale3d(0.7, 0.7, 0.7); } + .lg-css3.lg-zoom-out .lg-item.lg-current { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + opacity: 1; } + .lg-css3.lg-zoom-out .lg-item.lg-prev-slide, .lg-css3.lg-zoom-out .lg-item.lg-next-slide, .lg-css3.lg-zoom-out .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; } +.lg-css3.lg-zoom-out-big .lg-item { + opacity: 0; } + .lg-css3.lg-zoom-out-big .lg-item.lg-prev-slide { + -webkit-transform: scale3d(0, 0, 0); + transform: scale3d(0, 0, 0); } + .lg-css3.lg-zoom-out-big .lg-item.lg-next-slide { + -webkit-transform: scale3d(0, 0, 0); + transform: scale3d(0, 0, 0); } + .lg-css3.lg-zoom-out-big .lg-item.lg-current { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + opacity: 1; } + .lg-css3.lg-zoom-out-big .lg-item.lg-prev-slide, .lg-css3.lg-zoom-out-big .lg-item.lg-next-slide, .lg-css3.lg-zoom-out-big .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; } +.lg-css3.lg-zoom-out-in .lg-item { + opacity: 0; } + .lg-css3.lg-zoom-out-in .lg-item.lg-prev-slide { + -webkit-transform: scale3d(0, 0, 0); + transform: scale3d(0, 0, 0); } + .lg-css3.lg-zoom-out-in .lg-item.lg-next-slide { + -webkit-transform: scale3d(2, 2, 2); + transform: scale3d(2, 2, 2); } + .lg-css3.lg-zoom-out-in .lg-item.lg-current { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + opacity: 1; } + .lg-css3.lg-zoom-out-in .lg-item.lg-prev-slide, .lg-css3.lg-zoom-out-in .lg-item.lg-next-slide, .lg-css3.lg-zoom-out-in .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; } +.lg-css3.lg-zoom-in-out .lg-item { + opacity: 0; } + .lg-css3.lg-zoom-in-out .lg-item.lg-prev-slide { + -webkit-transform: scale3d(2, 2, 2); + transform: scale3d(2, 2, 2); } + .lg-css3.lg-zoom-in-out .lg-item.lg-next-slide { + -webkit-transform: scale3d(0, 0, 0); + transform: scale3d(0, 0, 0); } + .lg-css3.lg-zoom-in-out .lg-item.lg-current { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + opacity: 1; } + .lg-css3.lg-zoom-in-out .lg-item.lg-prev-slide, .lg-css3.lg-zoom-in-out .lg-item.lg-next-slide, .lg-css3.lg-zoom-in-out .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; } +.lg-css3.lg-soft-zoom .lg-item { + opacity: 0; } + .lg-css3.lg-soft-zoom .lg-item.lg-prev-slide { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); } + .lg-css3.lg-soft-zoom .lg-item.lg-next-slide { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); } + .lg-css3.lg-soft-zoom .lg-item.lg-current { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + opacity: 1; } + .lg-css3.lg-soft-zoom .lg-item.lg-prev-slide, .lg-css3.lg-soft-zoom .lg-item.lg-next-slide, .lg-css3.lg-soft-zoom .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; } +.lg-css3.lg-scale-up .lg-item { + opacity: 0; } + .lg-css3.lg-scale-up .lg-item.lg-prev-slide { + -moz-transform: scale3d(0.8, 0.8, 0.8) translate3d(0%, 10%, 0); + -o-transform: scale3d(0.8, 0.8, 0.8) translate3d(0%, 10%, 0); + -ms-transform: scale3d(0.8, 0.8, 0.8) translate3d(0%, 10%, 0); + -webkit-transform: scale3d(0.8, 0.8, 0.8) translate3d(0%, 10%, 0); + transform: scale3d(0.8, 0.8, 0.8) translate3d(0%, 10%, 0); } + .lg-css3.lg-scale-up .lg-item.lg-next-slide { + -moz-transform: scale3d(0.8, 0.8, 0.8) translate3d(0%, 10%, 0); + -o-transform: scale3d(0.8, 0.8, 0.8) translate3d(0%, 10%, 0); + -ms-transform: scale3d(0.8, 0.8, 0.8) translate3d(0%, 10%, 0); + -webkit-transform: scale3d(0.8, 0.8, 0.8) translate3d(0%, 10%, 0); + transform: scale3d(0.8, 0.8, 0.8) translate3d(0%, 10%, 0); } + .lg-css3.lg-scale-up .lg-item.lg-current { + -moz-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + -o-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + -ms-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + -webkit-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + opacity: 1; } + .lg-css3.lg-scale-up .lg-item.lg-prev-slide, .lg-css3.lg-scale-up .lg-item.lg-next-slide, .lg-css3.lg-scale-up .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; } +.lg-css3.lg-slide-circular .lg-item { + opacity: 0; } + .lg-css3.lg-slide-circular .lg-item.lg-prev-slide { + -moz-transform: scale3d(0, 0, 0) translate3d(-100%, 0, 0); + -o-transform: scale3d(0, 0, 0) translate3d(-100%, 0, 0); + -ms-transform: scale3d(0, 0, 0) translate3d(-100%, 0, 0); + -webkit-transform: scale3d(0, 0, 0) translate3d(-100%, 0, 0); + transform: scale3d(0, 0, 0) translate3d(-100%, 0, 0); } + .lg-css3.lg-slide-circular .lg-item.lg-next-slide { + -moz-transform: scale3d(0, 0, 0) translate3d(100%, 0, 0); + -o-transform: scale3d(0, 0, 0) translate3d(100%, 0, 0); + -ms-transform: scale3d(0, 0, 0) translate3d(100%, 0, 0); + -webkit-transform: scale3d(0, 0, 0) translate3d(100%, 0, 0); + transform: scale3d(0, 0, 0) translate3d(100%, 0, 0); } + .lg-css3.lg-slide-circular .lg-item.lg-current { + -moz-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + -o-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + -ms-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + -webkit-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + opacity: 1; } + .lg-css3.lg-slide-circular .lg-item.lg-prev-slide, .lg-css3.lg-slide-circular .lg-item.lg-next-slide, .lg-css3.lg-slide-circular .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; } +.lg-css3.lg-slide-circular-up .lg-item { + opacity: 0; } + .lg-css3.lg-slide-circular-up .lg-item.lg-prev-slide { + -moz-transform: scale3d(0, 0, 0) translate3d(-100%, -100%, 0); + -o-transform: scale3d(0, 0, 0) translate3d(-100%, -100%, 0); + -ms-transform: scale3d(0, 0, 0) translate3d(-100%, -100%, 0); + -webkit-transform: scale3d(0, 0, 0) translate3d(-100%, -100%, 0); + transform: scale3d(0, 0, 0) translate3d(-100%, -100%, 0); } + .lg-css3.lg-slide-circular-up .lg-item.lg-next-slide { + -moz-transform: scale3d(0, 0, 0) translate3d(100%, -100%, 0); + -o-transform: scale3d(0, 0, 0) translate3d(100%, -100%, 0); + -ms-transform: scale3d(0, 0, 0) translate3d(100%, -100%, 0); + -webkit-transform: scale3d(0, 0, 0) translate3d(100%, -100%, 0); + transform: scale3d(0, 0, 0) translate3d(100%, -100%, 0); } + .lg-css3.lg-slide-circular-up .lg-item.lg-current { + -moz-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + -o-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + -ms-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + -webkit-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + opacity: 1; } + .lg-css3.lg-slide-circular-up .lg-item.lg-prev-slide, .lg-css3.lg-slide-circular-up .lg-item.lg-next-slide, .lg-css3.lg-slide-circular-up .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; } +.lg-css3.lg-slide-circular-down .lg-item { + opacity: 0; } + .lg-css3.lg-slide-circular-down .lg-item.lg-prev-slide { + -moz-transform: scale3d(0, 0, 0) translate3d(-100%, 100%, 0); + -o-transform: scale3d(0, 0, 0) translate3d(-100%, 100%, 0); + -ms-transform: scale3d(0, 0, 0) translate3d(-100%, 100%, 0); + -webkit-transform: scale3d(0, 0, 0) translate3d(-100%, 100%, 0); + transform: scale3d(0, 0, 0) translate3d(-100%, 100%, 0); } + .lg-css3.lg-slide-circular-down .lg-item.lg-next-slide { + -moz-transform: scale3d(0, 0, 0) translate3d(100%, 100%, 0); + -o-transform: scale3d(0, 0, 0) translate3d(100%, 100%, 0); + -ms-transform: scale3d(0, 0, 0) translate3d(100%, 100%, 0); + -webkit-transform: scale3d(0, 0, 0) translate3d(100%, 100%, 0); + transform: scale3d(0, 0, 0) translate3d(100%, 100%, 0); } + .lg-css3.lg-slide-circular-down .lg-item.lg-current { + -moz-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + -o-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + -ms-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + -webkit-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + opacity: 1; } + .lg-css3.lg-slide-circular-down .lg-item.lg-prev-slide, .lg-css3.lg-slide-circular-down .lg-item.lg-next-slide, .lg-css3.lg-slide-circular-down .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; } +.lg-css3.lg-slide-circular-vertical .lg-item { + opacity: 0; } + .lg-css3.lg-slide-circular-vertical .lg-item.lg-prev-slide { + -moz-transform: scale3d(0, 0, 0) translate3d(0, -100%, 0); + -o-transform: scale3d(0, 0, 0) translate3d(0, -100%, 0); + -ms-transform: scale3d(0, 0, 0) translate3d(0, -100%, 0); + -webkit-transform: scale3d(0, 0, 0) translate3d(0, -100%, 0); + transform: scale3d(0, 0, 0) translate3d(0, -100%, 0); } + .lg-css3.lg-slide-circular-vertical .lg-item.lg-next-slide { + -moz-transform: scale3d(0, 0, 0) translate3d(0, 100%, 0); + -o-transform: scale3d(0, 0, 0) translate3d(0, 100%, 0); + -ms-transform: scale3d(0, 0, 0) translate3d(0, 100%, 0); + -webkit-transform: scale3d(0, 0, 0) translate3d(0, 100%, 0); + transform: scale3d(0, 0, 0) translate3d(0, 100%, 0); } + .lg-css3.lg-slide-circular-vertical .lg-item.lg-current { + -moz-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + -o-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + -ms-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + -webkit-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + opacity: 1; } + .lg-css3.lg-slide-circular-vertical .lg-item.lg-prev-slide, .lg-css3.lg-slide-circular-vertical .lg-item.lg-next-slide, .lg-css3.lg-slide-circular-vertical .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; } +.lg-css3.lg-slide-circular-vertical-left .lg-item { + opacity: 0; } + .lg-css3.lg-slide-circular-vertical-left .lg-item.lg-prev-slide { + -moz-transform: scale3d(0, 0, 0) translate3d(-100%, -100%, 0); + -o-transform: scale3d(0, 0, 0) translate3d(-100%, -100%, 0); + -ms-transform: scale3d(0, 0, 0) translate3d(-100%, -100%, 0); + -webkit-transform: scale3d(0, 0, 0) translate3d(-100%, -100%, 0); + transform: scale3d(0, 0, 0) translate3d(-100%, -100%, 0); } + .lg-css3.lg-slide-circular-vertical-left .lg-item.lg-next-slide { + -moz-transform: scale3d(0, 0, 0) translate3d(-100%, 100%, 0); + -o-transform: scale3d(0, 0, 0) translate3d(-100%, 100%, 0); + -ms-transform: scale3d(0, 0, 0) translate3d(-100%, 100%, 0); + -webkit-transform: scale3d(0, 0, 0) translate3d(-100%, 100%, 0); + transform: scale3d(0, 0, 0) translate3d(-100%, 100%, 0); } + .lg-css3.lg-slide-circular-vertical-left .lg-item.lg-current { + -moz-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + -o-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + -ms-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + -webkit-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + opacity: 1; } + .lg-css3.lg-slide-circular-vertical-left .lg-item.lg-prev-slide, .lg-css3.lg-slide-circular-vertical-left .lg-item.lg-next-slide, .lg-css3.lg-slide-circular-vertical-left .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; } +.lg-css3.lg-slide-circular-vertical-down .lg-item { + opacity: 0; } + .lg-css3.lg-slide-circular-vertical-down .lg-item.lg-prev-slide { + -moz-transform: scale3d(0, 0, 0) translate3d(100%, -100%, 0); + -o-transform: scale3d(0, 0, 0) translate3d(100%, -100%, 0); + -ms-transform: scale3d(0, 0, 0) translate3d(100%, -100%, 0); + -webkit-transform: scale3d(0, 0, 0) translate3d(100%, -100%, 0); + transform: scale3d(0, 0, 0) translate3d(100%, -100%, 0); } + .lg-css3.lg-slide-circular-vertical-down .lg-item.lg-next-slide { + -moz-transform: scale3d(0, 0, 0) translate3d(100%, 100%, 0); + -o-transform: scale3d(0, 0, 0) translate3d(100%, 100%, 0); + -ms-transform: scale3d(0, 0, 0) translate3d(100%, 100%, 0); + -webkit-transform: scale3d(0, 0, 0) translate3d(100%, 100%, 0); + transform: scale3d(0, 0, 0) translate3d(100%, 100%, 0); } + .lg-css3.lg-slide-circular-vertical-down .lg-item.lg-current { + -moz-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + -o-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + -ms-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + -webkit-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + opacity: 1; } + .lg-css3.lg-slide-circular-vertical-down .lg-item.lg-prev-slide, .lg-css3.lg-slide-circular-vertical-down .lg-item.lg-next-slide, .lg-css3.lg-slide-circular-vertical-down .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 1s ease 0s; } +.lg-css3.lg-slide-vertical .lg-item { + opacity: 0; } + .lg-css3.lg-slide-vertical .lg-item.lg-prev-slide { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); } + .lg-css3.lg-slide-vertical .lg-item.lg-next-slide { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); } + .lg-css3.lg-slide-vertical .lg-item.lg-current { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; } + .lg-css3.lg-slide-vertical .lg-item.lg-prev-slide, .lg-css3.lg-slide-vertical .lg-item.lg-next-slide, .lg-css3.lg-slide-vertical .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; } +.lg-css3.lg-slide-vertical-growth .lg-item { + opacity: 0; } + .lg-css3.lg-slide-vertical-growth .lg-item.lg-prev-slide { + -moz-transform: scale3d(0.5, 0.5, 0.5) translate3d(0, -150%, 0); + -o-transform: scale3d(0.5, 0.5, 0.5) translate3d(0, -150%, 0); + -ms-transform: scale3d(0.5, 0.5, 0.5) translate3d(0, -150%, 0); + -webkit-transform: scale3d(0.5, 0.5, 0.5) translate3d(0, -150%, 0); + transform: scale3d(0.5, 0.5, 0.5) translate3d(0, -150%, 0); } + .lg-css3.lg-slide-vertical-growth .lg-item.lg-next-slide { + -moz-transform: scale3d(0.5, 0.5, 0.5) translate3d(0, 150%, 0); + -o-transform: scale3d(0.5, 0.5, 0.5) translate3d(0, 150%, 0); + -ms-transform: scale3d(0.5, 0.5, 0.5) translate3d(0, 150%, 0); + -webkit-transform: scale3d(0.5, 0.5, 0.5) translate3d(0, 150%, 0); + transform: scale3d(0.5, 0.5, 0.5) translate3d(0, 150%, 0); } + .lg-css3.lg-slide-vertical-growth .lg-item.lg-current { + -moz-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + -o-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + -ms-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + -webkit-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + opacity: 1; } + .lg-css3.lg-slide-vertical-growth .lg-item.lg-prev-slide, .lg-css3.lg-slide-vertical-growth .lg-item.lg-next-slide, .lg-css3.lg-slide-vertical-growth .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; } +.lg-css3.lg-slide-skew-only .lg-item { + opacity: 0; } + .lg-css3.lg-slide-skew-only .lg-item.lg-prev-slide { + -moz-transform: skew(10deg, 0deg); + -o-transform: skew(10deg, 0deg); + -ms-transform: skew(10deg, 0deg); + -webkit-transform: skew(10deg, 0deg); + transform: skew(10deg, 0deg); } + .lg-css3.lg-slide-skew-only .lg-item.lg-next-slide { + -moz-transform: skew(10deg, 0deg); + -o-transform: skew(10deg, 0deg); + -ms-transform: skew(10deg, 0deg); + -webkit-transform: skew(10deg, 0deg); + transform: skew(10deg, 0deg); } + .lg-css3.lg-slide-skew-only .lg-item.lg-current { + -moz-transform: skew(0deg, 0deg); + -o-transform: skew(0deg, 0deg); + -ms-transform: skew(0deg, 0deg); + -webkit-transform: skew(0deg, 0deg); + transform: skew(0deg, 0deg); + opacity: 1; } + .lg-css3.lg-slide-skew-only .lg-item.lg-prev-slide, .lg-css3.lg-slide-skew-only .lg-item.lg-next-slide, .lg-css3.lg-slide-skew-only .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; } +.lg-css3.lg-slide-skew-only-rev .lg-item { + opacity: 0; } + .lg-css3.lg-slide-skew-only-rev .lg-item.lg-prev-slide { + -moz-transform: skew(-10deg, 0deg); + -o-transform: skew(-10deg, 0deg); + -ms-transform: skew(-10deg, 0deg); + -webkit-transform: skew(-10deg, 0deg); + transform: skew(-10deg, 0deg); } + .lg-css3.lg-slide-skew-only-rev .lg-item.lg-next-slide { + -moz-transform: skew(-10deg, 0deg); + -o-transform: skew(-10deg, 0deg); + -ms-transform: skew(-10deg, 0deg); + -webkit-transform: skew(-10deg, 0deg); + transform: skew(-10deg, 0deg); } + .lg-css3.lg-slide-skew-only-rev .lg-item.lg-current { + -moz-transform: skew(0deg, 0deg); + -o-transform: skew(0deg, 0deg); + -ms-transform: skew(0deg, 0deg); + -webkit-transform: skew(0deg, 0deg); + transform: skew(0deg, 0deg); + opacity: 1; } + .lg-css3.lg-slide-skew-only-rev .lg-item.lg-prev-slide, .lg-css3.lg-slide-skew-only-rev .lg-item.lg-next-slide, .lg-css3.lg-slide-skew-only-rev .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; } +.lg-css3.lg-slide-skew-only-y .lg-item { + opacity: 0; } + .lg-css3.lg-slide-skew-only-y .lg-item.lg-prev-slide { + -moz-transform: skew(0deg, 10deg); + -o-transform: skew(0deg, 10deg); + -ms-transform: skew(0deg, 10deg); + -webkit-transform: skew(0deg, 10deg); + transform: skew(0deg, 10deg); } + .lg-css3.lg-slide-skew-only-y .lg-item.lg-next-slide { + -moz-transform: skew(0deg, 10deg); + -o-transform: skew(0deg, 10deg); + -ms-transform: skew(0deg, 10deg); + -webkit-transform: skew(0deg, 10deg); + transform: skew(0deg, 10deg); } + .lg-css3.lg-slide-skew-only-y .lg-item.lg-current { + -moz-transform: skew(0deg, 0deg); + -o-transform: skew(0deg, 0deg); + -ms-transform: skew(0deg, 0deg); + -webkit-transform: skew(0deg, 0deg); + transform: skew(0deg, 0deg); + opacity: 1; } + .lg-css3.lg-slide-skew-only-y .lg-item.lg-prev-slide, .lg-css3.lg-slide-skew-only-y .lg-item.lg-next-slide, .lg-css3.lg-slide-skew-only-y .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; } +.lg-css3.lg-slide-skew-only-y-rev .lg-item { + opacity: 0; } + .lg-css3.lg-slide-skew-only-y-rev .lg-item.lg-prev-slide { + -moz-transform: skew(0deg, -10deg); + -o-transform: skew(0deg, -10deg); + -ms-transform: skew(0deg, -10deg); + -webkit-transform: skew(0deg, -10deg); + transform: skew(0deg, -10deg); } + .lg-css3.lg-slide-skew-only-y-rev .lg-item.lg-next-slide { + -moz-transform: skew(0deg, -10deg); + -o-transform: skew(0deg, -10deg); + -ms-transform: skew(0deg, -10deg); + -webkit-transform: skew(0deg, -10deg); + transform: skew(0deg, -10deg); } + .lg-css3.lg-slide-skew-only-y-rev .lg-item.lg-current { + -moz-transform: skew(0deg, 0deg); + -o-transform: skew(0deg, 0deg); + -ms-transform: skew(0deg, 0deg); + -webkit-transform: skew(0deg, 0deg); + transform: skew(0deg, 0deg); + opacity: 1; } + .lg-css3.lg-slide-skew-only-y-rev .lg-item.lg-prev-slide, .lg-css3.lg-slide-skew-only-y-rev .lg-item.lg-next-slide, .lg-css3.lg-slide-skew-only-y-rev .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; } +.lg-css3.lg-slide-skew .lg-item { + opacity: 0; } + .lg-css3.lg-slide-skew .lg-item.lg-prev-slide { + -moz-transform: skew(20deg, 0deg) translate3d(-100%, 0%, 0px); + -o-transform: skew(20deg, 0deg) translate3d(-100%, 0%, 0px); + -ms-transform: skew(20deg, 0deg) translate3d(-100%, 0%, 0px); + -webkit-transform: skew(20deg, 0deg) translate3d(-100%, 0%, 0px); + transform: skew(20deg, 0deg) translate3d(-100%, 0%, 0px); } + .lg-css3.lg-slide-skew .lg-item.lg-next-slide { + -moz-transform: skew(20deg, 0deg) translate3d(100%, 0%, 0px); + -o-transform: skew(20deg, 0deg) translate3d(100%, 0%, 0px); + -ms-transform: skew(20deg, 0deg) translate3d(100%, 0%, 0px); + -webkit-transform: skew(20deg, 0deg) translate3d(100%, 0%, 0px); + transform: skew(20deg, 0deg) translate3d(100%, 0%, 0px); } + .lg-css3.lg-slide-skew .lg-item.lg-current { + -moz-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + -o-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + -ms-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + -webkit-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + opacity: 1; } + .lg-css3.lg-slide-skew .lg-item.lg-prev-slide, .lg-css3.lg-slide-skew .lg-item.lg-next-slide, .lg-css3.lg-slide-skew .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; } +.lg-css3.lg-slide-skew-rev .lg-item { + opacity: 0; } + .lg-css3.lg-slide-skew-rev .lg-item.lg-prev-slide { + -moz-transform: skew(-20deg, 0deg) translate3d(-100%, 0%, 0px); + -o-transform: skew(-20deg, 0deg) translate3d(-100%, 0%, 0px); + -ms-transform: skew(-20deg, 0deg) translate3d(-100%, 0%, 0px); + -webkit-transform: skew(-20deg, 0deg) translate3d(-100%, 0%, 0px); + transform: skew(-20deg, 0deg) translate3d(-100%, 0%, 0px); } + .lg-css3.lg-slide-skew-rev .lg-item.lg-next-slide { + -moz-transform: skew(-20deg, 0deg) translate3d(100%, 0%, 0px); + -o-transform: skew(-20deg, 0deg) translate3d(100%, 0%, 0px); + -ms-transform: skew(-20deg, 0deg) translate3d(100%, 0%, 0px); + -webkit-transform: skew(-20deg, 0deg) translate3d(100%, 0%, 0px); + transform: skew(-20deg, 0deg) translate3d(100%, 0%, 0px); } + .lg-css3.lg-slide-skew-rev .lg-item.lg-current { + -moz-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + -o-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + -ms-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + -webkit-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + opacity: 1; } + .lg-css3.lg-slide-skew-rev .lg-item.lg-prev-slide, .lg-css3.lg-slide-skew-rev .lg-item.lg-next-slide, .lg-css3.lg-slide-skew-rev .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; } +.lg-css3.lg-slide-skew-cross .lg-item { + opacity: 0; } + .lg-css3.lg-slide-skew-cross .lg-item.lg-prev-slide { + -moz-transform: skew(0deg, 60deg) translate3d(-100%, 0%, 0px); + -o-transform: skew(0deg, 60deg) translate3d(-100%, 0%, 0px); + -ms-transform: skew(0deg, 60deg) translate3d(-100%, 0%, 0px); + -webkit-transform: skew(0deg, 60deg) translate3d(-100%, 0%, 0px); + transform: skew(0deg, 60deg) translate3d(-100%, 0%, 0px); } + .lg-css3.lg-slide-skew-cross .lg-item.lg-next-slide { + -moz-transform: skew(0deg, 60deg) translate3d(100%, 0%, 0px); + -o-transform: skew(0deg, 60deg) translate3d(100%, 0%, 0px); + -ms-transform: skew(0deg, 60deg) translate3d(100%, 0%, 0px); + -webkit-transform: skew(0deg, 60deg) translate3d(100%, 0%, 0px); + transform: skew(0deg, 60deg) translate3d(100%, 0%, 0px); } + .lg-css3.lg-slide-skew-cross .lg-item.lg-current { + -moz-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + -o-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + -ms-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + -webkit-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + opacity: 1; } + .lg-css3.lg-slide-skew-cross .lg-item.lg-prev-slide, .lg-css3.lg-slide-skew-cross .lg-item.lg-next-slide, .lg-css3.lg-slide-skew-cross .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; } +.lg-css3.lg-slide-skew-cross-rev .lg-item { + opacity: 0; } + .lg-css3.lg-slide-skew-cross-rev .lg-item.lg-prev-slide { + -moz-transform: skew(0deg, -60deg) translate3d(-100%, 0%, 0px); + -o-transform: skew(0deg, -60deg) translate3d(-100%, 0%, 0px); + -ms-transform: skew(0deg, -60deg) translate3d(-100%, 0%, 0px); + -webkit-transform: skew(0deg, -60deg) translate3d(-100%, 0%, 0px); + transform: skew(0deg, -60deg) translate3d(-100%, 0%, 0px); } + .lg-css3.lg-slide-skew-cross-rev .lg-item.lg-next-slide { + -moz-transform: skew(0deg, -60deg) translate3d(100%, 0%, 0px); + -o-transform: skew(0deg, -60deg) translate3d(100%, 0%, 0px); + -ms-transform: skew(0deg, -60deg) translate3d(100%, 0%, 0px); + -webkit-transform: skew(0deg, -60deg) translate3d(100%, 0%, 0px); + transform: skew(0deg, -60deg) translate3d(100%, 0%, 0px); } + .lg-css3.lg-slide-skew-cross-rev .lg-item.lg-current { + -moz-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + -o-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + -ms-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + -webkit-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + opacity: 1; } + .lg-css3.lg-slide-skew-cross-rev .lg-item.lg-prev-slide, .lg-css3.lg-slide-skew-cross-rev .lg-item.lg-next-slide, .lg-css3.lg-slide-skew-cross-rev .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; } +.lg-css3.lg-slide-skew-ver .lg-item { + opacity: 0; } + .lg-css3.lg-slide-skew-ver .lg-item.lg-prev-slide { + -moz-transform: skew(60deg, 0deg) translate3d(0, -100%, 0px); + -o-transform: skew(60deg, 0deg) translate3d(0, -100%, 0px); + -ms-transform: skew(60deg, 0deg) translate3d(0, -100%, 0px); + -webkit-transform: skew(60deg, 0deg) translate3d(0, -100%, 0px); + transform: skew(60deg, 0deg) translate3d(0, -100%, 0px); } + .lg-css3.lg-slide-skew-ver .lg-item.lg-next-slide { + -moz-transform: skew(60deg, 0deg) translate3d(0, 100%, 0px); + -o-transform: skew(60deg, 0deg) translate3d(0, 100%, 0px); + -ms-transform: skew(60deg, 0deg) translate3d(0, 100%, 0px); + -webkit-transform: skew(60deg, 0deg) translate3d(0, 100%, 0px); + transform: skew(60deg, 0deg) translate3d(0, 100%, 0px); } + .lg-css3.lg-slide-skew-ver .lg-item.lg-current { + -moz-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + -o-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + -ms-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + -webkit-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + opacity: 1; } + .lg-css3.lg-slide-skew-ver .lg-item.lg-prev-slide, .lg-css3.lg-slide-skew-ver .lg-item.lg-next-slide, .lg-css3.lg-slide-skew-ver .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; } +.lg-css3.lg-slide-skew-ver-rev .lg-item { + opacity: 0; } + .lg-css3.lg-slide-skew-ver-rev .lg-item.lg-prev-slide { + -moz-transform: skew(-60deg, 0deg) translate3d(0, -100%, 0px); + -o-transform: skew(-60deg, 0deg) translate3d(0, -100%, 0px); + -ms-transform: skew(-60deg, 0deg) translate3d(0, -100%, 0px); + -webkit-transform: skew(-60deg, 0deg) translate3d(0, -100%, 0px); + transform: skew(-60deg, 0deg) translate3d(0, -100%, 0px); } + .lg-css3.lg-slide-skew-ver-rev .lg-item.lg-next-slide { + -moz-transform: skew(-60deg, 0deg) translate3d(0, 100%, 0px); + -o-transform: skew(-60deg, 0deg) translate3d(0, 100%, 0px); + -ms-transform: skew(-60deg, 0deg) translate3d(0, 100%, 0px); + -webkit-transform: skew(-60deg, 0deg) translate3d(0, 100%, 0px); + transform: skew(-60deg, 0deg) translate3d(0, 100%, 0px); } + .lg-css3.lg-slide-skew-ver-rev .lg-item.lg-current { + -moz-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + -o-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + -ms-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + -webkit-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + opacity: 1; } + .lg-css3.lg-slide-skew-ver-rev .lg-item.lg-prev-slide, .lg-css3.lg-slide-skew-ver-rev .lg-item.lg-next-slide, .lg-css3.lg-slide-skew-ver-rev .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; } +.lg-css3.lg-slide-skew-ver-cross .lg-item { + opacity: 0; } + .lg-css3.lg-slide-skew-ver-cross .lg-item.lg-prev-slide { + -moz-transform: skew(0deg, 20deg) translate3d(0, -100%, 0px); + -o-transform: skew(0deg, 20deg) translate3d(0, -100%, 0px); + -ms-transform: skew(0deg, 20deg) translate3d(0, -100%, 0px); + -webkit-transform: skew(0deg, 20deg) translate3d(0, -100%, 0px); + transform: skew(0deg, 20deg) translate3d(0, -100%, 0px); } + .lg-css3.lg-slide-skew-ver-cross .lg-item.lg-next-slide { + -moz-transform: skew(0deg, 20deg) translate3d(0, 100%, 0px); + -o-transform: skew(0deg, 20deg) translate3d(0, 100%, 0px); + -ms-transform: skew(0deg, 20deg) translate3d(0, 100%, 0px); + -webkit-transform: skew(0deg, 20deg) translate3d(0, 100%, 0px); + transform: skew(0deg, 20deg) translate3d(0, 100%, 0px); } + .lg-css3.lg-slide-skew-ver-cross .lg-item.lg-current { + -moz-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + -o-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + -ms-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + -webkit-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + opacity: 1; } + .lg-css3.lg-slide-skew-ver-cross .lg-item.lg-prev-slide, .lg-css3.lg-slide-skew-ver-cross .lg-item.lg-next-slide, .lg-css3.lg-slide-skew-ver-cross .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; } +.lg-css3.lg-slide-skew-ver-cross-rev .lg-item { + opacity: 0; } + .lg-css3.lg-slide-skew-ver-cross-rev .lg-item.lg-prev-slide { + -moz-transform: skew(0deg, -20deg) translate3d(0, -100%, 0px); + -o-transform: skew(0deg, -20deg) translate3d(0, -100%, 0px); + -ms-transform: skew(0deg, -20deg) translate3d(0, -100%, 0px); + -webkit-transform: skew(0deg, -20deg) translate3d(0, -100%, 0px); + transform: skew(0deg, -20deg) translate3d(0, -100%, 0px); } + .lg-css3.lg-slide-skew-ver-cross-rev .lg-item.lg-next-slide { + -moz-transform: skew(0deg, -20deg) translate3d(0, 100%, 0px); + -o-transform: skew(0deg, -20deg) translate3d(0, 100%, 0px); + -ms-transform: skew(0deg, -20deg) translate3d(0, 100%, 0px); + -webkit-transform: skew(0deg, -20deg) translate3d(0, 100%, 0px); + transform: skew(0deg, -20deg) translate3d(0, 100%, 0px); } + .lg-css3.lg-slide-skew-ver-cross-rev .lg-item.lg-current { + -moz-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + -o-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + -ms-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + -webkit-transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + transform: skew(0deg, 0deg) translate3d(0%, 0%, 0px); + opacity: 1; } + .lg-css3.lg-slide-skew-ver-cross-rev .lg-item.lg-prev-slide, .lg-css3.lg-slide-skew-ver-cross-rev .lg-item.lg-next-slide, .lg-css3.lg-slide-skew-ver-cross-rev .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; } +.lg-css3.lg-lollipop .lg-item { + opacity: 0; } + .lg-css3.lg-lollipop .lg-item.lg-prev-slide { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); } + .lg-css3.lg-lollipop .lg-item.lg-next-slide { + -moz-transform: translate3d(0, 0, 0) scale(0.5); + -o-transform: translate3d(0, 0, 0) scale(0.5); + -ms-transform: translate3d(0, 0, 0) scale(0.5); + -webkit-transform: translate3d(0, 0, 0) scale(0.5); + transform: translate3d(0, 0, 0) scale(0.5); } + .lg-css3.lg-lollipop .lg-item.lg-current { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; } + .lg-css3.lg-lollipop .lg-item.lg-prev-slide, .lg-css3.lg-lollipop .lg-item.lg-next-slide, .lg-css3.lg-lollipop .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; } +.lg-css3.lg-lollipop-rev .lg-item { + opacity: 0; } + .lg-css3.lg-lollipop-rev .lg-item.lg-prev-slide { + -moz-transform: translate3d(0, 0, 0) scale(0.5); + -o-transform: translate3d(0, 0, 0) scale(0.5); + -ms-transform: translate3d(0, 0, 0) scale(0.5); + -webkit-transform: translate3d(0, 0, 0) scale(0.5); + transform: translate3d(0, 0, 0) scale(0.5); } + .lg-css3.lg-lollipop-rev .lg-item.lg-next-slide { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); } + .lg-css3.lg-lollipop-rev .lg-item.lg-current { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; } + .lg-css3.lg-lollipop-rev .lg-item.lg-prev-slide, .lg-css3.lg-lollipop-rev .lg-item.lg-next-slide, .lg-css3.lg-lollipop-rev .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; } +.lg-css3.lg-rotate .lg-item { + opacity: 0; } + .lg-css3.lg-rotate .lg-item.lg-prev-slide { + -moz-transform: rotate(-360deg); + -o-transform: rotate(-360deg); + -ms-transform: rotate(-360deg); + -webkit-transform: rotate(-360deg); + transform: rotate(-360deg); } + .lg-css3.lg-rotate .lg-item.lg-next-slide { + -moz-transform: rotate(360deg); + -o-transform: rotate(360deg); + -ms-transform: rotate(360deg); + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } + .lg-css3.lg-rotate .lg-item.lg-current { + -moz-transform: rotate(0deg); + -o-transform: rotate(0deg); + -ms-transform: rotate(0deg); + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + opacity: 1; } + .lg-css3.lg-rotate .lg-item.lg-prev-slide, .lg-css3.lg-rotate .lg-item.lg-next-slide, .lg-css3.lg-rotate .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; } +.lg-css3.lg-rotate-rev .lg-item { + opacity: 0; } + .lg-css3.lg-rotate-rev .lg-item.lg-prev-slide { + -moz-transform: rotate(360deg); + -o-transform: rotate(360deg); + -ms-transform: rotate(360deg); + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } + .lg-css3.lg-rotate-rev .lg-item.lg-next-slide { + -moz-transform: rotate(-360deg); + -o-transform: rotate(-360deg); + -ms-transform: rotate(-360deg); + -webkit-transform: rotate(-360deg); + transform: rotate(-360deg); } + .lg-css3.lg-rotate-rev .lg-item.lg-current { + -moz-transform: rotate(0deg); + -o-transform: rotate(0deg); + -ms-transform: rotate(0deg); + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + opacity: 1; } + .lg-css3.lg-rotate-rev .lg-item.lg-prev-slide, .lg-css3.lg-rotate-rev .lg-item.lg-next-slide, .lg-css3.lg-rotate-rev .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; } +.lg-css3.lg-tube .lg-item { + opacity: 0; } + .lg-css3.lg-tube .lg-item.lg-prev-slide { + -moz-transform: scale3d(1, 0, 1) translate3d(-100%, 0, 0); + -o-transform: scale3d(1, 0, 1) translate3d(-100%, 0, 0); + -ms-transform: scale3d(1, 0, 1) translate3d(-100%, 0, 0); + -webkit-transform: scale3d(1, 0, 1) translate3d(-100%, 0, 0); + transform: scale3d(1, 0, 1) translate3d(-100%, 0, 0); } + .lg-css3.lg-tube .lg-item.lg-next-slide { + -moz-transform: scale3d(1, 0, 1) translate3d(100%, 0, 0); + -o-transform: scale3d(1, 0, 1) translate3d(100%, 0, 0); + -ms-transform: scale3d(1, 0, 1) translate3d(100%, 0, 0); + -webkit-transform: scale3d(1, 0, 1) translate3d(100%, 0, 0); + transform: scale3d(1, 0, 1) translate3d(100%, 0, 0); } + .lg-css3.lg-tube .lg-item.lg-current { + -moz-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + -o-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + -ms-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + -webkit-transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + transform: scale3d(1, 1, 1) translate3d(0, 0, 0); + opacity: 1; } + .lg-css3.lg-tube .lg-item.lg-prev-slide, .lg-css3.lg-tube .lg-item.lg-next-slide, .lg-css3.lg-tube .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; } + +/*# sourceMappingURL=lg-transitions.css.map */ diff --git a/vendors/lightGallery/dist/css/lg-transitions.min.css b/vendors/lightGallery/dist/css/lg-transitions.min.css new file mode 100644 index 000000000..0ce571379 --- /dev/null +++ b/vendors/lightGallery/dist/css/lg-transitions.min.css @@ -0,0 +1 @@ +.lg-css3.lg-zoom-in .lg-item{opacity:0}.lg-css3.lg-zoom-in .lg-item.lg-next-slide,.lg-css3.lg-zoom-in .lg-item.lg-prev-slide{-webkit-transform:scale3d(1.3,1.3,1.3);transform:scale3d(1.3,1.3,1.3)}.lg-css3.lg-zoom-in .lg-item.lg-current{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);opacity:1}.lg-css3.lg-zoom-in .lg-item.lg-current,.lg-css3.lg-zoom-in .lg-item.lg-next-slide,.lg-css3.lg-zoom-in .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s}.lg-css3.lg-zoom-in-big .lg-item{opacity:0}.lg-css3.lg-zoom-in-big .lg-item.lg-next-slide,.lg-css3.lg-zoom-in-big .lg-item.lg-prev-slide{-webkit-transform:scale3d(2,2,2);transform:scale3d(2,2,2)}.lg-css3.lg-zoom-in-big .lg-item.lg-current{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);opacity:1}.lg-css3.lg-zoom-in-big .lg-item.lg-current,.lg-css3.lg-zoom-in-big .lg-item.lg-next-slide,.lg-css3.lg-zoom-in-big .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s}.lg-css3.lg-zoom-out .lg-item{opacity:0}.lg-css3.lg-zoom-out .lg-item.lg-next-slide,.lg-css3.lg-zoom-out .lg-item.lg-prev-slide{-webkit-transform:scale3d(.7,.7,.7);transform:scale3d(.7,.7,.7)}.lg-css3.lg-zoom-out .lg-item.lg-current{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);opacity:1}.lg-css3.lg-zoom-out .lg-item.lg-current,.lg-css3.lg-zoom-out .lg-item.lg-next-slide,.lg-css3.lg-zoom-out .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s}.lg-css3.lg-zoom-out-big .lg-item{opacity:0}.lg-css3.lg-zoom-out-big .lg-item.lg-next-slide,.lg-css3.lg-zoom-out-big .lg-item.lg-prev-slide{-webkit-transform:scale3d(0,0,0);transform:scale3d(0,0,0)}.lg-css3.lg-zoom-out-big .lg-item.lg-current{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);opacity:1}.lg-css3.lg-zoom-out-big .lg-item.lg-current,.lg-css3.lg-zoom-out-big .lg-item.lg-next-slide,.lg-css3.lg-zoom-out-big .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s}.lg-css3.lg-zoom-out-in .lg-item{opacity:0}.lg-css3.lg-zoom-out-in .lg-item.lg-prev-slide{-webkit-transform:scale3d(0,0,0);transform:scale3d(0,0,0)}.lg-css3.lg-zoom-out-in .lg-item.lg-next-slide{-webkit-transform:scale3d(2,2,2);transform:scale3d(2,2,2)}.lg-css3.lg-zoom-out-in .lg-item.lg-current{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);opacity:1}.lg-css3.lg-zoom-out-in .lg-item.lg-current,.lg-css3.lg-zoom-out-in .lg-item.lg-next-slide,.lg-css3.lg-zoom-out-in .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s}.lg-css3.lg-zoom-in-out .lg-item{opacity:0}.lg-css3.lg-zoom-in-out .lg-item.lg-prev-slide{-webkit-transform:scale3d(2,2,2);transform:scale3d(2,2,2)}.lg-css3.lg-zoom-in-out .lg-item.lg-next-slide{-webkit-transform:scale3d(0,0,0);transform:scale3d(0,0,0)}.lg-css3.lg-zoom-in-out .lg-item.lg-current{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);opacity:1}.lg-css3.lg-zoom-in-out .lg-item.lg-current,.lg-css3.lg-zoom-in-out .lg-item.lg-next-slide,.lg-css3.lg-zoom-in-out .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s}.lg-css3.lg-soft-zoom .lg-item{opacity:0}.lg-css3.lg-soft-zoom .lg-item.lg-prev-slide{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}.lg-css3.lg-soft-zoom .lg-item.lg-next-slide{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}.lg-css3.lg-soft-zoom .lg-item.lg-current{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);opacity:1}.lg-css3.lg-soft-zoom .lg-item.lg-current,.lg-css3.lg-soft-zoom .lg-item.lg-next-slide,.lg-css3.lg-soft-zoom .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s}.lg-css3.lg-scale-up .lg-item{opacity:0}.lg-css3.lg-scale-up .lg-item.lg-next-slide,.lg-css3.lg-scale-up .lg-item.lg-prev-slide{-moz-transform:scale3d(.8,.8,.8) translate3d(0,10%,0);-o-transform:scale3d(.8,.8,.8) translate3d(0,10%,0);-ms-transform:scale3d(.8,.8,.8) translate3d(0,10%,0);-webkit-transform:scale3d(.8,.8,.8) translate3d(0,10%,0);transform:scale3d(.8,.8,.8) translate3d(0,10%,0)}.lg-css3.lg-scale-up .lg-item.lg-current{-moz-transform:scale3d(1,1,1) translate3d(0,0,0);-o-transform:scale3d(1,1,1) translate3d(0,0,0);-ms-transform:scale3d(1,1,1) translate3d(0,0,0);-webkit-transform:scale3d(1,1,1) translate3d(0,0,0);transform:scale3d(1,1,1) translate3d(0,0,0);opacity:1}.lg-css3.lg-scale-up .lg-item.lg-current,.lg-css3.lg-scale-up .lg-item.lg-next-slide,.lg-css3.lg-scale-up .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s}.lg-css3.lg-slide-circular .lg-item{opacity:0}.lg-css3.lg-slide-circular .lg-item.lg-prev-slide{-moz-transform:scale3d(0,0,0) translate3d(-100%,0,0);-o-transform:scale3d(0,0,0) translate3d(-100%,0,0);-ms-transform:scale3d(0,0,0) translate3d(-100%,0,0);-webkit-transform:scale3d(0,0,0) translate3d(-100%,0,0);transform:scale3d(0,0,0) translate3d(-100%,0,0)}.lg-css3.lg-slide-circular .lg-item.lg-next-slide{-moz-transform:scale3d(0,0,0) translate3d(100%,0,0);-o-transform:scale3d(0,0,0) translate3d(100%,0,0);-ms-transform:scale3d(0,0,0) translate3d(100%,0,0);-webkit-transform:scale3d(0,0,0) translate3d(100%,0,0);transform:scale3d(0,0,0) translate3d(100%,0,0)}.lg-css3.lg-slide-circular .lg-item.lg-current{-moz-transform:scale3d(1,1,1) translate3d(0,0,0);-o-transform:scale3d(1,1,1) translate3d(0,0,0);-ms-transform:scale3d(1,1,1) translate3d(0,0,0);-webkit-transform:scale3d(1,1,1) translate3d(0,0,0);transform:scale3d(1,1,1) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-circular .lg-item.lg-current,.lg-css3.lg-slide-circular .lg-item.lg-next-slide,.lg-css3.lg-slide-circular .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s}.lg-css3.lg-slide-circular-up .lg-item{opacity:0}.lg-css3.lg-slide-circular-up .lg-item.lg-prev-slide{-moz-transform:scale3d(0,0,0) translate3d(-100%,-100%,0);-o-transform:scale3d(0,0,0) translate3d(-100%,-100%,0);-ms-transform:scale3d(0,0,0) translate3d(-100%,-100%,0);-webkit-transform:scale3d(0,0,0) translate3d(-100%,-100%,0);transform:scale3d(0,0,0) translate3d(-100%,-100%,0)}.lg-css3.lg-slide-circular-up .lg-item.lg-next-slide{-moz-transform:scale3d(0,0,0) translate3d(100%,-100%,0);-o-transform:scale3d(0,0,0) translate3d(100%,-100%,0);-ms-transform:scale3d(0,0,0) translate3d(100%,-100%,0);-webkit-transform:scale3d(0,0,0) translate3d(100%,-100%,0);transform:scale3d(0,0,0) translate3d(100%,-100%,0)}.lg-css3.lg-slide-circular-up .lg-item.lg-current{-moz-transform:scale3d(1,1,1) translate3d(0,0,0);-o-transform:scale3d(1,1,1) translate3d(0,0,0);-ms-transform:scale3d(1,1,1) translate3d(0,0,0);-webkit-transform:scale3d(1,1,1) translate3d(0,0,0);transform:scale3d(1,1,1) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-circular-up .lg-item.lg-current,.lg-css3.lg-slide-circular-up .lg-item.lg-next-slide,.lg-css3.lg-slide-circular-up .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s}.lg-css3.lg-slide-circular-down .lg-item{opacity:0}.lg-css3.lg-slide-circular-down .lg-item.lg-prev-slide{-moz-transform:scale3d(0,0,0) translate3d(-100%,100%,0);-o-transform:scale3d(0,0,0) translate3d(-100%,100%,0);-ms-transform:scale3d(0,0,0) translate3d(-100%,100%,0);-webkit-transform:scale3d(0,0,0) translate3d(-100%,100%,0);transform:scale3d(0,0,0) translate3d(-100%,100%,0)}.lg-css3.lg-slide-circular-down .lg-item.lg-next-slide{-moz-transform:scale3d(0,0,0) translate3d(100%,100%,0);-o-transform:scale3d(0,0,0) translate3d(100%,100%,0);-ms-transform:scale3d(0,0,0) translate3d(100%,100%,0);-webkit-transform:scale3d(0,0,0) translate3d(100%,100%,0);transform:scale3d(0,0,0) translate3d(100%,100%,0)}.lg-css3.lg-slide-circular-down .lg-item.lg-current{-moz-transform:scale3d(1,1,1) translate3d(0,0,0);-o-transform:scale3d(1,1,1) translate3d(0,0,0);-ms-transform:scale3d(1,1,1) translate3d(0,0,0);-webkit-transform:scale3d(1,1,1) translate3d(0,0,0);transform:scale3d(1,1,1) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-circular-down .lg-item.lg-current,.lg-css3.lg-slide-circular-down .lg-item.lg-next-slide,.lg-css3.lg-slide-circular-down .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s}.lg-css3.lg-slide-circular-vertical .lg-item{opacity:0}.lg-css3.lg-slide-circular-vertical .lg-item.lg-prev-slide{-moz-transform:scale3d(0,0,0) translate3d(0,-100%,0);-o-transform:scale3d(0,0,0) translate3d(0,-100%,0);-ms-transform:scale3d(0,0,0) translate3d(0,-100%,0);-webkit-transform:scale3d(0,0,0) translate3d(0,-100%,0);transform:scale3d(0,0,0) translate3d(0,-100%,0)}.lg-css3.lg-slide-circular-vertical .lg-item.lg-next-slide{-moz-transform:scale3d(0,0,0) translate3d(0,100%,0);-o-transform:scale3d(0,0,0) translate3d(0,100%,0);-ms-transform:scale3d(0,0,0) translate3d(0,100%,0);-webkit-transform:scale3d(0,0,0) translate3d(0,100%,0);transform:scale3d(0,0,0) translate3d(0,100%,0)}.lg-css3.lg-slide-circular-vertical .lg-item.lg-current{-moz-transform:scale3d(1,1,1) translate3d(0,0,0);-o-transform:scale3d(1,1,1) translate3d(0,0,0);-ms-transform:scale3d(1,1,1) translate3d(0,0,0);-webkit-transform:scale3d(1,1,1) translate3d(0,0,0);transform:scale3d(1,1,1) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-circular-vertical .lg-item.lg-current,.lg-css3.lg-slide-circular-vertical .lg-item.lg-next-slide,.lg-css3.lg-slide-circular-vertical .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s}.lg-css3.lg-slide-circular-vertical-left .lg-item{opacity:0}.lg-css3.lg-slide-circular-vertical-left .lg-item.lg-prev-slide{-moz-transform:scale3d(0,0,0) translate3d(-100%,-100%,0);-o-transform:scale3d(0,0,0) translate3d(-100%,-100%,0);-ms-transform:scale3d(0,0,0) translate3d(-100%,-100%,0);-webkit-transform:scale3d(0,0,0) translate3d(-100%,-100%,0);transform:scale3d(0,0,0) translate3d(-100%,-100%,0)}.lg-css3.lg-slide-circular-vertical-left .lg-item.lg-next-slide{-moz-transform:scale3d(0,0,0) translate3d(-100%,100%,0);-o-transform:scale3d(0,0,0) translate3d(-100%,100%,0);-ms-transform:scale3d(0,0,0) translate3d(-100%,100%,0);-webkit-transform:scale3d(0,0,0) translate3d(-100%,100%,0);transform:scale3d(0,0,0) translate3d(-100%,100%,0)}.lg-css3.lg-slide-circular-vertical-left .lg-item.lg-current{-moz-transform:scale3d(1,1,1) translate3d(0,0,0);-o-transform:scale3d(1,1,1) translate3d(0,0,0);-ms-transform:scale3d(1,1,1) translate3d(0,0,0);-webkit-transform:scale3d(1,1,1) translate3d(0,0,0);transform:scale3d(1,1,1) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-circular-vertical-left .lg-item.lg-current,.lg-css3.lg-slide-circular-vertical-left .lg-item.lg-next-slide,.lg-css3.lg-slide-circular-vertical-left .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s}.lg-css3.lg-slide-circular-vertical-down .lg-item{opacity:0}.lg-css3.lg-slide-circular-vertical-down .lg-item.lg-prev-slide{-moz-transform:scale3d(0,0,0) translate3d(100%,-100%,0);-o-transform:scale3d(0,0,0) translate3d(100%,-100%,0);-ms-transform:scale3d(0,0,0) translate3d(100%,-100%,0);-webkit-transform:scale3d(0,0,0) translate3d(100%,-100%,0);transform:scale3d(0,0,0) translate3d(100%,-100%,0)}.lg-css3.lg-slide-circular-vertical-down .lg-item.lg-next-slide{-moz-transform:scale3d(0,0,0) translate3d(100%,100%,0);-o-transform:scale3d(0,0,0) translate3d(100%,100%,0);-ms-transform:scale3d(0,0,0) translate3d(100%,100%,0);-webkit-transform:scale3d(0,0,0) translate3d(100%,100%,0);transform:scale3d(0,0,0) translate3d(100%,100%,0)}.lg-css3.lg-slide-circular-vertical-down .lg-item.lg-current{-moz-transform:scale3d(1,1,1) translate3d(0,0,0);-o-transform:scale3d(1,1,1) translate3d(0,0,0);-ms-transform:scale3d(1,1,1) translate3d(0,0,0);-webkit-transform:scale3d(1,1,1) translate3d(0,0,0);transform:scale3d(1,1,1) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-circular-vertical-down .lg-item.lg-current,.lg-css3.lg-slide-circular-vertical-down .lg-item.lg-next-slide,.lg-css3.lg-slide-circular-vertical-down .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s}.lg-css3.lg-slide-vertical .lg-item{opacity:0}.lg-css3.lg-slide-vertical .lg-item.lg-prev-slide{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}.lg-css3.lg-slide-vertical .lg-item.lg-next-slide{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.lg-css3.lg-slide-vertical .lg-item.lg-current{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-vertical .lg-item.lg-current,.lg-css3.lg-slide-vertical .lg-item.lg-next-slide,.lg-css3.lg-slide-vertical .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s}.lg-css3.lg-slide-vertical-growth .lg-item{opacity:0}.lg-css3.lg-slide-vertical-growth .lg-item.lg-prev-slide{-moz-transform:scale3d(.5,.5,.5) translate3d(0,-150%,0);-o-transform:scale3d(.5,.5,.5) translate3d(0,-150%,0);-ms-transform:scale3d(.5,.5,.5) translate3d(0,-150%,0);-webkit-transform:scale3d(.5,.5,.5) translate3d(0,-150%,0);transform:scale3d(.5,.5,.5) translate3d(0,-150%,0)}.lg-css3.lg-slide-vertical-growth .lg-item.lg-next-slide{-moz-transform:scale3d(.5,.5,.5) translate3d(0,150%,0);-o-transform:scale3d(.5,.5,.5) translate3d(0,150%,0);-ms-transform:scale3d(.5,.5,.5) translate3d(0,150%,0);-webkit-transform:scale3d(.5,.5,.5) translate3d(0,150%,0);transform:scale3d(.5,.5,.5) translate3d(0,150%,0)}.lg-css3.lg-slide-vertical-growth .lg-item.lg-current{-moz-transform:scale3d(1,1,1) translate3d(0,0,0);-o-transform:scale3d(1,1,1) translate3d(0,0,0);-ms-transform:scale3d(1,1,1) translate3d(0,0,0);-webkit-transform:scale3d(1,1,1) translate3d(0,0,0);transform:scale3d(1,1,1) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-vertical-growth .lg-item.lg-current,.lg-css3.lg-slide-vertical-growth .lg-item.lg-next-slide,.lg-css3.lg-slide-vertical-growth .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s}.lg-css3.lg-slide-skew-only .lg-item{opacity:0}.lg-css3.lg-slide-skew-only .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-only .lg-item.lg-prev-slide{-moz-transform:skew(10deg,0deg);-o-transform:skew(10deg,0deg);-ms-transform:skew(10deg,0deg);-webkit-transform:skew(10deg,0deg);transform:skew(10deg,0deg)}.lg-css3.lg-slide-skew-only .lg-item.lg-current{-moz-transform:skew(0deg,0deg);-o-transform:skew(0deg,0deg);-ms-transform:skew(0deg,0deg);-webkit-transform:skew(0deg,0deg);transform:skew(0deg,0deg);opacity:1}.lg-css3.lg-slide-skew-only .lg-item.lg-current,.lg-css3.lg-slide-skew-only .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-only .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s}.lg-css3.lg-slide-skew-only-rev .lg-item{opacity:0}.lg-css3.lg-slide-skew-only-rev .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-only-rev .lg-item.lg-prev-slide{-moz-transform:skew(-10deg,0deg);-o-transform:skew(-10deg,0deg);-ms-transform:skew(-10deg,0deg);-webkit-transform:skew(-10deg,0deg);transform:skew(-10deg,0deg)}.lg-css3.lg-slide-skew-only-rev .lg-item.lg-current{-moz-transform:skew(0deg,0deg);-o-transform:skew(0deg,0deg);-ms-transform:skew(0deg,0deg);-webkit-transform:skew(0deg,0deg);transform:skew(0deg,0deg);opacity:1}.lg-css3.lg-slide-skew-only-rev .lg-item.lg-current,.lg-css3.lg-slide-skew-only-rev .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-only-rev .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s}.lg-css3.lg-slide-skew-only-y .lg-item{opacity:0}.lg-css3.lg-slide-skew-only-y .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-only-y .lg-item.lg-prev-slide{-moz-transform:skew(0deg,10deg);-o-transform:skew(0deg,10deg);-ms-transform:skew(0deg,10deg);-webkit-transform:skew(0deg,10deg);transform:skew(0deg,10deg)}.lg-css3.lg-slide-skew-only-y .lg-item.lg-current{-moz-transform:skew(0deg,0deg);-o-transform:skew(0deg,0deg);-ms-transform:skew(0deg,0deg);-webkit-transform:skew(0deg,0deg);transform:skew(0deg,0deg);opacity:1}.lg-css3.lg-slide-skew-only-y .lg-item.lg-current,.lg-css3.lg-slide-skew-only-y .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-only-y .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s}.lg-css3.lg-slide-skew-only-y-rev .lg-item{opacity:0}.lg-css3.lg-slide-skew-only-y-rev .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-only-y-rev .lg-item.lg-prev-slide{-moz-transform:skew(0deg,-10deg);-o-transform:skew(0deg,-10deg);-ms-transform:skew(0deg,-10deg);-webkit-transform:skew(0deg,-10deg);transform:skew(0deg,-10deg)}.lg-css3.lg-slide-skew-only-y-rev .lg-item.lg-current{-moz-transform:skew(0deg,0deg);-o-transform:skew(0deg,0deg);-ms-transform:skew(0deg,0deg);-webkit-transform:skew(0deg,0deg);transform:skew(0deg,0deg);opacity:1}.lg-css3.lg-slide-skew-only-y-rev .lg-item.lg-current,.lg-css3.lg-slide-skew-only-y-rev .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-only-y-rev .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s}.lg-css3.lg-slide-skew .lg-item{opacity:0}.lg-css3.lg-slide-skew .lg-item.lg-prev-slide{-moz-transform:skew(20deg,0deg) translate3d(-100%,0,0);-o-transform:skew(20deg,0deg) translate3d(-100%,0,0);-ms-transform:skew(20deg,0deg) translate3d(-100%,0,0);-webkit-transform:skew(20deg,0deg) translate3d(-100%,0,0);transform:skew(20deg,0deg) translate3d(-100%,0,0)}.lg-css3.lg-slide-skew .lg-item.lg-next-slide{-moz-transform:skew(20deg,0deg) translate3d(100%,0,0);-o-transform:skew(20deg,0deg) translate3d(100%,0,0);-ms-transform:skew(20deg,0deg) translate3d(100%,0,0);-webkit-transform:skew(20deg,0deg) translate3d(100%,0,0);transform:skew(20deg,0deg) translate3d(100%,0,0)}.lg-css3.lg-slide-skew .lg-item.lg-current{-moz-transform:skew(0deg,0deg) translate3d(0,0,0);-o-transform:skew(0deg,0deg) translate3d(0,0,0);-ms-transform:skew(0deg,0deg) translate3d(0,0,0);-webkit-transform:skew(0deg,0deg) translate3d(0,0,0);transform:skew(0deg,0deg) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-skew .lg-item.lg-current,.lg-css3.lg-slide-skew .lg-item.lg-next-slide,.lg-css3.lg-slide-skew .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s}.lg-css3.lg-slide-skew-rev .lg-item{opacity:0}.lg-css3.lg-slide-skew-rev .lg-item.lg-prev-slide{-moz-transform:skew(-20deg,0deg) translate3d(-100%,0,0);-o-transform:skew(-20deg,0deg) translate3d(-100%,0,0);-ms-transform:skew(-20deg,0deg) translate3d(-100%,0,0);-webkit-transform:skew(-20deg,0deg) translate3d(-100%,0,0);transform:skew(-20deg,0deg) translate3d(-100%,0,0)}.lg-css3.lg-slide-skew-rev .lg-item.lg-next-slide{-moz-transform:skew(-20deg,0deg) translate3d(100%,0,0);-o-transform:skew(-20deg,0deg) translate3d(100%,0,0);-ms-transform:skew(-20deg,0deg) translate3d(100%,0,0);-webkit-transform:skew(-20deg,0deg) translate3d(100%,0,0);transform:skew(-20deg,0deg) translate3d(100%,0,0)}.lg-css3.lg-slide-skew-rev .lg-item.lg-current{-moz-transform:skew(0deg,0deg) translate3d(0,0,0);-o-transform:skew(0deg,0deg) translate3d(0,0,0);-ms-transform:skew(0deg,0deg) translate3d(0,0,0);-webkit-transform:skew(0deg,0deg) translate3d(0,0,0);transform:skew(0deg,0deg) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-skew-rev .lg-item.lg-current,.lg-css3.lg-slide-skew-rev .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-rev .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s}.lg-css3.lg-slide-skew-cross .lg-item{opacity:0}.lg-css3.lg-slide-skew-cross .lg-item.lg-prev-slide{-moz-transform:skew(0deg,60deg) translate3d(-100%,0,0);-o-transform:skew(0deg,60deg) translate3d(-100%,0,0);-ms-transform:skew(0deg,60deg) translate3d(-100%,0,0);-webkit-transform:skew(0deg,60deg) translate3d(-100%,0,0);transform:skew(0deg,60deg) translate3d(-100%,0,0)}.lg-css3.lg-slide-skew-cross .lg-item.lg-next-slide{-moz-transform:skew(0deg,60deg) translate3d(100%,0,0);-o-transform:skew(0deg,60deg) translate3d(100%,0,0);-ms-transform:skew(0deg,60deg) translate3d(100%,0,0);-webkit-transform:skew(0deg,60deg) translate3d(100%,0,0);transform:skew(0deg,60deg) translate3d(100%,0,0)}.lg-css3.lg-slide-skew-cross .lg-item.lg-current{-moz-transform:skew(0deg,0deg) translate3d(0,0,0);-o-transform:skew(0deg,0deg) translate3d(0,0,0);-ms-transform:skew(0deg,0deg) translate3d(0,0,0);-webkit-transform:skew(0deg,0deg) translate3d(0,0,0);transform:skew(0deg,0deg) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-skew-cross .lg-item.lg-current,.lg-css3.lg-slide-skew-cross .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-cross .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s}.lg-css3.lg-slide-skew-cross-rev .lg-item{opacity:0}.lg-css3.lg-slide-skew-cross-rev .lg-item.lg-prev-slide{-moz-transform:skew(0deg,-60deg) translate3d(-100%,0,0);-o-transform:skew(0deg,-60deg) translate3d(-100%,0,0);-ms-transform:skew(0deg,-60deg) translate3d(-100%,0,0);-webkit-transform:skew(0deg,-60deg) translate3d(-100%,0,0);transform:skew(0deg,-60deg) translate3d(-100%,0,0)}.lg-css3.lg-slide-skew-cross-rev .lg-item.lg-next-slide{-moz-transform:skew(0deg,-60deg) translate3d(100%,0,0);-o-transform:skew(0deg,-60deg) translate3d(100%,0,0);-ms-transform:skew(0deg,-60deg) translate3d(100%,0,0);-webkit-transform:skew(0deg,-60deg) translate3d(100%,0,0);transform:skew(0deg,-60deg) translate3d(100%,0,0)}.lg-css3.lg-slide-skew-cross-rev .lg-item.lg-current{-moz-transform:skew(0deg,0deg) translate3d(0,0,0);-o-transform:skew(0deg,0deg) translate3d(0,0,0);-ms-transform:skew(0deg,0deg) translate3d(0,0,0);-webkit-transform:skew(0deg,0deg) translate3d(0,0,0);transform:skew(0deg,0deg) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-skew-cross-rev .lg-item.lg-current,.lg-css3.lg-slide-skew-cross-rev .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-cross-rev .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s}.lg-css3.lg-slide-skew-ver .lg-item{opacity:0}.lg-css3.lg-slide-skew-ver .lg-item.lg-prev-slide{-moz-transform:skew(60deg,0deg) translate3d(0,-100%,0);-o-transform:skew(60deg,0deg) translate3d(0,-100%,0);-ms-transform:skew(60deg,0deg) translate3d(0,-100%,0);-webkit-transform:skew(60deg,0deg) translate3d(0,-100%,0);transform:skew(60deg,0deg) translate3d(0,-100%,0)}.lg-css3.lg-slide-skew-ver .lg-item.lg-next-slide{-moz-transform:skew(60deg,0deg) translate3d(0,100%,0);-o-transform:skew(60deg,0deg) translate3d(0,100%,0);-ms-transform:skew(60deg,0deg) translate3d(0,100%,0);-webkit-transform:skew(60deg,0deg) translate3d(0,100%,0);transform:skew(60deg,0deg) translate3d(0,100%,0)}.lg-css3.lg-slide-skew-ver .lg-item.lg-current{-moz-transform:skew(0deg,0deg) translate3d(0,0,0);-o-transform:skew(0deg,0deg) translate3d(0,0,0);-ms-transform:skew(0deg,0deg) translate3d(0,0,0);-webkit-transform:skew(0deg,0deg) translate3d(0,0,0);transform:skew(0deg,0deg) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-skew-ver .lg-item.lg-current,.lg-css3.lg-slide-skew-ver .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-ver .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s}.lg-css3.lg-slide-skew-ver-rev .lg-item{opacity:0}.lg-css3.lg-slide-skew-ver-rev .lg-item.lg-prev-slide{-moz-transform:skew(-60deg,0deg) translate3d(0,-100%,0);-o-transform:skew(-60deg,0deg) translate3d(0,-100%,0);-ms-transform:skew(-60deg,0deg) translate3d(0,-100%,0);-webkit-transform:skew(-60deg,0deg) translate3d(0,-100%,0);transform:skew(-60deg,0deg) translate3d(0,-100%,0)}.lg-css3.lg-slide-skew-ver-rev .lg-item.lg-next-slide{-moz-transform:skew(-60deg,0deg) translate3d(0,100%,0);-o-transform:skew(-60deg,0deg) translate3d(0,100%,0);-ms-transform:skew(-60deg,0deg) translate3d(0,100%,0);-webkit-transform:skew(-60deg,0deg) translate3d(0,100%,0);transform:skew(-60deg,0deg) translate3d(0,100%,0)}.lg-css3.lg-slide-skew-ver-rev .lg-item.lg-current{-moz-transform:skew(0deg,0deg) translate3d(0,0,0);-o-transform:skew(0deg,0deg) translate3d(0,0,0);-ms-transform:skew(0deg,0deg) translate3d(0,0,0);-webkit-transform:skew(0deg,0deg) translate3d(0,0,0);transform:skew(0deg,0deg) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-skew-ver-rev .lg-item.lg-current,.lg-css3.lg-slide-skew-ver-rev .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-ver-rev .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s}.lg-css3.lg-slide-skew-ver-cross .lg-item{opacity:0}.lg-css3.lg-slide-skew-ver-cross .lg-item.lg-prev-slide{-moz-transform:skew(0deg,20deg) translate3d(0,-100%,0);-o-transform:skew(0deg,20deg) translate3d(0,-100%,0);-ms-transform:skew(0deg,20deg) translate3d(0,-100%,0);-webkit-transform:skew(0deg,20deg) translate3d(0,-100%,0);transform:skew(0deg,20deg) translate3d(0,-100%,0)}.lg-css3.lg-slide-skew-ver-cross .lg-item.lg-next-slide{-moz-transform:skew(0deg,20deg) translate3d(0,100%,0);-o-transform:skew(0deg,20deg) translate3d(0,100%,0);-ms-transform:skew(0deg,20deg) translate3d(0,100%,0);-webkit-transform:skew(0deg,20deg) translate3d(0,100%,0);transform:skew(0deg,20deg) translate3d(0,100%,0)}.lg-css3.lg-slide-skew-ver-cross .lg-item.lg-current{-moz-transform:skew(0deg,0deg) translate3d(0,0,0);-o-transform:skew(0deg,0deg) translate3d(0,0,0);-ms-transform:skew(0deg,0deg) translate3d(0,0,0);-webkit-transform:skew(0deg,0deg) translate3d(0,0,0);transform:skew(0deg,0deg) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-skew-ver-cross .lg-item.lg-current,.lg-css3.lg-slide-skew-ver-cross .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-ver-cross .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s}.lg-css3.lg-slide-skew-ver-cross-rev .lg-item{opacity:0}.lg-css3.lg-slide-skew-ver-cross-rev .lg-item.lg-prev-slide{-moz-transform:skew(0deg,-20deg) translate3d(0,-100%,0);-o-transform:skew(0deg,-20deg) translate3d(0,-100%,0);-ms-transform:skew(0deg,-20deg) translate3d(0,-100%,0);-webkit-transform:skew(0deg,-20deg) translate3d(0,-100%,0);transform:skew(0deg,-20deg) translate3d(0,-100%,0)}.lg-css3.lg-slide-skew-ver-cross-rev .lg-item.lg-next-slide{-moz-transform:skew(0deg,-20deg) translate3d(0,100%,0);-o-transform:skew(0deg,-20deg) translate3d(0,100%,0);-ms-transform:skew(0deg,-20deg) translate3d(0,100%,0);-webkit-transform:skew(0deg,-20deg) translate3d(0,100%,0);transform:skew(0deg,-20deg) translate3d(0,100%,0)}.lg-css3.lg-slide-skew-ver-cross-rev .lg-item.lg-current{-moz-transform:skew(0deg,0deg) translate3d(0,0,0);-o-transform:skew(0deg,0deg) translate3d(0,0,0);-ms-transform:skew(0deg,0deg) translate3d(0,0,0);-webkit-transform:skew(0deg,0deg) translate3d(0,0,0);transform:skew(0deg,0deg) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-skew-ver-cross-rev .lg-item.lg-current,.lg-css3.lg-slide-skew-ver-cross-rev .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-ver-cross-rev .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s}.lg-css3.lg-lollipop .lg-item{opacity:0}.lg-css3.lg-lollipop .lg-item.lg-prev-slide{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.lg-css3.lg-lollipop .lg-item.lg-next-slide{-moz-transform:translate3d(0,0,0) scale(.5);-o-transform:translate3d(0,0,0) scale(.5);-ms-transform:translate3d(0,0,0) scale(.5);-webkit-transform:translate3d(0,0,0) scale(.5);transform:translate3d(0,0,0) scale(.5)}.lg-css3.lg-lollipop .lg-item.lg-current{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.lg-css3.lg-lollipop .lg-item.lg-current,.lg-css3.lg-lollipop .lg-item.lg-next-slide,.lg-css3.lg-lollipop .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s}.lg-css3.lg-lollipop-rev .lg-item{opacity:0}.lg-css3.lg-lollipop-rev .lg-item.lg-prev-slide{-moz-transform:translate3d(0,0,0) scale(.5);-o-transform:translate3d(0,0,0) scale(.5);-ms-transform:translate3d(0,0,0) scale(.5);-webkit-transform:translate3d(0,0,0) scale(.5);transform:translate3d(0,0,0) scale(.5)}.lg-css3.lg-lollipop-rev .lg-item.lg-next-slide{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.lg-css3.lg-lollipop-rev .lg-item.lg-current{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.lg-css3.lg-lollipop-rev .lg-item.lg-current,.lg-css3.lg-lollipop-rev .lg-item.lg-next-slide,.lg-css3.lg-lollipop-rev .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s}.lg-css3.lg-rotate .lg-item{opacity:0}.lg-css3.lg-rotate .lg-item.lg-prev-slide{-moz-transform:rotate(-360deg);-o-transform:rotate(-360deg);-ms-transform:rotate(-360deg);-webkit-transform:rotate(-360deg);transform:rotate(-360deg)}.lg-css3.lg-rotate .lg-item.lg-next-slide{-moz-transform:rotate(360deg);-o-transform:rotate(360deg);-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg)}.lg-css3.lg-rotate .lg-item.lg-current{-moz-transform:rotate(0);-o-transform:rotate(0);-ms-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0);opacity:1}.lg-css3.lg-rotate .lg-item.lg-current,.lg-css3.lg-rotate .lg-item.lg-next-slide,.lg-css3.lg-rotate .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s}.lg-css3.lg-rotate-rev .lg-item{opacity:0}.lg-css3.lg-rotate-rev .lg-item.lg-prev-slide{-moz-transform:rotate(360deg);-o-transform:rotate(360deg);-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg)}.lg-css3.lg-rotate-rev .lg-item.lg-next-slide{-moz-transform:rotate(-360deg);-o-transform:rotate(-360deg);-ms-transform:rotate(-360deg);-webkit-transform:rotate(-360deg);transform:rotate(-360deg)}.lg-css3.lg-rotate-rev .lg-item.lg-current{-moz-transform:rotate(0);-o-transform:rotate(0);-ms-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0);opacity:1}.lg-css3.lg-rotate-rev .lg-item.lg-current,.lg-css3.lg-rotate-rev .lg-item.lg-next-slide,.lg-css3.lg-rotate-rev .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s}.lg-css3.lg-tube .lg-item{opacity:0}.lg-css3.lg-tube .lg-item.lg-prev-slide{-moz-transform:scale3d(1,0,1) translate3d(-100%,0,0);-o-transform:scale3d(1,0,1) translate3d(-100%,0,0);-ms-transform:scale3d(1,0,1) translate3d(-100%,0,0);-webkit-transform:scale3d(1,0,1) translate3d(-100%,0,0);transform:scale3d(1,0,1) translate3d(-100%,0,0)}.lg-css3.lg-tube .lg-item.lg-next-slide{-moz-transform:scale3d(1,0,1) translate3d(100%,0,0);-o-transform:scale3d(1,0,1) translate3d(100%,0,0);-ms-transform:scale3d(1,0,1) translate3d(100%,0,0);-webkit-transform:scale3d(1,0,1) translate3d(100%,0,0);transform:scale3d(1,0,1) translate3d(100%,0,0)}.lg-css3.lg-tube .lg-item.lg-current{-moz-transform:scale3d(1,1,1) translate3d(0,0,0);-o-transform:scale3d(1,1,1) translate3d(0,0,0);-ms-transform:scale3d(1,1,1) translate3d(0,0,0);-webkit-transform:scale3d(1,1,1) translate3d(0,0,0);transform:scale3d(1,1,1) translate3d(0,0,0);opacity:1}.lg-css3.lg-tube .lg-item.lg-current,.lg-css3.lg-tube .lg-item.lg-next-slide,.lg-css3.lg-tube .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s} \ No newline at end of file diff --git a/vendors/lightGallery/dist/css/lightgallery.css b/vendors/lightGallery/dist/css/lightgallery.css new file mode 100644 index 000000000..e9424a812 --- /dev/null +++ b/vendors/lightGallery/dist/css/lightgallery.css @@ -0,0 +1,806 @@ +/*! lightgallery - v1.2.0 - 2015-08-26 +* http://sachinchoolur.github.io/lightGallery/ +* Copyright (c) 2015 Sachin N; Licensed Apache 2.0 */ +@font-face { + font-family: 'lg'; + src: url("../fonts/lg.eot?n1z373"); + src: url("../fonts/lg.eot?#iefixn1z373") format("embedded-opentype"), url("../fonts/lg.woff?n1z373") format("woff"), url("../fonts/lg.ttf?n1z373") format("truetype"), url("../fonts/lg.svg?n1z373#lg") format("svg"); + font-weight: normal; + font-style: normal; +} +.lg-icon { + font-family: 'lg'; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.lg-actions .lg-next, .lg-actions .lg-prev { + background-color: rgba(0, 0, 0, 0.45); + border-radius: 2px; + color: #999; + cursor: pointer; + display: block; + font-size: 22px; + margin-top: -10px; + padding: 8px 10px 9px; + position: absolute; + top: 50%; + z-index: 1080; +} +.lg-actions .lg-next.disabled, .lg-actions .lg-prev.disabled { + pointer-events: none; + opacity: 0.5; +} +.lg-actions .lg-next:hover, .lg-actions .lg-prev:hover { + color: #FFF; +} +.lg-actions .lg-next { + right: 20px; +} +.lg-actions .lg-next:before { + content: "\e095"; +} +.lg-actions .lg-prev { + left: 20px; +} +.lg-actions .lg-prev:after { + content: "\e094"; +} + +@-webkit-keyframes lg-right-end { + 0% { + left: 0; + } + 50% { + left: -30px; + } + 100% { + left: 0; + } +} +@-moz-keyframes lg-right-end { + 0% { + left: 0; + } + 50% { + left: -30px; + } + 100% { + left: 0; + } +} +@-ms-keyframes lg-right-end { + 0% { + left: 0; + } + 50% { + left: -30px; + } + 100% { + left: 0; + } +} +@keyframes lg-right-end { + 0% { + left: 0; + } + 50% { + left: -30px; + } + 100% { + left: 0; + } +} +@-webkit-keyframes lg-left-end { + 0% { + left: 0; + } + 50% { + left: 30px; + } + 100% { + left: 0; + } +} +@-moz-keyframes lg-left-end { + 0% { + left: 0; + } + 50% { + left: 30px; + } + 100% { + left: 0; + } +} +@-ms-keyframes lg-left-end { + 0% { + left: 0; + } + 50% { + left: 30px; + } + 100% { + left: 0; + } +} +@keyframes lg-left-end { + 0% { + left: 0; + } + 50% { + left: 30px; + } + 100% { + left: 0; + } +} +.lg-outer.lg-right-end .lg-object { + -webkit-animation: lg-right-end 0.3s; + -o-animation: lg-right-end 0.3s; + animation: lg-right-end 0.3s; + position: relative; +} +.lg-outer.lg-left-end .lg-object { + -webkit-animation: lg-left-end 0.3s; + -o-animation: lg-left-end 0.3s; + animation: lg-left-end 0.3s; + position: relative; +} + +.lg-toolbar { + z-index: 1080; + left: 0; + position: absolute; + top: 0; + width: 100%; + background-color: rgba(0, 0, 0, 0.45); +} +.lg-toolbar .lg-icon { + color: #999; + cursor: pointer; + float: right; + font-size: 24px; + height: 47px; + line-height: 27px; + padding: 10px 0; + text-align: center; + width: 50px; + text-decoration: none !important; + outline: medium none; +} +.lg-toolbar .lg-icon:hover { + color: #FFF; +} +.lg-toolbar .lg-close:after { + content: "\e070"; +} +.lg-toolbar .lg-download:after { + content: "\e0f2"; +} + +.lg-sub-html { + background-color: rgba(0, 0, 0, 0.45); + bottom: 0; + color: #EEE; + font-size: 16px; + left: 0; + padding: 10px 40px; + position: fixed; + right: 0; + text-align: center; + z-index: 1080; +} +.lg-sub-html h4 { + margin: 0; + font-size: 13px; + font-weight: bold; +} +.lg-sub-html p { + font-size: 12px; + margin: 5px 0 0; +} + +#lg-counter { + color: #999; + display: inline-block; + font-size: 16px; + padding-left: 20px; + padding-top: 12px; + vertical-align: middle; +} + +.lg-toolbar, .lg-prev, .lg-next { + opacity: 1; + -webkit-transition: -webkit-transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s; + -moz-transition: -moz-transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s; + -o-transition: -o-transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s; + transition: transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s; +} + +.lg-hide-items .lg-prev { + opacity: 0; + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); +} +.lg-hide-items .lg-next { + opacity: 0; + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); +} +.lg-hide-items .lg-toolbar { + opacity: 0; + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); +} + +body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-object { + -webkit-transform: scale3d(0.5, 0.5, 0.5); + transform: scale3d(0.5, 0.5, 0.5); + opacity: 0; + -webkit-transition: -webkit-transform 250ms ease 0s, opacity 250ms !important; + -moz-transition: -moz-transform 250ms ease 0s, opacity 250ms !important; + -o-transition: -o-transform 250ms ease 0s, opacity 250ms !important; + transition: transform 250ms ease 0s, opacity 250ms !important; + -webkit-transform-origin: 50% 50%; + -moz-transform-origin: 50% 50%; + -ms-transform-origin: 50% 50%; + transform-origin: 50% 50%; +} +body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-item.lg-complete .lg-object { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + opacity: 1; +} + +.lg-outer .lg-thumb-outer { + background-color: #0D0A0A; + bottom: 0; + position: absolute; + width: 100%; + z-index: 1080; + max-height: 350px; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + -webkit-transition: -webkit-transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s; + -moz-transition: -moz-transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s; + -o-transition: -o-transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s; + transition: transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s; +} +.lg-outer .lg-thumb-outer.lg-grab .lg-thumb-item { + cursor: -webkit-grab; + cursor: -moz-grab; + cursor: -o-grab; + cursor: -ms-grab; + cursor: grab; +} +.lg-outer .lg-thumb-outer.lg-grabbing .lg-thumb-item { + cursor: move; + cursor: -webkit-grabbing; + cursor: -moz-grabbing; + cursor: -o-grabbing; + cursor: -ms-grabbing; + cursor: grabbing; +} +.lg-outer .lg-thumb-outer.lg-dragging .lg-thumb { + -webkit-transition-duration: 0s !important; + transition-duration: 0s !important; +} +.lg-outer.lg-thumb-open .lg-thumb-outer { + -webkit-transform: translate3d(0, 0%, 0); + transform: translate3d(0, 0%, 0); +} +.lg-outer .lg-thumb { + padding: 10px 0; + height: 100%; + margin-bottom: -5px; +} +.lg-outer .lg-thumb-item { + border-radius: 5px; + cursor: pointer; + float: left; + overflow: hidden; + height: 100%; + border: 2px solid #FFF; + border-radius: 4px; + margin-bottom: 5px; +} +@media (min-width: 1025px) { + .lg-outer .lg-thumb-item { + -webkit-transition: border-color 0.25s ease; + -o-transition: border-color 0.25s ease; + transition: border-color 0.25s ease; + } +} +.lg-outer .lg-thumb-item.active, .lg-outer .lg-thumb-item:hover { + border-color: #a90707; +} +.lg-outer .lg-thumb-item img { + width: 100%; + height: 100%; +} +.lg-outer.lg-has-thumb .lg-item { + padding-bottom: 120px; +} +.lg-outer.lg-can-toggle .lg-item { + padding-bottom: 0; +} +.lg-outer .lg-toogle-thumb { + background-color: #0D0A0A; + border-radius: 2px 2px 0 0; + color: #999; + cursor: pointer; + font-size: 24px; + height: 39px; + line-height: 27px; + padding: 5px 0; + position: absolute; + right: 20px; + text-align: center; + top: -39px; + width: 50px; +} +.lg-outer .lg-toogle-thumb:after { + content: "\e1ff"; +} +.lg-outer .lg-toogle-thumb:hover { + color: #FFF; +} + +.lg-outer .lg-video-cont { + display: inline-block; + vertical-align: middle; + max-width: 1140px; + max-height: 100%; + width: 100%; + padding: 0 5px; +} +.lg-outer .lg-video { + width: 100%; + height: 0; + padding-bottom: 56.25%; + overflow: hidden; + position: relative; +} +.lg-outer .lg-video .lg-object { + display: inline-block; + position: absolute; + top: 0; + left: 0; + width: 100% !important; + height: 100% !important; +} +.lg-outer .lg-video .lg-video-play { + width: 84px; + height: 59px; + position: absolute; + left: 50%; + top: 50%; + margin-left: -42px; + margin-top: -30px; + z-index: 1080; + cursor: pointer; +} +.lg-outer .lg-has-vimeo .lg-video-play { + background: url("../img/vimeo-play.png") no-repeat scroll 0 0 transparent; +} +.lg-outer .lg-has-vimeo:hover .lg-video-play { + background: url("../img/vimeo-play.png") no-repeat scroll 0 -58px transparent; +} +.lg-outer .lg-has-html5 .lg-video-play { + background: transparent url("../img/video-play.png") no-repeat scroll 0 0; + height: 64px; + margin-left: -32px; + margin-top: -32px; + width: 64px; + opacity: 0.8; +} +.lg-outer .lg-has-html5:hover .lg-video-play { + opacity: 1; +} +.lg-outer .lg-has-youtube .lg-video-play { + background: url("../img/youtube-play.png") no-repeat scroll 0 0 transparent; +} +.lg-outer .lg-has-youtube:hover .lg-video-play { + background: url("../img/youtube-play.png") no-repeat scroll 0 -60px transparent; +} +.lg-outer .lg-video-object { + width: 100% !important; + height: 100% !important; + position: absolute; + top: 0; + left: 0; +} +.lg-outer .lg-has-video .lg-video-object { + visibility: hidden; +} +.lg-outer .lg-has-video.lg-video-palying .lg-object, .lg-outer .lg-has-video.lg-video-palying .lg-video-play { + display: none; +} +.lg-outer .lg-has-video.lg-video-palying .lg-video-object { + visibility: visible; +} + +.lg-progress-bar { + background-color: #333; + height: 5px; + left: 0; + position: absolute; + top: 0; + width: 100%; + z-index: 1080; + opacity: 0; + -webkit-transition: opacity 0.08s ease 0s; + -moz-transition: opacity 0.08s ease 0s; + -o-transition: opacity 0.08s ease 0s; + transition: opacity 0.08s ease 0s; +} +.lg-progress-bar .lg-progress { + background-color: #a90707; + height: 5px; + width: 0; +} +.lg-progress-bar.lg-start .lg-progress { + width: 100%; +} +.lg-show-autoplay .lg-progress-bar { + opacity: 1; +} + +.lg-autoplay-button:after { + content: "\e01d"; +} +.lg-show-autoplay .lg-autoplay-button:after { + content: "\e01a"; +} + +.lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-img-wrap, .lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-image { + -webkit-transition-duration: 0s; + transition-duration: 0s; +} +.lg-outer .lg-item.lg-complete.lg-zoomable .lg-img-wrap { + -webkit-transition: -webkit-transform 0.3s ease 0s; + -moz-transition: -moz-transform 0.3s ease 0s; + -o-transition: -o-transform 0.3s ease 0s; + transition: transform 0.3s ease 0s; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); +} +.lg-outer .lg-item.lg-complete.lg-zoomable .lg-image { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + -webkit-transition: -webkit-transform 0.3s ease 0s, opacity 0.15s !important; + -moz-transition: -moz-transform 0.3s ease 0s, opacity 0.15s !important; + -o-transition: -o-transform 0.3s ease 0s, opacity 0.15s !important; + transition: transform 0.3s ease 0s, opacity 0.15s !important; + -webkit-transform-origin: 0 0; + -moz-transform-origin: 0 0; + -ms-transform-origin: 0 0; + transform-origin: 0 0; +} + +#lg-zoom-in:after { + content: "\e311"; +} + +#lg-zoom-out { + opacity: 0.5; + pointer-events: none; +} +#lg-zoom-out:after { + content: "\e312"; +} +.lg-zoomed #lg-zoom-out { + opacity: 1; + pointer-events: auto; +} + +.lg-outer .lg-pager-outer { + bottom: 60px; + left: 0; + position: absolute; + right: 0; + text-align: center; + z-index: 1080; + height: 10px; +} +.lg-outer .lg-pager-outer.lg-pager-hover .lg-pager-cont { + overflow: visible; +} +.lg-outer .lg-pager-cont { + cursor: pointer; + display: inline-block; + overflow: hidden; + position: relative; + vertical-align: top; + margin: 0 5px; +} +.lg-outer .lg-pager-cont:hover .lg-pager-thumb-cont { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); +} +.lg-outer .lg-pager-cont.lg-pager-active .lg-pager { + box-shadow: 0 0 0 2px white inset; +} +.lg-outer .lg-pager-thumb-cont { + background-color: #fff; + color: #FFF; + bottom: 100%; + height: 83px; + left: 0; + margin-bottom: 20px; + margin-left: -60px; + opacity: 0; + padding: 5px; + position: absolute; + width: 120px; + border-radius: 3px; + -webkit-transition: opacity 0.15s ease 0s, -webkit-transform 0.15s ease 0s; + -moz-transition: opacity 0.15s ease 0s, -moz-transform 0.15s ease 0s; + -o-transition: opacity 0.15s ease 0s, -o-transform 0.15s ease 0s; + transition: opacity 0.15s ease 0s, transform 0.15s ease 0s; + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); +} +.lg-outer .lg-pager-thumb-cont img { + width: 100%; + height: 100%; +} +.lg-outer .lg-pager { + background-color: rgba(255, 255, 255, 0.5); + border-radius: 50%; + box-shadow: 0 0 0 8px rgba(255, 255, 255, 0.7) inset; + display: block; + height: 12px; + -webkit-transition: box-shadow 0.3s ease 0s; + -o-transition: box-shadow 0.3s ease 0s; + transition: box-shadow 0.3s ease 0s; + width: 12px; +} +.lg-outer .lg-pager:hover, .lg-outer .lg-pager:focus { + box-shadow: 0 0 0 8px white inset; +} +.lg-outer .lg-caret { + border-left: 10px solid transparent; + border-right: 10px solid transparent; + border-top: 10px dashed; + bottom: -10px; + display: inline-block; + height: 0; + left: 50%; + margin-left: -5px; + position: absolute; + vertical-align: middle; + width: 0; +} + +.lg-fullscreen:after { + content: "\e20c"; +} +.lg-fullscreen-on .lg-fullscreen:after { + content: "\e20d"; +} + +.group { + *zoom: 1; +} + +.group:before, .group:after { + display: table; + content: ""; + line-height: 0; +} + +.group:after { + clear: both; +} + +.lg-outer { + width: 100%; + height: 100%; + position: fixed; + top: 0; + left: 0; + z-index: 1050; + opacity: 0; + -webkit-transition: opacity 0.15s ease 0s; + -o-transition: opacity 0.15s ease 0s; + transition: opacity 0.15s ease 0s; +} +.lg-outer * { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.lg-outer.lg-visible { + opacity: 1; +} +.lg-outer.lg-css3 .lg-item.lg-prev-slide, .lg-outer.lg-css3 .lg-item.lg-next-slide, .lg-outer.lg-css3 .lg-item.lg-current { + -webkit-transition-duration: inherit !important; + transition-duration: inherit !important; + -webkit-transition-timing-function: inherit !important; + transition-timing-function: inherit !important; +} +.lg-outer.lg-css3.lg-dragging .lg-item.lg-prev-slide, .lg-outer.lg-css3.lg-dragging .lg-item.lg-next-slide, .lg-outer.lg-css3.lg-dragging .lg-item.lg-current { + -webkit-transition-duration: 0s !important; + transition-duration: 0s !important; + opacity: 1; +} +.lg-outer.lg-grab img.lg-object { + cursor: -webkit-grab; + cursor: -moz-grab; + cursor: -o-grab; + cursor: -ms-grab; + cursor: grab; +} +.lg-outer.lg-grabbing img.lg-object { + cursor: move; + cursor: -webkit-grabbing; + cursor: -moz-grabbing; + cursor: -o-grabbing; + cursor: -ms-grabbing; + cursor: grabbing; +} +.lg-outer .lg { + height: 100%; + width: 100%; + position: relative; + overflow: hidden; + margin-left: auto; + margin-right: auto; + max-width: 100%; + max-height: 100%; +} +.lg-outer .lg-inner { + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; + white-space: nowrap; +} +.lg-outer .lg-item { + background: url(../img/loading.gif) no-repeat scroll center center transparent; +} +.lg-outer .lg-item, .lg-outer .lg-img-wrap { + display: inline-block; + text-align: center; + position: absolute; + width: 100%; + height: 100%; +} +.lg-outer .lg-item:before, .lg-outer .lg-img-wrap:before { + content: ""; + display: inline-block; + height: 50%; + width: 1px; + margin-right: -5px; +} +.lg-outer .lg-img-wrap { + top: 0; + bottom: 0; + left: 0; + right: 0; + padding: 0 5px; +} +.lg-outer .lg-item.lg-complete { + background-image: none; +} +.lg-outer .lg-item.lg-current { + z-index: 1060; +} +.lg-outer .lg-image { + display: inline-block; + vertical-align: middle; + max-width: 100%; + max-height: 100%; + width: auto !important; + height: auto !important; +} +.lg-outer.lg-show-after-load .lg-item .lg-object, .lg-outer.lg-show-after-load .lg-item .lg-video-play { + opacity: 0; + -webkit-transition: opacity 0.15s ease 0s; + -o-transition: opacity 0.15s ease 0s; + transition: opacity 0.15s ease 0s; +} +.lg-outer.lg-show-after-load .lg-item.lg-complete .lg-object, .lg-outer.lg-show-after-load .lg-item.lg-complete .lg-video-play { + opacity: 1; +} +.lg-outer .lg-empty-html { + display: none; +} + +.lg-backdrop { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 1040; + background-color: #000; + opacity: 0; + -webkit-transition: opacity 0.15s ease 0s; + -o-transition: opacity 0.15s ease 0s; + transition: opacity 0.15s ease 0s; +} +.lg-backdrop.in { + opacity: 1; +} + +.lg-css3.lg-no-trans .lg-prev-slide, .lg-css3.lg-no-trans .lg-next-slide, .lg-css3.lg-no-trans .lg-current { + -webkit-transition: none 0s ease 0s !important; + -moz-transition: none 0s ease 0s !important; + -o-transition: none 0s ease 0s !important; + transition: none 0s ease 0s !important; +} +.lg-css3.lg-use-css3 .lg-item { + will-change: transform, opacity; +} +.lg-css3.lg-use-left .lg-item { + will-change: left, opacity; +} +.lg-css3.lg-fade .lg-item { + opacity: 0; +} +.lg-css3.lg-fade .lg-item.lg-current { + opacity: 1; +} +.lg-css3.lg-fade .lg-item.lg-prev-slide, .lg-css3.lg-fade .lg-item.lg-next-slide, .lg-css3.lg-fade .lg-item.lg-current { + -webkit-transition: opacity 0.1s ease 0s; + -moz-transition: opacity 0.1s ease 0s; + -o-transition: opacity 0.1s ease 0s; + transition: opacity 0.1s ease 0s; +} +.lg-css3.lg-slide.lg-use-css3 .lg-item { + opacity: 0; +} +.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); +} +.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); +} +.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; +} +.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide, .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide, .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current { + -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; +} +.lg-css3.lg-slide.lg-use-left .lg-item { + opacity: 0; + position: absolute; + left: 0; +} +.lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide { + left: -100%; +} +.lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide { + left: 100%; +} +.lg-css3.lg-slide.lg-use-left .lg-item.lg-current { + left: 0; + opacity: 1; +} +.lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide, .lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide, .lg-css3.lg-slide.lg-use-left .lg-item.lg-current { + -webkit-transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -moz-transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + -o-transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; + transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s; +} + +/*# sourceMappingURL=lightgallery.css.map */ diff --git a/vendors/lightGallery/dist/css/lightgallery.min.css b/vendors/lightGallery/dist/css/lightgallery.min.css new file mode 100644 index 000000000..75d312d95 --- /dev/null +++ b/vendors/lightGallery/dist/css/lightgallery.min.css @@ -0,0 +1 @@ +.lg-actions .lg-next,.lg-actions .lg-prev,.lg-sub-html,.lg-toolbar{background-color:rgba(0,0,0,.45);z-index:1080}#lg-counter,.lg-outer .lg-video-cont{vertical-align:middle;display:inline-block}@font-face{font-family:lg;src:url(../fonts/lg.eot?n1z373);src:url(../fonts/lg.eot?#iefixn1z373) format("embedded-opentype"),url(../fonts/lg.woff?n1z373) format("woff"),url(../fonts/lg.ttf?n1z373) format("truetype"),url(../fonts/lg.svg?n1z373#lg) format("svg");font-weight:400;font-style:normal}.lg-icon{font-family:lg;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lg-actions .lg-next,.lg-actions .lg-prev{border-radius:2px;color:#999;cursor:pointer;display:block;font-size:22px;margin-top:-10px;padding:8px 10px 9px;position:absolute;top:50%}.lg-actions .lg-next.disabled,.lg-actions .lg-prev.disabled{pointer-events:none;opacity:.5}.lg-actions .lg-next:hover,.lg-actions .lg-prev:hover{color:#FFF}.lg-actions .lg-next{right:20px}.lg-actions .lg-next:before{content:"\e095"}.lg-actions .lg-prev{left:20px}.lg-actions .lg-prev:after{content:"\e094"}@-webkit-keyframes lg-right-end{0%,100%{left:0}50%{left:-30px}}@-moz-keyframes lg-right-end{0%,100%{left:0}50%{left:-30px}}@-ms-keyframes lg-right-end{0%,100%{left:0}50%{left:-30px}}@keyframes lg-right-end{0%,100%{left:0}50%{left:-30px}}@-webkit-keyframes lg-left-end{0%,100%{left:0}50%{left:30px}}@-moz-keyframes lg-left-end{0%,100%{left:0}50%{left:30px}}@-ms-keyframes lg-left-end{0%,100%{left:0}50%{left:30px}}@keyframes lg-left-end{0%,100%{left:0}50%{left:30px}}.lg-outer.lg-right-end .lg-object{-webkit-animation:lg-right-end .3s;-o-animation:lg-right-end .3s;animation:lg-right-end .3s;position:relative}.lg-outer.lg-left-end .lg-object{-webkit-animation:lg-left-end .3s;-o-animation:lg-left-end .3s;animation:lg-left-end .3s;position:relative}.lg-toolbar{left:0;position:absolute;top:0;width:100%}.lg-toolbar .lg-icon{color:#999;cursor:pointer;float:right;font-size:24px;height:47px;line-height:27px;padding:10px 0;text-align:center;width:50px;text-decoration:none!important;outline:0}.lg-toolbar .lg-icon:hover{color:#FFF}.lg-toolbar .lg-close:after{content:"\e070"}.lg-toolbar .lg-download:after{content:"\e0f2"}.lg-sub-html{bottom:0;color:#EEE;font-size:16px;left:0;padding:10px 40px;position:fixed;right:0;text-align:center}.lg-sub-html h4{margin:0;font-size:13px;font-weight:700}.lg-sub-html p{font-size:12px;margin:5px 0 0}#lg-counter{color:#999;font-size:16px;padding-left:20px;padding-top:12px}.lg-next,.lg-prev,.lg-toolbar{opacity:1;-webkit-transition:-webkit-transform .35s cubic-bezier(0,0,.25,1) 0s,opacity .35s cubic-bezier(0,0,.25,1) 0s;-moz-transition:-moz-transform .35s cubic-bezier(0,0,.25,1) 0s,opacity .35s cubic-bezier(0,0,.25,1) 0s;-o-transition:-o-transform .35s cubic-bezier(0,0,.25,1) 0s,opacity .35s cubic-bezier(0,0,.25,1) 0s;transition:transform .35s cubic-bezier(0,0,.25,1) 0s,opacity .35s cubic-bezier(0,0,.25,1) 0s}.lg-hide-items .lg-prev{opacity:0;-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}.lg-hide-items .lg-next{opacity:0;-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}.lg-hide-items .lg-toolbar{opacity:0;-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-object{-webkit-transform:scale3d(.5,.5,.5);transform:scale3d(.5,.5,.5);opacity:0;-webkit-transition:-webkit-transform 250ms ease 0s,opacity 250ms!important;-moz-transition:-moz-transform 250ms ease 0s,opacity 250ms!important;-o-transition:-o-transform 250ms ease 0s,opacity 250ms!important;transition:transform 250ms ease 0s,opacity 250ms!important;-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-item.lg-complete .lg-object{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);opacity:1}.lg-outer .lg-thumb-outer{background-color:#0D0A0A;bottom:0;position:absolute;width:100%;z-index:1080;max-height:350px;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1) 0s;-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1) 0s;-o-transition:-o-transform .25s cubic-bezier(0,0,.25,1) 0s;transition:transform .25s cubic-bezier(0,0,.25,1) 0s}.lg-outer .lg-thumb-outer.lg-grab .lg-thumb-item{cursor:-webkit-grab;cursor:-moz-grab;cursor:-o-grab;cursor:-ms-grab;cursor:grab}.lg-outer .lg-thumb-outer.lg-grabbing .lg-thumb-item{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:-o-grabbing;cursor:-ms-grabbing;cursor:grabbing}.lg-outer .lg-thumb-outer.lg-dragging .lg-thumb{-webkit-transition-duration:0s!important;transition-duration:0s!important}.lg-outer.lg-thumb-open .lg-thumb-outer{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.lg-outer .lg-thumb{padding:10px 0;height:100%;margin-bottom:-5px}.lg-outer .lg-thumb-item{cursor:pointer;float:left;overflow:hidden;height:100%;border:2px solid #FFF;border-radius:4px;margin-bottom:5px}@media (min-width:1025px){.lg-outer .lg-thumb-item{-webkit-transition:border-color .25s ease;-o-transition:border-color .25s ease;transition:border-color .25s ease}}.lg-outer .lg-thumb-item.active,.lg-outer .lg-thumb-item:hover{border-color:#a90707}.lg-outer .lg-thumb-item img{width:100%;height:100%}.lg-outer.lg-has-thumb .lg-item{padding-bottom:120px}.lg-outer.lg-can-toggle .lg-item{padding-bottom:0}.lg-outer .lg-toogle-thumb{background-color:#0D0A0A;border-radius:2px 2px 0 0;color:#999;cursor:pointer;font-size:24px;height:39px;line-height:27px;padding:5px 0;position:absolute;right:20px;text-align:center;top:-39px;width:50px}.lg-outer .lg-toogle-thumb:after{content:"\e1ff"}.lg-outer .lg-toogle-thumb:hover{color:#FFF}.lg-outer .lg-video-cont{max-width:1140px;max-height:100%;width:100%;padding:0 5px}.lg-outer .lg-video{width:100%;height:0;padding-bottom:56.25%;overflow:hidden;position:relative}.lg-outer .lg-video .lg-object{display:inline-block;position:absolute;top:0;left:0;width:100%!important;height:100%!important}.lg-outer .lg-video .lg-video-play{width:84px;height:59px;position:absolute;left:50%;top:50%;margin-left:-42px;margin-top:-30px;z-index:1080;cursor:pointer}.lg-outer .lg-has-vimeo .lg-video-play{background:url(../img/vimeo-play.png) no-repeat}.lg-outer .lg-has-vimeo:hover .lg-video-play{background:url(../img/vimeo-play.png) 0 -58px no-repeat}.lg-outer .lg-has-html5 .lg-video-play{background:url(../img/video-play.png) no-repeat;height:64px;margin-left:-32px;margin-top:-32px;width:64px;opacity:.8}.lg-outer .lg-has-html5:hover .lg-video-play{opacity:1}.lg-outer .lg-has-youtube .lg-video-play{background:url(../img/youtube-play.png) no-repeat}.lg-outer .lg-has-youtube:hover .lg-video-play{background:url(../img/youtube-play.png) 0 -60px no-repeat}.lg-outer .lg-video-object{width:100%!important;height:100%!important;position:absolute;top:0;left:0}.lg-outer .lg-has-video .lg-video-object{visibility:hidden}.lg-outer .lg-has-video.lg-video-palying .lg-object,.lg-outer .lg-has-video.lg-video-palying .lg-video-play{display:none}.lg-outer .lg-has-video.lg-video-palying .lg-video-object{visibility:visible}.lg-progress-bar{background-color:#333;height:5px;left:0;position:absolute;top:0;width:100%;z-index:1080;opacity:0;-webkit-transition:opacity .08s ease 0s;-moz-transition:opacity .08s ease 0s;-o-transition:opacity .08s ease 0s;transition:opacity .08s ease 0s}.lg-progress-bar .lg-progress{background-color:#a90707;height:5px;width:0}.lg-progress-bar.lg-start .lg-progress{width:100%}.lg-show-autoplay .lg-progress-bar{opacity:1}.lg-autoplay-button:after{content:"\e01d"}.lg-show-autoplay .lg-autoplay-button:after{content:"\e01a"}.lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-image,.lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-img-wrap{-webkit-transition-duration:0s;transition-duration:0s}.lg-outer .lg-item.lg-complete.lg-zoomable .lg-img-wrap{-webkit-transition:-webkit-transform .3s ease 0s;-moz-transition:-moz-transform .3s ease 0s;-o-transition:-o-transform .3s ease 0s;transition:transform .3s ease 0s;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.lg-outer .lg-item.lg-complete.lg-zoomable .lg-image{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);-webkit-transition:-webkit-transform .3s ease 0s,opacity .15s!important;-moz-transition:-moz-transform .3s ease 0s,opacity .15s!important;-o-transition:-o-transform .3s ease 0s,opacity .15s!important;transition:transform .3s ease 0s,opacity .15s!important;-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}#lg-zoom-in:after{content:"\e311"}#lg-zoom-out{opacity:.5;pointer-events:none}#lg-zoom-out:after{content:"\e312"}.lg-zoomed #lg-zoom-out{opacity:1;pointer-events:auto}.lg-outer .lg-pager-outer{bottom:60px;left:0;position:absolute;right:0;text-align:center;z-index:1080;height:10px}.lg-outer .lg-pager-outer.lg-pager-hover .lg-pager-cont{overflow:visible}.lg-outer .lg-pager-cont{cursor:pointer;display:inline-block;overflow:hidden;position:relative;vertical-align:top;margin:0 5px}.lg-outer .lg-pager-cont:hover .lg-pager-thumb-cont{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.lg-outer .lg-pager-cont.lg-pager-active .lg-pager{box-shadow:0 0 0 2px #fff inset}.lg-outer .lg-pager-thumb-cont{background-color:#fff;color:#FFF;bottom:100%;height:83px;left:0;margin-bottom:20px;margin-left:-60px;opacity:0;padding:5px;position:absolute;width:120px;border-radius:3px;-webkit-transition:opacity .15s ease 0s,-webkit-transform .15s ease 0s;-moz-transition:opacity .15s ease 0s,-moz-transform .15s ease 0s;-o-transition:opacity .15s ease 0s,-o-transform .15s ease 0s;transition:opacity .15s ease 0s,transform .15s ease 0s;-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}.lg-outer .lg-pager-thumb-cont img{width:100%;height:100%}.lg-outer .lg-pager{background-color:rgba(255,255,255,.5);border-radius:50%;box-shadow:0 0 0 8px rgba(255,255,255,.7) inset;display:block;height:12px;-webkit-transition:box-shadow .3s ease 0s;-o-transition:box-shadow .3s ease 0s;transition:box-shadow .3s ease 0s;width:12px}.lg-outer .lg-pager:focus,.lg-outer .lg-pager:hover{box-shadow:0 0 0 8px #fff inset}.lg-outer .lg-caret{border-left:10px solid transparent;border-right:10px solid transparent;border-top:10px dashed;bottom:-10px;display:inline-block;height:0;left:50%;margin-left:-5px;position:absolute;vertical-align:middle;width:0}.lg-outer,.lg-outer .lg,.lg-outer .lg-inner{width:100%;height:100%}.lg-fullscreen:after{content:"\e20c"}.lg-fullscreen-on .lg-fullscreen:after{content:"\e20d"}.group:after,.group:before{display:table;content:"";line-height:0}.group:after{clear:both}.lg-outer{position:fixed;top:0;left:0;z-index:1050;opacity:0;-webkit-transition:opacity .15s ease 0s;-o-transition:opacity .15s ease 0s;transition:opacity .15s ease 0s}.lg-outer *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.lg-outer.lg-visible{opacity:1}.lg-outer.lg-css3 .lg-item.lg-current,.lg-outer.lg-css3 .lg-item.lg-next-slide,.lg-outer.lg-css3 .lg-item.lg-prev-slide{-webkit-transition-duration:inherit!important;transition-duration:inherit!important;-webkit-transition-timing-function:inherit!important;transition-timing-function:inherit!important}.lg-outer.lg-css3.lg-dragging .lg-item.lg-current,.lg-outer.lg-css3.lg-dragging .lg-item.lg-next-slide,.lg-outer.lg-css3.lg-dragging .lg-item.lg-prev-slide{-webkit-transition-duration:0s!important;transition-duration:0s!important;opacity:1}.lg-outer.lg-grab img.lg-object{cursor:-webkit-grab;cursor:-moz-grab;cursor:-o-grab;cursor:-ms-grab;cursor:grab}.lg-outer.lg-grabbing img.lg-object{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:-o-grabbing;cursor:-ms-grabbing;cursor:grabbing}.lg-outer .lg{position:relative;overflow:hidden;margin-left:auto;margin-right:auto;max-width:100%;max-height:100%}.lg-outer .lg-inner{position:absolute;left:0;top:0;white-space:nowrap}.lg-outer .lg-item{background:url(../img/loading.gif) center center no-repeat}.lg-outer .lg-img-wrap,.lg-outer .lg-item{display:inline-block;text-align:center;position:absolute;width:100%;height:100%}.lg-outer .lg-img-wrap:before,.lg-outer .lg-item:before{content:"";display:inline-block;height:50%;width:1px;margin-right:-5px}.lg-outer .lg-img-wrap{top:0;bottom:0;left:0;right:0;padding:0 5px}.lg-outer .lg-item.lg-complete{background-image:none}.lg-outer .lg-item.lg-current{z-index:1060}.lg-outer .lg-image{display:inline-block;vertical-align:middle;max-width:100%;max-height:100%;width:auto!important;height:auto!important}.lg-outer.lg-show-after-load .lg-item .lg-object,.lg-outer.lg-show-after-load .lg-item .lg-video-play{opacity:0;-webkit-transition:opacity .15s ease 0s;-o-transition:opacity .15s ease 0s;transition:opacity .15s ease 0s}.lg-outer.lg-show-after-load .lg-item.lg-complete .lg-object,.lg-outer.lg-show-after-load .lg-item.lg-complete .lg-video-play{opacity:1}.lg-outer .lg-empty-html{display:none}.lg-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1040;background-color:#000;opacity:0;-webkit-transition:opacity .15s ease 0s;-o-transition:opacity .15s ease 0s;transition:opacity .15s ease 0s}.lg-backdrop.in{opacity:1}.lg-css3.lg-no-trans .lg-current,.lg-css3.lg-no-trans .lg-next-slide,.lg-css3.lg-no-trans .lg-prev-slide{-webkit-transition:none 0s ease 0s!important;-moz-transition:none 0s ease 0s!important;-o-transition:none 0s ease 0s!important;transition:none 0s ease 0s!important}.lg-css3.lg-use-css3 .lg-item{will-change:transform,opacity}.lg-css3.lg-use-left .lg-item{will-change:left,opacity}.lg-css3.lg-fade .lg-item{opacity:0}.lg-css3.lg-fade .lg-item.lg-current{opacity:1}.lg-css3.lg-fade .lg-item.lg-current,.lg-css3.lg-fade .lg-item.lg-next-slide,.lg-css3.lg-fade .lg-item.lg-prev-slide{-webkit-transition:opacity .1s ease 0s;-moz-transition:opacity .1s ease 0s;-o-transition:opacity .1s ease 0s;transition:opacity .1s ease 0s}.lg-css3.lg-slide.lg-use-css3 .lg-item{opacity:0}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current,.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide,.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s}.lg-css3.lg-slide.lg-use-left .lg-item{opacity:0;position:absolute;left:0}.lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide{left:-100%}.lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide{left:100%}.lg-css3.lg-slide.lg-use-left .lg-item.lg-current{left:0;opacity:1}.lg-css3.lg-slide.lg-use-left .lg-item.lg-current,.lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide,.lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide{-webkit-transition:left 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:left 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:left 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:left 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s} \ No newline at end of file diff --git a/vendors/lightGallery/dist/fonts/lg.eot b/vendors/lightGallery/dist/fonts/lg.eot new file mode 100644 index 000000000..5967563a0 Binary files /dev/null and b/vendors/lightGallery/dist/fonts/lg.eot differ diff --git a/vendors/lightGallery/dist/fonts/lg.svg b/vendors/lightGallery/dist/fonts/lg.svg new file mode 100644 index 000000000..f7c471498 --- /dev/null +++ b/vendors/lightGallery/dist/fonts/lg.svg @@ -0,0 +1,41 @@ + + + + + + +{ + "fontFamily": "lg", + "majorVersion": 1, + "minorVersion": 0, + "fontURL": "https://github.com/sachinchoolur/lightGallery", + "copyright": "sachin", + "license": "MLT", + "licenseURL": "http://opensource.org/licenses/MIT", + "version": "Version 1.0", + "fontId": "lg", + "psName": "lg", + "subFamily": "Regular", + "fullName": "lg", + "description": "Font generated by IcoMoon." +} + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vendors/lightGallery/dist/fonts/lg.ttf b/vendors/lightGallery/dist/fonts/lg.ttf new file mode 100644 index 000000000..c28a50948 Binary files /dev/null and b/vendors/lightGallery/dist/fonts/lg.ttf differ diff --git a/vendors/lightGallery/dist/fonts/lg.woff b/vendors/lightGallery/dist/fonts/lg.woff new file mode 100644 index 000000000..c0599a54a Binary files /dev/null and b/vendors/lightGallery/dist/fonts/lg.woff differ diff --git a/vendors/lightGallery/dist/img/loading.gif b/vendors/lightGallery/dist/img/loading.gif new file mode 100644 index 000000000..4744c4556 Binary files /dev/null and b/vendors/lightGallery/dist/img/loading.gif differ diff --git a/vendors/lightGallery/dist/img/video-play.png b/vendors/lightGallery/dist/img/video-play.png new file mode 100644 index 000000000..197672353 Binary files /dev/null and b/vendors/lightGallery/dist/img/video-play.png differ diff --git a/vendors/lightGallery/dist/img/vimeo-play.png b/vendors/lightGallery/dist/img/vimeo-play.png new file mode 100644 index 000000000..b244856fb Binary files /dev/null and b/vendors/lightGallery/dist/img/vimeo-play.png differ diff --git a/vendors/lightGallery/dist/img/youtube-play.png b/vendors/lightGallery/dist/img/youtube-play.png new file mode 100644 index 000000000..580d94936 Binary files /dev/null and b/vendors/lightGallery/dist/img/youtube-play.png differ diff --git a/vendors/lightGallery/dist/js/lg-autoplay.js b/vendors/lightGallery/dist/js/lg-autoplay.js new file mode 100644 index 000000000..2cce58d90 --- /dev/null +++ b/vendors/lightGallery/dist/js/lg-autoplay.js @@ -0,0 +1,191 @@ +/*! lightgallery - v1.2.0 - 2015-08-26 +* http://sachinchoolur.github.io/lightGallery/ +* Copyright (c) 2015 Sachin N; Licensed Apache 2.0 */ +/** + * Autoplay Plugin + * @version 1.2.0 + * @author Sachin N - @sachinchoolur + * @license MIT License (MIT) + */ + +(function($, window, document, undefined) { + + 'use strict'; + + var defaults = { + autoplay: false, + pause: 5000, + progressBar: true, + fourceAutoplay: false, + autoplayControls: true, + appendAutoplayControlsTo: '.lg-toolbar' + }; + + /** + * Creates the autoplay plugin. + * @param {object} element - lightGallery element + */ + var Autoplay = function(element) { + + this.core = $(element).data('lightGallery'); + + this.$el = $(element); + + // Exicute only if items are above 1 + if (this.core.$items.length < 2) { + return false; + } + + this.core.s = $.extend({}, defaults, this.core.s); + this.interval = false; + + // Identify if slide happened from autoplay + this.fromAuto = true; + + // Identify if autoplay canceled from touch/drag + this.canceledOnTouch = false; + + // save fourceautoplay value + this.fourceAutoplayTemp = this.core.s.fourceAutoplay; + + // do not allow progress bar if browser does not support css3 transitions + if (!this.core.doCss()) { + this.core.s.progressBar = false; + } + + this.init(); + + return this; + }; + + Autoplay.prototype.init = function() { + var _this = this; + + // append autoplay controls + if (_this.core.s.autoplayControls) { + _this.controls(); + } + + // Create progress bar + if (_this.core.s.progressBar) { + _this.core.$outer.find('.lg').append('
'); + } + + // set progress + _this.progress(); + + // Start autoplay + if (_this.core.s.autoplay) { + _this.startlAuto(); + } + + // cancel interval on touchstart and dragstart + _this.$el.on('onDragstart.lg.tm touchstart.lg.tm', function() { + if (_this.interval) { + _this.cancelAuto(); + _this.canceledOnTouch = true; + } + }); + + // restore autoplay if autoplay canceled from touchstart / dragstart + _this.$el.on('onDragend.lg.tm touchend.lg.tm onSlideClick.lg.tm', function() { + if (!_this.interval && _this.canceledOnTouch) { + _this.startlAuto(); + _this.canceledOnTouch = false; + } + }); + + }; + + Autoplay.prototype.progress = function() { + + var _this = this; + var _$progressBar; + var _$progress; + + _this.$el.on('onBeforeSlide.lg.tm', function() { + + // start progress bar animation + if (_this.core.s.progressBar && _this.fromAuto) { + _$progressBar = _this.core.$outer.find('.lg-progress-bar'); + _$progress = _this.core.$outer.find('.lg-progress'); + if (_this.interval) { + _$progress.removeAttr('style'); + _$progressBar.removeClass('lg-start'); + setTimeout(function() { + _$progress.css('transition', 'width ' + (_this.core.s.speed + _this.core.s.pause) + 'ms ease 0s'); + _$progressBar.addClass('lg-start'); + }, 20); + } + } + + // Remove setinterval if slide is trigered manualy and fourceautoplay is false + if (!_this.fromAuto && !_this.core.s.fourceAutoplay) { + _this.cancelAuto(); + } + + _this.fromAuto = false; + + }); + }; + + // Manage autoplay via play/stop buttons + Autoplay.prototype.controls = function() { + var _this = this; + var _html = ''; + + // Append autoplay controls + $(this.core.s.appendAutoplayControlsTo).append(_html); + + _this.core.$outer.find('.lg-autoplay-button').on('click.lg', function() { + if ($(_this.core.$outer).hasClass('lg-show-autoplay')) { + _this.cancelAuto(); + _this.core.s.fourceAutoplay = false; + } else { + if (!_this.interval) { + _this.startlAuto(); + _this.core.s.fourceAutoplay = _this.fourceAutoplayTemp; + } + } + }); + }; + + // Autostart gallery + Autoplay.prototype.startlAuto = function() { + var _this = this; + + _this.core.$outer.find('.lg-progress').css('transition', 'width ' + (_this.core.s.speed + _this.core.s.pause) + 'ms ease 0s'); + _this.core.$outer.addClass('lg-show-autoplay'); + _this.core.$outer.find('.lg-progress-bar').addClass('lg-start'); + + _this.interval = setInterval(function() { + if (_this.core.index + 1 < _this.core.$items.length) { + _this.core.index = _this.core.index; + } else { + _this.core.index = -1; + } + + _this.core.index++; + _this.fromAuto = true; + _this.core.slide(_this.core.index, false, false); + }, _this.core.s.speed + _this.core.s.pause); + }; + + // cancel Autostart + Autoplay.prototype.cancelAuto = function() { + clearInterval(this.interval); + this.interval = false; + this.core.$outer.find('.lg-progress').removeAttr('style'); + this.core.$outer.removeClass('lg-show-autoplay'); + this.core.$outer.find('.lg-progress-bar').removeClass('lg-start'); + }; + + Autoplay.prototype.destroy = function() { + + this.cancelAuto(); + this.core.$outer.find('.lg-progress-bar').remove(); + }; + + $.fn.lightGallery.modules.autoplay = Autoplay; + +})(jQuery, window, document); diff --git a/vendors/lightGallery/dist/js/lg-autoplay.min.js b/vendors/lightGallery/dist/js/lg-autoplay.min.js new file mode 100644 index 000000000..50045b26c --- /dev/null +++ b/vendors/lightGallery/dist/js/lg-autoplay.min.js @@ -0,0 +1,4 @@ +/*! lightgallery - v1.2.0 - 2015-08-26 +* http://sachinchoolur.github.io/lightGallery/ +* Copyright (c) 2015 Sachin N; Licensed Apache 2.0 */ +!function(a,b,c,d){"use strict";var e={autoplay:!1,pause:5e3,progressBar:!0,fourceAutoplay:!1,autoplayControls:!0,appendAutoplayControlsTo:".lg-toolbar"},f=function(b){return this.core=a(b).data("lightGallery"),this.$el=a(b),this.core.$items.length<2?!1:(this.core.s=a.extend({},e,this.core.s),this.interval=!1,this.fromAuto=!0,this.canceledOnTouch=!1,this.fourceAutoplayTemp=this.core.s.fourceAutoplay,this.core.doCss()||(this.core.s.progressBar=!1),this.init(),this)};f.prototype.init=function(){var a=this;a.core.s.autoplayControls&&a.controls(),a.core.s.progressBar&&a.core.$outer.find(".lg").append('
'),a.progress(),a.core.s.autoplay&&a.startlAuto(),a.$el.on("onDragstart.lg.tm touchstart.lg.tm",function(){a.interval&&(a.cancelAuto(),a.canceledOnTouch=!0)}),a.$el.on("onDragend.lg.tm touchend.lg.tm onSlideClick.lg.tm",function(){!a.interval&&a.canceledOnTouch&&(a.startlAuto(),a.canceledOnTouch=!1)})},f.prototype.progress=function(){var a,b,c=this;c.$el.on("onBeforeSlide.lg.tm",function(){c.core.s.progressBar&&c.fromAuto&&(a=c.core.$outer.find(".lg-progress-bar"),b=c.core.$outer.find(".lg-progress"),c.interval&&(b.removeAttr("style"),a.removeClass("lg-start"),setTimeout(function(){b.css("transition","width "+(c.core.s.speed+c.core.s.pause)+"ms ease 0s"),a.addClass("lg-start")},20))),c.fromAuto||c.core.s.fourceAutoplay||c.cancelAuto(),c.fromAuto=!1})},f.prototype.controls=function(){var b=this,c='';a(this.core.s.appendAutoplayControlsTo).append(c),b.core.$outer.find(".lg-autoplay-button").on("click.lg",function(){a(b.core.$outer).hasClass("lg-show-autoplay")?(b.cancelAuto(),b.core.s.fourceAutoplay=!1):b.interval||(b.startlAuto(),b.core.s.fourceAutoplay=b.fourceAutoplayTemp)})},f.prototype.startlAuto=function(){var a=this;a.core.$outer.find(".lg-progress").css("transition","width "+(a.core.s.speed+a.core.s.pause)+"ms ease 0s"),a.core.$outer.addClass("lg-show-autoplay"),a.core.$outer.find(".lg-progress-bar").addClass("lg-start"),a.interval=setInterval(function(){a.core.index+1-1?d.core.slide(a):d.core.lGalleryOn&&d.core.destroy()})},f.prototype.destroy=function(){this.oldHash&&this.oldHash.indexOf("lg="+this.core.s.galleryId)<0?b.location.hash=this.oldHash:history.pushState?history.pushState("",c.title,b.location.pathname+b.location.search):b.location.hash=""},a.fn.lightGallery.modules.hash=f}(jQuery,window,document); \ No newline at end of file diff --git a/vendors/lightGallery/dist/js/lg-pager.js b/vendors/lightGallery/dist/js/lg-pager.js new file mode 100644 index 000000000..a20c66954 --- /dev/null +++ b/vendors/lightGallery/dist/js/lg-pager.js @@ -0,0 +1,85 @@ +/*! lightgallery - v1.2.0 - 2015-08-26 +* http://sachinchoolur.github.io/lightGallery/ +* Copyright (c) 2015 Sachin N; Licensed Apache 2.0 */ +(function($, window, document, undefined) { + + 'use strict'; + + var defaults = { + pager: false + }; + + var Pager = function(element) { + + this.core = $(element).data('lightGallery'); + + this.$el = $(element); + this.core.s = $.extend({}, defaults, this.core.s); + if (this.core.s.pager && this.core.$items.length > 1) { + this.init(); + } + + return this; + }; + + Pager.prototype.init = function() { + var _this = this; + var pagerList = ''; + var $pagerCont; + var $pagerOuter; + var timeout; + + _this.core.$outer.find('.lg').append('
'); + + if (_this.core.s.dynamic) { + for (var i = 0; i < _this.core.s.dynamicEl.length; i++) { + pagerList += '
'; + } + } else { + _this.core.$items.each(function() { + + if (!_this.core.s.exThumbImage) { + pagerList += '
'; + } else { + pagerList += '
'; + } + + }); + } + + $pagerOuter = _this.core.$outer.find('.lg-pager-outer'); + + $pagerOuter.html(pagerList); + + $pagerCont = _this.core.$outer.find('.lg-pager-cont'); + $pagerCont.on('click.lg touchend.lg', function() { + var _$this = $(this); + _this.core.index = _$this.index(); + _this.core.slide(_this.core.index, false, false); + }); + + $pagerOuter.on('mouseover.lg', function() { + clearTimeout(timeout); + $pagerOuter.addClass('lg-pager-hover'); + }); + + $pagerOuter.on('mouseout.lg', function() { + timeout = setTimeout(function() { + $pagerOuter.removeClass('lg-pager-hover'); + }); + }); + + _this.core.$el.on('onBeforeSlide.lg.tm', function(e, prevIndex, index) { + $pagerCont.removeClass('lg-pager-active'); + $pagerCont.eq(index).addClass('lg-pager-active'); + }); + + }; + + Pager.prototype.destroy = function() { + + }; + + $.fn.lightGallery.modules.pager = Pager; + +})(jQuery, window, document); diff --git a/vendors/lightGallery/dist/js/lg-pager.min.js b/vendors/lightGallery/dist/js/lg-pager.min.js new file mode 100644 index 000000000..a00695325 --- /dev/null +++ b/vendors/lightGallery/dist/js/lg-pager.min.js @@ -0,0 +1,4 @@ +/*! lightgallery - v1.2.0 - 2015-08-26 +* http://sachinchoolur.github.io/lightGallery/ +* Copyright (c) 2015 Sachin N; Licensed Apache 2.0 */ +!function(a,b,c,d){"use strict";var e={pager:!1},f=function(b){return this.core=a(b).data("lightGallery"),this.$el=a(b),this.core.s=a.extend({},e,this.core.s),this.core.s.pager&&this.core.$items.length>1&&this.init(),this};f.prototype.init=function(){var b,c,d,e=this,f="";if(e.core.$outer.find(".lg").append('
'),e.core.s.dynamic)for(var g=0;g
';else e.core.$items.each(function(){f+=e.core.s.exThumbImage?'
':'
'});c=e.core.$outer.find(".lg-pager-outer"),c.html(f),b=e.core.$outer.find(".lg-pager-cont"),b.on("click.lg touchend.lg",function(){var b=a(this);e.core.index=b.index(),e.core.slide(e.core.index,!1,!1)}),c.on("mouseover.lg",function(){clearTimeout(d),c.addClass("lg-pager-hover")}),c.on("mouseout.lg",function(){d=setTimeout(function(){c.removeClass("lg-pager-hover")})}),e.core.$el.on("onBeforeSlide.lg.tm",function(a,c,d){b.removeClass("lg-pager-active"),b.eq(d).addClass("lg-pager-active")})},f.prototype.destroy=function(){},a.fn.lightGallery.modules.pager=f}(jQuery,window,document); \ No newline at end of file diff --git a/vendors/lightGallery/dist/js/lg-thumbnail.js b/vendors/lightGallery/dist/js/lg-thumbnail.js new file mode 100644 index 000000000..7dd8679c2 --- /dev/null +++ b/vendors/lightGallery/dist/js/lg-thumbnail.js @@ -0,0 +1,438 @@ +/*! lightgallery - v1.2.0 - 2015-08-26 +* http://sachinchoolur.github.io/lightGallery/ +* Copyright (c) 2015 Sachin N; Licensed Apache 2.0 */ +(function($, window, document, undefined) { + + 'use strict'; + + var defaults = { + thumbnail: true, + + animateThumb: true, + currentPagerPosition: 'middle', + + thumbWidth: 100, + thumbContHeight: 100, + thumbMargin: 5, + + exThumbImage: false, + showThumbByDefault: true, + toogleThumb: true, + + enableThumbDrag: true, + enableThumbSwipe: true, + swipeThreshold: 50, + + loadYoutubeThumbnail: true, + youtubeThumbSize: 1, + + loadVimeoThumbnail: true, + vimeoThumbSize: 'thumbnail_small' + }; + + var Thumbnail = function(element) { + + // get lightGallery core plugin data + this.core = $(element).data('lightGallery'); + + // extend module default settings with lightGallery core settings + this.core.s = $.extend({}, defaults, this.core.s); + + this.$el = $(element); + this.$thumbOuter = null; + this.thumbOuterWidth = 0; + this.thumbTotalWidth = (this.core.$items.length * (this.core.s.thumbWidth + this.core.s.thumbMargin)); + this.thumbIndex = this.core.index; + + // Thumbnail animation value + this.left = 0; + + this.init(); + + return this; + }; + + Thumbnail.prototype.init = function() { + if (this.core.s.thumbnail && this.core.$items.length > 1) { + if (this.core.s.showThumbByDefault) { + this.core.$outer.addClass('lg-thumb-open'); + } + + this.build(); + if (this.core.s.animateThumb) { + if (this.core.s.enableThumbDrag && !this.core.isTouch && this.core.doCss()) { + this.enableThumbDrag(); + } + + if (this.core.s.enableThumbSwipe && this.core.isTouch && this.core.doCss()) { + this.enableThumbSwipe(); + } + + this.thumbClickable = false; + } else { + this.thumbClickable = true; + } + + this.toogle(); + this.thumbkeyPress(); + } + }; + + Thumbnail.prototype.build = function() { + var _this = this; + var thumbList = ''; + var viemoErrorThumbSize = ''; + var $thumb; + var html = '
' + + '
' + + '
' + + '
'; + + switch (this.core.s.vimeoThumbSize) { + case 'thumbnail_large': + viemoErrorThumbSize = '640'; + break; + case 'thumbnail_medium': + viemoErrorThumbSize = '200x150'; + break; + case 'thumbnail_small': + viemoErrorThumbSize = '100x75'; + } + + _this.core.$outer.addClass('lg-has-thumb'); + + _this.core.$outer.find('.lg').append(html); + + _this.$thumbOuter = _this.core.$outer.find('.lg-thumb-outer'); + _this.thumbOuterWidth = _this.$thumbOuter.width(); + + if (_this.core.s.animateThumb) { + _this.core.$outer.find('.lg-thumb').css({ + width: _this.thumbTotalWidth + 'px', + position: 'relative' + }); + } + + if (this.core.s.animateThumb) { + _this.$thumbOuter.css('height', _this.core.s.thumbContHeight + 'px'); + } + + function getThumb(src, thumb, index) { + var isVideo = _this.core.isVideo(src, index) || {}; + var thumbImg; + var vimeoId = ''; + + if (isVideo.youtube || isVideo.vimeo) { + if (isVideo.youtube) { + if (_this.core.s.loadYoutubeThumbnail) { + thumbImg = 'http://img.youtube.com/vi/' + isVideo.youtube[1] + '/' + _this.core.s.youtubeThumbSize + '.jpg'; + } else { + thumbImg = thumb; + } + } else if (isVideo.vimeo) { + if (_this.core.s.loadVimeoThumbnail) { + thumbImg = 'https://i.vimeocdn.com/video/error_' + viemoErrorThumbSize + '.jpg'; + vimeoId = isVideo.vimeo[1]; + } else { + thumbImg = thumb; + } + } + } else { + thumbImg = thumb; + } + + thumbList += '
'; + vimeoId = ''; + } + + if (_this.core.s.dynamic) { + for (var i = 0; i < _this.core.s.dynamicEl.length; i++) { + getThumb(_this.core.s.dynamicEl[i].src, _this.core.s.dynamicEl[i].thumb, i); + } + } else { + _this.core.$items.each(function(i) { + + if (!_this.core.s.exThumbImage) { + getThumb($(this).attr('href') || $(this).attr('data-src'), $(this).find('img').attr('src'), i); + } else { + getThumb($(this).attr('href') || $(this).attr('data-src'), $(this).attr(_this.core.s.exThumbImage), i); + } + + }); + } + + _this.core.$outer.find('.lg-thumb').html(thumbList); + + $thumb = _this.core.$outer.find('.lg-thumb-item'); + + // Load vimeo thumbnails + $thumb.each(function() { + var $this = $(this); + var vimeoVideoId = $this.attr('data-vimoe-id'); + + if (vimeoVideoId) { + $.getJSON('http://www.vimeo.com/api/v2/video/' + vimeoVideoId + '.json?callback=?', { + format: 'json' + }, function(data) { + $this.find('img').attr('src', data[0][_this.core.s.vimeoThumbSize]); + }); + } + }); + + // manage active class for thumbnail + $thumb.eq(_this.core.index).addClass('active'); + _this.core.$el.on('onBeforeSlide.lg.tm', function() { + $thumb.removeClass('active'); + $thumb.eq(_this.core.index).addClass('active'); + }); + + $thumb.on('click.lg touchend.lg', function() { + var _$this = $(this); + setTimeout(function() { + + // In IE9 and bellow touch does not support + // Go to slide if browser does not support css transitions + if ((_this.thumbClickable && !_this.core.lgBusy) || !_this.core.doCss()) { + _this.core.index = _$this.index(); + _this.core.slide(_this.core.index, false, true); + } + }, 50); + }); + + _this.core.$el.on('onBeforeSlide.lg.tm', function() { + _this.animateThumb(_this.core.index); + }); + + $(window).on('resize.lg.thumb orientationchange.lg.thumb', function() { + setTimeout(function() { + _this.animateThumb(_this.core.index); + _this.thumbOuterWidth = _this.$thumbOuter.width(); + }, 200); + }); + + }; + + Thumbnail.prototype.setTranslate = function(value) { + // jQuery supports Automatic CSS prefixing since jQuery 1.8.0 + this.core.$outer.find('.lg-thumb').css({ + transform: 'translate3d(-' + (value) + 'px, 0px, 0px)' + }); + }; + + Thumbnail.prototype.animateThumb = function(index) { + var $thumb = this.core.$outer.find('.lg-thumb'); + if (this.core.s.animateThumb) { + var position; + switch (this.core.s.currentPagerPosition) { + case 'left': + position = 0; + break; + case 'middle': + position = (this.thumbOuterWidth / 2) - (this.core.s.thumbWidth / 2); + break; + case 'right': + position = this.thumbOuterWidth - this.core.s.thumbWidth; + } + this.left = ((this.core.s.thumbWidth + this.core.s.thumbMargin) * index - 1) - position; + if (this.left > (this.thumbTotalWidth - this.thumbOuterWidth)) { + this.left = this.thumbTotalWidth - this.thumbOuterWidth; + } + + if (this.left < 0) { + this.left = 0; + } + + if (this.core.lGalleryOn) { + if (!$thumb.hasClass('on')) { + this.core.$outer.find('.lg-thumb').css('transition-duration', this.core.s.speed + 'ms'); + } + + if (!this.core.doCss()) { + $thumb.animate({ + left: -this.left + 'px' + }, this.core.s.speed); + } + } else { + if (!this.core.doCss()) { + $thumb.css('left', -this.left + 'px'); + } + } + + this.setTranslate(this.left); + + } + }; + + // Enable thumbnail dragging and swiping + Thumbnail.prototype.enableThumbDrag = function() { + + var _this = this; + var startCoords = 0; + var endCoords = 0; + var isDraging = false; + var isMoved = false; + var tempLeft = 0; + + _this.$thumbOuter.addClass('lg-grab'); + + _this.core.$outer.find('.lg-thumb').on('mousedown.lg.thumb', function(e) { + if (_this.thumbTotalWidth > _this.thumbOuterWidth) { + // execute only on .lg-object + e.preventDefault(); + startCoords = e.pageX; + isDraging = true; + + // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723 + _this.core.$outer.scrollLeft += 1; + _this.core.$outer.scrollLeft -= 1; + + // * + _this.thumbClickable = false; + _this.$thumbOuter.removeClass('lg-grab').addClass('lg-grabbing'); + } + }); + + $(window).on('mousemove.lg.thumb', function(e) { + if (isDraging) { + tempLeft = _this.left; + isMoved = true; + endCoords = e.pageX; + + _this.$thumbOuter.addClass('lg-dragging'); + + tempLeft = tempLeft - (endCoords - startCoords); + + if (tempLeft > (_this.thumbTotalWidth - _this.thumbOuterWidth)) { + tempLeft = _this.thumbTotalWidth - _this.thumbOuterWidth; + } + + if (tempLeft < 0) { + tempLeft = 0; + } + + // move current slide + _this.setTranslate(tempLeft); + + } + }); + + $(window).on('mouseup.lg.thumb', function() { + if (isMoved) { + isMoved = false; + _this.$thumbOuter.removeClass('lg-dragging'); + + _this.left = tempLeft; + + if (Math.abs(endCoords - startCoords) < _this.core.s.swipeThreshold) { + _this.thumbClickable = true; + } + + } else { + _this.thumbClickable = true; + } + + if (isDraging) { + isDraging = false; + _this.$thumbOuter.removeClass('lg-grabbing').addClass('lg-grab'); + } + }); + + }; + + Thumbnail.prototype.enableThumbSwipe = function() { + var _this = this; + var startCoords = 0; + var endCoords = 0; + var isMoved = false; + var tempLeft = 0; + + _this.core.$outer.find('.lg-thumb').on('touchstart.lg', function(e) { + if (_this.thumbTotalWidth > _this.thumbOuterWidth) { + e.preventDefault(); + startCoords = e.originalEvent.targetTouches[0].pageX; + _this.thumbClickable = false; + } + }); + + _this.core.$outer.find('.lg-thumb').on('touchmove.lg', function(e) { + if (_this.thumbTotalWidth > _this.thumbOuterWidth) { + e.preventDefault(); + endCoords = e.originalEvent.targetTouches[0].pageX; + isMoved = true; + + _this.$thumbOuter.addClass('lg-dragging'); + + tempLeft = _this.left; + + tempLeft = tempLeft - (endCoords - startCoords); + + if (tempLeft > (_this.thumbTotalWidth - _this.thumbOuterWidth)) { + tempLeft = _this.thumbTotalWidth - _this.thumbOuterWidth; + } + + if (tempLeft < 0) { + tempLeft = 0; + } + + // move current slide + _this.setTranslate(tempLeft); + + } + }); + + _this.core.$outer.find('.lg-thumb').on('touchend.lg', function() { + if (_this.thumbTotalWidth > _this.thumbOuterWidth) { + + if (isMoved) { + isMoved = false; + _this.$thumbOuter.removeClass('lg-dragging'); + if (Math.abs(endCoords - startCoords) < _this.core.s.swipeThreshold) { + _this.thumbClickable = true; + } + + _this.left = tempLeft; + } else { + _this.thumbClickable = true; + } + } else { + _this.thumbClickable = true; + } + }); + + }; + + Thumbnail.prototype.toogle = function() { + var _this = this; + if (_this.core.s.toogleThumb) { + _this.core.$outer.addClass('lg-can-toggle'); + _this.$thumbOuter.append(''); + _this.core.$outer.find('.lg-toogle-thumb').on('click.lg', function() { + _this.core.$outer.toggleClass('lg-thumb-open'); + }); + } + }; + + Thumbnail.prototype.thumbkeyPress = function() { + var _this = this; + $(window).on('keydown.lg.thumb', function(e) { + if (e.keyCode === 38) { + e.preventDefault(); + _this.core.$outer.addClass('lg-thumb-open'); + } else if (e.keyCode === 40) { + e.preventDefault(); + _this.core.$outer.removeClass('lg-thumb-open'); + } + }); + }; + + Thumbnail.prototype.destroy = function() { + if (this.core.s.thumbnail && this.core.$items.length > 1) { + $(window).off('resize.lg.thumb orientationchange.lg.thumb keydown.lg.thumb'); + this.$thumbOuter.remove(); + this.core.$outer.removeClass('lg-has-thumb'); + } + }; + + $.fn.lightGallery.modules.Thumbnail = Thumbnail; + +})(jQuery, window, document); diff --git a/vendors/lightGallery/dist/js/lg-thumbnail.min.js b/vendors/lightGallery/dist/js/lg-thumbnail.min.js new file mode 100644 index 000000000..8fc32354b --- /dev/null +++ b/vendors/lightGallery/dist/js/lg-thumbnail.min.js @@ -0,0 +1,4 @@ +/*! lightgallery - v1.2.0 - 2015-08-26 +* http://sachinchoolur.github.io/lightGallery/ +* Copyright (c) 2015 Sachin N; Licensed Apache 2.0 */ +!function(a,b,c,d){"use strict";var e={thumbnail:!0,animateThumb:!0,currentPagerPosition:"middle",thumbWidth:100,thumbContHeight:100,thumbMargin:5,exThumbImage:!1,showThumbByDefault:!0,toogleThumb:!0,enableThumbDrag:!0,enableThumbSwipe:!0,swipeThreshold:50,loadYoutubeThumbnail:!0,youtubeThumbSize:1,loadVimeoThumbnail:!0,vimeoThumbSize:"thumbnail_small"},f=function(b){return this.core=a(b).data("lightGallery"),this.core.s=a.extend({},e,this.core.s),this.$el=a(b),this.$thumbOuter=null,this.thumbOuterWidth=0,this.thumbTotalWidth=this.core.$items.length*(this.core.s.thumbWidth+this.core.s.thumbMargin),this.thumbIndex=this.core.index,this.left=0,this.init(),this};f.prototype.init=function(){this.core.s.thumbnail&&this.core.$items.length>1&&(this.core.s.showThumbByDefault&&this.core.$outer.addClass("lg-thumb-open"),this.build(),this.core.s.animateThumb?(this.core.s.enableThumbDrag&&!this.core.isTouch&&this.core.doCss()&&this.enableThumbDrag(),this.core.s.enableThumbSwipe&&this.core.isTouch&&this.core.doCss()&&this.enableThumbSwipe(),this.thumbClickable=!1):this.thumbClickable=!0,this.toogle(),this.thumbkeyPress())},f.prototype.build=function(){function c(a,b,c){var d,h=e.core.isVideo(a,c)||{},i="";h.youtube||h.vimeo?h.youtube?d=e.core.s.loadYoutubeThumbnail?"http://img.youtube.com/vi/"+h.youtube[1]+"/"+e.core.s.youtubeThumbSize+".jpg":b:h.vimeo&&(e.core.s.loadVimeoThumbnail?(d="https://i.vimeocdn.com/video/error_"+g+".jpg",i=h.vimeo[1]):d=b):d=b,f+='
',i=""}var d,e=this,f="",g="",h='
';switch(this.core.s.vimeoThumbSize){case"thumbnail_large":g="640";break;case"thumbnail_medium":g="200x150";break;case"thumbnail_small":g="100x75"}if(e.core.$outer.addClass("lg-has-thumb"),e.core.$outer.find(".lg").append(h),e.$thumbOuter=e.core.$outer.find(".lg-thumb-outer"),e.thumbOuterWidth=e.$thumbOuter.width(),e.core.s.animateThumb&&e.core.$outer.find(".lg-thumb").css({width:e.thumbTotalWidth+"px",position:"relative"}),this.core.s.animateThumb&&e.$thumbOuter.css("height",e.core.s.thumbContHeight+"px"),e.core.s.dynamic)for(var i=0;ithis.thumbTotalWidth-this.thumbOuterWidth&&(this.left=this.thumbTotalWidth-this.thumbOuterWidth),this.left<0&&(this.left=0),this.core.lGalleryOn?(b.hasClass("on")||this.core.$outer.find(".lg-thumb").css("transition-duration",this.core.s.speed+"ms"),this.core.doCss()||b.animate({left:-this.left+"px"},this.core.s.speed)):this.core.doCss()||b.css("left",-this.left+"px"),this.setTranslate(this.left)}},f.prototype.enableThumbDrag=function(){var c=this,d=0,e=0,f=!1,g=!1,h=0;c.$thumbOuter.addClass("lg-grab"),c.core.$outer.find(".lg-thumb").on("mousedown.lg.thumb",function(a){c.thumbTotalWidth>c.thumbOuterWidth&&(a.preventDefault(),d=a.pageX,f=!0,c.core.$outer.scrollLeft+=1,c.core.$outer.scrollLeft-=1,c.thumbClickable=!1,c.$thumbOuter.removeClass("lg-grab").addClass("lg-grabbing"))}),a(b).on("mousemove.lg.thumb",function(a){f&&(h=c.left,g=!0,e=a.pageX,c.$thumbOuter.addClass("lg-dragging"),h-=e-d,h>c.thumbTotalWidth-c.thumbOuterWidth&&(h=c.thumbTotalWidth-c.thumbOuterWidth),0>h&&(h=0),c.setTranslate(h))}),a(b).on("mouseup.lg.thumb",function(){g?(g=!1,c.$thumbOuter.removeClass("lg-dragging"),c.left=h,Math.abs(e-d)a.thumbOuterWidth&&(c.preventDefault(),b=c.originalEvent.targetTouches[0].pageX,a.thumbClickable=!1)}),a.core.$outer.find(".lg-thumb").on("touchmove.lg",function(f){a.thumbTotalWidth>a.thumbOuterWidth&&(f.preventDefault(),c=f.originalEvent.targetTouches[0].pageX,d=!0,a.$thumbOuter.addClass("lg-dragging"),e=a.left,e-=c-b,e>a.thumbTotalWidth-a.thumbOuterWidth&&(e=a.thumbTotalWidth-a.thumbOuterWidth),0>e&&(e=0),a.setTranslate(e))}),a.core.$outer.find(".lg-thumb").on("touchend.lg",function(){a.thumbTotalWidth>a.thumbOuterWidth&&d?(d=!1,a.$thumbOuter.removeClass("lg-dragging"),Math.abs(c-b)'),a.core.$outer.find(".lg-toogle-thumb").on("click.lg",function(){a.core.$outer.toggleClass("lg-thumb-open")}))},f.prototype.thumbkeyPress=function(){var c=this;a(b).on("keydown.lg.thumb",function(a){38===a.keyCode?(a.preventDefault(),c.core.$outer.addClass("lg-thumb-open")):40===a.keyCode&&(a.preventDefault(),c.core.$outer.removeClass("lg-thumb-open"))})},f.prototype.destroy=function(){this.core.s.thumbnail&&this.core.$items.length>1&&(a(b).off("resize.lg.thumb orientationchange.lg.thumb keydown.lg.thumb"),this.$thumbOuter.remove(),this.core.$outer.removeClass("lg-has-thumb"))},a.fn.lightGallery.modules.Thumbnail=f}(jQuery,window,document); \ No newline at end of file diff --git a/vendors/lightGallery/dist/js/lg-video.js b/vendors/lightGallery/dist/js/lg-video.js new file mode 100644 index 000000000..bb3aa22b8 --- /dev/null +++ b/vendors/lightGallery/dist/js/lg-video.js @@ -0,0 +1,246 @@ +/*! lightgallery - v1.2.0 - 2015-08-26 +* http://sachinchoolur.github.io/lightGallery/ +* Copyright (c) 2015 Sachin N; Licensed Apache 2.0 */ +(function($, window, document, undefined) { + + 'use strict'; + + var defaults = { + videoMaxWidth: '855px', + youtubePlayerParams: false, + vimeoPlayerParams: false, + videojs: false + }; + + var Video = function(element) { + + this.core = $(element).data('lightGallery'); + + this.$el = $(element); + this.core.s = $.extend({}, defaults, this.core.s); + this.videoLoaded = false; + + this.init(); + + return this; + }; + + Video.prototype.init = function() { + var _this = this; + + // Event triggered when video url found without poster + _this.core.$el.on('hasVideo.lg.tm', function(event, index, src, html) { + _this.core.$slide.eq(index).find('.lg-video').append(_this.loadVideo(src, 'lg-object', true, index, html)); + if (html) { + if (_this.core.s.videojs) { + try { + videojs(_this.core.$slide.eq(index).find('.lg-html5').get(0), {}, function() { + if (!_this.videoLoaded) { + this.play(); + } + }); + } catch (e) { + console.error('Make sure you have included videojs'); + } + } else { + _this.core.$slide.eq(index).find('.lg-html5').get(0).play(); + } + } + }); + + // Set max width for video + _this.core.$el.on('onAferAppendSlide.lg.tm', function(event, index) { + _this.core.$slide.eq(index).find('.lg-video-cont').css('max-width', _this.core.s.videoMaxWidth); + _this.videoLoaded = true; + }); + + var loadOnClick = function($el) { + // check slide has poster + if ($el.find('.lg-object').hasClass('lg-has-poster')) { + + // chack already video element present + if (!$el.hasClass('lg-has-video')) { + + $el.addClass('lg-video-palying lg-has-video'); + + var _src; + var _html; + var _loadVideo = function(_src, _html) { + + $el.find('.lg-video').append(_this.loadVideo(_src, '', false, _this.core.index, _html)); + + if (_html) { + if (_this.core.s.videojs) { + try { + videojs(_this.core.$slide.eq(_this.core.index).find('.lg-html5').get(0), {}, function() { + this.play(); + }); + } catch (e) { + console.error('Make sure you have included videojs'); + } + } else { + _this.core.$slide.eq(_this.core.index).find('.lg-html5').get(0).play(); + } + } + + }; + + if (_this.core.s.dynamic) { + + _src = _this.core.s.dynamicEl[_this.core.index].src; + _html = _this.core.s.dynamicEl[_this.core.index].html; + + _loadVideo(_src, _html); + + } else { + + _src = _this.core.$items.eq(_this.core.index).attr('data-src'); + _html = _this.core.$items.eq(_this.core.index).attr('data-html'); + + _loadVideo(_src, _html); + + } + + var $tempImg = $el.find('.lg-object'); + $el.find('.lg-video').append($tempImg); + + // @todo loading icon for html5 videos also + // for showing the loading indicator while loading video + if (!$el.find('.lg-video-object').hasClass('lg-html5')) { + $el.removeClass('lg-complete'); + $el.find('.lg-video-object').on('load.lg error.lg', function() { + $el.addClass('lg-complete'); + }); + } + + } else { + + var youtubePlayer = $el.find('.lg-youtube').get(0); + var vimeoPlayer = $el.find('.lg-vimeo').get(0); + var html5Player = $el.find('.lg-html5').get(0); + if (youtubePlayer) { + youtubePlayer.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}', '*'); + } else if (vimeoPlayer) { + try { + $f(vimeoPlayer).api('play'); + } catch (e) { + console.error('Make sure you have included froogaloop2 js'); + } + } else if (html5Player) { + if (_this.core.s.videojs) { + try { + videojs(html5Player).play(); + } catch (e) { + console.error('Make sure you have included videojs'); + } + } else { + html5Player.play(); + } + } + + $el.addClass('lg-video-palying'); + + } + } + }; + + if (_this.core.doCss()) { + _this.core.$el.on('onSlideClick.lg.tm', function() { + var $el = _this.core.$slide.eq(_this.core.index); + loadOnClick($el); + }); + } else { + + // For IE 9 and bellow + _this.core.$slide.on('click.lg', function() { + loadOnClick($(this)); + }); + } + + _this.core.$el.on('onBeforeSlide.lg.tm', function(event, prevIndex) { + + var $videoSlide = _this.core.$slide.eq(prevIndex); + var youtubePlayer = $videoSlide.find('.lg-youtube').get(0); + var vimeoPlayer = $videoSlide.find('.lg-vimeo').get(0); + var html5Player = $videoSlide.find('.lg-html5').get(0); + if (youtubePlayer) { + youtubePlayer.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}', '*'); + } else if (vimeoPlayer) { + try { + $f(vimeoPlayer).api('pause'); + } catch (e) { + console.error('Make sure you have included froogaloop2 js'); + } + } else if (html5Player) { + if (_this.core.s.videojs) { + try { + videojs(html5Player).pause(); + } catch (e) { + console.error('Make sure you have included videojs'); + } + } else { + html5Player.pause(); + } + } + + //$videoSlide.addClass('lg-complete'); + + }); + + _this.core.$el.on('onAfterSlide.lg.tm', function(event, prevIndex) { + _this.core.$slide.eq(prevIndex).removeClass('lg-video-palying'); + }); + }; + + Video.prototype.loadVideo = function(src, addClass, noposter, index, html) { + var video = ''; + var autoplay = 1; + var a = ''; + var isVideo = this.core.isVideo(src, index) || {}; + + // Enable autoplay for first video if poster doesn't exist + if (noposter) { + if (this.videoLoaded) { + autoplay = 0; + } else { + autoplay = 1; + } + } + + if (isVideo.youtube) { + + a = '?wmode=opaque&autoplay=' + autoplay + '&enablejsapi=1'; + if (this.core.s.youtubePlayerParams) { + a = a + '&' + $.param(this.core.s.youtubePlayerParams); + } + + video = ''; + + } else if (isVideo.vimeo) { + + a = '?autoplay=' + autoplay + '&api=1'; + if (this.core.s.vimeoPlayerParams) { + a = a + '&' + $.param(this.core.s.vimeoPlayerParams); + } + + video = ''; + + } else if (isVideo.html5) { + var fL = html.substring(0, 1); + if (fL === '.' || fL === '#') { + html = $(html).html(); + } + + video = html; + } + + return video; + }; + + Video.prototype.destroy = function() { + this.videoLoaded = false; + }; + + $.fn.lightGallery.modules.video = Video; + +})(jQuery, window, document); diff --git a/vendors/lightGallery/dist/js/lg-video.min.js b/vendors/lightGallery/dist/js/lg-video.min.js new file mode 100644 index 000000000..ec14b71d8 --- /dev/null +++ b/vendors/lightGallery/dist/js/lg-video.min.js @@ -0,0 +1,4 @@ +/*! lightgallery - v1.2.0 - 2015-08-26 +* http://sachinchoolur.github.io/lightGallery/ +* Copyright (c) 2015 Sachin N; Licensed Apache 2.0 */ +!function(a,b,c,d){"use strict";var e={videoMaxWidth:"855px",youtubePlayerParams:!1,vimeoPlayerParams:!1,videojs:!1},f=function(b){return this.core=a(b).data("lightGallery"),this.$el=a(b),this.core.s=a.extend({},e,this.core.s),this.videoLoaded=!1,this.init(),this};f.prototype.init=function(){var b=this;b.core.$el.on("hasVideo.lg.tm",function(a,c,d,e){if(b.core.$slide.eq(c).find(".lg-video").append(b.loadVideo(d,"lg-object",!0,c,e)),e)if(b.core.s.videojs)try{videojs(b.core.$slide.eq(c).find(".lg-html5").get(0),{},function(){b.videoLoaded||this.play()})}catch(f){console.error("Make sure you have included videojs")}else b.core.$slide.eq(c).find(".lg-html5").get(0).play()}),b.core.$el.on("onAferAppendSlide.lg.tm",function(a,c){b.core.$slide.eq(c).find(".lg-video-cont").css("max-width",b.core.s.videoMaxWidth),b.videoLoaded=!0});var c=function(a){if(a.find(".lg-object").hasClass("lg-has-poster"))if(a.hasClass("lg-has-video")){var c=a.find(".lg-youtube").get(0),d=a.find(".lg-vimeo").get(0),e=a.find(".lg-html5").get(0);if(c)c.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*");else if(d)try{$f(d).api("play")}catch(f){console.error("Make sure you have included froogaloop2 js")}else if(e)if(b.core.s.videojs)try{videojs(e).play()}catch(f){console.error("Make sure you have included videojs")}else e.play();a.addClass("lg-video-palying")}else{a.addClass("lg-video-palying lg-has-video");var g,h,i=function(c,d){if(a.find(".lg-video").append(b.loadVideo(c,"",!1,b.core.index,d)),d)if(b.core.s.videojs)try{videojs(b.core.$slide.eq(b.core.index).find(".lg-html5").get(0),{},function(){this.play()})}catch(e){console.error("Make sure you have included videojs")}else b.core.$slide.eq(b.core.index).find(".lg-html5").get(0).play()};b.core.s.dynamic?(g=b.core.s.dynamicEl[b.core.index].src,h=b.core.s.dynamicEl[b.core.index].html,i(g,h)):(g=b.core.$items.eq(b.core.index).attr("data-src"),h=b.core.$items.eq(b.core.index).attr("data-html"),i(g,h));var j=a.find(".lg-object");a.find(".lg-video").append(j),a.find(".lg-video-object").hasClass("lg-html5")||(a.removeClass("lg-complete"),a.find(".lg-video-object").on("load.lg error.lg",function(){a.addClass("lg-complete")}))}};b.core.doCss()?b.core.$el.on("onSlideClick.lg.tm",function(){var a=b.core.$slide.eq(b.core.index);c(a)}):b.core.$slide.on("click.lg",function(){c(a(this))}),b.core.$el.on("onBeforeSlide.lg.tm",function(a,c){var d=b.core.$slide.eq(c),e=d.find(".lg-youtube").get(0),f=d.find(".lg-vimeo").get(0),g=d.find(".lg-html5").get(0);if(e)e.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*");else if(f)try{$f(f).api("pause")}catch(h){console.error("Make sure you have included froogaloop2 js")}else if(g)if(b.core.s.videojs)try{videojs(g).pause()}catch(h){console.error("Make sure you have included videojs")}else g.pause()}),b.core.$el.on("onAfterSlide.lg.tm",function(a,c){b.core.$slide.eq(c).removeClass("lg-video-palying")})},f.prototype.loadVideo=function(b,c,d,e,f){var g="",h=1,i="",j=this.core.isVideo(b,e)||{};if(d&&(h=this.videoLoaded?0:1),j.youtube)i="?wmode=opaque&autoplay="+h+"&enablejsapi=1",this.core.s.youtubePlayerParams&&(i=i+"&"+a.param(this.core.s.youtubePlayerParams)),g='';else if(j.vimeo)i="?autoplay="+h+"&api=1",this.core.s.vimeoPlayerParams&&(i=i+"&"+a.param(this.core.s.vimeoPlayerParams)),g='';else if(j.html5){var k=f.substring(0,1);("."===k||"#"===k)&&(f=a(f).html()),g=f}return g},f.prototype.destroy=function(){this.videoLoaded=!1},a.fn.lightGallery.modules.video=f}(jQuery,window,document); \ No newline at end of file diff --git a/vendors/lightGallery/dist/js/lg-zoom.js b/vendors/lightGallery/dist/js/lg-zoom.js new file mode 100644 index 000000000..7f0be2ae3 --- /dev/null +++ b/vendors/lightGallery/dist/js/lg-zoom.js @@ -0,0 +1,418 @@ +/*! lightgallery - v1.2.0 - 2015-08-26 +* http://sachinchoolur.github.io/lightGallery/ +* Copyright (c) 2015 Sachin N; Licensed Apache 2.0 */ +/** + * Zoom Plugin + * @version 1.2.0 + * @author Sachin N - @sachinchoolur + * @license MIT License (MIT) + */ +(function($, window, document, undefined) { + + 'use strict'; + + var defaults = { + scale: 1, + zoom: true, + enableZoomAfter: 300 + }; + + var Zoom = function(element) { + + this.core = $(element).data('lightGallery'); + + this.core.s = $.extend({}, defaults, this.core.s); + + if (this.core.s.zoom && this.core.doCss()) { + this.init(); + this.zoomabletimeout = false; + } + + return this; + }; + + Zoom.prototype.init = function() { + + var _this = this; + var zoomIcons = ''; + + this.core.$outer.find('.lg-toolbar').append(zoomIcons); + + // Add zoomable class + _this.core.$el.on('onSlideItemLoad.lg.tm.zoom', function(event, index, delay) { + + // delay will be 0 except first time + var _speed = _this.core.s.enableZoomAfter + delay; + + // set _speed value 0 if gallery opened from direct url and if it is first slide + if ($('body').hasClass('lg-from-hash') && delay) { + + // will execute only one time + _speed = 0; + } else { + + // Remove lg-from-hash to enable starting animation. + $('body').removeClass('lg-from-hash'); + } + + _this.zoomabletimeout = setTimeout(function() { + _this.core.$slide.eq(index).addClass('lg-zoomable'); + }, _speed + 30); + }); + + var scale = 1; + /** + * @desc Image zoom + * Translate the wrap and scale the image to get better user experience + * + * @param {String} scaleVal - Zoom decrement/increment value + * @param {Boolean} db - true if zoom called via doubleclick + * @todo Currently zoom origin is center it should work from all the directions + */ + var zoom = function(scaleVal, db, pageX, pageY) { + + var $image = _this.core.$outer.find('.lg-current .lg-image'); + var _x; + var _y; + if (db) { + _x = pageX - $image.offset().left; + _y = pageY - $image.offset().top; + } else { + _x = $image.width() / 2; + _y = $image.height() / 2; + } + + var x = (scaleVal - 1) * (_x); + var y = (scaleVal - 1) * (_y); + + $image.css('transform', 'scale3d(' + scaleVal + ', ' + scaleVal + ', 1)').attr('data-scale', scaleVal); + + $image.parent().css('transform', 'translate3d(-' + x + 'px, -' + y + 'px, 0)').attr('data-x', x).attr('data-y', y); + }; + + var callScale = function(db, pageX, pageY) { + if (scale > 1) { + _this.core.$outer.addClass('lg-zoomed'); + } else { + _this.core.$outer.removeClass('lg-zoomed'); + } + + if (scale < 1) { + scale = 1; + } + + zoom(scale, db, pageX, pageY); + }; + + // event triggered after appending slide content + _this.core.$el.on('onAferAppendSlide.lg.tm.zoom', function(event, index) { + + // Get the current element + var $image = _this.core.$slide.eq(index).find('.lg-image'); + + $image.dblclick(function(event) { + + var w = $image.width(); + var nw = (_this.core.s.dynamic ? false : _this.core.$items.eq(index).attr('data-width')) || $image[0].naturalWidth || w; + var _scale; + + if (_this.core.$outer.hasClass('lg-zoomed')) { + scale = 1; + } else { + if (nw > w) { + _scale = nw / w; + scale = _scale || 2; + } + } + + callScale(true, event.pageX, event.pageY); + setTimeout(function() { + _this.core.$outer.removeClass('lg-grabbing').addClass('lg-grab'); + }, 10); + }); + + }); + + // Update zoom on resize and orientationchange + $(window).on('resize.lg.zoom orientationchange.lg.zoom', function() { + setTimeout(function() { + if (_this.core.$outer.hasClass('lg-zoomed')) { + zoom(scale); + } + }, 10); + }); + + $('#lg-zoom-out').on('click.lg', function() { + if (_this.core.$outer.find('.lg-current .lg-image').length) { + scale -= _this.core.s.scale; + callScale(); + } + }); + + $('#lg-zoom-in').on('click.lg', function() { + if (_this.core.$outer.find('.lg-current .lg-image').length) { + scale += _this.core.s.scale; + callScale(); + } + }); + + // Reset zoom on slide change + _this.core.$el.on('onBeforeSlide.lg.tm', function() { + _this.resetZoom(); + }); + + // Drag option after zoom + if (!_this.core.isTouch) { + _this.zoomDrag(); + } + + if (_this.core.isTouch) { + _this.zoomSwipe(); + } + + }; + + // Reset zoom effect + Zoom.prototype.resetZoom = function() { + this.core.$outer.removeClass('lg-zoomed'); + this.core.$slide.find('.lg-img-wrap').removeAttr('style data-x data-y'); + this.core.$slide.find('.lg-image').removeAttr('style data-scale'); + }; + + Zoom.prototype.zoomSwipe = function() { + var _this = this; + var startCoords = {}; + var endCoords = {}; + var isMoved = false; + + // Allow x direction drag + var allowX = false; + + // Allow Y direction drag + var allowY = false; + + _this.core.$slide.on('touchstart.lg', function(e) { + + if (_this.core.$outer.hasClass('lg-zoomed')) { + var $image = _this.core.$slide.eq(_this.core.index).find('.lg-object'); + + allowY = $image.outerHeight() * $image.attr('data-scale') > _this.core.$outer.find('.lg').height(); + allowX = $image.outerWidth() * $image.attr('data-scale') > _this.core.$outer.find('.lg').width(); + if ((allowX || allowY)) { + e.preventDefault(); + startCoords = { + x: e.originalEvent.targetTouches[0].pageX, + y: e.originalEvent.targetTouches[0].pageY + }; + } + } + + }); + + _this.core.$slide.on('touchmove.lg', function(e) { + + if (_this.core.$outer.hasClass('lg-zoomed')) { + + var _$el = _this.core.$slide.eq(_this.core.index).find('.lg-img-wrap'); + var distanceX; + var distanceY; + + e.preventDefault(); + isMoved = true; + endCoords = e.originalEvent.targetTouches[0].pageX; + + endCoords = { + x: e.originalEvent.targetTouches[0].pageX, + y: e.originalEvent.targetTouches[0].pageY + }; + + // reset opacity and transition duration + _this.core.$outer.addClass('lg-zoom-dragging'); + + if (allowY) { + distanceY = (-Math.abs(_$el.attr('data-y'))) + (endCoords.y - startCoords.y); + } else { + distanceY = -Math.abs(_$el.attr('data-y')); + } + + if (allowX) { + distanceX = (-Math.abs(_$el.attr('data-x'))) + (endCoords.x - startCoords.x); + } else { + distanceX = -Math.abs(_$el.attr('data-x')); + } + + _$el.css('transform', 'translate3d(' + distanceX + 'px, ' + distanceY + 'px, 0)'); + + } + + }); + + _this.core.$slide.on('touchend.lg', function() { + if (_this.core.$outer.hasClass('lg-zoomed')) { + if (isMoved) { + isMoved = false; + _this.core.$outer.removeClass('lg-zoom-dragging'); + _this.touchendZoom(startCoords, endCoords, allowX, allowY); + + } + } + }); + + }; + + Zoom.prototype.zoomDrag = function() { + + var _this = this; + var startCoords = {}; + var endCoords = {}; + var isDraging = false; + var isMoved = false; + + // Allow x direction drag + var allowX = false; + + // Allow Y direction drag + var allowY = false; + + _this.core.$slide.on('mousedown.lg.zoom', function(e) { + + // execute only on .lg-object + var $image = _this.core.$slide.eq(_this.core.index).find('.lg-object'); + + allowY = $image.outerHeight() * $image.attr('data-scale') > _this.core.$outer.find('.lg').height(); + allowX = $image.outerWidth() * $image.attr('data-scale') > _this.core.$outer.find('.lg').width(); + + if (_this.core.$outer.hasClass('lg-zoomed')) { + if ($(e.target).hasClass('lg-object') && (allowX || allowY)) { + e.preventDefault(); + startCoords = { + x: e.pageX, + y: e.pageY + }; + + isDraging = true; + + // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723 + _this.core.$outer.scrollLeft += 1; + _this.core.$outer.scrollLeft -= 1; + + _this.core.$outer.removeClass('lg-grab').addClass('lg-grabbing'); + } + } + }); + + $(window).on('mousemove.lg.zoom', function(e) { + if (isDraging) { + var _$el = _this.core.$slide.eq(_this.core.index).find('.lg-img-wrap'); + var distanceX; + var distanceY; + + isMoved = true; + endCoords = { + x: e.pageX, + y: e.pageY + }; + + // reset opacity and transition duration + _this.core.$outer.addClass('lg-zoom-dragging'); + + if (allowY) { + distanceY = (-Math.abs(_$el.attr('data-y'))) + (endCoords.y - startCoords.y); + } else { + distanceY = -Math.abs(_$el.attr('data-y')); + } + + if (allowX) { + distanceX = (-Math.abs(_$el.attr('data-x'))) + (endCoords.x - startCoords.x); + } else { + distanceX = -Math.abs(_$el.attr('data-x')); + } + + _$el.css('transform', 'translate3d(' + distanceX + 'px, ' + distanceY + 'px, 0)'); + } + }); + + $(window).on('mouseup.lg.zoom', function(e) { + + if (isDraging) { + isDraging = false; + _this.core.$outer.removeClass('lg-zoom-dragging'); + + // Fix for chrome mouse move on click + if (isMoved && ((startCoords.x !== endCoords.x) || (startCoords.y !== endCoords.y))) { + endCoords = { + x: e.pageX, + y: e.pageY + }; + _this.touchendZoom(startCoords, endCoords, allowX, allowY); + + } + + isMoved = false; + } + + _this.core.$outer.removeClass('lg-grabbing').addClass('lg-grab'); + + }); + }; + + Zoom.prototype.touchendZoom = function(startCoords, endCoords, allowX, allowY) { + + var _this = this; + var _$el = _this.core.$slide.eq(_this.core.index).find('.lg-img-wrap'); + var $image = _this.core.$slide.eq(_this.core.index).find('.lg-object'); + var distanceX = (-Math.abs(_$el.attr('data-x'))) + (endCoords.x - startCoords.x); + var distanceY = (-Math.abs(_$el.attr('data-y'))) + (endCoords.y - startCoords.y); + var minY = (_this.core.$outer.find('.lg').height() - $image.outerHeight()) / 2; + var maxY = Math.abs(($image.outerHeight() * Math.abs($image.attr('data-scale'))) - _this.core.$outer.find('.lg').height() + minY); + var minX = (_this.core.$outer.find('.lg').width() - $image.outerWidth()) / 2; + var maxX = Math.abs(($image.outerWidth() * Math.abs($image.attr('data-scale'))) - _this.core.$outer.find('.lg').width() + minX); + + if (allowY) { + if (distanceY <= -maxY) { + distanceY = -maxY; + } else if (distanceY >= -minY) { + distanceY = -minY; + } + } + + if (allowX) { + if (distanceX <= -maxX) { + distanceX = -maxX; + } else if (distanceX >= -minX) { + distanceX = -minX; + } + } + + if (allowY) { + _$el.attr('data-y', Math.abs(distanceY)); + } else { + distanceY = -Math.abs(_$el.attr('data-y')); + } + + if (allowX) { + _$el.attr('data-x', Math.abs(distanceX)); + } else { + distanceX = -Math.abs(_$el.attr('data-x')); + } + + _$el.css('transform', 'translate3d(' + distanceX + 'px, ' + distanceY + 'px, 0)'); + }; + + Zoom.prototype.destroy = function() { + + var _this = this; + + // Unbind all events added by lightGallery zoom plugin + _this.core.$el.off('.lg.zoom'); + $(window).off('.lg.zoom'); + _this.core.$slide.off('.lg.zoom'); + _this.core.$el.off('.lg.tm.zoom'); + _this.resetZoom(); + clearTimeout(_this.zoomabletimeout); + _this.zoomabletimeout = false; + }; + + $.fn.lightGallery.modules.zoom = Zoom; + +})(jQuery, window, document); diff --git a/vendors/lightGallery/dist/js/lg-zoom.min.js b/vendors/lightGallery/dist/js/lg-zoom.min.js new file mode 100644 index 000000000..04cbdc733 --- /dev/null +++ b/vendors/lightGallery/dist/js/lg-zoom.min.js @@ -0,0 +1,4 @@ +/*! lightgallery - v1.2.0 - 2015-08-26 +* http://sachinchoolur.github.io/lightGallery/ +* Copyright (c) 2015 Sachin N; Licensed Apache 2.0 */ +!function(a,b,c,d){"use strict";var e={scale:1,zoom:!0,enableZoomAfter:300},f=function(b){return this.core=a(b).data("lightGallery"),this.core.s=a.extend({},e,this.core.s),this.core.s.zoom&&this.core.doCss()&&(this.init(),this.zoomabletimeout=!1),this};f.prototype.init=function(){var c=this,d='';this.core.$outer.find(".lg-toolbar").append(d),c.core.$el.on("onSlideItemLoad.lg.tm.zoom",function(b,d,e){var f=c.core.s.enableZoomAfter+e;a("body").hasClass("lg-from-hash")&&e?f=0:a("body").removeClass("lg-from-hash"),c.zoomabletimeout=setTimeout(function(){c.core.$slide.eq(d).addClass("lg-zoomable")},f+30)});var e=1,f=function(a,b,d,e){var f,g,h=c.core.$outer.find(".lg-current .lg-image");b?(f=d-h.offset().left,g=e-h.offset().top):(f=h.width()/2,g=h.height()/2);var i=(a-1)*f,j=(a-1)*g;h.css("transform","scale3d("+a+", "+a+", 1)").attr("data-scale",a),h.parent().css("transform","translate3d(-"+i+"px, -"+j+"px, 0)").attr("data-x",i).attr("data-y",j)},g=function(a,b,d){e>1?c.core.$outer.addClass("lg-zoomed"):c.core.$outer.removeClass("lg-zoomed"),1>e&&(e=1),f(e,a,b,d)};c.core.$el.on("onAferAppendSlide.lg.tm.zoom",function(a,b){var d=c.core.$slide.eq(b).find(".lg-image");d.dblclick(function(a){var f,h=d.width(),i=(c.core.s.dynamic?!1:c.core.$items.eq(b).attr("data-width"))||d[0].naturalWidth||h;c.core.$outer.hasClass("lg-zoomed")?e=1:i>h&&(f=i/h,e=f||2),g(!0,a.pageX,a.pageY),setTimeout(function(){c.core.$outer.removeClass("lg-grabbing").addClass("lg-grab")},10)})}),a(b).on("resize.lg.zoom orientationchange.lg.zoom",function(){setTimeout(function(){c.core.$outer.hasClass("lg-zoomed")&&f(e)},10)}),a("#lg-zoom-out").on("click.lg",function(){c.core.$outer.find(".lg-current .lg-image").length&&(e-=c.core.s.scale,g())}),a("#lg-zoom-in").on("click.lg",function(){c.core.$outer.find(".lg-current .lg-image").length&&(e+=c.core.s.scale,g())}),c.core.$el.on("onBeforeSlide.lg.tm",function(){c.resetZoom()}),c.core.isTouch||c.zoomDrag(),c.core.isTouch&&c.zoomSwipe()},f.prototype.resetZoom=function(){this.core.$outer.removeClass("lg-zoomed"),this.core.$slide.find(".lg-img-wrap").removeAttr("style data-x data-y"),this.core.$slide.find(".lg-image").removeAttr("style data-scale")},f.prototype.zoomSwipe=function(){var a=this,b={},c={},d=!1,e=!1,f=!1;a.core.$slide.on("touchstart.lg",function(c){if(a.core.$outer.hasClass("lg-zoomed")){var d=a.core.$slide.eq(a.core.index).find(".lg-object");f=d.outerHeight()*d.attr("data-scale")>a.core.$outer.find(".lg").height(),e=d.outerWidth()*d.attr("data-scale")>a.core.$outer.find(".lg").width(),(e||f)&&(c.preventDefault(),b={x:c.originalEvent.targetTouches[0].pageX,y:c.originalEvent.targetTouches[0].pageY})}}),a.core.$slide.on("touchmove.lg",function(g){if(a.core.$outer.hasClass("lg-zoomed")){var h,i,j=a.core.$slide.eq(a.core.index).find(".lg-img-wrap");g.preventDefault(),d=!0,c=g.originalEvent.targetTouches[0].pageX,c={x:g.originalEvent.targetTouches[0].pageX,y:g.originalEvent.targetTouches[0].pageY},a.core.$outer.addClass("lg-zoom-dragging"),i=f?-Math.abs(j.attr("data-y"))+(c.y-b.y):-Math.abs(j.attr("data-y")),h=e?-Math.abs(j.attr("data-x"))+(c.x-b.x):-Math.abs(j.attr("data-x")),j.css("transform","translate3d("+h+"px, "+i+"px, 0)")}}),a.core.$slide.on("touchend.lg",function(){a.core.$outer.hasClass("lg-zoomed")&&d&&(d=!1,a.core.$outer.removeClass("lg-zoom-dragging"),a.touchendZoom(b,c,e,f))})},f.prototype.zoomDrag=function(){var c=this,d={},e={},f=!1,g=!1,h=!1,i=!1;c.core.$slide.on("mousedown.lg.zoom",function(b){var e=c.core.$slide.eq(c.core.index).find(".lg-object");i=e.outerHeight()*e.attr("data-scale")>c.core.$outer.find(".lg").height(),h=e.outerWidth()*e.attr("data-scale")>c.core.$outer.find(".lg").width(),c.core.$outer.hasClass("lg-zoomed")&&a(b.target).hasClass("lg-object")&&(h||i)&&(b.preventDefault(),d={x:b.pageX,y:b.pageY},f=!0,c.core.$outer.scrollLeft+=1,c.core.$outer.scrollLeft-=1,c.core.$outer.removeClass("lg-grab").addClass("lg-grabbing"))}),a(b).on("mousemove.lg.zoom",function(a){if(f){var b,j,k=c.core.$slide.eq(c.core.index).find(".lg-img-wrap");g=!0,e={x:a.pageX,y:a.pageY},c.core.$outer.addClass("lg-zoom-dragging"),j=i?-Math.abs(k.attr("data-y"))+(e.y-d.y):-Math.abs(k.attr("data-y")),b=h?-Math.abs(k.attr("data-x"))+(e.x-d.x):-Math.abs(k.attr("data-x")),k.css("transform","translate3d("+b+"px, "+j+"px, 0)")}}),a(b).on("mouseup.lg.zoom",function(a){f&&(f=!1,c.core.$outer.removeClass("lg-zoom-dragging"),!g||d.x===e.x&&d.y===e.y||(e={x:a.pageX,y:a.pageY},c.touchendZoom(d,e,h,i)),g=!1),c.core.$outer.removeClass("lg-grabbing").addClass("lg-grab")})},f.prototype.touchendZoom=function(a,b,c,d){var e=this,f=e.core.$slide.eq(e.core.index).find(".lg-img-wrap"),g=e.core.$slide.eq(e.core.index).find(".lg-object"),h=-Math.abs(f.attr("data-x"))+(b.x-a.x),i=-Math.abs(f.attr("data-y"))+(b.y-a.y),j=(e.core.$outer.find(".lg").height()-g.outerHeight())/2,k=Math.abs(g.outerHeight()*Math.abs(g.attr("data-scale"))-e.core.$outer.find(".lg").height()+j),l=(e.core.$outer.find(".lg").width()-g.outerWidth())/2,m=Math.abs(g.outerWidth()*Math.abs(g.attr("data-scale"))-e.core.$outer.find(".lg").width()+l);d&&(-k>=i?i=-k:i>=-j&&(i=-j)),c&&(-m>=h?h=-m:h>=-l&&(h=-l)),d?f.attr("data-y",Math.abs(i)):i=-Math.abs(f.attr("data-y")),c?f.attr("data-x",Math.abs(h)):h=-Math.abs(f.attr("data-x")),f.css("transform","translate3d("+h+"px, "+i+"px, 0)")},f.prototype.destroy=function(){var c=this;c.core.$el.off(".lg.zoom"),a(b).off(".lg.zoom"),c.core.$slide.off(".lg.zoom"),c.core.$el.off(".lg.tm.zoom"),c.resetZoom(),clearTimeout(c.zoomabletimeout),c.zoomabletimeout=!1},a.fn.lightGallery.modules.zoom=f}(jQuery,window,document); \ No newline at end of file diff --git a/vendors/lightGallery/dist/js/lightgallery-all.js b/vendors/lightGallery/dist/js/lightgallery-all.js new file mode 100644 index 000000000..26afce203 --- /dev/null +++ b/vendors/lightGallery/dist/js/lightgallery-all.js @@ -0,0 +1,2764 @@ +/*! lightgallery - v1.2.0 - 2015-08-26 +* http://sachinchoolur.github.io/lightGallery/ +* Copyright (c) 2015 Sachin N; Licensed Apache 2.0 */ +(function($, window, document, undefined) { + + 'use strict'; + + var defaults = { + + mode: 'lg-slide', + + // Ex : 'ease' + cssEasing: 'cubic-bezier(0.25, 0, 0.25, 1)', + + //'for jquery animation' + easing: 'linear', + speed: 600, + height: '100%', + width: '100%', + addClass: '', + startClass: 'lg-start-zoom', + backdropDuration: 150, + hideBarsDelay: 6000, + + useLeft: false, + + closable: true, + loop: true, + escKey: true, + keyPress: true, + controls: true, + slideEndAnimatoin: true, + hideControlOnEnd: false, + mousewheel: true, + + // .lg-item || '.lg-sub-html' + appendSubHtmlTo: '.lg-sub-html', + + /** + * @desc number of preload slides + * will exicute only after the current slide is fully loaded. + * + * @ex you clicked on 4th image and if preload = 1 then 3rd slide and 5th + * slide will be loaded in the background after the 4th slide is fully loaded.. + * if preload is 2 then 2nd 3rd 5th 6th slides will be preloaded.. ... ... + * + */ + preload: 1, + showAfterLoad: true, + selector: '', + nextHtml: '', + prevHtml: '', + + // 0, 1 + index: false, + + iframeMaxWidth: '100%', + + download: true, + counter: true, + appendCounterTo: '.lg-toolbar', + + swipeThreshold: 50, + enableSwipe: true, + enableDrag: true, + + dynamic: false, + dynamicEl: [], + galleryId: 1 + }; + + function Plugin(element, options) { + + // Current lightGallery element + this.el = element; + + // Current jquery element + this.$el = $(element); + + // lightGallery settings + this.s = $.extend({}, defaults, options); + + // lightGallery modules + this.modules = {}; + + // false when lightgallery complete first slide; + this.lGalleryOn = false; + + this.lgBusy = false; + + // Timeout function for hiding controls; + this.hideBartimeout = false; + + // To determine browser supports for touch events; + this.isTouch = ('ontouchstart' in document.documentElement); + + // DIsable hideControlOnEnd if sildeEndAnimation is true + if (this.s.slideEndAnimatoin) { + this.s.hideControlOnEnd = false; + } + + // Gallery items + if (this.s.dynamic) { + this.$items = this.s.dynamicEl; + } else { + if (this.s.selector === 'this') { + this.$items = this.$el; + } else if (this.s.selector !== '') { + this.$items = this.$el.find($(this.s.selector)); + } else { + this.$items = this.$el.children(); + } + } + + // .lg-item + this.$slide = ''; + + // .lg-outer + this.$outer = ''; + + this.init(); + + return this; + } + + Plugin.prototype.init = function() { + + var _this = this; + + // s.preload should not be more than $item.length + if (_this.s.preload > _this.$items.length) { + _this.s.preload = _this.$items.length; + } + + // if dynamic option is enabled execute immediately + var _hash = window.location.hash; + if (_hash.indexOf('lg=' + this.s.galleryId) > 0) { + + _this.index = parseInt(_hash.split('&slide=')[1], 10); + + $('body').addClass('lg-from-hash'); + if (!$('body').hasClass('lg-on')) { + setTimeout(function() { + _this.build(_this.index); + $('body').addClass('lg-on'); + }); + } + } + + if (_this.s.dynamic) { + + _this.$el.trigger('onBeforeOpen.lg'); + + _this.index = _this.s.index || 0; + + // prevent accidental double execution + if (!$('body').hasClass('lg-on')) { + setTimeout(function() { + _this.build(_this.index); + $('body').addClass('lg-on'); + }); + } + } else { + + // Using different namespace for click because click event should not unbind if selector is same object('this') + _this.$items.on('click.lgcustom', function(event) { + + // For IE8 + try { + event.preventDefault(); + event.preventDefault(); + } catch (er) { + event.returnValue = false; + } + + _this.$el.trigger('onBeforeOpen.lg'); + + _this.index = _this.s.index || _this.$items.index(this); + + // prevent accidental double execution + if (!$('body').hasClass('lg-on')) { + _this.build(_this.index); + $('body').addClass('lg-on'); + } + }); + } + + }; + + Plugin.prototype.build = function(index) { + + var _this = this; + + _this.structure(); + + // module constructor + $.each($.fn.lightGallery.modules, function(key) { + _this.modules[key] = new $.fn.lightGallery.modules[key](_this.el); + }); + + // initiate slide function + _this.slide(index, false, false); + + if (_this.s.keyPress) { + _this.keyPress(); + } + + if (_this.$items.length > 1) { + + _this.arrow(); + + setTimeout(function() { + _this.enableDrag(); + _this.enableSwipe(); + }, 50); + + if (_this.s.mousewheel) { + _this.mousewheel(); + } + } + + _this.counter(); + + _this.closeGallery(); + + // Hide controllers if mouse doesn't move for some period + _this.$outer.on('mousemove.lg click.lg touchstart.lg', function() { + + _this.$outer.removeClass('lg-hide-items'); + + clearTimeout(_this.hideBartimeout); + + // Timeout will be cleared on each slide movement also + _this.hideBartimeout = setTimeout(function() { + _this.$outer.addClass('lg-hide-items'); + }, _this.s.hideBarsDelay); + + }); + + }; + + Plugin.prototype.structure = function() { + var list = ''; + var controls = ''; + var i = 0; + var subHtmlCont = ''; + var template; + var _this = this; + + $('body').append('
'); + $('.lg-backdrop').css('transition-duration', this.s.backdropDuration + 'ms'); + + // Create gallery items + for (i = 0; i < this.$items.length; i++) { + list += '
'; + } + + // Create controlls + if (this.s.controls && this.$items.length > 1) { + controls = '
' + + '
' + this.s.prevHtml + '
' + + '
' + this.s.nextHtml + '
' + + '
'; + } + + if (this.s.appendSubHtmlTo === '.lg-sub-html') { + subHtmlCont = '
'; + } + + template = '
' + + '
' + + '
' + list + '
' + + '
' + + '' + + '
' + + controls + + subHtmlCont + + '
' + + '
'; + + $('body').append(template); + this.$outer = $('.lg-outer'); + this.$slide = this.$outer.find('.lg-item'); + + if (this.s.useLeft) { + this.$outer.addClass('lg-use-left'); + } else { + this.$outer.addClass('lg-use-css3'); + } + + // For fixed height gallery + _this.setTop(); + $(window).on('resize.lg orientationchange.lg', function() { + setTimeout(function() { + _this.setTop(); + }, 100); + }); + + // add class lg-current to remove initial transition + this.$slide.eq(this.index).addClass('lg-current'); + + // add Class for css support and transition mode + if (this.doCss()) { + this.$outer.addClass('lg-css3'); + } else { + this.$outer.addClass('lg-css'); + } + + this.$outer.addClass(this.s.mode); + + if (this.s.enableDrag && this.$items.length > 1) { + this.$outer.addClass('lg-grab'); + } + + if (this.s.showAfterLoad) { + this.$outer.addClass('lg-show-after-load'); + } + + if (this.doCss()) { + var $inner = this.$outer.find('.lg-inner'); + $inner.css('transition-timing-function', this.s.cssEasing); + $inner.css('transition-duration', this.s.speed + 'ms'); + } + + $('.lg-backdrop').addClass('in'); + + setTimeout(function() { + _this.$outer.addClass('lg-visible'); + }, this.s.backdropDuration); + + if (this.s.download) { + this.$outer.find('.lg-toolbar').append(''); + } + + }; + + // For fixed height gallery + Plugin.prototype.setTop = function() { + if (this.s.height !== '100%') { + var wH = $(window).height(); + var top = (wH - parseInt(this.s.height, 10)) / 2; + var $lGallery = this.$outer.find('.lg'); + if (wH >= parseInt(this.s.height, 10)) { + $lGallery.css('top', top + 'px'); + } else { + $lGallery.css('top', '0px'); + } + } + }; + + // Find css3 support + Plugin.prototype.doCss = function() { + // check for css animation support + var support = function() { + var transition = ['transition', 'MozTransition', 'WebkitTransition', 'OTransition', 'msTransition', 'KhtmlTransition']; + var root = document.documentElement; + var i = 0; + for (i = 0; i < transition.length; i++) { + if (transition[i] in root.style) { + return true; + } + } + }; + + if (support()) { + return true; + } + + return false; + }; + + /** + * @desc Check the given src is video + * @param {String} src + * @return {Object} video type + * Ex:{ youtube : ["//www.youtube.com/watch?v=c0asJgSyxcY", "c0asJgSyxcY"] } + */ + Plugin.prototype.isVideo = function(src, index) { + + var html; + if (this.s.dynamic) { + html = this.s.dynamicEl[index].html; + } else { + html = this.$items.eq(index).attr('data-html'); + } + + if (!src && html) { + return { + html5: true + }; + } + + var youtube = src.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com)\/(?:watch\?v=|embed\/)?([a-z0-9self\-]+)/i); + var vimeo = src.match(/\/\/(?:www\.)?vimeo.com\/([0-9a-z\-_this]+)/i); + + // return { youtube : ["//www.youtube.com/watch?v=c0asJgSyxcY", "c0asJgSyxcY"] } + if (youtube) { + return { + youtube: youtube + }; + } else if (vimeo) { + return { + vimeo: vimeo + }; + } + }; + + /** + * @desc Create image counter + * Ex: 1/10 + */ + Plugin.prototype.counter = function() { + if (this.s.counter) { + $(this.s.appendCounterTo).append('
' + (parseInt(this.index, 10) + 1) + ' / ' + this.$items.length + '
'); + } + }; + + /** + * @desc add sub-html into the slide + * @param {Number} index - index of the slide + */ + Plugin.prototype.addHtml = function(index) { + var subHtml = null; + if (this.s.dynamic) { + subHtml = this.s.dynamicEl[index].subHtml; + } else { + subHtml = this.$items.eq(index).attr('data-sub-html'); + } + + if (typeof subHtml !== 'undefined' && subHtml !== null) { + + // get first letter of subhtml + // if first letter starts with . or # get the html form the jQuery object + var fL = subHtml.substring(0, 1); + if (fL === '.' || fL === '#') { + subHtml = $(subHtml).html(); + } else { + subHtml = subHtml; + } + } else { + subHtml = ''; + } + + if (this.s.appendSubHtmlTo === '.lg-sub-html') { + this.$outer.find(this.s.appendSubHtmlTo).html(subHtml); + + // Add lg-empty-html class if title doesn't exist + if (subHtml === '') { + this.$outer.find(this.s.appendSubHtmlTo).addClass('lg-empty-html'); + } else { + this.$outer.find(this.s.appendSubHtmlTo).removeClass('lg-empty-html'); + } + } else { + this.$slide.eq(index).append(subHtml); + } + + this.$el.trigger('onAfterAppendSubHtml.lg', [index]); + }; + + /** + * @desc Preload slides + * @param {Number} index - index of the slide + */ + Plugin.prototype.preload = function(index) { + var i = 1; + var j = 1; + for (i = 1; i <= this.s.preload; i++) { + if (i >= this.$items.length - index) { + break; + } + + this.loadContent(index + i, false, 0); + } + + for (j = 1; j <= this.s.preload; j++) { + if (index - j < 0) { + break; + } + + this.loadContent(index - j, false, 0); + } + }; + + /** + * @desc Load slide content into slide. + * @param {Number} index - index of the slide. + * @param {Boolean} rec - if true call loadcontent() function again. + * @param {Boolean} delay - delay for adding complete class. it is 0 except first time. + */ + Plugin.prototype.loadContent = function(index, rec, delay) { + + var _this = this; + var _hasPoster = false; + var _$img; + var _src; + var _poster; + var _srcset; + var _sizes; + var _html; + var getResponsiveSrc = function(srcItms) { + var rsWidth = []; + var rsSrc = []; + for (var i = 0; i < srcItms.length; i++) { + var __src = srcItms[i].split(' '); + + // Manage empty space + if (__src[0] === '') { + __src.splice(0, 1); + } + + rsSrc.push(__src[0]); + rsWidth.push(__src[1]); + } + + var wWidth = $(window).width(); + for (var j = 0; j < rsWidth.length; j++) { + if (parseInt(rsWidth[j], 10) > wWidth) { + _src = rsSrc[j]; + break; + } + } + }; + + if (_this.s.dynamic) { + + if (_this.s.dynamicEl[index].poster) { + _hasPoster = true; + _poster = _this.s.dynamicEl[index].poster; + } + + _html = _this.s.dynamicEl[index].html; + _src = _this.s.dynamicEl[index].src; + + if (_this.s.dynamicEl[index].responsive) { + var srcDyItms = _this.s.dynamicEl[index].responsive.split(','); + getResponsiveSrc(srcDyItms); + } + + _srcset = _this.s.dynamicEl[index].srcset; + _sizes = _this.s.dynamicEl[index].sizes; + + } else { + + if (_this.$items.eq(index).attr('data-poster')) { + _hasPoster = true; + _poster = _this.$items.eq(index).attr('data-poster'); + } + + _html = _this.$items.eq(index).attr('data-html'); + _src = _this.$items.eq(index).attr('href') || _this.$items.eq(index).attr('data-src'); + + if (_this.$items.eq(index).attr('data-responsive')) { + var srcItms = _this.$items.eq(index).attr('data-responsive').split(','); + getResponsiveSrc(srcItms); + } + + _srcset = _this.$items.eq(index).attr('data-srcset'); + _sizes = _this.$items.eq(index).attr('data-sizes'); + + } + + //if (_src || _srcset || _sizes || _poster) { + + var iframe = false; + if (_this.s.dynamic) { + if (_this.s.dynamicEl[index].iframe) { + iframe = true; + } + } else { + if (_this.$items.eq(index).attr('data-iframe') === 'true') { + iframe = true; + } + } + + var _isVideo = _this.isVideo(_src, index); + if (!_this.$slide.eq(index).hasClass('lg-loaded')) { + if (iframe) { + _this.$slide.eq(index).prepend('
'); + } else if (_hasPoster) { + var videoClass = ''; + if (_isVideo && _isVideo.youtube) { + videoClass = 'lg-has-youtube'; + } else if (_isVideo && _isVideo.vimeo) { + videoClass = 'lg-has-vimeo'; + } else { + videoClass = 'lg-has-html5'; + } + + _this.$slide.eq(index).prepend('
'); + + } else if (_isVideo) { + _this.$slide.eq(index).prepend('
'); + _this.$el.trigger('hasVideo.lg', [index, _src, _html]); + } else { + _this.$slide.eq(index).prepend('
'); + } + + _this.$el.trigger('onAferAppendSlide.lg', [index]); + + _$img = _this.$slide.eq(index).find('.lg-object'); + if (_sizes) { + _$img.attr('sizes', _sizes); + } + + if (_srcset) { + _$img.attr('srcset', _srcset); + try { + picturefill({ + elements: [_$img[0]] + }); + } catch (e) { + console.error('Make sure you have included Picturefill version 2'); + } + } + + if (this.s.appendSubHtmlTo !== '.lg-sub-html') { + _this.addHtml(index); + } + + _this.$slide.eq(index).addClass('lg-loaded'); + } + + _this.$slide.eq(index).find('.lg-object').on('load.lg error.lg', function() { + + // For first time add some delay for displaying the start animation. + var _speed = 0; + + // Do not change the delay value because it is required for zoom plugin. + // If gallery opened from direct url (hash) speed value should be 0 + if (delay && !$('body').hasClass('lg-from-hash')) { + _speed = delay; + } + + setTimeout(function() { + _this.$slide.eq(index).addClass('lg-complete'); + _this.$el.trigger('onSlideItemLoad.lg', [index, delay || 0]); + }, _speed); + + }); + + // @todo check load state for html5 videos + if (_isVideo && _isVideo.html5 && !_hasPoster) { + _this.$slide.eq(index).addClass('lg-complete'); + } + + if (rec === true) { + if (!_this.$slide.eq(index).hasClass('lg-complete')) { + _this.$slide.eq(index).find('.lg-object').on('load.lg error.lg', function() { + _this.preload(index); + }); + } else { + _this.preload(index); + } + } + + //} + }; + + /** + * @desc slide function for lightgallery + ** Slide() gets call on start + ** ** Set lg.on true once slide() function gets called. + ** Call loadContent() on slide() function inside setTimeout + ** ** On first slide we do not want any animation like slide of fade + ** ** So on first slide( if lg.on if false that is first slide) loadContent() should start loading immediately + ** ** Else loadContent() should wait for the transition to complete. + ** ** So set timeout s.speed + 50 + <=> ** loadContent() will load slide content in to the particular slide + ** ** It has recursion (rec) parameter. if rec === true loadContent() will call preload() function. + ** ** preload will execute only when the previous slide is fully loaded (images iframe) + ** ** avoid simultaneous image load + <=> ** Preload() will check for s.preload value and call loadContent() again accoring to preload value + ** loadContent() <====> Preload(); + + * @param {Number} index - index of the slide + * @param {Boolean} fromTouch - true if slide function called via touch event or mouse drag + * @param {Boolean} fromThumb - true if slide function called via thumbnail click + */ + Plugin.prototype.slide = function(index, fromTouch, fromThumb) { + + var _prevIndex = this.$outer.find('.lg-current').index(); + var _this = this; + + // Prevent if multiple call + // Required for hsh plugin + if (_this.lGalleryOn && (_prevIndex === index)) { + return; + } + + var _length = this.$slide.length; + var _time = _this.lGalleryOn ? this.s.speed : 0; + var _next = false; + var _prev = false; + + if (!_this.lgBusy) { + + this.$el.trigger('onBeforeSlide.lg', [_prevIndex, index, fromTouch, fromThumb]); + + _this.lgBusy = true; + + clearTimeout(_this.hideBartimeout); + + // Add title if this.s.appendSubHtmlTo === lg-sub-html + if (this.s.appendSubHtmlTo === '.lg-sub-html') { + + // wait for slide animation to complete + setTimeout(function() { + _this.addHtml(index); + }, _time); + } + + this.arrowDisable(index); + + if (!fromTouch) { + + // remove all transitions + _this.$outer.addClass('lg-no-trans'); + + this.$slide.removeClass('lg-prev-slide lg-next-slide'); + + if (index < _prevIndex) { + _prev = true; + if ((index === 0) && (_prevIndex === _length - 1) && !fromThumb) { + _prev = false; + _next = true; + } + } else if (index > _prevIndex) { + _next = true; + if ((index === _length - 1) && (_prevIndex === 0) && !fromThumb) { + _prev = true; + _next = false; + } + } + + if (_prev) { + + //prevslide + this.$slide.eq(index).addClass('lg-prev-slide'); + this.$slide.eq(_prevIndex).addClass('lg-next-slide'); + } else if (_next) { + + // next slide + this.$slide.eq(index).addClass('lg-next-slide'); + this.$slide.eq(_prevIndex).addClass('lg-prev-slide'); + } + + // give 50 ms for browser to add/remove class + setTimeout(function() { + _this.$slide.removeClass('lg-current'); + + //_this.$slide.eq(_prevIndex).removeClass('lg-current'); + _this.$slide.eq(index).addClass('lg-current'); + + // reset all transitions + _this.$outer.removeClass('lg-no-trans'); + }, 50); + } else { + + var touchPrev = index - 1; + var touchNext = index + 1; + + if ((index === 0) && (_prevIndex === _length - 1)) { + + // next slide + touchNext = 0; + touchPrev = _length - 1; + } else if ((index === _length - 1) && (_prevIndex === 0)) { + + // prev slide + touchNext = 0; + touchPrev = _length - 1; + } + + this.$slide.removeClass('lg-prev-slide lg-current lg-next-slide'); + _this.$slide.eq(touchPrev).addClass('lg-prev-slide'); + _this.$slide.eq(touchNext).addClass('lg-next-slide'); + _this.$slide.eq(index).addClass('lg-current'); + } + + if (_this.lGalleryOn) { + setTimeout(function() { + _this.loadContent(index, true, 0); + }, this.s.speed + 50); + + setTimeout(function() { + _this.lgBusy = false; + _this.$el.trigger('onAfterSlide.lg', [_prevIndex, index, fromTouch, fromThumb]); + }, this.s.speed); + + // Support non css3 browser + if (!_this.doCss()) { + _this.$slide.fadeOut(_this.s.speed); + _this.$slide.eq(index).fadeIn(_this.s.speed); + } + } else { + _this.loadContent(index, true, _this.s.backdropDuration); + + _this.lgBusy = false; + _this.$el.trigger('onAfterSlide.lg', [_prevIndex, index, fromTouch, fromThumb]); + + // Support non css3 browser + if (!_this.doCss()) { + _this.$slide.fadeOut(50); + _this.$slide.eq(index).fadeIn(50); + } + } + + if (this.s.download) { + var _src; + if (_this.s.dynamic) { + _src = _this.s.dynamicEl[index].downloadUrl || _this.s.dynamicEl[index].src; + } else { + _src = _this.$items.eq(index).attr('data-download-url') || _this.$items.eq(index).attr('href') || _this.$items.eq(index).attr('data-src'); + + } + + $('#lg-download').attr('href', _src); + } + + _this.lGalleryOn = true; + + if (this.s.counter) { + $('#lg-counter-current').text(index + 1); + } + + } + + }; + + /** + * @desc Go to next slide + * @param {Boolean} fromTouch - true if slide function called via touch event + */ + Plugin.prototype.goToNextSlide = function(fromTouch) { + var _this = this; + if (!_this.lgBusy) { + if ((_this.index + 1) < _this.$slide.length) { + _this.index++; + _this.$el.trigger('onBeforeNextSlide.lg', [_this.index]); + _this.slide(_this.index, fromTouch, false); + } else { + if (_this.s.loop) { + _this.index = 0; + _this.$el.trigger('onBeforeNextSlide.lg', [_this.index]); + _this.slide(_this.index, fromTouch, false); + } else if (_this.s.slideEndAnimatoin) { + _this.$outer.addClass('lg-right-end'); + setTimeout(function() { + _this.$outer.removeClass('lg-right-end'); + }, 400); + } + } + } + }; + + /** + * @desc Go to previous slide + * @param {Boolean} fromTouch - true if slide function called via touch event + */ + Plugin.prototype.goToPrevSlide = function(fromTouch) { + var _this = this; + if (!_this.lgBusy) { + if (_this.index > 0) { + _this.index--; + _this.$el.trigger('onBeforePrevSlide.lg', [_this.index, fromTouch]); + _this.slide(_this.index, fromTouch, false); + } else { + if (_this.s.loop) { + _this.index = _this.$items.length - 1; + _this.$el.trigger('onBeforePrevSlide.lg', [_this.index, fromTouch]); + _this.slide(_this.index, fromTouch, false); + } else if (_this.s.slideEndAnimatoin) { + _this.$outer.addClass('lg-left-end'); + setTimeout(function() { + _this.$outer.removeClass('lg-left-end'); + }, 400); + } + } + } + }; + + Plugin.prototype.keyPress = function() { + var _this = this; + if (this.$items.length > 1) { + $(window).on('keyup.lg', function(e) { + if (_this.$items.length > 1) { + if (e.keyCode === 37) { + e.preventDefault(); + _this.goToPrevSlide(); + } + + if (e.keyCode === 39) { + e.preventDefault(); + _this.goToNextSlide(); + } + } + }); + } + + $(window).on('keydown.lg', function(e) { + if (_this.s.escKey === true && e.keyCode === 27 && !_this.$outer.hasClass('lg-thumb-open')) { + e.preventDefault(); + _this.destroy(); + } + }); + }; + + Plugin.prototype.arrow = function() { + var _this = this; + this.$outer.find('.lg-prev').on('click.lg', function() { + _this.goToPrevSlide(); + }); + + this.$outer.find('.lg-next').on('click.lg', function() { + _this.goToNextSlide(); + }); + }; + + Plugin.prototype.arrowDisable = function(index) { + + // Disable arrows if s.hideControlOnEnd is true + if (!this.s.loop && this.s.hideControlOnEnd) { + if ((index + 1) < this.$slide.length) { + this.$outer.find('.lg-next').removeAttr('disabled').removeClass('disabled'); + } else { + this.$outer.find('.lg-next').attr('disabled', 'disabled').addClass('disabled'); + } + + if (index > 0) { + this.$outer.find('.lg-prev').removeAttr('disabled').removeClass('disabled'); + } else { + this.$outer.find('.lg-prev').attr('disabled', 'disabled').addClass('disabled'); + } + } + }; + + Plugin.prototype.setTranslate = function($el, xValue, yValue) { + // jQuery supports Automatic CSS prefixing since jQuery 1.8.0 + if (this.s.useLeft) { + $el.css('left', xValue); + } else { + $el.css({ + transform: 'translate3d(' + (xValue) + 'px, ' + yValue + 'px, 0px)' + }); + } + }; + + Plugin.prototype.touchMove = function(startCoords, endCoords) { + + var distance = endCoords - startCoords; + + // reset opacity and transition duration + this.$outer.addClass('lg-dragging'); + + // move current slide + this.setTranslate(this.$slide.eq(this.index), distance, 0); + + // move next and prev slide with current slide + this.setTranslate($('.lg-prev-slide'), -this.$slide.eq(this.index).width() + distance, 0); + this.setTranslate($('.lg-next-slide'), this.$slide.eq(this.index).width() + distance, 0); + }; + + Plugin.prototype.touchEnd = function(distance) { + var _this = this; + + // keep slide animation for any mode while dragg/swipe + if (_this.s.mode !== 'lg-slide') { + _this.$outer.addClass('lg-slide'); + } + + this.$slide.not('.lg-current, .lg-prev-slide, .lg-next-slide').css('opacity', '0'); + + // set transition duration + setTimeout(function() { + _this.$outer.removeClass('lg-dragging'); + if ((distance < 0) && (Math.abs(distance) > _this.s.swipeThreshold)) { + _this.goToNextSlide(true); + } else if ((distance > 0) && (Math.abs(distance) > _this.s.swipeThreshold)) { + _this.goToPrevSlide(true); + } else if (Math.abs(distance) < 5) { + + // Trigger click if distance is less than 5 pix + _this.$el.trigger('onSlideClick.lg'); + } + + _this.$slide.removeAttr('style'); + }); + + // remove slide class once drag/swipe is completed if mode is not slide + setTimeout(function() { + if (!_this.$outer.hasClass('lg-dragging') && _this.s.mode !== 'lg-slide') { + _this.$outer.removeClass('lg-slide'); + } + }, _this.s.speed + 100); + + }; + + Plugin.prototype.enableSwipe = function() { + var _this = this; + var startCoords = 0; + var endCoords = 0; + var isMoved = false; + + if (_this.s.enableSwipe && _this.isTouch && _this.doCss()) { + + _this.$slide.on('touchstart.lg', function(e) { + if (!_this.$outer.hasClass('lg-zoomed') && !_this.lgBusy) { + e.preventDefault(); + _this.manageSwipeClass(); + startCoords = e.originalEvent.targetTouches[0].pageX; + } + }); + + _this.$slide.on('touchmove.lg', function(e) { + if (!_this.$outer.hasClass('lg-zoomed')) { + e.preventDefault(); + endCoords = e.originalEvent.targetTouches[0].pageX; + _this.touchMove(startCoords, endCoords); + isMoved = true; + } + }); + + _this.$slide.on('touchend.lg', function() { + if (!_this.$outer.hasClass('lg-zoomed')) { + if (isMoved) { + isMoved = false; + _this.touchEnd(endCoords - startCoords); + } else { + _this.$el.trigger('onSlideClick.lg'); + } + } + }); + } + + }; + + Plugin.prototype.enableDrag = function() { + var _this = this; + var startCoords = 0; + var endCoords = 0; + var isDraging = false; + var isMoved = false; + if (_this.s.enableDrag && !_this.isTouch && _this.doCss()) { + _this.$slide.on('mousedown.lg', function(e) { + // execute only on .lg-object + if (!_this.$outer.hasClass('lg-zoomed')) { + if ($(e.target).hasClass('lg-object') || $(e.target).hasClass('lg-video-play')) { + e.preventDefault(); + + if (!_this.lgBusy) { + _this.manageSwipeClass(); + startCoords = e.pageX; + isDraging = true; + + // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723 + _this.$outer.scrollLeft += 1; + _this.$outer.scrollLeft -= 1; + + // * + + _this.$outer.removeClass('lg-grab').addClass('lg-grabbing'); + + _this.$el.trigger('onDragstart.lg'); + } + + } + } + }); + + $(window).on('mousemove.lg', function(e) { + if (isDraging) { + isMoved = true; + endCoords = e.pageX; + _this.touchMove(startCoords, endCoords); + _this.$el.trigger('onDragmove.lg'); + } + }); + + $(window).on('mouseup.lg', function(e) { + if (isMoved) { + isMoved = false; + _this.touchEnd(endCoords - startCoords); + _this.$el.trigger('onDragend.lg'); + } else if ($(e.target).hasClass('lg-object') || $(e.target).hasClass('lg-video-play')) { + _this.$el.trigger('onSlideClick.lg'); + } + + // Prevent execution on click + if (isDraging) { + isDraging = false; + _this.$outer.removeClass('lg-grabbing').addClass('lg-grab'); + } + }); + + } + }; + + Plugin.prototype.manageSwipeClass = function() { + var touchNext = this.index + 1; + var touchPrev = this.index - 1; + var length = this.$slide.length; + if (this.s.loop) { + if (this.index === 0) { + touchPrev = length - 1; + } else if (this.index === length - 1) { + touchNext = 0; + } + } + + this.$slide.removeClass('lg-next-slide lg-prev-slide'); + if (touchPrev > -1) { + this.$slide.eq(touchPrev).addClass('lg-prev-slide'); + } + + this.$slide.eq(touchNext).addClass('lg-next-slide'); + }; + + Plugin.prototype.mousewheel = function() { + var _this = this; + _this.$outer.on('mousewheel.lg', function(e) { + if (e.deltaY > 0) { + _this.goToPrevSlide(); + } else { + _this.goToNextSlide(); + } + + e.preventDefault(); + }); + + }; + + Plugin.prototype.closeGallery = function() { + + var _this = this; + var mousedown = false; + this.$outer.find('.lg-close').on('click.lg', function() { + _this.destroy(); + }); + + if (_this.s.closable) { + + // If you drag the slide and release outside gallery gets close on chrome + // for preventing this check mousedown and mouseup happened on .lg-item or lg-outer + _this.$outer.on('mousedown.lg', function(e) { + + if ($(e.target).is('.lg-outer') || $(e.target).is('.lg-item ') || $(e.target).is('.lg-img-wrap')) { + mousedown = true; + } else { + mousedown = false; + } + + }); + + _this.$outer.on('mouseup.lg', function(e) { + + if ($(e.target).is('.lg-outer') || $(e.target).is('.lg-item ') || $(e.target).is('.lg-img-wrap') && mousedown) { + if (!_this.$outer.hasClass('lg-dragging')) { + _this.destroy(); + } + } + + }); + + } + + }; + + Plugin.prototype.destroy = function(d) { + + var _this = this; + + _this.$el.trigger('onBeforeClose.lg'); + + /** + * if d is false or undefined destroy will only close the gallery + * plugins instance remains with the element + + * if d is true destroy will completely remove the plugin + */ + + if (d) { + this.$items.off('click.lg click.lgcustom'); + $.removeData(_this.el, 'lightGallery'); + } + + // Unbind all events added by lightGallery + this.$el.off('.lg.tm'); + + // Distroy all lightGallery modules + $.each($.fn.lightGallery.modules, function(key) { + if (_this.modules[key]) { + _this.modules[key].destroy(); + } + }); + + this.lGalleryOn = false; + + clearTimeout(_this.hideBartimeout); + this.hideBartimeout = false; + $(window).off('.lg'); + $('body').removeClass('lg-on lg-from-hash'); + + if (_this.$outer) { + _this.$outer.removeClass('lg-visible'); + } + + $('.lg-backdrop').removeClass('in'); + + setTimeout(function() { + if (_this.$outer) { + _this.$outer.remove(); + } + + $('.lg-backdrop').remove(); + + _this.$el.trigger('onCloseAfter.lg'); + }, _this.s.backdropDuration + 50); + }; + + $.fn.lightGallery = function(options) { + return this.each(function() { + if (!$.data(this, 'lightGallery')) { + $.data(this, 'lightGallery', new Plugin(this, options)); + } else { + try { + $(this).data('lightGallery').init(); + } catch (err) { + console.error('lightGallery has not initiated properly'); + } + } + }); + }; + + $.fn.lightGallery.modules = {}; + +})(jQuery, window, document); + +/** + * Autoplay Plugin + * @version 1.2.0 + * @author Sachin N - @sachinchoolur + * @license MIT License (MIT) + */ + +(function($, window, document, undefined) { + + 'use strict'; + + var defaults = { + autoplay: false, + pause: 5000, + progressBar: true, + fourceAutoplay: false, + autoplayControls: true, + appendAutoplayControlsTo: '.lg-toolbar' + }; + + /** + * Creates the autoplay plugin. + * @param {object} element - lightGallery element + */ + var Autoplay = function(element) { + + this.core = $(element).data('lightGallery'); + + this.$el = $(element); + + // Exicute only if items are above 1 + if (this.core.$items.length < 2) { + return false; + } + + this.core.s = $.extend({}, defaults, this.core.s); + this.interval = false; + + // Identify if slide happened from autoplay + this.fromAuto = true; + + // Identify if autoplay canceled from touch/drag + this.canceledOnTouch = false; + + // save fourceautoplay value + this.fourceAutoplayTemp = this.core.s.fourceAutoplay; + + // do not allow progress bar if browser does not support css3 transitions + if (!this.core.doCss()) { + this.core.s.progressBar = false; + } + + this.init(); + + return this; + }; + + Autoplay.prototype.init = function() { + var _this = this; + + // append autoplay controls + if (_this.core.s.autoplayControls) { + _this.controls(); + } + + // Create progress bar + if (_this.core.s.progressBar) { + _this.core.$outer.find('.lg').append('
'); + } + + // set progress + _this.progress(); + + // Start autoplay + if (_this.core.s.autoplay) { + _this.startlAuto(); + } + + // cancel interval on touchstart and dragstart + _this.$el.on('onDragstart.lg.tm touchstart.lg.tm', function() { + if (_this.interval) { + _this.cancelAuto(); + _this.canceledOnTouch = true; + } + }); + + // restore autoplay if autoplay canceled from touchstart / dragstart + _this.$el.on('onDragend.lg.tm touchend.lg.tm onSlideClick.lg.tm', function() { + if (!_this.interval && _this.canceledOnTouch) { + _this.startlAuto(); + _this.canceledOnTouch = false; + } + }); + + }; + + Autoplay.prototype.progress = function() { + + var _this = this; + var _$progressBar; + var _$progress; + + _this.$el.on('onBeforeSlide.lg.tm', function() { + + // start progress bar animation + if (_this.core.s.progressBar && _this.fromAuto) { + _$progressBar = _this.core.$outer.find('.lg-progress-bar'); + _$progress = _this.core.$outer.find('.lg-progress'); + if (_this.interval) { + _$progress.removeAttr('style'); + _$progressBar.removeClass('lg-start'); + setTimeout(function() { + _$progress.css('transition', 'width ' + (_this.core.s.speed + _this.core.s.pause) + 'ms ease 0s'); + _$progressBar.addClass('lg-start'); + }, 20); + } + } + + // Remove setinterval if slide is trigered manualy and fourceautoplay is false + if (!_this.fromAuto && !_this.core.s.fourceAutoplay) { + _this.cancelAuto(); + } + + _this.fromAuto = false; + + }); + }; + + // Manage autoplay via play/stop buttons + Autoplay.prototype.controls = function() { + var _this = this; + var _html = ''; + + // Append autoplay controls + $(this.core.s.appendAutoplayControlsTo).append(_html); + + _this.core.$outer.find('.lg-autoplay-button').on('click.lg', function() { + if ($(_this.core.$outer).hasClass('lg-show-autoplay')) { + _this.cancelAuto(); + _this.core.s.fourceAutoplay = false; + } else { + if (!_this.interval) { + _this.startlAuto(); + _this.core.s.fourceAutoplay = _this.fourceAutoplayTemp; + } + } + }); + }; + + // Autostart gallery + Autoplay.prototype.startlAuto = function() { + var _this = this; + + _this.core.$outer.find('.lg-progress').css('transition', 'width ' + (_this.core.s.speed + _this.core.s.pause) + 'ms ease 0s'); + _this.core.$outer.addClass('lg-show-autoplay'); + _this.core.$outer.find('.lg-progress-bar').addClass('lg-start'); + + _this.interval = setInterval(function() { + if (_this.core.index + 1 < _this.core.$items.length) { + _this.core.index = _this.core.index; + } else { + _this.core.index = -1; + } + + _this.core.index++; + _this.fromAuto = true; + _this.core.slide(_this.core.index, false, false); + }, _this.core.s.speed + _this.core.s.pause); + }; + + // cancel Autostart + Autoplay.prototype.cancelAuto = function() { + clearInterval(this.interval); + this.interval = false; + this.core.$outer.find('.lg-progress').removeAttr('style'); + this.core.$outer.removeClass('lg-show-autoplay'); + this.core.$outer.find('.lg-progress-bar').removeClass('lg-start'); + }; + + Autoplay.prototype.destroy = function() { + + this.cancelAuto(); + this.core.$outer.find('.lg-progress-bar').remove(); + }; + + $.fn.lightGallery.modules.autoplay = Autoplay; + +})(jQuery, window, document); + +(function($, window, document, undefined) { + + '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.reuestFullscreen = 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.reuestFullscreen(); + } 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; + +})(jQuery, window, document); + +(function($, window, document, undefined) { + + 'use strict'; + + var defaults = { + pager: false + }; + + var Pager = function(element) { + + this.core = $(element).data('lightGallery'); + + this.$el = $(element); + this.core.s = $.extend({}, defaults, this.core.s); + if (this.core.s.pager && this.core.$items.length > 1) { + this.init(); + } + + return this; + }; + + Pager.prototype.init = function() { + var _this = this; + var pagerList = ''; + var $pagerCont; + var $pagerOuter; + var timeout; + + _this.core.$outer.find('.lg').append('
'); + + if (_this.core.s.dynamic) { + for (var i = 0; i < _this.core.s.dynamicEl.length; i++) { + pagerList += '
'; + } + } else { + _this.core.$items.each(function() { + + if (!_this.core.s.exThumbImage) { + pagerList += '
'; + } else { + pagerList += '
'; + } + + }); + } + + $pagerOuter = _this.core.$outer.find('.lg-pager-outer'); + + $pagerOuter.html(pagerList); + + $pagerCont = _this.core.$outer.find('.lg-pager-cont'); + $pagerCont.on('click.lg touchend.lg', function() { + var _$this = $(this); + _this.core.index = _$this.index(); + _this.core.slide(_this.core.index, false, false); + }); + + $pagerOuter.on('mouseover.lg', function() { + clearTimeout(timeout); + $pagerOuter.addClass('lg-pager-hover'); + }); + + $pagerOuter.on('mouseout.lg', function() { + timeout = setTimeout(function() { + $pagerOuter.removeClass('lg-pager-hover'); + }); + }); + + _this.core.$el.on('onBeforeSlide.lg.tm', function(e, prevIndex, index) { + $pagerCont.removeClass('lg-pager-active'); + $pagerCont.eq(index).addClass('lg-pager-active'); + }); + + }; + + Pager.prototype.destroy = function() { + + }; + + $.fn.lightGallery.modules.pager = Pager; + +})(jQuery, window, document); + +(function($, window, document, undefined) { + + 'use strict'; + + var defaults = { + thumbnail: true, + + animateThumb: true, + currentPagerPosition: 'middle', + + thumbWidth: 100, + thumbContHeight: 100, + thumbMargin: 5, + + exThumbImage: false, + showThumbByDefault: true, + toogleThumb: true, + + enableThumbDrag: true, + enableThumbSwipe: true, + swipeThreshold: 50, + + loadYoutubeThumbnail: true, + youtubeThumbSize: 1, + + loadVimeoThumbnail: true, + vimeoThumbSize: 'thumbnail_small' + }; + + var Thumbnail = function(element) { + + // get lightGallery core plugin data + this.core = $(element).data('lightGallery'); + + // extend module default settings with lightGallery core settings + this.core.s = $.extend({}, defaults, this.core.s); + + this.$el = $(element); + this.$thumbOuter = null; + this.thumbOuterWidth = 0; + this.thumbTotalWidth = (this.core.$items.length * (this.core.s.thumbWidth + this.core.s.thumbMargin)); + this.thumbIndex = this.core.index; + + // Thumbnail animation value + this.left = 0; + + this.init(); + + return this; + }; + + Thumbnail.prototype.init = function() { + if (this.core.s.thumbnail && this.core.$items.length > 1) { + if (this.core.s.showThumbByDefault) { + this.core.$outer.addClass('lg-thumb-open'); + } + + this.build(); + if (this.core.s.animateThumb) { + if (this.core.s.enableThumbDrag && !this.core.isTouch && this.core.doCss()) { + this.enableThumbDrag(); + } + + if (this.core.s.enableThumbSwipe && this.core.isTouch && this.core.doCss()) { + this.enableThumbSwipe(); + } + + this.thumbClickable = false; + } else { + this.thumbClickable = true; + } + + this.toogle(); + this.thumbkeyPress(); + } + }; + + Thumbnail.prototype.build = function() { + var _this = this; + var thumbList = ''; + var viemoErrorThumbSize = ''; + var $thumb; + var html = '
' + + '
' + + '
' + + '
'; + + switch (this.core.s.vimeoThumbSize) { + case 'thumbnail_large': + viemoErrorThumbSize = '640'; + break; + case 'thumbnail_medium': + viemoErrorThumbSize = '200x150'; + break; + case 'thumbnail_small': + viemoErrorThumbSize = '100x75'; + } + + _this.core.$outer.addClass('lg-has-thumb'); + + _this.core.$outer.find('.lg').append(html); + + _this.$thumbOuter = _this.core.$outer.find('.lg-thumb-outer'); + _this.thumbOuterWidth = _this.$thumbOuter.width(); + + if (_this.core.s.animateThumb) { + _this.core.$outer.find('.lg-thumb').css({ + width: _this.thumbTotalWidth + 'px', + position: 'relative' + }); + } + + if (this.core.s.animateThumb) { + _this.$thumbOuter.css('height', _this.core.s.thumbContHeight + 'px'); + } + + function getThumb(src, thumb, index) { + var isVideo = _this.core.isVideo(src, index) || {}; + var thumbImg; + var vimeoId = ''; + + if (isVideo.youtube || isVideo.vimeo) { + if (isVideo.youtube) { + if (_this.core.s.loadYoutubeThumbnail) { + thumbImg = 'http://img.youtube.com/vi/' + isVideo.youtube[1] + '/' + _this.core.s.youtubeThumbSize + '.jpg'; + } else { + thumbImg = thumb; + } + } else if (isVideo.vimeo) { + if (_this.core.s.loadVimeoThumbnail) { + thumbImg = 'https://i.vimeocdn.com/video/error_' + viemoErrorThumbSize + '.jpg'; + vimeoId = isVideo.vimeo[1]; + } else { + thumbImg = thumb; + } + } + } else { + thumbImg = thumb; + } + + thumbList += '
'; + vimeoId = ''; + } + + if (_this.core.s.dynamic) { + for (var i = 0; i < _this.core.s.dynamicEl.length; i++) { + getThumb(_this.core.s.dynamicEl[i].src, _this.core.s.dynamicEl[i].thumb, i); + } + } else { + _this.core.$items.each(function(i) { + + if (!_this.core.s.exThumbImage) { + getThumb($(this).attr('href') || $(this).attr('data-src'), $(this).find('img').attr('src'), i); + } else { + getThumb($(this).attr('href') || $(this).attr('data-src'), $(this).attr(_this.core.s.exThumbImage), i); + } + + }); + } + + _this.core.$outer.find('.lg-thumb').html(thumbList); + + $thumb = _this.core.$outer.find('.lg-thumb-item'); + + // Load vimeo thumbnails + $thumb.each(function() { + var $this = $(this); + var vimeoVideoId = $this.attr('data-vimoe-id'); + + if (vimeoVideoId) { + $.getJSON('http://www.vimeo.com/api/v2/video/' + vimeoVideoId + '.json?callback=?', { + format: 'json' + }, function(data) { + $this.find('img').attr('src', data[0][_this.core.s.vimeoThumbSize]); + }); + } + }); + + // manage active class for thumbnail + $thumb.eq(_this.core.index).addClass('active'); + _this.core.$el.on('onBeforeSlide.lg.tm', function() { + $thumb.removeClass('active'); + $thumb.eq(_this.core.index).addClass('active'); + }); + + $thumb.on('click.lg touchend.lg', function() { + var _$this = $(this); + setTimeout(function() { + + // In IE9 and bellow touch does not support + // Go to slide if browser does not support css transitions + if ((_this.thumbClickable && !_this.core.lgBusy) || !_this.core.doCss()) { + _this.core.index = _$this.index(); + _this.core.slide(_this.core.index, false, true); + } + }, 50); + }); + + _this.core.$el.on('onBeforeSlide.lg.tm', function() { + _this.animateThumb(_this.core.index); + }); + + $(window).on('resize.lg.thumb orientationchange.lg.thumb', function() { + setTimeout(function() { + _this.animateThumb(_this.core.index); + _this.thumbOuterWidth = _this.$thumbOuter.width(); + }, 200); + }); + + }; + + Thumbnail.prototype.setTranslate = function(value) { + // jQuery supports Automatic CSS prefixing since jQuery 1.8.0 + this.core.$outer.find('.lg-thumb').css({ + transform: 'translate3d(-' + (value) + 'px, 0px, 0px)' + }); + }; + + Thumbnail.prototype.animateThumb = function(index) { + var $thumb = this.core.$outer.find('.lg-thumb'); + if (this.core.s.animateThumb) { + var position; + switch (this.core.s.currentPagerPosition) { + case 'left': + position = 0; + break; + case 'middle': + position = (this.thumbOuterWidth / 2) - (this.core.s.thumbWidth / 2); + break; + case 'right': + position = this.thumbOuterWidth - this.core.s.thumbWidth; + } + this.left = ((this.core.s.thumbWidth + this.core.s.thumbMargin) * index - 1) - position; + if (this.left > (this.thumbTotalWidth - this.thumbOuterWidth)) { + this.left = this.thumbTotalWidth - this.thumbOuterWidth; + } + + if (this.left < 0) { + this.left = 0; + } + + if (this.core.lGalleryOn) { + if (!$thumb.hasClass('on')) { + this.core.$outer.find('.lg-thumb').css('transition-duration', this.core.s.speed + 'ms'); + } + + if (!this.core.doCss()) { + $thumb.animate({ + left: -this.left + 'px' + }, this.core.s.speed); + } + } else { + if (!this.core.doCss()) { + $thumb.css('left', -this.left + 'px'); + } + } + + this.setTranslate(this.left); + + } + }; + + // Enable thumbnail dragging and swiping + Thumbnail.prototype.enableThumbDrag = function() { + + var _this = this; + var startCoords = 0; + var endCoords = 0; + var isDraging = false; + var isMoved = false; + var tempLeft = 0; + + _this.$thumbOuter.addClass('lg-grab'); + + _this.core.$outer.find('.lg-thumb').on('mousedown.lg.thumb', function(e) { + if (_this.thumbTotalWidth > _this.thumbOuterWidth) { + // execute only on .lg-object + e.preventDefault(); + startCoords = e.pageX; + isDraging = true; + + // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723 + _this.core.$outer.scrollLeft += 1; + _this.core.$outer.scrollLeft -= 1; + + // * + _this.thumbClickable = false; + _this.$thumbOuter.removeClass('lg-grab').addClass('lg-grabbing'); + } + }); + + $(window).on('mousemove.lg.thumb', function(e) { + if (isDraging) { + tempLeft = _this.left; + isMoved = true; + endCoords = e.pageX; + + _this.$thumbOuter.addClass('lg-dragging'); + + tempLeft = tempLeft - (endCoords - startCoords); + + if (tempLeft > (_this.thumbTotalWidth - _this.thumbOuterWidth)) { + tempLeft = _this.thumbTotalWidth - _this.thumbOuterWidth; + } + + if (tempLeft < 0) { + tempLeft = 0; + } + + // move current slide + _this.setTranslate(tempLeft); + + } + }); + + $(window).on('mouseup.lg.thumb', function() { + if (isMoved) { + isMoved = false; + _this.$thumbOuter.removeClass('lg-dragging'); + + _this.left = tempLeft; + + if (Math.abs(endCoords - startCoords) < _this.core.s.swipeThreshold) { + _this.thumbClickable = true; + } + + } else { + _this.thumbClickable = true; + } + + if (isDraging) { + isDraging = false; + _this.$thumbOuter.removeClass('lg-grabbing').addClass('lg-grab'); + } + }); + + }; + + Thumbnail.prototype.enableThumbSwipe = function() { + var _this = this; + var startCoords = 0; + var endCoords = 0; + var isMoved = false; + var tempLeft = 0; + + _this.core.$outer.find('.lg-thumb').on('touchstart.lg', function(e) { + if (_this.thumbTotalWidth > _this.thumbOuterWidth) { + e.preventDefault(); + startCoords = e.originalEvent.targetTouches[0].pageX; + _this.thumbClickable = false; + } + }); + + _this.core.$outer.find('.lg-thumb').on('touchmove.lg', function(e) { + if (_this.thumbTotalWidth > _this.thumbOuterWidth) { + e.preventDefault(); + endCoords = e.originalEvent.targetTouches[0].pageX; + isMoved = true; + + _this.$thumbOuter.addClass('lg-dragging'); + + tempLeft = _this.left; + + tempLeft = tempLeft - (endCoords - startCoords); + + if (tempLeft > (_this.thumbTotalWidth - _this.thumbOuterWidth)) { + tempLeft = _this.thumbTotalWidth - _this.thumbOuterWidth; + } + + if (tempLeft < 0) { + tempLeft = 0; + } + + // move current slide + _this.setTranslate(tempLeft); + + } + }); + + _this.core.$outer.find('.lg-thumb').on('touchend.lg', function() { + if (_this.thumbTotalWidth > _this.thumbOuterWidth) { + + if (isMoved) { + isMoved = false; + _this.$thumbOuter.removeClass('lg-dragging'); + if (Math.abs(endCoords - startCoords) < _this.core.s.swipeThreshold) { + _this.thumbClickable = true; + } + + _this.left = tempLeft; + } else { + _this.thumbClickable = true; + } + } else { + _this.thumbClickable = true; + } + }); + + }; + + Thumbnail.prototype.toogle = function() { + var _this = this; + if (_this.core.s.toogleThumb) { + _this.core.$outer.addClass('lg-can-toggle'); + _this.$thumbOuter.append(''); + _this.core.$outer.find('.lg-toogle-thumb').on('click.lg', function() { + _this.core.$outer.toggleClass('lg-thumb-open'); + }); + } + }; + + Thumbnail.prototype.thumbkeyPress = function() { + var _this = this; + $(window).on('keydown.lg.thumb', function(e) { + if (e.keyCode === 38) { + e.preventDefault(); + _this.core.$outer.addClass('lg-thumb-open'); + } else if (e.keyCode === 40) { + e.preventDefault(); + _this.core.$outer.removeClass('lg-thumb-open'); + } + }); + }; + + Thumbnail.prototype.destroy = function() { + if (this.core.s.thumbnail && this.core.$items.length > 1) { + $(window).off('resize.lg.thumb orientationchange.lg.thumb keydown.lg.thumb'); + this.$thumbOuter.remove(); + this.core.$outer.removeClass('lg-has-thumb'); + } + }; + + $.fn.lightGallery.modules.Thumbnail = Thumbnail; + +})(jQuery, window, document); + +(function($, window, document, undefined) { + + 'use strict'; + + var defaults = { + videoMaxWidth: '855px', + youtubePlayerParams: false, + vimeoPlayerParams: false, + videojs: false + }; + + var Video = function(element) { + + this.core = $(element).data('lightGallery'); + + this.$el = $(element); + this.core.s = $.extend({}, defaults, this.core.s); + this.videoLoaded = false; + + this.init(); + + return this; + }; + + Video.prototype.init = function() { + var _this = this; + + // Event triggered when video url found without poster + _this.core.$el.on('hasVideo.lg.tm', function(event, index, src, html) { + _this.core.$slide.eq(index).find('.lg-video').append(_this.loadVideo(src, 'lg-object', true, index, html)); + if (html) { + if (_this.core.s.videojs) { + try { + videojs(_this.core.$slide.eq(index).find('.lg-html5').get(0), {}, function() { + if (!_this.videoLoaded) { + this.play(); + } + }); + } catch (e) { + console.error('Make sure you have included videojs'); + } + } else { + _this.core.$slide.eq(index).find('.lg-html5').get(0).play(); + } + } + }); + + // Set max width for video + _this.core.$el.on('onAferAppendSlide.lg.tm', function(event, index) { + _this.core.$slide.eq(index).find('.lg-video-cont').css('max-width', _this.core.s.videoMaxWidth); + _this.videoLoaded = true; + }); + + var loadOnClick = function($el) { + // check slide has poster + if ($el.find('.lg-object').hasClass('lg-has-poster')) { + + // chack already video element present + if (!$el.hasClass('lg-has-video')) { + + $el.addClass('lg-video-palying lg-has-video'); + + var _src; + var _html; + var _loadVideo = function(_src, _html) { + + $el.find('.lg-video').append(_this.loadVideo(_src, '', false, _this.core.index, _html)); + + if (_html) { + if (_this.core.s.videojs) { + try { + videojs(_this.core.$slide.eq(_this.core.index).find('.lg-html5').get(0), {}, function() { + this.play(); + }); + } catch (e) { + console.error('Make sure you have included videojs'); + } + } else { + _this.core.$slide.eq(_this.core.index).find('.lg-html5').get(0).play(); + } + } + + }; + + if (_this.core.s.dynamic) { + + _src = _this.core.s.dynamicEl[_this.core.index].src; + _html = _this.core.s.dynamicEl[_this.core.index].html; + + _loadVideo(_src, _html); + + } else { + + _src = _this.core.$items.eq(_this.core.index).attr('data-src'); + _html = _this.core.$items.eq(_this.core.index).attr('data-html'); + + _loadVideo(_src, _html); + + } + + var $tempImg = $el.find('.lg-object'); + $el.find('.lg-video').append($tempImg); + + // @todo loading icon for html5 videos also + // for showing the loading indicator while loading video + if (!$el.find('.lg-video-object').hasClass('lg-html5')) { + $el.removeClass('lg-complete'); + $el.find('.lg-video-object').on('load.lg error.lg', function() { + $el.addClass('lg-complete'); + }); + } + + } else { + + var youtubePlayer = $el.find('.lg-youtube').get(0); + var vimeoPlayer = $el.find('.lg-vimeo').get(0); + var html5Player = $el.find('.lg-html5').get(0); + if (youtubePlayer) { + youtubePlayer.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}', '*'); + } else if (vimeoPlayer) { + try { + $f(vimeoPlayer).api('play'); + } catch (e) { + console.error('Make sure you have included froogaloop2 js'); + } + } else if (html5Player) { + if (_this.core.s.videojs) { + try { + videojs(html5Player).play(); + } catch (e) { + console.error('Make sure you have included videojs'); + } + } else { + html5Player.play(); + } + } + + $el.addClass('lg-video-palying'); + + } + } + }; + + if (_this.core.doCss()) { + _this.core.$el.on('onSlideClick.lg.tm', function() { + var $el = _this.core.$slide.eq(_this.core.index); + loadOnClick($el); + }); + } else { + + // For IE 9 and bellow + _this.core.$slide.on('click.lg', function() { + loadOnClick($(this)); + }); + } + + _this.core.$el.on('onBeforeSlide.lg.tm', function(event, prevIndex) { + + var $videoSlide = _this.core.$slide.eq(prevIndex); + var youtubePlayer = $videoSlide.find('.lg-youtube').get(0); + var vimeoPlayer = $videoSlide.find('.lg-vimeo').get(0); + var html5Player = $videoSlide.find('.lg-html5').get(0); + if (youtubePlayer) { + youtubePlayer.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}', '*'); + } else if (vimeoPlayer) { + try { + $f(vimeoPlayer).api('pause'); + } catch (e) { + console.error('Make sure you have included froogaloop2 js'); + } + } else if (html5Player) { + if (_this.core.s.videojs) { + try { + videojs(html5Player).pause(); + } catch (e) { + console.error('Make sure you have included videojs'); + } + } else { + html5Player.pause(); + } + } + + //$videoSlide.addClass('lg-complete'); + + }); + + _this.core.$el.on('onAfterSlide.lg.tm', function(event, prevIndex) { + _this.core.$slide.eq(prevIndex).removeClass('lg-video-palying'); + }); + }; + + Video.prototype.loadVideo = function(src, addClass, noposter, index, html) { + var video = ''; + var autoplay = 1; + var a = ''; + var isVideo = this.core.isVideo(src, index) || {}; + + // Enable autoplay for first video if poster doesn't exist + if (noposter) { + if (this.videoLoaded) { + autoplay = 0; + } else { + autoplay = 1; + } + } + + if (isVideo.youtube) { + + a = '?wmode=opaque&autoplay=' + autoplay + '&enablejsapi=1'; + if (this.core.s.youtubePlayerParams) { + a = a + '&' + $.param(this.core.s.youtubePlayerParams); + } + + video = ''; + + } else if (isVideo.vimeo) { + + a = '?autoplay=' + autoplay + '&api=1'; + if (this.core.s.vimeoPlayerParams) { + a = a + '&' + $.param(this.core.s.vimeoPlayerParams); + } + + video = ''; + + } else if (isVideo.html5) { + var fL = html.substring(0, 1); + if (fL === '.' || fL === '#') { + html = $(html).html(); + } + + video = html; + } + + return video; + }; + + Video.prototype.destroy = function() { + this.videoLoaded = false; + }; + + $.fn.lightGallery.modules.video = Video; + +})(jQuery, window, document); + +/** + * Zoom Plugin + * @version 1.2.0 + * @author Sachin N - @sachinchoolur + * @license MIT License (MIT) + */ +(function($, window, document, undefined) { + + 'use strict'; + + var defaults = { + scale: 1, + zoom: true, + enableZoomAfter: 300 + }; + + var Zoom = function(element) { + + this.core = $(element).data('lightGallery'); + + this.core.s = $.extend({}, defaults, this.core.s); + + if (this.core.s.zoom && this.core.doCss()) { + this.init(); + this.zoomabletimeout = false; + } + + return this; + }; + + Zoom.prototype.init = function() { + + var _this = this; + var zoomIcons = ''; + + this.core.$outer.find('.lg-toolbar').append(zoomIcons); + + // Add zoomable class + _this.core.$el.on('onSlideItemLoad.lg.tm.zoom', function(event, index, delay) { + + // delay will be 0 except first time + var _speed = _this.core.s.enableZoomAfter + delay; + + // set _speed value 0 if gallery opened from direct url and if it is first slide + if ($('body').hasClass('lg-from-hash') && delay) { + + // will execute only one time + _speed = 0; + } else { + + // Remove lg-from-hash to enable starting animation. + $('body').removeClass('lg-from-hash'); + } + + _this.zoomabletimeout = setTimeout(function() { + _this.core.$slide.eq(index).addClass('lg-zoomable'); + }, _speed + 30); + }); + + var scale = 1; + /** + * @desc Image zoom + * Translate the wrap and scale the image to get better user experience + * + * @param {String} scaleVal - Zoom decrement/increment value + * @param {Boolean} db - true if zoom called via doubleclick + * @todo Currently zoom origin is center it should work from all the directions + */ + var zoom = function(scaleVal, db, pageX, pageY) { + + var $image = _this.core.$outer.find('.lg-current .lg-image'); + var _x; + var _y; + if (db) { + _x = pageX - $image.offset().left; + _y = pageY - $image.offset().top; + } else { + _x = $image.width() / 2; + _y = $image.height() / 2; + } + + var x = (scaleVal - 1) * (_x); + var y = (scaleVal - 1) * (_y); + + $image.css('transform', 'scale3d(' + scaleVal + ', ' + scaleVal + ', 1)').attr('data-scale', scaleVal); + + $image.parent().css('transform', 'translate3d(-' + x + 'px, -' + y + 'px, 0)').attr('data-x', x).attr('data-y', y); + }; + + var callScale = function(db, pageX, pageY) { + if (scale > 1) { + _this.core.$outer.addClass('lg-zoomed'); + } else { + _this.core.$outer.removeClass('lg-zoomed'); + } + + if (scale < 1) { + scale = 1; + } + + zoom(scale, db, pageX, pageY); + }; + + // event triggered after appending slide content + _this.core.$el.on('onAferAppendSlide.lg.tm.zoom', function(event, index) { + + // Get the current element + var $image = _this.core.$slide.eq(index).find('.lg-image'); + + $image.dblclick(function(event) { + + var w = $image.width(); + var nw = _this.core.$items.eq(index).attr('data-width') || $image[0].naturalWidth || w; + var _scale; + + if (_this.core.$outer.hasClass('lg-zoomed')) { + scale = 1; + } else { + if (nw > w) { + _scale = nw / w; + scale = _scale || 2; + } + } + + callScale(true, event.pageX, event.pageY); + setTimeout(function() { + _this.core.$outer.removeClass('lg-grabbing').addClass('lg-grab'); + }, 10); + }); + + }); + + // Update zoom on resize and orientationchange + $(window).on('resize.lg.zoom orientationchange.lg.zoom', function() { + setTimeout(function() { + if (_this.core.$outer.hasClass('lg-zoomed')) { + zoom(scale); + } + }, 10); + }); + + $('#lg-zoom-out').on('click.lg', function() { + if (_this.core.$outer.find('.lg-current .lg-image').length) { + scale -= _this.core.s.scale; + callScale(); + } + }); + + $('#lg-zoom-in').on('click.lg', function() { + if (_this.core.$outer.find('.lg-current .lg-image').length) { + scale += _this.core.s.scale; + callScale(); + } + }); + + // Reset zoom on slide change + _this.core.$el.on('onBeforeSlide.lg.tm', function() { + _this.resetZoom(); + }); + + // Drag option after zoom + if (!_this.core.isTouch) { + _this.zoomDrag(); + } + + if (_this.core.isTouch) { + _this.zoomSwipe(); + } + + }; + + // Reset zoom effect + Zoom.prototype.resetZoom = function() { + this.core.$outer.removeClass('lg-zoomed'); + this.core.$slide.find('.lg-img-wrap').removeAttr('style data-x data-y'); + this.core.$slide.find('.lg-image').removeAttr('style data-scale'); + }; + + Zoom.prototype.zoomSwipe = function() { + var _this = this; + var startCoords = {}; + var endCoords = {}; + var isMoved = false; + + // Allow x direction drag + var allowX = false; + + // Allow Y direction drag + var allowY = false; + + _this.core.$slide.on('touchstart.lg', function(e) { + + if (_this.core.$outer.hasClass('lg-zoomed')) { + var $image = _this.core.$slide.eq(_this.core.index).find('.lg-object'); + + allowY = $image.outerHeight() * $image.attr('data-scale') > _this.core.$outer.find('.lg').height(); + allowX = $image.outerWidth() * $image.attr('data-scale') > _this.core.$outer.find('.lg').width(); + if ((allowX || allowY)) { + e.preventDefault(); + startCoords = { + x: e.originalEvent.targetTouches[0].pageX, + y: e.originalEvent.targetTouches[0].pageY + }; + } + } + + }); + + _this.core.$slide.on('touchmove.lg', function(e) { + + if (_this.core.$outer.hasClass('lg-zoomed')) { + + var _$el = _this.core.$slide.eq(_this.core.index).find('.lg-img-wrap'); + var distanceX; + var distanceY; + + e.preventDefault(); + isMoved = true; + endCoords = e.originalEvent.targetTouches[0].pageX; + + endCoords = { + x: e.originalEvent.targetTouches[0].pageX, + y: e.originalEvent.targetTouches[0].pageY + }; + + // reset opacity and transition duration + _this.core.$outer.addClass('lg-zoom-dragging'); + + if (allowY) { + distanceY = (-Math.abs(_$el.attr('data-y'))) + (endCoords.y - startCoords.y); + } else { + distanceY = -Math.abs(_$el.attr('data-y')); + } + + if (allowX) { + distanceX = (-Math.abs(_$el.attr('data-x'))) + (endCoords.x - startCoords.x); + } else { + distanceX = -Math.abs(_$el.attr('data-x')); + } + + _$el.css('transform', 'translate3d(' + distanceX + 'px, ' + distanceY + 'px, 0)'); + + } + + }); + + _this.core.$slide.on('touchend.lg', function() { + if (_this.core.$outer.hasClass('lg-zoomed')) { + if (isMoved) { + isMoved = false; + _this.core.$outer.removeClass('lg-zoom-dragging'); + _this.touchendZoom(startCoords, endCoords, allowX, allowY); + + } + } + }); + + }; + + Zoom.prototype.zoomDrag = function() { + + var _this = this; + var startCoords = {}; + var endCoords = {}; + var isDraging = false; + var isMoved = false; + + // Allow x direction drag + var allowX = false; + + // Allow Y direction drag + var allowY = false; + + _this.core.$slide.on('mousedown.lg.zoom', function(e) { + + // execute only on .lg-object + var $image = _this.core.$slide.eq(_this.core.index).find('.lg-object'); + + allowY = $image.outerHeight() * $image.attr('data-scale') > _this.core.$outer.find('.lg').height(); + allowX = $image.outerWidth() * $image.attr('data-scale') > _this.core.$outer.find('.lg').width(); + + if (_this.core.$outer.hasClass('lg-zoomed')) { + if ($(e.target).hasClass('lg-object') && (allowX || allowY)) { + e.preventDefault(); + startCoords = { + x: e.pageX, + y: e.pageY + }; + + isDraging = true; + + // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723 + _this.core.$outer.scrollLeft += 1; + _this.core.$outer.scrollLeft -= 1; + + _this.core.$outer.removeClass('lg-grab').addClass('lg-grabbing'); + } + } + }); + + $(window).on('mousemove.lg.zoom', function(e) { + if (isDraging) { + var _$el = _this.core.$slide.eq(_this.core.index).find('.lg-img-wrap'); + var distanceX; + var distanceY; + + isMoved = true; + endCoords = { + x: e.pageX, + y: e.pageY + }; + + // reset opacity and transition duration + _this.core.$outer.addClass('lg-zoom-dragging'); + + if (allowY) { + distanceY = (-Math.abs(_$el.attr('data-y'))) + (endCoords.y - startCoords.y); + } else { + distanceY = -Math.abs(_$el.attr('data-y')); + } + + if (allowX) { + distanceX = (-Math.abs(_$el.attr('data-x'))) + (endCoords.x - startCoords.x); + } else { + distanceX = -Math.abs(_$el.attr('data-x')); + } + + _$el.css('transform', 'translate3d(' + distanceX + 'px, ' + distanceY + 'px, 0)'); + } + }); + + $(window).on('mouseup.lg.zoom', function(e) { + + if (isDraging) { + isDraging = false; + _this.core.$outer.removeClass('lg-zoom-dragging'); + + // Fix for chrome mouse move on click + if (isMoved && ((startCoords.x !== endCoords.x) || (startCoords.y !== endCoords.y))) { + endCoords = { + x: e.pageX, + y: e.pageY + }; + _this.touchendZoom(startCoords, endCoords, allowX, allowY); + + } + + isMoved = false; + } + + _this.core.$outer.removeClass('lg-grabbing').addClass('lg-grab'); + + }); + }; + + Zoom.prototype.touchendZoom = function(startCoords, endCoords, allowX, allowY) { + + var _this = this; + var _$el = _this.core.$slide.eq(_this.core.index).find('.lg-img-wrap'); + var $image = _this.core.$slide.eq(_this.core.index).find('.lg-object'); + var distanceX = (-Math.abs(_$el.attr('data-x'))) + (endCoords.x - startCoords.x); + var distanceY = (-Math.abs(_$el.attr('data-y'))) + (endCoords.y - startCoords.y); + var minY = (_this.core.$outer.find('.lg').height() - $image.outerHeight()) / 2; + var maxY = Math.abs(($image.outerHeight() * Math.abs($image.attr('data-scale'))) - _this.core.$outer.find('.lg').height() + minY); + var minX = (_this.core.$outer.find('.lg').width() - $image.outerWidth()) / 2; + var maxX = Math.abs(($image.outerWidth() * Math.abs($image.attr('data-scale'))) - _this.core.$outer.find('.lg').width() + minX); + + if (allowY) { + if (distanceY <= -maxY) { + distanceY = -maxY; + } else if (distanceY >= -minY) { + distanceY = -minY; + } + } + + if (allowX) { + if (distanceX <= -maxX) { + distanceX = -maxX; + } else if (distanceX >= -minX) { + distanceX = -minX; + } + } + + if (allowY) { + _$el.attr('data-y', Math.abs(distanceY)); + } else { + distanceY = -Math.abs(_$el.attr('data-y')); + } + + if (allowX) { + _$el.attr('data-x', Math.abs(distanceX)); + } else { + distanceX = -Math.abs(_$el.attr('data-x')); + } + + _$el.css('transform', 'translate3d(' + distanceX + 'px, ' + distanceY + 'px, 0)'); + }; + + Zoom.prototype.destroy = function() { + + var _this = this; + + // Unbind all events added by lightGallery zoom plugin + _this.core.$el.off('.lg.zoom'); + $(window).off('.lg.zoom'); + _this.core.$slide.off('.lg.zoom'); + _this.core.$el.off('.lg.tm.zoom'); + _this.resetZoom(); + clearTimeout(_this.zoomabletimeout); + _this.zoomabletimeout = false; + }; + + $.fn.lightGallery.modules.zoom = Zoom; + +})(jQuery, window, document); + +(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); diff --git a/vendors/lightGallery/dist/js/lightgallery-all.min.js b/vendors/lightGallery/dist/js/lightgallery-all.min.js new file mode 100644 index 000000000..45913ecd5 --- /dev/null +++ b/vendors/lightGallery/dist/js/lightgallery-all.min.js @@ -0,0 +1,5 @@ +/*! lightgallery - v1.2.0 - 2015-08-26 +* http://sachinchoolur.github.io/lightGallery/ +* Copyright (c) 2015 Sachin N; Licensed Apache 2.0 */ +!function(a,b,c,d){"use strict";function e(b,d){return this.el=b,this.$el=a(b),this.s=a.extend({},f,d),this.modules={},this.lGalleryOn=!1,this.lgBusy=!1,this.hideBartimeout=!1,this.isTouch="ontouchstart"in c.documentElement,this.s.slideEndAnimatoin&&(this.s.hideControlOnEnd=!1),this.s.dynamic?this.$items=this.s.dynamicEl:"this"===this.s.selector?this.$items=this.$el:""!==this.s.selector?this.$items=this.$el.find(a(this.s.selector)):this.$items=this.$el.children(),this.$slide="",this.$outer="",this.init(),this}var f={mode:"lg-slide",cssEasing:"cubic-bezier(0.25, 0, 0.25, 1)",easing:"linear",speed:600,height:"100%",width:"100%",addClass:"",startClass:"lg-start-zoom",backdropDuration:150,hideBarsDelay:6e3,useLeft:!1,closable:!0,loop:!0,escKey:!0,keyPress:!0,controls:!0,slideEndAnimatoin:!0,hideControlOnEnd:!1,mousewheel:!0,appendSubHtmlTo:".lg-sub-html",preload:1,showAfterLoad:!0,selector:"",nextHtml:"",prevHtml:"",index:!1,iframeMaxWidth:"100%",download:!0,counter:!0,appendCounterTo:".lg-toolbar",swipeThreshold:50,enableSwipe:!0,enableDrag:!0,dynamic:!1,dynamicEl:[],galleryId:1};e.prototype.init=function(){var c=this;c.s.preload>c.$items.length&&(c.s.preload=c.$items.length);var d=b.location.hash;d.indexOf("lg="+this.s.galleryId)>0&&(c.index=parseInt(d.split("&slide=")[1],10),a("body").addClass("lg-from-hash"),a("body").hasClass("lg-on")||setTimeout(function(){c.build(c.index),a("body").addClass("lg-on")})),c.s.dynamic?(c.$el.trigger("onBeforeOpen.lg"),c.index=c.s.index||0,a("body").hasClass("lg-on")||setTimeout(function(){c.build(c.index),a("body").addClass("lg-on")})):c.$items.on("click.lgcustom",function(b){try{b.preventDefault(),b.preventDefault()}catch(d){b.returnValue=!1}c.$el.trigger("onBeforeOpen.lg"),c.index=c.s.index||c.$items.index(this),a("body").hasClass("lg-on")||(c.build(c.index),a("body").addClass("lg-on"))})},e.prototype.build=function(b){var c=this;c.structure(),a.each(a.fn.lightGallery.modules,function(b){c.modules[b]=new a.fn.lightGallery.modules[b](c.el)}),c.slide(b,!1,!1),c.s.keyPress&&c.keyPress(),c.$items.length>1&&(c.arrow(),setTimeout(function(){c.enableDrag(),c.enableSwipe()},50),c.s.mousewheel&&c.mousewheel()),c.counter(),c.closeGallery(),c.$outer.on("mousemove.lg click.lg touchstart.lg",function(){c.$outer.removeClass("lg-hide-items"),clearTimeout(c.hideBartimeout),c.hideBartimeout=setTimeout(function(){c.$outer.addClass("lg-hide-items")},c.s.hideBarsDelay)})},e.prototype.structure=function(){var c,d="",e="",f=0,g="",h=this;for(a("body").append('
'),a(".lg-backdrop").css("transition-duration",this.s.backdropDuration+"ms"),f=0;f
';if(this.s.controls&&this.$items.length>1&&(e='
'+this.s.prevHtml+'
'+this.s.nextHtml+"
"),".lg-sub-html"===this.s.appendSubHtmlTo&&(g='
'),c='
'+d+'
'+e+g+"
",a("body").append(c),this.$outer=a(".lg-outer"),this.$slide=this.$outer.find(".lg-item"),this.s.useLeft?this.$outer.addClass("lg-use-left"):this.$outer.addClass("lg-use-css3"),h.setTop(),a(b).on("resize.lg orientationchange.lg",function(){setTimeout(function(){h.setTop()},100)}),this.$slide.eq(this.index).addClass("lg-current"),this.doCss()?this.$outer.addClass("lg-css3"):this.$outer.addClass("lg-css"),this.$outer.addClass(this.s.mode),this.s.enableDrag&&this.$items.length>1&&this.$outer.addClass("lg-grab"),this.s.showAfterLoad&&this.$outer.addClass("lg-show-after-load"),this.doCss()){var i=this.$outer.find(".lg-inner");i.css("transition-timing-function",this.s.cssEasing),i.css("transition-duration",this.s.speed+"ms")}a(".lg-backdrop").addClass("in"),setTimeout(function(){h.$outer.addClass("lg-visible")},this.s.backdropDuration),this.s.download&&this.$outer.find(".lg-toolbar").append('')},e.prototype.setTop=function(){if("100%"!==this.s.height){var c=a(b).height(),d=(c-parseInt(this.s.height,10))/2,e=this.$outer.find(".lg");c>=parseInt(this.s.height,10)?e.css("top",d+"px"):e.css("top","0px")}},e.prototype.doCss=function(){var a=function(){var a=["transition","MozTransition","WebkitTransition","OTransition","msTransition","KhtmlTransition"],b=c.documentElement,d=0;for(d=0;d'+(parseInt(this.index,10)+1)+' / '+this.$items.length+"
")},e.prototype.addHtml=function(b){var c=null;if(c=this.s.dynamic?this.s.dynamicEl[b].subHtml:this.$items.eq(b).attr("data-sub-html"),"undefined"!=typeof c&&null!==c){var d=c.substring(0,1);c="."===d||"#"===d?a(c).html():c}else c="";".lg-sub-html"===this.s.appendSubHtmlTo?(this.$outer.find(this.s.appendSubHtmlTo).html(c),""===c?this.$outer.find(this.s.appendSubHtmlTo).addClass("lg-empty-html"):this.$outer.find(this.s.appendSubHtmlTo).removeClass("lg-empty-html")):this.$slide.eq(b).append(c),this.$el.trigger("onAfterAppendSubHtml.lg",[b])},e.prototype.preload=function(a){var b=1,c=1;for(b=1;b<=this.s.preload&&!(b>=this.$items.length-a);b++)this.loadContent(a+b,!1,0);for(c=1;c<=this.s.preload&&!(0>a-c);c++)this.loadContent(a-c,!1,0)},e.prototype.loadContent=function(c,d,e){var f,g,h,i,j,k,l=this,m=!1,n=function(c){for(var d=[],e=[],f=0;fi){g=e[j];break}};if(l.s.dynamic){if(l.s.dynamicEl[c].poster&&(m=!0,h=l.s.dynamicEl[c].poster),k=l.s.dynamicEl[c].html,g=l.s.dynamicEl[c].src,l.s.dynamicEl[c].responsive){var o=l.s.dynamicEl[c].responsive.split(",");n(o)}i=l.s.dynamicEl[c].srcset,j=l.s.dynamicEl[c].sizes}else{if(l.$items.eq(c).attr("data-poster")&&(m=!0,h=l.$items.eq(c).attr("data-poster")),k=l.$items.eq(c).attr("data-html"),g=l.$items.eq(c).attr("href")||l.$items.eq(c).attr("data-src"),l.$items.eq(c).attr("data-responsive")){var p=l.$items.eq(c).attr("data-responsive").split(",");n(p)}i=l.$items.eq(c).attr("data-srcset"),j=l.$items.eq(c).attr("data-sizes")}var q=!1;l.s.dynamic?l.s.dynamicEl[c].iframe&&(q=!0):"true"===l.$items.eq(c).attr("data-iframe")&&(q=!0);var r=l.isVideo(g,c);if(!l.$slide.eq(c).hasClass("lg-loaded")){if(q)l.$slide.eq(c).prepend('
');else if(m){var s="";s=r&&r.youtube?"lg-has-youtube":r&&r.vimeo?"lg-has-vimeo":"lg-has-html5",l.$slide.eq(c).prepend('
')}else r?(l.$slide.eq(c).prepend('
'),l.$el.trigger("hasVideo.lg",[c,g,k])):l.$slide.eq(c).prepend('
');if(l.$el.trigger("onAferAppendSlide.lg",[c]),f=l.$slide.eq(c).find(".lg-object"),j&&f.attr("sizes",j),i){f.attr("srcset",i);try{picturefill({elements:[f[0]]})}catch(t){console.error("Make sure you have included Picturefill version 2")}}".lg-sub-html"!==this.s.appendSubHtmlTo&&l.addHtml(c),l.$slide.eq(c).addClass("lg-loaded")}l.$slide.eq(c).find(".lg-object").on("load.lg error.lg",function(){var b=0;e&&!a("body").hasClass("lg-from-hash")&&(b=e),setTimeout(function(){l.$slide.eq(c).addClass("lg-complete"),l.$el.trigger("onSlideItemLoad.lg",[c,e||0])},b)}),r&&r.html5&&!m&&l.$slide.eq(c).addClass("lg-complete"),d===!0&&(l.$slide.eq(c).hasClass("lg-complete")?l.preload(c):l.$slide.eq(c).find(".lg-object").on("load.lg error.lg",function(){l.preload(c)}))},e.prototype.slide=function(b,c,d){var e=this.$outer.find(".lg-current").index(),f=this;if(!f.lGalleryOn||e!==b){var g=this.$slide.length,h=f.lGalleryOn?this.s.speed:0,i=!1,j=!1;if(!f.lgBusy){if(this.$el.trigger("onBeforeSlide.lg",[e,b,c,d]),f.lgBusy=!0,clearTimeout(f.hideBartimeout),".lg-sub-html"===this.s.appendSubHtmlTo&&setTimeout(function(){f.addHtml(b)},h),this.arrowDisable(b),c){var k=b-1,l=b+1;0===b&&e===g-1?(l=0,k=g-1):b===g-1&&0===e&&(l=0,k=g-1),this.$slide.removeClass("lg-prev-slide lg-current lg-next-slide"),f.$slide.eq(k).addClass("lg-prev-slide"),f.$slide.eq(l).addClass("lg-next-slide"),f.$slide.eq(b).addClass("lg-current")}else f.$outer.addClass("lg-no-trans"),this.$slide.removeClass("lg-prev-slide lg-next-slide"),e>b?(j=!0,0!==b||e!==g-1||d||(j=!1,i=!0)):b>e&&(i=!0,b!==g-1||0!==e||d||(j=!0,i=!1)),j?(this.$slide.eq(b).addClass("lg-prev-slide"),this.$slide.eq(e).addClass("lg-next-slide")):i&&(this.$slide.eq(b).addClass("lg-next-slide"),this.$slide.eq(e).addClass("lg-prev-slide")),setTimeout(function(){f.$slide.removeClass("lg-current"),f.$slide.eq(b).addClass("lg-current"),f.$outer.removeClass("lg-no-trans")},50);if(f.lGalleryOn?(setTimeout(function(){f.loadContent(b,!0,0)},this.s.speed+50),setTimeout(function(){f.lgBusy=!1,f.$el.trigger("onAfterSlide.lg",[e,b,c,d])},this.s.speed),f.doCss()||(f.$slide.fadeOut(f.s.speed),f.$slide.eq(b).fadeIn(f.s.speed))):(f.loadContent(b,!0,f.s.backdropDuration),f.lgBusy=!1,f.$el.trigger("onAfterSlide.lg",[e,b,c,d]),f.doCss()||(f.$slide.fadeOut(50),f.$slide.eq(b).fadeIn(50))),this.s.download){var m;m=f.s.dynamic?f.s.dynamicEl[b].downloadUrl||f.s.dynamicEl[b].src:f.$items.eq(b).attr("data-download-url")||f.$items.eq(b).attr("href")||f.$items.eq(b).attr("data-src"),a("#lg-download").attr("href",m)}f.lGalleryOn=!0,this.s.counter&&a("#lg-counter-current").text(b+1)}}},e.prototype.goToNextSlide=function(a){var b=this;b.lgBusy||(b.index+10?(b.index--,b.$el.trigger("onBeforePrevSlide.lg",[b.index,a]),b.slide(b.index,a,!1)):b.s.loop?(b.index=b.$items.length-1,b.$el.trigger("onBeforePrevSlide.lg",[b.index,a]),b.slide(b.index,a,!1)):b.s.slideEndAnimatoin&&(b.$outer.addClass("lg-left-end"),setTimeout(function(){b.$outer.removeClass("lg-left-end")},400)))},e.prototype.keyPress=function(){var c=this;this.$items.length>1&&a(b).on("keyup.lg",function(a){c.$items.length>1&&(37===a.keyCode&&(a.preventDefault(),c.goToPrevSlide()),39===a.keyCode&&(a.preventDefault(),c.goToNextSlide()))}),a(b).on("keydown.lg",function(a){c.s.escKey!==!0||27!==a.keyCode||c.$outer.hasClass("lg-thumb-open")||(a.preventDefault(),c.destroy())})},e.prototype.arrow=function(){var a=this;this.$outer.find(".lg-prev").on("click.lg",function(){a.goToPrevSlide()}),this.$outer.find(".lg-next").on("click.lg",function(){a.goToNextSlide()})},e.prototype.arrowDisable=function(a){!this.s.loop&&this.s.hideControlOnEnd&&(a+10?this.$outer.find(".lg-prev").removeAttr("disabled").removeClass("disabled"):this.$outer.find(".lg-prev").attr("disabled","disabled").addClass("disabled"))},e.prototype.setTranslate=function(a,b,c){this.s.useLeft?a.css("left",b):a.css({transform:"translate3d("+b+"px, "+c+"px, 0px)"})},e.prototype.touchMove=function(b,c){var d=c-b;this.$outer.addClass("lg-dragging"),this.setTranslate(this.$slide.eq(this.index),d,0),this.setTranslate(a(".lg-prev-slide"),-this.$slide.eq(this.index).width()+d,0),this.setTranslate(a(".lg-next-slide"),this.$slide.eq(this.index).width()+d,0)},e.prototype.touchEnd=function(a){var b=this;"lg-slide"!==b.s.mode&&b.$outer.addClass("lg-slide"),this.$slide.not(".lg-current, .lg-prev-slide, .lg-next-slide").css("opacity","0"),setTimeout(function(){b.$outer.removeClass("lg-dragging"),0>a&&Math.abs(a)>b.s.swipeThreshold?b.goToNextSlide(!0):a>0&&Math.abs(a)>b.s.swipeThreshold?b.goToPrevSlide(!0):Math.abs(a)<5&&b.$el.trigger("onSlideClick.lg"),b.$slide.removeAttr("style")}),setTimeout(function(){b.$outer.hasClass("lg-dragging")||"lg-slide"===b.s.mode||b.$outer.removeClass("lg-slide")},b.s.speed+100)},e.prototype.enableSwipe=function(){var a=this,b=0,c=0,d=!1;a.s.enableSwipe&&a.isTouch&&a.doCss()&&(a.$slide.on("touchstart.lg",function(c){a.$outer.hasClass("lg-zoomed")||a.lgBusy||(c.preventDefault(),a.manageSwipeClass(),b=c.originalEvent.targetTouches[0].pageX)}),a.$slide.on("touchmove.lg",function(e){a.$outer.hasClass("lg-zoomed")||(e.preventDefault(),c=e.originalEvent.targetTouches[0].pageX,a.touchMove(b,c),d=!0)}),a.$slide.on("touchend.lg",function(){a.$outer.hasClass("lg-zoomed")||(d?(d=!1,a.touchEnd(c-b)):a.$el.trigger("onSlideClick.lg"))}))},e.prototype.enableDrag=function(){var c=this,d=0,e=0,f=!1,g=!1;c.s.enableDrag&&!c.isTouch&&c.doCss()&&(c.$slide.on("mousedown.lg",function(b){c.$outer.hasClass("lg-zoomed")||(a(b.target).hasClass("lg-object")||a(b.target).hasClass("lg-video-play"))&&(b.preventDefault(),c.lgBusy||(c.manageSwipeClass(),d=b.pageX,f=!0,c.$outer.scrollLeft+=1,c.$outer.scrollLeft-=1,c.$outer.removeClass("lg-grab").addClass("lg-grabbing"),c.$el.trigger("onDragstart.lg")))}),a(b).on("mousemove.lg",function(a){f&&(g=!0,e=a.pageX,c.touchMove(d,e),c.$el.trigger("onDragmove.lg"))}),a(b).on("mouseup.lg",function(b){g?(g=!1,c.touchEnd(e-d),c.$el.trigger("onDragend.lg")):(a(b.target).hasClass("lg-object")||a(b.target).hasClass("lg-video-play"))&&c.$el.trigger("onSlideClick.lg"),f&&(f=!1,c.$outer.removeClass("lg-grabbing").addClass("lg-grab"))}))},e.prototype.manageSwipeClass=function(){var a=this.index+1,b=this.index-1,c=this.$slide.length;this.s.loop&&(0===this.index?b=c-1:this.index===c-1&&(a=0)),this.$slide.removeClass("lg-next-slide lg-prev-slide"),b>-1&&this.$slide.eq(b).addClass("lg-prev-slide"),this.$slide.eq(a).addClass("lg-next-slide")},e.prototype.mousewheel=function(){var a=this;a.$outer.on("mousewheel.lg",function(b){b.deltaY>0?a.goToPrevSlide():a.goToNextSlide(),b.preventDefault()})},e.prototype.closeGallery=function(){var b=this,c=!1;this.$outer.find(".lg-close").on("click.lg",function(){b.destroy()}),b.s.closable&&(b.$outer.on("mousedown.lg",function(b){c=a(b.target).is(".lg-outer")||a(b.target).is(".lg-item ")||a(b.target).is(".lg-img-wrap")?!0:!1}),b.$outer.on("mouseup.lg",function(d){(a(d.target).is(".lg-outer")||a(d.target).is(".lg-item ")||a(d.target).is(".lg-img-wrap")&&c)&&(b.$outer.hasClass("lg-dragging")||b.destroy())}))},e.prototype.destroy=function(c){var d=this;d.$el.trigger("onBeforeClose.lg"),c&&(this.$items.off("click.lg click.lgcustom"),a.removeData(d.el,"lightGallery")),this.$el.off(".lg.tm"),a.each(a.fn.lightGallery.modules,function(a){d.modules[a]&&d.modules[a].destroy()}),this.lGalleryOn=!1,clearTimeout(d.hideBartimeout),this.hideBartimeout=!1,a(b).off(".lg"),a("body").removeClass("lg-on lg-from-hash"),d.$outer&&d.$outer.removeClass("lg-visible"),a(".lg-backdrop").removeClass("in"),setTimeout(function(){d.$outer&&d.$outer.remove(),a(".lg-backdrop").remove(),d.$el.trigger("onCloseAfter.lg")},d.s.backdropDuration+50)},a.fn.lightGallery=function(b){return this.each(function(){if(a.data(this,"lightGallery"))try{a(this).data("lightGallery").init()}catch(c){console.error("lightGallery has not initiated properly")}else a.data(this,"lightGallery",new e(this,b))})},a.fn.lightGallery.modules={}}(jQuery,window,document),function(a,b,c,d){"use strict";var e={autoplay:!1,pause:5e3,progressBar:!0,fourceAutoplay:!1,autoplayControls:!0,appendAutoplayControlsTo:".lg-toolbar"},f=function(b){return this.core=a(b).data("lightGallery"),this.$el=a(b),this.core.$items.length<2?!1:(this.core.s=a.extend({},e,this.core.s),this.interval=!1,this.fromAuto=!0,this.canceledOnTouch=!1,this.fourceAutoplayTemp=this.core.s.fourceAutoplay,this.core.doCss()||(this.core.s.progressBar=!1),this.init(),this)};f.prototype.init=function(){var a=this;a.core.s.autoplayControls&&a.controls(),a.core.s.progressBar&&a.core.$outer.find(".lg").append('
'),a.progress(),a.core.s.autoplay&&a.startlAuto(),a.$el.on("onDragstart.lg.tm touchstart.lg.tm",function(){a.interval&&(a.cancelAuto(),a.canceledOnTouch=!0)}),a.$el.on("onDragend.lg.tm touchend.lg.tm onSlideClick.lg.tm",function(){!a.interval&&a.canceledOnTouch&&(a.startlAuto(),a.canceledOnTouch=!1)})},f.prototype.progress=function(){var a,b,c=this;c.$el.on("onBeforeSlide.lg.tm",function(){c.core.s.progressBar&&c.fromAuto&&(a=c.core.$outer.find(".lg-progress-bar"),b=c.core.$outer.find(".lg-progress"),c.interval&&(b.removeAttr("style"),a.removeClass("lg-start"),setTimeout(function(){b.css("transition","width "+(c.core.s.speed+c.core.s.pause)+"ms ease 0s"),a.addClass("lg-start")},20))),c.fromAuto||c.core.s.fourceAutoplay||c.cancelAuto(),c.fromAuto=!1})},f.prototype.controls=function(){var b=this,c='';a(this.core.s.appendAutoplayControlsTo).append(c),b.core.$outer.find(".lg-autoplay-button").on("click.lg",function(){a(b.core.$outer).hasClass("lg-show-autoplay")?(b.cancelAuto(),b.core.s.fourceAutoplay=!1):b.interval||(b.startlAuto(),b.core.s.fourceAutoplay=b.fourceAutoplayTemp)})},f.prototype.startlAuto=function(){var a=this;a.core.$outer.find(".lg-progress").css("transition","width "+(a.core.s.speed+a.core.s.pause)+"ms ease 0s"),a.core.$outer.addClass("lg-show-autoplay"),a.core.$outer.find(".lg-progress-bar").addClass("lg-start"),a.interval=setInterval(function(){a.core.index+11&&this.init(),this};f.prototype.init=function(){var b,c,d,e=this,f="";if(e.core.$outer.find(".lg").append('
'),e.core.s.dynamic)for(var g=0;g
';else e.core.$items.each(function(){f+=e.core.s.exThumbImage?'
':'
'});c=e.core.$outer.find(".lg-pager-outer"),c.html(f),b=e.core.$outer.find(".lg-pager-cont"),b.on("click.lg touchend.lg",function(){var b=a(this);e.core.index=b.index(),e.core.slide(e.core.index,!1,!1)}),c.on("mouseover.lg",function(){clearTimeout(d),c.addClass("lg-pager-hover")}),c.on("mouseout.lg",function(){d=setTimeout(function(){c.removeClass("lg-pager-hover")})}),e.core.$el.on("onBeforeSlide.lg.tm",function(a,c,d){b.removeClass("lg-pager-active"),b.eq(d).addClass("lg-pager-active")})},f.prototype.destroy=function(){},a.fn.lightGallery.modules.pager=f}(jQuery,window,document),function(a,b,c,d){"use strict";var e={thumbnail:!0,animateThumb:!0,currentPagerPosition:"middle",thumbWidth:100,thumbContHeight:100,thumbMargin:5,exThumbImage:!1,showThumbByDefault:!0,toogleThumb:!0,enableThumbDrag:!0,enableThumbSwipe:!0,swipeThreshold:50,loadYoutubeThumbnail:!0,youtubeThumbSize:1,loadVimeoThumbnail:!0,vimeoThumbSize:"thumbnail_small"},f=function(b){return this.core=a(b).data("lightGallery"),this.core.s=a.extend({},e,this.core.s),this.$el=a(b),this.$thumbOuter=null,this.thumbOuterWidth=0,this.thumbTotalWidth=this.core.$items.length*(this.core.s.thumbWidth+this.core.s.thumbMargin),this.thumbIndex=this.core.index,this.left=0,this.init(),this};f.prototype.init=function(){this.core.s.thumbnail&&this.core.$items.length>1&&(this.core.s.showThumbByDefault&&this.core.$outer.addClass("lg-thumb-open"),this.build(),this.core.s.animateThumb?(this.core.s.enableThumbDrag&&!this.core.isTouch&&this.core.doCss()&&this.enableThumbDrag(),this.core.s.enableThumbSwipe&&this.core.isTouch&&this.core.doCss()&&this.enableThumbSwipe(),this.thumbClickable=!1):this.thumbClickable=!0,this.toogle(),this.thumbkeyPress())},f.prototype.build=function(){function c(a,b,c){var d,h=e.core.isVideo(a,c)||{},i="";h.youtube||h.vimeo?h.youtube?d=e.core.s.loadYoutubeThumbnail?"http://img.youtube.com/vi/"+h.youtube[1]+"/"+e.core.s.youtubeThumbSize+".jpg":b:h.vimeo&&(e.core.s.loadVimeoThumbnail?(d="https://i.vimeocdn.com/video/error_"+g+".jpg",i=h.vimeo[1]):d=b):d=b,f+='
',i=""}var d,e=this,f="",g="",h='
';switch(this.core.s.vimeoThumbSize){case"thumbnail_large":g="640";break;case"thumbnail_medium":g="200x150";break;case"thumbnail_small":g="100x75"}if(e.core.$outer.addClass("lg-has-thumb"),e.core.$outer.find(".lg").append(h),e.$thumbOuter=e.core.$outer.find(".lg-thumb-outer"),e.thumbOuterWidth=e.$thumbOuter.width(),e.core.s.animateThumb&&e.core.$outer.find(".lg-thumb").css({width:e.thumbTotalWidth+"px",position:"relative"}),this.core.s.animateThumb&&e.$thumbOuter.css("height",e.core.s.thumbContHeight+"px"),e.core.s.dynamic)for(var i=0;ithis.thumbTotalWidth-this.thumbOuterWidth&&(this.left=this.thumbTotalWidth-this.thumbOuterWidth),this.left<0&&(this.left=0),this.core.lGalleryOn?(b.hasClass("on")||this.core.$outer.find(".lg-thumb").css("transition-duration",this.core.s.speed+"ms"),this.core.doCss()||b.animate({left:-this.left+"px"},this.core.s.speed)):this.core.doCss()||b.css("left",-this.left+"px"),this.setTranslate(this.left)}},f.prototype.enableThumbDrag=function(){var c=this,d=0,e=0,f=!1,g=!1,h=0;c.$thumbOuter.addClass("lg-grab"),c.core.$outer.find(".lg-thumb").on("mousedown.lg.thumb",function(a){c.thumbTotalWidth>c.thumbOuterWidth&&(a.preventDefault(),d=a.pageX,f=!0,c.core.$outer.scrollLeft+=1,c.core.$outer.scrollLeft-=1,c.thumbClickable=!1,c.$thumbOuter.removeClass("lg-grab").addClass("lg-grabbing"))}),a(b).on("mousemove.lg.thumb",function(a){f&&(h=c.left,g=!0,e=a.pageX,c.$thumbOuter.addClass("lg-dragging"),h-=e-d,h>c.thumbTotalWidth-c.thumbOuterWidth&&(h=c.thumbTotalWidth-c.thumbOuterWidth),0>h&&(h=0),c.setTranslate(h))}),a(b).on("mouseup.lg.thumb",function(){g?(g=!1,c.$thumbOuter.removeClass("lg-dragging"),c.left=h,Math.abs(e-d)a.thumbOuterWidth&&(c.preventDefault(),b=c.originalEvent.targetTouches[0].pageX,a.thumbClickable=!1)}),a.core.$outer.find(".lg-thumb").on("touchmove.lg",function(f){a.thumbTotalWidth>a.thumbOuterWidth&&(f.preventDefault(),c=f.originalEvent.targetTouches[0].pageX,d=!0,a.$thumbOuter.addClass("lg-dragging"),e=a.left,e-=c-b,e>a.thumbTotalWidth-a.thumbOuterWidth&&(e=a.thumbTotalWidth-a.thumbOuterWidth),0>e&&(e=0),a.setTranslate(e))}),a.core.$outer.find(".lg-thumb").on("touchend.lg",function(){a.thumbTotalWidth>a.thumbOuterWidth&&d?(d=!1,a.$thumbOuter.removeClass("lg-dragging"),Math.abs(c-b)'),a.core.$outer.find(".lg-toogle-thumb").on("click.lg",function(){a.core.$outer.toggleClass("lg-thumb-open")}))},f.prototype.thumbkeyPress=function(){var c=this;a(b).on("keydown.lg.thumb",function(a){38===a.keyCode?(a.preventDefault(),c.core.$outer.addClass("lg-thumb-open")):40===a.keyCode&&(a.preventDefault(),c.core.$outer.removeClass("lg-thumb-open"))})},f.prototype.destroy=function(){this.core.s.thumbnail&&this.core.$items.length>1&&(a(b).off("resize.lg.thumb orientationchange.lg.thumb keydown.lg.thumb"),this.$thumbOuter.remove(),this.core.$outer.removeClass("lg-has-thumb"))},a.fn.lightGallery.modules.Thumbnail=f}(jQuery,window,document),function(a,b,c,d){"use strict";var e={videoMaxWidth:"855px",youtubePlayerParams:!1,vimeoPlayerParams:!1,videojs:!1},f=function(b){return this.core=a(b).data("lightGallery"),this.$el=a(b),this.core.s=a.extend({},e,this.core.s),this.videoLoaded=!1,this.init(),this};f.prototype.init=function(){var b=this;b.core.$el.on("hasVideo.lg.tm",function(a,c,d,e){if(b.core.$slide.eq(c).find(".lg-video").append(b.loadVideo(d,"lg-object",!0,c,e)),e)if(b.core.s.videojs)try{videojs(b.core.$slide.eq(c).find(".lg-html5").get(0),{},function(){b.videoLoaded||this.play()})}catch(f){console.error("Make sure you have included videojs")}else b.core.$slide.eq(c).find(".lg-html5").get(0).play()}),b.core.$el.on("onAferAppendSlide.lg.tm",function(a,c){b.core.$slide.eq(c).find(".lg-video-cont").css("max-width",b.core.s.videoMaxWidth),b.videoLoaded=!0});var c=function(a){if(a.find(".lg-object").hasClass("lg-has-poster"))if(a.hasClass("lg-has-video")){var c=a.find(".lg-youtube").get(0),d=a.find(".lg-vimeo").get(0),e=a.find(".lg-html5").get(0);if(c)c.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*");else if(d)try{$f(d).api("play")}catch(f){console.error("Make sure you have included froogaloop2 js")}else if(e)if(b.core.s.videojs)try{videojs(e).play()}catch(f){console.error("Make sure you have included videojs")}else e.play();a.addClass("lg-video-palying")}else{a.addClass("lg-video-palying lg-has-video");var g,h,i=function(c,d){if(a.find(".lg-video").append(b.loadVideo(c,"",!1,b.core.index,d)),d)if(b.core.s.videojs)try{videojs(b.core.$slide.eq(b.core.index).find(".lg-html5").get(0),{},function(){this.play()})}catch(e){console.error("Make sure you have included videojs")}else b.core.$slide.eq(b.core.index).find(".lg-html5").get(0).play()};b.core.s.dynamic?(g=b.core.s.dynamicEl[b.core.index].src,h=b.core.s.dynamicEl[b.core.index].html,i(g,h)):(g=b.core.$items.eq(b.core.index).attr("data-src"),h=b.core.$items.eq(b.core.index).attr("data-html"),i(g,h));var j=a.find(".lg-object");a.find(".lg-video").append(j),a.find(".lg-video-object").hasClass("lg-html5")||(a.removeClass("lg-complete"),a.find(".lg-video-object").on("load.lg error.lg",function(){a.addClass("lg-complete")}))}};b.core.doCss()?b.core.$el.on("onSlideClick.lg.tm",function(){var a=b.core.$slide.eq(b.core.index);c(a)}):b.core.$slide.on("click.lg",function(){c(a(this))}),b.core.$el.on("onBeforeSlide.lg.tm",function(a,c){var d=b.core.$slide.eq(c),e=d.find(".lg-youtube").get(0),f=d.find(".lg-vimeo").get(0),g=d.find(".lg-html5").get(0);if(e)e.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*");else if(f)try{$f(f).api("pause")}catch(h){console.error("Make sure you have included froogaloop2 js")}else if(g)if(b.core.s.videojs)try{videojs(g).pause()}catch(h){console.error("Make sure you have included videojs")}else g.pause()}),b.core.$el.on("onAfterSlide.lg.tm",function(a,c){b.core.$slide.eq(c).removeClass("lg-video-palying")})},f.prototype.loadVideo=function(b,c,d,e,f){ +var g="",h=1,i="",j=this.core.isVideo(b,e)||{};if(d&&(h=this.videoLoaded?0:1),j.youtube)i="?wmode=opaque&autoplay="+h+"&enablejsapi=1",this.core.s.youtubePlayerParams&&(i=i+"&"+a.param(this.core.s.youtubePlayerParams)),g='';else if(j.vimeo)i="?autoplay="+h+"&api=1",this.core.s.vimeoPlayerParams&&(i=i+"&"+a.param(this.core.s.vimeoPlayerParams)),g='';else if(j.html5){var k=f.substring(0,1);("."===k||"#"===k)&&(f=a(f).html()),g=f}return g},f.prototype.destroy=function(){this.videoLoaded=!1},a.fn.lightGallery.modules.video=f}(jQuery,window,document),function(a,b,c,d){"use strict";var e={scale:1,zoom:!0,enableZoomAfter:300},f=function(b){return this.core=a(b).data("lightGallery"),this.core.s=a.extend({},e,this.core.s),this.core.s.zoom&&this.core.doCss()&&(this.init(),this.zoomabletimeout=!1),this};f.prototype.init=function(){var c=this,d='';this.core.$outer.find(".lg-toolbar").append(d),c.core.$el.on("onSlideItemLoad.lg.tm.zoom",function(b,d,e){var f=c.core.s.enableZoomAfter+e;a("body").hasClass("lg-from-hash")&&e?f=0:a("body").removeClass("lg-from-hash"),c.zoomabletimeout=setTimeout(function(){c.core.$slide.eq(d).addClass("lg-zoomable")},f+30)});var e=1,f=function(a,b,d,e){var f,g,h=c.core.$outer.find(".lg-current .lg-image");b?(f=d-h.offset().left,g=e-h.offset().top):(f=h.width()/2,g=h.height()/2);var i=(a-1)*f,j=(a-1)*g;h.css("transform","scale3d("+a+", "+a+", 1)").attr("data-scale",a),h.parent().css("transform","translate3d(-"+i+"px, -"+j+"px, 0)").attr("data-x",i).attr("data-y",j)},g=function(a,b,d){e>1?c.core.$outer.addClass("lg-zoomed"):c.core.$outer.removeClass("lg-zoomed"),1>e&&(e=1),f(e,a,b,d)};c.core.$el.on("onAferAppendSlide.lg.tm.zoom",function(a,b){var d=c.core.$slide.eq(b).find(".lg-image");d.dblclick(function(a){var f,h=d.width(),i=c.core.$items.eq(b).attr("data-width")||d[0].naturalWidth||h;c.core.$outer.hasClass("lg-zoomed")?e=1:i>h&&(f=i/h,e=f||2),g(!0,a.pageX,a.pageY),setTimeout(function(){c.core.$outer.removeClass("lg-grabbing").addClass("lg-grab")},10)})}),a(b).on("resize.lg.zoom orientationchange.lg.zoom",function(){setTimeout(function(){c.core.$outer.hasClass("lg-zoomed")&&f(e)},10)}),a("#lg-zoom-out").on("click.lg",function(){c.core.$outer.find(".lg-current .lg-image").length&&(e-=c.core.s.scale,g())}),a("#lg-zoom-in").on("click.lg",function(){c.core.$outer.find(".lg-current .lg-image").length&&(e+=c.core.s.scale,g())}),c.core.$el.on("onBeforeSlide.lg.tm",function(){c.resetZoom()}),c.core.isTouch||c.zoomDrag(),c.core.isTouch&&c.zoomSwipe()},f.prototype.resetZoom=function(){this.core.$outer.removeClass("lg-zoomed"),this.core.$slide.find(".lg-img-wrap").removeAttr("style data-x data-y"),this.core.$slide.find(".lg-image").removeAttr("style data-scale")},f.prototype.zoomSwipe=function(){var a=this,b={},c={},d=!1,e=!1,f=!1;a.core.$slide.on("touchstart.lg",function(c){if(a.core.$outer.hasClass("lg-zoomed")){var d=a.core.$slide.eq(a.core.index).find(".lg-object");f=d.outerHeight()*d.attr("data-scale")>a.core.$outer.find(".lg").height(),e=d.outerWidth()*d.attr("data-scale")>a.core.$outer.find(".lg").width(),(e||f)&&(c.preventDefault(),b={x:c.originalEvent.targetTouches[0].pageX,y:c.originalEvent.targetTouches[0].pageY})}}),a.core.$slide.on("touchmove.lg",function(g){if(a.core.$outer.hasClass("lg-zoomed")){var h,i,j=a.core.$slide.eq(a.core.index).find(".lg-img-wrap");g.preventDefault(),d=!0,c=g.originalEvent.targetTouches[0].pageX,c={x:g.originalEvent.targetTouches[0].pageX,y:g.originalEvent.targetTouches[0].pageY},a.core.$outer.addClass("lg-zoom-dragging"),i=f?-Math.abs(j.attr("data-y"))+(c.y-b.y):-Math.abs(j.attr("data-y")),h=e?-Math.abs(j.attr("data-x"))+(c.x-b.x):-Math.abs(j.attr("data-x")),j.css("transform","translate3d("+h+"px, "+i+"px, 0)")}}),a.core.$slide.on("touchend.lg",function(){a.core.$outer.hasClass("lg-zoomed")&&d&&(d=!1,a.core.$outer.removeClass("lg-zoom-dragging"),a.touchendZoom(b,c,e,f))})},f.prototype.zoomDrag=function(){var c=this,d={},e={},f=!1,g=!1,h=!1,i=!1;c.core.$slide.on("mousedown.lg.zoom",function(b){var e=c.core.$slide.eq(c.core.index).find(".lg-object");i=e.outerHeight()*e.attr("data-scale")>c.core.$outer.find(".lg").height(),h=e.outerWidth()*e.attr("data-scale")>c.core.$outer.find(".lg").width(),c.core.$outer.hasClass("lg-zoomed")&&a(b.target).hasClass("lg-object")&&(h||i)&&(b.preventDefault(),d={x:b.pageX,y:b.pageY},f=!0,c.core.$outer.scrollLeft+=1,c.core.$outer.scrollLeft-=1,c.core.$outer.removeClass("lg-grab").addClass("lg-grabbing"))}),a(b).on("mousemove.lg.zoom",function(a){if(f){var b,j,k=c.core.$slide.eq(c.core.index).find(".lg-img-wrap");g=!0,e={x:a.pageX,y:a.pageY},c.core.$outer.addClass("lg-zoom-dragging"),j=i?-Math.abs(k.attr("data-y"))+(e.y-d.y):-Math.abs(k.attr("data-y")),b=h?-Math.abs(k.attr("data-x"))+(e.x-d.x):-Math.abs(k.attr("data-x")),k.css("transform","translate3d("+b+"px, "+j+"px, 0)")}}),a(b).on("mouseup.lg.zoom",function(a){f&&(f=!1,c.core.$outer.removeClass("lg-zoom-dragging"),!g||d.x===e.x&&d.y===e.y||(e={x:a.pageX,y:a.pageY},c.touchendZoom(d,e,h,i)),g=!1),c.core.$outer.removeClass("lg-grabbing").addClass("lg-grab")})},f.prototype.touchendZoom=function(a,b,c,d){var e=this,f=e.core.$slide.eq(e.core.index).find(".lg-img-wrap"),g=e.core.$slide.eq(e.core.index).find(".lg-object"),h=-Math.abs(f.attr("data-x"))+(b.x-a.x),i=-Math.abs(f.attr("data-y"))+(b.y-a.y),j=(e.core.$outer.find(".lg").height()-g.outerHeight())/2,k=Math.abs(g.outerHeight()*Math.abs(g.attr("data-scale"))-e.core.$outer.find(".lg").height()+j),l=(e.core.$outer.find(".lg").width()-g.outerWidth())/2,m=Math.abs(g.outerWidth()*Math.abs(g.attr("data-scale"))-e.core.$outer.find(".lg").width()+l);d&&(-k>=i?i=-k:i>=-j&&(i=-j)),c&&(-m>=h?h=-m:h>=-l&&(h=-l)),d?f.attr("data-y",Math.abs(i)):i=-Math.abs(f.attr("data-y")),c?f.attr("data-x",Math.abs(h)):h=-Math.abs(f.attr("data-x")),f.css("transform","translate3d("+h+"px, "+i+"px, 0)")},f.prototype.destroy=function(){var c=this;c.core.$el.off(".lg.zoom"),a(b).off(".lg.zoom"),c.core.$slide.off(".lg.zoom"),c.core.$el.off(".lg.tm.zoom"),c.resetZoom(),clearTimeout(c.zoomabletimeout),c.zoomabletimeout=!1},a.fn.lightGallery.modules.zoom=f}(jQuery,window,document),function(a,b,c,d){"use strict";var e={hash:!0},f=function(c){return this.core=a(c).data("lightGallery"),this.core.s=a.extend({},e,this.core.s),this.core.s.hash&&(this.oldHash=b.location.hash,this.init()),this};f.prototype.init=function(){var c,d=this;d.core.$el.on("onAfterSlide.lg.tm",function(a,c,e){b.location.hash="lg="+d.core.s.galleryId+"&slide="+e}),a(b).on("hashchange",function(){c=b.location.hash;var a=parseInt(c.split("&slide=")[1],10);c.indexOf("lg="+d.core.s.galleryId)>-1?d.core.slide(a):d.core.lGalleryOn&&d.core.destroy()})},f.prototype.destroy=function(){this.oldHash&&this.oldHash.indexOf("lg="+this.core.s.galleryId)<0?b.location.hash=this.oldHash:history.pushState?history.pushState("",c.title,b.location.pathname+b.location.search):b.location.hash=""},a.fn.lightGallery.modules.hash=f}(jQuery,window,document); \ No newline at end of file diff --git a/vendors/lightGallery/dist/js/lightgallery.js b/vendors/lightGallery/dist/js/lightgallery.js new file mode 100644 index 000000000..4a13995d2 --- /dev/null +++ b/vendors/lightGallery/dist/js/lightgallery.js @@ -0,0 +1,1236 @@ +/*! lightgallery - v1.2.0 - 2015-08-26 +* http://sachinchoolur.github.io/lightGallery/ +* Copyright (c) 2015 Sachin N; Licensed Apache 2.0 */ +(function($, window, document, undefined) { + + 'use strict'; + + var defaults = { + + mode: 'lg-slide', + + // Ex : 'ease' + cssEasing: 'cubic-bezier(0.25, 0, 0.25, 1)', + + //'for jquery animation' + easing: 'linear', + speed: 600, + height: '100%', + width: '100%', + addClass: '', + startClass: 'lg-start-zoom', + backdropDuration: 150, + hideBarsDelay: 6000, + + useLeft: false, + + closable: true, + loop: true, + escKey: true, + keyPress: true, + controls: true, + slideEndAnimatoin: true, + hideControlOnEnd: false, + mousewheel: true, + + // .lg-item || '.lg-sub-html' + appendSubHtmlTo: '.lg-sub-html', + + /** + * @desc number of preload slides + * will exicute only after the current slide is fully loaded. + * + * @ex you clicked on 4th image and if preload = 1 then 3rd slide and 5th + * slide will be loaded in the background after the 4th slide is fully loaded.. + * if preload is 2 then 2nd 3rd 5th 6th slides will be preloaded.. ... ... + * + */ + preload: 1, + showAfterLoad: true, + selector: '', + nextHtml: '', + prevHtml: '', + + // 0, 1 + index: false, + + iframeMaxWidth: '100%', + + download: true, + counter: true, + appendCounterTo: '.lg-toolbar', + + swipeThreshold: 50, + enableSwipe: true, + enableDrag: true, + + dynamic: false, + dynamicEl: [], + galleryId: 1 + }; + + function Plugin(element, options) { + + // Current lightGallery element + this.el = element; + + // Current jquery element + this.$el = $(element); + + // lightGallery settings + this.s = $.extend({}, defaults, options); + + // lightGallery modules + this.modules = {}; + + // false when lightgallery complete first slide; + this.lGalleryOn = false; + + this.lgBusy = false; + + // Timeout function for hiding controls; + this.hideBartimeout = false; + + // To determine browser supports for touch events; + this.isTouch = ('ontouchstart' in document.documentElement); + + // DIsable hideControlOnEnd if sildeEndAnimation is true + if (this.s.slideEndAnimatoin) { + this.s.hideControlOnEnd = false; + } + + // Gallery items + if (this.s.dynamic) { + this.$items = this.s.dynamicEl; + } else { + if (this.s.selector === 'this') { + this.$items = this.$el; + } else if (this.s.selector !== '') { + this.$items = this.$el.find($(this.s.selector)); + } else { + this.$items = this.$el.children(); + } + } + + // .lg-item + this.$slide = ''; + + // .lg-outer + this.$outer = ''; + + this.init(); + + return this; + } + + Plugin.prototype.init = function() { + + var _this = this; + + // s.preload should not be more than $item.length + if (_this.s.preload > _this.$items.length) { + _this.s.preload = _this.$items.length; + } + + // if dynamic option is enabled execute immediately + var _hash = window.location.hash; + if (_hash.indexOf('lg=' + this.s.galleryId) > 0) { + + _this.index = parseInt(_hash.split('&slide=')[1], 10); + + $('body').addClass('lg-from-hash'); + if (!$('body').hasClass('lg-on')) { + setTimeout(function() { + _this.build(_this.index); + $('body').addClass('lg-on'); + }); + } + } + + if (_this.s.dynamic) { + + _this.$el.trigger('onBeforeOpen.lg'); + + _this.index = _this.s.index || 0; + + // prevent accidental double execution + if (!$('body').hasClass('lg-on')) { + setTimeout(function() { + _this.build(_this.index); + $('body').addClass('lg-on'); + }); + } + } else { + + // Using different namespace for click because click event should not unbind if selector is same object('this') + _this.$items.on('click.lgcustom', function(event) { + + // For IE8 + try { + event.preventDefault(); + event.preventDefault(); + } catch (er) { + event.returnValue = false; + } + + _this.$el.trigger('onBeforeOpen.lg'); + + _this.index = _this.s.index || _this.$items.index(this); + + // prevent accidental double execution + if (!$('body').hasClass('lg-on')) { + _this.build(_this.index); + $('body').addClass('lg-on'); + } + }); + } + + }; + + Plugin.prototype.build = function(index) { + + var _this = this; + + _this.structure(); + + // module constructor + $.each($.fn.lightGallery.modules, function(key) { + _this.modules[key] = new $.fn.lightGallery.modules[key](_this.el); + }); + + // initiate slide function + _this.slide(index, false, false); + + if (_this.s.keyPress) { + _this.keyPress(); + } + + if (_this.$items.length > 1) { + + _this.arrow(); + + setTimeout(function() { + _this.enableDrag(); + _this.enableSwipe(); + }, 50); + + if (_this.s.mousewheel) { + _this.mousewheel(); + } + } + + _this.counter(); + + _this.closeGallery(); + + // Hide controllers if mouse doesn't move for some period + _this.$outer.on('mousemove.lg click.lg touchstart.lg', function() { + + _this.$outer.removeClass('lg-hide-items'); + + clearTimeout(_this.hideBartimeout); + + // Timeout will be cleared on each slide movement also + _this.hideBartimeout = setTimeout(function() { + _this.$outer.addClass('lg-hide-items'); + }, _this.s.hideBarsDelay); + + }); + + }; + + Plugin.prototype.structure = function() { + var list = ''; + var controls = ''; + var i = 0; + var subHtmlCont = ''; + var template; + var _this = this; + + $('body').append('
'); + $('.lg-backdrop').css('transition-duration', this.s.backdropDuration + 'ms'); + + // Create gallery items + for (i = 0; i < this.$items.length; i++) { + list += '
'; + } + + // Create controlls + if (this.s.controls && this.$items.length > 1) { + controls = '
' + + '
' + this.s.prevHtml + '
' + + '
' + this.s.nextHtml + '
' + + '
'; + } + + if (this.s.appendSubHtmlTo === '.lg-sub-html') { + subHtmlCont = '
'; + } + + template = '
' + + '
' + + '
' + list + '
' + + '
' + + '' + + '
' + + controls + + subHtmlCont + + '
' + + '
'; + + $('body').append(template); + this.$outer = $('.lg-outer'); + this.$slide = this.$outer.find('.lg-item'); + + if (this.s.useLeft) { + this.$outer.addClass('lg-use-left'); + } else { + this.$outer.addClass('lg-use-css3'); + } + + // For fixed height gallery + _this.setTop(); + $(window).on('resize.lg orientationchange.lg', function() { + setTimeout(function() { + _this.setTop(); + }, 100); + }); + + // add class lg-current to remove initial transition + this.$slide.eq(this.index).addClass('lg-current'); + + // add Class for css support and transition mode + if (this.doCss()) { + this.$outer.addClass('lg-css3'); + } else { + this.$outer.addClass('lg-css'); + } + + this.$outer.addClass(this.s.mode); + + if (this.s.enableDrag && this.$items.length > 1) { + this.$outer.addClass('lg-grab'); + } + + if (this.s.showAfterLoad) { + this.$outer.addClass('lg-show-after-load'); + } + + if (this.doCss()) { + var $inner = this.$outer.find('.lg-inner'); + $inner.css('transition-timing-function', this.s.cssEasing); + $inner.css('transition-duration', this.s.speed + 'ms'); + } + + $('.lg-backdrop').addClass('in'); + + setTimeout(function() { + _this.$outer.addClass('lg-visible'); + }, this.s.backdropDuration); + + if (this.s.download) { + this.$outer.find('.lg-toolbar').append(''); + } + + }; + + // For fixed height gallery + Plugin.prototype.setTop = function() { + if (this.s.height !== '100%') { + var wH = $(window).height(); + var top = (wH - parseInt(this.s.height, 10)) / 2; + var $lGallery = this.$outer.find('.lg'); + if (wH >= parseInt(this.s.height, 10)) { + $lGallery.css('top', top + 'px'); + } else { + $lGallery.css('top', '0px'); + } + } + }; + + // Find css3 support + Plugin.prototype.doCss = function() { + // check for css animation support + var support = function() { + var transition = ['transition', 'MozTransition', 'WebkitTransition', 'OTransition', 'msTransition', 'KhtmlTransition']; + var root = document.documentElement; + var i = 0; + for (i = 0; i < transition.length; i++) { + if (transition[i] in root.style) { + return true; + } + } + }; + + if (support()) { + return true; + } + + return false; + }; + + /** + * @desc Check the given src is video + * @param {String} src + * @return {Object} video type + * Ex:{ youtube : ["//www.youtube.com/watch?v=c0asJgSyxcY", "c0asJgSyxcY"] } + */ + Plugin.prototype.isVideo = function(src, index) { + + var html; + if (this.s.dynamic) { + html = this.s.dynamicEl[index].html; + } else { + html = this.$items.eq(index).attr('data-html'); + } + + if (!src && html) { + return { + html5: true + }; + } + + var youtube = src.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com)\/(?:watch\?v=|embed\/)?([a-z0-9self\-]+)/i); + var vimeo = src.match(/\/\/(?:www\.)?vimeo.com\/([0-9a-z\-_this]+)/i); + + // return { youtube : ["//www.youtube.com/watch?v=c0asJgSyxcY", "c0asJgSyxcY"] } + if (youtube) { + return { + youtube: youtube + }; + } else if (vimeo) { + return { + vimeo: vimeo + }; + } + }; + + /** + * @desc Create image counter + * Ex: 1/10 + */ + Plugin.prototype.counter = function() { + if (this.s.counter) { + $(this.s.appendCounterTo).append('
' + (parseInt(this.index, 10) + 1) + ' / ' + this.$items.length + '
'); + } + }; + + /** + * @desc add sub-html into the slide + * @param {Number} index - index of the slide + */ + Plugin.prototype.addHtml = function(index) { + var subHtml = null; + if (this.s.dynamic) { + subHtml = this.s.dynamicEl[index].subHtml; + } else { + subHtml = this.$items.eq(index).attr('data-sub-html'); + } + + if (typeof subHtml !== 'undefined' && subHtml !== null) { + + // get first letter of subhtml + // if first letter starts with . or # get the html form the jQuery object + var fL = subHtml.substring(0, 1); + if (fL === '.' || fL === '#') { + subHtml = $(subHtml).html(); + } else { + subHtml = subHtml; + } + } else { + subHtml = ''; + } + + if (this.s.appendSubHtmlTo === '.lg-sub-html') { + this.$outer.find(this.s.appendSubHtmlTo).html(subHtml); + + // Add lg-empty-html class if title doesn't exist + if (subHtml === '') { + this.$outer.find(this.s.appendSubHtmlTo).addClass('lg-empty-html'); + } else { + this.$outer.find(this.s.appendSubHtmlTo).removeClass('lg-empty-html'); + } + } else { + this.$slide.eq(index).append(subHtml); + } + + this.$el.trigger('onAfterAppendSubHtml.lg', [index]); + }; + + /** + * @desc Preload slides + * @param {Number} index - index of the slide + */ + Plugin.prototype.preload = function(index) { + var i = 1; + var j = 1; + for (i = 1; i <= this.s.preload; i++) { + if (i >= this.$items.length - index) { + break; + } + + this.loadContent(index + i, false, 0); + } + + for (j = 1; j <= this.s.preload; j++) { + if (index - j < 0) { + break; + } + + this.loadContent(index - j, false, 0); + } + }; + + /** + * @desc Load slide content into slide. + * @param {Number} index - index of the slide. + * @param {Boolean} rec - if true call loadcontent() function again. + * @param {Boolean} delay - delay for adding complete class. it is 0 except first time. + */ + Plugin.prototype.loadContent = function(index, rec, delay) { + + var _this = this; + var _hasPoster = false; + var _$img; + var _src; + var _poster; + var _srcset; + var _sizes; + var _html; + var getResponsiveSrc = function(srcItms) { + var rsWidth = []; + var rsSrc = []; + for (var i = 0; i < srcItms.length; i++) { + var __src = srcItms[i].split(' '); + + // Manage empty space + if (__src[0] === '') { + __src.splice(0, 1); + } + + rsSrc.push(__src[0]); + rsWidth.push(__src[1]); + } + + var wWidth = $(window).width(); + for (var j = 0; j < rsWidth.length; j++) { + if (parseInt(rsWidth[j], 10) > wWidth) { + _src = rsSrc[j]; + break; + } + } + }; + + if (_this.s.dynamic) { + + if (_this.s.dynamicEl[index].poster) { + _hasPoster = true; + _poster = _this.s.dynamicEl[index].poster; + } + + _html = _this.s.dynamicEl[index].html; + _src = _this.s.dynamicEl[index].src; + + if (_this.s.dynamicEl[index].responsive) { + var srcDyItms = _this.s.dynamicEl[index].responsive.split(','); + getResponsiveSrc(srcDyItms); + } + + _srcset = _this.s.dynamicEl[index].srcset; + _sizes = _this.s.dynamicEl[index].sizes; + + } else { + + if (_this.$items.eq(index).attr('data-poster')) { + _hasPoster = true; + _poster = _this.$items.eq(index).attr('data-poster'); + } + + _html = _this.$items.eq(index).attr('data-html'); + _src = _this.$items.eq(index).attr('href') || _this.$items.eq(index).attr('data-src'); + + if (_this.$items.eq(index).attr('data-responsive')) { + var srcItms = _this.$items.eq(index).attr('data-responsive').split(','); + getResponsiveSrc(srcItms); + } + + _srcset = _this.$items.eq(index).attr('data-srcset'); + _sizes = _this.$items.eq(index).attr('data-sizes'); + + } + + //if (_src || _srcset || _sizes || _poster) { + + var iframe = false; + if (_this.s.dynamic) { + if (_this.s.dynamicEl[index].iframe) { + iframe = true; + } + } else { + if (_this.$items.eq(index).attr('data-iframe') === 'true') { + iframe = true; + } + } + + var _isVideo = _this.isVideo(_src, index); + if (!_this.$slide.eq(index).hasClass('lg-loaded')) { + if (iframe) { + _this.$slide.eq(index).prepend('
'); + } else if (_hasPoster) { + var videoClass = ''; + if (_isVideo && _isVideo.youtube) { + videoClass = 'lg-has-youtube'; + } else if (_isVideo && _isVideo.vimeo) { + videoClass = 'lg-has-vimeo'; + } else { + videoClass = 'lg-has-html5'; + } + + _this.$slide.eq(index).prepend('
'); + + } else if (_isVideo) { + _this.$slide.eq(index).prepend('
'); + _this.$el.trigger('hasVideo.lg', [index, _src, _html]); + } else { + _this.$slide.eq(index).prepend('
'); + } + + _this.$el.trigger('onAferAppendSlide.lg', [index]); + + _$img = _this.$slide.eq(index).find('.lg-object'); + if (_sizes) { + _$img.attr('sizes', _sizes); + } + + if (_srcset) { + _$img.attr('srcset', _srcset); + try { + picturefill({ + elements: [_$img[0]] + }); + } catch (e) { + console.error('Make sure you have included Picturefill version 2'); + } + } + + if (this.s.appendSubHtmlTo !== '.lg-sub-html') { + _this.addHtml(index); + } + + _this.$slide.eq(index).addClass('lg-loaded'); + } + + _this.$slide.eq(index).find('.lg-object').on('load.lg error.lg', function() { + + // For first time add some delay for displaying the start animation. + var _speed = 0; + + // Do not change the delay value because it is required for zoom plugin. + // If gallery opened from direct url (hash) speed value should be 0 + if (delay && !$('body').hasClass('lg-from-hash')) { + _speed = delay; + } + + setTimeout(function() { + _this.$slide.eq(index).addClass('lg-complete'); + _this.$el.trigger('onSlideItemLoad.lg', [index, delay || 0]); + }, _speed); + + }); + + // @todo check load state for html5 videos + if (_isVideo && _isVideo.html5 && !_hasPoster) { + _this.$slide.eq(index).addClass('lg-complete'); + } + + if (rec === true) { + if (!_this.$slide.eq(index).hasClass('lg-complete')) { + _this.$slide.eq(index).find('.lg-object').on('load.lg error.lg', function() { + _this.preload(index); + }); + } else { + _this.preload(index); + } + } + + //} + }; + + /** + * @desc slide function for lightgallery + ** Slide() gets call on start + ** ** Set lg.on true once slide() function gets called. + ** Call loadContent() on slide() function inside setTimeout + ** ** On first slide we do not want any animation like slide of fade + ** ** So on first slide( if lg.on if false that is first slide) loadContent() should start loading immediately + ** ** Else loadContent() should wait for the transition to complete. + ** ** So set timeout s.speed + 50 + <=> ** loadContent() will load slide content in to the particular slide + ** ** It has recursion (rec) parameter. if rec === true loadContent() will call preload() function. + ** ** preload will execute only when the previous slide is fully loaded (images iframe) + ** ** avoid simultaneous image load + <=> ** Preload() will check for s.preload value and call loadContent() again accoring to preload value + ** loadContent() <====> Preload(); + + * @param {Number} index - index of the slide + * @param {Boolean} fromTouch - true if slide function called via touch event or mouse drag + * @param {Boolean} fromThumb - true if slide function called via thumbnail click + */ + Plugin.prototype.slide = function(index, fromTouch, fromThumb) { + + var _prevIndex = this.$outer.find('.lg-current').index(); + var _this = this; + + // Prevent if multiple call + // Required for hsh plugin + if (_this.lGalleryOn && (_prevIndex === index)) { + return; + } + + var _length = this.$slide.length; + var _time = _this.lGalleryOn ? this.s.speed : 0; + var _next = false; + var _prev = false; + + if (!_this.lgBusy) { + + this.$el.trigger('onBeforeSlide.lg', [_prevIndex, index, fromTouch, fromThumb]); + + _this.lgBusy = true; + + clearTimeout(_this.hideBartimeout); + + // Add title if this.s.appendSubHtmlTo === lg-sub-html + if (this.s.appendSubHtmlTo === '.lg-sub-html') { + + // wait for slide animation to complete + setTimeout(function() { + _this.addHtml(index); + }, _time); + } + + this.arrowDisable(index); + + if (!fromTouch) { + + // remove all transitions + _this.$outer.addClass('lg-no-trans'); + + this.$slide.removeClass('lg-prev-slide lg-next-slide'); + + if (index < _prevIndex) { + _prev = true; + if ((index === 0) && (_prevIndex === _length - 1) && !fromThumb) { + _prev = false; + _next = true; + } + } else if (index > _prevIndex) { + _next = true; + if ((index === _length - 1) && (_prevIndex === 0) && !fromThumb) { + _prev = true; + _next = false; + } + } + + if (_prev) { + + //prevslide + this.$slide.eq(index).addClass('lg-prev-slide'); + this.$slide.eq(_prevIndex).addClass('lg-next-slide'); + } else if (_next) { + + // next slide + this.$slide.eq(index).addClass('lg-next-slide'); + this.$slide.eq(_prevIndex).addClass('lg-prev-slide'); + } + + // give 50 ms for browser to add/remove class + setTimeout(function() { + _this.$slide.removeClass('lg-current'); + + //_this.$slide.eq(_prevIndex).removeClass('lg-current'); + _this.$slide.eq(index).addClass('lg-current'); + + // reset all transitions + _this.$outer.removeClass('lg-no-trans'); + }, 50); + } else { + + var touchPrev = index - 1; + var touchNext = index + 1; + + if ((index === 0) && (_prevIndex === _length - 1)) { + + // next slide + touchNext = 0; + touchPrev = _length - 1; + } else if ((index === _length - 1) && (_prevIndex === 0)) { + + // prev slide + touchNext = 0; + touchPrev = _length - 1; + } + + this.$slide.removeClass('lg-prev-slide lg-current lg-next-slide'); + _this.$slide.eq(touchPrev).addClass('lg-prev-slide'); + _this.$slide.eq(touchNext).addClass('lg-next-slide'); + _this.$slide.eq(index).addClass('lg-current'); + } + + if (_this.lGalleryOn) { + setTimeout(function() { + _this.loadContent(index, true, 0); + }, this.s.speed + 50); + + setTimeout(function() { + _this.lgBusy = false; + _this.$el.trigger('onAfterSlide.lg', [_prevIndex, index, fromTouch, fromThumb]); + }, this.s.speed); + + // Support non css3 browser + if (!_this.doCss()) { + _this.$slide.fadeOut(_this.s.speed); + _this.$slide.eq(index).fadeIn(_this.s.speed); + } + } else { + _this.loadContent(index, true, _this.s.backdropDuration); + + _this.lgBusy = false; + _this.$el.trigger('onAfterSlide.lg', [_prevIndex, index, fromTouch, fromThumb]); + + // Support non css3 browser + if (!_this.doCss()) { + _this.$slide.fadeOut(50); + _this.$slide.eq(index).fadeIn(50); + } + } + + if (this.s.download) { + var _src; + if (_this.s.dynamic) { + _src = _this.s.dynamicEl[index].downloadUrl || _this.s.dynamicEl[index].src; + } else { + _src = _this.$items.eq(index).attr('data-download-url') || _this.$items.eq(index).attr('href') || _this.$items.eq(index).attr('data-src'); + + } + + $('#lg-download').attr('href', _src); + } + + _this.lGalleryOn = true; + + if (this.s.counter) { + $('#lg-counter-current').text(index + 1); + } + + } + + }; + + /** + * @desc Go to next slide + * @param {Boolean} fromTouch - true if slide function called via touch event + */ + Plugin.prototype.goToNextSlide = function(fromTouch) { + var _this = this; + if (!_this.lgBusy) { + if ((_this.index + 1) < _this.$slide.length) { + _this.index++; + _this.$el.trigger('onBeforeNextSlide.lg', [_this.index]); + _this.slide(_this.index, fromTouch, false); + } else { + if (_this.s.loop) { + _this.index = 0; + _this.$el.trigger('onBeforeNextSlide.lg', [_this.index]); + _this.slide(_this.index, fromTouch, false); + } else if (_this.s.slideEndAnimatoin) { + _this.$outer.addClass('lg-right-end'); + setTimeout(function() { + _this.$outer.removeClass('lg-right-end'); + }, 400); + } + } + } + }; + + /** + * @desc Go to previous slide + * @param {Boolean} fromTouch - true if slide function called via touch event + */ + Plugin.prototype.goToPrevSlide = function(fromTouch) { + var _this = this; + if (!_this.lgBusy) { + if (_this.index > 0) { + _this.index--; + _this.$el.trigger('onBeforePrevSlide.lg', [_this.index, fromTouch]); + _this.slide(_this.index, fromTouch, false); + } else { + if (_this.s.loop) { + _this.index = _this.$items.length - 1; + _this.$el.trigger('onBeforePrevSlide.lg', [_this.index, fromTouch]); + _this.slide(_this.index, fromTouch, false); + } else if (_this.s.slideEndAnimatoin) { + _this.$outer.addClass('lg-left-end'); + setTimeout(function() { + _this.$outer.removeClass('lg-left-end'); + }, 400); + } + } + } + }; + + Plugin.prototype.keyPress = function() { + var _this = this; + if (this.$items.length > 1) { + $(window).on('keyup.lg', function(e) { + if (_this.$items.length > 1) { + if (e.keyCode === 37) { + e.preventDefault(); + _this.goToPrevSlide(); + } + + if (e.keyCode === 39) { + e.preventDefault(); + _this.goToNextSlide(); + } + } + }); + } + + $(window).on('keydown.lg', function(e) { + if (_this.s.escKey === true && e.keyCode === 27 && !_this.$outer.hasClass('lg-thumb-open')) { + e.preventDefault(); + _this.destroy(); + } + }); + }; + + Plugin.prototype.arrow = function() { + var _this = this; + this.$outer.find('.lg-prev').on('click.lg', function() { + _this.goToPrevSlide(); + }); + + this.$outer.find('.lg-next').on('click.lg', function() { + _this.goToNextSlide(); + }); + }; + + Plugin.prototype.arrowDisable = function(index) { + + // Disable arrows if s.hideControlOnEnd is true + if (!this.s.loop && this.s.hideControlOnEnd) { + if ((index + 1) < this.$slide.length) { + this.$outer.find('.lg-next').removeAttr('disabled').removeClass('disabled'); + } else { + this.$outer.find('.lg-next').attr('disabled', 'disabled').addClass('disabled'); + } + + if (index > 0) { + this.$outer.find('.lg-prev').removeAttr('disabled').removeClass('disabled'); + } else { + this.$outer.find('.lg-prev').attr('disabled', 'disabled').addClass('disabled'); + } + } + }; + + Plugin.prototype.setTranslate = function($el, xValue, yValue) { + // jQuery supports Automatic CSS prefixing since jQuery 1.8.0 + if (this.s.useLeft) { + $el.css('left', xValue); + } else { + $el.css({ + transform: 'translate3d(' + (xValue) + 'px, ' + yValue + 'px, 0px)' + }); + } + }; + + Plugin.prototype.touchMove = function(startCoords, endCoords) { + + var distance = endCoords - startCoords; + + // reset opacity and transition duration + this.$outer.addClass('lg-dragging'); + + // move current slide + this.setTranslate(this.$slide.eq(this.index), distance, 0); + + // move next and prev slide with current slide + this.setTranslate($('.lg-prev-slide'), -this.$slide.eq(this.index).width() + distance, 0); + this.setTranslate($('.lg-next-slide'), this.$slide.eq(this.index).width() + distance, 0); + }; + + Plugin.prototype.touchEnd = function(distance) { + var _this = this; + + // keep slide animation for any mode while dragg/swipe + if (_this.s.mode !== 'lg-slide') { + _this.$outer.addClass('lg-slide'); + } + + this.$slide.not('.lg-current, .lg-prev-slide, .lg-next-slide').css('opacity', '0'); + + // set transition duration + setTimeout(function() { + _this.$outer.removeClass('lg-dragging'); + if ((distance < 0) && (Math.abs(distance) > _this.s.swipeThreshold)) { + _this.goToNextSlide(true); + } else if ((distance > 0) && (Math.abs(distance) > _this.s.swipeThreshold)) { + _this.goToPrevSlide(true); + } else if (Math.abs(distance) < 5) { + + // Trigger click if distance is less than 5 pix + _this.$el.trigger('onSlideClick.lg'); + } + + _this.$slide.removeAttr('style'); + }); + + // remove slide class once drag/swipe is completed if mode is not slide + setTimeout(function() { + if (!_this.$outer.hasClass('lg-dragging') && _this.s.mode !== 'lg-slide') { + _this.$outer.removeClass('lg-slide'); + } + }, _this.s.speed + 100); + + }; + + Plugin.prototype.enableSwipe = function() { + var _this = this; + var startCoords = 0; + var endCoords = 0; + var isMoved = false; + + if (_this.s.enableSwipe && _this.isTouch && _this.doCss()) { + + _this.$slide.on('touchstart.lg', function(e) { + if (!_this.$outer.hasClass('lg-zoomed') && !_this.lgBusy) { + e.preventDefault(); + _this.manageSwipeClass(); + startCoords = e.originalEvent.targetTouches[0].pageX; + } + }); + + _this.$slide.on('touchmove.lg', function(e) { + if (!_this.$outer.hasClass('lg-zoomed')) { + e.preventDefault(); + endCoords = e.originalEvent.targetTouches[0].pageX; + _this.touchMove(startCoords, endCoords); + isMoved = true; + } + }); + + _this.$slide.on('touchend.lg', function() { + if (!_this.$outer.hasClass('lg-zoomed')) { + if (isMoved) { + isMoved = false; + _this.touchEnd(endCoords - startCoords); + } else { + _this.$el.trigger('onSlideClick.lg'); + } + } + }); + } + + }; + + Plugin.prototype.enableDrag = function() { + var _this = this; + var startCoords = 0; + var endCoords = 0; + var isDraging = false; + var isMoved = false; + if (_this.s.enableDrag && !_this.isTouch && _this.doCss()) { + _this.$slide.on('mousedown.lg', function(e) { + // execute only on .lg-object + if (!_this.$outer.hasClass('lg-zoomed')) { + if ($(e.target).hasClass('lg-object') || $(e.target).hasClass('lg-video-play')) { + e.preventDefault(); + + if (!_this.lgBusy) { + _this.manageSwipeClass(); + startCoords = e.pageX; + isDraging = true; + + // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723 + _this.$outer.scrollLeft += 1; + _this.$outer.scrollLeft -= 1; + + // * + + _this.$outer.removeClass('lg-grab').addClass('lg-grabbing'); + + _this.$el.trigger('onDragstart.lg'); + } + + } + } + }); + + $(window).on('mousemove.lg', function(e) { + if (isDraging) { + isMoved = true; + endCoords = e.pageX; + _this.touchMove(startCoords, endCoords); + _this.$el.trigger('onDragmove.lg'); + } + }); + + $(window).on('mouseup.lg', function(e) { + if (isMoved) { + isMoved = false; + _this.touchEnd(endCoords - startCoords); + _this.$el.trigger('onDragend.lg'); + } else if ($(e.target).hasClass('lg-object') || $(e.target).hasClass('lg-video-play')) { + _this.$el.trigger('onSlideClick.lg'); + } + + // Prevent execution on click + if (isDraging) { + isDraging = false; + _this.$outer.removeClass('lg-grabbing').addClass('lg-grab'); + } + }); + + } + }; + + Plugin.prototype.manageSwipeClass = function() { + var touchNext = this.index + 1; + var touchPrev = this.index - 1; + var length = this.$slide.length; + if (this.s.loop) { + if (this.index === 0) { + touchPrev = length - 1; + } else if (this.index === length - 1) { + touchNext = 0; + } + } + + this.$slide.removeClass('lg-next-slide lg-prev-slide'); + if (touchPrev > -1) { + this.$slide.eq(touchPrev).addClass('lg-prev-slide'); + } + + this.$slide.eq(touchNext).addClass('lg-next-slide'); + }; + + Plugin.prototype.mousewheel = function() { + var _this = this; + _this.$outer.on('mousewheel.lg', function(e) { + if (e.deltaY > 0) { + _this.goToPrevSlide(); + } else { + _this.goToNextSlide(); + } + + e.preventDefault(); + }); + + }; + + Plugin.prototype.closeGallery = function() { + + var _this = this; + var mousedown = false; + this.$outer.find('.lg-close').on('click.lg', function() { + _this.destroy(); + }); + + if (_this.s.closable) { + + // If you drag the slide and release outside gallery gets close on chrome + // for preventing this check mousedown and mouseup happened on .lg-item or lg-outer + _this.$outer.on('mousedown.lg', function(e) { + + if ($(e.target).is('.lg-outer') || $(e.target).is('.lg-item ') || $(e.target).is('.lg-img-wrap')) { + mousedown = true; + } else { + mousedown = false; + } + + }); + + _this.$outer.on('mouseup.lg', function(e) { + + if ($(e.target).is('.lg-outer') || $(e.target).is('.lg-item ') || $(e.target).is('.lg-img-wrap') && mousedown) { + if (!_this.$outer.hasClass('lg-dragging')) { + _this.destroy(); + } + } + + }); + + } + + }; + + Plugin.prototype.destroy = function(d) { + + var _this = this; + + _this.$el.trigger('onBeforeClose.lg'); + + /** + * if d is false or undefined destroy will only close the gallery + * plugins instance remains with the element + + * if d is true destroy will completely remove the plugin + */ + + if (d) { + this.$items.off('click.lg click.lgcustom'); + $.removeData(_this.el, 'lightGallery'); + } + + // Unbind all events added by lightGallery + this.$el.off('.lg.tm'); + + // Distroy all lightGallery modules + $.each($.fn.lightGallery.modules, function(key) { + if (_this.modules[key]) { + _this.modules[key].destroy(); + } + }); + + this.lGalleryOn = false; + + clearTimeout(_this.hideBartimeout); + this.hideBartimeout = false; + $(window).off('.lg'); + $('body').removeClass('lg-on lg-from-hash'); + + if (_this.$outer) { + _this.$outer.removeClass('lg-visible'); + } + + $('.lg-backdrop').removeClass('in'); + + setTimeout(function() { + if (_this.$outer) { + _this.$outer.remove(); + } + + $('.lg-backdrop').remove(); + + _this.$el.trigger('onCloseAfter.lg'); + }, _this.s.backdropDuration + 50); + }; + + $.fn.lightGallery = function(options) { + return this.each(function() { + if (!$.data(this, 'lightGallery')) { + $.data(this, 'lightGallery', new Plugin(this, options)); + } else { + try { + $(this).data('lightGallery').init(); + } catch (err) { + console.error('lightGallery has not initiated properly'); + } + } + }); + }; + + $.fn.lightGallery.modules = {}; + +})(jQuery, window, document); diff --git a/vendors/lightGallery/dist/js/lightgallery.min.js b/vendors/lightGallery/dist/js/lightgallery.min.js new file mode 100644 index 000000000..3a441fe38 --- /dev/null +++ b/vendors/lightGallery/dist/js/lightgallery.min.js @@ -0,0 +1,4 @@ +/*! lightgallery - v1.2.0 - 2015-08-26 +* http://sachinchoolur.github.io/lightGallery/ +* Copyright (c) 2015 Sachin N; Licensed Apache 2.0 */ +!function(a,b,c,d){"use strict";function e(b,d){return this.el=b,this.$el=a(b),this.s=a.extend({},f,d),this.modules={},this.lGalleryOn=!1,this.lgBusy=!1,this.hideBartimeout=!1,this.isTouch="ontouchstart"in c.documentElement,this.s.slideEndAnimatoin&&(this.s.hideControlOnEnd=!1),this.s.dynamic?this.$items=this.s.dynamicEl:"this"===this.s.selector?this.$items=this.$el:""!==this.s.selector?this.$items=this.$el.find(a(this.s.selector)):this.$items=this.$el.children(),this.$slide="",this.$outer="",this.init(),this}var f={mode:"lg-slide",cssEasing:"cubic-bezier(0.25, 0, 0.25, 1)",easing:"linear",speed:600,height:"100%",width:"100%",addClass:"",startClass:"lg-start-zoom",backdropDuration:150,hideBarsDelay:6e3,useLeft:!1,closable:!0,loop:!0,escKey:!0,keyPress:!0,controls:!0,slideEndAnimatoin:!0,hideControlOnEnd:!1,mousewheel:!0,appendSubHtmlTo:".lg-sub-html",preload:1,showAfterLoad:!0,selector:"",nextHtml:"",prevHtml:"",index:!1,iframeMaxWidth:"100%",download:!0,counter:!0,appendCounterTo:".lg-toolbar",swipeThreshold:50,enableSwipe:!0,enableDrag:!0,dynamic:!1,dynamicEl:[],galleryId:1};e.prototype.init=function(){var c=this;c.s.preload>c.$items.length&&(c.s.preload=c.$items.length);var d=b.location.hash;d.indexOf("lg="+this.s.galleryId)>0&&(c.index=parseInt(d.split("&slide=")[1],10),a("body").addClass("lg-from-hash"),a("body").hasClass("lg-on")||setTimeout(function(){c.build(c.index),a("body").addClass("lg-on")})),c.s.dynamic?(c.$el.trigger("onBeforeOpen.lg"),c.index=c.s.index||0,a("body").hasClass("lg-on")||setTimeout(function(){c.build(c.index),a("body").addClass("lg-on")})):c.$items.on("click.lgcustom",function(b){try{b.preventDefault(),b.preventDefault()}catch(d){b.returnValue=!1}c.$el.trigger("onBeforeOpen.lg"),c.index=c.s.index||c.$items.index(this),a("body").hasClass("lg-on")||(c.build(c.index),a("body").addClass("lg-on"))})},e.prototype.build=function(b){var c=this;c.structure(),a.each(a.fn.lightGallery.modules,function(b){c.modules[b]=new a.fn.lightGallery.modules[b](c.el)}),c.slide(b,!1,!1),c.s.keyPress&&c.keyPress(),c.$items.length>1&&(c.arrow(),setTimeout(function(){c.enableDrag(),c.enableSwipe()},50),c.s.mousewheel&&c.mousewheel()),c.counter(),c.closeGallery(),c.$outer.on("mousemove.lg click.lg touchstart.lg",function(){c.$outer.removeClass("lg-hide-items"),clearTimeout(c.hideBartimeout),c.hideBartimeout=setTimeout(function(){c.$outer.addClass("lg-hide-items")},c.s.hideBarsDelay)})},e.prototype.structure=function(){var c,d="",e="",f=0,g="",h=this;for(a("body").append('
'),a(".lg-backdrop").css("transition-duration",this.s.backdropDuration+"ms"),f=0;f';if(this.s.controls&&this.$items.length>1&&(e='
'+this.s.prevHtml+'
'+this.s.nextHtml+"
"),".lg-sub-html"===this.s.appendSubHtmlTo&&(g='
'),c='
'+d+'
'+e+g+"
",a("body").append(c),this.$outer=a(".lg-outer"),this.$slide=this.$outer.find(".lg-item"),this.s.useLeft?this.$outer.addClass("lg-use-left"):this.$outer.addClass("lg-use-css3"),h.setTop(),a(b).on("resize.lg orientationchange.lg",function(){setTimeout(function(){h.setTop()},100)}),this.$slide.eq(this.index).addClass("lg-current"),this.doCss()?this.$outer.addClass("lg-css3"):this.$outer.addClass("lg-css"),this.$outer.addClass(this.s.mode),this.s.enableDrag&&this.$items.length>1&&this.$outer.addClass("lg-grab"),this.s.showAfterLoad&&this.$outer.addClass("lg-show-after-load"),this.doCss()){var i=this.$outer.find(".lg-inner");i.css("transition-timing-function",this.s.cssEasing),i.css("transition-duration",this.s.speed+"ms")}a(".lg-backdrop").addClass("in"),setTimeout(function(){h.$outer.addClass("lg-visible")},this.s.backdropDuration),this.s.download&&this.$outer.find(".lg-toolbar").append('')},e.prototype.setTop=function(){if("100%"!==this.s.height){var c=a(b).height(),d=(c-parseInt(this.s.height,10))/2,e=this.$outer.find(".lg");c>=parseInt(this.s.height,10)?e.css("top",d+"px"):e.css("top","0px")}},e.prototype.doCss=function(){var a=function(){var a=["transition","MozTransition","WebkitTransition","OTransition","msTransition","KhtmlTransition"],b=c.documentElement,d=0;for(d=0;d'+(parseInt(this.index,10)+1)+' / '+this.$items.length+"")},e.prototype.addHtml=function(b){var c=null;if(c=this.s.dynamic?this.s.dynamicEl[b].subHtml:this.$items.eq(b).attr("data-sub-html"),"undefined"!=typeof c&&null!==c){var d=c.substring(0,1);c="."===d||"#"===d?a(c).html():c}else c="";".lg-sub-html"===this.s.appendSubHtmlTo?(this.$outer.find(this.s.appendSubHtmlTo).html(c),""===c?this.$outer.find(this.s.appendSubHtmlTo).addClass("lg-empty-html"):this.$outer.find(this.s.appendSubHtmlTo).removeClass("lg-empty-html")):this.$slide.eq(b).append(c),this.$el.trigger("onAfterAppendSubHtml.lg",[b])},e.prototype.preload=function(a){var b=1,c=1;for(b=1;b<=this.s.preload&&!(b>=this.$items.length-a);b++)this.loadContent(a+b,!1,0);for(c=1;c<=this.s.preload&&!(0>a-c);c++)this.loadContent(a-c,!1,0)},e.prototype.loadContent=function(c,d,e){var f,g,h,i,j,k,l=this,m=!1,n=function(c){for(var d=[],e=[],f=0;fi){g=e[j];break}};if(l.s.dynamic){if(l.s.dynamicEl[c].poster&&(m=!0,h=l.s.dynamicEl[c].poster),k=l.s.dynamicEl[c].html,g=l.s.dynamicEl[c].src,l.s.dynamicEl[c].responsive){var o=l.s.dynamicEl[c].responsive.split(",");n(o)}i=l.s.dynamicEl[c].srcset,j=l.s.dynamicEl[c].sizes}else{if(l.$items.eq(c).attr("data-poster")&&(m=!0,h=l.$items.eq(c).attr("data-poster")),k=l.$items.eq(c).attr("data-html"),g=l.$items.eq(c).attr("href")||l.$items.eq(c).attr("data-src"),l.$items.eq(c).attr("data-responsive")){var p=l.$items.eq(c).attr("data-responsive").split(",");n(p)}i=l.$items.eq(c).attr("data-srcset"),j=l.$items.eq(c).attr("data-sizes")}var q=!1;l.s.dynamic?l.s.dynamicEl[c].iframe&&(q=!0):"true"===l.$items.eq(c).attr("data-iframe")&&(q=!0);var r=l.isVideo(g,c);if(!l.$slide.eq(c).hasClass("lg-loaded")){if(q)l.$slide.eq(c).prepend('
');else if(m){var s="";s=r&&r.youtube?"lg-has-youtube":r&&r.vimeo?"lg-has-vimeo":"lg-has-html5",l.$slide.eq(c).prepend('
')}else r?(l.$slide.eq(c).prepend('
'),l.$el.trigger("hasVideo.lg",[c,g,k])):l.$slide.eq(c).prepend('
');if(l.$el.trigger("onAferAppendSlide.lg",[c]),f=l.$slide.eq(c).find(".lg-object"),j&&f.attr("sizes",j),i){f.attr("srcset",i);try{picturefill({elements:[f[0]]})}catch(t){console.error("Make sure you have included Picturefill version 2")}}".lg-sub-html"!==this.s.appendSubHtmlTo&&l.addHtml(c),l.$slide.eq(c).addClass("lg-loaded")}l.$slide.eq(c).find(".lg-object").on("load.lg error.lg",function(){var b=0;e&&!a("body").hasClass("lg-from-hash")&&(b=e),setTimeout(function(){l.$slide.eq(c).addClass("lg-complete"),l.$el.trigger("onSlideItemLoad.lg",[c,e||0])},b)}),r&&r.html5&&!m&&l.$slide.eq(c).addClass("lg-complete"),d===!0&&(l.$slide.eq(c).hasClass("lg-complete")?l.preload(c):l.$slide.eq(c).find(".lg-object").on("load.lg error.lg",function(){l.preload(c)}))},e.prototype.slide=function(b,c,d){var e=this.$outer.find(".lg-current").index(),f=this;if(!f.lGalleryOn||e!==b){var g=this.$slide.length,h=f.lGalleryOn?this.s.speed:0,i=!1,j=!1;if(!f.lgBusy){if(this.$el.trigger("onBeforeSlide.lg",[e,b,c,d]),f.lgBusy=!0,clearTimeout(f.hideBartimeout),".lg-sub-html"===this.s.appendSubHtmlTo&&setTimeout(function(){f.addHtml(b)},h),this.arrowDisable(b),c){var k=b-1,l=b+1;0===b&&e===g-1?(l=0,k=g-1):b===g-1&&0===e&&(l=0,k=g-1),this.$slide.removeClass("lg-prev-slide lg-current lg-next-slide"),f.$slide.eq(k).addClass("lg-prev-slide"),f.$slide.eq(l).addClass("lg-next-slide"),f.$slide.eq(b).addClass("lg-current")}else f.$outer.addClass("lg-no-trans"),this.$slide.removeClass("lg-prev-slide lg-next-slide"),e>b?(j=!0,0!==b||e!==g-1||d||(j=!1,i=!0)):b>e&&(i=!0,b!==g-1||0!==e||d||(j=!0,i=!1)),j?(this.$slide.eq(b).addClass("lg-prev-slide"),this.$slide.eq(e).addClass("lg-next-slide")):i&&(this.$slide.eq(b).addClass("lg-next-slide"),this.$slide.eq(e).addClass("lg-prev-slide")),setTimeout(function(){f.$slide.removeClass("lg-current"),f.$slide.eq(b).addClass("lg-current"),f.$outer.removeClass("lg-no-trans")},50);if(f.lGalleryOn?(setTimeout(function(){f.loadContent(b,!0,0)},this.s.speed+50),setTimeout(function(){f.lgBusy=!1,f.$el.trigger("onAfterSlide.lg",[e,b,c,d])},this.s.speed),f.doCss()||(f.$slide.fadeOut(f.s.speed),f.$slide.eq(b).fadeIn(f.s.speed))):(f.loadContent(b,!0,f.s.backdropDuration),f.lgBusy=!1,f.$el.trigger("onAfterSlide.lg",[e,b,c,d]),f.doCss()||(f.$slide.fadeOut(50),f.$slide.eq(b).fadeIn(50))),this.s.download){var m;m=f.s.dynamic?f.s.dynamicEl[b].downloadUrl||f.s.dynamicEl[b].src:f.$items.eq(b).attr("data-download-url")||f.$items.eq(b).attr("href")||f.$items.eq(b).attr("data-src"),a("#lg-download").attr("href",m)}f.lGalleryOn=!0,this.s.counter&&a("#lg-counter-current").text(b+1)}}},e.prototype.goToNextSlide=function(a){var b=this;b.lgBusy||(b.index+10?(b.index--,b.$el.trigger("onBeforePrevSlide.lg",[b.index,a]),b.slide(b.index,a,!1)):b.s.loop?(b.index=b.$items.length-1,b.$el.trigger("onBeforePrevSlide.lg",[b.index,a]),b.slide(b.index,a,!1)):b.s.slideEndAnimatoin&&(b.$outer.addClass("lg-left-end"),setTimeout(function(){b.$outer.removeClass("lg-left-end")},400)))},e.prototype.keyPress=function(){var c=this;this.$items.length>1&&a(b).on("keyup.lg",function(a){c.$items.length>1&&(37===a.keyCode&&(a.preventDefault(),c.goToPrevSlide()),39===a.keyCode&&(a.preventDefault(),c.goToNextSlide()))}),a(b).on("keydown.lg",function(a){c.s.escKey!==!0||27!==a.keyCode||c.$outer.hasClass("lg-thumb-open")||(a.preventDefault(),c.destroy())})},e.prototype.arrow=function(){var a=this;this.$outer.find(".lg-prev").on("click.lg",function(){a.goToPrevSlide()}),this.$outer.find(".lg-next").on("click.lg",function(){a.goToNextSlide()})},e.prototype.arrowDisable=function(a){!this.s.loop&&this.s.hideControlOnEnd&&(a+10?this.$outer.find(".lg-prev").removeAttr("disabled").removeClass("disabled"):this.$outer.find(".lg-prev").attr("disabled","disabled").addClass("disabled"))},e.prototype.setTranslate=function(a,b,c){this.s.useLeft?a.css("left",b):a.css({transform:"translate3d("+b+"px, "+c+"px, 0px)"})},e.prototype.touchMove=function(b,c){var d=c-b;this.$outer.addClass("lg-dragging"),this.setTranslate(this.$slide.eq(this.index),d,0),this.setTranslate(a(".lg-prev-slide"),-this.$slide.eq(this.index).width()+d,0),this.setTranslate(a(".lg-next-slide"),this.$slide.eq(this.index).width()+d,0)},e.prototype.touchEnd=function(a){var b=this;"lg-slide"!==b.s.mode&&b.$outer.addClass("lg-slide"),this.$slide.not(".lg-current, .lg-prev-slide, .lg-next-slide").css("opacity","0"),setTimeout(function(){b.$outer.removeClass("lg-dragging"),0>a&&Math.abs(a)>b.s.swipeThreshold?b.goToNextSlide(!0):a>0&&Math.abs(a)>b.s.swipeThreshold?b.goToPrevSlide(!0):Math.abs(a)<5&&b.$el.trigger("onSlideClick.lg"),b.$slide.removeAttr("style")}),setTimeout(function(){b.$outer.hasClass("lg-dragging")||"lg-slide"===b.s.mode||b.$outer.removeClass("lg-slide")},b.s.speed+100)},e.prototype.enableSwipe=function(){var a=this,b=0,c=0,d=!1;a.s.enableSwipe&&a.isTouch&&a.doCss()&&(a.$slide.on("touchstart.lg",function(c){a.$outer.hasClass("lg-zoomed")||a.lgBusy||(c.preventDefault(),a.manageSwipeClass(),b=c.originalEvent.targetTouches[0].pageX)}),a.$slide.on("touchmove.lg",function(e){a.$outer.hasClass("lg-zoomed")||(e.preventDefault(),c=e.originalEvent.targetTouches[0].pageX,a.touchMove(b,c),d=!0)}),a.$slide.on("touchend.lg",function(){a.$outer.hasClass("lg-zoomed")||(d?(d=!1,a.touchEnd(c-b)):a.$el.trigger("onSlideClick.lg"))}))},e.prototype.enableDrag=function(){var c=this,d=0,e=0,f=!1,g=!1;c.s.enableDrag&&!c.isTouch&&c.doCss()&&(c.$slide.on("mousedown.lg",function(b){c.$outer.hasClass("lg-zoomed")||(a(b.target).hasClass("lg-object")||a(b.target).hasClass("lg-video-play"))&&(b.preventDefault(),c.lgBusy||(c.manageSwipeClass(),d=b.pageX,f=!0,c.$outer.scrollLeft+=1,c.$outer.scrollLeft-=1,c.$outer.removeClass("lg-grab").addClass("lg-grabbing"),c.$el.trigger("onDragstart.lg")))}),a(b).on("mousemove.lg",function(a){f&&(g=!0,e=a.pageX,c.touchMove(d,e),c.$el.trigger("onDragmove.lg"))}),a(b).on("mouseup.lg",function(b){g?(g=!1,c.touchEnd(e-d),c.$el.trigger("onDragend.lg")):(a(b.target).hasClass("lg-object")||a(b.target).hasClass("lg-video-play"))&&c.$el.trigger("onSlideClick.lg"),f&&(f=!1,c.$outer.removeClass("lg-grabbing").addClass("lg-grab"))}))},e.prototype.manageSwipeClass=function(){var a=this.index+1,b=this.index-1,c=this.$slide.length;this.s.loop&&(0===this.index?b=c-1:this.index===c-1&&(a=0)),this.$slide.removeClass("lg-next-slide lg-prev-slide"),b>-1&&this.$slide.eq(b).addClass("lg-prev-slide"),this.$slide.eq(a).addClass("lg-next-slide")},e.prototype.mousewheel=function(){var a=this;a.$outer.on("mousewheel.lg",function(b){b.deltaY>0?a.goToPrevSlide():a.goToNextSlide(),b.preventDefault()})},e.prototype.closeGallery=function(){var b=this,c=!1;this.$outer.find(".lg-close").on("click.lg",function(){b.destroy()}),b.s.closable&&(b.$outer.on("mousedown.lg",function(b){c=a(b.target).is(".lg-outer")||a(b.target).is(".lg-item ")||a(b.target).is(".lg-img-wrap")?!0:!1}),b.$outer.on("mouseup.lg",function(d){(a(d.target).is(".lg-outer")||a(d.target).is(".lg-item ")||a(d.target).is(".lg-img-wrap")&&c)&&(b.$outer.hasClass("lg-dragging")||b.destroy())}))},e.prototype.destroy=function(c){var d=this;d.$el.trigger("onBeforeClose.lg"),c&&(this.$items.off("click.lg click.lgcustom"),a.removeData(d.el,"lightGallery")),this.$el.off(".lg.tm"),a.each(a.fn.lightGallery.modules,function(a){d.modules[a]&&d.modules[a].destroy()}),this.lGalleryOn=!1,clearTimeout(d.hideBartimeout),this.hideBartimeout=!1,a(b).off(".lg"),a("body").removeClass("lg-on lg-from-hash"),d.$outer&&d.$outer.removeClass("lg-visible"),a(".lg-backdrop").removeClass("in"),setTimeout(function(){d.$outer&&d.$outer.remove(),a(".lg-backdrop").remove(),d.$el.trigger("onCloseAfter.lg")},d.s.backdropDuration+50)},a.fn.lightGallery=function(b){return this.each(function(){if(a.data(this,"lightGallery"))try{a(this).data("lightGallery").init()}catch(c){console.error("lightGallery has not initiated properly")}else a.data(this,"lightGallery",new e(this,b))})},a.fn.lightGallery.modules={}}(jQuery,window,document); \ No newline at end of file