/*
    Douban Radio(HTML5) Demo
    by Mockee Kaavie 2009.5
    twitter: @mockee
*/

var volume = 1,
    radio = {},
    tracks = [
        {
            "artist": "Mika",
            "title": "Stuck In The Middle",
            "cover": "mika.jpg",
            "source": "stuck_in_the_middle.mp3"
        },
        {
            "artist": "张悬",
            "title": "讨人厌的字",
            "cover": "words.jpg",
            "source": "words.mp3"
        },
        {
            "artist": "方大同",
            "title": "Red Bean",
            "cover": "redbean.jpg",
            "source": "redbean.mp3"
        }

    ],
    num = Math.floor(Math.random()*tracks.length);

$(function () {
    var $ban = $('#ban'),
        $next = $('#next'),
        $power = $('#power'),
        $audio = $('#audio'),
        $cover = $('#cover'),
        $panel = $('#panel'),
        panel_off = '#panel-off',
        $love_both = $('#love, #love-it'),
        love_off = '#love-off',
        ban_off = '#ban-off',
        next_off = '#next-off',
        $vol_down = $('#vol-down'),
        $vol_up = $('#vol-up'),
        $vol_li = $('#vol li'),
        vol_length = $vol_li.length,
        vol_prev = vol_length - 1,
        $time = $('#time'),
        $title = $('#title'),
        cover_img = '#cover img',
        volUp = function () {
            volume += i.length/1000;
            if (volume > 1) { volume = 1; }
            radio.track.volume = volume;
        },
        volDown = function () {
            volume -= i.length/1000;
            if(volume < 0) { volume = 0; }
            radio.track.volume = volume;
        },
        trackNext = function () {
            if(!radio.track.paused){
                radio.track.pause();
                if(num < tracks.length - 1) { num++; }
                else { num = 0; }
                trackInit();
                radio.track.load();
            }    
        },
        trackNew = function () {
            radio.track.pause();
            if(num < tracks.length - 1) { num++; }
            else { num = 0; }
            trackInit();
            radio.track.load();
        },    
        end = function () {
            radio.track.currentTime = radio.track.duration;
        },
        //初始化曲目
        trackInit = function () {
            radio.track = $('#audio')[0];
            radio.track.src = 'audio/' + tracks[num].source;
            radio.track.title = tracks[num].title;
            radio.track.artist = tracks[num].artist;
            radio.cover = $('#cover img')[0];
            radio.cover.src = 'img/120/' + tracks[num].cover;
            trackPlay();
        },
        //播放准备
        trackPlay = function () {
            radio.track.addEventListener('ended', function() { if (radio.track.ended) { trackNext(); } }, true );
            radio.track.addEventListener('timeupdate', function() { lastTime(); }, true);
            
            $audio.attr('src', radio.track.src);
            $title.text(radio.track.title + ' - ' + radio.track.artist);
            
            $time.text('00:00');
            function lastTime() {
                $time.text(fomatTime(Math.floor(radio.track.duration - radio.track.currentTime)));
            }
        },
        //格式化剩余时间
        fomatTime = function (t) {
            if (isNaN(t)) { return '00:00'; }
            else {
                var min = Math.floor(t / 60);
                var sec = t % 60;
                if (sec < 10) { sec = '0' + sec; }
                return min + ':' + sec;
            }
        };

   $vol_down.mousedown(function () {
       if (vol_prev!=0) {
           for (; vol_prev > -1; --vol_prev) {
               if (!$vol_li[vol_prev]._d || $vol_li[vol_prev]._u)
               $vol_li[vol_prev]._d = 1;
               $vol_li[vol_prev].className = 'null';
               --vol_prev;
               break;
           }
           volDown();
       }
   });

   $vol_up.mousedown(function () {
       if (vol_prev != vol_length - 1) {
           for (; vol_prev < vol_length; ++vol_prev) {
               if (!$vol_li[vol_prev]._u || $vol_li[vol_prev]._d )
               ++vol_prev;
               $vol_li[vol_prev]._u = 1;
               $vol_li[vol_prev].className = '';
               break;
           }
           volUp();
       }
   }); 

    //BAN 掉这首歌(假的:P)
    $ban.click(function () {
        trackNext();
    });

    //选择下一首歌
    $next.click(function () {
        trackNext();
    });

    //添加封面图片标签
    $cover.append('<img />');
    
    //添加默认剩余时间
    $time.text('00:00');
    
    trackInit();

    //开关设置
    $power.toggle(
        function() {
            $(cover_img).hide();
            $cover.addClass('amp');
            $panel.children().hide();
            $panel.attr('id', 'panel-off');
            $love_both.attr('id', 'love-off');
            $ban.attr('id', 'ban-off');
            $next.attr('id', 'next-off');
            radio.track.pause();
        },
        function() {
            $(cover_img).show();
            $cover.removeClass('amp');
            $(panel_off).attr('id', 'panel');
            $panel.children().show();
            $(love_off).attr('id', 'love');
            $(ban_off).attr('id', 'ban');
            $(next_off).attr('id', 'next');
            trackNew();
        }
    );
    
    //收藏
    $('#love').toggle(
        function() { $('#love').attr('id', 'love-it'); },
        function() { $('#love-it').attr('id', 'love'); }
    );
});


