window.pfm.preloaders['account-tracks'] = [
	'account-tracks', 'account-albums', 'taxonomies'
	(tracks, albums, taxonomies) ->
		$.when.all [tracks.refresh(null, true), albums.refresh(true), taxonomies.refresh()]
]

angular.module('ponyfm').controller "account-tracks", [
	'$scope', '$state', 'taxonomies', '$dialog', 'lightbox', 'account-albums', 'account-tracks'
	($scope, $state, taxonomies, $dialog, lightbox, albums, tracks) ->
		$scope.data =
			selectedTrack: null

		$scope.tracks = []

		tracksDb = {}

		setTracks = (tracks) ->
			$scope.tracks.length = 0
			tracksDb = {}
			for track in tracks
				tracksDb[track.id] = track
				$scope.tracks.push track

			if $state.params.track_id
				$scope.data.selectedTrack = tracksDb[$state.params.track_id]

		tracks.refresh().done setTracks

		$scope.refreshList = () ->
			tracks.refresh().done setTracks

		$scope.selectTrack = (track) ->
			$scope.data.selectedTrack = track

		$scope.$on '$stateChangeSuccess', () ->
			if $state.params.track_id
				$scope.selectTrack tracksDb[$state.params.track_id]
			else
				$scope.selectTrack null

		$scope.$on 'track-deleted', () ->
			tracks.clearCache()
			$scope.refreshList()
]