From 5e7f6a7807e70a44d5b5159a209cfc5a24d88189 Mon Sep 17 00:00:00 2001 From: Dmitry Semenov Date: Thu, 9 May 2013 20:25:20 +0300 Subject: [PATCH] 0.8.3 - 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. --- README.md | 7 +++++ dist/jquery.magnific-popup.js | 49 +++++++++++++++++++++---------- dist/jquery.magnific-popup.min.js | 4 +-- magnific-popup.jquery.json | 2 +- src/js/core.js | 18 +++++++++--- src/js/gallery.js | 25 +++++++++------- src/js/image.js | 4 ++- website/_config.yml | 2 +- website/documentation.md | 3 +- 9 files changed, 78 insertions(+), 36 deletions(-) diff --git a/README.md b/README.md index 24bf8fce..f5e687ac 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,13 @@ Optionally: ## Changelog +### 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 diff --git a/dist/jquery.magnific-popup.js b/dist/jquery.magnific-popup.js index 792434c7..699b724b 100644 --- a/dist/jquery.magnific-popup.js +++ b/dist/jquery.magnific-popup.js @@ -1,4 +1,4 @@ -/*! Magnific Popup - v0.8.2 - 2013-05-05 +/*! Magnific Popup - v0.8.3 - 2013-05-09 * http://dimsemenov.com/plugins/magnific-popup/ * Copyright (c) 2013 Dmitry Semenov; */ ;(function($) { @@ -302,10 +302,10 @@ MagnificPopup.prototype = { // add content mfp.updateItemHTML(); - // remove scrollbar, add padding e.t.c - + _mfpTrigger('BuildControls'); + // remove scrollbar, add padding e.t.c _body.css(bodyStyles); // add everything to DOM @@ -406,6 +406,7 @@ MagnificPopup.prototype = { if(mfp._lastFocusedEl) { $(mfp._lastFocusedEl).focus(); // put tab focus back } + mfp.content = null; mfp.currTemplate = null; mfp.prevHeight = 0; }, @@ -434,8 +435,13 @@ MagnificPopup.prototype = { 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 ); } @@ -445,8 +451,11 @@ MagnificPopup.prototype = { var type = item.type; if(!mfp.currTemplate[type]) { var markup = mfp.st[type] ? mfp.st[type].markup : false; + + // allows to modify markup + _mfpTrigger('FirstMarkupParse', markup); + if(markup) { - _mfpTrigger('FirstMarkupParse', markup); mfp.currTemplate[type] = $(markup); } else { // if there is no markup found we just define that template is parsed @@ -493,7 +502,7 @@ MagnificPopup.prototype = { _mfpTrigger(BEFORE_APPEND_EVENT); mfp.container.addClass('mfp-'+type+'-holder'); - mfp.contentContainer.html(mfp.content); + mfp.contentContainer.append(mfp.content); }, @@ -565,6 +574,7 @@ MagnificPopup.prototype = { e.preventDefault(); options.el = $(this); + options.mainEl = el; if(options.delegate) { options.items = el.find(options.delegate); } @@ -1056,7 +1066,9 @@ $.magnificPopup.registerModule('image', { _mfpTrigger('ImageHasSize', item); if(item.imgHidden) { - mfp.content.removeClass('mfp-loading'); + if(mfp.content) + mfp.content.removeClass('mfp-loading'); + item.imgHidden = false; } @@ -1361,17 +1373,8 @@ $.magnificPopup.registerModule('gallery', { values.counter = l ? _replaceCurrTotal(gSt.tCounter, item.index, l) : ''; }); - _mfpOn(CHANGE_EVENT+ns, function() { - - if(mfp._preloadTimeout) clearTimeout(mfp._preloadTimeout); - - mfp._preloadTimeout = setTimeout(function() { - mfp.preloadNearbyImages(); - mfp._preloadTimeout = null; - }, 16); - + _mfpOn('BuildControls' + ns, function() { if(gSt.arrows && !mfp.arrowLeft) { - var markup = gSt.arrowMarkup, arrowLeft = mfp.arrowLeft = $( markup.replace('%title%', gSt.tPrev).replace('%dir%', 'left') ).addClass(PREVENT_CLOSE_CLASS), arrowRight = mfp.arrowRight = $( markup.replace('%title%', gSt.tNext).replace('%dir%', 'right') ).addClass(PREVENT_CLOSE_CLASS); @@ -1396,6 +1399,15 @@ $.magnificPopup.registerModule('gallery', { } }); + _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); @@ -1418,6 +1430,11 @@ $.magnificPopup.registerModule('gallery', { 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), diff --git a/dist/jquery.magnific-popup.min.js b/dist/jquery.magnific-popup.min.js index 2da946a4..66244bae 100644 --- a/dist/jquery.magnific-popup.min.js +++ b/dist/jquery.magnific-popup.min.js @@ -1,4 +1,4 @@ -/*! Magnific Popup - v0.8.2 - 2013-05-05 +/*! Magnific Popup - v0.8.3 - 2013-05-09 * http://dimsemenov.com/plugins/magnific-popup/ * Copyright (c) 2013 Dmitry Semenov; */ -(function(e){var t,i,n,a,r,o,s,l="Close",c="BeforeAppend",d="MarkupParse",u="Open",p="Change",f="mfp",m="."+f,g="mfp-ready",v="mfp-removing",h="mfp-prevent-close",C=function(){},y=e(window),w=function(e,i){t.ev.on(f+e+m,i)},b=function(t,i,n,a){var r=document.createElement("div");return r.className="mfp-"+t,n&&(r.innerHTML=n),a?i&&i.appendChild(r):(r=e(r),i&&r.appendTo(i)),r},x=function(i,n){t.ev.triggerHandler(f+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]))},I=function(){(t.st.focus?t.content.find(t.st.focus).eq(0):t.wrap).focus()},k=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};C.prototype={constructor:C,init:function(){var i=navigator.appVersion;t.isIE7=-1!==i.indexOf("MSIE 7."),t.isAndroid=/android/gi.test(i),t.isIOS=/iphone|ipad|ipod/gi.test(i),t.probablyMobile=t.isAndroid||t.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),n=e(document.body),a=e(document),t.popupsCache={}},open:function(i){if(!t.isOpen){var r;if(t.types=[],o="",t.ev=i.el||a,i.isObj)t.index=i.index||0;else{t.index=0;var s,l=i.items;for(r=0;l.length>r;r++)if(s=l[r],s.parsed&&(s=s.el[0]),s===i.el[0]){t.index=r;break}}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.items=i.items.length?i.items:[i.items],t.bgOverlay||(t.bgOverlay=b("bg").on("click"+m,function(){t.close()}),t.wrap=b("wrap").attr("tabindex",-1).on("click"+m,function(i){var n=i.target;e(n).hasClass(h)||(t.st.closeOnContentClick?t.close():(!t.content||e(n).hasClass("mfp-close")||t.preloader&&i.target===t.preloader[0]||n!==t.content[0]&&!e.contains(t.content[0],n))&&t.close())}),t.container=b("container",t.wrap)),t.contentContainer=b("content"),t.st.preloader&&(t.preloader=b("preloader",t.container,t.st.tLoading));var c=e.magnificPopup.modules;for(r=0;c.length>r;r++){var p=c[r];p=p.charAt(0).toUpperCase()+p.slice(1),t["init"+p].call(t)}x("BeforeOpen"),t.st.closeBtnInside?(w(d,function(e,t,i,n){i.close_replaceWith=k(n.type)}),o+=" mfp-close-btn-in"):t.wrap.append(k()),t.st.alignTop&&(o+=" mfp-align-top"),t.fixedContentPos?t.wrap.css({overflow:t.st.overflowY,overflowX:"hidden",overflowY:t.st.overflowY}):t.wrap.css({top:y.scrollTop(),position:"absolute"}),(t.st.fixedBgPos===!1||"auto"===t.st.fixedBgPos&&!t.fixedContentPos)&&t.bgOverlay.css({height:a.height(),position:"absolute"}),a.on("keyup"+m,function(e){27===e.keyCode&&t.close()}),y.on("resize"+m,function(){t.updateSize()}),t.st.closeOnContentClick||(o+=" mfp-auto-cursor"),o&&t.wrap.addClass(o);var f=t.wH=y.height(),v={};if(t.fixedContentPos&&"scroll"!==t.st.overflowY){var C=t._getScrollbarSize();C&&(v.paddingRight=C)}t.fixedContentPos&&(t.isIE7?e("body, html").css("overflow","hidden"):v.overflow="hidden");var P=t.st.mainClass;t.isIE7&&(P+=" mfp-ie7"),P&&t._addClassToMFP(P),t.updateItemHTML(),n.css(v),t.bgOverlay.add(t.wrap).prependTo(document.body),t._lastFocusedEl=document.activeElement,setTimeout(function(){t.content?(t._addClassToMFP(g),I()):t.bgOverlay.addClass(g),a.on("focusin"+m,function(i){return i.target===t.wrap[0]||e.contains(t.wrap[0],i.target)?void 0:(I(),!1)})},16),t.isOpen=!0,t.updateSize(f),x(u)}},close:function(){t.isOpen&&(t.isOpen=!1,t.st.removalDelay?(t._addClassToMFP(v),setTimeout(function(){t._close()},t.st.removalDelay)):t._close())},_close:function(){x(l);var i=v+" "+g+" ";if(t.bgOverlay.detach(),t.wrap.detach(),t.container.empty(),t.st.mainClass&&(i+=t.st.mainClass+" "),t._removeClassFromMFP(i),t.fixedContentPos){var r={paddingRight:0};t.isIE7?e("body, html").css("overflow","auto"):r.overflow="visible",n.css(r)}a.off("keyup"+m+" focusin"+m),t.ev.off(m),t.wrap.attr("class","mfp-wrap").removeAttr("style"),t.bgOverlay.attr("class","mfp-bg"),t.container.attr("class","mfp-container"),t.st.closeBtnInside&&t.currTemplate[t.currItem.type]!==!0||t.currTemplate.closeBtn&&t.currTemplate.closeBtn.detach(),t._lastFocusedEl&&e(t._lastFocusedEl).focus(),t.currTemplate=null,t.prevHeight=0},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||y.height();x("Resize")},updateItemHTML:function(){var i=t.items[t.index];t.contentContainer.detach(),i.parsed||(i=t.parseEl(t.index)),t.currItem=i;var n=i.type;if(!t.currTemplate[n]){var a=t.st[n]?t.st[n].markup:!1;a?(x("FirstMarkupParse",a),t.currTemplate[n]=e(a)):t.currTemplate[n]=!0}r&&r!==i.type&&t.container.removeClass("mfp-"+r+"-holder");var o=t["get"+n.charAt(0).toUpperCase()+n.slice(1)](i,t.currTemplate[n]);t.appendContent(o,n),i.preloaded=!0,x(p,i),r=i.type,t.container.prepend(t.contentContainer)},appendContent:function(e,i){t.content=e,e?t.st.closeBtnInside&&t.currTemplate[i]===!0?t.content.find(".mfp-close").length||t.content.append(k()):t.content=e:t.content="",x(c),t.container.addClass("mfp-"+i+"-holder"),t.contentContainer.html(t.content)},parseEl:function(i){var n=t.items[i],a=n.type;if(n=n.tagName?{el:e(n)}:{data:n,src:n.src},n.el){for(var r=t.types,o=0;r.length>o;o++)if(n.el.hasClass("mfp-"+r[o])){a=r[o];break}n.src=n.el.attr("data-mfp-src"),n.src||(n.src=n.el.attr("href"))}return n.type=a||t.st.type,n.index=i,n.parsed=!0,t.items[i]=n,x("ElementParse",n),t.items[i]},addGroup:function(i,n){var a=function(a){var r=void 0!==n.midClick?n.midClick:e.magnificPopup.defaults.midClick;if(r||2!==a.which){var o=void 0!==n.disableOn?n.disableOn:e.magnificPopup.defaults.disableOn;if(o)if(e.isFunction(o)){if(!o.call(t))return!0}else if(o>e(window).width())return!0;a.preventDefault(),n.el=e(this),n.delegate&&(n.items=i.find(n.delegate)),t.open(n)}};n||(n={});var r="click.magnificPopup";n.items?(n.isObj=!0,i.off(r).on(r,a)):(n.isObj=!1,n.delegate?i.off(r).on(r,n.delegate,a):(n.items=i,i.off(r).on(r,a)))},updateStatus:function(e,n){if(t.preloader){i!==e&&t.container.removeClass("mfp-s-"+i),n||"loading"!==e||(n=t.st.tLoading);var a={status:e,text:n};x("UpdateStatus",a),e=a.status,n=a.text,t.preloader.html(n),t.preloader.find("a").click(function(e){e.stopImmediatePropagation()}),t.container.addClass("mfp-s-"+e),i=e}},_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 document.body.clientHeight>(e||y.height())?!0:!1},_parseMarkup:function(t,i,n){var a;n.data&&(i=e.extend(n.data,i)),x(d,[t,i,n]),e.each(i,function(e,i){if(void 0===i||i===!1)return!0;if(a=e.split("_"),a.length>1){var n=t.find(m+"-"+a[0]);if(n.length>0){var r=a[1];"replaceWith"===r?n[0]!==i[0]&&n.replaceWith(i):"img"===r?n.is("img")?n.attr("src",i):n.replaceWith(''):n.attr(a[1],i)}}else t.find(m+"-"+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:C.prototype,modules:[],open:function(i,n){return e.magnificPopup.instance||(t=new C,t.init(),e.magnificPopup.instance=t),i||(i={}),i.isObj=!0,i.index=void 0===n?0:n,this.instance.open(i)},close:function(){return 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,closeBtnInside:!0,alignTop:!1,removalDelay:0,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'',tClose:"Close (Esc)",tLoading:"Loading..."}},e.fn.magnificPopup=function(i){return e.magnificPopup.instance||(t=new C,t.init(),e.magnificPopup.instance=t),t.addGroup(e(this),i),e(this)};var P,S="inline";e.magnificPopup.registerModule(S,{options:{hiddenClass:f+"-hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){t.types.push(S),P=!1,w(l+"."+S,function(){var e=t.currItem;if(e.type===S){if(P)for(var i=0;t.items.length>i;i++)e=t.items[i],e&&e.inlinePlaceholder&&e.inlinePlaceholder.after(e.inlineElement.addClass(t.st.inline.hiddenClass)).detach();e.inlinePlaceholder=e.inlineElement=null}})},getInline:function(i,n){if(t.updateStatus("ready"),i.src){var a=t.st.inline;return"string"!=typeof i.src&&(i.isElement=!0),i.isElement||i.inlinePlaceholder||(i.inlinePlaceholder=b(a.hiddenClass)),i.isElement?i.inlineElement=i.src:i.inlineElement||(i.inlineElement=e(i.src),i.inlineElement.length||(t.updateStatus("error",a.tNotFound),i.inlineElement=e("
"))),i.inlinePlaceholder&&(P=!0),i.inlineElement.after(i.inlinePlaceholder).detach().removeClass(a.hiddenClass),i.inlineElement}return t._parseMarkup(n,{},i),n}}});var E,T="ajax",M=function(){E&&n.removeClass(E)};e.magnificPopup.registerModule(T,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'The content could not be loaded.'},proto:{initAjax:function(){t.types.push(T),E=t.st.ajax.cursor,w(l+"."+T,function(){M(),t.req&&t.req.abort()})},getAjax:function(i){E&&n.addClass(E),t.updateStatus("loading");var a=e.extend({url:i.src,success:function(n,a,r){x("ParseAjax",r),t.appendContent(e(r.responseText),T),i.finished=!0,M(),I(),setTimeout(function(){t.wrap.addClass(g)},16),t.updateStatus("ready")},error:function(){M(),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(a),""}}});var O,_=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"),w(u+i,function(){"image"===t.currItem.type&&e.cursor&&n.addClass(e.cursor)}),w(l+i,function(){e.cursor&&n.removeClass(e.cursor),y.off("resize"+m)}),w("Resize"+i,function(){t.resizeImage()})},resizeImage:function(){var e=t.currItem;e.img&&t.st.image.verticalFit&&e.img.css("max-height",t.wH+"px")},_onImageHasSize:function(e){e.img&&(e.hasSize=!0,O&&clearInterval(O),e.isCheckingImgSize=!1,x("ImageHasSize",e),e.imgHidden&&(t.content.removeClass("mfp-loading"),e.imgHidden=!1))},findImageSize:function(e){var i=0,n=e.img[0],a=function(r){O&&clearInterval(O),O=setInterval(function(){return n.naturalWidth>0?(t._onImageHasSize(e),void 0):(i>200&&clearInterval(O),i++,3===i?a(10):40===i?a(50):100===i&&a(500),void 0)},r)};a(1)},getImage:function(i,n){var a=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):(a++,200>a?setTimeout(r,100):o()))},o=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=new Image;c.className="mfp-img",i.img=e(c).on("load.mfploader",r).on("error.mfploader",o),c.src=i.src,l.is("img")&&(i.img=i.img.clone())}return t._parseMarkup(n,{title:_(i),img_replaceWith:i.img},i),t.resizeImage(),i.hasSize?(O&&clearInterval(O),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 z="iframe",F=function(e){if(t.isIE7&&t.currItem&&t.currItem.type===z){var i=t.content.find("iframe");i.length&&i.css("display",e?"block":"none")}};e.magnificPopup.registerModule(z,{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(z),F(!0),w(l+"."+z,function(){F()})},getIframe:function(i,n){var a=i.src,r=t.st.iframe;e.each(r.patterns,function(){return a.indexOf(this.index)>-1?(this.id&&(a="string"==typeof this.id?a.substr(a.lastIndexOf(this.id)+this.id.length,a.length):this.id.call(this,a)),a=this.src.replace("%id%",a),!1):void 0});var o={};return r.srcAction&&(o[r.srcAction]=a),t._parseMarkup(n,o,i),t.updateStatus("ready"),n}}});var H=function(e){var i=t.items.length;return e>i-1?e-i:0>e?i+e:e},B=function(e,t,i){return e.replace("%curr%",t+1).replace("%total%",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?(o+=" mfp-gallery",w(u+n,function(){i.navigateByImgClick&&t.wrap.on("click"+n,".mfp-img",function(){return t.next(),!1}),a.on("keydown"+n,function(e){37===e.keyCode?t.prev():39===e.keyCode&&t.next()})}),w("UpdateStatus"+n,function(e,i){i.text&&(i.text=B(i.text,t.currItem.index,t.items.length))}),w(d+n,function(e,n,a,r){var o=t.items.length;a.counter=o?B(i.tCounter,r.index,o):""}),w(p+n,function(){if(t._preloadTimeout&&clearTimeout(t._preloadTimeout),t._preloadTimeout=setTimeout(function(){t.preloadNearbyImages(),t._preloadTimeout=null},16),i.arrows&&!t.arrowLeft){var n=i.arrowMarkup,a=t.arrowLeft=e(n.replace("%title%",i.tPrev).replace("%dir%","left")).addClass(h),o=t.arrowRight=e(n.replace("%title%",i.tNext).replace("%dir%","right")).addClass(h),s=r?"mfpFastClick":"click";a[s](function(){t.prev()}),o[s](function(){t.next()}),t.isIE7&&(b("b",a[0],!1,!0),b("a",a[0],!1,!0),b("b",o[0],!1,!0),b("a",o[0],!1,!0)),t.container.append(a.add(o))}}),w(l+n,function(){a.off(n),t.wrap.off("click"+n),r&&t.arrowLeft.add(t.arrowRight).destroyMfpFastClick(),t.arrowRight=t.arrowLeft=null}),void 0):!1},next:function(){t.direction=!0,t.index=H(t.index+1),t.updateItemHTML()},prev:function(){t.direction=!1,t.index=H(t.index-1),t.updateItemHTML()},preloadNearbyImages:function(){var e,i=t.st.gallery.preload,n=Math.min(i[0],t.items.length),a=Math.min(i[1],t.items.length);for(e=1;(t.direction?a:n)>=e;e++)t._preloadItem(t.index+e);for(e=1;(t.direction?n:a)>=e;e++)t._preloadItem(t.index-e)},_preloadItem:function(i){if(i=H(i),!t.items[i].preloaded){var n=t.items[i];n.parsed||(n=t.parseEl(i)),x("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}).attr("src",n.src)),n.preloaded=!0}}}});var L="retina";e.magnificPopup.registerModule(L,{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&&(w("ImageHasSize."+L,function(e,t){t.img.css({"max-width":t.img[0].naturalWidth/i,width:"100%"})}),w("ElementParse."+L,function(t,n){n.src=e.replaceSrc(n,i)}))}}}}),function(){var t=1e3,i="ontouchstart"in window,n=function(){y.off("touchmove"+r+" touchend"+r)},a="mfpFastClick",r="."+a;e.fn.mfpFastClick=function(a){return e(this).each(function(){var o,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,y.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||(o=!0,e.preventDefault(),clearTimeout(l),l=setTimeout(function(){o=!1},t),a())})})}s.on("click"+r,function(){o||a()})})},e.fn.destroyMfpFastClick=function(){e(this).off("touchstart"+r+" click"+r),i&&y.off("touchmove"+r+" touchend"+r)}}()})(window.jQuery||window.Zepto); \ No newline at end of file +(function(e){var t,n,i,a,o,r,s,l="Close",c="BeforeAppend",d="MarkupParse",u="Open",p="Change",f="mfp",m="."+f,g="mfp-ready",v="mfp-removing",h="mfp-prevent-close",C=function(){},y=e(window),w=function(e,n){t.ev.on(f+e+m,n)},b=function(t,n,i,a){var o=document.createElement("div");return o.className="mfp-"+t,i&&(o.innerHTML=i),a?n&&n.appendChild(o):(o=e(o),n&&o.appendTo(n)),o},x=function(n,i){t.ev.triggerHandler(f+n,i),t.st.callbacks&&(n=n.charAt(0).toLowerCase()+n.slice(1),t.st.callbacks[n]&&t.st.callbacks[n].apply(t,e.isArray(i)?i:[i]))},I=function(){(t.st.focus?t.content.find(t.st.focus).eq(0):t.wrap).focus()},k=function(n){return n===s&&t.currTemplate.closeBtn||(t.currTemplate.closeBtn=e(t.st.closeMarkup.replace("%title%",t.st.tClose)),s=n),t.currTemplate.closeBtn};C.prototype={constructor:C,init:function(){var n=navigator.appVersion;t.isIE7=-1!==n.indexOf("MSIE 7."),t.isAndroid=/android/gi.test(n),t.isIOS=/iphone|ipad|ipod/gi.test(n),t.probablyMobile=t.isAndroid||t.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),i=e(document.body),a=e(document),t.popupsCache={}},open:function(n){if(!t.isOpen){var o;if(t.types=[],r="",t.ev=n.el||a,n.isObj)t.index=n.index||0;else{t.index=0;var s,l=n.items;for(o=0;l.length>o;o++)if(s=l[o],s.parsed&&(s=s.el[0]),s===n.el[0]){t.index=o;break}}n.key?(t.popupsCache[n.key]||(t.popupsCache[n.key]={}),t.currTemplate=t.popupsCache[n.key]):t.currTemplate={},t.st=e.extend(!0,{},e.magnificPopup.defaults,n),t.fixedContentPos="auto"===t.st.fixedContentPos?!t.probablyMobile:t.st.fixedContentPos,t.items=n.items.length?n.items:[n.items],t.bgOverlay||(t.bgOverlay=b("bg").on("click"+m,function(){t.close()}),t.wrap=b("wrap").attr("tabindex",-1).on("click"+m,function(n){var i=n.target;e(i).hasClass(h)||(t.st.closeOnContentClick?t.close():(!t.content||e(i).hasClass("mfp-close")||t.preloader&&n.target===t.preloader[0]||i!==t.content[0]&&!e.contains(t.content[0],i))&&t.close())}),t.container=b("container",t.wrap)),t.contentContainer=b("content"),t.st.preloader&&(t.preloader=b("preloader",t.container,t.st.tLoading));var c=e.magnificPopup.modules;for(o=0;c.length>o;o++){var p=c[o];p=p.charAt(0).toUpperCase()+p.slice(1),t["init"+p].call(t)}x("BeforeOpen"),t.st.closeBtnInside?(w(d,function(e,t,n,i){n.close_replaceWith=k(i.type)}),r+=" mfp-close-btn-in"):t.wrap.append(k()),t.st.alignTop&&(r+=" mfp-align-top"),t.fixedContentPos?t.wrap.css({overflow:t.st.overflowY,overflowX:"hidden",overflowY:t.st.overflowY}):t.wrap.css({top:y.scrollTop(),position:"absolute"}),(t.st.fixedBgPos===!1||"auto"===t.st.fixedBgPos&&!t.fixedContentPos)&&t.bgOverlay.css({height:a.height(),position:"absolute"}),a.on("keyup"+m,function(e){27===e.keyCode&&t.close()}),y.on("resize"+m,function(){t.updateSize()}),t.st.closeOnContentClick||(r+=" mfp-auto-cursor"),r&&t.wrap.addClass(r);var f=t.wH=y.height(),v={};if(t.fixedContentPos&&"scroll"!==t.st.overflowY){var C=t._getScrollbarSize();C&&(v.paddingRight=C)}t.fixedContentPos&&(t.isIE7?e("body, html").css("overflow","hidden"):v.overflow="hidden");var P=t.st.mainClass;t.isIE7&&(P+=" mfp-ie7"),P&&t._addClassToMFP(P),t.updateItemHTML(),x("BuildControls"),i.css(v),t.bgOverlay.add(t.wrap).prependTo(document.body),t._lastFocusedEl=document.activeElement,setTimeout(function(){t.content?(t._addClassToMFP(g),I()):t.bgOverlay.addClass(g),a.on("focusin"+m,function(n){return n.target===t.wrap[0]||e.contains(t.wrap[0],n.target)?void 0:(I(),!1)})},16),t.isOpen=!0,t.updateSize(f),x(u)}},close:function(){t.isOpen&&(t.isOpen=!1,t.st.removalDelay?(t._addClassToMFP(v),setTimeout(function(){t._close()},t.st.removalDelay)):t._close())},_close:function(){x(l);var n=v+" "+g+" ";if(t.bgOverlay.detach(),t.wrap.detach(),t.container.empty(),t.st.mainClass&&(n+=t.st.mainClass+" "),t._removeClassFromMFP(n),t.fixedContentPos){var o={paddingRight:0};t.isIE7?e("body, html").css("overflow","auto"):o.overflow="visible",i.css(o)}a.off("keyup"+m+" focusin"+m),t.ev.off(m),t.wrap.attr("class","mfp-wrap").removeAttr("style"),t.bgOverlay.attr("class","mfp-bg"),t.container.attr("class","mfp-container"),t.st.closeBtnInside&&t.currTemplate[t.currItem.type]!==!0||t.currTemplate.closeBtn&&t.currTemplate.closeBtn.detach(),t._lastFocusedEl&&e(t._lastFocusedEl).focus(),t.content=null,t.currTemplate=null,t.prevHeight=0},updateSize:function(e){if(t.isIOS){var n=document.documentElement.clientWidth/window.innerWidth,i=window.innerHeight*n;t.wrap.css("height",i),t.wH=i}else t.wH=e||y.height();x("Resize")},updateItemHTML:function(){var n=t.items[t.index];t.contentContainer.detach(),t.content&&t.content.detach(),n.parsed||(n=t.parseEl(t.index)),t.currItem=n;var i=n.type;if(!t.currTemplate[i]){var a=t.st[i]?t.st[i].markup:!1;x("FirstMarkupParse",a),t.currTemplate[i]=a?e(a):!0}o&&o!==n.type&&t.container.removeClass("mfp-"+o+"-holder");var r=t["get"+i.charAt(0).toUpperCase()+i.slice(1)](n,t.currTemplate[i]);t.appendContent(r,i),n.preloaded=!0,x(p,n),o=n.type,t.container.prepend(t.contentContainer)},appendContent:function(e,n){t.content=e,e?t.st.closeBtnInside&&t.currTemplate[n]===!0?t.content.find(".mfp-close").length||t.content.append(k()):t.content=e:t.content="",x(c),t.container.addClass("mfp-"+n+"-holder"),t.contentContainer.append(t.content)},parseEl:function(n){var i=t.items[n],a=i.type;if(i=i.tagName?{el:e(i)}:{data:i,src:i.src},i.el){for(var o=t.types,r=0;o.length>r;r++)if(i.el.hasClass("mfp-"+o[r])){a=o[r];break}i.src=i.el.attr("data-mfp-src"),i.src||(i.src=i.el.attr("href"))}return i.type=a||t.st.type,i.index=n,i.parsed=!0,t.items[n]=i,x("ElementParse",i),t.items[n]},addGroup:function(n,i){var a=function(a){var o=void 0!==i.midClick?i.midClick:e.magnificPopup.defaults.midClick;if(o||2!==a.which){var r=void 0!==i.disableOn?i.disableOn:e.magnificPopup.defaults.disableOn;if(r)if(e.isFunction(r)){if(!r.call(t))return!0}else if(r>e(window).width())return!0;a.preventDefault(),i.el=e(this),i.mainEl=n,i.delegate&&(i.items=n.find(i.delegate)),t.open(i)}};i||(i={});var o="click.magnificPopup";i.items?(i.isObj=!0,n.off(o).on(o,a)):(i.isObj=!1,i.delegate?n.off(o).on(o,i.delegate,a):(i.items=n,n.off(o).on(o,a)))},updateStatus:function(e,i){if(t.preloader){n!==e&&t.container.removeClass("mfp-s-"+n),i||"loading"!==e||(i=t.st.tLoading);var a={status:e,text:i};x("UpdateStatus",a),e=a.status,i=a.text,t.preloader.html(i),t.preloader.find("a").click(function(e){e.stopImmediatePropagation()}),t.container.addClass("mfp-s-"+e),n=e}},_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 document.body.clientHeight>(e||y.height())?!0:!1},_parseMarkup:function(t,n,i){var a;i.data&&(n=e.extend(i.data,n)),x(d,[t,n,i]),e.each(n,function(e,n){if(void 0===n||n===!1)return!0;if(a=e.split("_"),a.length>1){var i=t.find(m+"-"+a[0]);if(i.length>0){var o=a[1];"replaceWith"===o?i[0]!==n[0]&&i.replaceWith(n):"img"===o?i.is("img")?i.attr("src",n):i.replaceWith(''):i.attr(a[1],n)}}else t.find(m+"-"+e).html(n)})},_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:C.prototype,modules:[],open:function(n,i){return e.magnificPopup.instance||(t=new C,t.init(),e.magnificPopup.instance=t),n||(n={}),n.isObj=!0,n.index=void 0===i?0:i,this.instance.open(n)},close:function(){return e.magnificPopup.instance.close()},registerModule:function(t,n){n.options&&(e.magnificPopup.defaults[t]=n.options),e.extend(this.proto,n.proto),this.modules.push(t)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeBtnInside:!0,alignTop:!1,removalDelay:0,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'',tClose:"Close (Esc)",tLoading:"Loading..."}},e.fn.magnificPopup=function(n){return e.magnificPopup.instance||(t=new C,t.init(),e.magnificPopup.instance=t),t.addGroup(e(this),n),e(this)};var P,S="inline";e.magnificPopup.registerModule(S,{options:{hiddenClass:f+"-hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){t.types.push(S),P=!1,w(l+"."+S,function(){var e=t.currItem;if(e.type===S){if(P)for(var n=0;t.items.length>n;n++)e=t.items[n],e&&e.inlinePlaceholder&&e.inlinePlaceholder.after(e.inlineElement.addClass(t.st.inline.hiddenClass)).detach();e.inlinePlaceholder=e.inlineElement=null}})},getInline:function(n,i){if(t.updateStatus("ready"),n.src){var a=t.st.inline;return"string"!=typeof n.src&&(n.isElement=!0),n.isElement||n.inlinePlaceholder||(n.inlinePlaceholder=b(a.hiddenClass)),n.isElement?n.inlineElement=n.src:n.inlineElement||(n.inlineElement=e(n.src),n.inlineElement.length||(t.updateStatus("error",a.tNotFound),n.inlineElement=e("
"))),n.inlinePlaceholder&&(P=!0),n.inlineElement.after(n.inlinePlaceholder).detach().removeClass(a.hiddenClass),n.inlineElement}return t._parseMarkup(i,{},n),i}}});var E,T="ajax",M=function(){E&&i.removeClass(E)};e.magnificPopup.registerModule(T,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'The content could not be loaded.'},proto:{initAjax:function(){t.types.push(T),E=t.st.ajax.cursor,w(l+"."+T,function(){M(),t.req&&t.req.abort()})},getAjax:function(n){E&&i.addClass(E),t.updateStatus("loading");var a=e.extend({url:n.src,success:function(i,a,o){x("ParseAjax",o),t.appendContent(e(o.responseText),T),n.finished=!0,M(),I(),setTimeout(function(){t.wrap.addClass(g)},16),t.updateStatus("ready")},error:function(){M(),n.finished=n.loadError=!0,t.updateStatus("error",t.st.ajax.tError.replace("%url%",n.src))}},t.st.ajax.settings);return t.req=e.ajax(a),""}}});var O,_=function(n){if(n.data&&void 0!==n.data.title)return n.data.title;var i=t.st.image.titleSrc;if(i){if(e.isFunction(i))return i.call(t,n);if(n.el)return n.el.attr(i)||""}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,n=".image";t.types.push("image"),w(u+n,function(){"image"===t.currItem.type&&e.cursor&&i.addClass(e.cursor)}),w(l+n,function(){e.cursor&&i.removeClass(e.cursor),y.off("resize"+m)}),w("Resize"+n,function(){t.resizeImage()})},resizeImage:function(){var e=t.currItem;e.img&&t.st.image.verticalFit&&e.img.css("max-height",t.wH+"px")},_onImageHasSize:function(e){e.img&&(e.hasSize=!0,O&&clearInterval(O),e.isCheckingImgSize=!1,x("ImageHasSize",e),e.imgHidden&&(t.content&&t.content.removeClass("mfp-loading"),e.imgHidden=!1))},findImageSize:function(e){var n=0,i=e.img[0],a=function(o){O&&clearInterval(O),O=setInterval(function(){return i.naturalWidth>0?(t._onImageHasSize(e),void 0):(n>200&&clearInterval(O),n++,3===n?a(10):40===n?a(50):100===n&&a(500),void 0)},o)};a(1)},getImage:function(n,i){var a=0,o=function(){n&&(n.img[0].complete?(n.img.off(".mfploader"),n===t.currItem&&(t._onImageHasSize(n),t.updateStatus("ready")),n.hasSize=!0,n.loaded=!0):(a++,200>a?setTimeout(o,100):r()))},r=function(){n&&(n.img.off(".mfploader"),n===t.currItem&&(t._onImageHasSize(n),t.updateStatus("error",s.tError.replace("%url%",n.src))),n.hasSize=!0,n.loaded=!0,n.loadError=!0)},s=t.st.image,l=i.find(".mfp-img");if(l.length){var c=new Image;c.className="mfp-img",n.img=e(c).on("load.mfploader",o).on("error.mfploader",r),c.src=n.src,l.is("img")&&(n.img=n.img.clone())}return t._parseMarkup(i,{title:_(n),img_replaceWith:n.img},n),t.resizeImage(),n.hasSize?(O&&clearInterval(O),n.loadError?(i.addClass("mfp-loading"),t.updateStatus("error",s.tError.replace("%url%",n.src))):(i.removeClass("mfp-loading"),t.updateStatus("ready")),i):(t.updateStatus("loading"),n.loading=!0,n.hasSize||(n.imgHidden=!0,i.addClass("mfp-loading"),t.findImageSize(n)),i)}}});var z="iframe",F=function(e){if(t.isIE7&&t.currItem&&t.currItem.type===z){var n=t.content.find("iframe");n.length&&n.css("display",e?"block":"none")}};e.magnificPopup.registerModule(z,{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(z),F(!0),w(l+"."+z,function(){F()})},getIframe:function(n,i){var a=n.src,o=t.st.iframe;e.each(o.patterns,function(){return a.indexOf(this.index)>-1?(this.id&&(a="string"==typeof this.id?a.substr(a.lastIndexOf(this.id)+this.id.length,a.length):this.id.call(this,a)),a=this.src.replace("%id%",a),!1):void 0});var r={};return o.srcAction&&(r[o.srcAction]=a),t._parseMarkup(i,r,n),t.updateStatus("ready"),i}}});var H=function(e){var n=t.items.length;return e>n-1?e-n:0>e?n+e:e},B=function(e,t,n){return e.replace("%curr%",t+1).replace("%total%",n)};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 n=t.st.gallery,i=".mfp-gallery",o=Boolean(e.fn.mfpFastClick);return t.direction=!0,n&&n.enabled?(r+=" mfp-gallery",w(u+i,function(){n.navigateByImgClick&&t.wrap.on("click"+i,".mfp-img",function(){return t.next(),!1}),a.on("keydown"+i,function(e){37===e.keyCode?t.prev():39===e.keyCode&&t.next()})}),w("UpdateStatus"+i,function(e,n){n.text&&(n.text=B(n.text,t.currItem.index,t.items.length))}),w(d+i,function(e,i,a,o){var r=t.items.length;a.counter=r?B(n.tCounter,o.index,r):""}),w("BuildControls"+i,function(){if(n.arrows&&!t.arrowLeft){var i=n.arrowMarkup,a=t.arrowLeft=e(i.replace("%title%",n.tPrev).replace("%dir%","left")).addClass(h),r=t.arrowRight=e(i.replace("%title%",n.tNext).replace("%dir%","right")).addClass(h),s=o?"mfpFastClick":"click";a[s](function(){t.prev()}),r[s](function(){t.next()}),t.isIE7&&(b("b",a[0],!1,!0),b("a",a[0],!1,!0),b("b",r[0],!1,!0),b("a",r[0],!1,!0)),t.container.append(a.add(r))}}),w(p+i,function(){t._preloadTimeout&&clearTimeout(t._preloadTimeout),t._preloadTimeout=setTimeout(function(){t.preloadNearbyImages(),t._preloadTimeout=null},16)}),w(l+i,function(){a.off(i),t.wrap.off("click"+i),o&&t.arrowLeft.add(t.arrowRight).destroyMfpFastClick(),t.arrowRight=t.arrowLeft=null}),void 0):!1},next:function(){t.direction=!0,t.index=H(t.index+1),t.updateItemHTML()},prev:function(){t.direction=!1,t.index=H(t.index-1),t.updateItemHTML()},goTo:function(e){t.direction=e>=t.index,t.index=e,t.updateItemHTML()},preloadNearbyImages:function(){var e,n=t.st.gallery.preload,i=Math.min(n[0],t.items.length),a=Math.min(n[1],t.items.length);for(e=1;(t.direction?a:i)>=e;e++)t._preloadItem(t.index+e);for(e=1;(t.direction?i:a)>=e;e++)t._preloadItem(t.index-e)},_preloadItem:function(n){if(n=H(n),!t.items[n].preloaded){var i=t.items[n];i.parsed||(i=t.parseEl(n)),x("LazyLoad",i),"image"===i.type&&(i.img=e('').on("load.mfploader",function(){i.hasSize=!0}).on("error.mfploader",function(){i.hasSize=!0,i.loadError=!0}).attr("src",i.src)),i.preloaded=!0}}}});var L="retina";e.magnificPopup.registerModule(L,{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,n=e.ratio;n=isNaN(n)?n():n,n>1&&(w("ImageHasSize."+L,function(e,t){t.img.css({"max-width":t.img[0].naturalWidth/n,width:"100%"})}),w("ElementParse."+L,function(t,i){i.src=e.replaceSrc(i,n)}))}}}}),function(){var t=1e3,n="ontouchstart"in window,i=function(){y.off("touchmove"+o+" touchend"+o)},a="mfpFastClick",o="."+a;e.fn.mfpFastClick=function(a){return e(this).each(function(){var r,s=e(this);if(n){var l,c,d,u,p,f;s.on("touchstart"+o,function(e){u=!1,f=1,p=e.originalEvent?e.originalEvent.touches[0]:e.touches[0],c=p.clientX,d=p.clientY,y.on("touchmove"+o,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,i())}).on("touchend"+o,function(e){i(),u||f>1||(r=!0,e.preventDefault(),clearTimeout(l),l=setTimeout(function(){r=!1},t),a())})})}s.on("click"+o,function(){r||a()})})},e.fn.destroyMfpFastClick=function(){e(this).off("touchstart"+o+" click"+o),n&&y.off("touchmove"+o+" touchend"+o)}}()})(window.jQuery||window.Zepto); \ No newline at end of file diff --git a/magnific-popup.jquery.json b/magnific-popup.jquery.json index fd7b19cf..41815bb0 100644 --- a/magnific-popup.jquery.json +++ b/magnific-popup.jquery.json @@ -2,7 +2,7 @@ "name": "magnific-popup", "title": "Magnific Popup", "description": "Fast, light and responsive lightbox plugin with focus on performance", - "version": "0.8.2", + "version": "0.8.3", "homepage": "http://dimsemenov.com/plugins/magnific-popup/", "demo": "http://dimsemenov.com/plugins/magnific-popup/", "docs": "http://dimsemenov.com/plugins/magnific-popup/documentation.html", diff --git a/src/js/core.js b/src/js/core.js index 73ab7529..b99e52b3 100644 --- a/src/js/core.js +++ b/src/js/core.js @@ -296,10 +296,10 @@ MagnificPopup.prototype = { // add content mfp.updateItemHTML(); - // remove scrollbar, add padding e.t.c - + _mfpTrigger('BuildControls'); + // remove scrollbar, add padding e.t.c _body.css(bodyStyles); // add everything to DOM @@ -400,6 +400,7 @@ MagnificPopup.prototype = { if(mfp._lastFocusedEl) { $(mfp._lastFocusedEl).focus(); // put tab focus back } + mfp.content = null; mfp.currTemplate = null; mfp.prevHeight = 0; }, @@ -428,8 +429,13 @@ MagnificPopup.prototype = { 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 ); } @@ -439,8 +445,11 @@ MagnificPopup.prototype = { var type = item.type; if(!mfp.currTemplate[type]) { var markup = mfp.st[type] ? mfp.st[type].markup : false; + + // allows to modify markup + _mfpTrigger('FirstMarkupParse', markup); + if(markup) { - _mfpTrigger('FirstMarkupParse', markup); mfp.currTemplate[type] = $(markup); } else { // if there is no markup found we just define that template is parsed @@ -487,7 +496,7 @@ MagnificPopup.prototype = { _mfpTrigger(BEFORE_APPEND_EVENT); mfp.container.addClass('mfp-'+type+'-holder'); - mfp.contentContainer.html(mfp.content); + mfp.contentContainer.append(mfp.content); }, @@ -559,6 +568,7 @@ MagnificPopup.prototype = { e.preventDefault(); options.el = $(this); + options.mainEl = el; if(options.delegate) { options.items = el.find(options.delegate); } diff --git a/src/js/gallery.js b/src/js/gallery.js index 41177287..e1ac0cb7 100644 --- a/src/js/gallery.js +++ b/src/js/gallery.js @@ -70,17 +70,8 @@ $.magnificPopup.registerModule('gallery', { values.counter = l ? _replaceCurrTotal(gSt.tCounter, item.index, l) : ''; }); - _mfpOn(CHANGE_EVENT+ns, function() { - - if(mfp._preloadTimeout) clearTimeout(mfp._preloadTimeout); - - mfp._preloadTimeout = setTimeout(function() { - mfp.preloadNearbyImages(); - mfp._preloadTimeout = null; - }, 16); - + _mfpOn('BuildControls' + ns, function() { if(gSt.arrows && !mfp.arrowLeft) { - var markup = gSt.arrowMarkup, arrowLeft = mfp.arrowLeft = $( markup.replace('%title%', gSt.tPrev).replace('%dir%', 'left') ).addClass(PREVENT_CLOSE_CLASS), arrowRight = mfp.arrowRight = $( markup.replace('%title%', gSt.tNext).replace('%dir%', 'right') ).addClass(PREVENT_CLOSE_CLASS); @@ -105,6 +96,15 @@ $.magnificPopup.registerModule('gallery', { } }); + _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); @@ -127,6 +127,11 @@ $.magnificPopup.registerModule('gallery', { 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), diff --git a/src/js/image.js b/src/js/image.js index 0f02b842..42c067a8 100644 --- a/src/js/image.js +++ b/src/js/image.js @@ -77,7 +77,9 @@ $.magnificPopup.registerModule('image', { _mfpTrigger('ImageHasSize', item); if(item.imgHidden) { - mfp.content.removeClass('mfp-loading'); + if(mfp.content) + mfp.content.removeClass('mfp-loading'); + item.imgHidden = false; } diff --git a/website/_config.yml b/website/_config.yml index bd9180d1..aeede779 100644 --- a/website/_config.yml +++ b/website/_config.yml @@ -6,4 +6,4 @@ exclude: [".json", ".rvmrc", ".rbenv-version", "README.md", "Rakefile", "changel auto: true pygments: true -mfpversion: 0.8.2 \ No newline at end of file +mfpversion: 0.8.3 \ No newline at end of file diff --git a/website/documentation.md b/website/documentation.md index 3cc6add2..3aaa7c7f 100644 --- a/website/documentation.md +++ b/website/documentation.md @@ -740,7 +740,7 @@ $('.image-link').magnificPopup({ // Name of event should start from `mfp` and the first letter should be uppercase. // e.g. 'open' becomes 'mfpOpen', 'beforeOpen' becomes 'mfpBeforeOpen'. $('.image-link').on('mfpOpen', function(e /*, params */) { - console.log('Popup opened'); + console.log('Popup opened', $.magnificPopup.instance); }); {% endhighlight %} @@ -828,6 +828,7 @@ magnificPopup.close(); // Navigation when gallery is enabled magnificPopup.next(); // go to next item magnificPopup.prev(); // go to prev item +magnificPopup.goTo(4); // go to item #4 // Update status of popup