define(["filerepository","itemrepository","useractionrepository","transfermanager"],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)})}functionupdateFiltersForTopLevelView(parentId,mediaTypes,includeItemTypes,query){switch(parentId){case"MusicView":returnquery.Recursive?includeItemTypes.push("Audio"):includeItemTypes.push("MusicAlbum"),!0;case"PhotosView":returnquery.Recursive?includeItemTypes.push("Photo"):includeItemTypes.push("PhotoAlbum"),!0;case"TVView":returnquery.Recursive?includeItemTypes.push("Episode"):includeItemTypes.push("Series"),!0;case"VideosView":returnquery.Recursive,includeItemTypes.push("Video"),!0;case"MoviesView":returnquery.Recursive,includeItemTypes.push("Movie"),!0;case"MusicVideosView":returnquery.Recursive,includeItemTypes.push("MusicVideo"),!0}return!1}functionnormalizeId(id){returnid?(id=stripStart(id,"localview:"),id=stripStart(id,"local:")):null}functionnormalizeIdList(val){returnval?val.split(",").map(normalizeId):[]}functionshuffle(array){for(vartemporaryValue,randomIndex,currentIndex=array.length;0!==currentIndex;)randomIndex=Math.floor(Math.random()*currentIndex),currentIndex-=1,temporaryValue=array[currentIndex],array[currentIndex]=array[randomIndex],array[randomIndex]=temporaryValue;returnarray}functionsortItems(items,query){if(!query.SortBy||0===query.SortBy.length)returnitems;if("Random"===query.SortBy)returnshuffle(items);varsortSpec=getSortSpec(query);returnitems.sort(function(a,b){for(vari=0;i<sortSpec.length;i++){varresult=compareValues(a,b,sortSpec[i].Field,sortSpec[i].OrderDescending);if(0!==result)returnresult}return0}),items}functioncompareValues(a,b,field,orderDesc){if(!a.hasOwnProperty(field)||!b.hasOwnProperty(field))return0;varvalA=a[field],valB=b[field],result=0;return"string"==typeofvalA||"string"==typeofvalB?(valA=valA||"",valB=valB||"",result=valA.toLowerCase().localeCompare(valB.toLowerCase())):