/**
 * Audio Player Manager
 *
 * Copyright: (c)2007 CK Web Technologies
 * Author:    Chris Knowles <chris.knowles@ckweb.com.au>
 * Version:   $Id: Player.js 20 2007-11-12 07:21:13Z Chris $
 */

var Player = function(app)
{
    this.app = app;
    this.player = $D.id('player');
    this.artist = $D.id('player-artist');
    this.title  = $D.id('player-title');
    
    this.load = function(songlistId, trackId)
    {
        var track = null;
        var songlist = this.app.Songlist.songlists.get(songlistId).songlist;

        if (songlist && songlist != undefined) {
            var songlist = this.app.Songlist.songlists.get(songlistId).songlist;
            var track = songlist[trackId];
            if (track) {
                this.set(track);
                return;
            } else {
                this.fetchTrack(trackId);
                return;
            }   
            
        } else if (trackId != undefined) {
            this.fetchTrack(trackId);
            return;
        }
        this.set();
    };
    
    this.fetchTrack = function(trackId)
    {
        var http = new $H;
        var self = this;
        if (trackId != undefined) {
            url = 'get_track/' + trackId + '/';
        } else {
            url = 'get_track/';
        }
        http.get(url, false, function(){self.loadPlayer(http)});
    };
    
    this.loadPlayer = function(http)
    {
        var data = http.text.split("|");
        var track = {};
        track.artist = data[0];
        track.title = data[1];
        //track.id = data[2];
        this.set(track);
    };
    
    this.set = function(track){
        
        if (track) {
            var firstLetter = track.title.substr(0,1).toUpperCase();
            var title = track.title.replace(/(\/|\*|\?)/g, "");
            var artist = track.artist.replace(/(\/|\*|\?)/g, "");
            var mp3 = "/mp3/" + firstLetter + "/PREVIEW - " + title + ' - ' + artist + ".mp3";
            //var mp3 = "/mp3/"+ track.title + ' - ' + track.artist + ".mp3";
            if (track.artist) {
                $D.setContent(this.artist, "");
                $D.setContent(this.artist, track.artist);
            }
            if (track.title) {
                $D.setContent(this.title, "");
                $D.setContent(this.title, track.title);
            }
        }
        else {
            var mp3 = null;
        }
        mp3 = mp3.replace("'", "%2527");
        mp3 = mp3.replace("&", "%26");
        mp3 = mp3.replace("+", "%2B");
        //mp3 = mp3.replace("?", "%3F");
        
        //alert(mp3);
        jQuery('#mp3-player').attr('href', mp3);
        
        /*     
     if (navigator.userAgent.toLowerCase().indexOf("windows") != -1) {
     var type = "application/x-mplayer2";
     } else {
     var type = "audio/mpeg"
     }
     
     var player = "";
     player += "<param name='type' value='" + type + "'>";
     player += "<param name='src' value='" + mp3 + "'>";
     player += "<param name='showstatusbar' value='1'>";
     player += "<param name='autostart' value='true'>";
     player += "<param name='showcontrols' value='1'>";
     player += "<embed id='audio-player' src =\"" + mp3 + "\" type='" + type + "' showcontrols='1' autoplay='true' autostart='true' width='200' height='70' controller='1' showstatusbar='1'></embed>";
     CKW.DOM.setContent('player', player);
     
     */
    
        var player = flowplayer('mp3-player', "/js/flowplayer/flowplayer-3.1.5.swf", {
            
            clip: {
                autoPlay: true,
                //autoBuffering: true,
                onBeforeBegin: function(){
                    flowplayer("player").close();
                },
                height: 0
            },
            
            plugins: {
                controls: {
                    progressColor: '#02539C',
                    progressGradient: 'none',
                    backgroundGradient: 'none',
                    bufferGradient: 'none',
                    bufferColor: '#1A1A1A',
                    buttonOverColor: '#666666',
                    buttonColor: '#1A1A1A',
                    tooltipColor: '#999999',
                    tooltipTextColor: '#ffffff',
                    fullscreen: false, 
                    time: false,
                    height: 20
                }
            },
            
            onBegin: function () { 
                // disable play button for this playlist item 
                this.getPlugin("play").css({opacity: 0}); 
                this.getPlugin("screen").css({opacity: 0}); 
            }
        
        });
        
        
    };
       
    
}