define(["loading","libraryMenu","globalize","cardStyle","emby-linkbutton","emby-checkbox","emby-select"],function(loading,libraryMenu,globalize){"use strict";function reloadList(page){loading.show(),query.IsAppStoreSafe=!0;var promise1=ApiClient.getAvailablePlugins(query),promise2=ApiClient.getInstalledPlugins();Promise.all([promise1,promise2]).then(function(responses){populateList({catalogElement:page.querySelector("#pluginTiles"),noItemsElement:page.querySelector("#noPlugins"),availablePlugins:responses[0],installedPlugins:responses[1]})})}function populateList(options){populateListInternal(options)}function getHeaderText(category){category.replace(" ","").replace(" ","");return"Channel"===category?category="Channels":"Theme"===category?category="Themes":"LiveTV"===category?category="HeaderLiveTV":"ScreenSaver"===category&&(category="HeaderScreenSavers"),globalize.translate(category)}function isUserInstalledPlugin(plugin){return-1===["02528C96-F727-44D7-BE87-9EEF040758C3","0277E613-3EC0-4360-A3DE-F8AF0AABB5E9","4DCB591C-0FA2-4C5D-A7E5-DABE37164C8B"].indexOf(plugin.guid)}function populateListInternal(options){var availablePlugins=options.availablePlugins,installedPlugins=options.installedPlugins,allPlugins=availablePlugins.filter(function(p){return p.category=p.category||"General",p.categoryDisplayName=getHeaderText(p.category),(!options.categories||-1!=options.categories.indexOf(p.category))&&((!options.targetSystem||p.targetSystem==options.targetSystem)&&"UserInstalled"==p.type)});availablePlugins=allPlugins.sort(function(a,b){var aName=a.category,bName=b.category;return aName>bName?1:bName>aName?-1:(aName=a.name,bName=b.name,aName>bName?1:bName>aName?-1:0)});var i,length,plugin,currentCategory,html="";if(!options.categories){currentCategory=globalize.translate("HeaderTopPlugins"),html+='
',html+='

'+currentCategory+"

";var topPlugins=allPlugins.slice(0).sort(function(a,b){if(a.installs>b.installs)return-1;if(b.installs>a.installs)return 1;var aName=a.name,bName=b.name;return aName>bName?1:bName>aName?-1:0}).filter(isUserInstalledPlugin);html+='
';var limit=screen.availWidth>=1920?15:12;for(i=0,length=Math.min(topPlugins.length,limit);i",html+="
"}var hasOpenTag=!1;for(currentCategory=null,!1===options.showCategory&&(html+='
',hasOpenTag=!0),i=0,length=availablePlugins.length;i",html+="
"),html+='
',html+='

'+category+"

",html+='
',hasOpenTag=!0),currentCategory=category),html+=getPluginHtml(plugin,options,installedPlugins)}hasOpenTag&&(html+="
",html+="
"),!availablePlugins.length&&options.noItemsElement&&options.noItemsElement.classList.add("hide"),options.catalogElement.innerHTML=html,loading.hide()}function getPluginHtml(plugin,options,installedPlugins){var html="",href=plugin.externalUrl?plugin.externalUrl:"addplugin.html?name="+encodeURIComponent(plugin.name)+"&guid="+plugin.guid;options.context&&(href+="&context="+options.context);var target=plugin.externalUrl?' target="_blank"':"";html+="
",html+='
',html+='",html+='
',html+="
",html+=plugin.name,html+="
";var installedPlugin=plugin.isApp?null:installedPlugins.filter(function(ip){return ip.Id==plugin.guid})[0];return html+="
",html+=installedPlugin?globalize.translate("LabelVersionInstalled").replace("{0}",installedPlugin.Version):" ",html+="
",html+="
",html+="
",html+="
"}function getTabs(){return[{href:"plugins.html",name:globalize.translate("TabMyPlugins")},{href:"plugincatalog.html",name:globalize.translate("TabCatalog")}]}var query={TargetSystems:"Server",IsAdult:!1};return window.PluginCatalog={renderCatalog:populateList},function(view,params){view.querySelector("#selectSystem").addEventListener("change",function(){query.TargetSystems=this.value,reloadList(view)}),view.addEventListener("viewshow",function(){libraryMenu.setTabs("plugins",1,getTabs),reloadList(this)})}});