")}t.inlineElement=i;return i}c.updateStatus("ready");c._parseMarkup(n,{},t);return n}}});var D="ajax",P,H=function(){if(P){m.removeClass(P)}};e.magnificPopup.registerModule(D,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'
The content could not be loaded.'},proto:{initAjax:function(){c.types.push(D);P=c.st.ajax.cursor;E(t+"."+D,function(){H();if(c.req){c.req.abort()}})},getAjax:function(t){if(P)m.addClass(P);c.updateStatus("loading");var n=e.extend({url:t.src,success:function(n,r,i){x("ParseAjax",i);c.appendContent(e(i.responseText),D);t.finished=true;H();T();setTimeout(function(){c.wrap.addClass(a)},16);c.updateStatus("ready")},error:function(){H();t.finished=t.loadError=true;c.updateStatus("error",c.st.ajax.tError.replace("%url%",t.src))}},c.st.ajax.settings);c.req=e.ajax(n);return""}}});var B,j=function(t){if(t.data&&t.data.title!==undefined)return t.data.title;var n=c.st.image.titleSrc;if(n){if(e.isFunction(n)){return n.call(c,t)}else if(t.el){return t.el.attr(n)||""}}return""};e.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 e=c.st.image,n=".image";c.types.push("image");E(i+n,function(){if(c.currItem.type==="image"&&e.cursor){m.addClass(e.cursor)}});E(t+n,function(){if(e.cursor){m.removeClass(e.cursor)}v.off("resize"+u)});E("Resize"+n,c.resizeImage);if(c.isLowIE){E("AfterChange",c.resizeImage)}},resizeImage:function(){var e=c.currItem;if(!e.img)return;if(c.st.image.verticalFit){var t=0;if(c.isLowIE){t=parseInt(e.img.css("padding-top"),10)+parseInt(e.img.css("padding-bottom"),10)}e.img.css("max-height",c.wH-t)}},_onImageHasSize:function(e){if(e.img){e.hasSize=true;if(B){clearInterval(B)}e.isCheckingImgSize=false;x("ImageHasSize",e);if(e.imgHidden){if(c.content)c.content.removeClass("mfp-loading");e.imgHidden=false}}},findImageSize:function(e){var t=0,n=e.img[0],r=function(i){if(B){clearInterval(B)}B=setInterval(function(){if(n.naturalWidth>0){c._onImageHasSize(e);return}if(t>200){clearInterval(B)}t++;if(t===3){r(10)}else if(t===40){r(50)}else if(t===100){r(500)}},i)};r(1)},getImage:function(t,n){var r=0,i=function(){if(t){if(t.img[0].complete){t.img.off(".mfploader");if(t===c.currItem){c._onImageHasSize(t);c.updateStatus("ready")}t.hasSize=true;t.loaded=true}else{r++;if(r<200){setTimeout(i,100)}else{s()}}}},s=function(){if(t){t.img.off(".mfploader");if(t===c.currItem){c._onImageHasSize(t);c.updateStatus("error",o.tError.replace("%url%",t.src))}t.hasSize=true;t.loaded=true;t.loadError=true}},o=c.st.image;var u=n.find(".mfp-img");if(u.length){var a=new Image;a.className="mfp-img";t.img=e(a).on("load.mfploader",i).on("error.mfploader",s);a.src=t.src;if(u.is("img")){t.img=t.img.clone()}}c._parseMarkup(n,{title:j(t),img_replaceWith:t.img},t);c.resizeImage();if(t.hasSize){if(B)clearInterval(B);if(t.loadError){n.addClass("mfp-loading");c.updateStatus("error",o.tError.replace("%url%",t.src))}else{n.removeClass("mfp-loading");c.updateStatus("ready")}return n}c.updateStatus("loading");t.loading=true;if(!t.hasSize){t.imgHidden=true;n.addClass("mfp-loading");c.findImageSize(t)}return n}}});var F="iframe",I="//about:blank",q=function(e){if(c.currTemplate[F]){var t=c.currTemplate[F].find("iframe");if(t.length){if(!e){t[0].src=I}if(c.isIE8){t.css("display",e?"block":"none")}}}};e.magnificPopup.registerModule(F,{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(){c.types.push(F);E("BeforeChange",function(e,t,n){if(t!==n){if(t===F){q()}else if(n===F){q(true)}}});E(t+"."+F,q)},getIframe:function(t,n){var r=t.src;var i=c.st.iframe;e.each(i.patterns,function(){if(r.indexOf(this.index)>-1){if(this.id){if(typeof this.id==="string"){r=r.substr(r.lastIndexOf(this.id)+this.id.length,r.length)}else{r=this.id.call(this,r)}}r=this.src.replace("%id%",r);return false}});var s={};if(i.srcAction){s[i.srcAction]=r}c._parseMarkup(n,s,t);c.updateStatus("ready");return n}}});var R=function(e){var t=c.items.length;if(e>t-1){return e-t}else if(e<0){return t+e}return e},U=function(e,t,n){return e.replace("%curr%",t+1).replace("%total%",n)};e.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 n=c.st.gallery,o=".mfp-gallery",u=Boolean(e.fn.mfpFastClick);c.direction=true;if(!n||!n.enabled)return false;b+=" mfp-gallery";E(i+o,function(){if(n.navigateByImgClick){c.wrap.on("click"+o,".mfp-img",function(){c.next();return false})}g.on("keydown"+o,function(e){if(e.keyCode===37){c.prev()}else if(e.keyCode===39){c.next()}})});E("UpdateStatus"+o,function(e,t){if(t.text){t.text=U(t.text,c.currItem.index,c.items.length)}});E(r+o,function(e,t,r,i){var s=c.items.length;r.counter=s?U(n.tCounter,i.index,s):""});E("BuildControls"+o,function(){if(n.arrows&&!c.arrowLeft){var t=n.arrowMarkup,r=c.arrowLeft=e(t.replace("%title%",n.tPrev).replace("%dir%","left")).addClass(l),i=c.arrowRight=e(t.replace("%title%",n.tNext).replace("%dir%","right")).addClass(l);var s=u?"mfpFastClick":"click";r[s](function(){c.prev()});i[s](function(){c.next()});if(c.isIE7){S("b",r[0],false,true);S("a",r[0],false,true);S("b",i[0],false,true);S("a",i[0],false,true)}c.container.append(r.add(i))}});E(s+o,function(){if(c._preloadTimeout)clearTimeout(c._preloadTimeout);c._preloadTimeout=setTimeout(function(){c.preloadNearbyImages();c._preloadTimeout=null},16)});E(t+o,function(){g.off(o);c.wrap.off("click"+o);if(u){c.arrowLeft.add(c.arrowRight).destroyMfpFastClick()}c.arrowRight=c.arrowLeft=null})},next:function(){c.direction=true;c.index=R(c.index+1);c.updateItemHTML()},prev:function(){c.direction=false;c.index=R(c.index-1);c.updateItemHTML()},goTo:function(e){c.direction=e>=c.index;c.index=e;c.updateItemHTML()},preloadNearbyImages:function(){var e=c.st.gallery.preload,t=Math.min(e[0],c.items.length),n=Math.min(e[1],c.items.length),r;for(r=1;r<=(c.direction?n:t);r++){c._preloadItem(c.index+r)}for(r=1;r<=(c.direction?t:n);r++){c._preloadItem(c.index-r)}},_preloadItem:function(t){t=R(t);if(c.items[t].preloaded){return}var n=c.items[t];if(!n.parsed){n=c.parseEl(t)}x("LazyLoad",n);if(n.type==="image"){n.img=e('
').on("load.mfploader",function(){n.hasSize=true}).on("error.mfploader",function(){n.hasSize=true;n.loadError=true}).attr("src",n.src)}n.preloaded=true}}});var z="retina";e.magnificPopup.registerModule(z,{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=c.st.retina,t=e.ratio;t=!isNaN(t)?t:t();if(t>1){E("ImageHasSize"+"."+z,function(e,n){n.img.css({"max-width":n.img[0].naturalWidth/t,width:"100%"})});E("ElementParse"+"."+z,function(n,r){r.src=e.replaceSrc(r,t)})}}}}});(function(){var t=1e3,n="ontouchstart"in window,r=function(){v.off("touchmove"+s+" touchend"+s)},i="mfpFastClick",s="."+i;e.fn.mfpFastClick=function(i){return e(this).each(function(){var o=e(this),u;if(n){var a,f,l,c,h,p;o.on("touchstart"+s,function(e){c=false;p=1;h=e.originalEvent?e.originalEvent.touches[0]:e.touches[0];f=h.clientX;l=h.clientY;v.on("touchmove"+s,function(e){h=e.originalEvent?e.originalEvent.touches:e.touches;p=h.length;h=h[0];if(Math.abs(h.clientX-f)>10||Math.abs(h.clientY-l)>10){c=true;r()}}).on("touchend"+s,function(e){r();if(c||p>1){return}u=true;e.preventDefault();clearTimeout(a);a=setTimeout(function(){u=false},t);i()})})}o.on("click"+s,function(){if(!u){i()}})})};e.fn.destroyMfpFastClick=function(){e(this).off("touchstart"+s+" click"+s);if(n)v.off("touchmove"+s+" touchend"+s)}})()})(window.jQuery||window.Zepto);$(function(){$("article").fitVids()});$(function(){$(".toc h3").click(function(){$("#drawer").toggleClass("hidden")})});$("a[href$='.jpg'],a[href$='.png'],a[href$='.gif']").addClass("image-popup");$(document).ready(function(){$(".image-popup").magnificPopup({type:"image",tLoading:"Loading image #%curr%...",gallery:{enabled:true,navigateByImgClick:true,preload:[0,1]},image:{tError:'
Image #%curr% could not be loaded.'},removalDelay:300,mainClass:"mfp-fade"})})