"use strict";angular.module("CCG.CGCComics").controller("awardsController",["$q","awardsService",function(n,t){var i=this,r,u;i.allAwards=[];i.awardSets=[];i.ages=[];i.years=[];i.loaded=!1;i.paperSizes=[{Value:"Letter",Label:"8 1/2x11"},{Value:"A4",Label:"A4"},];i.disableDownloadLink=!0;r=new URI;u=r.search(!0);i.changeYear=function(){i.awardSets=_(i.allAwards).filter({AwardYear:i.year}).sortBy(function(n){return{setName:n.SetName.toLowerCase()}}).value();i.awardSetID=null;i.disableDownloadLink=!0};i.updateDownloadLink=function(){i.disableDownloadLink=!i.paperSize||!i.awardSetID;i.downloadUrl="/account/awards/"+i.awardSetID+"/download/"+i.paperSize+"/"};i.updatePaperCopyRequest=function(){return i.requestedPaperCopy?t.insertAwardRequest(i.awardYearID).then(function(n){n.HasAddress?i.successMessage="Changes Saved":i.showAddAddressModal=!0}):t.deleteAwardRequest(i.awardYearID).then(function(){i.successMessage="Changes Saved"})};t.fetchAwards().then(function(n){if(n.IsValid){i.allAwards=n.Awards||[];i.awardSetID=null;n.AwardYear&&(i.awardYearID=n.AwardYear.AwardYearID,i.awardRequestYear=n.AwardYear.AwardYear,i.awardRequestDeadline=new Date(n.AwardYear.AwardRequestDeadline));i.showPaperCopyRequest=!!n.AwardYear;i.requestedPaperCopy=n.RequestedPaperCopy;i.years=_(i.allAwards).map("AwardYear").uniq().value();var t=_.find(i.allAwards,{AwardSetID:parseInt(u.awardSet,10)});t?(i.year=t.AwardYear,i.changeYear(),i.awardSetID=t.AwardSetID):i.years&&i.years.length>0&&(i.year=i.years[0].toString(),i.changeYear())}i.loaded=!0})}]);angular.module("CCG.CGCComics").factory("awardsService",["webServiceFactory",function(n){return n.create({fetchAwards:function(){return this.get("/account/awards/data/")},insertAwardRequest:function(n){return this.post("/account/awards/data/"+n+"/")},deleteAwardRequest:function(n){return this.post("/account/awards/data/"+n+"/delete/")}})}]);angular.module("CCG.CGCComics").controller("registrySetsAdminController",["$scope","$window","urlService","adminService","dndBulkMoveService","registryAdminSorter","scrollService",function(n,t,i,r,u,f,e){function s(){var n=new URI,t=parseInt(n.segment(-2));o.category=_.find(o.categories,{CategoryID:parseInt(t)})}var o=this;r.fetchAllCategories().then(function(n){o.categories=n;o.sortableID="SetTypeID";o.isSortLoading=!1;o.newSeteTypeName="";o.newSortOrder=null;o.newSlotCount=null;o.errorMessage=null;f.setItemNameProperty("SetTypeName");f.setItemKeyID(o.sortableID);var t=new URI,r=t.segment(-2);r=="category"&&(o.category=_.head(o.categories),t.segment(o.category.CategoryID.toString()),t.segment(""),i.replaceUrl(t.path()));s();o.changeCategory(!0)});angular.element(t).on("popstate",function(){s();o.changeCategory(!0)});o.save=function(){o.isSortLoading=!0;var n=f.getSortedItemIDandNames(o.sortableItems,o.sortableID);r.saveSetTypeList(o.category.CategoryID,n).then(function(n){o.sortableItems=f.getSortedItems(n)}).catch(function(){o.errorMessage="Unable to save change."}).finally(function(){o.isSortLoading=!1})};o.saveSetType=function(n){return r.saveSetType(o.category.CategoryID,n.SetTypeID,n)};o.changeCategory=function(n){if(!o.category){o.sortableItems=null;return}var t=new URI;t.segment(-2,o.category.CategoryID.toString());n||i.updateUrl(t.path());o.sortableItems=[];r.fetchSetTypesForCategory(o.category.CategoryID).then(function(n){f.setPreviousSortableItems([]);o.sortableItems=f.getSortedItems(n)})};o.createSetType=function(){if(o.newSlotCount==="0"){o.errorMessage="Slot count must be greater than 0.";return}o.isLoading=!0;var t=f.getNextSortOrder(o.sortableItems,o.newSortOrder),i={name:o.newSetTypeName,sortOrder:t,slotCount:o.newSlotCount};r.createSetType(o.category.CategoryID,i).then(function(i){var r=f.normalizeSortableItem(i),u="[data-scroll-id='"+r.SetTypeID+"']";o.newSortOrder==r.SortOrder&&o.newSortOrder<=t?(r.SortOrder=Number.MAX_SAFE_INTEGER,o.sortableItems.push(r),o.save(),e.scrollToElement(u)):(o.sortableItems.push(r),e.scrollToElement(u));o.newSetTypeName="";o.newSortOrder=null;o.newSlotCount=null;n.form.$setPristine();n.form.$setUntouched()}).catch(function(){o.errorMessage="Unable to save change."}).finally(function(){o.isLoading=!1})};o.toggleVisibility=function(n){o.deselectAll();o.isLoading=!0;n.bAvailable=!n.bAvailable;o.saveSetType(n).catch(function(){o.errorMessage="Unable to save change."}).finally(function(){o.isLoading=!1})};o.deselectAll=function(){u.deselectAll(o.sortableItems)};o.onDrop=function(n,t){u.onDrop(o,o.sortableItems,n,t);return o.sortableItems=f.updateSortableItemsByIndex(o.sortableItems,o.sortableID),o.save(),o.onDragEnd(),!0};o.getSelectedItemsIncluding=function(n){return u.getSelectedItemsIncluding(o.sortableItems,n)};o.onDragStart=function(n){o.isDragging=!0;return u.onDragStart(o,n)};o.onSelected=function(n,t){return u.onSelected(n,t)};o.onDragEnd=function(){o.isDragging=!1;return u.onDragEnd(o)};o.onCanceled=function(){return u.onCanceled(o.sortableItems)}}]);angular.module("CCG.CGCComics").directive("ccgComicSearch",["urlService","adminService",function(n,t){return{scope:{results:"=ccgComicSearch"},templateUrl:n.root+"resources/scripts/admin/comic-search/comic-search-template.html",bindToController:!0,replace:!0,controllerAs:"comicSearchCtrl",controller:["$attrs","$scope",function(n,i){var r=this,u=n.slotId;u&&(r.searchParameters={slotID:u,showInSlot:!0},r.searchParameters.showInSlot===undefined&&(r.searchParameters.showInSlot=!0));r.search=function(){r.searchParameters&&(i.form.$submitting=!0,t.searchComics(r.searchParameters).then(function(n){r.results=n}).finally(function(){i.form.$submitting=!1}))}}],link:function(){}}}]);angular.module("CCG.CGCComics").factory("adminService",["webServiceFactory","urlService","Upload",function(n,t,i){return n.create({getComic:function(n){return this.get("/admin/registry/api/comic/"+n+"/")},getUniversalComic:function(n){return this.getComic(n*100+8)},createCategory:function(n){return this.post("/admin/registry/api/category/",{name:n.name,sortOrder:n.sortOrder})},fetchAllCategories:function(){return this.get("/admin/registry/api/category/")},deleteCategory:function(n){return this.post("/admin/registry/api/category/manage/"+n.CategoryID+"/delete/")},getCategory:function(n){return this.get("/admin/registry/api/category/manage/"+n)},updateCategory:function(n){return this.put("/admin/registry/api/category/manage/"+n.CategoryID,n)},updateCategoryList:function(n){return this.put("/admin/registry/api/category",n)},fetchSetTypesForCategory:function(n){return this.get("/admin/registry/api/category/"+n+"/")},createSetType:function(n,t){return this.post("/admin/registry/api/category/"+n+"/",t)},getSetType:function(n,t){return this.get("/admin/registry/api/category/"+n+"/set-type/"+t+"/")},saveSetType:function(n,t,i){return this.put("/admin/registry/api/category/"+n+"/set-type/"+t+"/",i)},saveSetTypeList:function(n,t){return this.put("/admin/registry/api/category/"+n+"/",t)},deleteSetType:function(n,t){return this.post("/admin/registry/api/category/"+n+"/set-type/"+t+"/delete/")},fetchSlotsForSetType:function(n,t){return this.get("/admin/registry/api/category/"+n+"/set-type/"+t+"/slot/")},saveSlotsForSetType:function(n,t,i){return this.put("/admin/registry/api/category/"+n+"/set-type/"+t+"/slot/",i)},fetchComicAgesForSetType:function(n,t){return this.get("/admin/registry/api/category/"+n+"/set-type/"+t+"/ages/")},saveComicAgesForSetType:function(n,t,i){return this.put("/admin/registry/api/category/"+n+"/set-type/"+t+"/ages/",i)},importSets:function(n){return i.upload({url:"/admin/registry/api/set-types/upload/",data:{file:n}})},fetchAllComicAges:function(){return this.get("/admin/registry/api/comic-ages/")},createSlot:function(n,t,i){return this.post("/admin/registry/api/category/"+n+"/set-type/"+t+"/slot/",i)},createMultipleSlots:function(n,t,i){return this.post("/admin/registry/api/category/"+n+"/set-type/"+t+"/slots/",i)},getSlot:function(n,t,i){return this.get("/admin/registry/api/category/"+n+"/set-type/"+t+"/slot/"+i+"/")},saveSlot:function(n,t,i,r){return this.put("/admin/registry/api/category/"+n+"/set-type/"+t+"/slot/"+i+"/",r)},deleteSlot:function(n){return this.post("/admin/registry/api/slot/"+n+"/delete/")},deleteMultipleSlot:function(n){return this.post("/admin/registry/api/slots/delete/",n)},searchComics:function(n){return this.get(t.buildUrl("/admin/registry/api/comic/",n))},fetchComicsForSlot:function(n,t,i){return this.get("/admin/registry/api/category/"+n+"/set-type/"+t+"/slot/"+i+"/comic/")},addComicsToSlot:function(n,t,i,r){return this.post("/admin/registry/api/category/"+n+"/set-type/"+t+"/slot/"+i+"/comic/",r)},removeComicFromSlot:function(n,t,i,r){return this.post("/admin/registry/api/category/"+n+"/set-type/"+t+"/slot/"+i+"/comic/"+r+"/delete/")},getScore:function(n){return this.get("/admin/registry/api/master-comic/"+n+"/score/")},setScore:function(n,t){return this.put("/admin/registry/api/master-comic/"+n+"/score/",t)},getSlots:function(n){return this.get("/admin/registry/api/master-comic/"+n+"/slots/")}})}]);angular.module("CCG.CGCComics").controller("registryAddComicAdminController",["adminService",function(n){var t=this,i=new URI,r=i.segment(-7),u=i.segment(-5),f=i.segment(-3);n.getSlot(r,u,f).then(function(n){t.slot=n});t.selectAll=function(){_.forEach(t.results,function(n){n.IsAdded||(n.selected=!0)})};t.addSelected=function(){var i=_.filter(t.results,"selected");t.adding=!0;n.addComicsToSlot(r,u,f,i).then(function(){t.adding=!1;t.successMessage="Comics Added"})}}]);angular.module("CCG.CGCComics").controller("registryCategoriesAdminController",["$scope","adminService","dndBulkMoveService","registryAdminSorter","scrollService",function(n,t,i,r,u){var f=this;f.isLoading=!0;f.isSortLoading=!1;f.newName="";f.newSortOrder=null;f.errorMessage=null;f.sortableItems=[];f.sortableID="CategoryID";f.isPublic=!1;r.setItemNameProperty("CategoryName");r.setItemKeyID(f.sortableID);t.fetchAllCategories().then(function(n){f.sortableItems=r.getSortedItems(n)}).catch(function(n){f.errorMessage=n}).finally(function(){f.isLoading=!1});f.create=function(){f.isLoading=!0;var i=r.getNextSortOrder(f.sortableItems,f.newSortOrder),e={name:f.newName,sortOrder:i};t.createCategory(e).then(function(t){var e=r.normalizeSortableItem(t),o="[data-scroll-id='"+e[f.sortableID]+"']";f.newSortOrder==e.SortOrder&&f.newSortOrder<=i?(e.SortOrder=Number.MAX_SAFE_INTEGER,f.sortableItems.push(e),f.saveChanges(!1).then(function(){u.scrollToElement(o)})):(f.sortableItems.push(e),u.scrollToElement(o));f.newName="";f.newSortOrder=null;n.createForm.$setPristine();n.createForm.$setUntouched()}).catch(function(){f.errorMessage="Unable to save change."}).finally(function(){f.isLoading=!1})};f.saveChanges=function(n,i){f.isSortLoading=!0;var u=r.getSortedItemIDandNames(f.sortableItems,f.sortableID),e={categories:u,withNames:n,isMultipleUpdate:i};return t.updateCategoryList(e).then(function(n){f.sortableItems=r.getSortedItems(n)}).catch(function(){f.errorMessage="Unable to save change."}).finally(function(){f.isSortLoading=!1})};f.getSortableItemLink=function(n){return"/admin/registry/categories/"+n.CategoryID+"/"};f.getSortableItemName=function(n){return n.CategoryName};f.onDrop=function(n,t){i.onDrop(f,f.sortableItems,n,t);return f.sortableItems=r.updateSortableItemsByIndex(f.sortableItems,f.sortableID),f.saveChanges(!1),f.onDragEnd(),!0};f.getSelectedItemsIncluding=function(n){if(!f.isSortLoading)return i.getSelectedItemsIncluding(f.sortableItems,n)};f.onDragStart=function(n){f.isDragging=!0;return i.onDragStart(f,n)};f.onSelected=function(n,t){return i.onSelected(n,t)};f.onDragEnd=function(){f.isDragging=!1;return i.onDragEnd(f)};f.onCanceled=function(){return i.onCanceled(f.sortableItems)};f.deselectAll=function(){i.deselectAll(f.sortableItems)};f.toggleVisibility=function(n){f.deselectAll();f.isLoading=!0;n.IsDisabled=!n.IsDisabled;f.updateSortableItem(n).catch(function(){f.errorMessage="Unable to save change."}).finally(function(){f.isLoading=!1})};f.updateSortableItem=function(n){return t.updateCategory(n)}}]);angular.module("CCG.CGCComics").controller("registryEditCategoryAdminController",["adminService",function(n){var t=this,i=new URI;t.categoryID=parseInt(i.segment(3));t.errorMessage=null;t.successMessage=null;t.category={CategoryID:0,IsDisabled:!1};n.getCategory(t.categoryID).then(function(n){t.category=n}).catch(function(n){t.errorMessage=n});t.save=function(){n.updateCategory(t.category).then(function(n){t.successMessage="All changes saved.";t.category=n}).catch(function(n){t.errorMessage="An error ocurred while saving. "+n})};t.delete=function(){n.deleteCategory(t.category).then(function(){t.successMessage="Delete processed, redirecting to categories page.";window.location.href="/admin/registry/categories/"}).catch(function(n){t.errorMessage="An error ocurred while deleting the category. "+n})}}]);angular.module("CCG.CGCComics").controller("registryEditScoreAdminController",["adminService",function(n){var t=this,r=new URI,i=r.segment(-3);t.grades=[{name:"0.5",slug:"C0_5",scoreRatio:.0175},{name:"1.0",slug:"C1_0",scoreRatio:.02},{name:"1.5",slug:"C1_5",scoreRatio:.0225},{name:"1.8",slug:"C1_8",scoreRatio:.025},{name:"2.0",slug:"C2_0",scoreRatio:.03},{name:"2.5",slug:"C2_5",scoreRatio:.04},{name:"3.0",slug:"C3_0",scoreRatio:.05},{name:"3.5",slug:"C3_5",scoreRatio:.06},{name:"4.0",slug:"C4_0",scoreRatio:.07},{name:"4.5",slug:"C4_5",scoreRatio:.08},{name:"5.0",slug:"C5_0",scoreRatio:.1},{name:"5.5",slug:"C5_5",scoreRatio:.12},{name:"6.0",slug:"C6_0",scoreRatio:.133},{name:"6.5",slug:"C6_5",scoreRatio:.15},{name:"7.0",slug:"C7_0",scoreRatio:.21},{name:"7.5",slug:"C7_5",scoreRatio:.25},{name:"8.0",slug:"C8_0",scoreRatio:.42},{name:"8.5",slug:"C8_5",scoreRatio:.67},{name:"9.0",slug:"C9_0",scoreRatio:1},{name:"9.2",slug:"C9_2",scoreRatio:1.5},{name:"9.4",slug:"C9_4",scoreRatio:3},{name:"9.6",slug:"C9_6",scoreRatio:5},{name:"9.8",slug:"C9_8",scoreRatio:8},{name:"9.9",slug:"C9_9",scoreRatio:10},{name:"10.0",slug:"C10_0",scoreRatio:15},];n.getScore(i).then(function(i){t.score=i;n.getUniversalComic(i.MasterComicID).then(function(n){t.comic=n})});n.getSlots(i).then(function(n){t.slotSets=n});t.copyFromComic=function(i){typeof i!="boolean"&&(i=!1);n.getScore(t.copyComicID).then(function(n){if(n==null){t.noCopyData=!0;return}t.noCopyData=!1;_.forEach(t.grades,function(i){t.score[i.slug]=n[i.slug]});i&&t.save()})};t.save=function(){n.setScore(i,t.score).then(function(){t.successMessage="All changes saved."})};t.copyFromComicAndSave=function(){t.copyFromComic(!0)};t.calculateScores=function(){_.forEach(t.grades,function(n){t.score[n.slug]=Math.max(1,Math.round(t.score[t.selectedGrade.slug]*n.scoreRatio/t.selectedGrade.scoreRatio))})};t.calculateScoresAndSave=function(){t.calculateScores();t.save()}}]);angular.module("CCG.CGCComics").controller("registryEditSetAdminController",["$q","$scope","adminService","dndBulkMoveService",function(n,t,i,r){function o(){u.currentIndexes&&delete u.currentIndexes;u.currentIndexes={};for(var n=0;n<u.setSlots.length;n++)u.currentIndexes[n]=n}function c(){var n=_.map(u.setSlots,"SlotID");i.saveSlotsForSetType(f,e,n);o()}var u=this,s=new URI,f=s.segment(-4),e=s.segment(-2),h=!1;u.setSlots=[];n.all([i.fetchAllCategories(),i.getSetType(f,e),i.fetchSlotsForSetType(f,e),i.fetchComicAgesForSetType(f,e),i.fetchAllComicAges()]).then(function(n){u.categories=n[0]||[];u.setType=n[1]||{};u.setSlots=n[2]||[];o();var t=n[3]||[],i=n[4]||[];u.ComicAges=i.map(function(n){return{selected:_.some(t,{ComicAgeName:n.ComicAgeName}),age:n}})});u.changeCategory=function(){h=!0};u.save=function(){n.all([i.saveSetType(f,e,u.setType),i.saveComicAgesForSetType(f,e,_.map(_.filter(u.ComicAges,"selected"),"age"))]).then(function(n){var t=n[0];u.successMessage="All changes saved.";h&&(window.location.href="/admin/registry/category/"+t.CategoryID+"/set-type/"+t.SetTypeID+"/")})};u.delete=function(){i.deleteSetType(f,e).then(function(){window.location.href="/admin/registry/category/"+f+"/"})};u.createSlot=function(){var n=_.max(_.map(u.setSlots,"SortOrder")),r={name:u.newSlotName,sortOrder:n+10};i.createSlot(f,e,r).then(function(n){u.newSlotName="";n.ComicCount=0;u.setSlots.push(n);t.createSlotForm.$setPristine();t.createSlotForm.$setUntouched();o()})};u.deleteSlots=function(){var n=u.setSlots.filter(function(n){return n.selected===!0}).map(function(n){return n.SlotID});i.deleteMultipleSlot(n).then(function(){u.showDeleteSlotsModal=!1;u.setSlots=u.setSlots.filter(function(n){return n.selected!==!0})})};u.getSelectedSlotNames=function(){return u.setSlots.length?u.setSlots.filter(function(n){return n.selected===!0}).map(function(n){return n.SlotDesc}):[]};u.createMultipleSlots=function(){var n=_.range(u.createMultiple.startingNumber,u.createMultiple.startingNumber+u.createMultiple.number),r=_.map(n,function(n){return u.createMultiple.prefix+" "+n}),s=_.max(_.map(u.setSlots,"SortOrder")),h={names:r,sortOrderStart:s+10,sortOrderStep:10};i.createMultipleSlots(f,e,h).then(function(n){u.createMultiple.number="";u.createMultiple.prefix="";u.createMultiple.startingNumber="";n.forEach(function(n){n.ComicCount=0;u.setSlots.push(n)});t.createMultipleSlotsForm.$setPristine();t.createMultipleSlotsForm.$setUntouched();o()}).then(function(){u.showCreateMultiple=!1})};u.deselectAll=function(){r.deselectAll(u.setSlots)};u.changeSortOrder=function(n){var r;u.deselectAll();var t=u.currentIndexes[n],f=u.setSlots[n],i=n;if(i!==t){for(i>t?i++:i<t&&t++,u.setSlots.splice(t,0,f),u.setSlots.splice(i,1),r=0;r<u.setSlots.length;r++)u.currentIndexes[r]=r;c()}};u.onDrop=function(n,t){r.onDrop(u,u.setSlots,n,t);return c(),!0};u.getSelectedItemsIncluding=function(n){return r.getSelectedItemsIncluding(u.setSlots,n)};u.onDragStart=function(n){return r.onDragStart(u,n)};u.onSelected=function(n,t){return r.onSelected(n,t)};u.onDragEnd=function(){return r.onDragEnd(u)};u.onCanceled=function(){return r.onCanceled(u.setSlots)}}]);angular.module("CCG.CGCComics").controller("registryEditSlotAdminController",["$q","adminService",function(n,t){var i=this,o=new URI,r=o.segment(-6),u=o.segment(-4),f=o.segment(-2),e;n.all([t.getSetType(r,u),t.getSlot(r,u,f),t.fetchComicsForSlot(r,u,f),]).then(function(n){i.setType=n[0];i.slot=n[1];i.slotComics=n[2]});i.save=function(){t.saveSlot(r,u,f,i.slot).then(function(){i.successMessage="All changes saved."})};i.delete=function(){t.deleteSlot(f).then(function(){window.location="/admin/registry/category/"+r+"/set-type/"+u+"/"})};e=null;i.removeComic=function(n){i.showRemoveComicModal=!0;e=n};i.confirmRemoveComic=function(){t.removeComicFromSlot(r,u,f,e.MasterComicID).then(function(){i.slotComics=_.without(i.slotComics,e);i.showRemoveComicModal=!1})};i.getEditScoreText=function(n){return n===null?"Add Score":"Edit Score"};i.hasNewScore=function(n){if(n===null)return!1;var i=new Date(Date.parse(n)),t=new Date;return t.setDate(t.getDate()-1),i.getTime()>t.getTime()}}]);angular.module("CCG.CGCComics").controller("registrySetImportAdminController",["$scope","$element","adminService",function(n,t,i){var r=this;r.includeInvisibleSetTypes=!1;r.onFileSelected=function(r){if(r.length){n.form.$submitting=!0;var u=i.importSets(r[0]).success(function(n){this.results=n;this.errors=n}.bind(this));u["finally"](function(){n.form.$submitting=!1;t.find(":file").val("")})}};r.setTypesReportLink=function(){return"/admin/registry/set-types/export?includeInvisibleSetTypes="+r.includeInvisibleSetTypes}}]);angular.module("CCG.CGCComics").controller("registrySetsAdminController",["$scope","$window","urlService","adminService","dndBulkMoveService","registryAdminSorter","scrollService",function(n,t,i,r,u,f,e){function s(){var n=new URI,t=parseInt(n.segment(-2));o.category=_.find(o.categories,{CategoryID:parseInt(t)})}var o=this;r.fetchAllCategories().then(function(n){o.categories=n;o.sortableID="SetTypeID";o.isSortLoading=!1;o.newSeteTypeName="";o.newSortOrder=null;o.newSlotCount=null;o.errorMessage=null;f.setItemNameProperty("SetTypeName");f.setItemKeyID(o.sortableID);var t=new URI,r=t.segment(-2);r=="category"&&(o.category=_.head(o.categories),t.segment(o.category.CategoryID.toString()),t.segment(""),i.replaceUrl(t.path()));s();o.changeCategory(!0)});angular.element(t).on("popstate",function(){s();o.changeCategory(!0)});o.save=function(){o.isSortLoading=!0;var n=f.getSortedItemIDandNames(o.sortableItems,o.sortableID);r.saveSetTypeList(o.category.CategoryID,n).then(function(n){o.sortableItems=f.getSortedItems(n)}).catch(function(){o.errorMessage="Unable to save change."}).finally(function(){o.isSortLoading=!1})};o.saveSetType=function(n){return r.saveSetType(o.category.CategoryID,n.SetTypeID,n)};o.changeCategory=function(n){if(!o.category){o.sortableItems=null;return}var t=new URI;t.segment(-2,o.category.CategoryID.toString());n||i.updateUrl(t.path());o.sortableItems=[];r.fetchSetTypesForCategory(o.category.CategoryID).then(function(n){f.setPreviousSortableItems([]);o.sortableItems=f.getSortedItems(n)})};o.createSetType=function(){if(o.newSlotCount==="0"){o.errorMessage="Slot count must be greater than 0.";return}o.isLoading=!0;var t=f.getNextSortOrder(o.sortableItems,o.newSortOrder),i={name:o.newSetTypeName,sortOrder:t,slotCount:o.newSlotCount};r.createSetType(o.category.CategoryID,i).then(function(i){var r=f.normalizeSortableItem(i),u="[data-scroll-id='"+r.SetTypeID+"']";o.newSortOrder==r.SortOrder&&o.newSortOrder<=t?(r.SortOrder=Number.MAX_SAFE_INTEGER,o.sortableItems.push(r),o.save(),e.scrollToElement(u)):(o.sortableItems.push(r),e.scrollToElement(u));o.newSetTypeName="";o.newSortOrder=null;o.newSlotCount=null;n.form.$setPristine();n.form.$setUntouched()}).catch(function(){o.errorMessage="Unable to save change."}).finally(function(){o.isLoading=!1})};o.toggleVisibility=function(n){o.deselectAll();o.isLoading=!0;n.bAvailable=!n.bAvailable;o.saveSetType(n).catch(function(){o.errorMessage="Unable to save change."}).finally(function(){o.isLoading=!1})};o.deselectAll=function(){u.deselectAll(o.sortableItems)};o.onDrop=function(n,t){u.onDrop(o,o.sortableItems,n,t);return o.sortableItems=f.updateSortableItemsByIndex(o.sortableItems,o.sortableID),o.save(),o.onDragEnd(),!0};o.getSelectedItemsIncluding=function(n){return u.getSelectedItemsIncluding(o.sortableItems,n)};o.onDragStart=function(n){o.isDragging=!0;return u.onDragStart(o,n)};o.onSelected=function(n,t){return u.onSelected(n,t)};o.onDragEnd=function(){o.isDragging=!1;return u.onDragEnd(o)};o.onCanceled=function(){return u.onCanceled(o.sortableItems)}}]);angular.module("CCG.CGCComics").controller("comicCertlookupPopulationReportController",["populationReportGrades","populationReportService",function(n,t){var i=this;i.collectiblePath="comics";i.init=function(n,r,u,f){i.population={};i.collectibleID=n;i.labelCategory=r;i.grade=u.endsWith(".0")?u.replace(".0",""):u;i.loading=!0;i.collectiblePath=f;t.fetchLabelCategories(f,i.collectibleID).then(function(n){var t=n;t.length>0&&(i.population=i.getPopDataForGrade(t))}).catch(function(n){console.log(n)}).finally(function(){i.loading=!1})};i.getPopDataForGrade=function(t){var r=_.find(t,function(n){return n.labelCategory==i.labelCategory}),o=0,s=0,h="",f,e,c,u;if(r!=null){if(f=n.getGradeColumns(),e=f.find(function(n){return n.display.toLowerCase()===i.grade.toLowerCase()}),!e)return;for(c in f)if(u=f[c].column,u===e.column){s=r[u];break}else u!=="population_Total"&&(o+=r[u]);h="/population-report/"+i.collectiblePath+"/"+r.group.subcategory.category.researchCategoryID+"/"+r.group.subcategory.seoName+"/"+r.group.subcategory.researchSubcategoryID+"/"+r.group.seoName+"/"+r.group.researchGroupID+"/"+r.masterID+"/label-categories/?labelCategory="+r.labelCategory}return{hasPopulation:r!=null,populationInHigherGrade:o,populationAtGrade:s,popReportUrl:h}}}]);angular.module("CCG.CGCComics").controller("pedigreeController",["$element","$sce","urlService","pedigreesData",function(n,t,i,r){var f=this,u=n.attr("base-image-url");_.forEach(r,function(n){n.url=i.baseUrl+n.SeoName+"/";n.MainImagePath=t.trustAsResourceUrl(u+n.MainImagePath);_.forEach(n.SummaryImagePaths,function(n,i,r){r[i]=t.trustAsResourceUrl(u+r[i])})});f.pedigrees=r}]);angular.module("CCG.CGCComics").controller("showJoinCreateAccountController",["$scope","showJoinService",function(n,t){n=angular.extend(n,window.bootstrap);n.events={createAccount:function(){function i(){n.showErrorMessage=!0}if(n.showErrorMessage=!1,!n.form.$invalid){n.form.$submitting=!0;var r=t.createAccount(n.FormData).then(function(t){t.RedirectUrl?(n.redirectUrl=t.RedirectUrl,n.events.redirect()):i()},i);r["finally"](function(){n.form.$submitting=!1})}},redirect:function(){window.location.href=n.redirectUrl}}}]);angular.module("CCG.CGCComics").controller("showJoinLandingController",["$scope","validationService",function(n,t){this.validateEmail=function(){n.form.$submitting=!0;t.validateUnique("user","email",n.formData.email).then(function(t){var i=new Date,r;i.setTime(i.getTime()+.5*6e4);$.cookie("email-prefill",n.formData.email,{expires:i,path:"/"});r=!t.Success;r?window.location.href="/showjoin/login/":document.getElementById("joinForm").submit()}).finally(function(){n.form.$submitting=!1})}}]);angular.module("CCG.CGCComics").factory("showJoinService",["webServiceFactory",function(n){return n.create({createAccount:function(n){return this.post("resources/services/showjoin/create-account/",n)},updateAccount:function(n){return this.post("resources/services/showjoin/update-account/",n)}})}]);angular.module("CCG.CGCComics").controller("showJoinUpdateAccountController",["$scope","showJoinService",function(n,t){n=angular.extend(n,window.bootstrap);n.events={saveAccount:function(){function i(){n.showErrorMessage=!0}if(n.showErrorMessage=!1,!n.form.$invalid){n.form.$submitting=!0;var r=t.updateAccount(n.FormData).then(function(t){t.Success?(n.redirectUrl=t.RedirectUrl,n.events.redirect()):i()},i);r["finally"](function(){n.form.$submitting=!1})}},redirect:function(){window.location.href=n.redirectUrl}}}])