1var mod_pagespeed_1DkBPKTIgw = "/*!\n * Fotorama 4.6.4 | http://fotorama.io/license/\n */\nfotoramaVersion=\"4.6.4\",function(a,b,c,d,e){\"use strict\";function f(a){var b=\"bez_\"+d.makeArray(arguments).join(\"_\").replace(\".\",\"p\");if(\"function\"!=typeof d.easing[b]){var c=function(a,b){var c=[null,null],d=[null,null],e=[null,null],f=function(f,g){return e[g]=3*a[g],d[g]=3*(b[g]-a[g])-e[g],c[g]=1-e[g]-d[g],f*(e[g]+f*(d[g]+f*c[g]))},g=function(a){return e[0]+a*(2*d[0]+3*c[0]*a)},h=function(a){for(var b,c=a,d=0;++d<14&&(b=f(c,0)-a,!(Math.abs(b)<.001));)c-=b/g(c);return c};return function(a){return f(h(a),1)}};d.easing[b]=function(b,d,e,f,g){return f*c([a[0],a[1]],[a[2],a[3]])(d/g)+e}}return b}function g(){}function h(a,b,c){return Math.max(isNaN(b)?-1/0:b,Math.min(isNaN(c)?1/0:c,a))}function i(a){return a.match(/ma/)&&a.match(/-?\\d+(?!d)/g)[a.match(/3d/)?12:4]}function j(a){return Ic?+i(a.css(\"transform\")):+a.css(\"left\").replace(\"px\",\"\")}function k(a){var b={};return Ic?b.transform=\"translate3d(\"+a+\"px,0,0)\":b.left=a,b}function l(a){return{\"transition-duration\":a+\"ms\"}}function m(a,b){return isNaN(a)?b:a}function n(a,b){return m(+String(a).replace(b||\"px\",\"\"))}function o(a){return/%$/.test(a)?n(a,\"%\"):e}function p(a,b){return m(o(a)/100*b,n(a))}function q(a){return(!isNaN(n(a))||!isNaN(n(a,\"%\")))&&a}function r(a,b,c,d){return(a-(d||0))*(b+(c||0))}function s(a,b,c,d){return-Math.round(a/(b+(c||0))-(d||0))}function t(a){var b=a.data();if(!b.tEnd){var c=a[0],d={WebkitTransition:\"webkitTransitionEnd\",MozTransition:\"transitionend\",OTransition:\"oTransitionEnd otransitionend\",msTransition:\"MSTransitionEnd\",transition:\"transitionend\"};T(c,d[uc.prefixed(\"transition\")],function(a){b.tProp&&a.propertyName.match(b.tProp)&&b.onEndFn()}),b.tEnd=!0}}function u(a,b,c,d){var e,f=a.data();f&&(f.onEndFn=function(){e||(e=!0,clearTimeout(f.tT),c())},f.tProp=b,clearTimeout(f.tT),f.tT=setTimeout(function(){f.onEndFn()},1.5*d),t(a))}function v(a,b){if(a.length){var c=a.data();Ic?(a.css(l(0)),c.onEndFn=g,clearTimeout(c.tT)):a.stop();var d=w(b,function(){return j(a)});return a.css(k(d)),d}}function w(){for(var a,b=0,c=arguments.length;c>b&&(a=b?arguments[b]():arguments[b],\"number\"!=typeof a);b++);return a}function x(a,b){return Math.round(a+(b-a)/1.5)}function y(){return y.p=y.p||(\"https:\"===c.protocol?\"https://\":\"http://\"),y.p}function z(a){var c=b.createElement(\"a\");return c.href=a,c}function A(a,b){if(\"string\"!=typeof a)return a;a=z(a);var c,d;if(a.host.match(/youtube\\.com/)&&a.search){if(c=a.search.split(\"v=\")[1]){var e=c.indexOf(\"&\");-1!==e&&(c=c.substring(0,e)),d=\"youtube\"}}else a.host.match(/youtube\\.com|youtu\\.be/)?(c=a.pathname.replace(/^\\/(embed\\/|v\\/)?/,\"\").replace(/\\/.*/,\"\"),d=\"youtube\"):a.host.match(/vimeo\\.com/)&&(d=\"vimeo\",c=a.pathname.replace(/^\\/(video\\/)?/,\"\").replace(/\\/.*/,\"\"));return c&&d||!b||(c=a.href,d=\"custom\"),c?{id:c,type:d,s:a.search.replace(/^\\?/,\"\"),p:y()}:!1}function B(a,b,c){var e,f,g=a.video;return\"youtube\"===g.type?(f=y()+\"img.youtube.com/vi/\"+g.id+\"/default.jpg\",e=f.replace(/\\/default.jpg$/,\"/hqdefault.jpg\"),a.thumbsReady=!0):\"vimeo\"===g.type?d.ajax({url:y()+\"vimeo.com/api/v2/video/\"+g.id+\".json\",dataType:\"jsonp\",success:function(d){a.thumbsReady=!0,C(b,{img:d[0].thumbnail_large,thumb:d[0].thumbnail_small},a.i,c)}}):a.thumbsReady=!0,{img:e,thumb:f}}function C(a,b,c,e){for(var f=0,g=a.length;g>f;f++){var h=a[f];if(h.i===c&&h.thumbsReady){var i={videoReady:!0};i[Xc]=i[Zc]=i[Yc]=!1,e.splice(f,1,d.extend({},h,i,b));break}}}function D(a){function b(a,b,e){var f=a.children(\"img\").eq(0),g=a.attr(\"href\"),h=a.attr(\"src\"),i=f.attr(\"src\"),j=b.video,k=e?A(g,j===!0):!1;k?g=!1:k=j,c(a,f,d.extend(b,{video:k,img:b.img||g||h||i,thumb:b.thumb||i||h||g}))}function c(a,b,c){var e=c.thumb&&c.img!==c.thumb,f=n(c.width||a.attr(\"width\")),g=n(c.height||a.attr(\"height\"));d.extend(c,{width:f,height:g,thumbratio:S(c.thumbratio||n(c.thumbwidth||b&&b.attr(\"width\")||e||f)/n(c.thumbheight||b&&b.attr(\"height\")||e||g))})}var e=[];return a.children().each(function(){var a=d(this),f=R(d.extend(a.data(),{id:a.attr(\"id\")}));if(a.is(\"a, img\"))b(a,f,!0);else{if(a.is(\":empty\"))return;c(a,null,d.extend(f,{html:this,_html:a.html()}))}e.push(f)}),e}function E(a){return 0===a.offsetWidth&&0===a.offsetHeight}function F(a){return!d.contains(b.documentElement,a)}function G(a,b,c,d){return G.i||(G.i=1,G.ii=[!0]),d=d||G.i,\"undefined\"==typeof G.ii[d]&&(G.ii[d]=!0),a()?b():G.ii[d]&&setTimeout(function(){G.ii[d]&&G(a,b,c,d)},c||100),G.i++}function H(a){c.replace(c.protocol+\"//\"+c.host+c.pathname.replace(/^\\/?/,\"/\")+c.search+\"#\"+a)}function I(a,b,c,d){var e=a.data(),f=e.measures;if(f&&(!e.l||e.l.W!==f.width||e.l.H!==f.height||e.l.r!==f.ratio||e.l.w!==b.w||e.l.h!==b.h||e.l.m!==c||e.l.p!==d)){var g=f.width,i=f.height,j=b.w/b.h,k=f.ratio>=j,l=\"scaledown\"===c,m=\"contain\"===c,n=\"cover\"===c,o=$(d);k&&(l||m)||!k&&n?(g=h(b.w,0,l?g:1/0),i=g/f.ratio):(k&&n||!k&&(l||m))&&(i=h(b.h,0,l?i:1/0),g=i*f.ratio),a.css({width:g,height:i,left:p(o.x,b.w-g),top:p(o.y,b.h-i)}),e.l={W:f.width,H:f.height,r:f.ratio,w:b.w,h:b.h,m:c,p:d}}return!0}function J(a,b){var c=a[0];c.styleSheet?c.styleSheet.cssText=b:a.html(b)}function K(a,b,c){return b===c?!1:b>=a?\"left\":a>=c?\"right\":\"left right\"}function L(a,b,c,d){if(!c)return!1;if(!isNaN(a))return a-(d?0:1);for(var e,f=0,g=b.length;g>f;f++){var h=b[f];if(h.id===a){e=f;break}}return e}function M(a,b,c){c=c||{},a.each(function(){var a,e=d(this),f=e.data();f.clickOn||(f.clickOn=!0,d.extend(cb(e,{onStart:function(b){a=b,(c.onStart||g).call(this,b)},onMove:c.onMove||g,onTouchEnd:c.onTouchEnd||g,onEnd:function(c){c.moved||b.call(this,a)}}),{noMove:!0}))})}function N(a,b){return'<div class=\"'+a+'\">'+(b||\"\")+\"</div>\"}function O(a){for(var b=a.length;b;){var c=Math.floor(Math.random()*b--),d=a[b];a[b]=a[c],a[c]=d}return a}function P(a){return\"[object Array]\"==Object.prototype.toString.call(a)&&d.map(a,function(a){return d.extend({},a)})}function Q(a,b,c){a.scrollLeft(b||0).scrollTop(c||0)}function R(a){if(a){var b={};return d.each(a,function(a,c){b[a.toLowerCase()]=c}),b}}function S(a){if(a){var b=+a;return isNaN(b)?(b=a.split(\"/\"),+b[0]/+b[1]||e):b}}function T(a,b,c,d){b&&(a.addEventListener?a.addEventListener(b,c,!!d):a.attachEvent(\"on\"+b,c))}function U(a){return!!a.getAttribute(\"disabled\")}function V(a){return{tabindex:-1*a+\"\",disabled:a}}function W(a,b){T(a,\"keyup\",function(c){U(a)||13==c.keyCode&&b.call(a,c)})}function X(a,b){T(a,\"focus\",a.onfocusin=function(c){b.call(a,c)},!0)}function Y(a,b){a.preventDefault?a.preventDefault():a.returnValue=!1,b&&a.stopPropagation&&a.stopPropagation()}function Z(a){return a?\">\":\"<\"}function $(a){return a=(a+\"\").split(/\\s+/),{x:q(a[0])||bd,y:q(a[1])||bd}}function _(a,b){var c=a.data(),e=Math.round(b.pos),f=function(){c.sliding=!1,(b.onEnd||g)()};\"undefined\"!=typeof b.overPos&&b.overPos!==b.pos&&(e=b.overPos,f=function(){_(a,d.extend({},b,{overPos:b.pos,time:Math.max(Qc,b.time/2)}))});
1var h=d.extend(k(e),b.width&&{width:b.width});c.sliding=!0,Ic?(a.css(d.extend(l(b.time),h)),b.time>10?u(a,\"transform\",f,b.time):f()):a.stop().animate(h,b.time,_c,f)}function ab(a,b,c,e,f,h){var i=\"undefined\"!=typeof h;if(i||(f.push(arguments),Array.prototype.push.call(arguments,f.length),!(f.length>1))){a=a||d(a),b=b||d(b);var j=a[0],k=b[0],l=\"crossfade\"===e.method,m=function(){if(!m.done){m.done=!0;var a=(i||f.shift())&&f.shift();a&&ab.apply(this,a),(e.onEnd||g)(!!a)}},n=e.time/(h||1);c.removeClass(Rb+\" \"+Qb),a.stop().addClass(Rb),b.stop().addClass(Qb),l&&k&&a.fadeTo(0,0),a.fadeTo(l?n:0,1,l&&m),b.fadeTo(n,0,m),j&&l||k||m()}}function bb(a){var b=(a.touches||[])[0]||a;a._x=b.pageX,a._y=b.clientY,a._now=d.now()}function cb(a,c){function e(a){return m=d(a.target),u.checked=p=q=s=!1,k||u.flow||a.touches&&a.touches.length>1||a.which>1||ed&&ed.type!==a.type&&gd||(p=c.select&&m.is(c.select,t))?p:(o=\"touchstart\"===a.type,q=m.is(\"a, a *\",t),n=u.control,r=u.noMove||u.noSwipe||n?16:u.snap?0:4,bb(a),l=ed=a,fd=a.type.replace(/down|start/,\"move\").replace(/Down/,\"Move\"),(c.onStart||g).call(t,a,{control:n,$target:m}),k=u.flow=!0,void((!o||u.go)&&Y(a)))}function f(a){if(a.touches&&a.touches.length>1||Nc&&!a.isPrimary||fd!==a.type||!k)return k&&h(),void(c.onTouchEnd||g)();bb(a);var b=Math.abs(a._x-l._x),d=Math.abs(a._y-l._y),e=b-d,f=(u.go||u.x||e>=0)&&!u.noSwipe,i=0>e;o&&!u.checked?(k=f)&&Y(a):(Y(a),(c.onMove||g).call(t,a,{touch:o})),!s&&Math.sqrt(Math.pow(b,2)+Math.pow(d,2))>r&&(s=!0),u.checked=u.checked||f||i}function h(a){(c.onTouchEnd||g)();var b=k;u.control=k=!1,b&&(u.flow=!1),!b||q&&!u.checked||(a&&Y(a),gd=!0,clearTimeout(hd),hd=setTimeout(function(){gd=!1},1e3),(c.onEnd||g).call(t,{moved:s,$target:m,control:n,touch:o,startEvent:l,aborted:!a||\"MSPointerCancel\"===a.type}))}function i(){u.flow||setTimeout(function(){u.flow=!0},10)}function j(){u.flow&&setTimeout(function(){u.flow=!1},Pc)}var k,l,m,n,o,p,q,r,s,t=a[0],u={};return Nc?(T(t,\"MSPointerDown\",e),T(b,\"MSPointerMove\",f),T(b,\"MSPointerCancel\",h),T(b,\"MSPointerUp\",h)):(T(t,\"touchstart\",e),T(t,\"touchmove\",f),T(t,\"touchend\",h),T(b,\"touchstart\",i),T(b,\"touchend\",j),T(b,\"touchcancel\",j),Ec.on(\"scroll\",j),a.on(\"mousedown\",e),Fc.on(\"mousemove\",f).on(\"mouseup\",h)),a.on(\"click\",\"a\",function(a){u.checked&&Y(a)}),u}function db(a,b){function c(c,d){A=!0,j=l=c._x,q=c._now,p=[[q,j]],m=n=D.noMove||d?0:v(a,(b.getPos||g)()),(b.onStart||g).call(B,c)}function e(a,b){s=D.min,t=D.max,u=D.snap,w=a.altKey,A=z=!1,y=b.control,y||C.sliding||c(a)}function f(d,e){D.noSwipe||(A||c(d),l=d._x,p.push([d._now,l]),n=m-(j-l),o=K(n,s,t),s>=n?n=x(n,s):n>=t&&(n=x(n,t)),D.noMove||(a.css(k(n)),z||(z=!0,e.touch||Nc||a.addClass(ec)),(b.onMove||g).call(B,d,{pos:n,edge:o})))}function i(e){if(!D.noSwipe||!e.moved){A||c(e.startEvent,!0),e.touch||Nc||a.removeClass(ec),r=d.now();for(var f,i,j,k,o,q,v,x,y,z=r-Pc,C=null,E=Qc,F=b.friction,G=p.length-1;G>=0;G--){if(f=p[G][0],i=Math.abs(f-z),null===C||j>i)C=f,k=p[G][1];else if(C===z||i>j)break;j=i}v=h(n,s,t);var H=k-l,I=H>=0,J=r-C,K=J>Pc,L=!K&&n!==m&&v===n;u&&(v=h(Math[L?I?\"floor\":\"ceil\":\"round\"](n/u)*u,s,t),s=t=v),L&&(u||v===n)&&(y=-(H/J),E*=h(Math.abs(y),b.timeLow,b.timeHigh),o=Math.round(n+y*E/F),u||(v=o),(!I&&o>t||I&&s>o)&&(q=I?s:t,x=o-q,u||(v=q),x=h(v+.03*x,q-50,q+50),E=Math.abs((n-x)/(y/F)))),E*=w?10:1,(b.onEnd||g).call(B,d.extend(e,{moved:e.moved||K&&u,pos:n,newPos:v,overPos:x,time:E}))}}var j,l,m,n,o,p,q,r,s,t,u,w,y,z,A,B=a[0],C=a.data(),D={};return D=d.extend(cb(b.$wrap,d.extend({},b,{onStart:e,onMove:f,onEnd:i})),D)}function eb(a,b){var c,e,f,h=a[0],i={prevent:{}};return T(h,Oc,function(a){var h=a.wheelDeltaY||-1*a.deltaY||0,j=a.wheelDeltaX||-1*a.deltaX||0,k=Math.abs(j)&&!Math.abs(h),l=Z(0>j),m=e===l,n=d.now(),o=Pc>n-f;e=l,f=n,k&&i.ok&&(!i.prevent[l]||c)&&(Y(a,!0),c&&m&&o||(b.shift&&(c=!0,clearTimeout(i.t),i.t=setTimeout(function(){c=!1},Rc)),(b.onEnd||g)(a,b.shift?l:j)))}),i}function fb(){d.each(d.Fotorama.instances,function(a,b){b.index=a})}function gb(a){d.Fotorama.instances.push(a),fb()}function hb(a){d.Fotorama.instances.splice(a.index,1),fb()}var ib=\"fotorama\",jb=\"fullscreen\",kb=ib+\"__wrap\",lb=kb+\"--css2\",mb=kb+\"--css3\",nb=kb+\"--video\",ob=kb+\"--fade\",pb=kb+\"--slide\",qb=kb+\"--no-controls\",rb=kb+\"--no-sha
1dows\",sb=kb+\"--pan-y\",tb=kb+\"--rtl\",ub=kb+\"--only-active\",vb=kb+\"--no-captions\",wb=kb+\"--toggle-arrows\",xb=ib+\"__stage\",yb=xb+\"__frame\",zb=yb+\"--video\",Ab=xb+\"__shaft\",Bb=ib+\"__grab\",Cb=ib+\"__pointer\",Db=ib+\"__arr\",Eb=Db+\"--disabled\",Fb=Db+\"--prev\",Gb=Db+\"--next\",Hb=ib+\"__nav\",Ib=Hb+\"-wrap\",Jb=Hb+\"__shaft\",Kb=Hb+\"--dots\",Lb=Hb+\"--thumbs\",Mb=Hb+\"__frame\",Nb=Mb+\"--dot\",Ob=Mb+\"--thumb\",Pb=ib+\"__fade\",Qb=Pb+\"-front\",Rb=Pb+\"-rear\",Sb=ib+\"__shadow\",Tb=Sb+\"s\",Ub=Tb+\"--left\",Vb=Tb+\"--right\",Wb=ib+\"__active\",Xb=ib+\"__select\",Yb=ib+\"--hidden\",Zb=ib+\"--fullscreen\",$b=ib+\"__fullscreen-icon\",_b=ib+\"__error\",ac=ib+\"__loading\",bc=ib+\"__loaded\",cc=bc+\"--full\",dc=bc+\"--img\",ec=ib+\"__grabbing\",fc=ib+\"__img\",gc=fc+\"--full\",hc=ib+\"__dot\",ic=ib+\"__thumb\",jc=ic+\"-border\",kc=ib+\"__html\",lc=ib+\"__video\",mc=lc+\"-play\",nc=lc+\"-close\",oc=ib+\"__caption\",pc=ib+\"__caption__wrap\",qc=ib+\"__spinner\",rc='\" tabindex=\"0\" role=\"button',sc=d&&d.fn.jquery.split(\".\");if(!sc||sc[0]<1||1==sc[0]&&sc[1]<8)throw\"Fotorama requires jQuery 1.8 or later and will not run without it.\";var tc={},uc=function(a,b,c){function d(a){r.cssText=a}function e(a,b){return typeof a===b}function f(a,b){return!!~(\"\"+a).indexOf(b)}function g(a,b){for(var d in a){var e=a[d];if(!f(e,\"-\")&&r[e]!==c)return\"pfx\"==b?e:!0}return!1}function h(a,b,d){for(var f in a){var g=b[a[f]];if(g!==c)return d===!1?a[f]:e(g,\"function\")?g.bind(d||b):g}return!1}function i(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),f=(a+\" \"+u.join(d+\" \")+d).split(\" \");return e(b,\"string\")||e(b,\"undefined\")?g(f,b):(f=(a+\" \"+v.join(d+\" \")+d).split(\" \"),h(f,b,c))}var j,k,l,m=\"2.6.2\",n={},o=b.documentElement,p=\"modernizr\",q=b.createElement(p),r=q.style,s=({}.toString,\" -webkit- -moz- -o- -ms- \".split(\" \")),t=\"Webkit Moz O ms\",u=t.split(\" \"),v=t.toLowerCase().split(\" \"),w={},x=[],y=x.slice,z=function(a,c,d,e){var f,g,h,i,j=b.createElement(\"div\"),k=b.body,l=k||b.createElement(\"body\");if(parseInt(d,10))for(;d--;)h=b.createElement(\"div\"),h.id=e?e[d]:p+(d+1),j.appendChild(h);return f=[\"­\",'<style id=\"s',p,'\">',a,\"</style>\"].join(\"\"),j.id=p,(k?j:l).innerHTML+=f,l.appendChild(j),k||(l.style.background=\"\",l.style.overflow=\"hidden\",i=o.style.overflow,o.style.overflow=\"hidden\",o.appendChild(l)),g=c(j,a),k?j.parentNode.removeChild(j):(l.parentNode.removeChild(l),o.style.overflow=i),!!g},A={}.hasOwnProperty;l=e(A,\"undefined\")||e(A.call,\"undefined\")?function(a,b){return b in a&&e(a.constructor.prototype[b],\"undefined\")}:function(a,b){return A.call(a,b)},Function.prototype.bind||(Function.prototype.bind=function(a){var b=this;if(\"function\"!=typeof b)throw new TypeError;var c=y.call(arguments,1),d=function(){if(this instanceof d){var e=function(){};e.prototype=b.prototype;var f=new e,g=b.apply(f,c.concat(y.call(arguments)));return Object(g)===g?g:f}return b.apply(a,c.concat(y.call(arguments)))};return d}),w.csstransforms3d=function(){var a=!!i(\"perspective\");return a};for(var B in w)l(w,B)&&(k=B.toLowerCase(),n[k]=w[B](),x.push((n[k]?\"\":\"no-\")+k));return n.addTest=function(a,b){if(\"object\"==typeof a)for(var d in a)l(a,d)&&n.addTest(d,a[d]);else{if(a=a.toLowerCase(),n[a]!==c)return n;b=\"function\"==typeof b?b():b,\"undefined\"!=typeof enableClasses&&enableClasses&&(o.className+=\" \"+(b?\"\":\"no-\")+a),n[a]=b}return n},d(\"\"),q=j=null,n._version=m,n._prefixes=s,n._domPrefixes=v,n._cssomPrefixes=u,n.testProp=function(a){return g([a])},n.testAllProps=i,n.testStyles=z,n.prefixed=function(a,b,c){return b?i(a,b,c):i(a,\"pfx\")},n}(a,b),vc={ok:!1,is:function(){return!1},request:function(){},cancel:function(){},event:\"\",prefix:\"\"},wc=\"webkit moz o ms khtml\".split(\" \");if(\"undefined\"!=typeof b.cancelFullScreen)vc.ok=!0;else for(var xc=0,yc=wc.length;yc>xc;xc++)if(vc.prefix=wc[xc],\"undefined\"!=typeof b[vc.prefix+\"CancelFullScreen\"]){vc.ok=!0;break}vc.ok&&(vc.event=vc.prefix+\"fullscreenchange\",vc.is=function(){switch(this.prefix){case\"\":return b.fullScreen;case\"webkit\":return b.webkitIsFullScreen;default:return b[this.prefix+\"FullScreen\"]}},vc.request=function(a){return\"\"===this.prefix?a.requestFullScreen():a[this.prefix+\"RequestFullScreen\"]()},vc.cancel=function(){return\"\"===this.prefix?b.cancelFullScreen():b[this.prefix+\"CancelFullScreen\"]()});var zc,Ac={lines:12,length:5,width:2,radius:7,corners:1,rotate:15,color:\"rgba(128, 128, 128, .75)\",hwaccel:!0},Bc={top:\"auto\",left:\"auto\",className:\"\"};!function(a,b){zc=b()}(this,function(){function a(a,c){var d,e=b.createElement(a||\"div\");for(d in c)e[d]=c[d];return e}function c(a){for(var b=1,c=arguments.length;c>b;b++)a.appendChild(arguments[b]);return a}
1function d(a,b,c,d){var e=[\"opacity\",b,~~(100*a),c,d].join(\"-\"),f=.01+c/d*100,g=Math.max(1-(1-a)/b*(100-f),a),h=m.substring(0,m.indexOf(\"Animation\")).toLowerCase(),i=h&&\"-\"+h+\"-\"||\"\";return o[e]||(p.insertRule(\"@\"+i+\"keyframes \"+e+\"{0%{opacity:\"+g+\"}\"+f+\"%{opacity:\"+a+\"}\"+(f+.01)+\"%{opacity:1}\"+(f+b)%100+\"%{opacity:\"+a+\"}100%{opacity:\"+g+\"}}\",p.cssRules.length),o[e]=1),e}function f(a,b){var c,d,f=a.style;for(b=b.charAt(0).toUpperCase()+b.slice(1),d=0;d<n.length;d++)if(c=n[d]+b,f[c]!==e)return c;return f[b]!==e?b:void 0}function g(a,b){for(var c in b)a.style[f(a,c)||c]=b[c];return a}function h(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)a[d]===e&&(a[d]=c[d])}return a}function i(a){for(var b={x:a.offsetLeft,y:a.offsetTop};a=a.offsetParent;)b.x+=a.offsetLeft,b.y+=a.offsetTop;return b}function j(a,b){return\"string\"==typeof a?a:a[b%a.length]}function k(a){return\"undefined\"==typeof this?new k(a):void(this.opts=h(a||{},k.defaults,q))}function l(){function b(b,c){return a(\"<\"+b+' xmlns=\"urn:schemas-microsoft.com:vml\" class=\"spin-vml\">',c)}p.addRule(\".spin-vml\",\"behavior:url(#default#VML)\"),k.prototype.lines=function(a,d){function e(){return g(b(\"group\",{coordsize:k+\" \"+k,coordorigin:-i+\" \"+-i}),{width:k,height:k})}function f(a,f,h){c(m,c(g(e(),{rotation:360/d.lines*a+\"deg\",left:~~f}),c(g(b(\"roundrect\",{arcsize:d.corners}),{width:i,height:d.width,left:d.radius,top:-d.width>>1,filter:h}),b(\"fill\",{color:j(d.color,a),opacity:d.opacity}),b(\"stroke\",{opacity:0}))))}var h,i=d.length+d.width,k=2*i,l=2*-(d.width+d.length)+\"px\",m=g(e(),{position:\"absolute\",top:l,left:l});if(d.shadow)for(h=1;h<=d.lines;h++)f(h,-2,\"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)\");for(h=1;h<=d.lines;h++)f(h);return c(a,m)},k.prototype.opacity=function(a,b,c,d){var e=a.firstChild;d=d.shadow&&d.lines||0,e&&b+d<e.childNodes.length&&(e=e.childNodes[b+d],e=e&&e.firstChild,e=e&&e.firstChild,e&&(e.opacity=c))}}var m,n=[\"webkit\",\"Moz\",\"ms\",\"O\"],o={},p=function(){var d=a(\"style\",{type:\"text/css\"});return c(b.getElementsByTagName(\"head\")[0],d),d.sheet||d.styleSheet}(),q={lines:12,length:7,width:5,radius:10,rotate:0,corners:1,color:\"#000\",direction:1,speed:1,trail:100,opacity:.25,fps:20,zIndex:2e9,className:\"spinner\",top:\"auto\",left:\"auto\",position:\"relative\"};k.defaults={},h(k.prototype,{spin:function(b){this.stop();var c,d,e=this,f=e.opts,h=e.el=g(a(0,{className:f.className}),{position:f.position,width:0,zIndex:f.zIndex}),j=f.radius+f.length+f.width;if(b&&(b.insertBefore(h,b.firstChild||null),d=i(b),c=i(h),g(h,{left:(\"auto\"==f.left?d.x-c.x+(b.offsetWidth>>1):parseInt(f.left,10)+j)+\"px\",top:(\"auto\"==f.top?d.y-c.y+(b.offsetHeight>>1):parseInt(f.top,10)+j)+\"px\"})),h.setAttribute(\"role\",\"progressbar\"),e.lines(h,e.opts),!m){var k,l=0,n=(f.lines-1)*(1-f.direction)/2,o=f.fps,p=o/f.speed,q=(1-f.opacity)/(p*f.trail/100),r=p/f.lines;!function s(){l++;for(var a=0;a<f.lines;a++)k=Math.max(1-(l+(f.lines-a)*r)%p*q,f.opacity),e.opacity(h,a*f.direction+n,k,f);e.timeout=e.el&&setTimeout(s,~~(1e3/o))}()}return e},stop:function(){var a=this.el;return a&&(clearTimeout(this.timeout),a.parentNode&&a.parentNode.removeChild(a),this.el=e),this},lines:function(b,e){function f(b,c){return g(a(),{position:\"absolute\",width:e.length+e.width+\"px\",height:e.width+\"px\",background:b,boxShadow:c,transformOrigin:\"left\",transform:\"rotate(\"+~~(360/e.lines*i+e.rotate)+\"deg) translate(\"+e.radius+\"px,0)\",borderRadius:(e.corners*e.width>>1)+\"px\"})}for(var h,i=0,k=(e.lines-1)*(1-e.direction)/2;i<e.lines;i++)h=g(a(),{position:\"absolute\",top:1+~(e.width/2)+\"px\",transform:e.hwaccel?\"translate3d(0,0,0)\":\"\",opacity:e.opacity,animation:m&&d(e.opacity,e.trail,k+i*e.direction,e.lines)+\" \"+1/e.speed+\"s linear infinite\"}),e.shadow&&c(h,g(f(\"#000\",\"0 0 4px #000\"),{top:\"2px\"})),c(b,c(h,f(j(e.color,i),\"0 0 1px rgba(0,0,0,.1)\")));return b},opacity:function(a,b,c){b<a.childNodes.length&&(a.childNodes[b].style.opacity=c)}});var r=g(a(\"group\"),{behavior:\"url(#default#VML)\"});return!f(r,\"transform\")&&r.adj?l():m=f(r,\"animation\"),k});var Cc,Dc,Ec=d(a),Fc=d(b),Gc=\"quirks\"===c.hash.replace(\"#\",\"\"),Hc=uc.csstransforms3d,Ic=Hc&&!Gc,Jc=Hc||\"CSS1Compat\"===b.compatMode,Kc=vc.ok,Lc=navigator.userAgent.match(/Android|webOS|iPhone|iPad|iPod|BlackBerry|W
1indows Phone/i),Mc=!Ic||Lc,Nc=navigator.msPointerEnabled,Oc=\"onwheel\"in b.createElement(\"div\")?\"wheel\":b.onmousewheel!==e?\"mousewheel\":\"DOMMouseScroll\",Pc=250,Qc=300,Rc=1400,Sc=5e3,Tc=2,Uc=77,Vc=500,Wc=333,Xc=\"$stageFrame\",Yc=\"$navDotFrame\",Zc=\"$navThumbFrame\",$c=\"auto\",_c=f([.1,0,.25,1]),ad=99999,bd=\"50%\",cd={width:null,minwidth:null,maxwidth:\"100%\",height:null,minheight:null,maxheight:null,ratio:null,margin:Tc,glimpse:0,fit:\"contain\",position:bd,thumbposition:bd,nav:\"dots\",navposition:\"bottom\",navwidth:null,thumbwidth:Uc,thumbheight:Uc,thumbmargin:Tc,thumbborderwidth:Tc,thumbfit:\"cover\",allowfullscreen:!1,transition:\"slide\",clicktransition:null,transitionduration:Qc,captions:!0,hash:!1,startindex:0,loop:!1,autoplay:!1,stopautoplayontouch:!0,keyboard:!1,arrows:!0,click:!0,swipe:!0,trackpad:!1,enableifsingleframe:!1,controlsonstart:!0,shuffle:!1,direction:\"ltr\",shadows:!0,spinner:null},dd={left:!0,right:!0,down:!1,up:!1,space:!1,home:!1,end:!1};G.stop=function(a){G.ii[a]=!1};var ed,fd,gd,hd;jQuery.Fotorama=function(a,e){function f(){d.each(yd,function(a,b){if(!b.i){b.i=me++;var c=A(b.video,!0);if(c){var d={};b.video=c,b.img||b.thumb?b.thumbsReady=!0:d=B(b,yd,ie),C(yd,{img:d.img,thumb:d.thumb},b.i,ie)}}})}function g(a){return Zd[a]||ie.fullScreen}function i(a){var b=\"keydown.\"+ib,c=ib+je,d=\"keydown.\"+c,f=\"resize.\"+c+\" orientationchange.\"+c;a?(Fc.on(d,function(a){var b,c;Cd&&27===a.keyCode?(b=!0,md(Cd,!0,!0)):(ie.fullScreen||e.keyboard&&!ie.index)&&(27===a.keyCode?(b=!0,ie.cancelFullScreen()):a.shiftKey&&32===a.keyCode&&g(\"space\")||37===a.keyCode&&g(\"left\")||38===a.keyCode&&g(\"up\")?c=\"<\":32===a.keyCode&&g(\"space\")||39===a.keyCode&&g(\"right\")||40===a.keyCode&&g(\"down\")?c=\">\":36===a.keyCode&&g(\"home\")?c=\"<<\":35===a.keyCode&&g(\"end\")&&(c=\">>\")),(b||c)&&Y(a),c&&ie.show({index:c,slow:a.altKey,user:!0})}),ie.index||Fc.off(b).on(b,\"textarea, input, select\",function(a){!Dc.hasClass(jb)&&a.stopPropagation()}),Ec.on(f,ie.resize)):(Fc.off(d),Ec.off(f))}function j(b){b!==j.f&&(b?(a.html(\"\").addClass(ib+\" \"+ke).append(qe).before(oe).before(pe),gb(ie)):(qe.detach(),oe.detach(),pe.detach(),a.html(ne.urtext).removeClass(ke),hb(ie)),i(b),j.f=b)}function m(){yd=ie.data=yd||P(e.data)||D(a),zd=ie.size=yd.length,!xd.ok&&e.shuffle&&O(yd),f(),Je=y(Je),zd&&j(!0)}function o(){var a=2>zd&&!e.enableifsingleframe||Cd;Me.noMove=a||Sd,Me.noSwipe=a||!e.swipe,!Wd&&se.toggleClass(Bb,!e.click&&!Me.noMove&&!Me.noSwipe),Nc&&qe.toggleClass(sb,!Me.noSwipe)}function t(a){a===!0&&(a=\"\"),e.autoplay=Math.max(+a||Sc,1.5*Vd)}function u(){function a(a,c){b[a?\"add\":\"remove\"].push(c)}ie.options=e=R(e),Sd=\"crossfade\"===e.transition||\"dissolve\"===e.transition,Md=e.loop&&(zd>2||Sd&&(!Wd||\"slide\"!==Wd)),Vd=+e.transitionduration||Qc,Yd=\"rtl\"===e.direction,Zd=d.extend({},e.keyboard&&dd,e.keyboard);var b={add:[],remove:[]};zd>1||e.enableifsingleframe?(Nd=e.nav,Pd=\"top\"===e.navposition,b.remove.push(Xb),we.toggle(!!e.arrows)):(Nd=!1,we.hide()),Rb(),Bd=new zc(d.extend(Ac,e.spinner,Bc,{direction:Yd?-1:1})),Gc(),Hc(),e.autoplay&&t(e.autoplay),Td=n(e.thumbwidth)||Uc,Ud=n(e.thumbheight)||Uc,Ne.ok=Pe.ok=e.trackpad&&!Mc,o(),ed(e,[Le]),Od=\"thumbs\"===Nd,Od?(lc(zd,\"navThumb\"),Ad=Be,he=Zc,J(oe,d.Fotorama.jst.style({w:Td,h:Ud,b:e.thumbborderwidth,m:e.thumbmargin,s:je,q:!Jc})),ye.addClass(Lb).removeClass(Kb)):\"dots\"===Nd?(lc(zd,\"navDot\"),Ad=Ae,he=Yc,ye.addClass(Kb).removeClass(Lb)):(Nd=!1,ye.removeClass(Lb+\" \"+Kb)),Nd&&(Pd?xe.insertBefore(re):xe.insertAfter(re),wc.nav=!1,wc(Ad,ze,\"nav\")),Qd=e.allowfullscreen,Qd?(De.prependTo(re),Rd=Kc&&\"native\"===Qd):(De.detach(),Rd=!1),a(Sd,ob),a(!Sd,pb),a(!e.captions,vb),a(Yd,tb),a(\"always\"!==e.arrows,wb),Xd=e.shadows&&!Mc,a(!Xd,rb),qe.addClass(b.add.join(\" \")).removeClass(b.remove.join(\" \")),Ke=d.extend({},e)}function x(a){return 0>a?(zd+a%zd)%zd:a>=zd?a%zd:a}function y(a){return h(a,0,zd-1)}function z(a){return Md?x(a):y(a)}function E(a){return a>0||Md?a-1:!1}function U(a){return zd-1>a||Md?a+1:!1}function $(){Me.min=Md?-1/0:-r(zd-1,Le.w,e.margin,Fd),Me.max=Md?1/0:-r(0,Le.w,e.margin,Fd),Me.snap=Le.w+e.margin}function bb(){Oe.min=Math.min(0,Le.nw-ze.width()),Oe.max=0,ze.toggleClass(Bb,!(Oe.noMove=Oe.min===Oe.max))}function cb(a,b,c){if(\"number\"==typeof a){a=new Array(a);var e=!0}return d.each(a,function(a,d){if(e&&(d=a),\"number\"==typeof d){var f=yd[x(d)];if(f){var g=\"$\"+b+\"Frame\",h=f[g];c.call(this,a,d,f,h,g,h&&h.data())}}})}function fb(a,b,c,d){(!$d||\"*\"===$d&&d===Ld)&&(a=q(e.width)||q(a)||Vc,b=q(e.height)||q(b)||Wc,ie.resize({width:a,ratio:e.ratio||c||a/b},0,d!==Ld&&\"*\"))}function Pb(a,b,c,f,g,h){cb(a,b,function(a,i,j,k,l,m){function n(a){var b=x(i);fd(a,{index:b,src:w,frame:yd[b]})}function o(){t.remove(),d.Fotorama.cache[w]=\"error\",j.html&&\"stage\"===b||!y||y===w?(!w||j.html||r?\"stage\"===b&&(k.trigger(\"f:load\").removeClass(ac+\" \"+_b).addClass(bc),n(\"load\"),fb()):(k.trigger(\"f:error\").removeClass(ac).addClass(_b),n(\"error\")),m.state=\"error\",!(zd>1&&yd[i]===j)||j.html||j.deleted||j.video||r||(j.deleted=!0,ie.splice(i,1))):(j[v]=w=y,Pb([i],b,c,f,g,!0))}function p(){d.Fotorama.measures[w]=u.measures=d.Fotorama.measures[w]||{width:s.width,height:s.height,ratio:s.width/s.height},fb(u.measures.width,u.measures.height,u.measures.ratio,i),t.off(\"load error\").addClass(fc+(r?\" \"+gc:\"\")).prependTo(k),I(t,(d.isFunction(c)?c():c)||Le,f||j.fit||e.fit,g||j.position||e.position),d.Fotorama.cache[w]=m.state=\"loaded\",setTimeout(function(){k.trigger(\"f:load\").removeClass(ac+\" \"+_b).addClass(bc+\" \"+(r?cc:dc)),\"stage\"===b?n(\"load\"):(j.thumbratio===$c||!j.thumbratio&&e.thumbratio===$c)&&(j.thumbratio=u.measures.ratio,vd())},0)}function q(){var a=10;G(function(){return!fe||!a--&&!Mc},function(){p()})}if(k){var r=ie.fullScreen&&j.full&&j.full!==j.img&&!m.$full&&\"stage\"===b;if(!m.$img||h||r){var s=new Image,t=d(s),u=t.data();m[r?\"$full\":\"$img\"]=t;var v=\"stage\"===b?r?\"full\":\"img\":\"thumb\",w=j[v],y=r?null:j[\"stage\"===b?\"thumb\":\"img\"];if(\"navThumb\"===b&&(k=m.$wrap),!w)return void o();d.Fotorama.cache[w]?!function z(){\"error\"===d.Fotorama.cache[w]?o():\"loaded\"===d.Fotorama.cache[w]?setTimeout(q,0):setTimeout(z,100)}():(d.Fotorama.cache[w]=\"*\",t.on(\"load\",q).on(\"error\",o)),m.state=\"\",s.src=w}}})}function Qb(a){Ie.append(Bd.spin().el).appendTo(a)}function Rb(){Ie.detach(),Bd&&Bd.stop()}function Sb(){var a=Dd[Xc];a&&!a.data().state&&(Qb(a),a.on(\"f:load f:error\",function(){a.off(\"f:load f:error\"),Rb()}))}function ec(a){W(a,sd),X(a,function(){setTimeout(function(){Q(ye)},0),Rc({time:Vd,guessIndex:d(this).data().eq,minMax:Oe})})}function lc(a,b){cb(a,b,function(a,c,e,f,g,h){if(!f){f=e[g]=qe[g].clone(),h=f.data(),h.data=e;var i=f[0];\"stage\"===b?(e.html&&d('<div class=\"'+kc+'\"></div>').append(e._html?d(e.html).removeAttr(\"id\").html(e._html):e.html).appendTo(f),e.caption&&d(N(oc,N(pc,e.caption))).appendTo(f),e.video&&f.addClass(zb).append(Fe.clone()),X(i,function(){setTimeout(function(){Q(re)},0),pd({index:h.eq,user:!0})}),te=te.add(f)):\"navDot\"===b?(ec(i),Ae=Ae.add(f)):\"navThumb\"===b&&(ec(i),h.$wrap=f.children(\":first\"),Be=Be.add(f),e.video&&h.$wrap.append(Fe.clone()))}})}function sc(a,b,c,d){return a&&a.length&&I(a,b,c,d)}function tc(a){cb(a,\"stage\",function(a,b,c,f,g,h){if(f){var i=x(b),j=c.fit||e.fit,k=c.position||e.position;h.eq=i,Re[Xc][i]=f.css(d.extend({left:Sd?0:r(b,Le.w,e.margin,Fd)},Sd&&l(0))),F(f[0])&&(f.appendTo(se),md(c.$video)),sc(h.$img,Le,j,k),sc(h.$full,Le,j,k)}})}function uc(a,b){if(\"thumbs\"===Nd&&!isNaN(a)){var c=-a,f=-a+Le.nw;Be.each(function(){var a=d(this),g=a.data(),h=g.eq,i=function(){return{h:Ud,w:g.w}},j=i(),k=yd[h]||{},l=k.thumbfit||e.thumbfit,m=k.thumbposition||e.thumbposition;j.w=g.w,g.l+g.w<c||g.l>f||sc(g.$img,j,l,m)||b&&Pb([h],\"navThumb\",i,l,m)}
1)}}function wc(a,b,c){if(!wc[c]){var f=\"nav\"===c&&Od,g=0;b.append(a.filter(function(){for(var a,b=d(this),c=b.data(),e=0,f=yd.length;f>e;e++)if(c.data===yd[e]){a=!0,c.eq=e;break}return a||b.remove()&&!1}).sort(function(a,b){return d(a).data().eq-d(b).data().eq}).each(function(){if(f){var a=d(this),b=a.data(),c=Math.round(Ud*b.data.thumbratio)||Td;b.l=g,b.w=c,a.css({width:c}),g+=c+e.thumbmargin}})),wc[c]=!0}}function xc(a){return a-Se>Le.w/3}function yc(a){return!(Md||Je+a&&Je-zd+a||Cd)}function Gc(){var a=yc(0),b=yc(1);ue.toggleClass(Eb,a).attr(V(a)),ve.toggleClass(Eb,b).attr(V(b))}function Hc(){Ne.ok&&(Ne.prevent={\"<\":yc(0),\">\":yc(1)})}function Lc(a){var b,c,d=a.data();return Od?(b=d.l,c=d.w):(b=a.position().left,c=a.width()),{c:b+c/2,min:-b+10*e.thumbmargin,max:-b+Le.w-c-10*e.thumbmargin}}function Oc(a){var b=Dd[he].data();_(Ce,{time:1.2*a,pos:b.l,width:b.w-2*e.thumbborderwidth})}function Rc(a){var b=yd[a.guessIndex][he];if(b){var c=Oe.min!==Oe.max,d=a.minMax||c&&Lc(Dd[he]),e=c&&(a.keep&&Rc.l?Rc.l:h((a.coo||Le.nw/2)-Lc(b).c,d.min,d.max)),f=c&&h(e,Oe.min,Oe.max),g=1.1*a.time;_(ze,{time:g,pos:f||0,onEnd:function(){uc(f,!0)}}),ld(ye,K(f,Oe.min,Oe.max)),Rc.l=e}}function Tc(){_c(he),Qe[he].push(Dd[he].addClass(Wb))}function _c(a){for(var b=Qe[a];b.length;)b.shift().removeClass(Wb)}function bd(a){var b=Re[a];d.each(Ed,function(a,c){delete b[x(c)]}),d.each(b,function(a,c){delete b[a],c.detach()})}function cd(a){Fd=Gd=Je;var b=Dd[Xc];b&&(_c(Xc),Qe[Xc].push(b.addClass(Wb)),a||ie.show.onEnd(!0),v(se,0,!0),bd(Xc),tc(Ed),$(),bb())}function ed(a,b){a&&d.each(b,function(b,c){c&&d.extend(c,{width:a.width||c.width,height:a.height,minwidth:a.minwidth,maxwidth:a.maxwidth,minheight:a.minheight,maxheight:a.maxheight,ratio:S(a.ratio)})})}function fd(b,c){a.trigger(ib+\":\"+b,[ie,c])}function gd(){clearTimeout(hd.t),fe=1,e.stopautoplayontouch?ie.stopAutoplay():ce=!0}function hd(){fe&&(e.stopautoplayontouch||(id(),jd()),hd.t=setTimeout(function(){fe=0},Qc+Pc))}function id(){ce=!(!Cd&&!de)}function jd(){if(clearTimeout(jd.t),G.stop(jd.w),!e.autoplay||ce)return void(ie.autoplay&&(ie.autoplay=!1,fd(\"stopautoplay\")));ie.autoplay||(ie.autoplay=!0,fd(\"startautoplay\"));var a=Je,b=Dd[Xc].data();jd.w=G(function(){return b.state||a!==Je},function(){jd.t=setTimeout(function(){if(!ce&&a===Je){var b=Kd,c=yd[b][Xc].data();jd.w=G(function(){return c.state||b!==Kd},function(){ce||b!==Kd||ie.show(Md?Z(!Yd):Kd)})}},e.autoplay)})}function kd(){ie.fullScreen&&(ie.fullScreen=!1,Kc&&vc.cancel(le),Dc.removeClass(jb),Cc.removeClass(jb),a.removeClass(Zb).insertAfter(pe),Le=d.extend({},ee),md(Cd,!0,!0),rd(\"x\",!1),ie.resize(),Pb(Ed,\"stage\"),Q(Ec,ae,_d),fd(\"fullscreenexit\"))}function ld(a,b){Xd&&(a.removeClass(Ub+\" \"+Vb),b&&!Cd&&a.addClass(b.replace(/^|\\s/g,\" \"+Tb+\"--\")))}function md(a,b,c){b&&(qe.removeClass(nb),Cd=!1,o()),a&&a!==Cd&&(a.remove(),fd(\"unloadvideo\")),c&&(id(),jd())}function nd(a){qe.toggleClass(qb,a)}function od(a){if(!Me.flow){var b=a?a.pageX:od.x,c=b&&!yc(xc(b))&&e.click;od.p!==c&&re.toggleClass(Cb,c)&&(od.p=c,od.x=b)}}function pd(a){clearTimeout(pd.t),e.clicktransition&&e.clicktransition!==e.transition?setTimeout(function(){var b=e.transition;ie.setOptions({transition:e.clicktransition}),Wd=b,pd.t=setTimeout(function(){ie.show(a)},10)},0):ie.show(a)}function qd(a,b){var c=a.target,f=d(c);f.hasClass(mc)?ie.playVideo():c===Ee?ie.toggleFullScreen():Cd?c===He&&md(Cd,!0,!0):b?nd():e.click&&pd({index:a.shiftKey||Z(xc(a._x)),slow:a.altKey,user:!0})}function rd(a,b){Me[a]=Oe[a]=b}function sd(a){var b=d(this).data().eq;pd({index:b,slow:a.altKey,user:!0,coo:a._x-ye.offset().left})}function td(a){pd({index:we.index(this)?\">\":\"<\",slow:a.altKey,user:!0})}function ud(a){X(a,function(){setTimeout(function(){Q(re)},0),nd(!1)})}function vd(){if(m(),u(),!vd.i){vd.i=!0;var a=e.startindex;(a||e.hash&&c.hash)&&(Ld=L(a||c.hash.replace(/^#/,\"\"),yd,0===ie.index||a,a)),Je=Fd=Gd=Hd=Ld=z(Ld)||0}if(zd){if(wd())return;Cd&&md(Cd,!0),Ed=[],bd(Xc),vd.ok=!0,ie.show({index:Je,time:0}),ie.resize()}else ie.destroy()}function wd(){return!wd.f===Yd?(wd.f=Yd,Je=zd-1-Je,ie.reverse(),!0):void 0}function xd(){xd.ok||(xd.ok=!0,fd(\"ready\"))}Cc=d(\"html\"),Dc=d(\"body\");var yd,zd,Ad,Bd,Cd,Dd,Ed,Fd,Gd,Hd,Id,Jd,Kd,Ld,Md,Nd,Od,Pd,Qd,Rd,Sd,Td,Ud,Vd,Wd,Xd,Yd,Zd,$d,_d,ae,be,ce,de,ee,fe,ge,he,ie=this,je=d.now(),ke=ib+je,le=a[0],me=1,ne=a.data(),oe=d(\"<style></style>\"),pe=d(N(Yb)),qe=d(N(kb)),re=d(N(xb)).appendTo(qe),se=(re[0],d(N(Ab)).appendTo(re)),te=d(),ue=d(N(Db+\" \"+Fb+rc)),ve=d(N(Db+\" \"+Gb+rc)),we=ue.add(ve).appendTo(re),xe=d(N(Ib)),ye=d(N(Hb)).appendTo(xe),ze=d(N(Jb)).appendTo(ye),Ae=d(),Be=d(),Ce=(se.data(),ze.data(),d(N(jc)).appendTo(ze)),De=d(N($b+rc)),Ee=De[0],Fe=d(N(mc)),Ge=d(N(nc)).appendTo(re),He=Ge[0],Ie=d(N(qc)),Je=!1,Ke={},Le={},Me={},Ne={},Oe={},Pe={},Qe={},Re={},Se=0,Te=[];\nqe[Xc]=d(N(yb)),qe[Zc]=d(N(Mb+\" \"+Ob+rc,N(ic))),qe[Yc]=d(N(Mb+\" \"+Nb+rc,N(hc))),Qe[Xc]=[],Qe[Zc]=[],Qe[Yc]=[],Re[Xc]={},qe.addClass(Ic?mb:lb).toggleClass(qb,!e.controlsonstart),ne.fotorama=this,ie.startAutoplay=function(a){return ie.autoplay?this:(ce=de=!1,t(a||e.autoplay),jd(),this)},ie.stopAutoplay=function(){return ie.autoplay&&(ce=de=!0,jd()),this},ie.show=function(a){var b;\"object\"!=typeof a?(b=a,a={}):b=a.index,b=\">\"===b?Gd+1:\"<\"===b?Gd-1:\"<<\"===b?0:\">>\"===b?zd-1:b,b=isNaN(b)?L(b,yd,!0):b,b=\"undefined\"==typeof b?Je||0:b,ie.activeIndex=Je=z(b),Id=E(Je),Jd=U(Je),Kd=x(Je+(Yd?-1:1)),Ed=[Je,Id,Jd],Gd=Md?b:Je;var c=Math.abs(Hd-Gd),d=w(a.time,function(){return Math.min(Vd*(1+(c-1)/12),2*Vd)}),f=a.overPos;a.slow&&(d*=10);var g=Dd;ie.activeFrame=Dd=yd[Je];var i=g===Dd&&!a.user;md(Cd,Dd.i!==yd[x(Fd)].i),lc(Ed,\"stage\"),tc(Mc?[Gd]:[Gd,E(Gd),U(Gd)]),rd(\"go\",!0),i||fd(\"show\",{user:a.user,time:d}),ce=!0;var j=ie.show.onEnd=function(b){if(!j.ok){if(j.ok=!0,b||cd(!0),i||fd(\"showend\",{user:a.user}),!b&&Wd&&Wd!==e.transition)return ie.setOptions({transition:Wd}),void(Wd=!1);Sb(),Pb(Ed,\"stage\"),rd(\"go\",!1),Hc(),od(),id(),jd()}};if(Sd){var k=Dd[Xc],l=Je!==Hd?yd[Hd][Xc]:null;ab(k,l,te,{time:d,method:e.transition,onEnd:j},Te)}
1else _(se,{pos:-r(Gd,Le.w,e.margin,Fd),overPos:f,time:d,onEnd:j});if(Gc(),Nd){Tc();var m=y(Je+h(Gd-Hd,-1,1));Rc({time:d,coo:m!==Je&&a.coo,guessIndex:\"undefined\"!=typeof a.coo?m:Je,keep:i}),Od&&Oc(d)}return be=\"undefined\"!=typeof Hd&&Hd!==Je,Hd=Je,e.hash&&be&&!ie.eq&&H(Dd.id||Je+1),this},ie.requestFullScreen=function(){return Qd&&!ie.fullScreen&&(_d=Ec.scrollTop(),ae=Ec.scrollLeft(),Q(Ec),rd(\"x\",!0),ee=d.extend({},Le),a.addClass(Zb).appendTo(Dc.addClass(jb)),Cc.addClass(jb),md(Cd,!0,!0),ie.fullScreen=!0,Rd&&vc.request(le),ie.resize(),Pb(Ed,\"stage\"),Sb(),fd(\"fullscreenenter\")),this},ie.cancelFullScreen=function(){return Rd&&vc.is()?vc.cancel(b):kd(),this},ie.toggleFullScreen=function(){return ie[(ie.fullScreen?\"cancel\":\"request\")+\"FullScreen\"]()},T(b,vc.event,function(){!yd||vc.is()||Cd||kd()}),ie.resize=function(a){if(!yd)return this;var b=arguments[1]||0,c=arguments[2];ed(ie.fullScreen?{width:\"100%\",maxwidth:null,minwidth:null,height:\"100%\",maxheight:null,minheight:null}:R(a),[Le,c||ie.fullScreen||e]);var d=Le.width,f=Le.height,g=Le.ratio,i=Ec.height()-(Nd?ye.height():0);return q(d)&&(qe.addClass(ub).css({width:d,minWidth:Le.minwidth||0,maxWidth:Le.maxwidth||ad}),d=Le.W=Le.w=qe.width(),Le.nw=Nd&&p(e.navwidth,d)||d,e.glimpse&&(Le.w-=Math.round(2*(p(e.glimpse,d)||0))),se.css({width:Le.w,marginLeft:(Le.W-Le.w)/2}),f=p(f,i),f=f||g&&d/g,f&&(d=Math.round(d),f=Le.h=Math.round(h(f,p(Le.minheight,i),p(Le.maxheight,i))),re.stop().animate({width:d,height:f},b,function(){qe.removeClass(ub)}),cd(),Nd&&(ye.stop().animate({width:Le.nw},b),Rc({guessIndex:Je,time:b,keep:!0}),Od&&wc.nav&&Oc(b)),$d=c||!0,xd())),Se=re.offset().left,this},ie.setOptions=function(a){return d.extend(e,a),vd(),this},ie.shuffle=function(){return yd&&O(yd)&&vd(),this},ie.destroy=function(){return ie.cancelFullScreen(),ie.stopAutoplay(),yd=ie.data=null,j(),Ed=[],bd(Xc),vd.ok=!1,this},ie.playVideo=function(){var a=Dd,b=a.video,c=Je;return\"object\"==typeof b&&a.videoReady&&(Rd&&ie.fullScreen&&ie.cancelFullScreen(),G(function(){return!vc.is()||c!==Je},function(){c===Je&&(a.$video=a.$video||d(d.Fotorama.jst.video(b)),a.$video.appendTo(a[Xc]),qe.addClass(nb),Cd=a.$video,o(),we.blur(),De.blur(),fd(\"loadvideo\"))})),this},ie.stopVideo=function(){return md(Cd,!0,!0),this},re.on(\"mousemove\",od),Me=db(se,{onStart:gd,onMove:function(a,b){ld(re,b.edge)},onTouchEnd:hd,onEnd:function(a){ld(re);var b=(Nc&&!ge||a.touch)&&e.arrows&&\"always\"!==e.arrows;if(a.moved||b&&a.pos!==a.newPos&&!a.control){var c=s(a.newPos,Le.w,e.margin,Fd);ie.show({index:c,time:Sd?Vd:a.time,overPos:a.overPos,user:!0})}else a.aborted||a.control||qd(a.startEvent,b)},timeLow:1,timeHigh:1,friction:2,select:\".\"+Xb+\", .\"+Xb+\" *\",$wrap:re}),Oe=db(ze,{onStart:gd,onMove:function(a,b){ld(ye,b.edge)},onTouchEnd:hd,onEnd:function(a){function b(){Rc.l=a.newPos,id(),jd(),uc(a.newPos,!0)}if(a.moved)a.pos!==a.newPos?(ce=!0,_(ze,{time:a.time,pos:a.newPos,overPos:a.overPos,onEnd:b}),uc(a.newPos),Xd&&ld(ye,K(a.newPos,Oe.min,Oe.max))):b();else{var c=a.$target.closest(\".\"+Mb,ze)[0];c&&sd.call(c,a.startEvent)}},timeLow:.5,timeHigh:2,friction:5,$wrap:ye}),Ne=eb(re,{shift:!0,onEnd:function(a,b){gd(),hd(),ie.show({index:b,slow:a.altKey})}}),Pe=eb(ye,{onEnd:function(a,b){gd(),hd();var c=v(ze)+.25*b;ze.css(k(h(c,Oe.min,Oe.max))),Xd&&ld(ye,K(c,Oe.min,Oe.max)),Pe.prevent={\"<\":c>=Oe.max,\">\":c<=Oe.min},clearTimeout(Pe.t),Pe.t=setTimeout(function(){Rc.l=c,uc(c,!0)},Pc),uc(c)}}),qe.hover(function(){setTimeout(function(){fe||nd(!(ge=!0))},0)},function(){ge&&nd(!(ge=!1))}),M(we,function(a){Y(a),td.call(this,a)},{onStart:function(){gd(),Me.control=!0},onTouchEnd:hd}),we.each(function(){W(this,function(a){td.call(this,a)}),ud(this)}),W(Ee,ie.toggleFullScreen),ud(Ee),d.each(\"load push pop shift unshift reverse sort splice\".split(\" \"),function(a,b){ie[b]=function(){return yd=yd||[],\"load\"!==b?Array.prototype[b].apply(yd,arguments):arguments[0]&&\"object\"==typeof arguments[0]&&arguments[0].length&&(yd=P(arguments[0])),vd(),ie}}),vd()},d.fn.fotorama=function(b){return this.each(function(){var c=this,e=d(this),f=e.data(),g=f.fotorama;g?g.setOptions(b,!0):G(function(){return!E(c)},function(){f.urtext=e.html(),new d.Fotorama(e,d.extend({},cd,a.fotoramaDefaults,b,f))})})},d.Fotorama.instances=[],d.Fotorama.cache={},d.Fotorama.measures={},d=d||{},d.Fotorama=d.Fotorama||{},d.Fotorama.jst=d.Fotorama.jst||{},d.Fotorama.jst.style=function(a){{var b,c=\"\";tc.escape}return c+=\".fotorama\"+(null==(b=a.s)?\"\":b)+\" .fotorama__nav--thumbs .fotorama__nav__frame{\\npadding:\"+(null==(b=a.m)?\"\":b)+\"px;\\nheight:\"+(null==(b=a.h)?\"\":b)+\"px}\\n.fotorama\"+(null==(b=a.s)?\"\":b)+\" .fotorama__thumb-border{\\nheight:\"+(null==(b=a.h-a.b*(a.q?0:2))?\"\":b)+\"px;\\nborder-width:\"+(null==(b=a.b)?\"\":b)+\"px;\\nmargin-top:\"+(null==(b=a.m)?\"\":b)+\"px}\"},d.Fotorama.jst.video=function(a){function b(){c+=d.call(arguments,\"\")}var c=\"\",d=(tc.escape,Array.prototype.join);return c+='<div class=\"fotorama__video\"><iframe src=\"',b((\"youtube\"==a.type?a.p+\"youtube.com/embed/\"+a.id+\"?autoplay=1\":\"vimeo\"==a.type?a.p+\"player.vimeo.com/video/\"+a.id+\"?autoplay=1&badge=0\":a.id)+(a.s&&\"custom\"!=a.type?\"&\"+a.s:\"\")),c+='\" frameborder=\"0\" allowfullscreen></iframe></div>\\n'},d(function(){d(\".\"+ib+':not([data-auto=\"false\"])').fotorama()})}(window,document,location,\"undefined\"!=typeof jQuery&&jQuery);"; 2var mod_pagespeed_YNg8TVTlsV = "/*! Magnific Popup - v1.1.0 - 2016-02-20\n* http://dim
2semenov.com/plugins/magnific-popup/\n* Copyright (c) 2016 Dmitry Semenov; */\n;(function (factory) { \nif (typeof define === 'function' && define.amd) { \n // AMD. Register as an anonymous module. \n define(['jquery'], factory); \n } else if (typeof exports === 'object') { \n // Node/CommonJS \n factory(require('jquery')); \n } else { \n // Browser globals \n factory(window.jQuery || window.Zepto); \n } \n }(function($) { \n\n/*>>core*/\n/**\n * \n * Magnific Popup Core JS file\n * \n */\n\n\n/**\n * Private static constants\n */\nvar CLOSE_EVENT = 'Close',\n BEFORE_CLOSE_EVENT = 'BeforeClose',\n AFTER_CLOSE_EVENT = 'AfterClose',\n BEFORE_APPEND_EVENT = 'BeforeAppend',\n MARKUP_PARSE_EVENT = 'MarkupParse',\n OPEN_EVENT = 'Open',\n CHANGE_EVENT = 'Change',\n NS = 'mfp',\n EVENT_NS = '.' + NS,\n READY_CLASS = 'mfp-ready',\n REMOVING_CLASS = 'mfp-removing',\n PREVENT_CLOSE_CLASS = 'mfp-prevent-close';\n\n\n/**\n * Private vars \n */\n/*jshint -W079 */\nvar mfp, // As we have only one instance of MagnificPopup object, we define it locally to not to use 'this'\n MagnificPopup = function(){},\n _isJQ = !!(window.jQuery),\n _prevStatus,\n _window = $(window),\n _document,\n _prevContentType,\n _wrapClasses,\n _currPopupType;\n\n\n/**\n * Private functions\n */\nvar _mfpOn = function(name, f) {\n mfp.ev.on(NS + name + EVENT_NS, f);\n },\n _getEl = function(className, appendTo, html, raw) {\n var el = document.createElement('div');\n el.className = 'mfp-'+className;
2\n if(html) {\n el.innerHTML = html;\n }\n if(!raw) {\n el = $(el);\n if(appendTo) {\n el.appendTo(appendTo);\n }\n } else if(appendTo) {\n appendTo.appendChild(el);\n }\n return el;\n },\n _mfpTrigger = function(e, data) {\n mfp.ev.triggerHandler(NS + e, data);\n\n if(mfp.st.callbacks) {\n // converts \"mfpEventName\" to \"eventName\" callback and triggers it if it's present\n e = e.charAt(0).toLowerCase() + e.slice(1);\n if(mfp.st.callbacks[e]) {\n mfp.st.callbacks[e].apply(mfp, $.isArray(data) ? data : [data]);\n }\n }\n },\n _getCloseBtn = function(type) {\n if(type !== _currPopupType || !mfp.currTemplate.closeBtn) {\n mfp.currTemplate.closeBtn = $( mfp.st.closeMarkup.replace('%title%', mfp.st.tClose ) );\n _currPopupType = type;\n }\n return mfp.currTemplate.closeBtn;\n },\n // Initialize Magnific Popup only when called at least once\n _checkInstance = function() {\n if(!$.magnificPopup.instance) {\n /*jshint -W020 */\n mfp = new MagnificPopup();\n mfp.init();\n $.magnificPopup.instance = mfp;\n }\n },\n // CSS transition detection, http://stackoverflow.com/questions/7264899/detect-css-transitions-using-javascript-and-without-modernizr\n supportsTransitions = function() {\n var s = document.createElement('p').style, // 's' for style. better to create an element if body yet to exist\n v = ['ms','O','Moz','Webkit']; // 'v' for vendor\n\n if( s['transition'] !== undefined ) {\n return true; \n }\n \n while( v.length ) {\n if( v.pop() + 'Transition' in s ) {\n return true;\n }\n }\n \n return false;\n };\n\n\n\n/**\n * Public functions\n */\nMagnificPopup.prototype = {\n\n constructor: MagnificPopup,\n\n /**\n * Initializes Magnific Popup plugin. \n * This function is triggered only once when $.fn.magnificPopup or $.magnificPopup is executed\n */\n init: function() {\n var appVersion = navigator.appVersion;\n mfp.isLowIE = mfp.isIE8 = document.all && !document.addEventListener;\n mfp.isAndroid = (/android/gi).test(appVersion);\n mfp.isIOS = (/iphone|ipad|ipod/gi).test(appVersion);\n mfp.supportsTransition = supportsTransitions();\n\n // We disable fixed positioned lightbox on devices that don't handle it nicely.\n // If you know a better way of detecting this - let me know.\n mfp.probablyMobile = (mfp.isAndroid || mfp.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent) );\n _document = $(document);\n\n mfp.popupsCache = {};\n },\n\n /**\n * Opens popup\n * @param data [description]\n */\n open: function(data) {\n\n var i;\n\n if(data.isObj === false) { \n // convert jQuery collection to array to avoid conflicts later\n mfp.items = data.items.toArray();\n\n mfp.index = 0;\n var items = data.items,\n item;\n for(i = 0; i < items.length; i++) {\n item = items[i];\n if(item.parsed) {\n item = item.el[0];\n }\n if(item === data.el[0]) {\n mfp.index = i;\n break;\n }\n }\n } else {\n mfp.items = $.isArray(data.items) ? data.items : [data.items];\n mfp.index = data.index || 0;\n }\n\n // if popup is already opened - we just update the content\n if(mfp.isOpen) {\n mfp.updateItemHTML();\n return;\n }\n \n mfp.types = []; \n _wrapClasses = '';\n if(data.mainEl && data.mainEl.length) {\n mfp.ev = data.mainEl.eq(0);\n } else {\n mfp.ev = _document;\n }\n\n if(data.key) {\n if(!mfp.popupsCache[data.key]) {\n mfp.popupsCache[data.key] = {};\n }\n mfp.currTemplate = mfp.popupsCache[data.key];\n } else {\n mfp.currTemplate = {};\n }\n\n\n\n mfp.st = $.extend(true, {}, $.magnificPopup.defaults, data ); \n mfp.fixedContentPos = mfp.st.fixedContentPos === 'auto' ? !mfp.probablyMobile : mfp.st.fixedContentPos;\n\n if(mfp.st.modal) {\n mfp.st.closeOnContentClick = false;\n mfp.st.closeOnBgClick = false;\n mfp.st.showCloseBtn = false;\n mfp.st.enableEscapeKey = false;\n }\n \n\n // Building markup\n // main containers are created only once\n if(!mfp.bgOverlay) {\n\n // Dark overlay\n mfp.bgOverlay = _getEl('bg').on('click'+EVENT_NS, function() {\
2n mfp.close();\n });\n\n mfp.wrap = _getEl('wrap').attr('tabindex', -1).on('click'+EVENT_NS, function(e) {\n if(mfp._checkIfClose(e.target)) {\n mfp.close();\n }\n });\n\n mfp.container = _getEl('container', mfp.wrap);\n }\n\n mfp.contentContainer = _getEl('content');\n if(mfp.st.preloader) {\n mfp.preloader = _getEl('preloader', mfp.container, mfp.st.tLoading);\n }\n\n\n // Initializing modules\n var modules = $.magnificPopup.modules;\n for(i = 0; i < modules.length; i++) {\n var n = modules[i];\n n = n.charAt(0).toUpperCase() + n.slice(1);\n mfp['init'+n].call(mfp);\n }\n _mfpTrigger('BeforeOpen');\n\n\n if(mfp.st.showCloseBtn) {\n // Close button\n if(!mfp.st.closeBtnInside) {\n mfp.wrap.append( _getCloseBtn() );\n } else {\n _mfpOn(MARKUP_PARSE_EVENT, function(e, template, values, item) {\n values.close_replaceWith = _getCloseBtn(item.type);\n });\n _wrapClasses += ' mfp-close-btn-in';\n }\n }\n\n if(mfp.st.alignTop) {\n _wrapClasses += ' mfp-align-top';\n }\n\n \n\n if(mfp.fixedContentPos) {\n mfp.wrap.css({\n overflow: mfp.st.overflowY,\n overflowX: 'hidden',\n overflowY: mfp.st.overflowY\n });\n } else {\n mfp.wrap.css({ \n top: _window.scrollTop(),\n position: 'absolute'\n });\n }\n if( mfp.st.fixedBgPos === false || (mfp.st.fixedBgPos === 'auto' && !mfp.fixedContentPos) ) {\n mfp.bgOverlay.css({\n height: _document.height(),\n position: 'absolute'\n });\n }\n\n \n\n if(mfp.st.enableEscapeKey) {\n // Close on ESC key\n _document.on('keyup' + EVENT_NS, function(e) {\n if(e.keyCode === 27) {\n mfp.close();\n }\n });\n }\n\n _window.on('resize' + EVENT_NS, function() {\n mfp.updateSize();\n });\n\n\n if(!mfp.st.closeOnContentClick) {\n _wrapClasses += ' mfp-auto-cursor';\n }\n \n if(_wrapClasses)\n mfp.wrap.addClass(_wrapClasses);\n\n\n // this triggers recalculation of layout, so we get it once to not to trigger twice\n var windowHeight = mfp.wH = _window.height();\n\n \n var windowStyles = {};\n\n if( mfp.fixedContentPos ) {\n if(mfp._hasScrollBar(windowHeight)){\n var s = mfp._getScrollbarSize();\n if(s) {\n windowStyles.marginRight = s;\n }\n }\n }\n\n if(mfp.fixedContentPos) {\n if(!mfp.isIE7) {\n windowStyles.overflow = 'hidden';\n } else {\n // ie7 double-scroll bug\n $('body, html').css('overflow', 'hidden');\n }\n }\n\n \n \n var classesToadd = mfp.st.mainClass;\n if(mfp.isIE7) {\n classesToadd += ' mfp-ie7';\n }\n if(classesToadd) {\n mfp._addClassToMFP( classesToadd );\n }\n\n // add content\n mfp.updateItemHTML();\n\n _mfpTrigger('BuildControls');\n\n // remove scrollbar, add margin e.t.c\n $('html').css(windowStyles);\n \n // add everything to DOM\n mfp.bgOverlay.add(mfp.wrap).prependTo( mfp.st.prependTo || $(document.body) );\n\n // Save last focused element\n mfp._lastFocusedEl = document.activeElement;\n \n // Wait for next cycle to allow CSS transition\n setTimeout(function() {\n \n if(mfp.content) {\n mfp._addClassToMFP(READY_CLASS);\n mfp._setFocus();\n } else {\n // if content is not defined (not loaded e.t.c) we add class only for BG\n mfp.bgOverlay.addClass(READY_CLASS);\n }\n \n // Trap the focus in popup\n _document.on('focusin' + EVENT_NS, mfp._onFocusIn);\n\n }, 16);\n\n mfp.isOpen = true;\n mfp.updateSize(windowHeight);\n _mfpTrigger(OPEN_EVENT);\n\n return data;\n },\n\n /**\n * Closes the popup\n */\n close: function() {\n if(!mfp.isOpen) return;\n _mfpTrigger(BEFORE_CLOSE_EVENT);\n\n mfp.isOpen = false;\n // for CSS3 animation\n if(mfp.st.removalDelay && !mfp.isLowIE && mfp.supportsTransition ) {\n mfp._addClassToMFP(REMOVING_CLASS);\n setTimeout(function() {\n mfp._close();\n }, mfp.st.removalDelay);\n } else {\n mfp._close();\n }\n },\n\n /**\n * Helper for close() function\n */\n _close: function() {\n _mfpTrigger(CLOSE_EVENT);\n\n var classesToRemove = REMOVING_CLASS + ' ' + READY_CLASS + ' ';\n\n mfp.bgOverlay.detach();\n mfp.wrap.detach();\n mfp.container.empty();\n\n if(mfp.st.mainClass) {\n classesToRemove += mfp.st.mainClass + ' ';\n }\n\n mfp._removeClassFromMFP(classesToRemove);\n\n if(mfp.fixedContentPos) {\n var windowStyles = {marginRight: ''};\n if(mfp.isIE7) {\n $('body, html').css('overflow', '');\n } else {\n windowStyles.overflow = '';\n }\n $('html').css(windowStyles);\n }\n \n _document.off('keyup' + EVENT_NS + ' focusin' + EVENT_NS);\n mfp.ev.off(EVENT_NS);\n\n // clean up DOM elements that aren't removed\n mfp.wrap.attr('class', 'mfp-wrap').removeAttr('style');\n mfp.bgOverlay.attr('class', 'mfp-bg');\n mfp.container.attr('class', 'mfp-container');\n\n // remove close button from target element\n if(mfp.st.showCloseBtn &&\n (!mfp.st.closeBtnInside || mfp.currTemplate[mfp.currItem.type] === true)) {\n if(mfp.currTemplate.closeBtn)\n mfp.currTemplate.closeBtn.detach();\n }\n\n\n if(mfp.st.autoFocusLast && mfp._lastFocusedEl) {\n $(mfp._lastFocusedEl).focus(); // put tab focus back\n }\n mfp.currItem = null; \n mfp.content = null;\n mfp.currTemplate = null;\n mfp.prevHeight = 0;\n\n _mfpTrigger(AFTER_CLOSE_EVENT);\n },\n \n updateSize: function(winHeight) {\n\n if(mfp.isIOS) {\n // fixes iOS nav bars https://github.com/dimsemenov/Magnific-Popup/issues/2\n var zoomLevel = document.documentElement.clientWidth / window.innerWidth;\n var height = window.innerHeight * zoomLevel;\n mfp.wrap.css('height', height);\n mfp.wH = height;\n } else {\n mfp.wH = winHeight || _window.height();\n }\n // Fixes #84: popup incorrectly positioned with position:relative on body\n if(!mfp.fixedContentPos) {\n mfp.wrap.css('height', mfp.wH);\n }\n\n _mfpTrigger('Resize');\n\n },\n\n /**\n * Set content of popup based on current index\n */\n updateItemHTML: function() {\
2n var item = mfp.items[mfp.index];\n\n // Detach and perform modifications\n mfp.contentContainer.detach();\n\n if(mfp.content)\n mfp.content.detach();\n\n if(!item.parsed) {\n item = mfp.parseEl( mfp.index );\n }\n\n var type = item.type;\n\n _mfpTrigger('BeforeChange', [mfp.currItem ? mfp.currItem.type : '', type]);\n // BeforeChange event works like so:\n // _mfpOn('BeforeChange', function(e, prevType, newType) { });\n\n mfp.currItem = item;\n\n if(!mfp.currTemplate[type]) {\n var markup = mfp.st[type] ? mfp.st[type].markup : false;\n\n // allows to modify markup\n _mfpTrigger('FirstMarkupParse', markup);\n\n if(markup) {\n mfp.currTemplate[type] = $(markup);\n } else {\n // if there is no markup found we just define that template is parsed\n mfp.currTemplate[type] = true;\n }\n }\n\n if(_prevContentType && _prevContentType !== item.type) {\n mfp.container.removeClass('mfp-'+_prevContentType+'-holder');\n }\n\n var newContent = mfp['get' + type.charAt(0).toUpperCase() + type.slice(1)](item, mfp.currTemplate[type]);\n mfp.appendContent(newContent, type);\n\n item.preloaded = true;\n\n _mfpTrigger(CHANGE_EVENT, item);\n _prevContentType = item.type;\n\n // Append container back after its content changed\n mfp.container.prepend(mfp.contentContainer);\n\n _mfpTrigger('AfterChange');\n },\n\n\n /**\n * Set HTML content of popup\n */\n appendContent: function(newContent, type) {\n mfp.content = newContent;\n\n if(newContent) {\n if(mfp.st.showCloseBtn && mfp.st.closeBtnInside &&\n mfp.currTemplate[type] === true) {\n // if there is no markup, we just append close button element inside\n if(!mfp.content.find('.mfp-close').length) {\n mfp.content.append(_getCloseBtn());\n }\n } else {\n mfp.content = newContent;\n }\n } else {\n mfp.content = '';\n }\n\n _mfpTrigger(BEFORE_APPEND_EVENT);\n mfp.container.addClass('mfp-'+type+'-holder');\n\n mfp.contentContainer.append(mfp.content);\n },\n\n\n /**\n * Creates Magnific Popup data object based on given data\n * @param {int} index Index of item to parse\n */\n parseEl: function(index) {\n var item = mfp.items[index],\n type;\n\n if(item.tagName) {\n item = { el: $(item) };\n } else {\n type = item.type;\n item = { data: item, src: item.src };\n }\n\n if(item.el) {\n var types = mfp.types;\n\n // check for 'mfp-TYPE' class\n for(var i = 0; i < types.length; i++) {\n if( item.el.hasClass('mfp-'+types[i]) ) {\n type = types[i];\n break;\n }\n }\n\n item.src = item.el.attr('data-mfp-src');\n if(!item.src) {\n item.src = item.el.attr('href');\n }\n }\n\n item.type = type || mfp.st.type || 'inline';\n item.index = index;\n item.parsed = true;\n mfp.items[index] = item;\n _mfpTrigger('ElementParse', item);\n\n return mfp.items[index];\n },\n\n\n /**\n * Initializes single popup or a group of popups\n */\n addGroup: function(el, options) {\n var eHandler = function(e) {\n e.mfpEl = this;\n mfp._openClick(e, el, options);\n };\n\n if(!options) {\n options = {};\n }\n\n var eName = 'click.magnificPopup';\n options.mainEl = el;\n\n if(options.items) {\n options.isObj = true;\n el.off(eName).on(eName, eHandler);\n } else {\n options.isObj = false;\n if(options.delegate) {\n el.off(eName).on(eName, options.delegate , eHandler);\n } else {\n options.items = el;\n el.off(eName).on(eName, eHandler);\n }\n }\n },\n _openClick: function(e, el, options) {\n var midClick = options.midClick !== undefined ? options.midClick : $.magnificPopup.defaults.midClick;\n\n\n if(!midClick && ( e.which === 2 || e.ctrlKey || e.metaKey || e.altKey || e.shiftKey ) ) {\n return;\n }\n\n var disableOn = options.disableOn !== undefined ? options.disableOn : $.magnificPopup.defaults.disableOn;
2\n\n if(disableOn) {\n if($.isFunction(disableOn)) {\n if( !disableOn.call(mfp) ) {\n return true;\n }\n } else { // else it's number\n if( _window.width() < disableOn ) {\n return true;\n }\n }\n }\n\n if(e.type) {\n e.preventDefault();\n\n // This will prevent popup from closing if element is inside and popup is already opened\n if(mfp.isOpen) {\n e.stopPropagation();\n }\n }\n\n options.el = $(e.mfpEl);\n if(options.delegate) {\n options.items = el.find(options.delegate);\n }\n mfp.open(options);\n },\n\n\n /**\n * Updates text on preloader\n */\n updateStatus: function(status, text) {\n\n if(mfp.preloader) {\n if(_prevStatus !== status) {\n mfp.container.removeClass('mfp-s-'+_prevStatus);\n }\n\n if(!text && status === 'loading') {\n text = mfp.st.tLoading;\n }\n\n var data = {\n status: status,\n text: text\n };\n // allows to modify status\n _mfpTrigger('UpdateStatus', data);\n\n status = data.status;\n text = data.text;\n\n mfp.preloader.html(text);\n\n mfp.preloader.find('a').on('click', function(e) {\n e.stopImmediatePropagation();\n });\n\n mfp.container.addClass('mfp-s-'+status);\n _prevStatus = status;\n }\n },\n\n\n /*\n \"Private\" helpers that aren't private at all\n */\n // Check to close popup or not\n // \"target\" is an element that was clicked\n _checkIfClose: function(target) {\n\n if($(target).hasClass(PREVENT_CLOSE_CLASS)) {\n return;\n }\n\n var closeOnContent = mfp.st.closeOnContentClick;\n var closeOnBg = mfp.st.closeOnBgClick;\n\n if(closeOnContent && closeOnBg) {\n return true;\n } else {\n\n // We close the popup if click is on close button or on preloader. Or if there is no content.\n if(!mfp.content || $(target).hasClass('mfp-close') || (mfp.preloader && target === mfp.preloader[0]) ) {\n return true;\n }\n\n // if click is outside the content\n if( (target !== mfp.content[0] && !$.contains(mfp.content[0], target)) ) {\n if(closeOnBg) {\n // last check, if the clicked element is in DOM, (in case it's removed onclick)\n if( $.contains(document, target) ) {\n return true;\n }\n }\n } else if(closeOnContent) {\n return true;\n }\n\n }\n return false;\n },\n _addClassToMFP: function(cName) {\n mfp.bgOverlay.addClass(cName);\n mfp.wrap.addClass(cName);\n },\n _removeClassFromMFP: function(cName) {\n this.bgOverlay.removeClass(cName);\n mfp.wrap.removeClass(cName);\n },\n _hasScrollBar: function(winHeight) {\n return ( (mfp.isIE7 ? _document.height() : document.body.scrollHeight) > (winHeight || _window.height()) );\n },\n _setFocus: function() {\n (mfp.st.focus ? mfp.content.find(mfp.st.focus).eq(0) : mfp.wrap).focus();\n },\n _onFocusIn: function(e) {\n if( e.target !== mfp.wrap[0] && !$.contains(mfp.wrap[0], e.target) ) {\n mfp._setFocus();\n return false;\n }\n },\n _parseMarkup: function(template, values, item) {\n var arr;\n if(item.data) {\n values = $.extend(item.data, values);\n }\n _mfpTrigger(MARKUP_PARSE_EVENT, [template, values, item] );\n\n $.each(values, function(key, value) {\n if(value === undefined || value === false) {\n return true;\n }\n arr = key.split('_');\n if(arr.length > 1) {\n var el = template.find(EVENT_NS + '-'+arr[0]);\n\n if(el.length > 0) {\n var attr = arr[1];\n if(attr === 'replaceWith') {\n if(el[0] !== value[0]) {\n el.replaceWith(value);\n }\n } else if(attr === 'img') {\n if(el.is('img')) {\n el.attr('src', value);\n } else {\n el.replaceWith( $('<img>').attr('src', value).attr('class', el.attr('class')) );\n }\n } else {\n el.attr(arr[1], value);\n }\n }\n\n } else {\n template.find(EVENT_NS + '-'+key).html(value);\n }\n });\n },\n\n _getScrollbarSize: function() {\n // thx David\n if(mfp.scrollbarSize === undefined) {\n var scrollDiv = document.createElement(\"div\");\n scrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';\n document.body.appendChild(scrollDiv);\n mfp.scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n }\n return mfp.scrollbarSize;\n }\n\n}; /* MagnificPopup core prototype end */\n\n\n\n\n/**\n * Public static functions\n */\n$.magnificPopup = {\n instance: null,\n proto: MagnificPopup.prototype,\n modules: [],\n\n open: function(options, index) {\n _checkInstance();\n\n if(!options) {\n options = {};\n } else {\n options = $.extend(true, {}, options);\n }\n\n options.isObj = true;\n options.index = index || 0;\n return this.instance.open(options);\n }
2,\n\n close: function() {\n return $.magnificPopup.instance && $.magnificPopup.instance.close();\n },\n\n registerModule: function(name, module) {\n if(module.options) {\n $.magnificPopup.defaults[name] = module.options;\n }\n $.extend(this.proto, module.proto);\n this.modules.push(name);\n },\n\n defaults: {\n\n // Info about options is in docs:\n // http://dimsemenov.com/plugins/magnific-popup/documentation.html#options\n\n disableOn: 0,\n\n key: null,\n\n midClick: false,\n\n mainClass: '',\n\n preloader: true,\n\n focus: '', // CSS selector of input to focus after popup is opened\n\n closeOnContentClick: false,\n\n closeOnBgClick: true,\n\n closeBtnInside: true,\n\n showCloseBtn: true,\n\n enableEscapeKey: true,\n\n modal: false,\n\n alignTop: false,\n\n removalDelay: 0,\n\n prependTo: null,\n\n fixedContentPos: 'auto',\n\n fixedBgPos: 'auto',\n\n overflowY: 'auto',\n\n closeMarkup: '<button title=\"%title%\" type=\"button\" class=\"mfp-close\">×</button>',\n\n tClose: 'Close (Esc)',\n\n tLoading: 'Loading...',\n\n autoFocusLast: true\n\n }\n};\n\n\n\n$.fn.magnificPopup = function(options) {\n _checkInstance();\n\n var jqEl = $(this);\n\n // We call some API method of first param is a string\n if (typeof options === \"string\" ) {\n\n if(options === 'open') {\n var items,\n itemOpts = _isJQ ? jqEl.data('magnificPopup') : jqEl[0].magnificPopup,\n index = parseInt(arguments[1], 10) || 0;\n\n if(itemOpts.items) {\n items = itemOpts.items[index];\n } else {\n items = jqEl;\n if(itemOpts.delegate) {\n items = items.find(itemOpts.delegate);\n }\n items = items.eq( index );\n }\n mfp._openClick({mfpEl:items}, jqEl, itemOpts);\n } else {\n if(mfp.isOpen)\n mfp[options].apply(mfp, Array.prototype.slice.call(arguments, 1));\n }\n\n } else {\n // clone options obj\n options = $.extend(true, {}, options);\n\n /*\n * As Zepto doesn't support .data() method for objects\n * and it works only in normal browsers\n * we assign \"options\" object directly to the DOM element. FTW!\n */\n if(_isJQ) {\n jqEl.data('magnificPopup', options);\n } else {\n jqEl[0].magnificPopup = options;\n }\n\n mfp.addGroup(jqEl, options);\n\n }\n return jqEl;\n};\n\n/*>>core*/\n\n/*>>inline*/\n\nvar INLINE_NS = 'inline',\n _hiddenClass,\n _inlinePlaceholder,\n _lastInlineElement,\n _putInlineElementsBack = function() {\n if(_lastInlineElement) {\n _inlinePlaceholder.after( _lastInlineElement.addClass(_hiddenClass) ).detach();\n _lastInlineElement = null;\n }\n };\n\n$.magnificPopup.registerModule(INLINE_NS, {\n options: {\n hiddenClass: 'hide', // will be appended with `mfp-` prefix\n markup: '',\n tNotFound: 'Content not found'\n },\n proto: {\n\n initInline: function() {\n mfp.types.push(INLINE_NS);\n\n _mfpOn(CLOSE_EVENT+'.'+INLINE_NS, function() {\n _putInlineElementsBack();\n });\n },\n\n getInline: function(item, template) {\n\n _putInlineElementsBack();\n\n if(item.src) {\n var inlineSt = mfp.st.inline,\n el = $(item.src);\n\n if(el.length) {\n\n // If target element has parent - we replace it with placeholder and put it back after popup is closed\n var parent = el[0].parentNode;\n if(parent && parent.tagName) {\n if(!_inlinePlaceholder) {\n _hiddenClass = inlineSt.hiddenClass;\n _inlinePlaceholder = _getEl(_hiddenClass);\n _hiddenClass = 'mfp-'+_hiddenClass;\n }\n // replace target inline element with placeholder\n _lastInlineElement = el.after(_inlinePlaceholder).detach().removeClass(_hiddenClass);\n }\n\n mfp.updateStatus('ready');\n } else {\n mfp.updateStatus('error', inlineSt.tNotFound);\n el = $('<div>');\n }\n\n item.inlineElement = el;\n return el;\n }\n\n mfp.updateStatus('ready');\n mfp._parseMarkup(template, {}, item);\n return template;\n }\n }\n});\n\n/*>>inline*/\n\n/*>>ajax*/\nvar AJAX_NS = 'ajax',\n _ajaxCur,\n _removeAjaxCursor = function() {\n if(_ajaxCur) {\n $(document.body).removeClass(_ajaxCur);\n }\n }
2,\n _destroyAjaxRequest = function() {\n _removeAjaxCursor();\n if(mfp.req) {\n mfp.req.abort();\n }\n };\n\n$.magnificPopup.registerModule(AJAX_NS, {\n\n options: {\n settings: null,\n cursor: 'mfp-ajax-cur',\n tError: '<a href=\"%url%\">The content</a> could not be loaded.'\n },\n\n proto: {\n initAjax: function() {\n mfp.types.push(AJAX_NS);\n _ajaxCur = mfp.st.ajax.cursor;\n\n _mfpOn(CLOSE_EVENT+'.'+AJAX_NS, _destroyAjaxRequest);\n _mfpOn('BeforeChange.' + AJAX_NS, _destroyAjaxRequest);\n },\n getAjax: function(item) {\n\n if(_ajaxCur) {\n $(document.body).addClass(_ajaxCur);\n }\n\n mfp.updateStatus('loading');\n\n var opts = $.extend({\n url: item.src,\n success: function(data, textStatus, jqXHR) {\n var temp = {\n data:data,\n xhr:jqXHR\n };\n\n _mfpTrigger('ParseAjax', temp);\n\n mfp.appendContent( $(temp.data), AJAX_NS );\n\n item.finished = true;\n\n _removeAjaxCursor();\n\n mfp._setFocus();\n\n setTimeout(function() {\n mfp.wrap.addClass(READY_CLASS);\n }, 16);\n\n mfp.updateStatus('ready');\n\n _mfpTrigger('AjaxContentAdded');\n },\n error: function() {\n _removeAjaxCursor();\n item.finished = item.loadError = true;\n mfp.updateStatus('error', mfp.st.ajax.tError.replace('%url%', item.src));\n }\n }, mfp.st.ajax.settings);\n\n mfp.req = $.ajax(opts);\n\n return '';\n }\n }\n});\n\n/*>>ajax*/\n\n/*>>image*/\nvar _imgInterval,\n _getTitle = function(item) {\n if(item.data && item.data.title !== undefined)\n return item.data.title;\n\n var src = mfp.st.image.titleSrc;\n\n if(src) {\n if($.isFunction(src)) {\n return src.call(mfp, item);\n } else if(item.el) {\n return item.el.attr(src) || '';\n }\n }\n return '';\n };\n\n$.magnificPopup.registerModule('image', {\n\n options: {\n markup: '<div class=\"mfp-figure\">'+\n '<div class=\"mfp-close\"></div>'+\n '<figure>'+\n '<div class=\"mfp-img\"></div>'+\n '<figcaption>'+\n '<div class=\"mfp-bottom-bar\">'+\n '<div class=\"mfp-title\"></div>'+\n '<div class=\"mfp-counter\"></div>'+\n '</div>'+\n '</figcaption>'+\n '</figure>'+\n '</div>',\n cursor: 'mfp-zoom-out-cur',\n titleSrc: 'title',\n verticalFit: true,\n tError: '<a href=\"%url%\">The image</a> could not be loaded.'\n },\n\n proto: {\n initImage: function() {\n var imgSt = mfp.st.image,\n ns = '.image';\n\n mfp.types.push('image');\n\n _mfpOn(OPEN_EVENT+ns, function() {\n if(mfp.currItem.type === 'image' && imgSt.cursor) {\n $(document.body).addClass(imgSt.cursor);\n }\n });\n\n _mfpOn(CLOSE_EVENT+ns, function() {\n if(imgSt.cursor) {\n $(document.body).removeClass(imgSt.cursor);\n }\n _window.off('resize' + EVENT_NS);\n });\n\n _mfpOn('Resize'+ns, mfp.resizeImage);\n if(mfp.isLowIE) {\n _mfpOn('AfterChange', mfp.resizeImage);\n }\n },\n resizeImage: function() {\n var item = mfp.currItem;\n if(!item || !item.img) return;\n\n if(mfp.st.image.verticalFit) {\n var decr = 0;\n // fix box-sizing in ie7/8\n if(mfp.isLowIE) {\n decr = parseInt(item.img.css('padding-top'), 10) + parseInt(item.img.css('padding-bottom'),10);\n }\n item.img.css('max-height', mfp.wH-decr);\n }\n },\n _onImageHasSize: function(item) {\n if(item.img) {\n\n item.hasSize = true;\n\n if(_imgInterval) {\n clearInterval(_imgInterval);\n }\n\n item.isCheckingImgSize = false;\n\n _mfpTrigger('ImageHasSize', item);\n\n if(item.imgHidden) {\n if(mfp.content)\n mfp.content.removeClass('mfp-loading');\n\n item.imgHidden = false;\n }\n\n }\n },\n\n /**\n * Function that loops until the image has size to display elements that rely on it asap\n */\n findImageSize: function(item) {\n\n var counter = 0,\n img = item.img[0],\n mfpSetInterval = function(delay) {\n\n if(_imgInterval) {\n clearInterval(_imgInterval);\n }\n // decelerating interval that checks for size of an image\n _imgInterval = setInterval(function() {\
2n if(img.naturalWidth > 0) {\n mfp._onImageHasSize(item);\n return;\n }\n\n if(counter > 200) {\n clearInterval(_imgInterval);\n }\n\n counter++;\n if(counter === 3) {\n mfpSetInterval(10);\n } else if(counter === 40) {\n mfpSetInterval(50);\n } else if(counter === 100) {\n mfpSetInterval(500);\n }\n }, delay);\n };\n\n mfpSetInterval(1);\n },\n\n getImage: function(item, template) {\n\n var guard = 0,\n\n // image load complete handler\n onLoadComplete = function() {\n if(item) {\n if (item.img[0].complete) {\n item.img.off('.mfploader');\n\n if(item === mfp.currItem){\n mfp._onImageHasSize(item);\n\n mfp.updateStatus('ready');\n }\n\n item.hasSize = true;\n item.loaded = true;\n\n _mfpTrigger('ImageLoadComplete');\n\n }\n else {\n // if image complete check fails 200 times (20 sec), we assume that there was an error.\n guard++;\n if(guard < 200) {\n setTimeout(onLoadComplete,100);\n } else {\n onLoadError();\n }\n }\n }\n },\n\n // image error handler\n onLoadError = function() {\n if(item) {\n item.img.off('.mfploader');\n if(item === mfp.currItem){\n mfp._onImageHasSize(item);\n mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );\n }\n\n item.hasSize = true;\n item.loaded = true;\n item.loadError = true;\n }\n },\n imgSt = mfp.st.image;\n\n\n var el = template.find('.mfp-img');\n if(el.length) {\n var img = document.createElement('img');\n img.className = 'mfp-img';\n if(item.el && item.el.find('img').length) {\n img.alt = item.el.find('img').attr('alt');\n }\n item.img = $(img).on('load.mfploader', onLoadComplete).on('error.mfploader', onLoadError);\n img.src = item.src;\n\n // without clone() \"error\" event is not firing when IMG is replaced by new IMG\n // TODO: f
2ind a way to avoid such cloning\n if(el.is('img')) {\n item.img = item.img.clone();\n }\n\n img = item.img[0];\n if(img.naturalWidth > 0) {\n item.hasSize = true;\n } else if(!img.width) {\n item.hasSize = false;\n }\n }\n\n mfp._parseMarkup(template, {\n title: _getTitle(item),\n img_replaceWith: item.img\n }, item);\n\n mfp.resizeImage();\n\n if(item.hasSize) {\n if(_imgInterval) clearInterval(_imgInterval);\n\n if(item.loadError) {\n template.addClass('mfp-loading');\n mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );\n } else {\n template.removeClass('mfp-loading');\n mfp.updateStatus('ready');\n }\n return template;\n }\n\n mfp.updateStatus('loading');\n item.loading = true;\n\n if(!item.hasSize) {\n item.imgHidden = true;\n template.addClass('mfp-loading');\n mfp.findImageSize(item);\n }\n\n return template;\n }\n }\n});\n\n/*>>image*/\n\n/*>>zoom*/\nvar hasMozTransform,\n getHasMozTransform = function() {\n if(hasMozTransform === undefined) {\n hasMozTransform = document.createElement('p').style.MozTransform !== undefined;\n }\n return hasMozTransform;\n };\n\n$.magnificPopup.registerModule('zoom', {\n\n options: {\n enabled: false,\n easing: 'ease-in-out',\n duration: 300,\n opener: function(element) {\n return element.is('img') ? element : element.find('img');\n }\n },\n\n proto: {\n\n initZoom: function() {\n var zoomSt = mfp.st.zoom,\n ns = '.zoom',\n image;\n\n if(!zoomSt.enabled || !mfp.supportsTransition) {\n return;\n }\n\n var duration = zoomSt.duration,\n getElToAnimate = function(image) {\n var newImg = image.clone().removeAttr('style').removeAttr('class').addClass('mfp-animated-image'),\n transition = 'all '+(zoomSt.duration/1000)+'s ' + zoomSt.easing,\n cssObj = {\n position: 'fixed',\n zIndex: 9999,\n left: 0,\n top: 0,\n '-webkit-backface-visibility': 'hidden'\n },\n t = 'transition';\n\n cssObj['-webkit-'+t] = cssObj['-moz-'+t] = cssObj['-o-'+t] = cssObj[t] = transition;\n\n newImg.css(cssObj);\n return newImg;\n },\n showMainContent = function() {\n mfp.content.css('visibility', 'visible');\n },\n openTimeout,\n animatedImg;\n\n _mfpOn('BuildControls'+ns, function() {\n if(mfp._allowZoom()) {\n\n clearTimeout(openTimeout);\n mfp.content.css('visibility', 'hidden');\n\n // Basically, all code below does is clones existing image, puts in on top of the current one and animated it\n\n image = mfp._getItemToZoom();\n\n if(!image) {\n showMainContent();\n return;\n }\n\n animatedImg = getElToAnimate(image);\n\n animatedImg.css( mfp._getOffset() );\n\n mfp.wrap.append(animatedImg);\n\n openTimeout = setTimeout(function() {\n animatedImg.css( mfp._getOffset( true ) );\n openTimeout = setTimeout(function() {\n\n showMainContent();\n\n setTimeout(function() {\n animatedImg.remove();\n image = animatedImg = null;\n _mfpTrigger('ZoomAnimationEnded');\n }, 16); // avoid blink when switching images\n\n }, duration); // this timeout equals animation duration\n\n }, 16); // by adding this timeout we avoid short glitch at the beginning of animation\n\n\n // Lots of timeouts...\n }\n });\n _mfpOn(BEFORE_CLOSE_EVENT+ns, function() {\n if(mfp._allowZoom()) {\n\n clearTimeout(openTimeout);\n\n mfp.st.removalDelay = duration;\n\n if(!image) {\n image = mfp._getItemToZoom();\n if(!image) {\n return;\n }\n animatedImg = getElToAnimate(image);\n }\n\n animatedImg.css( mfp._getOffset(true) );\n mfp.wrap.append(animatedImg);\n mfp.content.css('visibility', 'hidden');\n\n setTimeout(function() {\n animatedImg.css( mfp._getOffset() );\n }, 16);\n }\n\n });\n\n _mfpOn(CLOSE_EVENT+ns, function() {\n if(mfp._allowZoom()) {\n showMainContent();\n if(animatedImg) {\n animatedImg.remove();\n }\n image = null;\n }\n });\n }
2,\n\n _allowZoom: function() {\n return mfp.currItem.type === 'image';\n },\n\n _getItemToZoom: function() {\n if(mfp.currItem.hasSize) {\n return mfp.currItem.img;\n } else {\n return false;\n }\n },\n\n // Get element postion relative to viewport\n _getOffset: function(isLarge) {\n var el;\n if(isLarge) {\n el = mfp.currItem.img;\n } else {\n el = mfp.st.zoom.opener(mfp.currItem.el || mfp.currItem);\n }\n\n var offset = el.offset();\n var paddingTop = parseInt(el.css('padding-top'),10);\n var paddingBottom = parseInt(el.css('padding-bottom'),10);\n offset.top -= ( $(window).scrollTop() - paddingTop );\n\n\n /*\n\n Animating left + top + width/height looks glitchy in Firefox, but perfect in Chrome. And vice-versa.\n\n */\n var obj = {\n width: el.width(),\n // fix Zepto height+padding issue\n height: (_isJQ ? el.innerHeight() : el[0].offsetHeight) - paddingBottom - paddingTop\n };\n\n // I hate to do this, but there is no another option\n if( getHasMozTransform() ) {\n obj['-moz-transform'] = obj['transform'] = 'translate(' + offset.left + 'px,' + offset.top + 'px)';\n } else {\n obj.left = offset.left;\n obj.top = offset.top;\n }\n return obj;\n }\n\n }\n});\n\n\n\n/*>>zoom*/\n\n/*>>iframe*/\n\nvar IFRAME_NS = 'iframe',\n _emptyPage = '//about:blank',\n\n _fixIframeBugs = function(isShowing) {\n if(mfp.currTemplate[IFRAME_NS]) {\n var el = mfp.currTemplate[IFRAME_NS].find('iframe');\n if(el.length) {\n // reset src after the popup is closed to avoid \"video keeps playing after popup is closed\" bug\n if(!isShowing) {\n el[0].src = _emptyPage;\n }\n\n // IE8 black screen bug fix\n if(mfp.isIE8) {\n el.css('display', isShowing ? 'block' : 'none');\n }\n }\n }\n };\n\n$.magnificPopup.registerModule(IFRAME_NS, {\n\n options: {\n markup: '<div class=\"mfp-iframe-scaler\">'+\n '<div class=\"mfp-close\"></div>'+\n '<iframe class=\"mfp-iframe\" src=\"//about:blank\" frameborder=\"0\" allowfullscreen></iframe>'+\n '</div>',\n\n srcAction: 'iframe_src',\n\n // we don't care and support only one default type of URL by default\n patterns: {\n youtube: {\n index: 'youtube.com',\n id: 'v=',\n src: '//www.youtube.com/embed/%id%?autoplay=1'\n },\n vimeo: {\n index: 'vimeo.com/',\n id: '/',\n src: '//player.vimeo.com/video/%id%?autoplay=1'\n },\n gmaps: {\n index: '//maps.google.',\n src: '%id%&output=embed'\n }\n }\n },\n\n proto: {\n initIframe: function() {\n mfp.types.push(IFRAME_NS);\n\n _mfpOn('BeforeChange', function(e, prevType, newType) {\n if(prevType !== newType) {\n if(prevType === IFRAME_NS) {\n _fixIframeBugs(); // iframe if removed\n } else if(newType === IFRAME_NS) {\n _fixIframeBugs(true); // iframe is showing\n }\n }// else {\n // iframe source is switched, don't do anything\n //}\n });\n\n _mfpOn(CLOSE_EVENT + '.' + IFRAME_NS, function() {\n _fixIframeBugs();\n });\n },\n\n getIframe: function(item, template) {\n var embedSrc = item.src;\n var iframeSt = mfp.st.iframe;\n\n $.each(iframeSt.patterns, function() {\n if(embedSrc.indexOf( this.index ) > -1) {\n if(this.id) {\n if(typeof this.id === 'string') {\n embedSrc = embedSrc.substr(embedSrc.lastIndexOf(this.id)+this.id.length, embedSrc.length);\n } else {\n embedSrc = this.id.call( this, embedSrc );\n }\n }\n embedSrc = this.src.replace('%id%', embedSrc );\n return false; // break;\n }\n });\n\n var dataObj = {};\n if(iframeSt.srcAction) {\n dataObj[iframeSt.srcAction] = embedSrc;\n }\n mfp._parseMarkup(template, dataObj, item);\n\n mfp.updateStatus('ready');\n\n return template;\n }\n }\n});\n\n\n\n/*>>iframe*/\n\n/*>>gallery*/\n/**\n * Get looped index depending on number of slides\n */\nvar _getLoopedId = function(index) {\n var numSlides = mfp.items.length;\n if(index > numSlides - 1) {\n return index - numSlides;\n } else if(index < 0) {\n return numSlides + index;\n }\n return index;\n },\n _replaceCurrTotal = function(text, curr, total) {\n return text.replace(/%curr%/gi, curr + 1).replace(/%total%/gi, total);\n };\n\n$.magnificPopup.registerModule('gallery', {\n\n options: {\n enabled: false,\n arrowMarkup: '<button title=\"%title%\" type=\"button\" class=\"mfp-arrow mfp-arrow-%dir%\"></button>',\n preload: [0,2],\n navigateByImgClick: true,\n arrows: true,\n\n tPrev: 'Previous (Left arrow key)',\n tNext: 'Next (Right arrow key)',\n tCounter: '%curr% of %total%'\n }
2,\n\n proto: {\n initGallery: function() {\n\n var gSt = mfp.st.gallery,\n ns = '.mfp-gallery';\n\n mfp.direction = true; // true - next, false - prev\n\n if(!gSt || !gSt.enabled ) return false;\n\n _wrapClasses += ' mfp-gallery';\n\n _mfpOn(OPEN_EVENT+ns, function() {\n\n if(gSt.navigateByImgClick) {\n mfp.wrap.on('click'+ns, '.mfp-img', function() {\n if(mfp.items.length > 1) {\n mfp.next();\n return false;\n }\n });\n }\n\n _document.on('keydown'+ns, function(e) {\n if (e.keyCode === 37) {\n mfp.prev();\n } else if (e.keyCode === 39) {\n mfp.next();\n }\n });\n });\n\n _mfpOn('UpdateStatus'+ns, function(e, data) {\n if(data.text) {\n data.text = _replaceCurrTotal(data.text, mfp.currItem.index, mfp.items.length);\n }\n });\n\n _mfpOn(MARKUP_PARSE_EVENT+ns, function(e, element, values, item) {\n var l = mfp.items.length;\n values.counter = l > 1 ? _replaceCurrTotal(gSt.tCounter, item.index, l) : '';\n });\n\n _mfpOn('BuildControls' + ns, function() {\n if(mfp.items.length > 1 && gSt.arrows && !mfp.arrowLeft) {\n var markup = gSt.arrowMarkup,\n arrowLeft = mfp.arrowLeft = $( markup.replace(/%title%/gi, gSt.tPrev).replace(/%dir%/gi, 'left') ).addClass(PREVENT_CLOSE_CLASS),\n arrowRight = mfp.arrowRight = $( markup.replace(/%title%/gi, gSt.tNext).replace(/%dir%/gi, 'right') ).addClass(PREVENT_CLOSE_CLASS);\n\n arrowLeft.click(function() {\n mfp.prev();\n });\n arrowRight.click(function() {\n mfp.next();\n });\n\n mfp.container.append(arrowLeft.add(arrowRight));\n }\n });\n\n _mfpOn(CHANGE_EVENT+ns, function() {\n if(mfp._preloadTimeout) clearTimeout(mfp._preloadTimeout);\n\n mfp._preloadTimeout = setTimeout(function() {\n mfp.preloadNearbyImages();\n mfp._preloadTimeout = null;\n }, 16);\n });\n\n\n _mfpOn(CLOSE_EVENT+ns, function() {\n _document.off(ns);\n mfp.wrap.off('click'+ns);\n mfp.arrowRight = mfp.arrowLeft = null;\n });\n\n },\n next: function() {\n mfp.direction = true;\n mfp.index = _getLoopedId(mfp.index + 1);\n mfp.updateItemHTML();\n },\n prev: function() {\n mfp.direction = false;\n mfp.index = _getLoopedId(mfp.index - 1);\n mfp.updateItemHTML();\n },\n goTo: function(newIndex) {\n mfp.direction = (newIndex >= mfp.index);\n mfp.index = newIndex;\n mfp.updateItemHTML();\n },\n preloadNearbyImages: function() {\n var p = mfp.st.gallery.preload,\n preloadBefore = Math.min(p[0], mfp.items.length),\n preloadAfter = Math.min(p[1], mfp.items.length),\n i;\n\n for(i = 1; i <= (mfp.direction ? preloadAfter : preloadBefore); i++) {\n mfp._preloadItem(mfp.index+i);\n }\n for(i = 1; i <= (mfp.direction ? preloadBefore : preloadAfter); i++) {\n mfp._preloadItem(mfp.index-i);\n }\n },\n _preloadItem: function(index) {\n index = _getLoopedId(index);\n\n if(mfp.items[index].preloaded) {\n return;\n }\n\n var item = mfp.items[index];\n if(!item.parsed) {\n item = mfp.parseEl( index );\n }\n\n _mfpTrigger('LazyLoad', item);\n\n if(item.type === 'image') {\n item.img = $('<img class=\"mfp-img\" />').on('load.mfploader', function() {\n item.hasSize = true;\n }).on('error.mfploader', function() {\n item.hasSize = true;\n item.loadError = true;\n _mfpTrigger('LazyLoadError', item);\n }).attr('src', item.src);\n }\n\n\n item.preloaded = true;\n }\n }\n});\n\n/*>>gallery*/\n\n/*>>retina*/\n\nvar RETINA_NS = 'retina';\n\n$.magnificPopup.registerModule(RETINA_NS, {\n options: {\n replaceSrc: function(item) {\n return item.src.replace(/\\.\\w+$/, function(m) { return '@2x' + m; });\n },\n ratio: 1 // Function or number. Set to 1 to disable.\n },\n proto: {\n initRetina: function() {\n if(window.devicePixelRatio > 1) {\n\n var st = mfp.st.retina,\n ratio = st.ratio;\n\n ratio = !isNaN(ratio) ? ratio : ratio();\n\n if(ratio > 1) {\n _mfpOn('ImageHasSize' + '.' + RETINA_NS, function(e, item) {\n item.img.css({\n 'max-width': item.img[0].naturalWi
2dth / ratio,\n 'width': '100%'\n });\n });\n _mfpOn('ElementParse' + '.' + RETINA_NS, function(e, item) {\n item.src = st.replaceSrc(item, ratio);\n });\n }\n }\n\n }\n }\n});\n\n/*>>retina*/\n _checkInstance(); }));";
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.