define(["filerepository","itemrepository","useractionrepository","transfermanager","cryptojs-md5"],function(filerepository,itemrepository,useractionrepository,transfermanager){"use strict";functiongetLocalItem(serverId,itemId){returnconsole.log("[lcoalassetmanager] Begin getLocalItem"),itemrepository.get(serverId,itemId)}functionrecordUserAction(action){returnaction.Id=createGuid(),useractionrepository.set(action.Id,action)}functiongetUserActions(serverId){returnuseractionrepository.getByServerId(serverId)}functiondeleteUserAction(action){returnuseractionrepository.remove(action.Id)}functiondeleteUserActions(actions){varresults=[];returnactions.forEach(function(action){results.push(deleteUserAction(action))}),Promise.all(results)}functiongetServerItems(serverId){returnconsole.log("[localassetmanager] Begin getServerItems"),itemrepository.getAll(serverId)}functiongetItemsFromIds(serverId,ids){varactions=ids.map(function(id){varstrippedId=stripStart(id,"local:");returngetLocalItem(serverId,strippedId)});returnPromise.all(actions).then(function(items){varlibItems=items.map(function(locItem){returnlocItem.Item});returnPromise.resolve(libItems)})}functiongetViews(serverId,userId){returnitemrepository.getServerItemTypes(serverId,userId).then(function(types){varitem,list=[];returntypes.indexOf("Audio")>-1&&(item={Name:"Music",ServerId:serverId,Id:"localview:MusicView",Type:"MusicView",CollectionType:"music",IsFolder:!0},list.push(item)),types.indexOf("Photo")>-1&&(item={Name:"Photos",ServerId:serverId,Id:"localview:PhotosView",Type:"PhotosView",CollectionType:"photos",IsFolder:!0},list.push(item)),types.indexOf("Episode")>-1&&(item={Name:"TV",ServerId:serverId,Id:"localview:TVView",Type:"TVView",CollectionType:"tvshows",IsFolder:!0},list.push(item)),types.indexOf("Movie")>-1&&(item={Name:"Movies",ServerId:serverId,Id:"localview:MoviesView",Type:"MoviesView",CollectionType:"movies",IsFolder:!0},list.push(item)),types.indexOf("Video")>-1&&(item={Name:"Videos",ServerId:serverId,Id:"localview:VideosView",Type:"VideosView",CollectionType:"videos",IsFolder:!0},list.push(item)),types.indexOf("MusicVideo")>-1&&(item={Name:"Music Videos",ServerId:serverId,Id:"localview:MusicVideosView",Type:"MusicVideosView",CollectionType:"videos",IsFolder:!0},list.push(item)),Promise.resolve(list)})}functiongetTypeFilterForTopLevelView(parentId){vartypeFilter=null;switch(parentId){case"localview:MusicView":typeFilter="MusicAlbum";break;case"localview:PhotosView":typeFilter="PhotoAlbum";break;case"localview:TVView":typeFilter="Series";break;case"localview:VideosView":typeFilter="Video";break;case"localview:MoviesView":typeFilter="Movie";break;case"localview:MusicVideosView":typeFilter="MusicVideo"}returntypeFilter}functionnormalizeId(id){returnid?(id=stripStart(id,"localview:"),id=stripStart(id,"local:")):null}functiongetViewItems(serverId,userId,options){varparentId=options.ParentId,typeFilter=getTypeFilterForTopLevelView(parentId);parentId=normalizeId(parentId);varseasonId=normalizeId(options.SeasonId||options.seasonId),seriesId=normalizeId(options.SeriesId||options.seriesId),includeItemTypes=options.IncludeItemTypes?options.IncludeItemTypes.split(","):[];returntypeFilter&&(parentId=null,includeItemTypes.push(typeFilter)),getServerItems(serverId).then(function(items){varresultItems=items.filter(function(item){if(item.SyncStatus&&"synced"!==item.SyncStatus)return!1;if(options.MediaType&&item.Item.MediaType!==options.MediaType)return!1;if(seriesId&&item.Item.SeriesId!==seriesId)return!1;if(seasonId&&item.Item.SeasonId!==seasonId)return!1;if("IsNotFolder"===options.Filters&&item.Item.IsFolder)return!1;if("IsFolder"===options.Filters&&!item.Item.IsFolder)return!1;if(includeItemTypes.length&&includeItemTypes.indexOf(item.Item.Type||"")===-1)return!1;if(options.Recursive);elseif(parentId&&item.Item.ParentId!==parentId)return!1;return!0}).map(function(item2){returnitem2.Item});return"DateCreated"===options.SortBy&&resultItems.sort(function(a,b){returncompareDates(a.DateCreated,b.DateCreated)}),options.Limit&&(resultIte