var plOrder = new Array();
var selected = null;
var currPlaylist ='history';
var firstLogin = false;
var minimise = false;
var sliding = false;
var isVip = null;
var isRestricted = false;
var restrictionValue = 0;
$(document).ready(function(){
    
    $(document).mousemove(function(e){
        $('.mouse-plus').css({
            'left':e.pageX+8, 
            'top':e.pageY+10
            });
    });
            
    isLoggedUser();
    canDownloadUser();
    
    /* Load a playlist when the page is loaded */
    $.post('/home.php/playlist/get_session',{
        'action':'get-playlist'
    },function(data){
        if(data){
            currPlaylist = data;
        }
        
        if(currPlaylist == 'history')
            loadHistory();
        else 
            openPlaylist(currPlaylist);
    });
    
    /* Set the click event on the Download button at the top of the player */
    $('.player-wrap .btn-download').click(downloadCurrentSong);
    
    /* Centralize the player window */
    var winW = $(window).width()/2;
    var plaW = $('.player-wrap').width()/2;
    $('.player-wrap').css('left',winW-plaW);

    /* Apply sortable widget on the Playlist */
    $(".player-wrap .playlist .list").sortable({
        placeholder: 'playlist-item-placeholder',
        helper: 'clone',
        update: function(event, ui){
            updateList();
        },
        start: function(event, ui){
            $('.mouse-plus').show();
        },
        stop: function(event, ui){
            $('.mouse-plus').hide();
        }
        
    });
    
    //    $(".player-wrap .playlist .list").bind('sortstart', function(event, ui){
    //        $(".player-wrap .playlist .list #"+selected).css('opacity',0.3);
    //    });
    $(".player-wrap .playlist .list").disableSelection();
    

    /* Apply the jquery.corner plugin on player elements */
    $('.player-wrap .playlist .item, .playlist .item .buttons a, .player-wrap .btn-repeat, .player-wrap .playlist .btn-bottom').corner('3px');
    /* Do the Repeat All button functionality */
    $('.player-wrap .btn-repeat').toggle(function(){
        $(this).addClass('btn-repeat-hover');
    },function(){
        $(this).removeClass('btn-repeat-hover');
    });
    
    /* Apply the droppable widget on list of Playlists, to drag and drop songs in them */
    $('.player-wrap .playlists ul li').not('.history, .create-playlist').droppable({
        tolerance: 'pointer',
        accept: 'li.item',
        hoverClass: '.hover'
    });
    $('.player-wrap .playlists ul li.history').click(loadHistory);
    
    /* Apply the jquery.scrollText plugin on text to scroll them horizontally */
    $('.player-wrap .album-art .song, .player-wrap .album-art .artist, .scroll-text').scrollText();
    
    
    /* When click the trash icon, delete all musics on playlist */
    $('.player-wrap .playlist .header .trash').click(function(){
        if($('.player-wrap .playlist .list li').length > 0){
            if(confirm('Do you really want to empty the playlist')){
                clearPlaylist();
                updateList();
            }
        }
        else
            openModalBox('The playlist is already empty');
    });
    
    /* Button to create a new playlist or send a playlist */
    setBtnBottom();
    $('.player-wrap .playlist .btn-bottom').eq(0).click(clickBtnBottom);
    $('.player-wrap .playlist .btn-bottom').eq(1).click(downloadPlaylist);
    
    $('.player-wrap .playlists .create-playlist').click(function(){
        createPlaylist()
    });
    
    /* Flash the toggle button*/
    setInterval(function(){
        var toggle = $('.player-wrap .toggle .toggle-flash');
        if(toggle.css('opacity') == 1)
            toggle.animate({
                'opacity':0
            },400,'linear');
        else if(toggle.css('opacity') == 0)
            toggle.animate({
                'opacity':1
            },400,'linear');
    },500);
    
    
    var playing = false;
    window.onbeforeunload = function() {
        if(playing)
            return "Leaving now will interrupt the song you're listening to. Are you sure?"
    };
    
    
    $('.jp-volume-slider').slider({
        orientation: 'vertical',
        range: "max",
        min: 1,
        max: 100,
        value: 100,
        slide: function( event, ui ) {
            var vol = ui.value/100;
            if(vol == 0.01)
                vol = 0;
            $("#jplayer").jPlayer('volume', vol);
        }
    });
    
    
    $('.jp-play-slider').slider({
        range: "max",
        min: 0,
        animate: 'slow',
        disabled: true,
        start: function(event, ui){
            sliding = true;
        },
        stop: function( event, ui ){
            var arr = $('.floating-box .jp-duration').text().split(':');
            var duration = parseInt(arr[0]*60)+parseInt(arr[1]);
            var percent = (ui.value*100 / duration);
            if(playing === true)
                $("#jplayer").jPlayer('play', ui.value);
            else
                $("#jplayer").jPlayer('playHead', percent);
            sliding = false;
            
//            $('.test span:first').text(ui.value);
        }
    });
        
    
    /***** jPlayer *****/
    if($.browser.mozilla || $.browser.opera){
        $("#jplayer").jPlayer({
            ready: function () {
                $('.player-wrap .player .floating-box').appendTo('.jp-play-slider .ui-slider-handle')
            },
            play: function (event) {
                playing = true;
                $('.jp-play-slider').slider('option','disabled', false);
                
                setInterval(function(){
                    var arr = $('.floating-box .jp-duration').text().split(':');
                    var duration = parseInt(arr[0]*60)+parseInt(arr[1]);
                    $('.test span:first').text(duration);
                    $('.jp-play-slider').slider( "option", "max", duration);
//                    
//                    if(isVip === '*'){
//                        if(isLogged === 0){
//                            $('.jp-play-slider').slider( "option", "max", 60);
//                        }
//                        else
//                            $('.jp-play-slider').slider( "option", "max", duration);
//                    }
//                    else    
//                        $('.jp-play-slider').slider( "option", "max", duration);
                },1000);
            },
            pause: function () {
                playing = false; 
            },
            ended: function (event) {
                nextSong();
            },
            swfPath: "/js/jplayer/",
            solution: "flash",
            supplied: "mp3",
            volume: 1
        });
    }
    else {
        $("#jplayer").jPlayer({
            ready: function () {
                $('.player-wrap .player .floating-box').appendTo('.jp-play-slider .ui-slider-handle')
            },
            play: function (event) {
                $('.jp-play-slider').slider('option','disabled', false);
                playing = true;
            },
            pause: function () {
                playing = false; 
            },
            ended: function (event) {
                nextSong();
            },
            swfPath: "/js/jplayer/",
            solution: "html, flash",
            supplied: "mp3, oga",
            volume: 1
        });
    }
    
    $("#jplayer").bind($.jPlayer.event.play, function(event){
        
    });
    
    $("#jplayer").bind($.jPlayer.event.timeupdate, function(event){
        if(sliding === false)
            $('.jp-play-slider').slider( "option", "value", Math.ceil(event.jPlayer.status.currentTime));
        if(Math.ceil(event.jPlayer.status.currentTime) >= restrictionValue+2 && isRestricted === true){
            $("#jplayer").jPlayer('stop');
            setTimeout(function(){
                nextSong();
            }, 3000);
            
        }
        
        
//        $('.test span:first').text($("#jplayer").jPlayer.event.loadstart+" - "+Math.ceil(event.jPlayer.status.currentTime));
//        $('.test span:last').text(isVip+" - "+isLogged);
//        if(isVip === '*' && isLogged === 0){
//            $('.jp-play-slider').slider( "option", "max", 60);
//        }
//        else {  
//            $('.jp-play-slider').slider( "option", "max", Math.ceil(event.jPlayer.status.duration));
//        }
    });
    $("#jplayer").bind($.jPlayer.event.volumechange, function(event){
        if(event.jPlayer.status.muted)
            $('.jp-volume-slider').slider('value',0);
        else
            $('.jp-volume-slider').slider('value',event.jPlayer.status.volume*100);
    });
    
    $("#jplayer").bind($.jPlayer.event.loadeddata, function(event) { // Add a listener to report the time play began
        $('.jp-play-slider').slider( "option", "max", Math.ceil(event.jPlayer.status.duration));
        
    });
//        alert(isLogged);
//        if(isVip === '*'){
//            if(isLogged === 0){
//                alert(isLogged+' n logado e vip');
//                $('.jp-play-slider').slider( "option", "max", 60);
//            }
//            else{
//                alert(isLogged+' logado e vip');
//                $('.jp-play-slider').slider( "option", "max", Math.ceil(event.jPlayer.status.duration));
//            }
//        }
//        else {  
//            alert(isLogged+' n vip');
//            $('.jp-play-slider').slider( "option", "max", Math.ceil(event.jPlayer.status.duration));
//        }
//    });
    
    
    $('.player-wrap .player .jp-seek-bar').hover(function(){
        $('.player-wrap .player .floating-box').stop(true, true).fadeIn();
    },function(){
        $('.player-wrap .player .floating-box').stop(true, true).fadeOut();
    });
/***** End jPlayer *****/

});
var coef = 10;
var isLogged = 0;
var canDownload = 0;
var bMessageLogin = 0;
var showBig = 0;

function addLogin()
{
    isLogged = 1;
}

function addLogout()
{
    isLogged = 0;
    canDownload = 0;
    clearPlaylists();
    clearPlaylist();
}

function addDownload()
{
    canDownload = 1;
}

function isLoggedUser(){
    // Do the POST
    $.ajax({
        url: '/home.php/is_logged',
        type: 'POST',
        success: function(result) {
            isLogged = result;
        }
    });
    if (isLogged == 0){
        t=setTimeout("isLoggedUser()",7000);
    }
}

function canDownloadUser(){
    if (canDownload == 0 && isLogged == 1){
        // Do the POST
        $.ajax({
            url: '/home.php/can_download',
            type: 'POST',
            success: function(result) {
                canDownload = result;
            }
        });
        if (canDownload == 0){
            t=setTimeout("canDownloadUser()",7000);
        }
    }
}

function goToPage(url)
{
    if(url.search("download") > 0){
        if (isLogged == 1){
            if (canDownload == 1){
                parent.frames["containerFrame"].location.href = url;
            } else {
                window.open('/home.php/download_permission', '', 'width=570, height=350, top=0, left=250, scrollbars=yes');
            }
        } else {
            window.open('/home.php/register', '', 'width=570, height=700, top=0, left=250, scrollbars=yes');
        }
    } else {
        parent.frames["containerFrame"].location.href = url;
    }
}
//function goToPage(url)
//{
//    var win = window.top;
//    //    var root = serverName.substr(0,serverName.lastIndexOf('/'))+webroot;
//    //    var url = window.location.href;
//    //    win.location.hash = '/'+url.replace(root,'');
//    if(url.search("download") > 0){
//        if (isLogged == 1){
//            if (canDownload == 1){
//                //                parent.frames["containerFrame"].location.href = url;
//                win.location.hash = '/'+url.replace('/home.php/','');
//            } else {
//                window.open('/home.php/download_permission', '', 'width=570, height=350, top=0, left=250, scrollbars=yes');
//            }
//        } else {
//            window.open('/home.php/register', '', 'width=570, height=700, top=0, left=250, scrollbars=yes');
//        }
//    } else {
//        //        parent.frames["containerFrame"].location.href = url;
//        win.location.hash = '/'+url.replace('/home.php/','');
//    }
//}

function sendEmail(listName, musicID)
{
    window.open('/home.php/playlist/sendEmail?playlist_name='+listName+'&music='+musicID, '', 'width=570, height=620, top=100, left=250, scrollbars=yes');
}

/*********************/
/*** NEW FUNCTIONS ***/
/*********************/

function togglePlayer(elem){
    minimise = true;
    var player = $('.player-wrap');
    if(elem.hasClass('show')){
        hidePlayer();
        elem.removeClass('show');
    }
    else{
        showPlayer();
        elem.addClass('show');
    }
}

function showPlayer(){
    var player = $('.player-wrap');
    player.animate({
        'bottom':0
    },200,'linear');
    
    $('.player-wrap .toggle').addClass('show');
}

function hidePlayer(){
    var player = $('.player-wrap');
    var status = player.css('bottom');
    player.animate({
        'bottom':-240
    },200,'linear');
    
    $('.player-wrap .toggle').removeClass('show');
}

function loadAndPlay(music, ogg){
    $("#jplayer")
    .jPlayer("setMedia", {
        mp3: music,
        oga: ogg
    })
    .jPlayer("play");
}

function changePage(url){
    document.getElementById('containerFrame').src = url;
}

function setCurrent(id){
    if(id != null){
        var curr = $('.player-wrap .playlist .item#'+id); 
        var pic = curr.find('.pic').val();
        var picLink = curr.find('.picLink').val();
        var title = curr.find('.title').text();
        var artist = curr.find('.artist').text();
        var license = curr.find('.license').attr('rel');
        var download = curr.find('.download').attr('rel');
        var twitterURL = 'http://twitter.com/share?url=';
        
        //        $('.player-wrap .jp-play-bar .jp-play-bar-clicker').show();
        
        $.post('/home.php/music/info',{
            'id':id
        },function(data){
            var profile = serverName+'#/user/'+(data.artist.username)+'/profile/music/'+data.slug;
            twitterURL += encodeURIComponent(profile)+'&via=tunetree&text='+data.artist.name+' - '+data.title;
            
            $('.player-wrap .btn-twitter').attr('href',twitterURL);
            $('.player-wrap .btn-facebook').attr('href','javascript:feedTT("'+data.title+'","'+data.slug+'","'+data.lyrics.substr(0,40)+'","'+data.artist.name+'","'+data.artist.username+'","'+data.album.title+'","'+serverName+data.album.cover+'")');
            
            if(data.isRestricted === true){
                isRestricted = true;
                restrictionValue = parseInt(data.restrictionValue);
                $('.player-wrap .jp-audio .floating-box .title-artist').text(title+" - "+artist).scrollText();
                setTimeout(function(){
                    $('.player-wrap .jp-audio .floating-box .title-artist').text('This Song is limited').scrollText();
                    $('.player-wrap .jp-audio .floating-box').fadeIn();
                }, (restrictionValue*1000)-5000);
            }
            else {
                isRestricted = false;
                restrictionValue = 0;
                $('.player-wrap .jp-audio .floating-box .title-artist').text(title+" - "+artist).scrollText();
                $('.player-wrap .jp-audio .floating-box').fadeOut();
            }
        }, 'json');
        
        
        $('.player-wrap .current-song').text(id);
        $('.player-wrap .album-art .art img, .player-wrap .jp-audio .floating-box .floating-box-img img').attr('src',pic);
        $('.player-wrap .album-art .art').attr('onclick','changePage("'+picLink+'");');
        $('.player-wrap .album-art .song span').text(title);
        $('.player-wrap .album-art .artist').text(artist);
//        if(!isRestricted)
//            
//        else
            
        $('.player-wrap .btn-license').attr('onclick','goToPage("'+license+'")');
        $('.player-wrap .btn-download').attr('rel',download);
        $('.player-wrap .playlist .list li.selected').removeClass('selected');
        $('.player-wrap .playlist .list li#'+id).addClass('selected');
        
        
        var music = getMusic(id);
        var ogg = music+'.ogg';
        loadAndPlay(music, ogg);
    }
    else {
        $('.player-wrap .current-song').text('');
        $('.player-wrap .album-art .art img').attr('src','/images/gray.png');
        $('.player-wrap .album-art .song span').text('');
        $('.player-wrap .album-art .artist').text('');
    }
}

function getCurrent(){
    return $('.player-wrap .current-song').text();
}

function getMusic(id){
    return $('.player-wrap .playlist .list .item#'+id+" .music").val();
}

function updatePlOrder(){
    var vet = new Array();
    $(".player-wrap .playlist .list .item").each(function(){
        vet.push($(this).attr('id'));
    });
    plOrder = vet;
}

function updateList(){
    updatePlOrder();
    if(currPlaylist && currPlaylist != 'history'){
        $.post('/home.php/user/manage/playlist/save',{
            'playlistID':currPlaylist,
            'musics[]':plOrder
        },function(data){

            });
    }
    else {
        var musics = new Array();
        $('.player-wrap .playlist .list li').each(function(){
            musics.push($(this).attr('id'));
        });
        $.post('/home.php/playlist/save_session',{
            'musics[]':musics
        },function(data){

            });
    }
}
function addOnePlaylist(id, name, url){
    
    var li = $('<li><span class="inner-border"><span class="name"></span><span class="plus">+1</span><a class="playlist-remove">X</a><a class="send-mail"><img src="/images/ico-email2.png" /></a><a class="download-playlist"><img src="/images/ico-download3.png" /></a></span></li>');
    
    $.post('/home.php/user/manage/playlist/new',{
        'name':name
    },function(data){
        li.attr('id',data).find('.name').html(name);
        currPlaylist = data;
        setBtnBottom();
        openPlaylist(id, true);
        $('.player-wrap .playlists ul').append(li);
        $('.player-wrap .playlists ul li.history').addClass('blur');
        $('.player-wrap .playlists ul li.selected').removeClass('selected');
        li.addClass('selected');
        playlistsActions();
        //            li.click();
        if(url){
            goToPage(url);
        }
    });
}
function createPlaylist(fromHistory){
    var li = $('<li><span class="inner-border"><span class="name"></span><span class="plus">+1</span><a class="playlist-remove">X</a><a class="send-mail"><img src="/images/ico-email2.png" /></a><a class="download-playlist"><img src="/images/ico-download3.png" /></a></span></li>');
    li.addClass('edit');
    $('.player-wrap .playlists ul li').removeClass('selected');
    var input = $('<input type="text" value="New Playlist" />');
    li.find('.inner-border').prepend(input);

    input.keyup(function(event){
        if(event.which == 13){
            $.post('/home.php/user/manage/playlist/new',{
                'name':input.val()
            },function(data){
                li.attr('id',data.id).attr('hash', data.hash).removeClass('edit').find('.name').text(input.val());
                input.remove();
                if(fromHistory){
                    currPlaylist = data.id;
                    setBtnBottom();
                    $('.player-wrap .playlists ul li.selected').removeClass('selected');
                    $('.player-wrap .playlists ul li#'+data.id).addClass('selected');
                    updateList();
                }
                else
                    li.click();
            }, 'json');
        }
        else if(event.which == 27){
            li.remove();
            return false;
        }
    }).blur(function(){
        $.post('/home.php/user/manage/playlist/new',{
            'name':input.val()
        },function(data){
            li.attr('id',data).removeClass('edit').find('.name').text(input.val());
            input.remove();
            if(fromHistory){
                currPlaylist = data;
                setBtnBottom();
                $('.player-wrap .playlists ul li.selected').removeClass('selected');
                $('.player-wrap .playlists ul li#'+data).addClass('selected');
                updateList();
            }
            else
                li.click();
        });
    });
    $('.player-wrap .playlists ul .create-playlist').before(li);
    input.focus();

    playlistsActions();
}

function addNewMusic(id, title, artist, album, pic, music, picLink, download, license){
    if(!$('.player-wrap .playlist .list').is(':has(#'+id+')')){
        var li = '<li class="item" id="'+id+'" onmouseup="unsetSelected(\''+id+'\')" onmousedown="setSelected(\''+id+'\')"  onclick="setCurrent(\''+id+'\');"> \
                        <input type="hidden" value="'+pic+'" class="pic" /> \
                        <input type="hidden" value="'+music+'" class="music" /> \
                        <input type="hidden" value="'+picLink+'" class="picLink" /> \
                        <span class="title text">'+title+'</span> \
                        <span class="artist text">'+artist+'</span> \
                        <span class="album text">'+album+'</span> \
                        <span class="buttons"> \
                            <a class="remove"></a> \
                            <a class="download" rel="'+download+'"></a> \
                            <a class="license" rel="'+license+'"></a> \
                        </span> \
                        <div class="clear"></div> \
                    </li>';
        var item = $(li);
        item.corner('3px');
        item.find('.btn-play').corner('2px');
        item.find('.buttons a').corner('3px');
        item.find('.text').scrollText();
        item.find('.remove').click(removeSong);
        item.find('.download').click(downloadSong);
        item.find('.license').click(licenseSong);
        $('.player-wrap .playlist .list').append(item);
        updateList();
    }
}

function loadMusic(id, title, artist, album, pic, music, picLink, download, license){
    if(!$('.player-wrap .playlist .list').is(':has(#'+id+')')){
        var li = '<li class="item" id="'+id+'" onmouseup="unsetSelected(\''+id+'\')" onmousedown="setSelected(\''+id+'\')"  onclick="setCurrent(\''+id+'\');"> \
                        <input type="hidden" value="'+pic+'" class="pic" /> \
                        <input type="hidden" value="'+music+'" class="music" /> \
                        <input type="hidden" value="'+picLink+'" class="picLink" /> \
                        <span class="title text">'+title+'</span> \
                        <span class="artist text">'+artist+'</span> \
                        <span class="album text">'+album+'</span> \
                        <span class="buttons"> \
                            <a class="remove"></a> \
                            <a class="download" rel="'+download+'"></a> \
                            <a class="license" rel="'+license+'"></a> \
                        </span> \
                        <div class="clear"></div> \
                    </li>';
        var item = $(li);
        item.corner('3px');
        item.find('.btn-play').corner('2px');
        item.find('.buttons a').corner('3px');
        item.find('.text').scrollText();
        item.find('.remove').click(removeSong);
        item.find('.download').click(downloadSong);
        item.find('.license').click(licenseSong);
        $('.player-wrap .playlist .list').append(item);
    }
}

function nextSong(){
    var currIndex = getCurrentIndex(getCurrent());
    var next = null;
    if(currIndex+1 == plOrder.length){
        if($('.player-wrap .btn-repeat').hasClass('btn-repeat-hover'))
            next = plOrder[0];
        else
            $("#jplayer").jPlayer('stop');
    }
    else {
        next = plOrder[currIndex+1];
    }
    setCurrent(next);
    return true;
}

function prevSong(){
    var currIndex = getCurrentIndex(getCurrent());
    var prev = null;
    
    if(currIndex == 0){
        if($('.player-wrap .btn-repeat').hasClass('btn-repeat-hover'))
            prev = plOrder[plOrder.length-1];
        else
            return false;
    }
    else {
        prev = plOrder[currIndex-1];
    }
    
    setCurrent(prev);
    return true;
}

function removeSong(evt){
    

    if(window.event)
        e = window.event;
    else
        e = evt;
    
    if (!e) var e = window.event;
    e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation();
    
    var elem = $(this);
    
    var item = elem.parent().parent();
    if(getCurrent() === item.attr('id')){
        setCurrent(null);
        $("#jplayer").jPlayer('stop');
    }
    item.remove();
    updateList();
}

function licenseSong(evt){
    
    if(window.event)
        e = window.event;
    else
        e = evt;
    
    if (!e) var e = window.event;
    e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation();
    
    var url = $(this).attr('rel');
    goToPage(url);
}

function downloadSong(evt){
    
    if(window.event)
        e = window.event;
    else
        e = evt;
    
    if (!e) var e = window.event;
    e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation();
    var url = $(this).attr('rel');
    if(canDownload == 1){
        openModalBox("Choose the file that you want to download:<br /><div class='buttons'><button class='mp3'>MP3</button><button class='wav'>WAV</button></div>");
        $('.buttons button').click(function(){
            var type = $(this).attr('class');
            url += '/'+type;
            goToPage(url);
            $(document).trigger('close.facebox');
        });
    }
    else
        goToPage(url);
}

function downloadCurrentSong(){
    
    var url = $(this).attr('rel');
    if(canDownload == 1){
        openModalBox("Choose the file that you want to download:<br /><div class='buttons'><button class='mp3'>MP3</button><button class='wav'>WAV</button></div>");
        $('.buttons button').click(function(){
            var type = $(this).attr('class');
            url += '/'+type;
            goToPage(url);
            $(document).trigger('close.facebox');
        });
    }
    else
        goToPage(url);
}

function getCurrentIndex(curr){
    for(var i = 0; i < plOrder.length; i++){
        if(plOrder[i] == curr)
            return i;
    }
    return false;
}

function setSelected(id){
    selected = id;
    if(!$.browser.msie)
        $(".player-wrap .playlist .list #"+id).css('opacity',0.3);
}

function unsetSelected(id){
    if(!$.browser.msie)
        $(".player-wrap .playlist .list #"+id).css('opacity',1);
}

function clearPlaylists(){
    $('.player-wrap .playlists ul li').not('.history, .create-playlist').remove();
//    if(currPlaylist != 'history' && isLogged == 0)
//        loadHistory();
}

function getCurrentPlaylist(){
    return currPlaylist;
}

function clearPlaylist(){
    $('.player-wrap .playlist .list').empty();
}

function playlistsActions(){
    $('.player-wrap .playlists ul li').not('.history, .create-playlist').droppable({
        tolerance: 'pointer',
        accept: 'li.item',
        hoverClass: 'hover',
        drop: function(event, ui){
            addMusicPlaylist(selected,$(this).attr('id'));
            selected = null;
        }
    }).click(function(){
        openPlaylist($(this).attr('id'));
    });
    
    $('.player-wrap .playlists ul li a.playlist-remove').click(removePlaylist);
    $('.player-wrap .playlists ul li a.send-mail').click(sendPLMail);
    $('.player-wrap .playlists ul li a.download-playlist').click(downloadThisPlaylist);
}

function addMusicPlaylist(music, playlist){
    $.post('/frontend_dev.php/user/manage/playlist/add_music',{
        'music':music, 
        'playlist':playlist
    },function(data){
        if(data){
            openModalBox(data);
        }
        else {
            $('.player-wrap .playlists ul li#'+playlist).css('background-color','#66CC66').animate({
                'background-color':'#7c9eb0'
            },1500,'linear');
            $('.player-wrap .playlists ul li#'+playlist+" .plus").show()
            $('.player-wrap .playlists ul li#'+playlist+" .plus").fadeOut(1500);
            
        }
    });
    
}

function openPlaylist(id, sent){
    $('.player-wrap .playlist .list').hide();
    clearPlaylist();
    if(!sent)
        currPlaylist = id;
    setBtnBottom();
    $('.player-wrap .playlists ul li.history').addClass('blur');
    $('.player-wrap .playlists ul li.selected').removeClass('selected');
    $('.player-wrap .playlists ul li#'+id).addClass('selected');
    
    var loading = $('<div class="loading"><img src="/images/loader/loading-bar.gif" /></div>');
    $('.player-wrap .playlist').append(loading);
    
    $.post('/home.php/playlist/get_songs/'+id,{},function(data){
        clearPlaylist();
        for(var i in data){
            loadMusic(data[i].id, data[i].title, data[i].artist, data[i].album.title, data[i].album.cover, data[i].songURL, data[i].browseLink, data[i].downloadLink, data[i].licenseLink);
        }
        if(sent)
            updateList();
        else
            updatePlOrder();
        
        if(getCurrent() != "")
            $('.player-wrap .playlist .list li#'+getCurrent()).addClass('selected');
        $('.player-wrap .playlist .list').show();
        loading.remove()
        
        var name = $('.player-wrap .playlists ul li#'+id).find('.name').text();
    
        $('.playlist-title').text('PLAY '+name);
    },'json');
}

function removePlaylist(evt){
    if(window.event)
        e = window.event;
    else
        e = evt;
    
    if (!e) var e = window.event;
    e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation();
    
    if(confirm('Do you really want to delete this playlist?')){
        var li = $(this).parent().parent();
        var id = li.attr('id');
        if(currPlaylist == id){
            clearPlaylist();
            $('.player-wrap .playlists ul li.history').click();
        }
        $.post('/home.php/user/manage/playlist/delete',{
            'id':id
        },function(data){
            li.remove();
        });
        
    }
}

function clickBtnBottom(evt){

    if(window.event)
        e = window.event;
    else
        e = evt;
    
    if (!e) var e = window.event;
    e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation();

    if(currPlaylist == 'history' || currPlaylist == null){
        
        createPlaylist(true);
    }
    else {
        sendMail(currPlaylist);
    }

}

function downloadPlaylist(evt){

    if(window.event)
        e = window.event;
    else
        e = evt;

    if (!e) var e = window.event;
    e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation();

    var hash = $('.player-wrap .playlists ul li#'+currPlaylist).attr('hash');
    goToPage('/home.php/playlist/download/'+hash);

}
function downloadThisPlaylist(evt){

    if(window.event)
        e = window.event;
    else
        e = evt;

    if (!e) var e = window.event;
    e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation();

    var hash = $(this).parent().parent().attr('hash');
    goToPage('/home.php/playlist/download/'+hash);

}

function sendPLMail(evt){
    
    if(window.event)
        e = window.event;
    else
        e = evt;
    
    if (!e) var e = window.event;
    e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation();
    
    sendMail($(this).parent().parent().attr('id'));
}
function sendMail(id){
    var name = $('.player-wrap .playlists ul li#'+id+' .name').text();
    var musics = '';
    
    if(id == currPlaylist){
        $('.player-wrap .playlist ul li').each(function(){
            musics += ','+$(this).attr('id');
        });
        musics = musics.substr(1);    
        
        
        window.open(serverName+'home.php/playlist/sendEmail?playlist_name='+name+'&music='+musics, '', 'width=560, height=620, top=100, left=250, scrollbars=yes');

    }
    else {
        
        $.post('/home.php/playlist/get_songs/'+id,{},function(data){
            for(var i in data){
                musics += ','+data[i].id;
            }
            musics = musics.substr(1);
            
            window.open(serverName+'home.php/playlist/sendEmail?playlist_name='+name+'&music='+musics, '', 'width=560, height=620, top=100, left=250, scrollbars=yes');
        },'json');
    }
}

function loadHistory(){
    clearPlaylist();
    currPlaylist = 'history';
    setBtnBottom();
    
    $('.player-wrap .playlists ul li.selected').removeClass('selected');
    $('.player-wrap .playlists ul li.history').removeClass('blur').addClass('selected');
    
    $('.playlist-title').text('PLAY HISTORY');
    
    var musics = new Array();
    $.post('/home.php/playlist/get_session',{
        'action':'get-musics'
    },function(data){
        for(var i in data){
            loadMusic(data[i].id, data[i].title, data[i].artist, data[i].album.title, data[i].album.cover, data[i].songURL, data[i].browseLink, data[i].downloadLink, data[i].licenseLink);
        }
        updatePlOrder();
    },'json');
}

function addOneList(id, name, hash){
    var li = $('<li id="'+id+'"><span class="inner-border"><span class="name">'+name+'</span><span class="plus">+1</span><a class="playlist-remove">X</a><a class="send-mail"><img src="/images/ico-email2.png" /></a><a class="download-playlist"><img src="/images/ico-download3.png" /></a></span></li>');
    if(hash != "")
        li.attr('hash', hash);
    if(id == currPlaylist) li.addClass('selected');
    $('.player-wrap .playlists ul .create-playlist').before(li);
    
}

function setBtnBottom(){
    if(currPlaylist == null || currPlaylist == 'history'){
        $('.player-wrap .playlist .btn-bottom').eq(0).removeClass('send-playlist').text('Create Playlist');
        $('.player-wrap .playlist .download-playlist').hide();
    }
    else {
        $('.player-wrap .playlist .btn-bottom').eq(0).addClass('send-playlist').text('Send Playlist');
        if($('.player-wrap .playlists ul li#'+currPlaylist).attr('hash') != "")
            $('.player-wrap .playlist .download-playlist').show();
    }
}

function feedTT(title, slug, lyrics, artistName, artistUsername, albumTitle, albumCover){
    FB.ui({
        method: 'feed',
        name: title+' - '+artistName,
        link: serverName+'#/user/'+artistUsername+'/profile/music/'+slug,
        picture: albumCover,
        caption: albumTitle,
        description: lyrics
    }); 
}
