angular.module("gallery.module",[]).controller("categoryListingCtrl",["$scope","data","$rootScope","categoryHelper","helper","$timeout",function(n,t,i,r,u){"use strict";n.categories=[],n.pageCategories=[],n.userCategories=[],n.setData=function(){for(var r=[],u,i=0;i<n.pageCategories.length;++i)r.push(n.pageCategories[i].id);u={excludedCategories:r},t.post(n.populateData,"/api/Category",null,u,"object")},n.getCategories=function(n){var f=[],e=u.getBodyData(n),i,t,r,o;if(e!=undefined)for(i=e.split(","),t=0;t<i.length;++t)r=i[t].split("|"),o={id:r[0],name:r[1]},f.push(o);return f},n.getPageCategories=function(){for(var r=n.getCategories("data-tags"),i,t=0;t<r.length;++t)i=r[t],n.pageCategories.push(i),n.addCategory(i.id)},n.getUserCategories=function(){for(var r=n.getCategories("data-tags-user"),i,t=0;t<r.length;++t)i=r[t],n.pageCategories.push(i),n.addCategory(i.id)},n.populateData=function(t){t.length>0&&(n.categories=t)},n.hasMasterCategories=function(){return n.hasCategroeis(n.categories)},n.hasCategories=function(n){return n!=undefined&&n.length>0},n.addCategory=function(n){r.hasCategory(n)?r.removeCategory(n):r.addCategory(n)},n.isCategoryInUserFilters=function(t){var r=!1,i,u;if(n.userCategories!=undefined&&n.userCategories.length>0){i=0;do u=n.userCategories[i],r=u.id==t,i++;while(!r&&i<n.userCategories.length)}return r},n.toggleFilters=function(n){n.preventDefault(),i.showFilters=!i.showFilters},n.getPageCategories(),n.getUserCategories()}]).controller("galleryListingCtrl",["$scope","$rootScope","$sce","data","categoryHelper","createShare","shareySend","helper","$timeout",function(n,t,i,r,u,f,e,o,s){"use strict";n.relatedItems=[],n.shareyBuilder=function(n,t){f.build(n.url,t)},n.viewMore=function(t,i){i.preventDefault(),n.viewLimit+=t,s(function(){n.$broadcast("bindToggles"),n.$broadcast("setMasonry"),n.$broadcast("loadMoreItems")},0)},n.messageSent=!1,n.shareMessage=!0,n.messageProcess=function(n,t){n=n==="true"?!0:!1,t.returnMessage=n,t.messageSent=!0,t.shareMessage=!1},n.setData=function(){var t=n.getSearchObject();n.viewLimit=10,r.post(n.populateData,"/api/CategorySearch",null,t,"object"),$("body").data("tags").indexOf("39")!=-1&&n.findLocation()},n.getSearchObject=function(){return{categories:u.getCategories(),section:o.getBodyData("data-category")}},n.hasGalleryItems=function(){return n.relatedItems.length>0},n.isDateTimeSet=function(n){return n.date!="0001-01-01T00:00:00"},n.hasGalleryImage=function(n){return n.galleryListingImage!=undefined},n.hasItem=function(n){return n!=null||n!=undefined},n.hasCategories=function(n){return n.categories!=undefined&&n.categories.length>0},n.safeContent=function(n){return i.trustAsHtml(n)},n.populateData=function(t){t.relatedItems.length>0&&(n.relatedItems=t.relatedItems),s(function(){n.$broadcast("bindToggles"),n.$broadcast("setMasonry")},0)},n.findLocation=function(i,r){n.setPreset=i,r&&r.preventDefault(),navigator.geolocation?navigator.geolocation.getCurrentPosition(function(i){n.revGeocode(i),t.locationError=!1},function(i){switch(i.code){case 1:t.locationError="Sorry, your location is not accessible. Please enable geolocation or enter a location into the box above.",t.disableGeolocate=!0;break;case 2:t.locationError="Sorry, your location is not available. Please enter a location into the box above.",t.disableGeolocate=!0;break;case 3:t.locationError="Sorry, it has taken too long to find you. Please enter a location into the box above.",t.disableGeolocate=!0}n.$apply()},{enableHighAccuracy:!1,timeout:1e4}):(t.locationError="Your browser doesn’t support geolocation. Please enter a location into the box above.",t.disableGeolocate=!0)},n.revGeocode=function(t){var i=new google.maps.Geocoder,r=new google.maps.LatLng(t.coords.latitude,t.coords.longitude);i.geocode({latLng:r},function(t){var r=t[0].address_components[3],i;r.types.indexOf("administrative_area_level_2")!=-1&&(i=r.long_name,i=="Greater London"&&(i="Middlesex")),n.county=i,s(function(){n.$broadcast("bindToggles"),n.$broadcast("setMasonry"),n.$broadcast("loadMoreItems")},0)})},n.setData(),n.$on("bindToggles",function(){var n=new blockSlide({triggerClasses:[".messageToggle",".messageToggle, .btn.tags, .btn.share"],maskClass:".messageMask",maskedClass:".messageMasked",customWrap:".item-controls",heightAuto:!0,speed:200}),t=new blockSlide({triggerClasses:[".btn.tags",".btn.tags, .btn.share"],maskClass:".tag-mask",maskedClass:".tag-mask .masked",speed:200}),i=new blockSlide({triggerClasses:[".btn.share",".btn.share, .btn.tags"],maskClass:".share-mask",maskedClass:".share-mask .masked",speed:200})}),n.$on("setMasonry",function(){n.container=$(".listing > section"),n.container.imagesLoaded(function(){n.container.masonry({columnWidth:".item",itemSelector:".item"})})}),n.$on("loadMoreItems",function(){n.container.masonry("reloadItems")}),n.$on("categoriesUpdated",function(){n.setData()})}]).directive("rwShareMail",["shareySend",function(n){return{link:function(t,i,r){var u,f,e;if(t.shareName,t.shareTo,u=function(i){i.preventDefault();var r=this.getAttribute("data-sharey")?JSON.parse(this.getAttribute("data-sharey")):undefined,u=t.$parent.item.url;r?(t.shareName=r.name?!0:!1,t.shareTo=r.to?t.IsEmail(r.to)?!0:!1:!1,r.url=u,t.shareName==!0&&t.shareTo==!0&&n.post(t.messageProcess,"/api/email",r,t)):(t.shareName=!1,t.shareTo=!1),t.$apply()},t.IsEmail=function(n){return/^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(n)},f=function(n){n.preventDefault(),delete t.returnMessage,delete t.sharey,t.messageSent=!1,t.shareMessage=!0,t.$apply()},e=r.runFunction,e==="submitMessage")i.on("click",u);else i.on("click",f)}}}])