PageSourceSearch

https://www.kester.com/DesktopModules/ForemostMedia/FMProductCatalog/Scripts/application.js?cdv=363

js kester.com collected 2026-10-02 08:02:38 UTC 59,755 bytes, 1 lines download raw bytes

1!function(e){var t=!1;function a(){t||(fmPCMVars.serviceFramework=e.ServicesFramework(fmPCMVars.moduleId),fmPCMVars.baseServicePath=fmPCMVars.serviceFramework.getServiceRoot("ForemostMedia/FMProductCatalog"),t=!0)}function r(t,r,i,o,n,s){a(),"function"==typeof i&&(n=o,o=i,s=n,i={}),e.ajax({type:t,url:fmPCMVars.baseServicePath+r,data:i,beforeSend:fmPCMVars.serviceFramework.setModuleHeaders}).done((function(e,t){"function"==typeof o&&o(e,t)})).always((function(e){"function"==typeof n&&n(e)})).fail((function(e){"function"==typeof s&&s(e)}))}"undefined"==typeof fmPCMVars&&(fmPCMVars={}),fmPCMVars.api={categoryAdmin:{deleteCategory:function(e,t,a){r("DELETE","Categories/"+e.id,e,t,a)},getCategories:function(e,t,a){r("GET","Categories",e,t,a)}},categoryEdit:{getCategoryProducts:function(e,t,a){r("GET","CategoryProduct",e,t,a)},addCategoryProduct:function(e,t,a){r("POST","ProductCategory",e,t,a)},saveSortOrder:function(e,t,a){r("PUT","CategoryProduct",e,t,a)},removeProductCategory:function(e,t,a){r("DELETE","ProductCategory",e,t,a)},getCategorySlug:function(e,t,a){r("POST","CatalogUtils/GenerateCategorySlug",e,t,a)}},productAdmin:{deleteProduct:function(e,t,a){r("DELETE","Products/"+e.Id,t,a)},getProducts:function(e,t,a){r("GET","Products",e,t,a)},getProduct:function(e,t,a){r("GET","Products/"+e.Id,e,t,a)},addProduct:function(e,t,a,i){r("POST","Products",e,t,a,i)}},productEdit:{getRelatedProducts:function(e,t,a,i){r("GET","RelatedProduct",e,t,a,i)},addRelatedProduct:function(e,t,a,i){r("POST","RelatedProduct",e,t,a,i)},saveRelatedProductSortOrder:function(e,t,a,i){r("PUT","RelatedProduct",e,t,a,i)},removeRelatedProduct:function(e,t,a,i){r("DELETE","RelatedProduct/"+e.Id,e,t,a,i)},getProductDataPairs:function(e,t,a,i){r("GET","ProductDataPair/LoadProductDataPairs",e,t,a,i)},saveProductDataPair:function(e,t,a,i,o){r(e,"ProductDataPair",t,a,i,o)},deleteProductDataPair:function(e,t,a,i){r("DELETE","ProductDataPair/"+e.Id,e,t,a,i)},sortProductDataPairs:function(e,t,a,i){r("POST","CatalogUtils/SortProductDataPairs",e,t,a,i)},sortProductTabs:function(e,t,a,i){r("POST","ProductTab/Sort",e,t,a,i)},removeProductTab:function(e,t,a,i){r("DELETE","ProductTab/"+e.Id,e,t,a,i)},getProductTabs:function(e,t,a,i){r("GET","ProductTab/LoadProductTabs",e,t,a,i)},getProductSpecs:function(e,t,a,i){r("GET","ProductSpecifications",e,t,a,i)},getSpecsWithValues:function(e,t,a){r("GET","CatalogUtils/GetAllSpecifications",e,t,a)},saveProductSpec:function(e,t,a,i){r("POST","ProductSpecifications",e,t,a,i)},deleteProductSpec:function(e,t,a){r("DELETE","productspecifications/"+e.Id,e,t,a)},removeImage:function(e,t,a,i){r("POST","ProductImage/RemoveProductImage?imageId="+e.imageId,e,t,a,i)},updateImageSortOrder:function(e,t,a,i){r("POST","ProductImage/UpdateSortOrder?imageId="+e.ImageId,e,t,a,i)},getProductImages:function(e,t,a,i){r("GET","ProductImage/GetProductImages",e,t,a,i)},productOptionSave:function(e,t,a){r("POST","ProductOption/SaveOption",e,t,a)},getProductOption:function(e,t,a){r("GET","ProductOption/GetOptions",e,t,a)},uploadOptionImage:function(t,r,i){!function(t,r,i,o,n){a(),e.ajax({type:t,url:fmPCMVars.baseServicePath+r,data:i,processData:!1,contentType:!1,enctype:"multipart/form-data",beforeSend:fmPCMVars.serviceFramework.setModuleHeaders}).done((function(e,t){"function"==typeof o&&o(e,t)})).always((function(e){"function"==typeof n&&n(e)})).fail((function(e){"function"==typeof fail&&fail(e)}))}("POST","ProductOption/ImportOptionImage?productId="+t.productId,t.formData,r,i)},deleteProductOption:function(e,t,a){r("DELETE","ProductOption/DeleteOption?optionId="+e.toString(),t,a)}},specificationAdmin:{getSpecifications:function(e,t,a){r("GET","Specifications",e,t,a)},deleteSpecification:function(e,t,a){r("DELETE","Specifications/"+e.Id,e,t,a)}},specificationEdit:{getSystemName:function(e,t,a){r("POST","CatalogUtils/GenerateSystemName",e,t,a)}},specificationValues:{getSpecificationValues:function(e,t,a){r("GET","SpecificationValues",e,t,a)},deleteSpecificationValue:function(e,t,a){r("DELETE","SpecificationValues/"+e.Id,e,t,a)},saveSpecificationValue:function(e,t,a,i){r("POST","SpecificationValues",e,t,a,i)}},templateManager:{loadTemplates:function(e,t,a){r("GET","template/loadtemplates",e,t,a)},getTemplate:function(e,t,a){r("GET","template/GetTemplate",e,t,a)},cloneTemplate:function(e,t,a){r("POST","template/clonetemplate",e,t,a)},renameTemplate:function(e,t,a){r("PUT","template/renametemplate",e,t,a)},saveTemplate:function(e,t,a,i){r("PUT","template/savetemplate",e,t,a,i)},deleteTemplate:function(e,t,a){r("DELETE","template/deletetemplate",e,t,a)}},helpers:{getServicesFramework:a}}}(jQuery),function(e,t){var a=function(e,t,a){var r=this;null==t&&(t=""),null==a&&(a=""),null==e&&(e={Id:-1,Name:"",ParentCategory:-1,SortOrder:0}),r.id=ko.observable(e.Id),r.isNew=e.IsNew?"new-category bg-info":"existing-category",r.slug=ko.observable(e.Slug),r.name=ko.observable(e.Name),r.parentCategory=ko.observable(e.ParentCategoryName),r.sortOrder=ko.observable(e.SortOrder),r.editLink=t.indexOf("-999")?t.replace("-999",r.id()):e.editUrl,r.viewLink=a.indexOf("{default}")?a.replace("?categoryslug={default}","/"+r.slug()):e.Slug},r=function(e){var t=this;t.isLoading=ko.observable(!0),t.servicePath=e,t.categories=ko.observableArray([]),t.pageSize=ko.observable(),t.totalResults=ko.observable(),t.totalPages=ko.observable(),t.currentPage=ko.observable(),t.filterObject={},t.pageNumbers=ko.computed((function(){var e=[];
1if(t.totalPages()>0)for(var a=1;a<=t.totalPages();a++)e.push({text:a,isCurrent:a===t.currentPage()});return e})),t.hasPrevious=ko.computed((function(){return t.currentPage()>1})),t.hasNext=ko.computed((function(){return t.currentPage()!==t.totalPages()})),t.removeCategory=function(e){if(fmJsHelpers.fmConfirm("Are you sure you want to delete this category?  This action is permanent.")){t.isLoading(!0);var a={id:e.id()};fmPCMVars.api.categoryAdmin.deleteCategory(a,(function(a){a.success?(t.categories.remove(e),t.isLoading(!1),t.getCategories(t.filterObject)):(t.isLoading(!1),alert("There was an error deleting the category. Message: "+a.message))}),{})}},t.getCategories=function(e){t.isLoading(!0),t.filterObject=e,fmPCMVars.api.categoryAdmin.getCategories(void 0!==e?e:{},(function(e){if(e.success){var r=[];if(t.pageSize(e.pageSize),t.totalResults(e.total),t.totalPages(e.totalPages),t.currentPage(e.currentPage),e.categories.length>0)for(var i=0;i<e.categories.length;i++){var o=new a(e.categories[i],e.editUrl,e.viewCategoryUrl);r.push(o)}t.categories(r)}}),(function(){t.isLoading(!1)}))}};fmPCMVars.isAdminControl&&(fmPCMVars.categoryAdminViewModel=new function(e){var t=this;t.servicePath=e,t.searchTerm=ko.observable(""),t.pageSize=ko.observable("50"),t.searchObject={PageSize:t.pageSize()},t.pageToLoad=ko.observable(1),t.categoryList=new r(e),t.searchCategories=function(e){var a=t.searchTerm();t.searchObject={},""===a&&void 0===a||(t.searchObject.SearchTerm=a),t.searchObject.PageSize=t.pageSize(),t.searchObject.CurrentPage=e?1:t.categoryList.currentPage(),t.categoryList.getCategories(t.searchObject)},t.changePage=function(e){t.categoryList.currentPage(e.text),t.searchCategories(!1)},t.previousPage=function(){t.categoryList.currentPage()-1>0&&(t.categoryList.currentPage(t.categoryList.currentPage()-1),t.searchCategories(!1))},t.nextPage=function(){t.categoryList.currentPage()+1<=t.categoryList.totalPages()&&(t.categoryList.currentPage(t.categoryList.currentPage()+1),t.searchCategories(!1))},t.pageSize.subscribe((function(e){t.searchCategories(!0)}))}(fmPCMVars.baseServicePath))}(jQuery,window.Sys),function(e,t){var a=function(e,t){var a=this;null==t&&(t=""),a.id=ko.observable(e.ID),a.categoryId=e.CategoryID,a.productId=e.ProductID,a.sku=e.Sku,a.productId=e.ProductID,a.name=e.Name,a.summary=e.Summary,a.mainImage=e.MainImage,a.mainImageDescription=e.MainImageDescription,a.sortOrder=ko.observable(e.SortOrder),a.slug=e.Slug,a.editLink=t.indexOf("-999")?t.replace("-999",e.ProductID):e.editUrl},r=function(t){var r=this;r.isLoading=ko.observable(!1),r.categoryProducts=ko.observableArray([]),r.selectedProduct=ko.observable(""),r.hasSelectedProduct=ko.computed((function(){return null!==r.selectedProduct()&&void 0!==r.selectedProduct()&&(void 0!==r.selectedProduct()&&r.selectedProduct().length>0)})),r.productIdsToExcludeInSearchResults=ko.computed((function(){for(var e=[],t=0;t<r.categoryProducts().length;t++)e.push(r.categoryProducts()[t].productId);return e})).extend({notify:"always"}),r.getCategoryProducts=function(){r.isLoading(!0),fmPCMVars.api.categoryEdit.getCategoryProducts({categoryId:fmPCMVars.currentCategoryId},(function(e){if(e.success){var i=[];if(e.categoryProducts.length>0){t.hasCategoryProducts(!0);for(var o=0;o<e.categoryProducts.length;o++){var n=new a(e.categoryProducts[o],e.editProductUrl);i.push(n)}}else t.hasCategoryProducts(!1);r.categoryProducts(i)}}),(function(){r.isLoading(!1)}))},r.addCategoryProduct=function(){if(""!==r.selectedProduct()){r.isLoading(!0);var t={CategoryId:fmPCMVars.currentCategoryId,ProductId:r.selectedProduct(),SortOrder:0};fmPCMVars.api.categoryEdit.addCategoryProduct(t,(function(e){r.isLoading(!1),e.success?r.getCategoryProducts():alert("There was an error adding the product to the category")}),(function(){r.isLoading(!1),r.selectedProduct(""),e("#fmCategoryProductsSearch").select2("val",r.selectedProduct())}))}},r.saveSortOrder=function(e,t,a){var i={sortItems:fmJsHelpers.fmCreateSortOrderDTO(e,e.targetParent())};r.isLoading(!0),fmPCMVars.api.categoryEdit.saveSortOrder(i,(function(e){e.success||alert("There was an error posting the updated sort order to the server")}),(function(){r.isLoading(!1)}))},r.removeCategoryProduct=function(e){if(fmJsHelpers.fmConfirm("Are you sure you want to remove this product from the category? This action is permanent.")){r.isLoading(!0);var a={CategoryId:e.categoryId,ProductId:e.productId};fmPCMVars.api.categoryEdit.removeProductCategory(a,(function(a){a.success?(r.categoryProducts.remove(e),t.hasCategoryProducts(r.categoryProducts().length>0),alert("Product Relationship removed successfully.")):alert("There was an error removing the product relationship. Message: "+a.message)}),(function(e){r.isLoading(!1)}))}},fmPCMVars.api.helpers.getServicesFramework();var i="Enter Product Name or SKU to Search";r.productSearchBoxConfig={placeholder:i,minimumInputLength:1,allowClear:!0,ajax:{url:fmPCMVars.baseServicePath+"Products",dataType:"json",delay:350,beforeSend:fmPCMVars.serviceFramework.setModuleHeaders,data:function(e){return{searchTerm:e.term,page:e.page}},processResults:function(e,t){t.page=t.page||1;for(var a=[],i=0;i<e.products.length;i++){var o=e.products[i].Id;-1===jQuery.inArray(o,r.productIdsToExcludeInSearchResults())&&a.push({id:e.products[i].Id,text:e.products[i].Name,sku:e.products[i].Sku})}return{results:a,pagination:{more:30*t.page<e.total}}},cache:!0},templateResult:function(t){var a="<div>"+t.text+" ("+t.sku+")</div>";return e(a)},templateSelection:function(e){return null==e||null===e.text||void 0===e.text||null===e.sku||void 0===e.sku?i:e.text+" ("+e.sku+")"},language:{inputTooShort:function(){return"Please enter 1 or more characters"}},dropdownCssClass:"bigdrop"},r.getCategoryProducts()};fmPCMVars.isAdminControl&&(fmPCMVars.categoryEditViewModel=new function(e,t){var a=this;a.IsLoaded=ko.observable(!1),a.Id=ko.observable(t),a.CategoryName=ko.observable(""),a.CategorySlug=ko.observable(),a.hasCategoryProducts=ko.observable(!1),a.GetUniqueSlugValue=function(){if(0===a.CategorySlug().length&&a.CategoryName().length>0){var e={EntityType:"category",EntityName:a.CategoryName(),EntityId:a.Id.length?a.Id():-1};fmPCMVars.api.categoryEdit.getCategorySlug(e,(function(e){e.success&&a.CategorySlug(e.slug)}),(function(){a.IsLoaded(!0)}))}},a.categoryProductView=new r(a)}(fmPCMVars.baseServicePath,fmPCMVars.currentCategoryId))}(jQuery,window.Sys),function(e,t){function a(e,t){if(0===e.length)return t;for(var a="?filters=",r=0;r<e.length;r++)a+=r>0?",":"",a+=e[r].specificationValueId;return t+a}var r=function(e,t){var a=this;a.specificationId=t.SpecificationId,a.specificationName=t.SpecName,a.specificationValueId=t.SpecValueId,a.specificationValue=t.SpecValue},i=function(e,t){var a=this;a.specificationValueId=t.SpecValueId,a.value=t.Value,a.displayOrder=t.DisplayOrder,a.productC
1ount=t.ProductCount,a.isSelected=ko.observable(!1),a.isSelected.subscribe((function(t){t?e.pendingFilters.push(a):e.pendingFilters.remove(a)}))},o=function(e,t){var a=this;a.specificationName=t.SpecName,a.specificationId=t.SpecId,a.displayOrder=t.DisplayOrder,a.options=ko.observableArray([]),a.pendingFilters=ko.observableArray([]),a.hasPendingFilters=ko.computed((function(){return a.pendingFilters().length>0}));for(var r=0;r<t.Options.length;r++)a.options.push(new i(a,t.Options[r]))};fmPCMVars.categoryFacetsViewModel=function(e,t,i){var n=this;if(n.isLoading=ko.observable(!1),n.baseCategoryUrl=e,n.facetGroups=ko.observableArray([]),n.activeFacets=ko.observableArray([]),t.length>0){for(var s=[],c=0;c<t.length;c++){var d=new o(n,t[c]);s.push(d)}n.facetGroups(s)}if(i.length>0){for(var u=[],l=0;l<i.length;l++){var p=new r(n,i[l]);u.push(p)}n.activeFacets(u)}n.removeActiveFilter=function(t){n.isLoading(!0),n.activeFacets.remove(t),window.location.href=a(n.activeFacets(),e)},n.applyPendingFilters=function(t){var r=!1,i=e+"?filters=";n.activeFacets().length>0&&(r=!0,i=a(n.activeFacets(),e));for(var o="",s=0;s<n.facetGroups().length;s++)for(var c=n.facetGroups()[s],d=0;d<c.pendingFilters().length;d++){var u=c.pendingFilters()[d];0===s&&0===d?(o+=r?",":"",o+=u.specificationValueId):o+=","+u.specificationValueId}window.location.href=i+o}}}(jQuery,window.Sys);var fmJsHelpers={fmConfirm:function(e){return confirm(e)},fmIsNumberKey:function(e){var t=e.which?e.which:event.keyCode;return!(t>31&&(t<48||t>57))},fmCreateSortOrderDTO:function(e,t){for(var a=[],r=0;r<t.length;r++){var i=t[r];i.id()!==e.item.id()?i.sortOrder()!==r+1&&(i.sortOrder(r+1),a.push({Id:i.id(),SortOrder:i.sortOrder()})):(e.item.sortOrder(e.targetIndex+1),a.push({Id:e.item.id(),SortOrder:e.item.sortOrder()}))}return a}};jQuery,window.Sys,ko.validation.init({registerExtenders:!0,messagesOnModified:!0,insertMessages:!0,parseInputAttributes:!0,messageTemplate:null,decorateInputElement:!0,errorElementClass:"has-error",errorMessageClass:"text-danger"}),ko.bindingHandlers.showModal={init:function(e,t){jQuery(e).modal({backdrop:"static",keyboard:!0,show:!1})},update:function(e,t){var a=t();ko.utils.unwrapObservable(a)?jQuery(e).modal("show"):jQuery(e).modal("hide")}},ko.bindingHandlers.initValue={init:function(e,t){var a=t();if(!ko.isWriteableObservable(a))throw new Error('Knockout "initValue" binding expects an observable.');a(e.value)}},ko.bindingHandlers.initChecked={init:function(e,t){var a=t();if(!ko.isWriteableObservable(a))throw new Error('Knockout "initChecked" binding expects an observable.');a(e.checked)}},ko.bindingHandlers.valueWithInit={init:function(e,t,a,r,i){ko.applyBindingsToNode(e,{initValue:t()},i),ko.applyBindingsToNode(e,{value:t()},i)}},ko.bindingHandlers.checkedWithInit={init:function(e,t,a,r,i){ko.applyBindingsToNode(e,{initChecked:t()},i),ko.applyBindingsToNode(e,{checked:t()},i)}},function(e,t){var a=function(e,t,a){var r=this;null==t&&(t=""),null==a&&(a=""),null==e&&(e={Id:-1,Name:"",SortOrder:0,Published:!1}),r.id=ko.observable(e.Id),r.isNew=e.IsNew?"new-product bg-info":"existing-product",r.sku=ko.observable(e.Sku),r.slug=ko.observable(e.Slug),r.name=ko.observable(e.Name),r.sortOrder=ko.observable(e.SortOrder),r.published=ko.observable(e.Published),r.publishedDisplay=ko.computed((function(){return!0===r.published()?'<span class="fa fa-check-square-o"></span>':'<span class="fa fa-square-o"></span>'})),r.categories=ko.observableArray(e.Categories),r.assignedCategories=ko.observable(e.CategoriesFormatted),r.editLink=t.indexOf("-999")?t.replace("-999",r.id()):e.editUrl,r.viewLink=a.indexOf("{default}")?a.replace("?productslug={default}","/"+r.slug()):"/"+e.Slug},r=function(e){var t=this;t.isLoading=ko.observable(!0),t.servicePath=e,t.products=ko.observableArray([]),t.pageSize=ko.observable(),t.totalResults=ko.observable(),t.totalPages=ko.observable(),t.currentPage=ko.observable(),t.pageNumbers=ko.computed((function(){var e=[];if(t.totalPages()>0)for(var a=1;a<=t.totalPages();a++)e.push({text:a,isCurrent:a===t.currentPage()});return e})),t.hasPrevious=ko.computed((function(){return t.currentPage()>1})),t.hasNext=ko.computed((function(){return t.currentPage()!==t.totalPages()})),t.removeProduct=function(e){if(fmJsHelpers.fmConfirm("Are you sure you want to delete this product?  This action is permanent.")){t.isLoading(!0);var a={Id:e.id()};fmPCMVars.api.productAdmin.deleteProduct(a,(function(a){a.success?(t.products.remove(e),t.isLoading(!1),alert("Product removed successfully.")):(t.isLoading(!1),alert("There was an error deleting the product. Message: "+a.message))}),(function(){t.isLoading(!1)}))}},t.getProducts=function(e){t.isLoading(!0);var r=void 0!==e?e:{};fmPCMVars.api.productAdmin.getProducts(r,(function(e){if(e.success){var r=[];if(t.pageSize(e.pageSize),t.totalResults(e.total),t.totalPages(e.totalPages),t.currentPage(e.currentPage),e.products.length>0)for(var i=0;i<e.products.length;i++){var o=new a(e.products[i],e.editUrl,e.viewProductUrl);r.push(o)}t.products(r)}}),(function(){t.isLoading(!1)}))},t.getProduct=function(e){t.isLoading(!0);var a={Id:e};fmPCMVars.api.productAdmin.getProduct(a,(function(e){}),(function(){t.isLoading(!1)}))}};fmPCMVars.isAdminControl&&(fmPCMVars.productAdminViewModel=new function(e){var t=this;t.servicePath=e,t.searchTerm=ko.observable(""),t.categoryFilter=ko.observable("-1"),t.pageSize=ko.observable("50"),t.searchObject={PageSize:t.pageSize()},t.pageToLoad=ko.observable(1),t.hideUnpublished=ko.observable(!1),t.productList=new r(e),t.searchProducts=function(e){var a=t.searchTerm(),r=t.categoryFilter();t.searchObject={},""===a&&void 0===a||(t.searchObject.SearchTerm=a),""===a&&void 0===a||(t.searchObject.CategoryFilter=r),t.searchObject.PageSize=t.pageSize(),t.searchObject.CurrentPage=e?1:t.productList.currentPage(),t.searchObject.IncludeUnpublished=!t.hideUnpublished(),t.productList.getProducts(t.searchObject)},t.pageSize.subscribe((function(e){t.searchProducts(!0)})),t.categoryFilter.subscribe((function(e){t.searchProducts(!0)})),t.hideUnpublished.subscribe((function(e){t.searchProducts(!0)})),t.changePage=function(e){t.productList.currentPage(e.text),t.searchProducts(!1)},t.previousPage=function(){t.productList.currentPage()-1>0&&(t.productList.currentPage(t.ProductList.currentPage()-1),t.searchProducts(!1))},t.nextPage=function(){t.productList.currentPage()+1<=t.productList.totalPages()&&(t.productList.currentPage(t.productList.currentPage()+1),t.searchProducts(!1))},t.newProductSku=ko.observable("").extend({required:!0}),t.newProductName=ko.observable("").extend({required:!0}),t.newProductCategory=ko.observableArray([]),t.newProductSortOrder=ko.observable(0),t.newProductPublished=ko.observable(!1),t.quickCreateProduct=ko.observable(!0),t.saveButtonText=ko.computed((function(){var e="Create Product";return t.quickCreateProduct()||(e="Save & Edit Product"),e}
1)),t.displayAddModal=ko.observable(!1),t.showModal=function(){t.displayAddModal(!0)},t.closeSubmitModal=function(){t.displayAddModal(!1),t.newProductSku(""),t.newProductSku.isModified(!1),t.newProductName(""),t.newProductName.isModified(!1),t.newProductCategory([]),t.newProductSortOrder("0"),t.newProductPublished(!1),t.quickCreateProduct(!0),fmPCMVars.$select2Cats.select2().val()},t.errors=ko.validation.group(t),t.addProduct=function(e,r){if(0===t.errors().length){var i={Id:-1,Sku:t.newProductSku(),Name:t.newProductName(),Categories:t.newProductCategory(),SortOrder:t.newProductSortOrder(),Published:t.newProductPublished()};fmPCMVars.api.productAdmin.addProduct(i,(function(e){var r,i,o,n,s;t.quickCreateProduct()?(e.product.IsNew=!0,t.productList.length>0?t.productList.products.unshift(new a(e.product,e.editUrl,e.viewProductUrl)):t.productList.getProducts(t.searchObject),r=!0,i=jQuery(".messaging-ph"),n=(o=jQuery(".save-message-alerts")).find(".fm-success-message-wrap"),s=o.find(".fm-failure-message-wrap"),i.html(""),r?i.append(n.clone().html()):i.append(s.clone().html())):window.location.href=e.editUrl,t.closeSubmitModal()}),(function(){}),(function(e){var a=JSON.parse(e.responseText);409===e.status&&(alert(a.message),t.newProductSku(""))}))}else t.errors.showAllMessages()}}(fmPCMVars.baseServicePath))}(jQuery,window.Sys),function(e,t){function a(e,t){return t?ko.utils.arrayFirst(e,(function(e){return e.id===t})):[]}"undefined"==typeof fmPCMVars&&(fmPCMVars={}),void 0===fmPCMVars.model&&(fmPCMVars.model={});var r=function(e){console.log(e.EditUrl);var t=this;t.id=ko.observable(e.Id),t.productId=ko.observable(e.ProductId),t.name=ko.observable(e.Name),t.tabType=ko.observable(e.TabType),t.showOn=ko.observable(e.ShowOn),t.requiresLogin=ko.observable(e.RequiresLogin),t.sortOrder=ko.observable(e.SortOrder),t.showOnFriendlyName=ko.observable(e.ShowOnFriendlyName),t.tabTypeFriendlyName=ko.observable(e.TabTypeFriendlyName),t.editLink=ko.observable(e.EditUrl),t.LocaleCode=ko.observable(e.LocaleCode),t.requiresLoginDisplay=ko.computed((function(){return!0===t.requiresLogin()?'<span class="fa fa-check-square-o"></span>':'<span class="fa fa-square-o"></span>'}))},i=function(e){var t=this;t.id=ko.observable(e.Id),t.productId=ko.observable(e.ProductId),t.name=ko.observable(e.Name),t.value=ko.observable(e.Value),t.sortOrder=ko.observable(e.SortOrder),t.localeCode=ko.observable(e.LocaleCode),t.createdOn=ko.observable(e.CreatedOn),t.updatedOn=ko.observable(e.UpdatedOn),t.createdBy=ko.observable(e.CreatedBy),t.updatedBy=ko.observable(e.UpdatedBy)},o=function(e){var t=this;t.id=e.Id,t.productId=e.ProductId,t.specificationId=e.SpecificationId,t.specificationValueId=e.SpecificationValueId,t.displayOrder=ko.observable(e.DisplayOrder),t.showOnProductPage=ko.observable(e.ShowOnProductPage),t.allowFiltering=ko.observable(e.AllowFiltering),t.customValue=ko.observable(e.CustomValue),t.specificationFriendlyName=e.SpecificationFriendlyName,t.specificationSystemName=e.SpecificationSystemName,t.specificationValue=ko.observable(e.SpecificationValue)},n=function(e,t){var a=this;null==t&&(t=""),a.id=ko.observable(e.Id),a.sku=e.Sku,a.productId=e.ProductID,a.name=e.Name,a.summary=e.Summary,a.mainImage=e.MainImage,a.mainImageDescription=e.MainImageDescription,a.sortOrder=ko.observable(e.SortOrder),a.slug=e.Slug,a.editLink=t.indexOf("-999")?t.replace("-999",e.ProductID):e.editUrl},s=function(t){var a=this;a.isLoading=ko.observable(!1),a.relatedProducts=ko.observableArray([]),a.selectedProduct=ko.observable(""),a.hasSelectedProduct=ko.computed((function(){return null!==a.selectedProduct()&&void 0!==a.selectedProduct()&&a.selectedProduct().length>0})),a.productIdsToExcludeInSearchResults=ko.computed((function(){var e=[];e.push(parseInt(fmPCMVars.currentProductId));for(var t=0;t<a.relatedProducts().length;t++)e.push(a.relatedProducts()[t].productId);return e})).extend({notify:"always"}),a.getRelatedProducts=function(){a.isLoading(!0);var e={productId:fmPCMVars.currentProductId};fmPCMVars.api.productEdit.getRelatedProducts(e,(function(e){if(e.success){var r=[];if(e.relatedProducts.length>0){t.hasRelatedProducts(!0);for(var i=0;i<e.relatedProducts.length;i++){var o=new n(e.relatedProducts[i],e.editProductUrl);r.push(o)}}else t.hasRelatedProducts(!1);a.relatedProducts(r)}}),(function(){a.isLoading(!1)}),(function(){}))},a.addRelatedProduct=function(){if(""!==a.selectedProduct()){a.isLoading(!0);var t={ProductId:fmPCMVars.currentProductId,RelatedProductId:a.selectedProduct(),SortOrder:0};fmPCMVars.api.productEdit.addRelatedProduct(t,(function(e){e.success?a.getRelatedProducts():alert("There was an error adding the related product")}),(function(){a.isLoading(!1),a.selectedProduct(""),e("#fmRelatedProductsSearch").select2("val",a.selectedProduct())}
1))}},a.saveSortOrder=function(e,t,r){var i={sortItems:fmJsHelpers.fmCreateSortOrderDTO(e,e.targetParent())};a.isLoading(!0),fmPCMVars.api.productEdit.saveRelatedProductSortOrder(i,(function(e){}),(function(){a.isLoading(!1)}),(function(e){a.isLoading(!1),alert("There was an error posting the updated sort order to the server")}))},a.removeRelatedProduct=function(e){if(fmJsHelpers.fmConfirm("Are you sure you want to remove ths relationship? This action is permanent.")){a.isLoading(!0);var r={Id:e.id()};fmPCMVars.api.productEdit.removeRelatedProduct(r,(function(r){r.success?(a.relatedProducts.remove(e),t.hasRelatedProducts(a.relatedProducts().length>0),alert("Product Relationship removed successfully.")):alert("There was an error removing the product relationship. Message: "+r.message)}),(function(){a.isLoading(!1)}))}},fmPCMVars.api.helpers.getServicesFramework();var r="Enter Product Name or SKU to Search";a.productSearchBoxConfig={placeholder:r,minimumInputLength:1,allowClear:!0,ajax:{url:fmPCMVars.baseServicePath+"Products",dataType:"json",delay:350,beforeSend:fmPCMVars.serviceFramework.setModuleHeaders,data:function(e){return{searchTerm:e.term,page:e.page}},processResults:function(e,t){t.page=t.page||1;for(var r=[],i=0;i<e.products.length;i++){var o=e.products[i].Id;-1===jQuery.inArray(o,a.productIdsToExcludeInSearchResults())&&r.push({id:e.products[i].Id,text:e.products[i].Name,sku:e.products[i].Sku})}return{results:r,pagination:{more:30*t.page<e.total}}},cache:!0},templateResult:function(t){var a="<div>"+t.text+" ("+t.sku+")</div>";return e(a)},templateSelection:function(e){return null==e||null===e.text||void 0===e.text||null===e.sku||void 0===e.sku?r:e.text+" ("+e.sku+")"},language:{inputTooShort:function(){return"Please enter 1 or more characters"}},dropdownCssClass:"bigdrop"},a.getRelatedProducts()},c=function(e){var t=this;t.dataPairModalTitleCreate="Create New Data Pair",t.dataPairModalTitleEdit="Edit Data Pair",t.dataPairModalTitle=ko.observable(t.dataPairModalTitleCreate),t.isLoading=ko.observable(!1),t.productDataPairs=ko.observableArray([]),t.getProductDataPairs=function(a,r){t.isLoading(!0);var o={LocaleCode:a,ProductId:r};fmPCMVars.api.productEdit.getProductDataPairs(o,(function(a){if(a.success){var r=[];if(a.DataPairs.length>0){e.hasProductDataPairs(!0);for(var o=0;o<a.DataPairs.length;o++){var n=new i(a.DataPairs[o]);r.push(n)}}else e.hasProductDataPairs(!1);t.productDataPairs(r)}}),(function(){t.isLoading(!1)}))},t.newDataPairId=ko.observable(-1),t.newDataPairName=ko.observable("").extend({required:!0}),t.newDataPairValue=ko.observable("").extend({required:!0}),t.newDataPairSortOrder=ko.observable(0),t.closeDataPairModal=function(){e.displayDataPairModal(!1),t.newDataPairId(-1),t.newDataPairName(""),t.newDataPairValue(""),t.newDataPairSortOrder(0),t.newDataPairName.isModified(!1),t.newDataPairValue.isModified(!1)},t.errors=ko.validation.group(t),t.addProductDataPair=function(){t.dataPairModalTitle(t.dataPairModalTitleCreate),e.showDataPairModal()},t.editProductDataPair=function(a){t.newDataPairId(a.id()),t.newDataPairName(a.name()),t.newDataPairValue(a.value()),t.dataPairModalTitle(t.dataPairModalTitleEdit),e.showDataPairModal()},t.saveProductDataPair=function(){var a=void 0!==e.activeLanguage()&&e.activeLanguage().length>0?e.activeLanguage():"";if(0===t.errors().length){var r={Id:t.newDataPairId()>0?t.newDataPairId():-1,ProductId:e.id,Name:t.newDataPairName(),Value:t.newDataPairValue(),SortOrder:t.newDataPairSortOrder(),LocaleCode:a};fmPCMVars.api.productEdit.saveProductDataPair(r.Id<0?"POST":"PUT",r,(function(){t.productDataPairs.length>0?t.productDataPairs.unshift(new i(data.dataPair)):t.getProductDataPairs(a,e.id)}),(function(){t.closeDataPairModal()}))}else t.errors.showAllMessages()},t.deleteProductDataPair=function(a){if(fmJsHelpers.fmConfirm("Are you sure you want to delete this item?  This action is permanent.")){t.isLoading(!0);var r={Id:a.id()};fmPCMVars.api.productEdit.deleteProductDataPair(r,(function(r){r.success?(t.productDataPairs.remove(a),e.hasProductDataPairs(t.productDataPairs().length>0),alert("Data Pair removed successfully.")):alert("There was an error deleting the data pair. Message: "+r.message)}),(function(){t.isLoading(!1)}))}},t.saveSortOrder=function(e,a,r){var i={sortItems:fmJsHelpers.fmCreateSortOrderDTO(e,e.targetParent())};t.isLoading(!0),fmPCMVars.api.productEdit.sortProductDataPairs(i,(function(e){}),(function(e){t.isLoading(!1)}),(function(e){t.isLoading(!1),alert("There was an error posting the updated sort order to the server")}))}},d=function(e){var t=this;if(t.id=e.Id,t.systemName=e.SystemName,t.friendlyName=e.FriendlyName,t.displayOrder=e.DisplayOrder,t.values=ko.observableArray([]),e.SpecificationValues.length>0)for(var a=0;a<e.SpecificationValues.length;a++){var r=e.SpecificationValues[a],i={id:r.Id,specificationId:r.SpecificationId,value:r.Value,displayOrder:r.DisplayOrder};t.values.push(i)}},u=function(e){var t=this;t.specificationsList=ko.observableArray([]),t.getAllSpecifications=function(){e.isLoading(!0),fmPCMVars.api.productEdit.getSpecsWithValues({},(function(e){if(e.success){var a=[];if(e.specifications.length>0){for(var r=0;r<e.specifications.length;r++){var i=new d(e.specifications[r]);a.push(i)}t.specificationsList(a)}}}),(function(){e.isLoading(!1)}))},t.getAllSpecifications()},l=function(e){var t=this;t.id=e.ID||"",t.name=e.Name||"",t.imageId=e.ImageID||"",t.imageName=e.ImageName||"",t.description=e.Description||"",t.createdOn=e.CreatedOn||"",t.createdBy=e.CreatedBy||"",t.updatedOn=e.UpdatedOn,t.updatedBy=e.Upd
1atedBy||"",t.sortOrder=e.SortOrder||0,t.imageLink="/Portals/"+fmPCMVars.portalId+"/fmproductcatalog/images/products/"+fmPCMVars.currentProductId.toString()+"/Option/Small/"+e.ImageName},p=function(){var t=this;function a(e){t.closeOptionsModal(),location.reload()}t.allOptions=ko.observableArray([]),t.allImages=ko.observableArray([]),t.currentOptionDescription=ko.observable(),t.currentOptionName=ko.observable(),t.currentOptionSortOrder=ko.observable(0),t.currentImageName=ko.observable(""),t.currentImageId=ko.observable(-1),t.currentState=ko.observable("add"),t.editOptionId="",t.fileInput=document.getElementById("optionImage"),t.isLoading=ko.observable(!1),t.mainViewModel="",t.productOptionModalTitle=ko.observable(t.productOptionTitleAdd),t.productOptionTitleAdd="Add Product Option",t.productOptionTitleEdit="Edit Product Option",t.$fileUploadButton=e("#optionImage"),t.showExistingImagePanel=ko.observable(!1),t.enableSaveButton=ko.computed((function(){return void 0!==t.currentOptionName()&&""!==t.currentOptionName().trim()&&void 0!==t.currentOptionDescription()&&""!==t.currentOptionDescription().trim()&&(void 0!==t.fileInput.files[0]||""!==t.currentImageName())})),t.enableEditButton=ko.computed((function(){return void 0!==t.currentOptionName()&&void 0!==t.currentOptionDescription()})),t.addProductOption=function(){t.currentState("add"),t.currentOptionDescription(""),t.currentOptionName(""),t.currentImageName(""),t.currentOptionSortOrder(0),t.currentImageId(-1),t.productOptionModalTitle(t.productOptionTitleAdd),t.generateImages(!0),t.showExistingImagePanel(!1),t.mainViewModel.displayProductOptionsModal(!0)},t.closeOptionsModal=function(){t.mainViewModel.displayProductOptionsModal(!1)},t.chooseNewFile=function(){t.showExistingImagePanel(!1),t.$fileUploadButton.click()},t.deleteCallback=function(e){fmPCMVars.api.productEdit.getProductOption({productId:fmPCMVars.currentProductId},t.getOptionsCallback)},t.deleteOption=function(e){fmPCMVars.api.productEdit.deleteProductOption(e.id,t.deleteCallback)},t.editProductSave=function(){var e={Id:parseInt(t.editOptionId),ProductId:fmPCMVars.currentProductId,ImageId:-1,ImageName:"",Name:t.currentOptionName(),Description:t.currentOptionDescription(),SortOrder:t.currentOptionSortOrder(),CreatedBy:-1,UpdatedBy:-1,CreatedOn:"2017-12-21",UpdatedOn:"2017-12-21"};fmPCMVars.api.productEdit.productOptionSave(e,a)},t.editProductOption=function(e){t.editOptionId=e.id,t.currentState("edit"),t.currentOptionDescription(e.description),t.currentOptionName(e.name),t.currentImageName(e.imageName),t.currentOptionSortOrder(e.sortOrder),t.currentImageId(e.imageId),t.productOptionModalTitle(t.productOptionTitleEdit),t.generateImages(!0),t.showExistingImagePanel(!1),t.mainViewModel.displayProductOptionsModal(!0)},t.generateImages=function(e){var a=[];e?(t.getOptionImages(a,!1),t.getMainImages(a,!0)):(t.getMainImages(a,!1),t.getOptionImages(a,!0));t.allImages(a)},t.getMainImages=function(a,r){e.each(t.mainViewModel.allImageDetails(),(function(e,t){var i=t.FileName,o="";r&&(o=ko.utils.arrayFirst(a,(function(e){return e.FileName===i}))),""!==o&&null!==o||a.push(t)}))},t.getOptionImages=function(a,r){e.each(t.allOptions(),(function(e,t){var i=t.imageName,o="";if((r&&(o=ko.utils.arrayFirst(a,(function(e){return e.FileName===i}))),""===(o=ko.utils.arrayFirst(a,(function(e){return e.FileName===i})))||null===o)&&!ko.utils.arrayFirst(a,(function(e){return e.FileName===i}))){var n=i.indexOf("."),s=new v({ID:t.imageId,FileName:t.imageName,Description:t.description,FileExtension:i.substring(n+1,i.length),CreatedOn:t.createdOn,UpdatedOn:t.updatedOn,ImageLink:t.imageLink,IsMain:!1,SortOrder:0,IsFocused:!1},fmPCMVars.currentProductId,!0);a.push(s)}}))},t.getOptions=function(){t.isLoading(!0),fmPCMVars.api.productEdit.getProductOption({productId:fmPCMVars.currentProductId},t.getOptionsCallback)},t.getOptionsCallback=function(e){var a=[];if(e.Options.length>0){for(var r=0;r<e.Options.length;r++){var i=new l(e.Options[r]);a.push(i)}t.allOptions(a),t.mainViewModel.hasProductOptions(!0),t.isLoading(!1)}else t.allOptions([]),t.mainViewModel.hasProductOptions(!1),t.isLoading(!1)}
1,t.init=function(a){if(t.mainViewModel=a.MainViewModel,a.Options.length>0){var r=[];e.each(a.Options,(function(e,t){r.push(new l(t))})),t.allOptions(r),t.mainViewModel.hasProductOptions(!0)}return t},t.saveOptionCallback=a,t.saveProductOption=function(){t.uploadImage()},t.setOptionImage=function(a){t.currentImageName(a.FileName),t.currentImageId(a.ID),e.each(t.allImages(),(function(e,t){t.IsFocused(!1)})),a.IsFocused(!0)},t.uploadImage=function(){var e=new FormData;if(0===t.fileInput.files.length&&-1!==t.currentImageId())return t.uploadImageCallback({Id:t.currentImageId().toString(),FileName:t.currentImageName()}),!0;if(0===t.fileInput.files.length&&"add"===t.currentState())return!1;e.append(t.fileInput.files[0].name,t.fileInput.files[0]),fmPCMVars.api.productEdit.uploadOptionImage({productId:fmPCMVars.currentProductId,formData:e},t.uploadImageCallback)},t.uploadImageCallback=function(e){var r={Id:"edit"!==t.currentState()?-1:parseInt(t.editOptionId),ProductId:fmPCMVars.currentProductId,ImageId:parseInt(e.Id),ImageName:e.FileName,Name:t.currentOptionName(),Description:t.currentOptionDescription(),SortOrder:t.currentOptionSortOrder(),CreatedBy:1,UpdatedBy:1,CreatedOn:"2017-12-21",UpdatedOn:"2017-12-21"};fmPCMVars.api.productEdit.productOptionSave(r,a)},t.$fileUploadButton.change((function(e){t.$fileUploadButton.get(0).files.length>0&&t.currentImageName(t.$fileUploadButton.get(0).files[0].name)}))},f=function(e){var t=this;t.productSpecTitleAdd="Add Product Specification",t.productSpecTitleEdit="Edit Product Specification",t.productSpecModalTitle=ko.observable(t.productSpecTitleAdd),t.isLoading=ko.observable(!1),t.allSpecifications=new u(t),t.selectedSpecification=ko.observable(),t.selectedSpecificationValue=ko.observable(),t.isEditing=ko.observable(!1),t.specBeingEdited=ko.observable(),t.enableSaveButton=ko.computed((function(){return void 0!==t.selectedSpecification()&&void 0!==t.selectedSpecificationValue()})),t.specificationValuesOptions=ko.computed((function(){if(void 0===t.selectedSpecification()||null===t.selectedSpecification())return[];if(!t.isEditing()){var e=t.selectedSpecification().id,a=ko.utils.arrayFilter(t.productSpecs(),(function(t){return t.specificationId===e}));return ko.utils.arrayFilter(t.selectedSpecification().values(),(function(e){return null===ko.utils.arrayFirst(a,(function(t){return e.id===t.specificationValueId}))}))}return t.selectedSpecification().values()})),t.productSpecs=ko.observableArray([]),t.editProductSpecificationId=ko.observable(-1),t.editProductSpecDisplayOrder=ko.observable(0).extend({min:0,number:!0}),t.editProductSpecAllowFiltering=ko.observable(!0),t.editProductSpecShowOnProductPage=ko.observable(!1),t.getProductSpecs=function(a){t.isLoading(!0);var r={productId:a};fmPCMVars.api.productEdit.getProductSpecs(r,(function(a){if(a.success){var r=[];if(a.assignedSpecifications.length>0){e.hasProductSpecs(!0);for(var i=0;i<a.assignedSpecifications.length;i++){var n=new o(a.assignedSpecifications[i]);r.push(n)}}else e.hasProductSpecs(!1);t.productSpecs(r)}}),(function(){t.isLoading(!1)}))},t.closeProductSpecModal=function(){t.isEditing(!1),e.displayProductSpecModal(!1),t.selectedSpecification(null),t.selectedSpecificationValue(null),t.editProductSpecificationId(-1),t.editProductSpecDisplayOrder(0),t.editProductSpecAllowFiltering(!0),t.editProductSpecShowOnProductPage(!1)},t.addProductSpecification=function(){t.productSpecModalTitle(t.productSpecTitleAdd),t.isEditing(!1),e.showProductSpecModal()},t.selectedSpecification.subscribe((function(e){if(t.isEditing()&&null!==t.specBeingEdited()){var r=a(e.values(),t.specBeingEdited().specificationValueId);t.selectedSpecificationValue(r)}})),t.editProductSpecification=function(r){t.isEditing(!0),t.specBeingEdited(r);var i=a(t.allSpecifications.specificationsList(),r.specificationId);t.selectedSpecification(i),t.editProductSpecificationId(r.id),t.editProductSpecDisplayOrder(r.displayOrder()),t.editProductSpecAllowFiltering(r.allowFiltering()),t.editProductSpecShowOnProductPage(r.showOnProductPage()),t.productSpecModalTitle(t.productSpecTitleEdit),e.showProductSpecModal()},t.errors=ko.validation.group(t),t.saveProductSpecification=function(){if(t.isLoading(!0),0===t.errors().length){var a={Id:t.editProductSpecificationId(),ProductId:e.id,SpecificationId:t.selectedSpecification().id,SpecificationValueId:t.selectedSpecificationValue().id,DisplayOrder:t.editProductSpecDisplayOrder(),ShowOnProductPage:t.editProductSpecShowOnProductPage(),AllowFiltering:t.editProductSpecAllowFiltering(),SpecificationFriendlyName:t.selectedSpecification().friendlyName,SpecificationSystemName:t.selectedSpecification().systemName,SpecificationValue:t.selectedSpecificationValue().value};fmPCMVars.api.productEdit.saveProductSpec(a,(function(a){t.getProductSpecs(e.id),t.closeProductSpecModal()}),(function(){t.isLoading(!1)}),(function(e){var t=JSON.parse(jqXHR.responseText);409===jqXHR.status&&alert(t.message)}))}else t.errors.showAllMessages()}
1,t.deleteProductSpecification=function(a){if(fmJsHelpers.fmConfirm("Are you sure you want to remove this specification from this product?")){t.isLoading(!0);var r={Id:a.id};fmPCMVars.api.productEdit.deleteProductSpec(r,(function(a){a.success?(t.getProductSpecs(e.id),alert("Specification removed successfully from this product.")):alert("There was a problem removing the product spec from the product. Message: "+a.message)}),(function(){t.isLoading(!1)}))}}},g=function(e){console.log(e);var t=this;t.isLoading=ko.observable(!1),t.productTabs=ko.observableArray([]),t.editTab=function(e){return dnnModal.show(e.editLink()+"?popUp=true",!1,550,950,!0)},t.saveSortOrder=function(e,a,r){var i={sortItems:fmJsHelpers.fmCreateSortOrderDTO(e,e.targetParent())};t.isLoading(!0),fmPCMVars.api.productEdit.sortProductTabs(i,(function(e){}),(function(){t.isLoading(!1)}),(function(e){t.isLoading(!1),alert("There was an error posting the updated sort order to the server")}))},t.removeProductTab=function(a){if(fmJsHelpers.fmConfirm("Are you sure you want to delete this product tab? This action is permanent.")){t.isLoading(!0);var r={Id:a.id()};fmPCMVars.api.productEdit.removeProductTab(r,(function(r){r.success?(t.productTabs.remove(a),e.hasProductTabs(t.productTabs().length>0),alert("Product Tab removed successfully.")):alert("There was an error deleting the product tab. Message: "+r.message)}),(function(e){t.isLoading(!1)}))}},t.getProductTabs=function(a,i){t.isLoading(!0);var o={LocaleCode:a,ProductId:i};fmPCMVars.api.productEdit.getProductTabs(o,(function(a){if(a.success){var i=[];if(e.addTabLink(a.AddProductTabUrl),a.ProductTabs.length>0){e.hasProductTabs(!0);for(var o=0;o<a.ProductTabs.length;o++){var n=new r(a.ProductTabs[o]);i.push(n)}}else e.hasProductTabs(!1);t.productTabs(i)}}),(function(){t.isLoading(!1)}))}},m=function(e){var t=this;t.name=e.Key,t.id=e.Value,t.selected=ko.observable(e.selected)},P=function(e){var t=this;t.allCategories=JSON.parse(jQuery('input[id$="hdnCategoriesList"]').val()),t.serverAssignedCategories=e,t.isLoading=ko.observable(!1),t.formattedCats=function(){for(var e=[],a=0;a<t.allCategories.length;a++){var r=t.allCategories[a];r.selected=t.serverAssignedCategories.indexOf(r.Value)>-1,e.push(new m(r))}return e},t.categoryList=ko.observableArray(t.formattedCats()),t.assignedCategories=ko.computed((function(){for(var e=[],a=0;a<t.categoryList().length;a++){var r=t.categoryList()[a];r.selected()&&e.push(parseInt(r.id))}return e})),t.assignmentChange=function(e,a){return e.selected()?t.addMapping(e):t.removeMapping(e),!0},t.addMapping=function(e){t.isLoading(!0);var a={CategoryId:e.id,ProductId:fmPCMVars.currentProductId,SortOrder:0};fmPCMVars.api.categoryEdit.addCategoryProduct(a,(function(t){t.success||(alert("There was an error adding this mapping"),e.selected(!1))}),(function(){t.isLoading(!1)}))},t.removeMapping=function(e){t.isLoading(!0);var a={CategoryId:e.id,ProductId:fmPCMVars.currentProductId};fmPCMVars.api.categoryEdit.removeProductCategory(a,(function(e){e.success||alert("There was an error removing this category mapping")}),(function(){t.isLoading(!1)}))}},v=function(e,t,a){var r=this;r.ID=e.ID,r.FileName=e.FileName,r.Description=e.Description,r.FileExtension=e.FileExtension,r.CreatedOn=e.CreatedOn,r.UpdatedOn=e.UpdatedOn,r.IsMain=e.IsMain,r.SortOrder=e.SortOrder,r.ImageLink=void 0!==a?e.ImageLink:"/Portals/"+fmPCMVars.portalId+"/fmproductcatalog/images/products/"+t+"/Small/"+r.FileName,r.IsFocused=ko.observable(!1)},b=function(t){var a=this;function r(e,t){return e.SortOrder<t.SortOrder?-1:e.SortOrder>t.SortOrder?1:0}a.productId=t.productId,a.mainViewModel="",a.userId=e("#pageBegin").attr("data-fmProductUserId"),a.$mainProductImage=e("#mainProductImage").find("img"),a.deleteImage=function(e){e.IsMain&&(a.mainViewModel.MainImage="",a.mainViewModel.MainImageDescription="",a.$mainProductImage.attr("src","/portals/0/fmproductcatalog/images/missing-image.jpg?width=200&height=200&format=jpg&mode=max&quality=85&dpi=72&autorotate=true&"));fmPCMVars.api.productEdit.removeImage({imageId:e.ID},a.imageCallback)},a.updateImageSortOrderModal=function(t){t.IsMain?alert("Error: Unable to change sort order on main image."):(a.mainViewModel.selectedImageId(t.ID),a.mainViewModel.selectedSortOrder(t.SortOrder),e("#sortOrderModal").modal("show"))},a.updateImageSortOrder=function(e){console.log(e.id),console.log(a.mainViewModel.selectedImageId()),console.log(a.mainViewModel.selectedSortOrder());var t={ImageId:a.mainViewModel.selectedImageId(),ProductId:e.id,SortOrder:a.mainViewModel.selectedSortOrder()};fmPCMVars.api.productEdit.updateImageSortOrder(t,(function(){location.reload()}))},a.getImageName=function(e){for(var t=0;t<a.mainViewModel.allImageDetails().length;t++)if(a.mainViewModel.allImageDetails()[t].ID==e)return a.mainViewModel.allImageDetails()[t].FileName},a.getImages=function(){fmPCMVars.api.productEdit.getProductImages({productId:a.productId},a.imageCallback)},a.imageCallback=function(e){a.mainViewModel.showExistingImagePanel(!1),a.mainViewModel.$existingFileId.val(""),a.setupImages({fullProduct:e})},a.initializeDropzone=function(){a.dropzoneInit=!0,Dropzone.autoDiscover=!1;var t=!0;try{e("<div>",{class:"dropzone",id:"editProductImages"}).appendTo(e("#dropZoneContainer"));var r=new Dropzone("div.dropzone",{url:fmPCMVars.baseServicePath+"ProductImage/AddProductImage?id="+a.productId+"&moduleId="+fmPCMVars.moduleId.toString()+"&tabId="+fmPCMVars.tabId.toString()+"&userId="+a.userId.toString(),acceptedFiles:"image/*",maxFiles:10,dictDefaultMessage:"Drag and drop or click to upload images.",uploadMultiple:!1,parallelUploads:1,autoProcessQueue:!0});void 0!==r&&r.on("success",(function(e,t){setTimeout((function(){r.removeFile(e),fmPCMVars.api.productEdit.getProductImages({productId:a.productId},a.imageCallback)}),2e3)})).on("maxfilesreached",(function(e,a){t=!1})).on("addedfile",(function(e){t||this.removeFile(e)})).on("queuecomplete",(function(){t=!0}))}catch(e){console.log("Could not initialize dropzone ")}},a.setupImages=function(t){var i=[],o=null;e.each(t.fullProduct.Images,(function(e,t){t.IsMain?o=new v(t,a.productId):i.push(new v(t,a.productId))})),i.sort(r),null!=o&&i.unshift(o);a.mainViewModel.allImageDetails(i)},a.init=function(e){return a.initializeDropzone(),a.mainViewModel=e,a.setupImages(e),a}};fmPCMVars.model.ProductEditViewModel=function(t,a){var r=this;if(r.initiallyActiveLocale=jQuery('input[id$="hdnActiveLocale"]').val(),r.id=a,r.servicePath=t,r.hasProductTabs=ko.observable(!1),r.hasProductDataPairs=ko.observable(!1),r.allProductSpecs=ko.observableArray([]),r.allImageDetails=ko.observableArray([]),r.hasProductSpecs=ko.observable(!1),r.hasProductOptions=ko.observable(!1),r.hasRelatedProducts=ko.observable(!1),r.addTabLink=ko.observable(),r.showExistingImagePanel=ko.observable(!1),r.selectedSortOrder=ko.observable(0),r.selectedImageId=ko.observable(0),r.currentFileName=ko.observable(""),r.$fileUploadButton=e(".fuMainProductImage"),r.$existingFileId=e(".fuExistingFileId"),r.showFileName=ko.computed((function(){return""!==r.currentFileName()}
1)),r.openAddTab=function(){return dnnModal.show(r.addTabLink()+"?popUp=true",!1,550,950,!0)},r.$fileUploadButton.change((function(e){r.$fileUploadButton.get(0).files.length>0&&r.currentFileName(r.$fileUploadButton.get(0).files[0].name)})),r.id>0){var i=jQuery('input[id$="hdnProductData"]');if(i.length){r.fullProduct=JSON.parse(i.val()),r.imagesViewModel=new b({productId:r.fullProduct.Id}).init(r),r.categoryListView=new P(r.fullProduct.Categories),r.sortOrder=ko.observable("").extend({number:!0});var o=jQuery('input[id$="hdnLocalesList"]').val();r.hasLocales=o.length>0,r.hasLocales?r.availableLanguages=JSON.parse(jQuery('input[id$="hdnLocalesList"]').val()):r.availableLanguages="",r.activeLanguage=ko.observable(),r.productTabList=new g(r),r.displayDataPairModal=ko.observable(!1),r.productDataPairsList=new c(r),r.showDataPairModal=function(){r.displayDataPairModal(!0)},r.displayProductSpecModal=ko.observable(!1),r.productSpecificationsList=new f(r),r.showProductSpecModal=function(){r.displayProductSpecModal(!0)},r.displayProductOptionsModal=ko.observable(!1),r.productAdditionalOptions=(new p).init({MainViewModel:r,Options:r.fullProduct.Options}),r.availableLanguages.length>0?r.activeLanguage.subscribe((function(e){var t=void 0===e?"default":e;r.productTabList.getProductTabs(t,r.id),r.productDataPairsList.getProductDataPairs(t,r.id)})):(r.productTabList.getProductTabs("",r.id),r.productDataPairsList.getProductDataPairs("",r.id)),r.activeLanguage(r.initiallyActiveLocale),r.productSpecificationsList.getProductSpecs(r.id),r.relatedProductView=new s(r),r.currentFileName(r.fullProduct.MainImage)}}r.sku=ko.observable().extend({required:!0}),r.name=ko.observable().extend({required:!0}),r.errors=ko.validation.group(r),r.chooseNewFile=function(){r.showExistingImagePanel(!1),r.$existingFileId.val(""),r.$fileUploadButton.click()},r.setMainImage=function(t){e.each(r.productAdditionalOptions.allImages(),(function(e,t){t.IsFocused(!1)})),r.currentFileName(t.FileName),t.IsFocused(!0),r.$existingFileId.val(t.ID)},r.validateForm=function(e,t){return r.errors().length>0&&r.errors.showAllMessages(),0===r.errors().length},r.isValid=ko.computed((function(){return 0===r.errors().length}))}}(jQuery,window.Sys),function(e){e(document).ready((function(){e(window).load((function(){var t=e("#fmCatalogImageWrapper"),a=e("#fmCatalogCanvas"),r=document.getElementById("canvas"),i="true"===a.attr("data-lockSizeToCanvas");if(void 0!==t&&void 0!==r&&null!=r){var o,n,s,c=r.getContext("2d"),d=1,u=1,l=1,p=e(r).attr("width"),f=e(r).attr("height"),g=p,m=f,P=window.matchMedia("(max-width: 500px)");t.css("width",p),i&&(a.css("width",p),a.css("height",f),a.css("position","relative"),e(r).addClass("verticalCenterCanvas")),e(r).attr("max-width",p),e(r).attr("max-height",f),e(window).on("resize",(function(e){clearTimeout(s),s=setTimeout((function(){325!==p&&P.matches?(p=325,f=325,t.css("width",p),i&&(a.css("width",p),a.css("height",f)),S()):325!=p||P.matches||(p=g,f=m,t.css("width",p),i&&(a.css("width",p),a.css("height",f)),S())}),250)}));var v=1,b=document.createElement("img");b.onload=function(){S()};var h=e(".fmCatalogCanvasImg");0!=h.length&&(b.src=h.first().attr("src").replace("Small","Full"),h.on("click",(function(){var t=b.src,a=e(this).attr("src"),r=t.lastIndexOf("/"),i=t.substring(r+1,t.length);r=a.lastIndexOf("/");var o=a.substring(r+1,a.length);b.src=t.replace(i,o)})),window.requestAnimationFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(e){window.setTimeout(e,1e3/60)},window.cancelAnimationFrame=function(){return window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||function(e){window.clearTimeout(e)}})}function I(){c.drawImage(b,0,0,p*v,f*l)}function y(e){var t=function(e,t){var a=e.getBoundingClientRect();return{x:t.clientX-a.left,y:t.clientY-a.top}}(r,e),a=t.x,i=t.y;c.drawImage(b,-a*d,-i*u,o,n)}function S(){var e,t;o=b.width,n=b.height,e=b.naturalWidth,t=b.naturalHeight,d=e/(p*(v=(v=e!==t?e/t:1)>(l=e!==t?t/e:1)?1:v))-2+1,u=t/(f*(l=l>v?1:l))-2+1,r.width=p*v,r.height=f*l,I(),r.addEventListener("mouseout",I,!1),r.addEventListener("mousemove",y,!1)}}))}))}(jQuery),function(e,t){var a=function(e,t){var a=this;null==t&&(t=""),null==e&&(e={Id:-1,FriendlyName:"",SystemName:"",DisplayOrder:0}),a.id=ko.observable(e.Id),a.friendlyName=e.FriendlyName,a.systemName=e.SystemName,a.displayOrder=ko.observable(e.DisplayOrder),a.published=ko.observable(e.Published),a.editLink=t.indexOf("-999")?t.replace("-999",a.id()):e.editUrl},r=function(e){var t=this;t.isLoading=ko.observable(!0),t.servicePath=e,t.specifications=ko.observableArray([]),t.pageSize=ko.observable(),t.totalResults=ko.observable(),t.totalPages=ko.observable(),t.currentPage=ko.observable(),t.pageNumbers=ko.computed((function(){var e=[];
1if(t.totalPages()>0)for(var a=1;a<=t.totalPages();a++)e.push({text:a,isCurrent:a===t.currentPage()});return e})),t.hasPrevious=ko.computed((function(){return t.currentPage()>1})),t.hasNext=ko.computed((function(){return t.currentPage()!==t.totalPages()})),t.removeSpecification=function(e){if(fmJsHelpers.fmConfirm("Are you sure you want to delete this specification?  This action is permanent.")){t.isLoading(!0);var a={Id:e.id()};fmPCMVars.api.specificationAdmin.deleteSpecification(a,(function(a){a.success?(t.specifications.remove(e),t.isLoading(!1),alert("Specification removed successfully.")):(t.isLoading(!1),alert("There was an error deleting the specification. Message: "+a.message))}),(function(){t.isLoading(!1)}))}},t.getSpecifications=function(e){t.isLoading(!0);var r=void 0!==e?e:{};fmPCMVars.api.specificationAdmin.getSpecifications(r,(function(e){if(e.success){var r=[];if(t.pageSize(e.pageSize),t.totalResults(e.total),t.totalPages(e.totalPages),t.currentPage(e.currentPage),e.specifications.length>0)for(var i=0;i<e.specifications.length;i++){var o=new a(e.specifications[i],e.editUrl);r.push(o)}t.specifications(r)}}),(function(){t.isLoading(!1)}))},t.getSpecification=function(e){t.isLoading(!0);var a={Id:e};fmPCMVars.api.specificationAdmin.getSpecification(a,(function(e){}),(function(){t.isLoading(!1)}))}};fmPCMVars.isAdminControl&&(fmPCMVars.specificationAdminViewModel=new function(e){var t=this;t.servicePath=e,t.pageSize=ko.observable("50"),t.searchObject={PageSize:t.pageSize()},t.pageToLoad=ko.observable(1),t.specificationList=new r(e),t.searchSpecifications=function(e){t.searchObject={},t.searchObject.PageSize=t.pageSize(),t.searchObject.CurrentPage=e?1:t.specificationList.currentPage(),t.specificationList.getSpecifications(t.searchObject)},t.pageSize.subscribe((function(e){t.searchSpecifications(!0)})),t.changePage=function(e){t.specificationList.currentPage(e.text),t.searchSpecifications(!1)},t.previousPage=function(){t.specificationList.currentPage()-1>0&&(t.specificationList.currentPage(t.SpecificationList.currentPage()-1),t.searchSpecifications(!1))},t.nextPage=function(){t.specificationList.currentPage()+1<=t.specificationList.totalPages()&&(t.specificationList.currentPage(t.specificationList.currentPage()+1),t.searchSpecifications(!1))},t.errors=ko.validation.group(t)}(fmPCMVars.baseServicePath))}(jQuery,window.Sys),function(e,t){var a=function(e){var t=this;null==e&&(e={Id:-1,Value:"",DisplayOrder:0}),t.id=e.Id,t.value=e.Value,t.displayOrder=e.DisplayOrder},r=function(e,t){var r=this;r.isLoading=ko.observable(!1),r.servicePath=e,r.specificationValues=ko.observableArray([]),r.removeSpecificationValue=function(e){if(fmJsHelpers.fmConfirm("Are you sure you want to delete this specification value?  This action is permanent.")){r.isLoading(!0);var t={Id:e.id};fmPCMVars.api.specificationValues.deleteSpecificationValue(t,(function(t){t.success?(r.specificationValues.remove(e),alert("Specification value removed successfully.")):alert("There was an error deleting the specification value. Message: "+t.message)}),(function(){r.isLoading(!1)}))}},r.getSpecificationValues=function(e){r.isLoading(!0);var t=void 0!==e?{Id:e}:{};fmPCMVars.api.specificationValues.getSpecificationValues(t,(function(e){if(e.success){var t=[];if(e.specificationValues.length>0)for(var i=0;i<e.specificationValues.length;i++){var o=new a(e.specificationValues[i]);t.push(o)}r.specificationValues(t)}}),(function(){r.isLoading(!1)}))}};fmPCMVars.isAdminControl&&(fmPCMVars.specificationEditViewModel=new function(e,t){var a=this;a.IsLoaded=ko.observable(!1),a.Id=t,a.Name=ko.observable(""),a.SystemName=ko.observable(),a.showValuesTab=ko.computed((function(){return a.Id>0})),a.GetSystemName=function(){if(0===a.SystemName().length&&a.Name().length>0){var e={Name:a.Name(),Id:a.Id};fmPCMVars.api.specificationEdit.getSystemName(e,(function(e){e.success&&a.SystemName(e.systemName)}),(function(){a.IsLoaded(!0)}))}},a.newId=ko.observable(""),a.newValue=ko.observable("").extend({required:!0}),a.newDisplayOrder=ko.observable(0),a.editValue=function(e){a.newId(e.id),a.newValue(e.value),a.newDisplayOrder(e.displayOrder),a.displayAddModal(!0)},a.displayAddModal=ko.observable(!1),a.showModal=function(){a.displayAddModal(!0)},a.closeSubmitModal=function(){a.displayAddModal(!1),a.newValue(""),a.newValue.isModified(!1),a.newDisplayOrder("0")},a.errors=ko.validation.group(a),a.onEnter=function(){a.saveSpecificationValue()},a.saveSpecificationValue=function(){if(0===a.errors().length){var e={Id:a.newId(),SpecificationId:a.Id,Value:a.newValue(),DisplayOrder:a.newDisplayOrder()};fmPCMVars.api.specificationValues.saveSpecificationValue(e,(function(){var e,r,i,o,n;e=!0,r=jQuery(".messaging-ph"),o=(i=jQuery(".save-message-alerts")).find(".fm-success-message-wrap"),n=i.find(".fm-failure-message-wrap"),r.html(""),e?r.append(o.clone().html()):r.append(n.clone().html()),a.closeSubmitModal(),a.specificationValuesList.getSpecificationValues(t)}),(function(){}),(function(){var e=JSON.parse(jqXHR.responseText);409===jqXHR.status&&(alert(e.message),a.newValue(""),a.newDisplayOrder(0))}))}else a.errors.showAllMessages()},a.specificationValuesList=new r(e,t)}(fmPCMVars.baseServicePath,fmPCMVars.currentSpecificationId))}(jQuery,window.sys),function(e,t){var a=[{text:"Main View",value:0},{text:"Category",value:1},{text:"Product",value:2}];function r(e){var t=jQuery(".messaging-ph"),a=jQuery(".save-message-alerts"),r=a.find(".fm-success-message-wrap"),i=a.find(".fm-failure-message-wrap");t.html(""),e?t.append(r.clone().html()):t.append(i.clone().html())}var i=function(e){void 0===e&&(e={});var t=this;t.isModuleTemplate=e.IsModuleTemplate||!1,t.name=ko.observable(e.Name||""),t.entityType=e.EntityType,t.newName=ko.observable(e.Name||""),t.code=ko.observable(e.Code||""),t.isCore=e.IsCoreFile||!1};fmPCMVars.isAdminControl&&(fmPCMVars.templateManagerViewModel=new function(e){var t=this;t.isLoading=ko.observable(!0),t.servicePath=e+"Template",t.myOptions=fmPCMVars.templateOptions,t.templateTypes=ko.observableArray(a),t.activeTemplateType=function(e,t){for(var a=0,r=t.length;a<r;a++)if(t[a].value===e)return t[a];return t[0]},t.templateTypeValue=ko.observable(t.activeTemplateType(fmPCMVars.activeTemplateType,t.templateTypes()).value),t.templateTypeValue.subscribe((function(e){t.load()})),t.templates=ko.observableArray([]),t.activeTemplate=ko.observable(t.templates[0]),t.templateCode=ko.computed((function(){return void 0!==t.activeTemplate()&&void 0!==t.activeTemplate().code()?t.activeTemplate().code():""})),t.editName=ko.computed((function(){return void 0!==t.activeTemplate()&&void 0!==t.activeTemplate().name?t.activeTemplate().newName():""})),t.isCore=ko.computed((function(){return void 0!==t.activeTemplate()&&void 0!==t.activeTemplate().isCore&&t.activeTemplate().isCore})),t.donothing=function(){},t.load=function(){t.isLoading(!0);var e={entityType:t.templateTypeValue};fmPCMVars.api.templateManager.loadTemplates(e,(function(e,a){if("success"===a){t.isLoading(!1);for(var r=[],o=0;o<e.Files.length;o++)r.push(new i(e.Files[o]));t.templates(r),t.activeTemplate(r[0])}}),(function(){t.isLoading(!1)}))},t.changeTemplate=ko.computed((function(){if(!(void 0===t.activeTemplate()||t.activeTemplate().name().length<5||t.activeTemplate().code().length>0)){t.isLoading(!0);var e={Name:t.activeTemplate().name(),EntityType:t.activeTemplate().entityType,IsCoreFile:t.activeTemplate().IsCoreFile};fmPCMVars.api.templateManager.getTemplate(e,(function(e,a){"success"===a&&t.activeTemplate().code(e.Code)}),(function(){t.isLoading(!1)}))}})),t.clone=function(){t.isLoading(!0);var e={FileName:t.activeTemplate().name(),EntityType:t.activeTemplate().entityType};fmPCMVars.api.templateManager.cloneTemplate(e,(function(e,a){"success"===a&&(t.isLoading(!1),t.templates.push(new i(e.Template)),t.activeTemplate(t.templates()[t.templates().length-1]))}),(function(){t.isLoading(!1)}))},t.saveRename=function(){t.isLoading(!0);var e={OldName:t.activeTemplate().name(),NewName:t.activeTemplate().newName(),EntityType:t.activeTemplate().entityType};fmPCMVars.api.templateManager.renameTemplate(e,(function(e){t.isLoading(!1),t.activeTemplate().name(e.Template.Name),fmPCMVars.templateOptions.$modal.modal("hide")}),(function(){t.isLoading(!1)}))},t.save=function(){t.isLoading(!0);var e={Name:t.activeTemplate().name(),Code:t.activeTemplate().code(),EntityType:t.activeTemplate().entityType};fmPCMVars.api.templateManager.saveTemplate(e,(function(e,a){"success"==a?(t.isLoading(!1),r(!0)):(t.isLoading(!1),r(!1))}),(function(){}))},t.deleteFile=function(){if(confirm("Please Confirm Delete!")){t.isLoading(!0);var e={Name:t.activeTemplate().name(),EntityType:t.activeTemplate().entityType};fmPCMVars.api.templateManager.deleteTemplate(e,(function(e,a){"success"==a?(t.isLoading(!1),t.templates.remove(t.activeTemplate()),alert("Template removed successfully.")):(t.isLoading(!1),alert("There was an error deleting the template. Message: "+e.message))}),(function(){t.isLoading(!1)}))}}}(fmPCMVars.baseServicePath))}(jQuery,window.Sys);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.