CL.Views.Browser=Backbone.View.extend({initialize:function(){var view=this;this.state=new CL.Models.ViewState();this.pages=new CL.Collections.Pages();this.$wrapper=$("#wrapper",this.$el);var initialPage=new CL.Models.Page({"url":window.location.pathname,"html":$("#wrapper").html(),"title":document.title});initialPage.scanRegions();this.pages.add(initialPage);this.state.set({"page":initialPage});this.regions={};$("section.region",this.$el).each(function(){var id=$(this).data("region-id"),method=CL.utilities.upcase(id)+"Region";view.regions[id]=new CL.Views[method]({el:$(this),pages:view.pages,state:view.state});});this.trackModifierKeys();$("body").on("click","a[rel=internal]",function(ev){var $this=$(ev.currentTarget);if($this.data("special-action")){ev.preventDefault();var method=$this.data("special-action");view[method]&&view[method]($this);}else if(CL.router&&!ev.ctrlKey&&!ev.metaKey){ev.preventDefault();var $this=$(ev.currentTarget);if($this.data("temp-slide-direction")){view.state.set({"tempSlideDirection":$this.data("temp-slide-direction")});} CL.router.navigate(CL.utilities.getRelativePath($this.attr("href")),{trigger:true});}});},goToURL:function(url,options){var view=this,newPage=this.pages.getOrCreatePage(url);this.currentRequest=url;newPage.getOrFetchHTML(function(){if(view.currentRequest==url){view.currentRequest=undefined;document.title=newPage.get("title");view.state.set({"page":newPage});}},function(){if(view.currentRequest==url){document.location=url;}});},trackModifierKeys:function(){var view=this;$(window).on("keydown",function(ev){if(ev.metaKey){view.commandPressed=true;} if(ev.ctrlKey){view.ctrlPressed=true;}}).on("keyUp",function(ev){if(ev.metaKey&&view.commandPressed){view.commandPressed=false;} if(ev.ctrlKey){view.ctrlPressed=false;}});},updateGrid:function($filter){var $grid=$(".media-list",this.$el),mediaList=$grid.data("media-list"),url=$filter.attr("href");if(mediaList){mediaList.state.set({"filterKey":$filter.data("filter-key"),"filterValue":$filter.data("filter-value")});} if(CL.router){this.state.set("renderlessNavigate",true);CL.router.navigate(CL.utilities.getRelativePath(url),{trigger:true});this.state.set("renderlessNavigate",false,{silent:true});}}});