angular.module("fluro").directive("bootstrapTopNav",function(){return{restrict:"E",replace:!0,template:'<div class=container><div class=navbar-header><button type=button class="navbar-toggle collapsed" ng-click="isCollapsed = !isCollapsed"><span class=sr-only>Toggle navigation</span> <i class="fa fa-bars"></i></button> <a class=navbar-brand href="/"><img class=logo ng-src="{{$root.asset.imageUrl(logo._id, 300)}}"></a></div><div id=navbar class="navbar-collapse collapse" collapse=!isCollapsed><ul class="nav navbar-nav navbar-right"><li ng-repeat="menuItem in menu" ng-class="{\'dropdown\':menuItem.items.length, \'open\':isExpanded(menuItem)}"><a ng-class="{\'hidden-xs\':menuItem.items.length}" ui-sref={{menuItem.state}} ng-if="menuItem.type == \'state\'" ui-sref-active=active><span compile-html=menuItem.title></span> <span ng-if=menuItem.items.length class=caret></span></a> <a ng-class="{\'hidden-xs\':menuItem.items.length}" ng-attr-target="{{(menuItem.target.length) ? menuItem.target : undefined}}" ng-href={{menuItem.url}} ng-if="menuItem.type != \'state\'"><span compile-html=menuItem.title></span> <span ng-if=menuItem.items.length class=caret></span></a> <a ng-click=isolateToggle(menuItem) class=visible-xs-block ng-if=menuItem.items.length><span compile-html=menuItem.title></span><span class=caret></span></a><ul class=dropdown-menu ng-if=menuItem.items.length><li ng-repeat="subMenuItem in menuItem.items" ng-switch=subMenuItem.type><a ui-sref={{subMenuItem.state}} ng-switch-when=state ui-sref-active=active><span compile-html=subMenuItem.title></span></a> <a ng-attr-target="{{(subMenuItem.target.length) ? subMenuItem.target : undefined}}" ng-href={{subMenuItem.url}} ng-switch-default><span compile-html=subMenuItem.title></span></a></li></ul></li></ul></div></div>',scope:{logo:"=",menu:"="},controller:function($scope,$rootScope){$scope.expanded=[],$scope.isExpanded=function(menuItem){return _.contains($scope.expanded,menuItem)},$scope.expand=function(menuItem){return _.contains($scope.expanded,menuItem)?void 0:$scope.expanded.push(menuItem)},$scope.isolateToggle=function(menuItem){_.contains($scope.expanded,menuItem)?$scope.collapse(menuItem):$scope.expanded=[menuItem]},$scope.toggleExpanded=function(menuItem){$scope.isExpanded(menuItem)?$scope.collapse(menuItem):$scope.expand(menuItem)},$scope.collapse=function(menuItem){_.contains($scope.expanded,menuItem)&&_.pull($scope.expanded,menuItem)},$rootScope.$on("$stateChangeStart",function(evt,to,params){$scope.isCollapsed=!1,$scope.expanded=[],console.log("State changed")})}}}),angular.module("fluro").directive("listMap",function($window,$timeout){return{restrict:"E",replace:!0,template:"<div class=map-outer><div class=map-inner></div></div>",scope:{model:"=ngModel",selectCallback:"=ngSelectCallback",params:"&ngParams"},link:function($scope,$element,$attrs){var mapOptions,map,marker,mapOptions={zoom:15,mapTypeId:google.maps.MapTypeId.ROADMAP,maxZoom:15,scrollwheel:!1,draggable:!1};$scope.ngParams&&(mapOptions=$scope.ngParams());var initialize=function(){map=new google.maps.Map($element.find(".map-inner").get(0),mapOptions),angular.element($window).bind("resize",fitMap)},createMarker=function(location){if(location.latitude&&location.longitude){var position=new google.maps.LatLng(location.latitude,location.longitude);map.setCenter(position),marker=new google.maps.Marker({map:map,position:position,title:location.title}),google.maps.event.addListener(marker,"click",function(){$timeout(function(){$scope.selectCallback&&$scope.selectCallback(location)})})}};$scope.$watch("model",function(model){model&&_.each(model,createMarker),fitMap()});var fitMap=function(){var bounds=new google.maps.LatLngBounds;_.each($scope.model,function(location){if(location.latitude&&location.longitude){var myLatLng=new google.maps.LatLng(location.latitude,location.longitude);bounds.extend(myLatLng)}}),map.fitBounds(bounds)};initialize()}}}),angular.module("fluro").directive("heroUnit",function(){return{restrict:"E",replace:!0,template:'<div class=hu><div class=hu-outer><div class=hu-inner ng-transclude></div></div><div class=hu-background ng-switch=background._type><fluro-video ng-params={autoplay:1} ng-model=background ng-switch-when=video></fluro-video><div class=img style="background-image: url({{$root.asset.imageUrl(background._id, 1200)}})" ng-switch-default><img ng-src="{{$root.asset.imageUrl(background._id, 1200)}}" preload-image></div></div></div>',transclude:!0,scope:{background:"="}}}),angular.module("fluro").directive("preloadImage",function(){return{restrict:"A",link:function(scope,element,attrs){var aspect=angular.isDefined(attrs.aspect)?scope.$parent.$eval(attrs.aspect):0;aspect||(aspect=0),scope.aspect=aspect,aspect?element.wrap('<div class="preload-image-outer aspect-ratio" style="padding-bottom:'+scope.aspect+'%"></div>'):element.wrap('<div class="preload-image-outer"></div>');var preloader=angular.element('<span class="image-preloader"><i class="fa fa-spinner fa-spin"/></span>');element.on("load",function(){element.removeClass("preload-hide"),element.addClass("preload-show"),preloader.remove()}),scope.$watch("ngSrc",function(){element.addClass("preload-hide"),element.parent().append(preloader)})}}}),angular.module("fluro").controller("WorkshopController",function($scope){$scope.selection={},$scope.$watch("results",function(){$scope.states=_.groupBy($scope.results,function(item){return item.state}),$scope.selection.activeState=$scope.states.Victoria})}),angular.module("fluro").filter("divide",function(){var func=function(array,chunk){array||(array=[]);var div=Math.floor(array.length/chunk);console.log("Divide by",div);var chunked=_.chunk(array,div);return chunked};return _.memoize(func)}),angular.module("fluro").filter("chunked",function(){var func=function(array,chunk){var chunked=_.chunk(array,chunk);return chunked};return _.memoize(func)});