var CL=CL||{};CL.Views.Lightbox=CL.View.extend({initialize:function(){var view=this;this.selector="a[rel='lightbox'][data-lightbox-id='"+this.options.id+"']";this.template=_.template($("#"+this.options.templateID+"-lightbox-template").html());this.options.animationDuration=150;$("body").on("click.view-"+this.cid,this.selector,function(ev){ev.preventDefault();var $this=$(ev.currentTarget),action=$this.data("lightbox-action"),data=$this.data("lightbox-data");if(action=="open"){view.open(data);$this.addClass("active");}else if(action=="close"){view.close();view.clearActiveLinks();}});},clearActiveLinks:function(){$(this.selector).filter(".active").removeClass("active");},open:function(data){this.$el.html(this.template({"id":this.options.id,"data":data}));this.$el.fadeIn(this.options.animationDuration);},close:function(){this.onClose&&this.onClose();this.$el.fadeOut(this.options.animationDuration,function(){$(this).empty();});},tearDown:function(){CL.View.prototype.tearDown.call(this);}});CL.Views.MiniLightbox=CL.Views.Lightbox.extend({animationDistance:12,open:function(data){var view=this,scrollOffset=64;this.$el.html(this.template({"id":this.options.id,"data":data}));view.$el.fadeIn();$(".content",view.$el).css({"y":(-1*view.animationDistance)+"px","opacity":0}).transition({"y":"0","opacity":1,},view.options.animationDuration);window.picturefill();CL.utilities.scrollTo(this.$el.offset().top-scrollOffset);},close:function(){$(".content",this.$el).transition({"y":this.animationDistance+"px"},this.options.animationDuration);this.$el.fadeOut(this.options.animationDuration,function(){$(this).empty();});}});CL.Views.PhotoLightbox=CL.Views.Lightbox.extend({open:function(data){var view=this;this.$el.html(this.template({"id":this.options.id,"data":data}));this.$el.addClass("active");this.$wrapper=$(".wrapper",this.$el);this.$pictureFill=$("span.picturefill",this.$el);this.$el.fadeIn(this.options.animationDuration);this.$pictureFill.on("pictureChanged",function(){view.setupImage();if(!view.isLoaded){view.setLoading();}});$(window).on("resize.view-"+this.cid,function(){view.setupImage();});window.picturefill();CL.utilities.lockBody();$(window).one("keydown.lightbox-"+this.options.templateID,function(ev){if(ev.keyCode==27){view.close();ev.preventDefault();}});},setupImage:function(){var view=this,containerWidth=this.$wrapper.width(),containerHeight=this.$wrapper.height(),$img=$("img",this.$pictureFill),imgRatio,containerRatio;imgRatio=$img.attr("width")/$img.attr("height");containerRatio=containerWidth/containerHeight;if(imgRatio>containerRatio){$img.css({"top":(((containerRatio/imgRatio)-1)/-2)*100+"%","left":0,"width":"100%","height":"auto",})}else{$img.css({"left":(((imgRatio/containerRatio)-1)/-2)*100+"%","top":0,"width":"auto","height":"100%"});}},setLoading:function(){var view=this,$image=$("img",this.$pictureFill);this.$el.attr("data-state","image-loading");if($image.get(0).complete){this.setLoaded();}else{$("img",this.$pictureFill).on("load error",function(){view.setLoaded();});}},setLoaded:function(){view.$el.attr("data-state","image-loaded");view.isLoaded=true;},onClose:function(){CL.utilities.unlockBody();}});