 
         table = playlistElement.dataTable tableProperties
 
+        table.on "filter", (event, settings) =>
+                queue.updateVisible $.map settings.aiDisplay, (value, index) =>
+                        return [ songData[value] ]
+
         hashChange = (songName) ->
                 if (not player.isPlaying()) and (not songName?)
                         queue.next()

                @nextSong = song
                return song

        add: (song) =>
                @queuedSongs.push song
                # Replace current random song with the first queued song.
                if @nextSong != null and @nextLength == 0
                        @nextSong = null
                        @peek()
                @trigger "add", song
                return @queuedSongs.length



        updateVisible: (@visibleSongs) ->
                @playbackFiles = []
                @_removeRandom()
                @trigger "updateVisible", @visibleSongs

        length: =>
