var SLB=null;
(function(c){SLB={activeImage:null,badObjects:["select","object","embed"],container:null,enableSlideshow:null,groupName:null,imageArray:[],options:null,overlayDuration:null,overlayOpacity:null,playSlides:null,refTags:["a"],relAttribute:null,resizeDuration:null,slideShowTimer:null,startImage:null,prefix:"",checkedUrls:{},media:{},initialize:function(a){this.options=c.extend(true,{animate:true,validateLinks:false,captionEnabled:true,captionSrc:true,descEnabled:true,autoPlay:true,borderSize:10,containerID:document,
enableSlideshow:true,googleAnalytics:false,imageDataLocation:"south",initImage:"",loop:true,overlayDuration:0.2,overlayOpacity:0.8,relAttribute:null,resizeSpeed:400,showGroupName:false,slideTime:4,mId:"id",strings:{closeLink:"close",loadingMsg:"loading",nextLink:"next &raquo;",prevLink:"&laquo; prev",startSlideshow:"start slideshow",stopSlideshow:"stop slideshow",numDisplayPrefix:"Image",numDisplaySeparator:"of"},placeholders:{slbContent:'<img id="slb_slbContent" />',slbLoading:'<span id="slb_slbLoading">loading</span>',
slbClose:'<a class="slb_slbClose" href="#">close</a>',navPrev:'<a class="slb_navPrev slb_nav" href="#">&laquo; prev</a>',navNext:'<a class="slb_navNext slb_nav" href="#">&raquo; next</a>',navSlideControl:'<a class="slb_navSlideControl" href="#">Stop</a>',dataCaption:'<span class="slb_dataCaption"></span>',dataDescription:'<span class="slb_dataDescription"></span>',dataNumber:'<span class="slb_dataNumber"></span>'},layout:null},a);if(!this.options.layout||this.options.layout.toString().length==0)this.end();
if("prefix"in this.options)this.prefix=this.options.prefix;if(null==this.options.relAttribute)this.options.relAttribute=[this.prefix];else if(!c.isArray(this.options.relAttribute))this.options.relAttribute=[this.options.relAttribute.toString()];this.relAttribute=this.options.relAttribute;if(this.options.animate){this.overlayDuration=Math.max(this.options.overlayDuration,0);this.resizeDuration=this.options.resizeSpeed}else this.resizeDuration=this.overlayDuration=0;this.enableSlideshow=this.options.enableSlideshow;
this.overlayOpacity=Math.max(Math.min(this.options.overlayOpacity,1),0);this.playSlides=this.options.autoPlay;this.container=c(this.options.containerID);this.updateImageList();var b=this;a=c(this.container).get(0)!=document?this.container:c("body");c("<div/>",{id:this.getID("overlay"),css:{display:"none"}}).appendTo(a).click(function(){b.end()});a=c("<div/>",{id:this.getID("lightbox"),css:{display:"none"}}).appendTo(a).click(function(){b.end()});var d=this.getLayout();c(d).appendTo(a);this.setUI();
this.setEvents();this.options.initImage!=""&&this.start(c(this.options.initImage))},getLayout:function(){var a=this.options.layout,b,d;for(b in this.options.placeholders){d="{"+b+"}";if(a.indexOf(d)!=-1){d=new RegExp(d,"g");a=a.replace(d,this.options.placeholders[b])}}return a},setUI:function(){var a=this.options.strings;this.get("slbClose").html(a.closeLink);this.get("navNext").html(a.nextLink);this.get("navPrev").html(a.prevLink);this.get("navSlideControl").html(this.playSlides?a.stopSlideshow:
a.startSlideshow)},setEvents:function(){var a=this;this.get("container,details").click(function(e){e.stopPropagation()});var b=function(){a.get("navPrev").unbind("click").click(false);setTimeout(function(){a.get("navPrev").click(b)},500);a.showPrev();return false};this.get("navPrev").click(function(){return b()});var d=function(){a.get("navNext").unbind("click").click(false);setTimeout(function(){a.get("navNext").click(d)},500);a.showNext();return false};this.get("navNext").click(function(){return d()});
this.get("navSlideControl").click(function(){a.toggleSlideShow();return false});this.get("slbClose").click(function(){a.end();return false})},updateImageList:function(){for(var a=this,b=[],d='[href][rel*="{relattr}"]:not([rel~="'+this.addPrefix("off")+'"])',e=0;e<this.refTags.length;e++)for(var h=0;h<this.relAttribute.length;h++)b.push(this.refTags[e]+d.replace("{relattr}",this.relAttribute[h]));b=b.join(",");c(b,c(this.container)).live("click",function(){a.start(this);return false})},start:function(a){a=
c(a);this.hideBadObjects();this.imageArray=[];this.groupName=this.getGroup(a);c(a).attr("rel");var b=this,d={};this.fileExists(this.getSourceFile(a),function(){b.get("overlay").height(c(document).height()).fadeTo(b.overlayDuration,b.overlayOpacity);var e=function(){b.startImage=0;var f=[],l;for(var k in d)f.push(k);f.sort(function(n,o){return n-o});for(k=0;k<f.length;k++){l=d[f[k]];if(c(l).get(0)==c(a).get(0))b.startImage=k;b.imageArray.push({link:b.getSourceFile(c(l)),title:b.getCaption(l),desc:b.getDescription(l)})}f=
c(document).scrollTop()+c(window).height()/15;b.get("lightbox").css("top",f+"px").show();b.changeImage(b.startImage)};if(null==b.groupName){b.startImage=0;d[b.startImage]=a;e()}else{var h=c(b.container).find(b.refTags.join(",").toLowerCase()),j=[],g,i;for(g=0;g<h.length;g++){i=c(h[g]);b.getSourceFile(i)&&b.getGroup(i)==b.groupName&&j.push(i)}var m=0;for(g=0;g<j.length;g++){i=j[g];b.fileExists(b.getSourceFile(c(i)),function(f){d[f.idx]=f.els[f.idx];m++;m==f.els.length&&e()},function(f){m++;f.idx==
f.els.length&&e()},{idx:g,els:j})}}},function(){b.end()})},getMediaId:function(a){a=c(a).attr("href");return a=c.type(a)==="string"?a.toLowerCase():""},getMediaProperties:function(a){var b={};a=this.getMediaId(a);if(a.length&&a in this.media)b=this.media[a];return b},getMediaProperty:function(a,b){var d=this.getMediaProperties(a);return b in d?d[b]:false},getCaption:function(a){a=c(a);var b="";if(this.options.captionEnabled){var d={capt:".wp-caption-text",gIcon:".gallery-icon"};a={link:a,origin:a,
sibs:null,img:null};if(c(a.link).parent(d.gIcon).length>0)a.origin=c(a.link).parent();if((a.sibs=c(a.origin).siblings(d.capt))&&c(a.sibs).length>0)b=c(a.sibs).first().text();b=c.trim(b);if(""==b){a.img=c(a.link).find("img").first();if(c(a.img).length)b=c(a.img).attr("title")||c(a.img).attr("alt")}b=c.trim(b);if(""==b)if(c.trim(c(d.link).text()).length)b=c.trim(c(d.link).text());else if(this.options.captionSrc)b=c(d.link).attr("href");b=c.trim(b)}return b},getDescription:function(a){var b="";if(this.options.descEnabled)(b=
this.inGallery(a,"ng")?c(a).attr("title"):this.getMediaProperty(a,"desc"))||(b="");return b},inGallery:function(a,b){var d={wp:".gallery-icon",ng:".ngg-gallery-thumbnail"};if(typeof b=="undefined"||!(b in d))b="wp";return c(a).parent(d[b]).length>0?true:false},getSourceFile:function(a){var b=c(a).attr("href");if((c(a).attr("rel")||"").length){relSrc=this.getMediaProperty(a,"source");if(relSrc.length)b=relSrc}return b},getGroup:function(a){var b=null;a=c(a).attr("rel")||"";if(a!=""){var d="";d=this.addPrefix("group")+
"[";var e;e=a.indexOf(d);if(" "!=d.charAt(0)&&e>0){d=" "+d;e=a.indexOf(d)}if(e!=-1){d=c.trim(a.substring(e).replace(d,""));if(d.length>1&&d.indexOf("]")>0)b=d.substring(0,d.indexOf("]"))}}return b},changeImage:function(a){this.activeImage=a;this.disableKeyboardNav();this.pauseSlideShow();this.get("slbLoading").show();this.get("slbContent").hide();this.get("details").hide();var b=new Image,d=this;c(b).bind("load",function(){d.get("slbContent").attr("src",b.src);d.resizeImageContainer(b.width,b.height);
d.isSlideShowActive()&&d.startSlideShow()});b.src=this.imageArray[this.activeImage].link},resizeImageContainer:function(a,b){var d=this.getContainerSize(a,b);this.get("container").animate({width:d.width,height:d.height},this.resizeDuration);this.get("overlay").css("min-width",d.width);this.showImage()},getContainerSize:function(a,b){var d=this.options.borderSize*2;return{width:a+d,height:b+d}},showImage:function(){this.get("slbLoading").hide();var a=this;this.get("slbContent").fadeIn(500,function(){a.updateDetails()});
this.preloadNeighborImages()},updateDetails:function(){if(this.options.captionEnabled){this.get("dataCaption").text(this.imageArray[this.activeImage].title);this.get("dataCaption").show()}else this.get("dataCaption").hide();this.get("dataDescription").html(this.imageArray[this.activeImage].desc);if(this.hasImages()){var a=this.options.strings.numDisplayPrefix+" "+(this.activeImage+1)+" "+this.options.strings.numDisplaySeparator+" "+this.imageArray.length;if(this.options.showGroupName&&this.groupName!=
"")a+=" "+this.options.strings.numDisplaySeparator+" "+this.groupName;this.get("dataNumber").text(a).show()}this.get("details").width(this.get("slbContent").width()+this.options.borderSize*2);this.updateNav();this.get("details").animate({height:"show",opacity:"show"},650)},updateNav:function(){if(this.hasImages()){this.get("navPrev").show();this.get("navNext").show();if(this.enableSlideshow){this.get("navSlideControl").show();this.playSlides?this.startSlideShow():this.stopSlideShow()}else this.get("navSlideControl").hide()}else{this.get("dataNumber").hide();
this.get("navPrev").hide();this.get("navNext").hide();this.get("navSlideControl").hide()}this.enableKeyboardNav()},isSlideShowActive:function(){return this.playSlides},startSlideShow:function(){this.playSlides=true;var a=this;clearInterval(this.slideShowTimer);this.slideShowTimer=setInterval(function(){a.showNext();a.pauseSlideShow()},this.options.slideTime*1E3);this.get("navSlideControl").text(this.options.strings.stopSlideshow)},stopSlideShow:function(){this.playSlides=false;this.slideShowTimer&&
clearInterval(this.slideShowTimer);this.get("navSlideControl").text(this.options.strings.startSlideshow)},toggleSlideShow:function(){this.playSlides?this.stopSlideShow():this.startSlideShow()},pauseSlideShow:function(){this.slideShowTimer&&clearInterval(this.slideShowTimer)},hasImage:function(){return this.imageArray.length>0},hasImages:function(){return this.imageArray.length>1},isFirstImage:function(){return this.activeImage==0},isLastImage:function(){return this.activeImage==this.imageArray.length-
1},showNext:function(){if(this.hasImages()){if(!this.options.loop&&this.isLastImage())return this.end();this.isLastImage()?this.showFirst():this.changeImage(this.activeImage+1)}},showPrev:function(){if(this.hasImages()){if(!this.options.loop&&this.isFirstImage())return this.end();this.activeImage==0?this.showLast():this.changeImage(this.activeImage-1)}},showFirst:function(){this.hasImages()&&this.changeImage(0)},showLast:function(){this.hasImages()&&this.changeImage(this.imageArray.length-1)},enableKeyboardNav:function(){var a=
this;c(document).keydown(function(b){a.keyboardAction(b)})},disableKeyboardNav:function(){c(document).unbind("keydown")},keyboardAction:function(a){keycode=a==null?event.keyCode:a.which;key=String.fromCharCode(keycode).toLowerCase();if(keycode==27||key=="x"||key=="o"||key=="c")this.end();else if(key=="p"||key=="%")this.showPrev();else if(key=="n"||key=="'")this.showNext();else if(key=="f")this.showFirst();else if(key=="l")this.showLast();else key=="s"&&this.hasImage()&&this.options.enableSlideshow&&
this.toggleSlideShow()},preloadNeighborImages:function(){var a=this.imageArray.length-1==this.activeImage?0:this.activeImage+1;nextImage=new Image;nextImage.src=this.imageArray[a].link;a=this.activeImage==0?this.imageArray.length-1:this.activeImage-1;prevImage=new Image;prevImage.src=this.imageArray[a].link},end:function(){this.disableKeyboardNav();this.pauseSlideShow();this.get("lightbox").hide();this.get("overlay").fadeOut(this.overlayDuration);this.showBadObjects()},showBadObjects:function(a){c(this.badObjects.join(",")).css("visibility",
(typeof a=="undefined"?true:!!a)?"visible":"hidden")},hideBadObjects:function(){this.showBadObjects(false)},getSep:function(a){return typeof a=="undefined"?"_":a},getPrefix:function(){return this.prefix},addPrefix:function(a,b){return this.getPrefix()+this.getSep(b)+a},hasPrefix:function(a){return a.indexOf(this.addPrefix(""))==0?true:false},getID:function(a){return this.addPrefix(a)},getSel:function(a){var b="#";if(a.toString().indexOf(",")!=-1){a=a.toString().split(",");for(b=0;b<a.length;b++)a[b]=
this.getSel(c.trim(a[b]));a=a.join(",")}else{if(a in this.options.placeholders)c(this.options.placeholders[a]).attr("id")||(b=".");a=b+this.getID(a)}return a},get:function(a){return c(this.getSel(a))},fileExists:function(a,b,d,e){if(!this.options.validateLinks)return b(e);var h=this,j=function(i){if(i.status<400)c.isFunction(b)&&b(e);else c.isFunction(d)&&d(e)};if(a in this.checkedUrls)j(this.checkedUrls[a]);else{var g=new XMLHttpRequest;g.open("HEAD",a,true);g.onreadystatechange=function(){if(4==
this.readyState){h.addUrl(a,this);j(this)}};g.send()}},addUrl:function(a,b){a in this.checkedUrls||(this.checkedUrls[a]=b)}}})(jQuery);

