/**
 * lightgallery.js v1.0
 * Author: Dmitri Ischenko - ischenkodv@gmail.com, http://code.google.com/p/lightgallery/
 * Freely distributable under MIT-style license.
 */
var lightgallery=(function(){var P={isOpen:false,images:[],container:null,picture:null,current:null,loaderImage:null,minPadding:15,options:{animate:true,framesNumber:20,speed:30,resizeSync:false,enableZoom:true,fadeImage:true,alias:"lightgallery"},langVars:{next:"Next",prev:"Previous",zoomIn:"Zoom In",zoomOut:"Zoom Out",fullSize:"Full Size",fitScreen:"Fit screen",close:"Close",image:"Image",of:"of"},setLangVars:function(Q){for(var G in Q){P.langVars[G]=Q[G]}},init:function(S){var U=this.options;if(S){for(var T in S){U[T]=S[T]}}var W=document.getElementsByTagName("a");for(var T=0,R=W.length;T<R;T++){var Q=W[T].rel;if(Q){var V=Q.match(new RegExp("^"+U.alias+"\\[([a-zA-Z]+)\\]|"+U.alias+"$"));if(V){F(W[T],"click",this.showImage);if(V[1]){W[T].__gallery__=V[1];if(!this.images[V[1]]){this.images[V[1]]=[]}W[T].__index__=this.images[V[1]].push(W[T])-1}}}}var G=document.getElementsByTagName("body")[0];G.appendChild(this.overlay=C("div",{id:"LG_overlay"}));G.appendChild(this.container=this.createContainer());F(window,"keypress",M);this.loaderImage=C("img",{src:""});this.loaderImage.onload=function(){P.hideLoadingIcon();P.loaderImage.__is_loaded__=true;P.picture.setAttribute("src",P.loaderImage.src);P.setContPos();P.preload(P.current)};this.dy=this.container.offsetHeight;this.dx=0},open:function(){var G=D(),Q=P.overlay.style,R=P.container.style;Q.width=(P.overlayWidth=G[0])+"px";Q.height=(P.overlayHeight=G[1])+"px";Q.display="block";J(P.overlay,0,85,9);P.picture.style.display="block";P.setContPos();R.visibility="visible";R.display="block";P.isOpen=true},close:function(){var G=P.loaderImage,Q=P.container.style;P.overlay.style.display="none";Q.visibility="hidden";Q.display="none";P.isOpen=false;G.src=P.picture.src="";G.__is_loaded__=false},createContainer:function(){var Q=P.langVars,R,G;if(P.options.enableZoom){R=C("div",{"class":"LG_zoomIn",title:Q.zoomIn,events:{click:P.zoomIn}});G=C("div",{"class":"LG_zoomOut",title:Q.zoomOut,events:{click:P.zoomOut}})}return C("div",{id:"LG_container"},C("div",0,R,G,this.fullSizeBtn=C("div",{"class":"LG_zoomNormal",title:Q.fullSize,events:{click:P.zoomNormal}}),this.imgIndex=C("div",{"class":"LG_imgIndex"}),C("div",{"class":"LG_closeBtn",title:Q.close,events:{click:P.close}}),C("br",{clear:"all"})),this.picture=C("img",{id:"LG_pic",width:300,height:300}),this.titleBar=C("div",{"class":"LG_titleBar"}),this.prevBtn=C("div",{"class":"LG_prevLink",title:Q.prev,events:{click:P.prev,mouseover:N,mouseout:O}}),this.nextBtn=C("div",{"class":"LG_nextLink",title:Q.next,events:{click:P.next,mouseover:N,mouseout:O}}))},zoomIn:function(){P.Zoom(1.1)},zoomOut:function(){P.Zoom(0.9)},zoomNormal:function(){if(this.$disabled){return }var Q=P.picture,G=P.loaderImage;P.Zoom(Q.width==G.width&&Q.height==G.height?0:1)},Zoom:function(G){P.hideContent();P.setContPos(G)},setContPos:function(k){var l=P.loaderImage,f=P.picture,d=P.container.style,U=P.overlay.style,Q=P.overlayWidth,g=P.overlayHeight,m=l.width,R=l.height,j,T,b,n,c=P.dx,a=P.dy,e=P.minPadding,q=P.nextBtn.style,o=P.prevBtn.style,W=P.fullSizeBtn;opt=P.options,lng=P.langVars,framesNumber=opt.framesNumber,ar=D(),wScr=ar[2],hScr=ar[3],dim_scr=wScr/hScr,dim_pic=m/R;if(l.__is_loaded__&&!k){if(wScr>(m+c+e)&&hScr>(R+a+e)){var Y=true;j=m;T=R}else{if(dim_scr>dim_pic){j=Math.floor((T=hScr-a-e)*dim_pic)}else{T=Math.floor((j=wScr-c-e)*dim_pic)}}b=(f.width=j)+c;n=(f.height=T)+a}else{if(k==1){var V=true;b=(f.width=l.width)+c;n=(f.height=l.height)+a}else{if(k<1||k>1){b=(f.width=Math.floor(f.width*k))+c;n=(f.height=Math.floor(f.height*k))+a}else{b=n=300;var G=true}}}if(Y){W.className="LG_zoom_disabled";W.$disabled=true}else{W.className=V?"LG_fitScreen":"LG_zoomNormal";W.setAttribute("title",V?lng.fitScreen:lng.fullSize);W.$disabled=false}b=Math.max(b,300);U.width=(b>Q?b+10:Q)+"px";U.height=(n>g?n+10:g)+"px";var r=K(),X=(hScr>n?Math.floor(Math.abs((hScr-n)/2)):0)+r[1],Z=(wScr>b?Math.floor(Math.abs((wScr-b)/2)):0)+r[0];q.width=o.width=Math.floor(b/3)+"px";q.height=o.height=Math.floor(n-a-10)+"px";if(opt.animate&&!G){var S=new A(P.container,framesNumber,opt.speed);if(opt.resizeSync){S.addThread("width",null,b,0,framesNumber);S.addThread("left",null,Z,0,framesNumber);S.addThread("height",null,n,0,framesNumber);S.addThread("top",null,X,0,framesNumber)}else{var t=Math.ceil(framesNumber/2);S.addThread("width",null,b,0,t);S.addThread("left",null,Z,0,t);S.addThread("height",null,n,t,framesNumber);S.addThread("top",null,X,t,framesNumber)}S.addAction(function(){P.showContent()},opt.framesNumber-1);S.run()}else{d.top=X+"px";d.left=Z+"px";d.width=b+"px";d.height=n+"px";P.showContent()}},preload:function(Q){if(window.opera){return }var G=P.images[P.gallery];if(!G){return }(new Image).src=(G[Q+1]!==undefined)?G[Q+1].href:"";(new Image).src=(G[Q-1]!==undefined)?G[Q-1].href:""},showImage:function(Q){var G=this.__index__,Q=Q||window.event;B(Q);if(this.__gallery__&&G>-1){P.gallery=this.__gallery__;P.show(G)}else{P.showSingle(this)}},showSingle:function(G){if(!P.isOpen){P.open()}P.hideContent();P.showLoadingIcon();P.loaderImage.__is_loaded__=false;P.loaderImage.src=G.href;P.titleBar.innerHTML=G.title;P.imgIndex.innerHTML="";P.prevBtn.style.visibility="hidden";P.nextBtn.style.visibility="hidden"},show:function(Q){if(!Q&&P.gallery===null){return }if(!P.isOpen){P.open()}var G=P.images[P.gallery],R=P.loaderImage,U=P.prevBtn,T=P.nextBtn,S=T.style,V=U.style;if(Q<0||Q>G.length-1){return }P.hideContent();P.showLoadingIcon();R.__is_loaded__=false;R.src=G[Q].href;P.titleBar.innerHTML=G[Q].title;P.imgIndex.innerHTML=lng.image+" "+(Q+1)+" "+lng.of+" "+G.length;if(Q===0){E(U,0);U.$active=false;T.$active=true;V.visibility="hidden";S.visibility="visible"}else{if(Q===G.length-1){E(T,0);U.$active=true;T.$active=false;V.visibility="visible";S.visibility="hidden"}else{if(Q>0||Q<G.length-1){U.$active=T.$active=true;V.visibility=S.visibility="visible"}}}P.current=Q;window.focus()},showLoadingIcon:function(){P.container.className="LG_loading"},hideLoadingIcon:function(){P.container.className=""},hideContent:function(){for(var G=P.container.childNodes.length;--G>-1;){P.container.childNodes[G].style.display="none"}E(P.picture,0)},showContent:function(){var G=P.container.childNodes,R=P.options,S=function(){for(var T=G.length;--T>-1;){G[T].style.display="block"}};if(R.fadeImage){var Q=new A(P.picture,8,R.speed);Q.addThread("opacity",0,100);Q.addAction(S,0);Q.run()}else{S();E(P.picture,100)}},next:function(){if(P.current<P.images[P.gallery].length-1){P.show(++P.current)}},prev:function(){if(P.current>0){P.show(--P.current)}}};function M(Q){if(!P.isOpen){return }var Q=Q||window.event,G=Q.keyCode?Q.keyCode:(Q.which?Q.which:Q.charCode);switch(G){case 110:P.next();break;case 98:P.prev();break;case 102:P.zoomNormal();break;case 43:P.zoomIn();break;case 45:P.zoomOut();break;case 27:P.close()}B(Q)}function N(){if(this.$active){J(this,0,100)}}function O(){if(this.$active){I(this,100,0)}}function J(S,R,G,U,T){G=G||100;if(P.options.animate){var Q=new A(S,U||5,T||40);Q.addThread("opacity",R||0,G);Q.run()}else{E(S,G)}}function I(S,R,G,U,T){G=G||0;if(P.options.animate){var Q=new A(S,U||5,T||40);Q.addThread("opacity",R||100,G);Q.run()}else{E(S,G)}}function B(G){if(G.preventDefault){G.preventDefault()}else{G.returnValue=false}}function F(R,Q,G){if(window.addEventListener){R.addEventListener(Q,G,false)}else{R["e"+Q+G]=G;R[Q+G]=function(){R["e"+Q+G](window.event)};R.attachEvent("on"+Q,R[Q+G])}}function D(){var U,Q,S,W,G=document.body,V=document.documentElement;if(window.innerHeight&&window.scrollMaxY){U=G.scrollWidth;Q=window.innerHeight+window.scrollMaxY}else{if(G.scrollHeight>G.offsetHeight){U=G.scrollWidth;Q=G.scrollHeight}else{if(V&&V.scrollHeight>V.offsetHeight){U=V.scrollWidth;Q=V.scrollHeight}else{U=G.offsetWidth;Q=G.offsetHeight}}}if(self.innerHeight){S=self.innerWidth;W=self.innerHeight}else{if(V&&V.clientHeight){S=V.clientWidth;W=V.clientHeight}else{if(G){S=G.clientWidth;W=G.clientHeight}}}var T=Q<W?W:Q;var R=U<S?S:U;return[R,T,S,W]}function K(){var R=0,Q=0,G=document.body,S=document.documentElement;if(typeof (window.pageYOffset)=="number"){Q=window.pageYOffset;R=window.pageXOffset}else{if(G&&(G.scrollLeft||G.scrollTop)){Q=G.scrollTop;R=G.scrollLeft}else{if(S&&(S.scrollLeft||S.scrollTop)){Q=S.scrollTop;R=S.scrollLeft}}}return[R,Q]}function L(R,G){var S=document.defaultView;if(R.style[G]){return R.style[G]}else{if(R.currentStyle){return R.currentStyle[G]}else{if(S&&S.getComputedStyle){G=G.replace(/([A-Z])/g,"-$1");G=G.toLowerCase();var Q=S.getComputedStyle(R,"");return Q&&Q.getPropertyValue(G)}}}return null}function E(){E=arguments[0].filters?function(G,Q){G.style.filter="alpha(opacity="+Q+")"}:function(G,Q){G.style.opacity=Q/100}}function C(R,Q){if(R){var V=document.createElement(R);if(Q){for(var T in Q){if(T=="events"){for(var S in Q[T]){F(V,S,Q[T][S])}}else{var W=Q[T];if(typeof W!="undefined"){if(T=="class"||T=="for"){T={"for":"htmlFor","class":"className"}[T]||T;V[T]=W}else{V.setAttribute(T,W)}}}}}if(arguments.length>2){for(var U=2,G=arguments.length;U<G;U++){switch(typeof arguments[U]){case"string":V.innerHTML+=arguments[U];break;case"object":V.appendChild(arguments[U])}}}return V}return null}function A(Q,G,R){if(!Q){return null}this.elem=Q;this.numFrames=G||0;this.frames=[];this.speed=R||10}A.prototype={addThread:function(G,R,X,V,Q){if(!G||X==="undefined"||X===null){return }if(G!=="opacity"){R=parseFloat(L(this.elem,G))}V=V||0;Q=Q||this.numFrames;var U=this.elem,Y=this.frames,W=(Q-V)||1,T=R>X,S=Math.ceil((T?R-X:X-R)/W);for(V;V<Q;V++){R=T?(R-X)<=S?X:Math.ceil(R-S):(X-R)<=S?X:Math.ceil(R+S);if(!Y[V]){Y[V]=new H}Y[V].addStyle([U,G,R])}},addAction:function(G,Q){this.frames[Q].addAction(G)},step:function(){var G=this.frames.shift();if(G){G.exec()}else{clearInterval(this.interval)}},run:function(){clearInterval(this.interval);this.step();var G=this;if(this.numFrames>1){this.interval=setInterval(function(){G.step()},this.speed)}}};function H(){this.actions=[];this.styles=[]}H.prototype={addAction:function(G){this.actions.push(G)},addStyle:function(G){this.styles.push(G)},exec:function(){var R=this.styles,G,Q;for(Q=R.length;--Q>-1;){if(R[Q][1]=="opacity"){E(R[Q][0],R[Q][2])}else{R[Q][0].style[R[Q][1]]=R[Q][2]+"px"}}if(G=this.actions.shift()){G()}}};return P})();