/**
 * 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");
        
        var myAudio = document.createElement('audio'); 
    
        if (myAudio.canPlayType) {
           var canPlayMp3 = !!myAudio.canPlayType && "" != myAudio.canPlayType('audio/mpeg');
           var canPlayOgg = !!myAudio.canPlayType && "" != myAudio.canPlayType('audio/ogg; codecs="vorbis"');
        }
        
        if (canPlayMp3) {
            $('#audio-player').html("<audio autoplay controls id='audiotag' src=''></audio>");
            jQuery('#audiotag').attr('src', mp3).play();
        } else {
            $('#audio-player').html("<a href='' id='fptag'></a>");
            jQuery('#fptag').attr('href', mp3);
            
            var player = flowplayer('fptag', "/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}); 
                }
            
            });
        }
        
        /*     
     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);
     
     */
    
        
        
        
    };
       
    
}
