/** * @projectDescription JsFlickrGallery - Simple JavaScript Flickr gallery, * http://petejank.github.io/js-flickr-gallery/ * * @version 1.24 * @author Peter Jankowski http://likeadev.com * @license MIT license. */ ;(function(f,j,p,h){var x="json",r="flickr.photos.search",q="flickr.photosets.getPhotos",v="62525ee8c8d131d708d33d61f29434b6",k="data-tags",e="data-user-id",u="data-set-id",i="data-per-page",c="data-gallery-id",g="jsfg",t=767,w=10000,n="modal-header",s="h3",d="modal-body",m="modal-image",o="modal-footer";var a="jsFlickrGallery",l={fetchImages:true,animation:"fade",animationSpeed:250,preload:{range:2},structure:{ulClass:".thumbnails",liClass:".span1",aClass:".thumbnail"},modal:{generate:true,id:"jsfg-modal",title:"."+n+" "+s,imageContainerClass:"."+m,onContainerNext:true,imageFadeTime:250,prevClass:".btn.modal-prev",nextClass:".btn.modal-next",prevText:"Previous image",nextText:"Next image",offsetWidth:100,offsetHeight:200},pagination:{generate:true,containerClass:".pagination",prevClass:".btn.pagination-prev",nextClass:".btn.pagination-next",prevText:"Previous page",nextText:"Next page"},loader:{animation:true,loaderClass:".jsfg-loader",text:"Loading",interval:200,mark:".",markClass:".animation-marks",maxMarks:3},url:{per_page:30,tag_mode:"all"},error:{text:"No photos found",tagClass:"error"},imageSizes:{small:"s",medium_100:"t",medium:"q",medium_640:"z",large:"b",original:"o"},apiUrl:"https://api.flickr.com/services/rest/?jsoncallback=?",setDefaultSize:function(){this.thumbnailSize=this.imageSizes.medium;this.imageSize=this.imageSizes.large}};function b(z,y){this.element=z;this.$element=f(z);this.options=f.extend(true,{},l,y);this.paginationContext=this.options.pagination&&this.options.pagination.generate?this.element:p;if(!this.options.thumbnailSize&&!this.options.imageSize){this.options.setDefaultSize()}this.galleryId=this.element.id||Math.random().toString(36);this.page=1;this.init()}b.prototype={init:function(){if(this.options.fetchImages){if(this.options.loader){this.loaderInterval=this._createLoader(this.element)}this.createGallery()}else{this.anchors=this._getAnchors()}if(this.options.pagination&&this.options.fetchImages){if(this.options.pagination.generate){this._createPagination()}this._bindPaginationEvents()}if(this.options.modal){if(this.options.modal.generate){this._createModal()}this._bindModalEvents()}},createGallery:function(y){this.options.url.format=x;this.options.url.api_key=v;this.options.url.photoset_id=this.$element.attr(u)||this.options.url.photoset_id;if(this.options.url.photoset_id){this.options.url.method=q;delete this.options.url.tag_mode}else{this.options.url.method=r;delete this.options.url.photoset_id;this.options.url.tags=this.$element.attr(k)||this.options.url.tags;this.options.url.user_id=this.$element.attr(e)||this.options.url.user_id;if(!this.options.url.user_id){delete this.options.url.user_id}}this.options.url.page=this.page=y||this.page;this.options.url.per_page=this.$element.attr(i)||this.options.url.per_page;this._getPhotos();return this},clearGallery:function(A){var z=f(this.options.structure.ulClass,this.element),y=this;switch(this.options.animation){case"fade":z.fadeOut(this.options.animationSpeed,B);break;case"show":z.hide(this.options.animationSpeed,B);break;case false:z.hide(0,B)}function B(){if(y.options.loader){y.loaderInterval=y._createLoader(y.element)}if(A){y.createGallery(A)}z.remove()}return this},isLastPage:function(){return(!this.anchors||this.anchors.length1){return this.clearGallery(this.page-1)}else{return false}},prevImage:function(){this.index-=1;if(this.index<0){this.index=this.anchors.length-1}return this._loadImage(false)},nextImage:function(){this.index+=1;if(this.index>this.anchors.length-1){this.index=0}return this._loadImage(false)},_getPhotos:function(){var y=this;f.ajax({type:"GET",url:y.options.apiUrl,data:y.options.url,dataType:"jsonp",timeout:w}).done(function(z){y._renderGalleryContent(z.photos||z.photoset)}).always(function(z,A){if(A==="timeout"){y._getPhotos()}})},_renderGalleryContent:function(I){var J=this,y,B,z="",D=0,F,H,E,C=this._replaceDots(J.options.structure.liClass),G=this._replaceDots(J.options.structure.aClass);if(I.photo.length>0){B=f('