var mod;mod=angular.module("infinite-scroll",[]),mod.value("THROTTLE_MILLISECONDS",null),mod.directive("infiniteScroll",["$rootScope","$window","$interval","THROTTLE_MILLISECONDS",function(e,o,t,r){return{scope:{infiniteScroll:"&",infiniteScrollContainer:"=",infiniteScrollDistance:"=",infiniteScrollDisabled:"=",infiniteScrollUseDocumentBottom:"=",infiniteScrollListenForEvent:"@"},link:function(i,s,a){var n,c,l,p,d,u,f,g,$,h,m,w,_,v,b,S,x;return x=angular.element(o),_=null,v=null,c=null,l=null,h=!0,S=!1,b=null,$=function(e){return e=e[0]||e,isNaN(e.offsetHeight)?e.document.documentElement.clientHeight:e.offsetHeight},m=function(e){if(e[0].getBoundingClientRect&&!e.css("none"))return e[0].getBoundingClientRect().top+w(e)},w=function(e){return e=e[0]||e,isNaN(window.pageYOffset)?e.document.documentElement.scrollTop:e.ownerDocument.defaultView.pageYOffset},g=function(){var o,t,r;return l===x?(o=$(l)+w(l[0].document.documentElement),r=m(s)+$(s)):(o=$(l),t=0,void 0!==m(l)&&(t=m(l)),r=m(s)-t+$(s)),S&&(r=$((s[0].ownerDocument||s[0].document).documentElement)),r-o<=$(l)*_+1?(c=!0,v?i.$$phase||e.$$phase?i.infiniteScroll():i.$apply(i.infiniteScroll):void 0):c=!1},null!=r&&(g=function(e,o){var r,i,s;return s=null,i=0,r=function(){return i=(new Date).getTime(),t.cancel(s),s=null,e.call(),null},function(){var a,n;return a=(new Date).getTime(),(n=o-(a-i))<=0?(clearTimeout(s),t.cancel(s),s=null,i=a,e.call()):s?void 0:s=t(r,n,1)}}(g,r)),i.$on("$destroy",(function(){if(l.unbind("scroll",g),null!=b)return b(),b=null})),u=function(e){return _=parseFloat(e)||0},i.$watch("infiniteScrollDistance",u),u(i.infiniteScrollDistance),d=function(e){if((v=!e)&&c)return c=!1,g()},i.$watch("infiniteScrollDisabled",d),d(i.infiniteScrollDisabled),f=function(e){return S=e},i.$watch("infiniteScrollUseDocumentBottom",f),f(i.infiniteScrollUseDocumentBottom),(n=function(e){if(null!=l&&l.unbind("scroll",g),l=e,null!=e)return l.bind("scroll",g)})(x),i.infiniteScrollListenForEvent&&(b=e.$on(i.infiniteScrollListenForEvent,g)),p=function(e){if(null!=e&&0!==e.length){if(e instanceof HTMLElement?e=angular.element(e):"function"==typeof e.append?e=angular.element(e[e.length-1]):"string"==typeof e&&(e=angular.element(document.querySelector(e))),null!=e)return n(e);throw new Exception("invalid infinite-scroll-container attribute.")}},i.$watch("infiniteScrollContainer",p),p(i.infiniteScrollContainer||[]),null!=a.infiniteScrollParent&&n(angular.element(s.parent())),null!=a.infiniteScrollImmediateCheck&&(h=i.$eval(a.infiniteScrollImmediateCheck)),t((function(){if(h)return g()}),0,1)}}}]);var BrowsePage=angular.module("ngBrowsePage",["ngResource","infinite-scroll","prudentDirectives","prudentFavorites","prudentFilters","prudentModals","prudentPopOffer","prudentReviews","prudentUtilities","ui.bootstrap","ui.select","angularUtils.directives.dirPagination","prudentVersioning","ngSanitize","afkl.lazyImage"]).config(["$interpolateProvider",function(e){e.startSymbol("[[").endSymbol("]]")}]).config(["$locationProvider",function(e){e.html5Mode({enabled:!0,requireBase:!1})}]);angular.module("ngBrowsePage").directive("productbox",["$log","$window",function(e,o){return{restrict:"A",scope:{product:"=",index:"="},link:function(e,t,r){t.bind("click",(function(r){return(event.ctrlKey||event.metaKey)&&t.attr("target","_blank"),e.product.position=e.index+1,e.product.path=o.location.pathname,o.Analytics.track(["Ecommerce","Click","",e.product.orderProcessName,e.product.sku]),!0}))}}}]),BrowsePage.directive("scroll",["$window","$location",function(e,o){var t=document.body.clientHeight,r=0;return{restrict:"A",scope:!1,link:function(o,i,s){angular.element(e).bind("scroll",(function(){var e=document.documentElement.scrollTop||document.body.scrollTop;if(e>300?o.showBackToBrowse():o.hideBackToBrowse(),Math.abs(r-e)<500)o.$apply();else{var i=e+t,s="browsepage-offset-"+o.category+"-"+o.currentPage;$(".offset").each((function(o){var t=$(this),r=(t.data("sku"),t.offset().top+202.5);if(r<=i&&r>=e){var a=t.data("offset");return sessionStorage.setItem(s,a),!1}})),o.$apply(),e>r&&(o.offset=parseInt(sessionStorage.getItem(s))),r=e}}))}}}]),BrowsePage.filter("cleanFilterOptionDisplay",(function(){return function(e){return e.replace("'","'")}})),BrowsePage.service("browsePageService",["$log","$http",function(e,o){this.lock=!1,this.folderFoilSwatches=[],this.certificateColors=[],this.cdn_url=API_CDN_URL,window.location.hostname.indexOf("gallerycollection.ca")>-1&&(this.cdn_url=API_CDN_URL.replace(".com",".ca")),this.getProducts=function(e,t,r,i,s,a){e?o.post("/api/product/byskuarray/"+r+"/"+i,{sku_arr:e}).then((function(e){a(e.data)})):o.get(this.cdn_url+"/api/product/bycategory/"+t).then((function(e){a(e.data)}))},this.getFolderFoilSwatches=function(e){if(this.lock&&0!=this.folderFoilSwatches)return this.folderFoilSwatches;this.lock=!0,o.post("/api/imprintcolors/folderFoilSwatches").then((function(o){this.lock=!1,this.folderFoilSwatches=o.data,e(o.data)}))},this.getCertificateColors=function(e){if(this.lock&&0!=this.certificateColors)return this.certificateColors;this.lock=!0,o.post("/api/imprintcolors/certificateColors").then((function(o){this.lock=!1,this.certificateColors=o.datae,e(o.data)}))}}]),BrowsePage.controller("browsePageController",["$scope","$log","$window","$location","$interval","$filter","$uibModal","$rootScope","browsePageService","favoriteService","paginationService","popOfferService","UtilityService","reviewService",function($scope,$log,$window,$location,$interval,$filter,$uibModal,$rootScope,browsePageService,favoriteService,paginationService,popOfferService,UtilityService,reviewService){$scope.products=[],$scope.productsFiltered=[],$scope.active_requests=[],$scope.category,$scope.currentPage,$scope.per_page,$scope.total_count,$scope.page_start,$scope.page_end,$scope.searchTotalCount,$scope.offset,$scope.showCreateYourOwn="0",$scope.limit=18,$scope.end_of_page=!1,$scope.mobile=window.innerWidth<=800,$scope.card_sizes=[{name:'Standard (3.5" x 2")',icon:"icon-standard_size_icon"}],$scope.card_size,$scope.AB_product_box_price_range,$scope.per_page_options=[{value:"27",name:"27 per page"},{value:"54",name:"54 per page"},{value:"108",name:"108 per page"},{value:"9999",name:"View all"}],$scope.per_page_selected,$scope.paginationSize=6,$scope.impressionSent=[],$scope.folderFoilSwatches=[],$scope.folderSelectedSwatches=[],$scope.certificateColors=[],$scope.certificateSelectedColors=[],$scope.showBackToBrowse=!1,$scope.disableFilters=!1,$scope.showFilters=!1,$scope.filtersInitialized=!1,$scope.selectedFilterNames=[],$scope.browseFilterGroups=[{name:"Occasion",expanded:!0,options_product_field:"occasion"},{name:"Discount",expanded:!0,options_product_field:"filter_discount"},{name:"Front Greeting",expanded:!0,options_product_field:"front_sentiment"},{name:"Front Customization",expanded:!0,options:[{name:"Company Name on Front",expression:"product.filter_company_name_on_front"},{name:"Logo on Front",expression:"product.filter_logo_on_front"},{name:"Photo on Front",expression:"product.filter_photo_on_front"}]},{name:"Theme",expanded:!0,options_product_field:"filter_theme"},{name:"Industry",expanded:!0,options_product_field:"filter_industry"},{name:"Card Size",expanded:!0,options:[{name:'7-7/8" x 5-1/2"',expression:"product.size.replace(/”/g,'\"') == '7-7/8\" x 5-1/2\"' && !product.isFlatCard",image:"cardSize_7-and-7-eighthsx-5-andhalf@2x.png"},{name:'5-1/2" x 7-7/8"',expression:"product.size.replace(/”/g,'\"') == '5-1/2\" x 7-7/8\"' && product.name.indexOf('Calendar') < 0 && !product.isFlatCard",image:"cardSize_5-andhalfx-7-and-7-eighths@2x.png"},{name:'5-1/2" x 7-7/8" Calendar',displayName:'5-1/2" x 7-7/8"',expression:"product.size.replace(/”/g,'\"') == '5-1/2\" x 7-7/8\"' && product.name.indexOf('Calendar') >= 0 && !product.isFlatCard",image:"cardSize_5-andhalfx-7-and-7-eighths-folds@2x.png"},{name:'5" x 7"',expression:"product.size.replace(/”/g,'\"') == '5\" x 7\"'",image:"cardSize_5-andhalfx-7-and-7-eighths-folds@2x.png"},{name:'5-1/2" x 4-1/4"',expression:"product.size.replace(/”/g,'\"') == '5-1/2\" x 4-1/4\"'",image:"cardSize_5-andhalfx-4-and-1-fourth@2x.png"},{name:'4-1/4" x 5-1/2"',expression:"product.size.replace(/”/g,'\"') == '4-1/4\" x 5-1/2\"'",image:"cardSize_4-and-1-fourthx-5-andhalf@2x.png"},{name:'7-7/8" x 5-1/2" Flat',displayName:'7-7/8" x 5-1/2"',expression:"product.size.replace(/”/g,'\"') == '7-7/8\" x 5-1/2\"' && product.isFlatCard",image:"cardSize_7-and-7-eighthsx-5-andhalf_flat@2x.png"},{name:'5-1/2" x 7-7/8" Flat',displayName:'5-1/2" x 7-7/8"',expression:"product.size.replace(/”/g,'\"') == '5-1/2\" x 7-7/8\"' && product.isFlatCard",image:"cardSize_5-andhalfx-7-and-7-eighths_flat@2x.png"}]},{name:"Print Method",expanded:!0,options:[{name:"Gallery Letterpress",expression:"product.printMethodClassSuffix == 'g'",class_suffix:"g"},{name:"Gallery Letterpress w/ Photo",expression:"product.printMethodClassSuffix == 'p'",class_suffix:"p"},{name:"Foil Enhanced Digital",expression:"product.printMethodClassSuffix == 'e'",class_suffix:"e"},{name:"Digital",expression:"product.printMethodClassSuffix == 'd'",class_suffix:"d"}]},{name:"Front Foil Color",expanded:!0,options:[{name:"Gold",expression:"product.frontFoil == 'Gold' && product.printMethodClassSuffix != 'd'"},{name:"Silver",expression:"product.frontFoil == 'Silver' && product.printMethodClassSuffix != 'd'"},{name:"Blue",expression:"product.frontFoil == 'Blue' && product.printMethodClassSuffix != 'd'"},{name:"Red",expression:"product.frontFoil == 'Red' && product.printMethodClassSuffix != 'd'"},{name:"Green",expression:"product.frontFoil == 'Green' && product.printMethodClassSuffix != 'd'"}]}],$scope.init=function(e,o,t,r,i,s,a){if($scope.category=e,$scope.currentPage=""!==o?o:1,$scope.sku_arr=r,sessionStorage.setItem("sku_arr_str",r),$scope.filters=i,$scope.searchTotalCount=s,$scope.showCreateYourOwn=a,$scope.end_of_page=!1,$scope.category!=sessionStorage.getItem("browsepage-lastcategory")&&(sessionStorage.setItem("browsepage-lastcategory",$scope.category),sessionStorage.removeItem("browsepage-offset-"+$scope.category+"-"+$scope.currentPage),sessionStorage.removeItem("browsepage-selectedFilterNames-"+$scope.category),sessionStorage.removeItem("browsepage-showFilters-"+$scope.category)),$scope.currentPage!=sessionStorage.getItem("browsepage-pagenumber")&&(sessionStorage.setItem("browsepage-pagenumber",$scope.currentPage),sessionStorage.removeItem("browsepage-offset-"+$scope.category+"-"+$scope.currentPage)),"9999"!=t?null!=(t=sessionStorage.getItem("browsepage-perpage-"+$scope.category))?($scope.per_page_selected=$scope.findPerPageByValue(t),$scope.per_page=$scope.per_page_selected.value):($scope.per_page_selected=$scope.findPerPageByValue($scope.mobile?"27":"54"),$scope.per_page=$scope.per_page_selected.value):$scope.per_page="9999",($location.absUrl().indexOf("all-occasion-cards/postcards.htm")>-1||$location.absUrl().indexOf("all-occasion-cards/moving-announcement-postcards.htm")>-1||$location.absUrl().indexOf("christmas-cards/enhanced-digital-wall-calendars.htm")>-1||$location.absUrl().indexOf("all-occasion-cards/correspondence-note-cards.htm")>-1||$location.absUrl().indexOf("business-cards/")>-1||$location.absUrl().indexOf("presentation-folders/")>-1||$location.absUrl().indexOf("certificate-holders/")>-1||$location.absUrl().indexOf("assortment-boxes/")>-1||$location.absUrl().indexOf("museum-art-masterpieces.htm")>-1)&&($scope.disableFilters=!0),$scope.offset=sessionStorage.getItem("browsepage-offset-"+e+"-"+$scope.currentPage)?sessionStorage.getItem("browsepage-offset-"+e+"-"+$scope.currentPage):0,"1"==$scope.showCreateYourOwn&&!$scope.products.length){var n="CYO_browse";$location.absUrl().indexOf("birthday")>=0?n="bday_browse":$location.absUrl().indexOf("all-occasion")>=0&&(n="AO_browse"),$scope.products.push({id:"CYO",img:CDN_URL+"/themes/default/images/cyo/"+n+".jpg"})}if(""!=$scope.filters){var c=sessionStorage.getItem("browsepage-cardsize-"+$scope.category);$scope.card_size=null!=c?$scope.findCardSizeByName(c):$scope.card_sizes[0]}if($(window).on("load",(function(e){$scope.setPopOfferAffix(e)})),$(window).on("resize",(function(e){$scope.setPopOfferAffix(e)})),$scope.updatePaginationSize(),$(".browse-top-bar").on("affix.bs.affix",(function(){$(".browse-content-wrapper, .browse_filters").addClass("browse-top-bar-affixed")})).on("affix-top.bs.affix",(function(){$(".browse-content-wrapper, .browse_filters").removeClass("browse-top-bar-affixed")})),$scope.mobile){var l=($(".banner").outerHeight(!0)?$(".banner").outerHeight(!0):0)+($(".navbar").outerHeight(!0)?$(".navbar").outerHeight(!0):0)+($(".browse-header-info").outerHeight(!0)?$(".browse-header-info").outerHeight(!0):0);$(".browse-top-bar").affix({offset:{top:l}})}$scope.addProducts((function(){setTimeout((function(){$("html,body").scrollTop(1),$("html,body").scrollTop(0),setInterval($scope.trackImpressions,1250)}),1e3)})),$scope.page_start=($scope.currentPage-1)*$scope.per_page,$scope.page_end=parseInt($scope.page_start-1)+parseInt($scope.per_page),sessionStorage.setItem("browsepage-location_absurl",$location.absUrl()),$location.absUrl().indexOf("business-cards/foil-business-cards.htm")<0&&1==$scope.card_sizes.length&&$scope.card_sizes.push({name:'Credit Card (3.3" x 2.16")',icon:"icon-credit_size_icon"}),favoriteService.init(),$scope.updateFavoriteIcons()},$scope.setPopOfferAffix=function(e){if(0!=$(".popOfferCallout.browsePage").length){var o=$("#header").outerHeight(!0)+($(".pagination-wrapper").outerHeight(!0)?$(".pagination-wrapper").outerHeight(!0):0)+$(".popOfferCallout").outerHeight(!0)+$("#sidebar").outerHeight(!0)+($(".banner").outerHeight(!0)?$(".banner").outerHeight(!0):0),t=10+$("#footer-lower").outerHeight(!0)+$("#footer").outerHeight(!0)+$("#email-signup").outerHeight(!0)+$(".category-content").outerHeight(!0)+($(".pagination-wrapper").outerHeight(!0)?$(".pagination-wrapper").outerHeight(!0):0);$(".offerAffixTopOffset").length&&$(".offerAffixTopOffset").each((function(e){var t=$(this).outerHeight(!0);o+=t})),null==e||"resize"==e.type?$(".popOfferCallout.browsePage").data("bs.affix")&&($(".popOfferCallout.browsePage").data("bs.affix").options.offset={top:o,bottom:t}):$(".popOfferCallout.browsePage").affix({offset:{top:o,bottom:t}})}},$scope.addProducts=function(e){var o;if((o=null!=$scope.offset?0==$scope.offset&&"1"==$scope.showCreateYourOwn&&"1"==$scope.currentPage?$scope.limit+parseInt($scope.offset)-1:$scope.limit+parseInt($scope.offset):$scope.limit)<=0)return!1;if($scope.end_of_page)return!1;if(""!=$scope.filters)var t={card_size:$scope.card_size.name.indexOf("Credit Card ")>-1?"Credit Card":"Standard"};else t={};browsePageService.getProducts($scope.sku_arr,$scope.category,o,$scope.offset,t,(function(e){0==e.products.length&&($scope.end_of_page=!0),$scope.products=$scope.products.concat(e.products),$scope.products=$scope.products.filter($scope.productFilter),$scope.total_count="9999"==$scope.per_page&&""!=$scope.sku_arr?$scope.sku_arr.split(",",9999).length:e.total_count,$scope.page_end=$scope.page_end>$scope.total_count||"all"===$scope.per_page?$scope.total_count:$scope.page_end,$scope.initIntervalPromise=$interval((function(){$scope.products!=[]&&($interval.cancel($scope.initIntervalPromise),$scope.initIntervalPromise=void 0,$scope.initFolderSwatches(),$scope.initCertificateColors(),$scope.initDefaultColors())}),500),$scope.productsFiltered=$scope.products,$scope.showFilters=sessionStorage.getItem("browsepage-showFilters-"+$scope.category)||!1,$scope.showFilters&&!$scope.disableFilters&&$scope.handleShowFilters(),setTimeout((function(){UtilityService.preparePopover("/angular/shared/popovers/","print_method_g","auto right","width:230px;","hover",!1),UtilityService.preparePopover("/angular/shared/popovers/","print_method_p","auto right","width:300px;","hover",!1),UtilityService.preparePopover("/angular/shared/popovers/","print_method_d","auto right","width:230px;","hover",!1),UtilityService.preparePopover("/angular/shared/popovers/","print_method_e","auto right","width:300px;","hover",!1),UtilityService.preparePopover("/angular/shared/popovers/","print_method_eb","auto right","width:230px;","hover",!1),UtilityService.preparePopover("/angular/shared/popovers/","design_details","auto top","width:300px;","hover",!1),UtilityService.preparePopover("/angular/shared/popovers/","folder_capacity_large","auto right","width:725px;height:553px;","hover",!1),UtilityService.preparePopover("/angular/shared/popovers/","folder_capacity_standard","auto right","width:725px;height:553px;","hover",!1)}),1e3),1!=$scope.currentPage&&$scope.gotoPage($scope.currentPage)})),null!=e&&"function"==typeof e&&e()},$scope.getNumber=function(e){for(var o=[],t=0;t-1&&browsePageService.getFolderFoilSwatches((function(e){$scope.folderFoilSwatches=e,angular.forEach($scope.products,(function(e){60!=e.product_code||e.productVariation?60==e.product_code&&$location.absUrl().indexOf("/large-capacity-stock-folders")>-1&&(e.url+="?capacity=large"):(existing_swatch_choices=$.cookie("browsepage-folder-swatch-choices"),existing_swatch_choices&&existing_swatch_choices.indexOf(e.catalogNumber)>-1?(existing_swatch_choices_arr=existing_swatch_choices.split(","),existing_swatch_choices_arr.forEach((function(o){o.indexOf(e.catalogNumber)>-1&&(e.selectedSwatch=$scope.findSwatchByDefault(o.split(":")[1]),$scope.handleFoilSwatch(e.selectedSwatch,e,!0))}))):(e.selectedSwatch=$scope.findSwatchByDefault(e.defaultImprintColor),$scope.handleFoilSwatch(e.selectedSwatch,e,!0)))}))}))},$scope.initCertificateColors=function(){0==$scope.certificateColors.length&&($location.absUrl().indexOf("certificate-holders/browse-all-certificates")>-1||$location.absUrl().indexOf("search")>-1)&&browsePageService.getCertificateColors((function(e){$scope.certificateColors=e,angular.forEach($scope.products,(function(e){63==e.product_code&&(existing_color_choices=$.cookie("browsepage-certificate-color-choices"),existing_color_choices&&existing_color_choices.indexOf(e.catalogNumber)>-1?(existing_color_choices_arr=existing_color_choices.split(","),existing_color_choices_arr.forEach((function(o){o.indexOf(e.catalogNumber)>-1&&(e.selectedColor=$scope.findColorByDefault(o.split(":")[1]),$scope.handleSelectColor(e.selectedColor,e,!0))}))):(e.selectedColor=$scope.findColorByDefault(e.defaultColor),$scope.handleSelectColor(e.selectedColor,e,!0)))}))}))},$scope.initDefaultColors=function(){($location.absUrl().indexOf("presentation-folders/")>-1||$location.absUrl().indexOf("/certificate-holders/")>-1||$location.absUrl().indexOf("search")>-1)&&angular.forEach($scope.products,(function(e){if([60,62].indexOf(e.product_code)>=0&&e.productVariation){var o=e.colorOptions.find((function(o){return o.sku==e.sku}));$scope.handleCertificateHolderSwatch(o,e)}}))},$scope.getShowPrintMethod=function(e){var o=e.product_code;return!([48,49,50,52,61].indexOf(o)<0)},$scope.getPrintMethodClass=function(e){var o=e.product_code;if([48,49,50,52,61].indexOf(o)<0)return"";var t=e.printMethodClassSuffix,r=[];return r.push("icon-gc_icons_print_method_"+t),r.push("print_method_"+t+(61==o&&"e"==t?"b":"")),r},$scope.getShowFoilBadge=function(e){var o=e.product_code;return!([49,50,52,61].indexOf(o)<0)&&(!e.isDep||e.isEnhancedDep)},$scope.getFoilBadgeClass=function(e){var o=e.product_code;if([49,50,52,61].indexOf(o)<0)return"";var t=e.isSpotGloss?"gloss":e.frontFoil.replace(" ","-").toLowerCase();return 0==t.length&&(t="none"),"foil-"+t},$scope.productFilter=function(e){return e.business_card_size&&$scope.card_size.name.indexOf("Credit Card ")>-1?"Credit Card"==e.business_card_size:!e.business_card_size||"Standard"==e.business_card_size},$scope.handleViewVideo=function(e){$window.Analytics.track(["Card Browsing Page","Clicked Video","",e.orderProcessName,e.sku])},$scope.toggleFavorite=function(e){var o;"string"==typeof e?o=e:"object"==typeof e&&(o=void 0!==e.selectedSwatch&&e.selectedSwatch.hasOwnProperty("sku")?e.selectedSwatch.sku:e.sku),favoriteService.isFavorite(o)?favoriteService.deleteFavorite(o,!1,(function(){$scope.updateFavoriteIcons(),$window.Analytics.track(["Card Browsing Page","Clicked Favorites","Removed",e.orderProcessName,e.sku])})):(favoriteService.addFavorite(o,(function(){$scope.updateFavoriteIcons()})),$window.Analytics.track(["Card Browsing Page","Clicked Favorites","Added",e.orderProcessName,e.sku]))},$scope.updateFavoriteIcons=function(){favoriteService.getFavorites().length>0?$scope.showFavBadge=!0:($scope.showFavBadge=!1,$(".favorites-count").text("0"))},$scope.isFavorite=function(e){return favoriteService.isFavorite(e)},$scope.isFavoriteOld=function(e,o){return favoriteService.isFavorite(e,o)},$scope.handleViewLarger=function(e,o){$scope.sku_arr?(sku_array=$scope.sku_arr.split(","),sku_array.indexOf(e.sku)):($window.Analytics.track(["Card Browsing Page","Clicked View Larger","",e.orderProcessName,e.sku]),e.position=o+1,e.path=$window.location.pathname)},$scope.handleCardSizeSelect=function(e){var o=$scope.findCardSizeByName(e.name);if(void 0!==o){var t="browsepage-cardsize-"+$scope.category;sessionStorage.setItem(t,o.name),$scope.card_size=o}paginationService.setCurrentPage(paginationService.getLastInstanceId(),1),$scope.init($scope.category,1,$scope.per_page,$scope.sku_arr,$scope.filters,"",$scope.showCreateYourOwn)},$scope.findCardSizeByName=function(e){return $filter("filter")($scope.card_sizes,{name:e},!0)[0]},$scope.handleCardSizeModal=function(){$uibModal.open({templateUrl:"/angular/browsePage/views/modals/cardSize.html",windowTemplateUrl:"/angular/browsePage/views/modals/modalWindow.html",controller:"cardSizeModalInstanceCtrl",size:"lg",resolve:{element:function(){return null}}}).result.then((function(){}),(function(){}))},$scope.findPerPageByValue=function(e){return $filter("filter")($scope.per_page_options,{value:e},!0)[0]},$scope.handlePerPageSelect=function(){Analytics.track(["Card Browsing Page","Clicked Cards Per Page Drop Down",$scope.per_page_selected.value]);var e="browsepage-perpage-"+$scope.category;sessionStorage.setItem(e,$scope.per_page_selected.value),$scope.per_page=$scope.per_page_selected.value,$scope.page_end=parseInt($scope.per_page),$scope.gotoPage(1)},$scope.handleViewAllLink=function(){Analytics.track(["Card Browsing Page","Clicked View All Cards"]);var e="browsepage-perpage-"+$scope.category;sessionStorage.setItem(e,9999),$scope.per_page=$scope.per_page_selected.value=9999,$scope.page_end=parseInt($scope.per_page),$scope.gotoPage(1)},$scope.handleViewAllReviews=function(e){window.location=e.url},$scope.handleCertificateHolderSwatch=function(e,o){o.selectedSwatch=e,o.browse_image_url=e.image,o.catalogNumber=e.sku,o.url=e.url,$location.absUrl().indexOf("/large-capacity-stock-folders")>-1&&(o.url+="?capacity=large"),o.sku=e.sku},$scope.handleFoilSwatch=function(e,o,t){!0!==t&&Analytics.track(["Card Browsing Page","Clicked Color Choice",e.text,o.orderProcessName,o.sku]),o.selectedSwatch=e;var r=e.text.toLowerCase().replace(" foil","").replace(" ","_"),i=o.catalogNumber,s="",a=[];$.cookie("browsepage-folder-swatch-choices")&&(s=$.cookie("browsepage-folder-swatch-choices"),a=s.split(",")),$scope.folderSelectedSwatches[i]=r,void 0!==$scope.folderSelectedSwatches[i]&&(s.indexOf(i)>-1?a.forEach((function(e){e.indexOf(o.catalogNumber)>-1&&(a.splice(a.indexOf(e),1),a.push(i+":"+r))})):a.push(i+":"+r),$.cookie("browsepage-folder-swatch-choices",a.toString(),{path:"/",expires:30}));var n="prod_folder_closed2",c="folder_imprint",l=o.catalogNumber;0==o.name.indexOf("Label")&&(n="prod_labelfolder_closed"),o.productVariation&&(n="prod_folder_stock_closed",c=o.productVariation,l=o.catalogNumber.split("-")[0]),o.browse_image_url="https://images.gallerycollection.com/is/image/prucards/"+n+"?$browse_thumb2$&$folder="+l+"_closed&hei=422&fit=vfit&wid=400&op_usm=1%2C.5%2C0%2C0&$hide_dot=1&op_sharpen=1",o.url=o.url.split("?")[0],("clear"==r||o.productVariation)&&o.isDarkStock?(o.browse_image_url+="&$imprint="+c+"_"+r+"_dark&$blend=mult",product_url_suffux="?imprint_color="+r+"_dark&$blend=mult"):"clear"==r||o.productVariation?(o.browse_image_url+="&$imprint="+c+"_"+r+"_light",product_url_suffux="?imprint_color="+r+"_light"):(o.browse_image_url+="&$imprint="+c+"_"+r,product_url_suffux="?imprint_color="+r),($location.absUrl().indexOf("/large-capacity-folders")>-1||$location.absUrl().indexOf("/large-capacity-stock-folders")>-1)&&(product_url_suffux+="&capacity=large"),o.url+=product_url_suffux},$scope.findSwatchByDefault=function(e){for(var o in $scope.folderFoilSwatches)if(swatchColor=$scope.folderFoilSwatches[o].text.toLowerCase().replace(" foil","").replace(" ","_"),swatchColor==e.toLowerCase().replace(" foil","").replace(" ","_"))return $scope.folderFoilSwatches[o]},$scope.handleSelectColor=function(e,o,t){!0!==t&&Analytics.track(["Card Browsing Page","Clicked Color Choice",e.text,o.orderProcessName,o.sku]),o.selectedColor=e;var r=e.text.toLowerCase().replace(" foil","").replace(" ","_"),i=o.catalogNumber,s="",a=[];$.cookie("browsepage-certificate-color-choices")&&(s=$.cookie("browsepage-certificate-color-choices"),a=s.split(",")),$scope.certificateSelectedColors[i]=r,void 0!==$scope.certificateSelectedColors[i]&&(s.indexOf(i)>-1?a.forEach((function(e){e.indexOf(o.catalogNumber)>-1&&(a.splice(a.indexOf(e),1),a.push(i+":"+r))})):a.push(i+":"+r),$.cookie("browsepage-certificate-color-choices",a.toString(),{path:"/",expires:30})),o.browse_image_url="https://images.gallerycollection.com/is/image/prucards/certificate_browse?$browse_thumb2$&$border="+o.catalogNumber.split(" - ")[0]+"_"+e.id+"&wid=400",o.url=o.url.split("?")[0],product_url_suffux="?color="+e.id,o.catalogNumber=o.catalogNumber.split(" - ")[0]+" - "+e.id,o.url+=product_url_suffux},$scope.findColorByDefault=function(e){for(var o in $scope.certificateColors)if(activeColor=$scope.certificateColors[o].text.toLowerCase().replace(" foil","").replace(" ","_"),activeColor==e.toLowerCase().replace(" ","_"))return $scope.certificateColors[o]},$scope.trackImpressions=function(){var e=!1,o=$(window),t=o.height(),r=o.scrollTop(),i=r+t;$(".product_box").each((function(o){var t=$(this),s=$(this).data("sku"),a=t.offset().top+t.height()/2;-1==$scope.impressionSent.indexOf(s)&&a<=i&&a>=r&&(Analytics.productImpression({sku:s,path:window.location.pathname,position:o+1}),$scope.impressionSent.push(s),e=!0)})),e&&Analytics.track(["Ecommerce","Impression","","","",1,"",1])},$scope.gotoPage=function(e){if(!$scope.products||1==$scope.products.length&&"CYO"==$scope.products[0].id)return!1;1==e?$location.search("page",null):($location.search("page",e),$location.search("location",null).replace()),$scope.currentPage=e,paginationService.setCurrentPage(paginationService.getLastInstanceId(),e),$scope.end_of_page=!1,$("html,body").scrollTop()>65&&$("html,body").scrollTop(65),$("print_method_g").popover("destroy"),$("print_method_p").popover("destroy"),$("print_method_d").popover("destroy"),$("print_method_e").popover("destroy"),setTimeout((function(){UtilityService.preparePopover("/angular/shared/popovers/","print_method_g","auto right","width:230px;","hover",!1),UtilityService.preparePopover("/angular/shared/popovers/","print_method_p","auto right","width:300px;","hover",!1),UtilityService.preparePopover("/angular/shared/popovers/","print_method_d","auto right","width:230px;","hover",!1),UtilityService.preparePopover("/angular/shared/popovers/","print_method_e","auto right","width:300px;","hover",!1),UtilityService.preparePopover("/angular/shared/popovers/","print_method_eb","auto right","width:230px;","hover",!1)}),2e3),$scope.updatePaginationSize()},$scope.updatePaginationSize=function(){$window.innerWidth<990?$scope.paginationSize=4:$scope.paginationSize=$scope.currentPage>4?7:6},$scope.backToTop=function(){$("html, body").animate({scrollTop:0},"50"),$window.Analytics.track(["Card Browsing Page","Clicked Back to Top","","",""])},$scope.gotoFavorites=function(){window.location.href="/favorites",$window.Analytics.track(["Card Browsing Page","Clicked Sticky Favorites Side Button","","",""])},$scope.showBackToBrowse=function(){$(".browseBackToTop").fadeIn(300),$(".favBadge")},$scope.hideBackToBrowse=function(){$(".browseBackToTop").fadeOut(300),$(".favBadge")},$scope.displayOffer=function(e){$window.Analytics.track(["Shipping Signup - Post Popup","Clicked Link",e,"",""]),popOfferService.displayOffer()},$scope.hovered=function(e){$timeout((function(){1==e.objHovered&&(e.popoverOpened2=!0)}),500)},$scope.updateSelectedFilterNames=function(){var e=$filter("filter")($scope.browseFilterGroups,{options:{selected:"true"}});$scope.selectedFilterNames=[],e.map((function(e){var o=e.options.map((function(e){if(e.selected)return e.name}));o&&angular.forEach(o,(function(e){null!=e&&$scope.selectedFilterNames.push(e)}))})),sessionStorage.setItem("browsepage-selectedFilterNames-"+$scope.category,angular.toJson($scope.selectedFilterNames))},$scope.getFilteredProducts=function(filters,products){var filteredProducts=null!=products?products:$scope.products,selectedFilters=null!=filters?filters:$scope.buildFilterArray(),filterExpression;return(filterExpression=$scope.buildFilterExpression(selectedFilters))?filteredProducts.filter((function(product){return product.filters&&eval(filterExpression)})):filteredProducts},$scope.buildFilterArray=function(e){return e=null!=e&&e,$scope.browseFilterGroups.map((function(o){return o.options.filter((function(t){return!(!t.selected&&t.name!=e)&&o.name+"_"+t.name})).map((function(e){return o.name+"_"+e.name}))}))},$scope.buildFilterExpression=function(e){var o=e.filter((function(e){return e.length})).map((function(e){return e.map((function(e){return"product.filters.includes('"+e+"')"})).join(" || ")})).join(") && (");return!!o&&"("+o+")"},$scope.handleClearBrowseFilters=function(e){e=void 0===e?"":e,$window.Analytics.track(["Card Browsing Page","Clicked Clear Product Filters",e]),$scope.clearBrowseFilters()},$scope.clearBrowseFilters=function(){return angular.forEach($scope.browseFilterGroups,(function(e){angular.forEach(e.options,(function(e){e.selected=!1}))})),sessionStorage.setItem("browsepage-selectedFilterNames-"+$scope.category,angular.toJson([])),$scope.updateFilteredProducts($scope.products),$scope.gotoPage(1),!0},$scope.updateBrowseFilterCounts=function(){angular.forEach($scope.browseFilterGroups,(function(e){angular.forEach(e.options,(function(o){if(o.selected)o.count=$scope.getFilteredProducts([[e.name+"_"+o.name]],$scope.productsFiltered).length,0==o.count&&(o.selected=!1);else if(e.options.filter((function(e){return e.selected&&e.name!=o.name})).length){var t=$scope.browseFilterGroups.map((function(t){return t.options.filter((function(r){return t.name==e.name&&r.name==o.name||t.name!=e.name&&r.selected})).map((function(e){return t.name+"_"+e.name}))}));o.count=$scope.getFilteredProducts(t,$scope.products).length}else o.count=$scope.getFilteredProducts([[e.name+"_"+o.name]],$scope.productsFiltered).length}))}))},$scope.initBrowseFilterGroupOptions=function(products){if(products=null!=products?products:$scope.products,!products)return!1;angular.forEach($scope.browseFilterGroups,(function(browseFilterGroup,key){browseFilterGroup.options_product_field&&(browseFilterGroup.options=[],angular.forEach(products,(function(e){null==e[browseFilterGroup.options_product_field]||0==e[browseFilterGroup.options_product_field]||$filter("filter")(browseFilterGroup.options,{name:e[browseFilterGroup.options_product_field]}).length||browseFilterGroup.options.push({name:e[browseFilterGroup.options_product_field],expression:"product."+browseFilterGroup.options_product_field+" == '"+e[browseFilterGroup.options_product_field]+"'"})}))),browseFilterGroup.options&&angular.forEach(browseFilterGroup.options,(function(option){products.map((function(product){"CYO"!=product.id&&(product.filters=product.filters||[],eval(option.expression)&&product.filters.push(browseFilterGroup.name+"_"+option.name))}))})),angular.forEach(browseFilterGroup.options,(function(e){e.selected=$scope.isFilterOptionSelected(e.name)}))}))},$scope.isFilterOptionSelected=function(e){var o=angular.fromJson(sessionStorage.getItem("browsepage-selectedFilterNames-"+$scope.category));return!(null==o||!o.length)&&o.includes(e)},$scope.handleToggleFilterDisplay=function(e){if(e=void 0===e?"":e,!$scope.products.length||1==$scope.products.length&&"CYO"===$scope.products[0].id)return!1;$scope.showFilters=!$scope.showFilters,$scope.showFilters?($window.Analytics.track(["Card Browsing Page","Clicked Show Product Filters"]),$scope.handleShowFilters()):$window.Analytics.track(["Card Browsing Page","Clicked Hide Product Filters",e]),setTimeout((function(){$scope.setPopOfferAffix()}),1e3),sessionStorage.setItem("browsepage-showFilters-"+$scope.category,$scope.showFilters)},$scope.handleShowFilters=function(){$scope.filtersInitialized||($scope.initBrowseFilterGroupOptions(),$scope.updateBrowseFilterCounts(),angular.forEach($scope.browseFilterGroups,(function(e,o){angular.forEach(e.options,(function(e){e.initialCount=e.count}))})),$scope.filtersInitialized=!0);var e=$scope.getFilteredProducts();$scope.updateFilteredProducts(e)},$scope.handleToggleFilterGroupDisplay=function(e){e.expanded=!e.expanded},$scope.showFilterGroup=function(e){return e.options&&e.options.reduce((function(e,o){return e+parseInt(o.initialCount)}),0)},$scope.handleOptionChange=function(e,o){if(null!=e&&!e.count)return!1;-1==["Print Method","Occasion","Front Greeting","Discount","Front Customization","Theme","Industry"].indexOf(o)&&(e.selected=!e.selected),e.selected&&$window.Analytics.track(["Card Browsing Page","Clicked Product Filters - "+o,e.name]),$scope.updateSelectedFilterNames();var t=$scope.getFilteredProducts();$scope.updateFilteredProducts(t),$scope.productsFiltered.length||$uibModal.open({templateUrl:"/angular/browsePage/views/modals/productFiltersNoResults.html",windowTemplateUrl:"/angular/browsePage/views/modals/modalWindow.html",controller:"productFiltersNoResultstModalInstanceCtrl",size:"md"}).result.then((function(){}),(function(){$scope.clearBrowseFilters()})),$scope.gotoPage(1)},$scope.updateFilteredProducts=function(e){$scope.productsFiltered=e,$scope.updateBrowseFilterCounts(),$("print_method_g").popover("destroy"),$("print_method_p").popover("destroy"),$("print_method_d").popover("destroy"),$("print_method_e").popover("destroy"),setTimeout((function(){UtilityService.preparePopover("/angular/shared/popovers/","print_method_g","auto right","width:230px;","hover",!1),UtilityService.preparePopover("/angular/shared/popovers/","print_method_p","auto right","width:300px;","hover",!1),UtilityService.preparePopover("/angular/shared/popovers/","print_method_d","auto right","width:230px;","hover",!1),UtilityService.preparePopover("/angular/shared/popovers/","print_method_e","auto right","width:300px;","hover",!1),UtilityService.preparePopover("/angular/shared/popovers/","print_method_eb","auto right","width:230px;","hover",!1),UtilityService.preparePopover("/angular/shared/popovers/","design_details","auto top","width:300px;","hover",!1),UtilityService.preparePopover("/angular/shared/popovers/","folder_capacity_large","auto right","width:725px;height:553px;","hover",!1),UtilityService.preparePopover("/angular/shared/popovers/","folder_capacity_standard","auto right","width:725px;height:553px;","hover",!1)}),2e3)},$rootScope.doAnalytics=function(e){return window.Analytics.track(e)},$scope.showAssortmentBoxContentsModal=function(e){$uibModal.open({templateUrl:"/angular/shared/modals/assortmentBoxContents.html",windowTemplateUrl:"/angular/shared/modals/modalWindow.html",controller:"assortmentBoxContentsModal",windowClass:"assortment-box-contents",size:"",resolve:{product:function(){return e},interpolateSymbols:function(){return"{}"}}})},$scope.showAssortmentBoxContentsModal2=function(e){$uibModal.open({templateUrl:"/angular/shared/modals/assortmentBoxContents2.html",windowTemplateUrl:"/angular/shared/modals/modalWindow.html",controller:"assortmentBoxContentsModal2",windowClass:"assortment-box-contents2",size:"",resolve:{product:function(){return e},interpolateSymbols:function(){return"[]"}}})}}]),angular.bootstrap(document.getElementById("ng-browsePageController"),["ngBrowsePage"]),$("#createYourOwnCard").on("show.bs.modal",(function(){$(".lazy_load").each((function(){var e=$(this);e.attr("src",e.data("src"))}))}));