diff --git a/vendors/_jquery-magnific-popup/README.md b/vendors/_jquery-magnific-popup/README.md
deleted file mode 100644
index 3586421ab..000000000
--- a/vendors/_jquery-magnific-popup/README.md
+++ /dev/null
@@ -1,183 +0,0 @@
-# Magnific Popup Repository
-
-[](https://travis-ci.org/dimsemenov/Magnific-Popup)
-
-Fast, light and responsive lightbox plugin, for jQuery and Zepto.js.
-
-- [Documentation and getting started guide](http://dimsemenov.com/plugins/magnific-popup/documentation.html).
-- [Examples and plugin home page](http://dimsemenov.com/plugins/magnific-popup/).
-- More examples in [CodePen collection](http://codepen.io/collection/nLcqo).
-
-Optionally, install via Bower: `bower install magnific-popup`.
-
-## Extensions
-
-- WordPress plugin - [under development](http://dimsemenov.com/plugins/magnific-popup/wordpress.html).
-- [Drupal module](https://drupal.org/project/magnific_popup).
-- [Ruby gem](https://rubygems.org/gems/magnific-popup-rails), `gem install magnific-popup-rails`.
-
-If you created a popup extension for something, email me and I'll add it to this list.
-
-## Location of stuff
-
-- Generated popup JS and CSS files are in folder [dist/](https://github.com/dimsemenov/Magnific-Popup/tree/master/dist). (Online build tool is on [documentation page](http://dimsemenov.com/plugins/magnific-popup/documentation.html)).
-- Source files are in folder [src/](https://github.com/dimsemenov/Magnific-Popup/tree/master/src). They include [Sass CSS file](https://github.com/dimsemenov/Magnific-Popup/blob/master/src/css/main.scss) and js parts (edit them if you wish to submit commit).
-- Website (examples & documentation) is in folder [website/](https://github.com/dimsemenov/Magnific-Popup/tree/master/website).
-- Documentation page itself is in [website/documentation.md](https://github.com/dimsemenov/Magnific-Popup/blob/master/website/documentation.md) (contributions to it are very welcome).
-
-## Build
-
-To compile Magnific Popup by yourself, first of make sure that you have [Node.js](http://nodejs.org/), [Grunt.js](https://github.com/cowboy/grunt), [Ruby](http://www.ruby-lang.org/) and [Jekyll](https://github.com/mojombo/jekyll/) installed, then:
-
-1) Copy repository
-
- git clone https://github.com/dimsemenov/Magnific-Popup.git
-
-2) Go inside Magnific Popup folder that you fetched and install Node dependencies
-
- cd Magnific-Popup && npm install
-
-3) Now simply run `grunt` to generate JS and CSS in folder `dist` and site in folder `_site/`.
-
- grunt
-
-Optionally:
-
-- Run `grunt watch` to automatically rebuild script when you change files in `src/` or in `website/`.
-- If you don't have and don't want to install Jekyll, run `grunt nosite` to just build JS and CSS files related to popup in `dist/`.
-
-
-## Changelog
-
-
-### 0.9.8 (Oct 26, 2013)
-
-- Added figure and figcaption elements to image markup (#233, thanks to @pjackson28).
-- To avoid "jump" of content background, gap from right side (that "replaces" the scrollbar) is added with help of `margin`, instead of `padding`, (closes #125, thanks to @chodorowicz).
-- Function that checks if the clicked element should close popup or not is now public (so it
).
-- Working on a new module: the exact copy of native fullscreen Android/iOS gallery, with touch/zoom/pan e.t.c., will publish branch soon (©Blizzard).
-
-### 0.9.7 (Oct 10, 2013)
-
-- CSS: removed outline on buttons (thanks to @OriginalEXE).
-- Allow multiple string tokens to be passed in gallery variables like `%curr% of %total%` and `%title%` (#234, thanks to Petr Marek).
-- A few small changes to Grunt build, `grunt-contrib-sass` > `grunt-sass`. (thanks to @nschonni).
-
-### 0.9.6 (Sep 29, 2013)
-
-- Fixed bug: options object that you pass to popup gets modified after the initialization (#217, #203).
-- Fixed bug: zoom module creates global variable (#226).
-- Fixed bug: gallery from AJAX popups stacks content if it's switched before loading has finished.
-- Indented and combined SCSS classes (thanks to @nschonni).
-- `$.magnificPopup.close()` now doesn't throw an exception if there's no instance (#221, thanks to @mjlescano).
-
-### 0.9.5 (Aug 21, 2013)
-
-- Fixed bug: built-in tab focus in popup works incorrectly (caused by 0.9.3 update).
-
-### 0.9.4 (Aug 7, 2013)
-
-- Fixed bug: error in IE7 when minified version of script is used with some versions of jQuery, #156.
-- Fixed bug: DOM exception in Chrome when using gallery mode with some versions of jQuery, #177.
-
-### 0.9.3 (Jul 16, 2013)
-
-- Fixed blurry arrows in FF (#142)
-- Added `lazyLoadError` callback.
-- Popup now prevents closing if the clicked element is remvoved from DOM.
-- `overflow:hidden` is now applied to `html` instead of `body`.
-- Increased default z-index to from 500 to 1040.
-
-### 0.9.2 (Jul 5, 2013)
-
-- Fixed bug in new zoom module, that could cause incorrect calculation of image height, when jQuery is used instead of Zepto.
-
-### 0.9.1 (Jul 4, 2013)
-
-- Added zoom module effect for images, go to Magnific Popup [website](http://dimsemenov.com/plugins/magnific-popup/) to view demos. More info in [docs](http://dimsemenov.com/plugins/magnific-popup/documentation.html#zoom_effect).
-- `removalDelay` now applies only when browser supports CSS transitions.
-- Fix: removed tiny blink when switching between gallery images, or opening images that are already cached.
-- Changed the default appearance of gallery arrows (now its white triangle with black border, was vice-versa).
-- Added solid background to the image when its loading.
-
-
-
-
-### 0.9.0 (Jul 3, 2013)
-
-- Added `modal` option which disables all default ways to close the popup, learn more in [docs](http://dimsemenov.com/plugins/magnific-popup/documentation.html#modal). Thanks to [Julen Ruiz Aizpuru](https://github.com/julen).
-- Added `beforeClose` event.
-- Added `imageLoadComplete` event.
-- Removed jQuery event alias calls. Thanks to [Albert Casademont](https://github.com/acasademont).
-- Cleaned some duplicate styles in CSS. Thanks to [Yann Abgrall](https://github.com/yannabgrall).
-
-### 0.8.9 (Jun 4, 2013)
-
-- Fix: inline element that is created dynamically causes exception in jQuery 1.8.x.
-- Fix: incorrect detection of `_hasScrollBar` if body has defined height style.
-- Fix: body styles are kept after popup is closed.
-- Fix: close icon is aligned incorrectly with iframe type.
-- **responseText is deprected**. Argument of callback `parseAjax` - `obj.responseText` is now deprected, but you can still access it via `obj.xhr.responseText`. Instead of it, please use `obj.data` to modify your output.
-- Sass: changed variables to be default declarations to support front-loaded settings. i.e. You can override options by adding `_settings.scss` file near `main.scss` with your new options.
-- Added: `afterClose` event.
-- Added: `ajaxContentLoaded` event.
-- Added: [Bower](https://github.com/bower/bower) support.
-
-### 0.8.8 (May 24, 2013)
-
-- Fix: you can now put link inside popup that will open another popup - http://codepen.io/dimsemenov/pen/hwIng
-- Fix: incorrect index when opening popup that is already opened from multiple DOM elements.
-
-### 0.8.7 (May 19, 2013)
-
-- Fixed #62 - IE9 HTML5 YouTube player playing audio after pop up closed
-
-### 0.8.6 (May 18, 2013)
-
-- Controls are now removed when there is only one element in gallery.
-- Fixed issue that could cause incorrect main event element.
-- Public property `items` is now always an array (previously it could be jQuery object collection).
-- Added `word-break: break-word` to caption.
-
-### 0.8.5 (May 15, 2013)
-
-- Fix #43 - In IE8 whole window becomes black when YouTube iframe is
-closed.
-- Fix #51 - In IE9 YouTube HTML5 video keeps playing after iframe is
-removed from page.
-- Bugfix - box-sizing on IMG in low IE behaves incorrectly.
-- Fix #57 - padding on body is not added with overflowY:'scroll'.
-- removalDelay option is now ignored in IE.
-- Added an option closeOnBgClick.
-- Added BeforeChange callback.
-- Added AfterChange callback.
-
-### 0.8.4 (May 13, 2013)
-
-- You can now call any public method directly from jQuery DOM element, e.g.: `$('.some-el-with-popup').magnificPopup('methodName', /*, arguments */)`.
-- Optimized inline module. Now target element is replaced with placeholder only when it has a defined parent node.
-- `inline` type is now set as a default, so you may skip it.
-- Now content is just replaced when you call `open()` on popup that is already opened.
-
-
-### 0.8.3 (May 9, 2013)
-
-- Added: `goTo` public method.
-- Custom events that are added to popup are now not lost when navigating through gallery.
-- If `delegate` option is used, events are now dispatched on main element instead of children.
-
-
-### 0.8.2 (May 5, 2013)
-
-- Added !important to mfp-hide class.
-- Fix gallery rendering issue in Opera.
-- Fix padding to body with overflow:scroll.
-
-
-
-
-## License
-
-Script is MIT licensed and free and will always be kept this way. But has a small restriction from me - please do not create public WordPress plugin based on it(or at least contact me before creating it), because I will make it and it'll be open source too ([want to get notified?](http://dimsemenov.com/subscribe.html)).
-
-Created by [@dimsemenov](http://twitter.com/dimsemenov) & [contributors](https://github.com/dimsemenov/Magnific-Popup/contributors).
\ No newline at end of file
diff --git a/vendors/_jquery-magnific-popup/bower.json b/vendors/_jquery-magnific-popup/bower.json
deleted file mode 100644
index e46a5b9a0..000000000
--- a/vendors/_jquery-magnific-popup/bower.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "name": "magnific-popup",
- "version": "0.9.8",
- "main": [
- "dist/jquery.magnific-popup.js",
- "dist/magnific-popup.css"
- ],
- "dependencies": {
- "jquery": ">=1.8.0"
- },
- "ignore": [
- "node_modules/",
- "components/",
- "website/",
- "libs/"
- ]
-}
\ No newline at end of file
diff --git a/vendors/_jquery-magnific-popup/jquery.magnific-popup.js b/vendors/_jquery-magnific-popup/jquery.magnific-popup.js
deleted file mode 100644
index 3c16a7f1b..000000000
--- a/vendors/_jquery-magnific-popup/jquery.magnific-popup.js
+++ /dev/null
@@ -1,2041 +0,0 @@
-/*! Magnific Popup - v0.9.8 - 2013-10-26
-* http://dimsemenov.com/plugins/magnific-popup/
-* Copyright (c) 2013 Dmitry Semenov; MIT */
-;(function($) {
-
-/*>>core*/
-/**
- *
- * Magnific Popup Core JS file
- *
- */
-
-
-/**
- * Private static constants
- */
-var CLOSE_EVENT = 'Close',
- BEFORE_CLOSE_EVENT = 'BeforeClose',
- AFTER_CLOSE_EVENT = 'AfterClose',
- BEFORE_APPEND_EVENT = 'BeforeAppend',
- MARKUP_PARSE_EVENT = 'MarkupParse',
- OPEN_EVENT = 'Open',
- CHANGE_EVENT = 'Change',
- NS = 'mfp',
- EVENT_NS = '.' + NS,
- READY_CLASS = 'mfp-ready',
- REMOVING_CLASS = 'mfp-removing',
- PREVENT_CLOSE_CLASS = 'mfp-prevent-close';
-
-
-/**
- * Private vars
- */
-var mfp, // As we have only one instance of MagnificPopup object, we define it locally to not to use 'this'
- MagnificPopup = function(){},
- _isJQ = !!(window.jQuery),
- _prevStatus,
- _window = $(window),
- _body,
- _document,
- _prevContentType,
- _wrapClasses,
- _currPopupType;
-
-
-/**
- * Private functions
- */
-var _mfpOn = function(name, f) {
- mfp.ev.on(NS + name + EVENT_NS, f);
- },
- _getEl = function(className, appendTo, html, raw) {
- var el = document.createElement('div');
- el.className = 'mfp-'+className;
- if(html) {
- el.innerHTML = html;
- }
- if(!raw) {
- el = $(el);
- if(appendTo) {
- el.appendTo(appendTo);
- }
- } else if(appendTo) {
- appendTo.appendChild(el);
- }
- return el;
- },
- _mfpTrigger = function(e, data) {
- mfp.ev.triggerHandler(NS + e, data);
-
- if(mfp.st.callbacks) {
- // converts "mfpEventName" to "eventName" callback and triggers it if it's present
- e = e.charAt(0).toLowerCase() + e.slice(1);
- if(mfp.st.callbacks[e]) {
- mfp.st.callbacks[e].apply(mfp, $.isArray(data) ? data : [data]);
- }
- }
- },
- _setFocus = function() {
- (mfp.st.focus ? mfp.content.find(mfp.st.focus).eq(0) : mfp.wrap).focus();
- },
- _getCloseBtn = function(type) {
- if(type !== _currPopupType || !mfp.currTemplate.closeBtn) {
- mfp.currTemplate.closeBtn = $( mfp.st.closeMarkup.replace('%title%', mfp.st.tClose ) );
- _currPopupType = type;
- }
- return mfp.currTemplate.closeBtn;
- },
- // Initialize Magnific Popup only when called at least once
- _checkInstance = function() {
- if(!$.magnificPopup.instance) {
- mfp = new MagnificPopup();
- mfp.init();
- $.magnificPopup.instance = mfp;
- }
- },
- // CSS transition detection, http://stackoverflow.com/questions/7264899/detect-css-transitions-using-javascript-and-without-modernizr
- supportsTransitions = function() {
- var s = document.createElement('p').style, // 's' for style. better to create an element if body yet to exist
- v = ['ms','O','Moz','Webkit']; // 'v' for vendor
-
- if( s['transition'] !== undefined ) {
- return true;
- }
-
- while( v.length ) {
- if( v.pop() + 'Transition' in s ) {
- return true;
- }
- }
-
- return false;
- };
-
-
-
-/**
- * Public functions
- */
-MagnificPopup.prototype = {
-
- constructor: MagnificPopup,
-
- /**
- * Initializes Magnific Popup plugin.
- * This function is triggered only once when $.fn.magnificPopup or $.magnificPopup is executed
- */
- init: function() {
- var appVersion = navigator.appVersion;
- mfp.isIE7 = appVersion.indexOf("MSIE 7.") !== -1;
- mfp.isIE8 = appVersion.indexOf("MSIE 8.") !== -1;
- mfp.isLowIE = mfp.isIE7 || mfp.isIE8;
- mfp.isAndroid = (/android/gi).test(appVersion);
- mfp.isIOS = (/iphone|ipad|ipod/gi).test(appVersion);
- mfp.supportsTransition = supportsTransitions();
-
- // We disable fixed positioned lightbox on devices that don't handle it nicely.
- // If you know a better way of detecting this - let me know.
- mfp.probablyMobile = (mfp.isAndroid || mfp.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent) );
- _body = $(document.body);
- _document = $(document);
-
- mfp.popupsCache = {};
- },
-
- /**
- * Opens popup
- * @param data [description]
- */
- open: function(data) {
-
- var i;
-
- if(data.isObj === false) {
- // convert jQuery collection to array to avoid conflicts later
- mfp.items = data.items.toArray();
-
- mfp.index = 0;
- var items = data.items,
- item;
- for(i = 0; i < items.length; i++) {
- item = items[i];
- if(item.parsed) {
- item = item.el[0];
- }
- if(item === data.el[0]) {
- mfp.index = i;
- break;
- }
- }
- } else {
- mfp.items = $.isArray(data.items) ? data.items : [data.items];
- mfp.index = data.index || 0;
- }
-
- // if popup is already opened - we just update the content
- if(mfp.isOpen) {
- mfp.updateItemHTML();
- return;
- }
-
- mfp.types = [];
- _wrapClasses = '';
- if(data.mainEl && data.mainEl.length) {
- mfp.ev = data.mainEl.eq(0);
- } else {
- mfp.ev = _document;
- }
-
- if(data.key) {
- if(!mfp.popupsCache[data.key]) {
- mfp.popupsCache[data.key] = {};
- }
- mfp.currTemplate = mfp.popupsCache[data.key];
- } else {
- mfp.currTemplate = {};
- }
-
-
-
- mfp.st = $.extend(true, {}, $.magnificPopup.defaults, data );
- mfp.fixedContentPos = mfp.st.fixedContentPos === 'auto' ? !mfp.probablyMobile : mfp.st.fixedContentPos;
-
- if(mfp.st.modal) {
- mfp.st.closeOnContentClick = false;
- mfp.st.closeOnBgClick = false;
- mfp.st.showCloseBtn = false;
- mfp.st.enableEscapeKey = false;
- }
-
-
- // Building markup
- // main containers are created only once
- if(!mfp.bgOverlay) {
-
- // Dark overlay
- mfp.bgOverlay = _getEl('bg').on('click'+EVENT_NS, function() {
- mfp.close();
- });
-
- mfp.wrap = _getEl('wrap').attr('tabindex', -1).on('click'+EVENT_NS, function(e) {
- if(mfp._checkIfClose(e.target)) {
- mfp.close();
- }
- });
-
- mfp.container = _getEl('container', mfp.wrap);
- }
-
- mfp.contentContainer = _getEl('content');
- if(mfp.st.preloader) {
- mfp.preloader = _getEl('preloader', mfp.container, mfp.st.tLoading);
- }
-
-
- // Initializing modules
- var modules = $.magnificPopup.modules;
- for(i = 0; i < modules.length; i++) {
- var n = modules[i];
- n = n.charAt(0).toUpperCase() + n.slice(1);
- mfp['init'+n].call(mfp);
- }
- _mfpTrigger('BeforeOpen');
-
-
- if(mfp.st.showCloseBtn) {
- // Close button
- if(!mfp.st.closeBtnInside) {
- mfp.wrap.append( _getCloseBtn() );
- } else {
- _mfpOn(MARKUP_PARSE_EVENT, function(e, template, values, item) {
- values.close_replaceWith = _getCloseBtn(item.type);
- });
- _wrapClasses += ' mfp-close-btn-in';
- }
- }
-
- if(mfp.st.alignTop) {
- _wrapClasses += ' mfp-align-top';
- }
-
-
-
- if(mfp.fixedContentPos) {
- mfp.wrap.css({
- overflow: mfp.st.overflowY,
- overflowX: 'hidden',
- overflowY: mfp.st.overflowY
- });
- } else {
- mfp.wrap.css({
- top: _window.scrollTop(),
- position: 'absolute'
- });
- }
- if( mfp.st.fixedBgPos === false || (mfp.st.fixedBgPos === 'auto' && !mfp.fixedContentPos) ) {
- mfp.bgOverlay.css({
- height: _document.height(),
- position: 'absolute'
- });
- }
-
-
-
- if(mfp.st.enableEscapeKey) {
- // Close on ESC key
- _document.on('keyup' + EVENT_NS, function(e) {
- if(e.keyCode === 27) {
- mfp.close();
- }
- });
- }
-
- _window.on('resize' + EVENT_NS, function() {
- mfp.updateSize();
- });
-
-
- if(!mfp.st.closeOnContentClick) {
- _wrapClasses += ' mfp-auto-cursor';
- }
-
- if(_wrapClasses)
- mfp.wrap.addClass(_wrapClasses);
-
-
- // this triggers recalculation of layout, so we get it once to not to trigger twice
- var windowHeight = mfp.wH = _window.height();
-
-
- var windowStyles = {};
-
- if( mfp.fixedContentPos ) {
- if(mfp._hasScrollBar(windowHeight)){
- var s = mfp._getScrollbarSize();
- if(s) {
- windowStyles.marginRight = s;
- }
- }
- }
-
- if(mfp.fixedContentPos) {
- if(!mfp.isIE7) {
- windowStyles.overflow = 'hidden';
- } else {
- // ie7 double-scroll bug
- $('body, html').css('overflow', 'hidden');
- }
- }
-
-
-
- var classesToadd = mfp.st.mainClass;
- if(mfp.isIE7) {
- classesToadd += ' mfp-ie7';
- }
- if(classesToadd) {
- mfp._addClassToMFP( classesToadd );
- }
-
- // add content
- mfp.updateItemHTML();
-
- _mfpTrigger('BuildControls');
-
-
- // remove scrollbar, add margin e.t.c
- $('html').css(windowStyles);
-
- // add everything to DOM
- mfp.bgOverlay.add(mfp.wrap).prependTo( document.body );
-
-
-
- // Save last focused element
- mfp._lastFocusedEl = document.activeElement;
-
- // Wait for next cycle to allow CSS transition
- setTimeout(function() {
-
- if(mfp.content) {
- mfp._addClassToMFP(READY_CLASS);
- _setFocus();
- } else {
- // if content is not defined (not loaded e.t.c) we add class only for BG
- mfp.bgOverlay.addClass(READY_CLASS);
- }
-
- // Trap the focus in popup
- _document.on('focusin' + EVENT_NS, function (e) {
- if( e.target !== mfp.wrap[0] && !$.contains(mfp.wrap[0], e.target) ) {
- _setFocus();
- return false;
- }
- });
-
- }, 16);
-
- mfp.isOpen = true;
- mfp.updateSize(windowHeight);
- _mfpTrigger(OPEN_EVENT);
-
- return data;
- },
-
- /**
- * Closes the popup
- */
- close: function() {
- if(!mfp.isOpen) return;
- _mfpTrigger(BEFORE_CLOSE_EVENT);
-
- mfp.isOpen = false;
- // for CSS3 animation
- if(mfp.st.removalDelay && !mfp.isLowIE && mfp.supportsTransition ) {
- mfp._addClassToMFP(REMOVING_CLASS);
- setTimeout(function() {
- mfp._close();
- }, mfp.st.removalDelay);
- } else {
- mfp._close();
- }
- },
-
- /**
- * Helper for close() function
- */
- _close: function() {
- _mfpTrigger(CLOSE_EVENT);
-
- var classesToRemove = REMOVING_CLASS + ' ' + READY_CLASS + ' ';
-
- mfp.bgOverlay.detach();
- mfp.wrap.detach();
- mfp.container.empty();
-
- if(mfp.st.mainClass) {
- classesToRemove += mfp.st.mainClass + ' ';
- }
-
- mfp._removeClassFromMFP(classesToRemove);
-
- if(mfp.fixedContentPos) {
- var windowStyles = {marginRight: ''};
- if(mfp.isIE7) {
- $('body, html').css('overflow', '');
- } else {
- windowStyles.overflow = '';
- }
- $('html').css(windowStyles);
- }
-
- _document.off('keyup' + EVENT_NS + ' focusin' + EVENT_NS);
- mfp.ev.off(EVENT_NS);
-
- // clean up DOM elements that aren't removed
- mfp.wrap.attr('class', 'mfp-wrap').removeAttr('style');
- mfp.bgOverlay.attr('class', 'mfp-bg');
- mfp.container.attr('class', 'mfp-container');
-
- // remove close button from target element
- if(mfp.st.showCloseBtn &&
- (!mfp.st.closeBtnInside || mfp.currTemplate[mfp.currItem.type] === true)) {
- if(mfp.currTemplate.closeBtn)
- mfp.currTemplate.closeBtn.detach();
- }
-
-
- if(mfp._lastFocusedEl) {
- $(mfp._lastFocusedEl).focus(); // put tab focus back
- }
- mfp.currItem = null;
- mfp.content = null;
- mfp.currTemplate = null;
- mfp.prevHeight = 0;
-
- _mfpTrigger(AFTER_CLOSE_EVENT);
- },
-
- updateSize: function(winHeight) {
-
- if(mfp.isIOS) {
- // fixes iOS nav bars https://github.com/dimsemenov/Magnific-Popup/issues/2
- var zoomLevel = document.documentElement.clientWidth / window.innerWidth;
- var height = window.innerHeight * zoomLevel;
- mfp.wrap.css('height', height);
- mfp.wH = height;
- } else {
- mfp.wH = winHeight || _window.height();
- }
- // Fixes #84: popup incorrectly positioned with position:relative on body
- if(!mfp.fixedContentPos) {
- mfp.wrap.css('height', mfp.wH);
- }
-
- _mfpTrigger('Resize');
-
- },
-
- /**
- * Set content of popup based on current index
- */
- updateItemHTML: function() {
- var item = mfp.items[mfp.index];
-
- // Detach and perform modifications
- mfp.contentContainer.detach();
-
- if(mfp.content)
- mfp.content.detach();
-
- if(!item.parsed) {
- item = mfp.parseEl( mfp.index );
- }
-
- var type = item.type;
-
- _mfpTrigger('BeforeChange', [mfp.currItem ? mfp.currItem.type : '', type]);
- // BeforeChange event works like so:
- // _mfpOn('BeforeChange', function(e, prevType, newType) { });
-
- mfp.currItem = item;
-
-
-
-
-
- if(!mfp.currTemplate[type]) {
- var markup = mfp.st[type] ? mfp.st[type].markup : false;
-
- // allows to modify markup
- _mfpTrigger('FirstMarkupParse', markup);
-
- if(markup) {
- mfp.currTemplate[type] = $(markup);
- } else {
- // if there is no markup found we just define that template is parsed
- mfp.currTemplate[type] = true;
- }
- }
-
- if(_prevContentType && _prevContentType !== item.type) {
- mfp.container.removeClass('mfp-'+_prevContentType+'-holder');
- }
-
- var newContent = mfp['get' + type.charAt(0).toUpperCase() + type.slice(1)](item, mfp.currTemplate[type]);
- mfp.appendContent(newContent, type);
-
- item.preloaded = true;
-
- _mfpTrigger(CHANGE_EVENT, item);
- _prevContentType = item.type;
-
- // Append container back after its content changed
- mfp.container.prepend(mfp.contentContainer);
-
- _mfpTrigger('AfterChange');
- },
-
-
- /**
- * Set HTML content of popup
- */
- appendContent: function(newContent, type) {
- mfp.content = newContent;
-
- if(newContent) {
- if(mfp.st.showCloseBtn && mfp.st.closeBtnInside &&
- mfp.currTemplate[type] === true) {
- // if there is no markup, we just append close button element inside
- if(!mfp.content.find('.mfp-close').length) {
- mfp.content.append(_getCloseBtn());
- }
- } else {
- mfp.content = newContent;
- }
- } else {
- mfp.content = '';
- }
-
- _mfpTrigger(BEFORE_APPEND_EVENT);
- mfp.container.addClass('mfp-'+type+'-holder');
-
- mfp.contentContainer.append(mfp.content);
- },
-
-
-
-
- /**
- * Creates Magnific Popup data object based on given data
- * @param {int} index Index of item to parse
- */
- parseEl: function(index) {
- var item = mfp.items[index],
- type = item.type;
-
- if(item.tagName) {
- item = { el: $(item) };
- } else {
- item = { data: item, src: item.src };
- }
-
- if(item.el) {
- var types = mfp.types;
-
- // check for 'mfp-TYPE' class
- for(var i = 0; i < types.length; i++) {
- if( item.el.hasClass('mfp-'+types[i]) ) {
- type = types[i];
- break;
- }
- }
-
- item.src = item.el.attr('data-mfp-src');
- if(!item.src) {
- item.src = item.el.attr('href');
- }
- }
-
- item.type = type || mfp.st.type || 'inline';
- item.index = index;
- item.parsed = true;
- mfp.items[index] = item;
- _mfpTrigger('ElementParse', item);
-
- return mfp.items[index];
- },
-
-
- /**
- * Initializes single popup or a group of popups
- */
- addGroup: function(el, options) {
- var eHandler = function(e) {
- e.mfpEl = this;
- mfp._openClick(e, el, options);
- };
-
- if(!options) {
- options = {};
- }
-
- var eName = 'click.magnificPopup';
- options.mainEl = el;
-
- if(options.items) {
- options.isObj = true;
- el.off(eName).on(eName, eHandler);
- } else {
- options.isObj = false;
- if(options.delegate) {
- el.off(eName).on(eName, options.delegate , eHandler);
- } else {
- options.items = el;
- el.off(eName).on(eName, eHandler);
- }
- }
- },
- _openClick: function(e, el, options) {
- var midClick = options.midClick !== undefined ? options.midClick : $.magnificPopup.defaults.midClick;
-
-
- if(!midClick && ( e.which === 2 || e.ctrlKey || e.metaKey ) ) {
- return;
- }
-
- var disableOn = options.disableOn !== undefined ? options.disableOn : $.magnificPopup.defaults.disableOn;
-
- if(disableOn) {
- if($.isFunction(disableOn)) {
- if( !disableOn.call(mfp) ) {
- return true;
- }
- } else { // else it's number
- if( _window.width() < disableOn ) {
- return true;
- }
- }
- }
-
- if(e.type) {
- e.preventDefault();
-
- // This will prevent popup from closing if element is inside and popup is already opened
- if(mfp.isOpen) {
- e.stopPropagation();
- }
- }
-
-
- options.el = $(e.mfpEl);
- if(options.delegate) {
- options.items = el.find(options.delegate);
- }
- mfp.open(options);
- },
-
-
- /**
- * Updates text on preloader
- */
- updateStatus: function(status, text) {
-
- if(mfp.preloader) {
- if(_prevStatus !== status) {
- mfp.container.removeClass('mfp-s-'+_prevStatus);
- }
-
- if(!text && status === 'loading') {
- text = mfp.st.tLoading;
- }
-
- var data = {
- status: status,
- text: text
- };
- // allows to modify status
- _mfpTrigger('UpdateStatus', data);
-
- status = data.status;
- text = data.text;
-
- mfp.preloader.html(text);
-
- mfp.preloader.find('a').on('click', function(e) {
- e.stopImmediatePropagation();
- });
-
- mfp.container.addClass('mfp-s-'+status);
- _prevStatus = status;
- }
- },
-
-
- /*
- "Private" helpers that aren't private at all
- */
- // Check to close popup or not
- // "target" is an element that was clicked
- _checkIfClose: function(target) {
-
- if($(target).hasClass(PREVENT_CLOSE_CLASS)) {
- return;
- }
-
- var closeOnContent = mfp.st.closeOnContentClick;
- var closeOnBg = mfp.st.closeOnBgClick;
-
- if(closeOnContent && closeOnBg) {
- return true;
- } else {
-
- // We close the popup if click is on close button or on preloader. Or if there is no content.
- if(!mfp.content || $(target).hasClass('mfp-close') || (mfp.preloader && target === mfp.preloader[0]) ) {
- return true;
- }
-
- // if click is outside the content
- if( (target !== mfp.content[0] && !$.contains(mfp.content[0], target)) ) {
- if(closeOnBg) {
- // last check, if the clicked element is in DOM, (in case it's removed onclick)
- if( $.contains(document, target) ) {
- return true;
- }
- }
- } else if(closeOnContent) {
- return true;
- }
-
- }
- return false;
- },
- _addClassToMFP: function(cName) {
- mfp.bgOverlay.addClass(cName);
- mfp.wrap.addClass(cName);
- },
- _removeClassFromMFP: function(cName) {
- this.bgOverlay.removeClass(cName);
- mfp.wrap.removeClass(cName);
- },
- _hasScrollBar: function(winHeight) {
- return ( (mfp.isIE7 ? _document.height() : document.body.scrollHeight) > (winHeight || _window.height()) );
- },
- _parseMarkup: function(template, values, item) {
- var arr;
- if(item.data) {
- values = $.extend(item.data, values);
- }
- _mfpTrigger(MARKUP_PARSE_EVENT, [template, values, item] );
-
- $.each(values, function(key, value) {
- if(value === undefined || value === false) {
- return true;
- }
- arr = key.split('_');
- if(arr.length > 1) {
- var el = template.find(EVENT_NS + '-'+arr[0]);
-
- if(el.length > 0) {
- var attr = arr[1];
- if(attr === 'replaceWith') {
- if(el[0] !== value[0]) {
- el.replaceWith(value);
- }
- } else if(attr === 'img') {
- if(el.is('img')) {
- el.attr('src', value);
- } else {
- el.replaceWith( '
' );
- }
- } else {
- el.attr(arr[1], value);
- }
- }
-
- } else {
- template.find(EVENT_NS + '-'+key).html(value);
- }
- });
- },
-
- _getScrollbarSize: function() {
- // thx David
- if(mfp.scrollbarSize === undefined) {
- var scrollDiv = document.createElement("div");
- scrollDiv.id = "mfp-sbm";
- scrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';
- document.body.appendChild(scrollDiv);
- mfp.scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;
- document.body.removeChild(scrollDiv);
- }
- return mfp.scrollbarSize;
- }
-
-}; /* MagnificPopup core prototype end */
-
-
-
-
-/**
- * Public static functions
- */
-$.magnificPopup = {
- instance: null,
- proto: MagnificPopup.prototype,
- modules: [],
-
- open: function(options, index) {
- _checkInstance();
-
- if(!options) {
- options = {};
- } else {
- options = $.extend(true, {}, options);
- }
-
-
- options.isObj = true;
- options.index = index || 0;
- return this.instance.open(options);
- },
-
- close: function() {
- return $.magnificPopup.instance && $.magnificPopup.instance.close();
- },
-
- registerModule: function(name, module) {
- if(module.options) {
- $.magnificPopup.defaults[name] = module.options;
- }
- $.extend(this.proto, module.proto);
- this.modules.push(name);
- },
-
- defaults: {
-
- // Info about options is in docs:
- // http://dimsemenov.com/plugins/magnific-popup/documentation.html#options
-
- disableOn: 0,
-
- key: null,
-
- midClick: false,
-
- mainClass: '',
-
- preloader: true,
-
- focus: '', // CSS selector of input to focus after popup is opened
-
- closeOnContentClick: false,
-
- closeOnBgClick: true,
-
- closeBtnInside: true,
-
- showCloseBtn: true,
-
- enableEscapeKey: true,
-
- modal: false,
-
- alignTop: false,
-
- removalDelay: 0,
-
- fixedContentPos: 'auto',
-
- fixedBgPos: 'auto',
-
- overflowY: 'auto',
-
- closeMarkup: '
',
-
- tClose: 'Close (Esc)',
-
- tLoading: 'Loading...'
-
- }
-};
-
-
-
-$.fn.magnificPopup = function(options) {
- _checkInstance();
-
- var jqEl = $(this);
-
- // We call some API method of first param is a string
- if (typeof options === "string" ) {
-
- if(options === 'open') {
- var items,
- itemOpts = _isJQ ? jqEl.data('magnificPopup') : jqEl[0].magnificPopup,
- index = parseInt(arguments[1], 10) || 0;
-
- if(itemOpts.items) {
- items = itemOpts.items[index];
- } else {
- items = jqEl;
- if(itemOpts.delegate) {
- items = items.find(itemOpts.delegate);
- }
- items = items.eq( index );
- }
- mfp._openClick({mfpEl:items}, jqEl, itemOpts);
- } else {
- if(mfp.isOpen)
- mfp[options].apply(mfp, Array.prototype.slice.call(arguments, 1));
- }
-
- } else {
- // clone options obj
- options = $.extend(true, {}, options);
-
- /*
- * As Zepto doesn't support .data() method for objects
- * and it works only in normal browsers
- * we assign "options" object directly to the DOM element. FTW!
- */
- if(_isJQ) {
- jqEl.data('magnificPopup', options);
- } else {
- jqEl[0].magnificPopup = options;
- }
-
- mfp.addGroup(jqEl, options);
-
- }
- return jqEl;
-};
-
-
-//Quick benchmark
-/*
-var start = performance.now(),
- i,
- rounds = 1000;
-
-for(i = 0; i < rounds; i++) {
-
-}
-console.log('Test #1:', performance.now() - start);
-
-start = performance.now();
-for(i = 0; i < rounds; i++) {
-
-}
-console.log('Test #2:', performance.now() - start);
-*/
-
-
-/*>>core*/
-
-/*>>inline*/
-
-var INLINE_NS = 'inline',
- _hiddenClass,
- _inlinePlaceholder,
- _lastInlineElement,
- _putInlineElementsBack = function() {
- if(_lastInlineElement) {
- _inlinePlaceholder.after( _lastInlineElement.addClass(_hiddenClass) ).detach();
- _lastInlineElement = null;
- }
- };
-
-$.magnificPopup.registerModule(INLINE_NS, {
- options: {
- hiddenClass: 'hide', // will be appended with `mfp-` prefix
- markup: '',
- tNotFound: 'Content not found'
- },
- proto: {
-
- initInline: function() {
- mfp.types.push(INLINE_NS);
-
- _mfpOn(CLOSE_EVENT+'.'+INLINE_NS, function() {
- _putInlineElementsBack();
- });
- },
-
- getInline: function(item, template) {
-
- _putInlineElementsBack();
-
- if(item.src) {
- var inlineSt = mfp.st.inline,
- el = $(item.src);
-
- if(el.length) {
-
- // If target element has parent - we replace it with placeholder and put it back after popup is closed
- var parent = el[0].parentNode;
- if(parent && parent.tagName) {
- if(!_inlinePlaceholder) {
- _hiddenClass = inlineSt.hiddenClass;
- _inlinePlaceholder = _getEl(_hiddenClass);
- _hiddenClass = 'mfp-'+_hiddenClass;
- }
- // replace target inline element with placeholder
- _lastInlineElement = el.after(_inlinePlaceholder).detach().removeClass(_hiddenClass);
- }
-
- mfp.updateStatus('ready');
- } else {
- mfp.updateStatus('error', inlineSt.tNotFound);
- el = $('
');
- }
-
- item.inlineElement = el;
- return el;
- }
-
- mfp.updateStatus('ready');
- mfp._parseMarkup(template, {}, item);
- return template;
- }
- }
-});
-
-/*>>inline*/
-
-/*>>ajax*/
-var AJAX_NS = 'ajax',
- _ajaxCur,
- _removeAjaxCursor = function() {
- if(_ajaxCur) {
- _body.removeClass(_ajaxCur);
- }
- },
- _destroyAjaxRequest = function() {
- _removeAjaxCursor();
- if(mfp.req) {
- mfp.req.abort();
- }
- };
-
-$.magnificPopup.registerModule(AJAX_NS, {
-
- options: {
- settings: null,
- cursor: 'mfp-ajax-cur',
- tError: '
The content could not be loaded.'
- },
-
- proto: {
- initAjax: function() {
- mfp.types.push(AJAX_NS);
- _ajaxCur = mfp.st.ajax.cursor;
-
- _mfpOn(CLOSE_EVENT+'.'+AJAX_NS, _destroyAjaxRequest);
- _mfpOn('BeforeChange.' + AJAX_NS, _destroyAjaxRequest);
- },
- getAjax: function(item) {
-
- if(_ajaxCur)
- _body.addClass(_ajaxCur);
-
- mfp.updateStatus('loading');
-
- var opts = $.extend({
- url: item.src,
- success: function(data, textStatus, jqXHR) {
- var temp = {
- data:data,
- xhr:jqXHR
- };
-
- _mfpTrigger('ParseAjax', temp);
-
- mfp.appendContent( $(temp.data), AJAX_NS );
-
- item.finished = true;
-
- _removeAjaxCursor();
-
- _setFocus();
-
- setTimeout(function() {
- mfp.wrap.addClass(READY_CLASS);
- }, 16);
-
- mfp.updateStatus('ready');
-
- _mfpTrigger('AjaxContentAdded');
- },
- error: function() {
- _removeAjaxCursor();
- item.finished = item.loadError = true;
- mfp.updateStatus('error', mfp.st.ajax.tError.replace('%url%', item.src));
- }
- }, mfp.st.ajax.settings);
-
- mfp.req = $.ajax(opts);
-
- return '';
- }
- }
-});
-
-
-
-
-
-
-
-/*>>ajax*/
-
-/*>>image*/
-var _imgInterval,
- _getTitle = function(item) {
- if(item.data && item.data.title !== undefined)
- return item.data.title;
-
- var src = mfp.st.image.titleSrc;
-
- if(src) {
- if($.isFunction(src)) {
- return src.call(mfp, item);
- } else if(item.el) {
- return item.el.attr(src) || '';
- }
- }
- return '';
- };
-
-$.magnificPopup.registerModule('image', {
-
- options: {
- markup: '
',
- cursor: 'mfp-zoom-out-cur',
- titleSrc: 'title',
- verticalFit: true,
- tError: '
The image could not be loaded.'
- },
-
- proto: {
- initImage: function() {
- var imgSt = mfp.st.image,
- ns = '.image';
-
- mfp.types.push('image');
-
- _mfpOn(OPEN_EVENT+ns, function() {
- if(mfp.currItem.type === 'image' && imgSt.cursor) {
- _body.addClass(imgSt.cursor);
- }
- });
-
- _mfpOn(CLOSE_EVENT+ns, function() {
- if(imgSt.cursor) {
- _body.removeClass(imgSt.cursor);
- }
- _window.off('resize' + EVENT_NS);
- });
-
- _mfpOn('Resize'+ns, mfp.resizeImage);
- if(mfp.isLowIE) {
- _mfpOn('AfterChange', mfp.resizeImage);
- }
- },
- resizeImage: function() {
- var item = mfp.currItem;
- if(!item || !item.img) return;
-
- if(mfp.st.image.verticalFit) {
- var decr = 0;
- // fix box-sizing in ie7/8
- if(mfp.isLowIE) {
- decr = parseInt(item.img.css('padding-top'), 10) + parseInt(item.img.css('padding-bottom'),10);
- }
- item.img.css('max-height', mfp.wH-decr);
- }
- },
- _onImageHasSize: function(item) {
- if(item.img) {
-
- item.hasSize = true;
-
- if(_imgInterval) {
- clearInterval(_imgInterval);
- }
-
- item.isCheckingImgSize = false;
-
- _mfpTrigger('ImageHasSize', item);
-
- if(item.imgHidden) {
- if(mfp.content)
- mfp.content.removeClass('mfp-loading');
-
- item.imgHidden = false;
- }
-
- }
- },
-
- /**
- * Function that loops until the image has size to display elements that rely on it asap
- */
- findImageSize: function(item) {
-
- var counter = 0,
- img = item.img[0],
- mfpSetInterval = function(delay) {
-
- if(_imgInterval) {
- clearInterval(_imgInterval);
- }
- // decelerating interval that checks for size of an image
- _imgInterval = setInterval(function() {
- if(img.naturalWidth > 0) {
- mfp._onImageHasSize(item);
- return;
- }
-
- if(counter > 200) {
- clearInterval(_imgInterval);
- }
-
- counter++;
- if(counter === 3) {
- mfpSetInterval(10);
- } else if(counter === 40) {
- mfpSetInterval(50);
- } else if(counter === 100) {
- mfpSetInterval(500);
- }
- }, delay);
- };
-
- mfpSetInterval(1);
- },
-
- getImage: function(item, template) {
-
- var guard = 0,
-
- // image load complete handler
- onLoadComplete = function() {
- if(item) {
- if (item.img[0].complete) {
- item.img.off('.mfploader');
-
- if(item === mfp.currItem){
- mfp._onImageHasSize(item);
-
- mfp.updateStatus('ready');
- }
-
- item.hasSize = true;
- item.loaded = true;
-
- _mfpTrigger('ImageLoadComplete');
-
- }
- else {
- // if image complete check fails 200 times (20 sec), we assume that there was an error.
- guard++;
- if(guard < 200) {
- setTimeout(onLoadComplete,100);
- } else {
- onLoadError();
- }
- }
- }
- },
-
- // image error handler
- onLoadError = function() {
- if(item) {
- item.img.off('.mfploader');
- if(item === mfp.currItem){
- mfp._onImageHasSize(item);
- mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );
- }
-
- item.hasSize = true;
- item.loaded = true;
- item.loadError = true;
- }
- },
- imgSt = mfp.st.image;
-
-
- var el = template.find('.mfp-img');
- if(el.length) {
- var img = document.createElement('img');
- img.className = 'mfp-img';
- item.img = $(img).on('load.mfploader', onLoadComplete).on('error.mfploader', onLoadError);
- img.src = item.src;
-
- // without clone() "error" event is not firing when IMG is replaced by new IMG
- // TODO: find a way to avoid such cloning
- if(el.is('img')) {
- item.img = item.img.clone();
- }
- if(item.img[0].naturalWidth > 0) {
- item.hasSize = true;
- }
- }
-
- mfp._parseMarkup(template, {
- title: _getTitle(item),
- img_replaceWith: item.img
- }, item);
-
- mfp.resizeImage();
-
- if(item.hasSize) {
- if(_imgInterval) clearInterval(_imgInterval);
-
- if(item.loadError) {
- template.addClass('mfp-loading');
- mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );
- } else {
- template.removeClass('mfp-loading');
- mfp.updateStatus('ready');
- }
- return template;
- }
-
- mfp.updateStatus('loading');
- item.loading = true;
-
- if(!item.hasSize) {
- item.imgHidden = true;
- template.addClass('mfp-loading');
- mfp.findImageSize(item);
- }
-
- return template;
- }
- }
-});
-
-
-
-/*>>image*/
-
-/*>>zoom*/
-var hasMozTransform,
- getHasMozTransform = function() {
- if(hasMozTransform === undefined) {
- hasMozTransform = document.createElement('p').style.MozTransform !== undefined;
- }
- return hasMozTransform;
- };
-
-$.magnificPopup.registerModule('zoom', {
-
- options: {
- enabled: false,
- easing: 'ease-in-out',
- duration: 300,
- opener: function(element) {
- return element.is('img') ? element : element.find('img');
- }
- },
-
- proto: {
-
- initZoom: function() {
- var zoomSt = mfp.st.zoom,
- ns = '.zoom',
- image;
-
- if(!zoomSt.enabled || !mfp.supportsTransition) {
- return;
- }
-
- var duration = zoomSt.duration,
- getElToAnimate = function(image) {
- var newImg = image.clone().removeAttr('style').removeAttr('class').addClass('mfp-animated-image'),
- transition = 'all '+(zoomSt.duration/1000)+'s ' + zoomSt.easing,
- cssObj = {
- position: 'fixed',
- zIndex: 9999,
- left: 0,
- top: 0,
- '-webkit-backface-visibility': 'hidden'
- },
- t = 'transition';
-
- cssObj['-webkit-'+t] = cssObj['-moz-'+t] = cssObj['-o-'+t] = cssObj[t] = transition;
-
- newImg.css(cssObj);
- return newImg;
- },
- showMainContent = function() {
- mfp.content.css('visibility', 'visible');
- },
- openTimeout,
- animatedImg;
-
- _mfpOn('BuildControls'+ns, function() {
- if(mfp._allowZoom()) {
-
- clearTimeout(openTimeout);
- mfp.content.css('visibility', 'hidden');
-
- // Basically, all code below does is clones existing image, puts in on top of the current one and animated it
-
- image = mfp._getItemToZoom();
-
- if(!image) {
- showMainContent();
- return;
- }
-
- animatedImg = getElToAnimate(image);
-
- animatedImg.css( mfp._getOffset() );
-
- mfp.wrap.append(animatedImg);
-
- openTimeout = setTimeout(function() {
- animatedImg.css( mfp._getOffset( true ) );
- openTimeout = setTimeout(function() {
-
- showMainContent();
-
- setTimeout(function() {
- animatedImg.remove();
- image = animatedImg = null;
- _mfpTrigger('ZoomAnimationEnded');
- }, 16); // avoid blink when switching images
-
- }, duration); // this timeout equals animation duration
-
- }, 16); // by adding this timeout we avoid short glitch at the beginning of animation
-
-
- // Lots of timeouts...
- }
- });
- _mfpOn(BEFORE_CLOSE_EVENT+ns, function() {
- if(mfp._allowZoom()) {
-
- clearTimeout(openTimeout);
-
- mfp.st.removalDelay = duration;
-
- if(!image) {
- image = mfp._getItemToZoom();
- if(!image) {
- return;
- }
- animatedImg = getElToAnimate(image);
- }
-
-
- animatedImg.css( mfp._getOffset(true) );
- mfp.wrap.append(animatedImg);
- mfp.content.css('visibility', 'hidden');
-
- setTimeout(function() {
- animatedImg.css( mfp._getOffset() );
- }, 16);
- }
-
- });
-
- _mfpOn(CLOSE_EVENT+ns, function() {
- if(mfp._allowZoom()) {
- showMainContent();
- if(animatedImg) {
- animatedImg.remove();
- }
- image = null;
- }
- });
- },
-
- _allowZoom: function() {
- return mfp.currItem.type === 'image';
- },
-
- _getItemToZoom: function() {
- if(mfp.currItem.hasSize) {
- return mfp.currItem.img;
- } else {
- return false;
- }
- },
-
- // Get element postion relative to viewport
- _getOffset: function(isLarge) {
- var el;
- if(isLarge) {
- el = mfp.currItem.img;
- } else {
- el = mfp.st.zoom.opener(mfp.currItem.el || mfp.currItem);
- }
-
- var offset = el.offset();
- var paddingTop = parseInt(el.css('padding-top'),10);
- var paddingBottom = parseInt(el.css('padding-bottom'),10);
- offset.top -= ( $(window).scrollTop() - paddingTop );
-
-
- /*
-
- Animating left + top + width/height looks glitchy in Firefox, but perfect in Chrome. And vice-versa.
-
- */
- var obj = {
- width: el.width(),
- // fix Zepto height+padding issue
- height: (_isJQ ? el.innerHeight() : el[0].offsetHeight) - paddingBottom - paddingTop
- };
-
- // I hate to do this, but there is no another option
- if( getHasMozTransform() ) {
- obj['-moz-transform'] = obj['transform'] = 'translate(' + offset.left + 'px,' + offset.top + 'px)';
- } else {
- obj.left = offset.left;
- obj.top = offset.top;
- }
- return obj;
- }
-
- }
-});
-
-
-
-/*>>zoom*/
-
-/*>>iframe*/
-
-var IFRAME_NS = 'iframe',
- _emptyPage = '//about:blank',
-
- _fixIframeBugs = function(isShowing) {
- if(mfp.currTemplate[IFRAME_NS]) {
- var el = mfp.currTemplate[IFRAME_NS].find('iframe');
- if(el.length) {
- // reset src after the popup is closed to avoid "video keeps playing after popup is closed" bug
- if(!isShowing) {
- el[0].src = _emptyPage;
- }
-
- // IE8 black screen bug fix
- if(mfp.isIE8) {
- el.css('display', isShowing ? 'block' : 'none');
- }
- }
- }
- };
-
-$.magnificPopup.registerModule(IFRAME_NS, {
-
- options: {
- markup: '
',
-
- srcAction: 'iframe_src',
-
- // we don't care and support only one default type of URL by default
- patterns: {
- youtube: {
- index: 'youtube.com',
- id: 'v=',
- src: '//www.youtube.com/embed/%id%?autoplay=1'
- },
- vimeo: {
- index: 'vimeo.com/',
- id: '/',
- src: '//player.vimeo.com/video/%id%?autoplay=1'
- },
- gmaps: {
- index: '//maps.google.',
- src: '%id%&output=embed'
- }
- }
- },
-
- proto: {
- initIframe: function() {
- mfp.types.push(IFRAME_NS);
-
- _mfpOn('BeforeChange', function(e, prevType, newType) {
- if(prevType !== newType) {
- if(prevType === IFRAME_NS) {
- _fixIframeBugs(); // iframe if removed
- } else if(newType === IFRAME_NS) {
- _fixIframeBugs(true); // iframe is showing
- }
- }// else {
- // iframe source is switched, don't do anything
- //}
- });
-
- _mfpOn(CLOSE_EVENT + '.' + IFRAME_NS, function() {
- _fixIframeBugs();
- });
- },
-
- getIframe: function(item, template) {
- var embedSrc = item.src;
- var iframeSt = mfp.st.iframe;
-
- $.each(iframeSt.patterns, function() {
- if(embedSrc.indexOf( this.index ) > -1) {
- if(this.id) {
- if(typeof this.id === 'string') {
- embedSrc = embedSrc.substr(embedSrc.lastIndexOf(this.id)+this.id.length, embedSrc.length);
- } else {
- embedSrc = this.id.call( this, embedSrc );
- }
- }
- embedSrc = this.src.replace('%id%', embedSrc );
- return false; // break;
- }
- });
-
- var dataObj = {};
- if(iframeSt.srcAction) {
- dataObj[iframeSt.srcAction] = embedSrc;
- }
- mfp._parseMarkup(template, dataObj, item);
-
- mfp.updateStatus('ready');
-
- return template;
- }
- }
-});
-
-
-
-/*>>iframe*/
-
-/*>>gallery*/
-/**
- * Get looped index depending on number of slides
- */
-var _getLoopedId = function(index) {
- var numSlides = mfp.items.length;
- if(index > numSlides - 1) {
- return index - numSlides;
- } else if(index < 0) {
- return numSlides + index;
- }
- return index;
- },
- _replaceCurrTotal = function(text, curr, total) {
- return text.replace(/%curr%/gi, curr + 1).replace(/%total%/gi, total);
- };
-
-$.magnificPopup.registerModule('gallery', {
-
- options: {
- enabled: false,
- arrowMarkup: '
',
- preload: [0,2],
- navigateByImgClick: true,
- arrows: true,
-
- tPrev: 'Previous (Left arrow key)',
- tNext: 'Next (Right arrow key)',
- tCounter: '%curr% of %total%'
- },
-
- proto: {
- initGallery: function() {
-
- var gSt = mfp.st.gallery,
- ns = '.mfp-gallery',
- supportsFastClick = Boolean($.fn.mfpFastClick);
-
- mfp.direction = true; // true - next, false - prev
-
- if(!gSt || !gSt.enabled ) return false;
-
- _wrapClasses += ' mfp-gallery';
-
- _mfpOn(OPEN_EVENT+ns, function() {
-
- if(gSt.navigateByImgClick) {
- mfp.wrap.on('click'+ns, '.mfp-img', function() {
- if(mfp.items.length > 1) {
- mfp.next();
- return false;
- }
- });
- }
-
- _document.on('keydown'+ns, function(e) {
- if (e.keyCode === 37) {
- mfp.prev();
- } else if (e.keyCode === 39) {
- mfp.next();
- }
- });
- });
-
- _mfpOn('UpdateStatus'+ns, function(e, data) {
- if(data.text) {
- data.text = _replaceCurrTotal(data.text, mfp.currItem.index, mfp.items.length);
- }
- });
-
- _mfpOn(MARKUP_PARSE_EVENT+ns, function(e, element, values, item) {
- var l = mfp.items.length;
- values.counter = l > 1 ? _replaceCurrTotal(gSt.tCounter, item.index, l) : '';
- });
-
- _mfpOn('BuildControls' + ns, function() {
- if(mfp.items.length > 1 && gSt.arrows && !mfp.arrowLeft) {
- var markup = gSt.arrowMarkup,
- arrowLeft = mfp.arrowLeft = $( markup.replace(/%title%/gi, gSt.tPrev).replace(/%dir%/gi, 'left') ).addClass(PREVENT_CLOSE_CLASS),
- arrowRight = mfp.arrowRight = $( markup.replace(/%title%/gi, gSt.tNext).replace(/%dir%/gi, 'right') ).addClass(PREVENT_CLOSE_CLASS);
-
- var eName = supportsFastClick ? 'mfpFastClick' : 'click';
- arrowLeft[eName](function() {
- mfp.prev();
- });
- arrowRight[eName](function() {
- mfp.next();
- });
-
- // Polyfill for :before and :after (adds elements with classes mfp-a and mfp-b)
- if(mfp.isIE7) {
- _getEl('b', arrowLeft[0], false, true);
- _getEl('a', arrowLeft[0], false, true);
- _getEl('b', arrowRight[0], false, true);
- _getEl('a', arrowRight[0], false, true);
- }
-
- mfp.container.append(arrowLeft.add(arrowRight));
- }
- });
-
- _mfpOn(CHANGE_EVENT+ns, function() {
- if(mfp._preloadTimeout) clearTimeout(mfp._preloadTimeout);
-
- mfp._preloadTimeout = setTimeout(function() {
- mfp.preloadNearbyImages();
- mfp._preloadTimeout = null;
- }, 16);
- });
-
-
- _mfpOn(CLOSE_EVENT+ns, function() {
- _document.off(ns);
- mfp.wrap.off('click'+ns);
-
- if(mfp.arrowLeft && supportsFastClick) {
- mfp.arrowLeft.add(mfp.arrowRight).destroyMfpFastClick();
- }
- mfp.arrowRight = mfp.arrowLeft = null;
- });
-
- },
- next: function() {
- mfp.direction = true;
- mfp.index = _getLoopedId(mfp.index + 1);
- mfp.updateItemHTML();
- },
- prev: function() {
- mfp.direction = false;
- mfp.index = _getLoopedId(mfp.index - 1);
- mfp.updateItemHTML();
- },
- goTo: function(newIndex) {
- mfp.direction = (newIndex >= mfp.index);
- mfp.index = newIndex;
- mfp.updateItemHTML();
- },
- preloadNearbyImages: function() {
- var p = mfp.st.gallery.preload,
- preloadBefore = Math.min(p[0], mfp.items.length),
- preloadAfter = Math.min(p[1], mfp.items.length),
- i;
-
- for(i = 1; i <= (mfp.direction ? preloadAfter : preloadBefore); i++) {
- mfp._preloadItem(mfp.index+i);
- }
- for(i = 1; i <= (mfp.direction ? preloadBefore : preloadAfter); i++) {
- mfp._preloadItem(mfp.index-i);
- }
- },
- _preloadItem: function(index) {
- index = _getLoopedId(index);
-
- if(mfp.items[index].preloaded) {
- return;
- }
-
- var item = mfp.items[index];
- if(!item.parsed) {
- item = mfp.parseEl( index );
- }
-
- _mfpTrigger('LazyLoad', item);
-
- if(item.type === 'image') {
- item.img = $('
![]()
').on('load.mfploader', function() {
- item.hasSize = true;
- }).on('error.mfploader', function() {
- item.hasSize = true;
- item.loadError = true;
- _mfpTrigger('LazyLoadError', item);
- }).attr('src', item.src);
- }
-
-
- item.preloaded = true;
- }
- }
-});
-
-/*
-Touch Support that might be implemented some day
-
-addSwipeGesture: function() {
- var startX,
- moved,
- multipleTouches;
-
- return;
-
- var namespace = '.mfp',
- addEventNames = function(pref, down, move, up, cancel) {
- mfp._tStart = pref + down + namespace;
- mfp._tMove = pref + move + namespace;
- mfp._tEnd = pref + up + namespace;
- mfp._tCancel = pref + cancel + namespace;
- };
-
- if(window.navigator.msPointerEnabled) {
- addEventNames('MSPointer', 'Down', 'Move', 'Up', 'Cancel');
- } else if('ontouchstart' in window) {
- addEventNames('touch', 'start', 'move', 'end', 'cancel');
- } else {
- return;
- }
- _window.on(mfp._tStart, function(e) {
- var oE = e.originalEvent;
- multipleTouches = moved = false;
- startX = oE.pageX || oE.changedTouches[0].pageX;
- }).on(mfp._tMove, function(e) {
- if(e.originalEvent.touches.length > 1) {
- multipleTouches = e.originalEvent.touches.length;
- } else {
- //e.preventDefault();
- moved = true;
- }
- }).on(mfp._tEnd + ' ' + mfp._tCancel, function(e) {
- if(moved && !multipleTouches) {
- var oE = e.originalEvent,
- diff = startX - (oE.pageX || oE.changedTouches[0].pageX);
-
- if(diff > 20) {
- mfp.next();
- } else if(diff < -20) {
- mfp.prev();
- }
- }
- });
-},
-*/
-
-
-/*>>gallery*/
-
-/*>>retina*/
-
-var RETINA_NS = 'retina';
-
-$.magnificPopup.registerModule(RETINA_NS, {
- options: {
- replaceSrc: function(item) {
- return item.src.replace(/\.\w+$/, function(m) { return '@2x' + m; });
- },
- ratio: 1 // Function or number. Set to 1 to disable.
- },
- proto: {
- initRetina: function() {
- if(window.devicePixelRatio > 1) {
-
- var st = mfp.st.retina,
- ratio = st.ratio;
-
- ratio = !isNaN(ratio) ? ratio : ratio();
-
- if(ratio > 1) {
- _mfpOn('ImageHasSize' + '.' + RETINA_NS, function(e, item) {
- item.img.css({
- 'max-width': item.img[0].naturalWidth / ratio,
- 'width': '100%'
- });
- });
- _mfpOn('ElementParse' + '.' + RETINA_NS, function(e, item) {
- item.src = st.replaceSrc(item, ratio);
- });
- }
- }
-
- }
- }
-});
-
-/*>>retina*/
-
-/*>>fastclick*/
-/**
- * FastClick event implementation. (removes 300ms delay on touch devices)
- * Based on https://developers.google.com/mobile/articles/fast_buttons
- *
- * You may use it outside the Magnific Popup by calling just:
- *
- * $('.your-el').mfpFastClick(function() {
- * console.log('Clicked!');
- * });
- *
- * To unbind:
- * $('.your-el').destroyMfpFastClick();
- *
- *
- * Note that it's a very basic and simple implementation, it blocks ghost click on the same element where it was bound.
- * If you need something more advanced, use plugin by FT Labs https://github.com/ftlabs/fastclick
- *
- */
-
-(function() {
- var ghostClickDelay = 1000,
- supportsTouch = 'ontouchstart' in window,
- unbindTouchMove = function() {
- _window.off('touchmove'+ns+' touchend'+ns);
- },
- eName = 'mfpFastClick',
- ns = '.'+eName;
-
-
- // As Zepto.js doesn't have an easy way to add custom events (like jQuery), so we implement it in this way
- $.fn.mfpFastClick = function(callback) {
-
- return $(this).each(function() {
-
- var elem = $(this),
- lock;
-
- if( supportsTouch ) {
-
- var timeout,
- startX,
- startY,
- pointerMoved,
- point,
- numPointers;
-
- elem.on('touchstart' + ns, function(e) {
- pointerMoved = false;
- numPointers = 1;
-
- point = e.originalEvent ? e.originalEvent.touches[0] : e.touches[0];
- startX = point.clientX;
- startY = point.clientY;
-
- _window.on('touchmove'+ns, function(e) {
- point = e.originalEvent ? e.originalEvent.touches : e.touches;
- numPointers = point.length;
- point = point[0];
- if (Math.abs(point.clientX - startX) > 10 ||
- Math.abs(point.clientY - startY) > 10) {
- pointerMoved = true;
- unbindTouchMove();
- }
- }).on('touchend'+ns, function(e) {
- unbindTouchMove();
- if(pointerMoved || numPointers > 1) {
- return;
- }
- lock = true;
- e.preventDefault();
- clearTimeout(timeout);
- timeout = setTimeout(function() {
- lock = false;
- }, ghostClickDelay);
- callback();
- });
- });
-
- }
-
- elem.on('click' + ns, function() {
- if(!lock) {
- callback();
- }
- });
- });
- };
-
- $.fn.destroyMfpFastClick = function() {
- $(this).off('touchstart' + ns + ' click' + ns);
- if(supportsTouch) _window.off('touchmove'+ns+' touchend'+ns);
- };
-})();
-
-/*>>fastclick*/
-})(window.jQuery || window.Zepto);
\ No newline at end of file
diff --git a/vendors/_jquery-magnific-popup/jquery.magnific-popup.min.js b/vendors/_jquery-magnific-popup/jquery.magnific-popup.min.js
deleted file mode 100644
index 2348bd752..000000000
--- a/vendors/_jquery-magnific-popup/jquery.magnific-popup.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! Magnific Popup - v0.9.8 - 2013-10-26
-* http://dimsemenov.com/plugins/magnific-popup/
-* Copyright (c) 2013 Dmitry Semenov; MIT */
-(function(e){var t,i,n,o,r,a,s,l="Close",c="BeforeClose",d="AfterClose",u="BeforeAppend",p="MarkupParse",f="Open",m="Change",g="mfp",v="."+g,h="mfp-ready",C="mfp-removing",y="mfp-prevent-close",w=function(){},b=!!window.jQuery,I=e(window),x=function(e,i){t.ev.on(g+e+v,i)},k=function(t,i,n,o){var r=document.createElement("div");return r.className="mfp-"+t,n&&(r.innerHTML=n),o?i&&i.appendChild(r):(r=e(r),i&&r.appendTo(i)),r},T=function(i,n){t.ev.triggerHandler(g+i,n),t.st.callbacks&&(i=i.charAt(0).toLowerCase()+i.slice(1),t.st.callbacks[i]&&t.st.callbacks[i].apply(t,e.isArray(n)?n:[n]))},E=function(){(t.st.focus?t.content.find(t.st.focus).eq(0):t.wrap).focus()},S=function(i){return i===s&&t.currTemplate.closeBtn||(t.currTemplate.closeBtn=e(t.st.closeMarkup.replace("%title%",t.st.tClose)),s=i),t.currTemplate.closeBtn},P=function(){e.magnificPopup.instance||(t=new w,t.init(),e.magnificPopup.instance=t)},_=function(){var e=document.createElement("p").style,t=["ms","O","Moz","Webkit"];if(void 0!==e.transition)return!0;for(;t.length;)if(t.pop()+"Transition"in e)return!0;return!1};w.prototype={constructor:w,init:function(){var i=navigator.appVersion;t.isIE7=-1!==i.indexOf("MSIE 7."),t.isIE8=-1!==i.indexOf("MSIE 8."),t.isLowIE=t.isIE7||t.isIE8,t.isAndroid=/android/gi.test(i),t.isIOS=/iphone|ipad|ipod/gi.test(i),t.supportsTransition=_(),t.probablyMobile=t.isAndroid||t.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),n=e(document.body),o=e(document),t.popupsCache={}},open:function(i){var n;if(i.isObj===!1){t.items=i.items.toArray(),t.index=0;var r,s=i.items;for(n=0;s.length>n;n++)if(r=s[n],r.parsed&&(r=r.el[0]),r===i.el[0]){t.index=n;break}}else t.items=e.isArray(i.items)?i.items:[i.items],t.index=i.index||0;if(t.isOpen)return t.updateItemHTML(),void 0;t.types=[],a="",t.ev=i.mainEl&&i.mainEl.length?i.mainEl.eq(0):o,i.key?(t.popupsCache[i.key]||(t.popupsCache[i.key]={}),t.currTemplate=t.popupsCache[i.key]):t.currTemplate={},t.st=e.extend(!0,{},e.magnificPopup.defaults,i),t.fixedContentPos="auto"===t.st.fixedContentPos?!t.probablyMobile:t.st.fixedContentPos,t.st.modal&&(t.st.closeOnContentClick=!1,t.st.closeOnBgClick=!1,t.st.showCloseBtn=!1,t.st.enableEscapeKey=!1),t.bgOverlay||(t.bgOverlay=k("bg").on("click"+v,function(){t.close()}),t.wrap=k("wrap").attr("tabindex",-1).on("click"+v,function(e){t._checkIfClose(e.target)&&t.close()}),t.container=k("container",t.wrap)),t.contentContainer=k("content"),t.st.preloader&&(t.preloader=k("preloader",t.container,t.st.tLoading));var l=e.magnificPopup.modules;for(n=0;l.length>n;n++){var c=l[n];c=c.charAt(0).toUpperCase()+c.slice(1),t["init"+c].call(t)}T("BeforeOpen"),t.st.showCloseBtn&&(t.st.closeBtnInside?(x(p,function(e,t,i,n){i.close_replaceWith=S(n.type)}),a+=" mfp-close-btn-in"):t.wrap.append(S())),t.st.alignTop&&(a+=" mfp-align-top"),t.fixedContentPos?t.wrap.css({overflow:t.st.overflowY,overflowX:"hidden",overflowY:t.st.overflowY}):t.wrap.css({top:I.scrollTop(),position:"absolute"}),(t.st.fixedBgPos===!1||"auto"===t.st.fixedBgPos&&!t.fixedContentPos)&&t.bgOverlay.css({height:o.height(),position:"absolute"}),t.st.enableEscapeKey&&o.on("keyup"+v,function(e){27===e.keyCode&&t.close()}),I.on("resize"+v,function(){t.updateSize()}),t.st.closeOnContentClick||(a+=" mfp-auto-cursor"),a&&t.wrap.addClass(a);var d=t.wH=I.height(),u={};if(t.fixedContentPos&&t._hasScrollBar(d)){var m=t._getScrollbarSize();m&&(u.marginRight=m)}t.fixedContentPos&&(t.isIE7?e("body, html").css("overflow","hidden"):u.overflow="hidden");var g=t.st.mainClass;return t.isIE7&&(g+=" mfp-ie7"),g&&t._addClassToMFP(g),t.updateItemHTML(),T("BuildControls"),e("html").css(u),t.bgOverlay.add(t.wrap).prependTo(document.body),t._lastFocusedEl=document.activeElement,setTimeout(function(){t.content?(t._addClassToMFP(h),E()):t.bgOverlay.addClass(h),o.on("focusin"+v,function(i){return i.target===t.wrap[0]||e.contains(t.wrap[0],i.target)?void 0:(E(),!1)})},16),t.isOpen=!0,t.updateSize(d),T(f),i},close:function(){t.isOpen&&(T(c),t.isOpen=!1,t.st.removalDelay&&!t.isLowIE&&t.supportsTransition?(t._addClassToMFP(C),setTimeout(function(){t._close()},t.st.removalDelay)):t._close())},_close:function(){T(l);var i=C+" "+h+" ";if(t.bgOverlay.detach(),t.wrap.detach(),t.container.empty(),t.st.mainClass&&(i+=t.st.mainClass+" "),t._removeClassFromMFP(i),t.fixedContentPos){var n={marginRight:""};t.isIE7?e("body, html").css("overflow",""):n.overflow="",e("html").css(n)}o.off("keyup"+v+" focusin"+v),t.ev.off(v),t.wrap.attr("class","mfp-wrap").removeAttr("style"),t.bgOverlay.attr("class","mfp-bg"),t.container.attr("class","mfp-container"),!t.st.showCloseBtn||t.st.closeBtnInside&&t.currTemplate[t.currItem.type]!==!0||t.currTemplate.closeBtn&&t.currTemplate.closeBtn.detach(),t._lastFocusedEl&&e(t._lastFocusedEl).focus(),t.currItem=null,t.content=null,t.currTemplate=null,t.prevHeight=0,T(d)},updateSize:function(e){if(t.isIOS){var i=document.documentElement.clientWidth/window.innerWidth,n=window.innerHeight*i;t.wrap.css("height",n),t.wH=n}else t.wH=e||I.height();t.fixedContentPos||t.wrap.css("height",t.wH),T("Resize")},updateItemHTML:function(){var i=t.items[t.index];t.contentContainer.detach(),t.content&&t.content.detach(),i.parsed||(i=t.parseEl(t.index));var n=i.type;if(T("BeforeChange",[t.currItem?t.currItem.type:"",n]),t.currItem=i,!t.currTemplate[n]){var o=t.st[n]?t.st[n].markup:!1;T("FirstMarkupParse",o),t.currTemplate[n]=o?e(o):!0}r&&r!==i.type&&t.container.removeClass("mfp-"+r+"-holder");var a=t["get"+n.charAt(0).toUpperCase()+n.slice(1)](i,t.currTemplate[n]);t.appendContent(a,n),i.preloaded=!0,T(m,i),r=i.type,t.container.prepend(t.contentContainer),T("AfterChange")},appendContent:function(e,i){t.content=e,e?t.st.showCloseBtn&&t.st.closeBtnInside&&t.currTemplate[i]===!0?t.content.find(".mfp-close").length||t.content.append(S()):t.content=e:t.content="",T(u),t.container.addClass("mfp-"+i+"-holder"),t.contentContainer.append(t.content)},parseEl:function(i){var n=t.items[i],o=n.type;if(n=n.tagName?{el:e(n)}:{data:n,src:n.src},n.el){for(var r=t.types,a=0;r.length>a;a++)if(n.el.hasClass("mfp-"+r[a])){o=r[a];break}n.src=n.el.attr("data-mfp-src"),n.src||(n.src=n.el.attr("href"))}return n.type=o||t.st.type||"inline",n.index=i,n.parsed=!0,t.items[i]=n,T("ElementParse",n),t.items[i]},addGroup:function(e,i){var n=function(n){n.mfpEl=this,t._openClick(n,e,i)};i||(i={});var o="click.magnificPopup";i.mainEl=e,i.items?(i.isObj=!0,e.off(o).on(o,n)):(i.isObj=!1,i.delegate?e.off(o).on(o,i.delegate,n):(i.items=e,e.off(o).on(o,n)))},_openClick:function(i,n,o){var r=void 0!==o.midClick?o.midClick:e.magnificPopup.defaults.midClick;if(r||2!==i.which&&!i.ctrlKey&&!i.metaKey){var a=void 0!==o.disableOn?o.disableOn:e.magnificPopup.defaults.disableOn;if(a)if(e.isFunction(a)){if(!a.call(t))return!0}else if(a>I.width())return!0;i.type&&(i.preventDefault(),t.isOpen&&i.stopPropagation()),o.el=e(i.mfpEl),o.delegate&&(o.items=n.find(o.delegate)),t.open(o)}},updateStatus:function(e,n){if(t.preloader){i!==e&&t.container.removeClass("mfp-s-"+i),n||"loading"!==e||(n=t.st.tLoading);var o={status:e,text:n};T("UpdateStatus",o),e=o.status,n=o.text,t.preloader.html(n),t.preloader.find("a").on("click",function(e){e.stopImmediatePropagation()}),t.container.addClass("mfp-s-"+e),i=e}},_checkIfClose:function(i){if(!e(i).hasClass(y)){var n=t.st.closeOnContentClick,o=t.st.closeOnBgClick;if(n&&o)return!0;if(!t.content||e(i).hasClass("mfp-close")||t.preloader&&i===t.preloader[0])return!0;if(i===t.content[0]||e.contains(t.content[0],i)){if(n)return!0}else if(o&&e.contains(document,i))return!0;return!1}},_addClassToMFP:function(e){t.bgOverlay.addClass(e),t.wrap.addClass(e)},_removeClassFromMFP:function(e){this.bgOverlay.removeClass(e),t.wrap.removeClass(e)},_hasScrollBar:function(e){return(t.isIE7?o.height():document.body.scrollHeight)>(e||I.height())},_parseMarkup:function(t,i,n){var o;n.data&&(i=e.extend(n.data,i)),T(p,[t,i,n]),e.each(i,function(e,i){if(void 0===i||i===!1)return!0;if(o=e.split("_"),o.length>1){var n=t.find(v+"-"+o[0]);if(n.length>0){var r=o[1];"replaceWith"===r?n[0]!==i[0]&&n.replaceWith(i):"img"===r?n.is("img")?n.attr("src",i):n.replaceWith('

'):n.attr(o[1],i)}}else t.find(v+"-"+e).html(i)})},_getScrollbarSize:function(){if(void 0===t.scrollbarSize){var e=document.createElement("div");e.id="mfp-sbm",e.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(e),t.scrollbarSize=e.offsetWidth-e.clientWidth,document.body.removeChild(e)}return t.scrollbarSize}},e.magnificPopup={instance:null,proto:w.prototype,modules:[],open:function(t,i){return P(),t=t?e.extend(!0,{},t):{},t.isObj=!0,t.index=i||0,this.instance.open(t)},close:function(){return e.magnificPopup.instance&&e.magnificPopup.instance.close()},registerModule:function(t,i){i.options&&(e.magnificPopup.defaults[t]=i.options),e.extend(this.proto,i.proto),this.modules.push(t)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'
',tClose:"Close (Esc)",tLoading:"Loading..."}},e.fn.magnificPopup=function(i){P();var n=e(this);if("string"==typeof i)if("open"===i){var o,r=b?n.data("magnificPopup"):n[0].magnificPopup,a=parseInt(arguments[1],10)||0;r.items?o=r.items[a]:(o=n,r.delegate&&(o=o.find(r.delegate)),o=o.eq(a)),t._openClick({mfpEl:o},n,r)}else t.isOpen&&t[i].apply(t,Array.prototype.slice.call(arguments,1));else i=e.extend(!0,{},i),b?n.data("magnificPopup",i):n[0].magnificPopup=i,t.addGroup(n,i);return n};var O,z,M,B="inline",H=function(){M&&(z.after(M.addClass(O)).detach(),M=null)};e.magnificPopup.registerModule(B,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){t.types.push(B),x(l+"."+B,function(){H()})},getInline:function(i,n){if(H(),i.src){var o=t.st.inline,r=e(i.src);if(r.length){var a=r[0].parentNode;a&&a.tagName&&(z||(O=o.hiddenClass,z=k(O),O="mfp-"+O),M=r.after(z).detach().removeClass(O)),t.updateStatus("ready")}else t.updateStatus("error",o.tNotFound),r=e("
");return i.inlineElement=r,r}return t.updateStatus("ready"),t._parseMarkup(n,{},i),n}}});var L,A="ajax",F=function(){L&&n.removeClass(L)},j=function(){F(),t.req&&t.req.abort()};e.magnificPopup.registerModule(A,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'
The content could not be loaded.'},proto:{initAjax:function(){t.types.push(A),L=t.st.ajax.cursor,x(l+"."+A,j),x("BeforeChange."+A,j)},getAjax:function(i){L&&n.addClass(L),t.updateStatus("loading");var o=e.extend({url:i.src,success:function(n,o,r){var a={data:n,xhr:r};T("ParseAjax",a),t.appendContent(e(a.data),A),i.finished=!0,F(),E(),setTimeout(function(){t.wrap.addClass(h)},16),t.updateStatus("ready"),T("AjaxContentAdded")},error:function(){F(),i.finished=i.loadError=!0,t.updateStatus("error",t.st.ajax.tError.replace("%url%",i.src))}},t.st.ajax.settings);return t.req=e.ajax(o),""}}});var N,W=function(i){if(i.data&&void 0!==i.data.title)return i.data.title;var n=t.st.image.titleSrc;if(n){if(e.isFunction(n))return n.call(t,i);if(i.el)return i.el.attr(n)||""}return""};e.magnificPopup.registerModule("image",{options:{markup:'
',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'
The image could not be loaded.'},proto:{initImage:function(){var e=t.st.image,i=".image";t.types.push("image"),x(f+i,function(){"image"===t.currItem.type&&e.cursor&&n.addClass(e.cursor)}),x(l+i,function(){e.cursor&&n.removeClass(e.cursor),I.off("resize"+v)}),x("Resize"+i,t.resizeImage),t.isLowIE&&x("AfterChange",t.resizeImage)},resizeImage:function(){var e=t.currItem;if(e&&e.img&&t.st.image.verticalFit){var i=0;t.isLowIE&&(i=parseInt(e.img.css("padding-top"),10)+parseInt(e.img.css("padding-bottom"),10)),e.img.css("max-height",t.wH-i)}},_onImageHasSize:function(e){e.img&&(e.hasSize=!0,N&&clearInterval(N),e.isCheckingImgSize=!1,T("ImageHasSize",e),e.imgHidden&&(t.content&&t.content.removeClass("mfp-loading"),e.imgHidden=!1))},findImageSize:function(e){var i=0,n=e.img[0],o=function(r){N&&clearInterval(N),N=setInterval(function(){return n.naturalWidth>0?(t._onImageHasSize(e),void 0):(i>200&&clearInterval(N),i++,3===i?o(10):40===i?o(50):100===i&&o(500),void 0)},r)};o(1)},getImage:function(i,n){var o=0,r=function(){i&&(i.img[0].complete?(i.img.off(".mfploader"),i===t.currItem&&(t._onImageHasSize(i),t.updateStatus("ready")),i.hasSize=!0,i.loaded=!0,T("ImageLoadComplete")):(o++,200>o?setTimeout(r,100):a()))},a=function(){i&&(i.img.off(".mfploader"),i===t.currItem&&(t._onImageHasSize(i),t.updateStatus("error",s.tError.replace("%url%",i.src))),i.hasSize=!0,i.loaded=!0,i.loadError=!0)},s=t.st.image,l=n.find(".mfp-img");if(l.length){var c=document.createElement("img");c.className="mfp-img",i.img=e(c).on("load.mfploader",r).on("error.mfploader",a),c.src=i.src,l.is("img")&&(i.img=i.img.clone()),i.img[0].naturalWidth>0&&(i.hasSize=!0)}return t._parseMarkup(n,{title:W(i),img_replaceWith:i.img},i),t.resizeImage(),i.hasSize?(N&&clearInterval(N),i.loadError?(n.addClass("mfp-loading"),t.updateStatus("error",s.tError.replace("%url%",i.src))):(n.removeClass("mfp-loading"),t.updateStatus("ready")),n):(t.updateStatus("loading"),i.loading=!0,i.hasSize||(i.imgHidden=!0,n.addClass("mfp-loading"),t.findImageSize(i)),n)}}});var R,Z=function(){return void 0===R&&(R=void 0!==document.createElement("p").style.MozTransform),R};e.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(e){return e.is("img")?e:e.find("img")}},proto:{initZoom:function(){var e,i=t.st.zoom,n=".zoom";if(i.enabled&&t.supportsTransition){var o,r,a=i.duration,s=function(e){var t=e.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),n="all "+i.duration/1e3+"s "+i.easing,o={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},r="transition";return o["-webkit-"+r]=o["-moz-"+r]=o["-o-"+r]=o[r]=n,t.css(o),t},d=function(){t.content.css("visibility","visible")};x("BuildControls"+n,function(){if(t._allowZoom()){if(clearTimeout(o),t.content.css("visibility","hidden"),e=t._getItemToZoom(),!e)return d(),void 0;r=s(e),r.css(t._getOffset()),t.wrap.append(r),o=setTimeout(function(){r.css(t._getOffset(!0)),o=setTimeout(function(){d(),setTimeout(function(){r.remove(),e=r=null,T("ZoomAnimationEnded")},16)},a)},16)}}),x(c+n,function(){if(t._allowZoom()){if(clearTimeout(o),t.st.removalDelay=a,!e){if(e=t._getItemToZoom(),!e)return;r=s(e)}r.css(t._getOffset(!0)),t.wrap.append(r),t.content.css("visibility","hidden"),setTimeout(function(){r.css(t._getOffset())},16)}}),x(l+n,function(){t._allowZoom()&&(d(),r&&r.remove(),e=null)})}},_allowZoom:function(){return"image"===t.currItem.type},_getItemToZoom:function(){return t.currItem.hasSize?t.currItem.img:!1},_getOffset:function(i){var n;n=i?t.currItem.img:t.st.zoom.opener(t.currItem.el||t.currItem);var o=n.offset(),r=parseInt(n.css("padding-top"),10),a=parseInt(n.css("padding-bottom"),10);o.top-=e(window).scrollTop()-r;var s={width:n.width(),height:(b?n.innerHeight():n[0].offsetHeight)-a-r};return Z()?s["-moz-transform"]=s.transform="translate("+o.left+"px,"+o.top+"px)":(s.left=o.left,s.top=o.top),s}}});var q="iframe",D="//about:blank",K=function(e){if(t.currTemplate[q]){var i=t.currTemplate[q].find("iframe");i.length&&(e||(i[0].src=D),t.isIE8&&i.css("display",e?"block":"none"))}};e.magnificPopup.registerModule(q,{options:{markup:'
',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){t.types.push(q),x("BeforeChange",function(e,t,i){t!==i&&(t===q?K():i===q&&K(!0))}),x(l+"."+q,function(){K()})},getIframe:function(i,n){var o=i.src,r=t.st.iframe;e.each(r.patterns,function(){return o.indexOf(this.index)>-1?(this.id&&(o="string"==typeof this.id?o.substr(o.lastIndexOf(this.id)+this.id.length,o.length):this.id.call(this,o)),o=this.src.replace("%id%",o),!1):void 0});var a={};return r.srcAction&&(a[r.srcAction]=o),t._parseMarkup(n,a,i),t.updateStatus("ready"),n}}});var Y=function(e){var i=t.items.length;return e>i-1?e-i:0>e?i+e:e},U=function(e,t,i){return e.replace(/%curr%/gi,t+1).replace(/%total%/gi,i)};e.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'
',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var i=t.st.gallery,n=".mfp-gallery",r=Boolean(e.fn.mfpFastClick);return t.direction=!0,i&&i.enabled?(a+=" mfp-gallery",x(f+n,function(){i.navigateByImgClick&&t.wrap.on("click"+n,".mfp-img",function(){return t.items.length>1?(t.next(),!1):void 0}),o.on("keydown"+n,function(e){37===e.keyCode?t.prev():39===e.keyCode&&t.next()})}),x("UpdateStatus"+n,function(e,i){i.text&&(i.text=U(i.text,t.currItem.index,t.items.length))}),x(p+n,function(e,n,o,r){var a=t.items.length;o.counter=a>1?U(i.tCounter,r.index,a):""}),x("BuildControls"+n,function(){if(t.items.length>1&&i.arrows&&!t.arrowLeft){var n=i.arrowMarkup,o=t.arrowLeft=e(n.replace(/%title%/gi,i.tPrev).replace(/%dir%/gi,"left")).addClass(y),a=t.arrowRight=e(n.replace(/%title%/gi,i.tNext).replace(/%dir%/gi,"right")).addClass(y),s=r?"mfpFastClick":"click";o[s](function(){t.prev()}),a[s](function(){t.next()}),t.isIE7&&(k("b",o[0],!1,!0),k("a",o[0],!1,!0),k("b",a[0],!1,!0),k("a",a[0],!1,!0)),t.container.append(o.add(a))}}),x(m+n,function(){t._preloadTimeout&&clearTimeout(t._preloadTimeout),t._preloadTimeout=setTimeout(function(){t.preloadNearbyImages(),t._preloadTimeout=null},16)}),x(l+n,function(){o.off(n),t.wrap.off("click"+n),t.arrowLeft&&r&&t.arrowLeft.add(t.arrowRight).destroyMfpFastClick(),t.arrowRight=t.arrowLeft=null}),void 0):!1},next:function(){t.direction=!0,t.index=Y(t.index+1),t.updateItemHTML()},prev:function(){t.direction=!1,t.index=Y(t.index-1),t.updateItemHTML()},goTo:function(e){t.direction=e>=t.index,t.index=e,t.updateItemHTML()},preloadNearbyImages:function(){var e,i=t.st.gallery.preload,n=Math.min(i[0],t.items.length),o=Math.min(i[1],t.items.length);for(e=1;(t.direction?o:n)>=e;e++)t._preloadItem(t.index+e);for(e=1;(t.direction?n:o)>=e;e++)t._preloadItem(t.index-e)},_preloadItem:function(i){if(i=Y(i),!t.items[i].preloaded){var n=t.items[i];n.parsed||(n=t.parseEl(i)),T("LazyLoad",n),"image"===n.type&&(n.img=e('
![]()
').on("load.mfploader",function(){n.hasSize=!0}).on("error.mfploader",function(){n.hasSize=!0,n.loadError=!0,T("LazyLoadError",n)}).attr("src",n.src)),n.preloaded=!0}}}});var G="retina";e.magnificPopup.registerModule(G,{options:{replaceSrc:function(e){return e.src.replace(/\.\w+$/,function(e){return"@2x"+e})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var e=t.st.retina,i=e.ratio;i=isNaN(i)?i():i,i>1&&(x("ImageHasSize."+G,function(e,t){t.img.css({"max-width":t.img[0].naturalWidth/i,width:"100%"})}),x("ElementParse."+G,function(t,n){n.src=e.replaceSrc(n,i)}))}}}}),function(){var t=1e3,i="ontouchstart"in window,n=function(){I.off("touchmove"+r+" touchend"+r)},o="mfpFastClick",r="."+o;e.fn.mfpFastClick=function(o){return e(this).each(function(){var a,s=e(this);if(i){var l,c,d,u,p,f;s.on("touchstart"+r,function(e){u=!1,f=1,p=e.originalEvent?e.originalEvent.touches[0]:e.touches[0],c=p.clientX,d=p.clientY,I.on("touchmove"+r,function(e){p=e.originalEvent?e.originalEvent.touches:e.touches,f=p.length,p=p[0],(Math.abs(p.clientX-c)>10||Math.abs(p.clientY-d)>10)&&(u=!0,n())}).on("touchend"+r,function(e){n(),u||f>1||(a=!0,e.preventDefault(),clearTimeout(l),l=setTimeout(function(){a=!1},t),o())})})}s.on("click"+r,function(){a||o()})})},e.fn.destroyMfpFastClick=function(){e(this).off("touchstart"+r+" click"+r),i&&I.off("touchmove"+r+" touchend"+r)}}()})(window.jQuery||window.Zepto);
\ No newline at end of file
diff --git a/vendors/_jquery-magnific-popup/magnific-popup-animations.css b/vendors/_jquery-magnific-popup/magnific-popup-animations.css
deleted file mode 100644
index 3dfd27a65..000000000
--- a/vendors/_jquery-magnific-popup/magnific-popup-animations.css
+++ /dev/null
@@ -1,45 +0,0 @@
-
-/* overlay at start */
-.mfp-fade.mfp-bg {
- opacity: 0;
-
- -webkit-transition: all 0.2s ease-out;
- -moz-transition: all 0.2s ease-out;
- transition: all 0.2s ease-out;
-}
-/* overlay animate in */
-.mfp-fade.mfp-bg.mfp-ready {
- opacity: 0.8;
-}
-/* overlay animate out */
-.mfp-fade.mfp-bg.mfp-removing {
- opacity: 0;
-}
-
-/* content at start */
-.mfp-fade.mfp-wrap .mfp-content {
- opacity: 0;
-
- -webkit-transition: all 0.15s ease-out;
- -moz-transition: all 0.15s ease-out;
- transition: all 0.15s ease-out;
-
- -webkit-transform: translateX(-50px);
- -moz-transform: translateX(-50px);
- transform: translateX(-50px);
-}
-
-/* content animate it */
-.mfp-fade.mfp-wrap.mfp-ready .mfp-content {
- opacity: 1;
- -webkit-transform: translateX(0);
- -moz-transform: translateX(0);
- transform: translateX(0);
-}
-/* content animate out */
-.mfp-fade.mfp-wrap.mfp-removing .mfp-content {
- opacity: 0;
- -webkit-transform: translateX(50px);
- -moz-transform: translateX(50px);
- transform: translateX(50px);
-}
diff --git a/vendors/_jquery-magnific-popup/magnific-popup.css b/vendors/_jquery-magnific-popup/magnific-popup.css
deleted file mode 100644
index 947eb50cf..000000000
--- a/vendors/_jquery-magnific-popup/magnific-popup.css
+++ /dev/null
@@ -1,364 +0,0 @@
-/* Magnific Popup CSS */
-.mfp-bg {
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- z-index: 1042;
- overflow: hidden;
- position: fixed;
- background: #0b0b0b;
- opacity: 0.8;
- filter: alpha(opacity=80); }
-
-.mfp-wrap {
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- z-index: 1043;
- position: fixed;
- outline: none !important;
- -webkit-backface-visibility: hidden; }
-
-.mfp-container {
- text-align: center;
- position: absolute;
- width: 100%;
- height: 100%;
- left: 0;
- top: 0;
- padding: 0 8px;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box; }
-
-.mfp-container:before {
- content: '';
- display: inline-block;
- height: 100%;
- vertical-align: middle; }
-
-.mfp-align-top .mfp-container:before {
- display: none; }
-
-.mfp-content {
- position: relative;
- display: inline-block;
- vertical-align: middle;
- margin: 0 auto;
- text-align: left;
- z-index: 1045; }
-
-.mfp-inline-holder .mfp-content, .mfp-ajax-holder .mfp-content {
- width: 100%;
- cursor: auto; }
-
-.mfp-ajax-cur {
- cursor: progress; }
-
-.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
- cursor: -moz-zoom-out;
- cursor: -webkit-zoom-out;
- cursor: zoom-out; }
-
-.mfp-zoom {
- cursor: pointer;
- cursor: -webkit-zoom-in;
- cursor: -moz-zoom-in;
- cursor: zoom-in; }
-
-.mfp-auto-cursor .mfp-content {
- cursor: auto; }
-
-.mfp-close, .mfp-arrow, .mfp-preloader, .mfp-counter {
- -webkit-user-select: none;
- -moz-user-select: none;
- user-select: none; }
-
-.mfp-loading.mfp-figure {
- display: none; }
-
-.mfp-hide {
- display: none !important; }
-
-.mfp-preloader {
- color: #cccccc;
- position: absolute;
- top: 50%;
- width: auto;
- text-align: center;
- margin-top: -0.8em;
- left: 8px;
- right: 8px;
- z-index: 1044; }
- .mfp-preloader a {
- color: #cccccc; }
- .mfp-preloader a:hover {
- color: white; }
-
-.mfp-s-ready .mfp-preloader {
- display: none; }
-
-.mfp-s-error .mfp-content {
- display: none; }
-
-button.mfp-close, button.mfp-arrow {
- overflow: visible;
- cursor: pointer;
- background: transparent;
- border: 0;
- -webkit-appearance: none;
- display: block;
- outline: none;
- padding: 0;
- z-index: 1046;
- -webkit-box-shadow: none;
- box-shadow: none; }
-button::-moz-focus-inner {
- padding: 0;
- border: 0; }
-
-.mfp-close {
- width: 44px;
- height: 44px;
- line-height: 44px;
- position: absolute;
- right: 0;
- top: 0;
- text-decoration: none;
- text-align: center;
- opacity: 0.65;
- padding: 0 0 18px 10px;
- color: white;
- font-style: normal;
- font-size: 28px;
- font-family: Arial, Baskerville, monospace; }
- .mfp-close:hover, .mfp-close:focus {
- opacity: 1; }
- .mfp-close:active {
- top: 1px; }
-
-.mfp-close-btn-in .mfp-close {
- color: #333333; }
-
-.mfp-image-holder .mfp-close, .mfp-iframe-holder .mfp-close {
- color: white;
- right: -6px;
- text-align: right;
- padding-right: 6px;
- width: 100%; }
-
-.mfp-counter {
- position: absolute;
- top: 0;
- right: 0;
- color: #cccccc;
- font-size: 12px;
- line-height: 18px; }
-
-.mfp-arrow {
- position: absolute;
- opacity: 0.65;
- margin: 0;
- top: 50%;
- margin-top: -55px;
- padding: 0;
- width: 90px;
- height: 110px;
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
- .mfp-arrow:active {
- margin-top: -54px; }
- .mfp-arrow:hover, .mfp-arrow:focus {
- opacity: 1; }
- .mfp-arrow:before, .mfp-arrow:after, .mfp-arrow .mfp-b, .mfp-arrow .mfp-a {
- content: '';
- display: block;
- width: 0;
- height: 0;
- position: absolute;
- left: 0;
- top: 0;
- margin-top: 35px;
- margin-left: 35px;
- border: medium inset transparent; }
- .mfp-arrow:after, .mfp-arrow .mfp-a {
- border-top-width: 13px;
- border-bottom-width: 13px;
- top: 8px; }
- .mfp-arrow:before, .mfp-arrow .mfp-b {
- border-top-width: 21px;
- border-bottom-width: 21px; }
-
-.mfp-arrow-left {
- left: 0; }
- .mfp-arrow-left:after, .mfp-arrow-left .mfp-a {
- border-right: 17px solid white;
- margin-left: 31px; }
- .mfp-arrow-left:before, .mfp-arrow-left .mfp-b {
- margin-left: 25px;
- border-right: 27px solid #3f3f3f; }
-
-.mfp-arrow-right {
- right: 0; }
- .mfp-arrow-right:after, .mfp-arrow-right .mfp-a {
- border-left: 17px solid white;
- margin-left: 39px; }
- .mfp-arrow-right:before, .mfp-arrow-right .mfp-b {
- border-left: 27px solid #3f3f3f; }
-
-.mfp-iframe-holder {
- padding-top: 40px;
- padding-bottom: 40px; }
- .mfp-iframe-holder .mfp-content {
- line-height: 0;
- width: 100%;
- max-width: 900px; }
- .mfp-iframe-holder .mfp-close {
- top: -40px; }
-
-.mfp-iframe-scaler {
- width: 100%;
- height: 0;
- overflow: hidden;
- padding-top: 56.25%; }
- .mfp-iframe-scaler iframe {
- position: absolute;
- display: block;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
- background: black; }
-
-/* Main image in popup */
-img.mfp-img {
- width: auto;
- max-width: 100%;
- height: auto;
- display: block;
- line-height: 0;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- padding: 40px 0 40px;
- margin: 0 auto; }
-
-/* The shadow behind the image */
-.mfp-figure {
- line-height: 0; }
- .mfp-figure:after {
- content: '';
- position: absolute;
- left: 0;
- top: 40px;
- bottom: 40px;
- display: block;
- right: 0;
- width: auto;
- height: auto;
- z-index: -1;
- box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
- background: #444444; }
- .mfp-figure small {
- color: #bdbdbd;
- display: block;
- font-size: 12px;
- line-height: 14px; }
-
-.mfp-bottom-bar {
- margin-top: -36px;
- position: absolute;
- top: 100%;
- left: 0;
- width: 100%;
- cursor: auto; }
-
-.mfp-title {
- text-align: left;
- line-height: 18px;
- color: #f3f3f3;
- word-wrap: break-word;
- padding-right: 36px; }
-
-.mfp-image-holder .mfp-content {
- max-width: 100%; }
-
-.mfp-gallery .mfp-image-holder .mfp-figure {
- cursor: pointer; }
-
-@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
- /**
- * Remove all paddings around the image on small screen
- */
- .mfp-img-mobile .mfp-image-holder {
- padding-left: 0;
- padding-right: 0; }
- .mfp-img-mobile img.mfp-img {
- padding: 0; }
- .mfp-img-mobile .mfp-figure {
- /* The shadow behind the image */ }
- .mfp-img-mobile .mfp-figure:after {
- top: 0;
- bottom: 0; }
- .mfp-img-mobile .mfp-figure small {
- display: inline;
- margin-left: 5px; }
- .mfp-img-mobile .mfp-bottom-bar {
- background: rgba(0, 0, 0, 0.6);
- bottom: 0;
- margin: 0;
- top: auto;
- padding: 3px 5px;
- position: fixed;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box; }
- .mfp-img-mobile .mfp-bottom-bar:empty {
- padding: 0; }
- .mfp-img-mobile .mfp-counter {
- right: 5px;
- top: 3px; }
- .mfp-img-mobile .mfp-close {
- top: 0;
- right: 0;
- width: 35px;
- height: 35px;
- line-height: 35px;
- background: rgba(0, 0, 0, 0.6);
- position: fixed;
- text-align: center;
- padding: 0; } }
-
-@media all and (max-width: 900px) {
- .mfp-arrow {
- -webkit-transform: scale(0.75);
- transform: scale(0.75); }
- .mfp-arrow-left {
- -webkit-transform-origin: 0;
- transform-origin: 0; }
- .mfp-arrow-right {
- -webkit-transform-origin: 100%;
- transform-origin: 100%; }
- .mfp-container {
- padding-left: 6px;
- padding-right: 6px; } }
-
-.mfp-ie7 .mfp-img {
- padding: 0; }
-.mfp-ie7 .mfp-bottom-bar {
- width: 600px;
- left: 50%;
- margin-left: -300px;
- margin-top: 5px;
- padding-bottom: 5px; }
-.mfp-ie7 .mfp-container {
- padding: 0; }
-.mfp-ie7 .mfp-content {
- padding-top: 44px; }
-.mfp-ie7 .mfp-close {
- top: 0;
- right: 0;
- padding-top: 0; }
-
diff --git a/vendors/_jquery-magnific-popup/magnific-popup.jquery.json b/vendors/_jquery-magnific-popup/magnific-popup.jquery.json
deleted file mode 100644
index aeb3d1efe..000000000
--- a/vendors/_jquery-magnific-popup/magnific-popup.jquery.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "name": "magnific-popup",
- "title": "Magnific Popup",
- "description": "Fast, light, mobile-friendly and responsive lightbox and modal dialog plugin. Open inline HTML, ajax loaded content, image, form, iframe (YouTube video, Vimeo, Google Maps), photo gallery. Animation effects added with CSS3 transitions. For jQuery or Zepto.",
- "version": "0.9.8",
- "homepage": "http://dimsemenov.com/plugins/magnific-popup/",
- "demo": "http://dimsemenov.com/plugins/magnific-popup/",
- "docs": "http://dimsemenov.com/plugins/magnific-popup/documentation.html",
- "author": {
- "name": "Dmitry Semenov",
- "email": "diiiimaaaa@gmail.com",
- "url": "http://dimsemenov.com"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/dimsemenov/Magnific-Popup.git"
- },
- "bugs": "https://github.com/dimsemenov/Magnific-Popup/issues",
- "dependencies": {
- "jquery": ">=1.7.2"
- },
- "keywords": ["lightbox","popup","modal","window","dialog","ui","gallery","slideshow","video","image","ajax","html5","animation","jquery","photo","responsive","mobile"],
- "licenses": [
- {
- "type": "MIT",
- "url": "http://www.opensource.org/licenses/mit-license.php"
- }
- ]
-}
\ No newline at end of file
diff --git a/vendors/_jquery-magnific-popup/package.json b/vendors/_jquery-magnific-popup/package.json
deleted file mode 100644
index 7640f60af..000000000
--- a/vendors/_jquery-magnific-popup/package.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "name": "magnific-popup",
- "version": "0.0.0-ignored",
- "engines": {
- "node": ">= 0.8.0"
- },
- "scripts": {
- "test": "grunt jshint"
- },
- "devDependencies": {
- "grunt-contrib-jshint": "~0.1.1",
- "grunt-contrib-concat": "~0.1.2",
- "grunt-contrib-uglify": "~0.1.1",
- "grunt-contrib-watch": "~0.2.0",
- "grunt-contrib-clean": "~0.4.0",
- "grunt": "~0.4.0",
- "grunt-contrib-cssmin": "~0.4.1",
- "grunt-contrib-copy": "~0.4.0",
- "grunt-jekyll": "~0.3.9",
- "grunt-sass": "~0.6.1"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/nschonni/Magnific-Popup.git"
- }
-}