package com.ericcarlisle
{
    import mx.collections.ArrayCollection;
    
    public class PlayList
    {    
        [Bindable]
        public var Sounds:ArrayCollection;
        
        public function PlayList()
        {
            Sounds = new ArrayCollection();
        }

        public function AddSound(Title:String, Album:String, Artist:String, Track:String, Year:String, Genre:String, Duration:int, URL:String):void
        {    
            var duplicateIndex:int = -1;
            
            for (var i:int=0; i < Sounds.length; i++)
            {
                if (Sounds[i]["url"] == URL) duplicateIndex = i;
            }
            if (duplicateIndex >= 0)
            {
                if (Duration > Sounds[duplicateIndex]["duration"])
                {
                    Sounds.removeItemAt(duplicateIndex);
                    Sounds.addItemAt({title: Title, album: Album, artist: Artist, track: Track, year: Year, genre: Genre, duration: Duration, url:URL}, duplicateIndex);
                }
            } 
            else
            {
                Sounds.addItem({title: Title, album: Album, artist: Artist, track: Track, year: Year, genre: Genre, duration: Duration, url:URL});
            }
        }

        public function AddSoundAt(Title:String, Album:String, Artist:String, Track:String, Year:String, Genre:String, Duration:int, URL:String, index:int):void
        {    
            Sounds.addItemAt({title: Title, album: Album, artist: Artist, track: Track, year: Year, genre: Genre, duration: Duration, url:URL}, index);
        }
        
        public function RemoveSoundAt(index:int):void
        {
            Sounds.removeItemAt(index);
        }
    }
}