define([],function(){"use strict";function getEpisodeFileName(value,enableMultiEpisode){var seriesName="Series Name",episodeTitle="Episode Four",result=value.replace("%sn",seriesName).replace("%s.n",seriesName.replace(" ",".")).replace("%s_n",seriesName.replace(" ","_")).replace("%s","1").replace("%0s","01").replace("%00s","001").replace("%ext","mkv").replace("%en",episodeTitle).replace("%e.n",episodeTitle.replace(" ",".")).replace("%e_n",episodeTitle.replace(" ","_"));return enableMultiEpisode&&(result=result.replace("%ed","5").replace("%0ed","05").replace("%00ed","005")),result.replace("%e","4").replace("%0e","04").replace("%00e","004")}function loadPage(view,config){var tvOptions=config.TvOptions;view.querySelector("#chkEnableTvSorting").checked=tvOptions.IsEnabled,view.querySelector("#chkOverwriteExistingEpisodes").checked=tvOptions.OverwriteExistingEpisodes,view.querySelector("#chkDeleteEmptyFolders").checked=tvOptions.DeleteEmptyFolders,view.querySelector("#txtMinFileSize").value=tvOptions.MinFileSizeMb,view.querySelector("#txtSeasonFolderPattern").value=tvOptions.SeasonFolderPattern,view.querySelector("#txtSeasonZeroName").value=tvOptions.SeasonZeroFolderName,view.querySelector("#txtWatchFolder").value=tvOptions.WatchLocations[0]||"",view.querySelector("#txtEpisodePattern").value=tvOptions.EpisodeNamePattern,view.querySelector("#txtMultiEpisodePattern").value=tvOptions.MultiEpisodeNamePattern,view.querySelector("#txtDeleteLeftOverFiles").value=tvOptions.LeftOverFileExtensionsToDelete.join(";"),view.querySelector("#copyOrMoveFile").value=tvOptions.CopyOriginalFile.toString()}function onSubmit(view){return ApiClient.getNamedConfiguration("autoorganize").then(function(config){var tvOptions=config.TvOptions;tvOptions.IsEnabled=view.querySelector("#chkEnableTvSorting").checked,tvOptions.OverwriteExistingEpisodes=view.querySelector("#chkOverwriteExistingEpisodes").checked,tvOptions.DeleteEmptyFolders=view.querySelector("#chkDeleteEmptyFolders").checked,tvOptions.MinFileSizeMb=view.querySelector("#txtMinFileSize").value,tvOptions.SeasonFolderPattern=view.querySelector("#txtSeasonFolderPattern").value,tvOptions.SeasonZeroFolderName=view.querySelector("#txtSeasonZeroName").value,tvOptions.EpisodeNamePattern=view.querySelector("#txtEpisodePattern").value,tvOptions.MultiEpisodeNamePattern=view.querySelector("#txtMultiEpisodePattern").value,tvOptions.LeftOverFileExtensionsToDelete=view.querySelector("#txtDeleteLeftOverFiles").value.split(";");var watchLocation=view.querySelector("#txtWatchFolder").value;tvOptions.WatchLocations=watchLocation?[watchLocation]:[],tvOptions.CopyOriginalFile=view.querySelector("#copyOrMoveFile").value,ApiClient.updateNamedConfiguration("autoorganize",config).then(Dashboard.processServerConfigurationUpdateResult,Dashboard.processErrorResponse)}),!1}function getTabs(){return[{href:"autoorganizelog.html",name:Globalize.translate("TabActivityLog")},{href:"autoorganizetv.html",name:Globalize.translate("TabTV")},{href:"autoorganizesmart.html",name:Globalize.translate("TabSmartMatches")}]}return function(view,params){function updateSeasonPatternHelp(){var value=view.querySelector("#txtSeasonFolderPattern").value;value=value.replace("%s","1").replace("%0s","01").replace("%00s","001");var replacementHtmlResult=Globalize.translate("OrganizePatternResult").replace("{0}",value);view.querySelector(".seasonFolderFieldDescription").innerHTML=replacementHtmlResult}function updateEpisodePatternHelp(){var value=view.querySelector("#txtEpisodePattern").value,fileName=getEpisodeFileName(value,!1),replacementHtmlResult=Globalize.translate("OrganizePatternResult").replace("{0}",fileName);view.querySelector(".episodePatternDescription").innerHTML=replacementHtmlResult}function updateMultiEpisodePatternHelp(){var value=view.querySelector("#txtMultiEpisodePattern").value,fileName=getEpisodeFileName(value,!0),replacementHtmlResult=Globalize.translate("OrganizePatternResult").replace("{0}",fileName);view.querySelector(".multiEpisodePatternDescription").innerHTML=replacementHtmlResult}function selectWatchFolder(e){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({callback:function(path){path&&(view.querySelector("#txtWatchFolder").value=path),picker.close()},header:Globalize.translate("HeaderSelectWatchFolder"),instruction:Globalize.translate("HeaderSelectWatchFolderHelp")})})}view.querySelector("#txtSeasonFolderPattern").addEventListener("change",updateSeasonPatternHelp),view.querySelector("#txtSeasonFolderPattern").addEventListener("keyup",updateSeasonPatternHelp),view.querySelector("#txtEpisodePattern").addEventListener("change",updateEpisodePatternHelp),view.querySelector("#txtEpisodePattern").addEventListener("keyup",updateEpisodePatternHelp),view.querySelector("#txtMultiEpisodePattern").addEventListener("change",updateMultiEpisodePatternHelp),view.querySelector("#txtMultiEpisodePattern").addEventListener("keyup",updateMultiEpisodePatternHelp),view.querySelector("#btnSelectWatchFolder").addEventListener("click",selectWatchFolder),view.querySelector(".libraryFileOrganizerForm").addEventListener("submit",function(e){return e.preventDefault(),onSubmit(view),!1}),view.addEventListener("viewshow",function(e){LibraryMenu.setTabs("autoorganize",1,getTabs),ApiClient.getNamedConfiguration("autoorganize").then(function(config){loadPage(view,config),updateSeasonPatternHelp(),updateEpisodePatternHelp(),updateMultiEpisodePatternHelp()})})}});