CL.ToggleBlock=function($el){var view=this;this.$el=$el;$(this.$el).on("click","a.toggle",function(ev){ev.preventDefault();view.$el.toggleClass("active");});} CL.ToggleBlock.prototype.tearDown=function(){this.$el.removeData().off().remove();} CL.Views.Dropdown=CL.View.extend({initialize:function($el){var view=this;this.$el=$el;this.$filterGroup=this.$el.closest("ul.filters");this.$toggleTerm=$("a.toggle .term",this.$el);this.$items=$("ul li",this.$el);this.title=this.$el.data("title");this.state=new CL.Models.ViewState({open:this.$el.hasClass("open"),activeItem:this.$items.filter(".active").children("a").text()});this.render();this.state.on("change",function(){view.render();});this.$filterGroup.on("dropdownOpened",function(){if(view.isOpen){view.state.set("open",false);}});this.$filterGroup.on("dropdownActivated",function(){if(view.activeItem){view.state.set("activeItem",undefined);}});this.$el.data("dropdown",this);},events:{"click a.toggle":function(ev){ev.preventDefault();this.state.set("open",!this.state.get("open"));},"click a[rel=internal]":function(ev){var $this=$(ev.currentTarget);this.state.set("open",false);if($this.closest("li").hasClass("empty")){this.state.unset("activeItem");}else{this.state.set("activeItem",$this.text());}}},render:function(){if(this.state.get("open")&&!this.isOpen){this.open();}else if(!this.state.get("open")&&this.isOpen){this.close();} if(this.state.get("activeItem")&&this.state.get("activeItem")!=this.activeItem){this.setActiveItem(this.state.get("activeItem"));}else if(!this.state.get("activeItem")&&this.activeItem){this.clearActiveItem();}},open:function(){this.$filterGroup.trigger("dropdownOpened");this.$el.addClass("open");this.announceTransition();this.isOpen=true;},close:function(){this.$el.removeClass("open");this.announceTransition();this.isOpen=false;},setActiveItem:function(item){if(!this.activeItem){this.$filterGroup.trigger("dropdownActivated");this.$el.addClass("active");}else{this.$items.filter(".active").removeClass("active").addClass("not-active");} $("a:contains("+item+")",this.$items).parent().addClass("active").removeClass("not-active");this.$toggleTerm.text(item);this.activeItem=item;},clearActiveItem:function(){this.$el.removeClass("active");this.$items.filter(".active").removeClass("active").addClass("not-active");this.$toggleTerm.text(this.title);this.activeItem=undefined;},announceTransition:function(){this.$el.attr("transitioning","");this.$el.one("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend",function(){$(this).removeAttr("transitioning");});}});CL.Views.Stream=CL.View.extend({initialize:function(){var view=this,threshold=500;$(".next-posts-link a").attr("rel","internal");$(window).on("load.view-"+this.cid+" scroll.view-"+this.cid+" resize.view-"+this.cid,checkPosition);function checkPosition(){if(!CL.utilities.isMobile()){if($(window).scrollTop()+$(window).height()>$(document).height()-threshold){var nextURL=$(".next-posts-link a").attr("href");if(nextURL&&CL.router){CL.router.navigate(CL.utilities.getRelativePath(nextURL),{trigger:true,replace:true});}}}}}});CL.Views.CenteredImageContainer=Backbone.View.extend({initialize:function(){var view=this;this.$pictureFills=$("span[data-picture]",this.$el);this.$pictureFills.on("pictureChanged",function(){view.centerImage();});$(window).on("resize.view-"+this.cid,function(){view.centerImage();});},centerImage:function(){var $imgs=$("img",this.$pictureFills);$imgs.each(function(){var $image=$(this);if($image.get(0).complete){setTimeout(function(){position($image);},1);}else{$image.one("load error",function(){position($image);});} function position($el){$el.css({"margin-left":-0.5*$el.width(),"margin-top":-0.5*$el.height()});}});},tearDown:function(){CL.View.prototype.tearDown.call(this);}});CL.Views.FloatingActionContainer=CL.View.extend({initialize:function(){var view=this;this.position();$(window).on("resize.view-"+this.cid+" scroll.view-"+this.cid,function(){view.position()});},position:function(){var $reference=$("#"+this.options.referenceID);if(CL.utilities.isMobile()){this.$el.attr("data-state","loaded").css({"margin-top":"auto","top":"auto"});}else{var naturalDistance=$(window).height()/2,topDistance;if($reference.length){var referenceTop=$reference.offset().top,referenceHeight=$reference.outerHeight(true),referenceDistance=referenceTop+(referenceHeight/2),threshold=CL.utilities.scrollTop()+($(window).height()/2);if(referenceDistancethis.options.scrollThreshold&&!CL.utilities.isMobile()&&!this.isVisible){this.$el.fadeIn(this.options.animationDuration);this.isVisible=true;}else if((CL.utilities.scrollTop()<=this.options.scrollThreshold||CL.utilities.isMobile())&&this.isVisible){this.$el.fadeOut(this.options.animationDuration);this.isVisible=false;}}});