!function(q){q.fn.viewbox=function(f){void 0===f&&(f={}),f=q.extend({template:'
',loader:'
',setTitle:!0,margin:20,resizeDuration:400,openDuration:200,closeDuration:200,closeButton:!0,fullscreenButton:!1,navButtons:!0,closeOnSideClick:!0,nextOnContentClick:!1,useGestures:!0,imageExt:["png","jpg","jpeg","webp","gif"]},f);var o,n,e,c,l,s,i=q(this),d=q(f.template),t=q(f.loader),u=!1,p=!1,r=[];function a(e){var t,n,i;p||(function(){var e;for(;r.length;)(e=r.shift()).placeholder.before(e.content),e.placeholder.detach()}(),t=e.attr("href"),n=f.setTitle?e.data("viewbox-title")||e.attr("title"):"",t?h(t)?(o=e,function(e,t,n){var l=q('').attr("src",e);k(l)||z(!0);y("header",t),y("content",""),y("footer",n);var s=m("body"),d=0,u=m("content"),v=m("header"),h=m("footer"),g=Boolean("string"===jQuery.type(t)&&t.length),w=Boolean("string"===jQuery.type(n)&&n.length);v.toggle(g),h.toggle(w),x();var b=window.setInterval(function(){var e,t,n,i,o,r,a,c;!k(l)&&d<1e3?d++:(window.clearInterval(b),z(!1),q("body").append(l),e=s.width()-u.width()+2*f.margin,t=s.height()-u.height()+2*f.margin,n=g?v.outerHeight():0,i=w?h.outerHeight():0,o=q(window).width()-e,r=q(window).height()-t-n-i,a=l.width(),c=l.height(),l.detach(),o'),n=window.location.pathname+window.location.search+"#viewbox-"+e+"-icon";return t.appendTo(d).get(0).insertAdjacentHTML("afterbegin",''),t}function w(e,t){var n=q(e),i=q('
');n.before(i),u&&d.trigger("viewbox.close"),y("content",""),y("header",t),m("content").append(n),x("auto","auto"),r.push({placeholder:i,content:n})}return q("#viewbox-sprite").length||q("body").get(0).insertAdjacentHTML("afterbegin",''),d.bind("viewbox.open",function(e,t){Number.isInteger(t)&&i.length?a(i.eq(0<=t&&t=i.length&&(t=0),a(i.eq(t)))}),d.bind("viewbox.prev",function(e){var t;i.length<=1||((t=v()-1)<0&&(t=i.length-1),a(i.eq(t)))}),d.bind("viewbox.close",function(e){u&&d.fadeOut(f.closeDuration,function(){u=!1})}),d.bind("viewbox.fullscreen",function(e){var t=m("content").find(".viewbox-image").get(0);t&&(t.requestFullscreen?t.requestFullscreen():t.mozRequestFullScreen?t.mozRequestFullScreen():t.webkitRequestFullscreen?t.webkitRequestFullscreen():t.msRequestFullscreen&&t.msRequestFullscreen())}),i.filter("a").click(function(){return d.trigger("viewbox.open",[this]),!1}),m("body").click(function(e){e.stopPropagation(),f.nextOnContentClick&&d.trigger("viewbox.next")}),f.closeButton&&g("close").click(function(e){e.stopPropagation(),d.trigger("viewbox.close")}),f.navButtons&&1