
var music = {

    init: function()
    {
        if ($('content').getElement('li.upload > a'))    $('content').getElement('li.upload > a').addEvent('click', user.drawUnregInfo);
        if ($('content').getElement('li.playlist > a'))  $('content').getElement('li.playlist > a').addEvent('click', user.drawUnregInfo);
        if ($('content').getElement('li.playlist > a'))  $('content').getElement('li.playlist > a').addEvent('click', music.playlistWindow);
        if ($('content').getElement('table.music'))
        {
            $('content').getElement('table.music').getElements('a.addPlaylist, a.removePlaylist, a.up, a.dn, a.play').each(function(elem){
                if (elem.get('class') == 'addPlaylist')    { elem.set('title', 'Добавить в плейлист');  elem.addEvent('click', music.playlistAddRemove); }
                if (elem.get('class') == 'removePlaylist') { elem.set('title', 'Удалить из плейлиста'); elem.addEvent('click', music.playlistAddRemove); }
                if (elem.get('class') == 'up')             { elem.set('title', 'Переместить выше'); elem.addEvent('click', music.playlistUpDn); }
                if (elem.get('class') == 'dn')             { elem.set('title', 'Переместить ниже'); elem.addEvent('click', music.playlistUpDn); }
                if (elem.get('class') == 'play')           { elem.set('title', 'Прослушать'); elem.addEvent('click', music.play); }
                elem.addEvent('click', user.drawUnregInfo);
            });

        }
    },


    drawNewSelectElem: function(item)
    {
        if ($(item).value == '+') {
            if (item == 'artist') var title = '+ Исполнитель';
            if (item == 'album')  var title = '+ Альбом';

            win.init('newSelectElem', title, 280);
            win.gotoCenter('newSelectElem');

            win.content('newSelectElem').set('html', '<input type="text" id="addNewSelectElem"> <input type="button" value="Добавить" onClick="music.addNewSelectElem(\''+ item +'\')" />')
            $('newSelectElem').getElement('a').addEvent('click', function(){ $(item).value = ''; });
        }
        else if ($('newSelectElem')) $('newSelectElem').destroy();
    },


    addNewSelectElem: function(what)
    {
        var newItem = $('addNewSelectElem').value;

        if (newItem != '')
        new Request.JSON({
            url: '/ajax.php?do=addNewMusicSelectElem',
            onComplete: function(response) {
                new Element('option', {
                    'value': response.key}
                ).set('text', response.title).inject($(response.select).getElement('option'), 'after');
                $(response.select).selectedIndex = 1;
                $('newSelectElem').destroy();
        }}).get({'select': what, 'title': newItem});
    },


    loadEditor: function(id)
    {
        win.init('musicEditor', 'Редактирование', 700);
        if ($('musicEdit'+ id)) win.gotoThis('musicEditor', 'musicEdit'+ id, 'bottom'); else win.gotoCenter('musicEditor');
        win.content('musicEditor').load('/ajax.php?do=loadMusicEditor&id=' + id);
    },


    updateFile: function(this_)
    {
        var id = this_.id.value;
        this_.set('send', {url: '/ajax.php?do=updateMusicFile', method: 'get'});
        this_.send();
        $('musicEditor').destroy();
        if ($('musicEdit'+ id)) $('musicEdit'+ id).load('/ajax.php?do=loadMusicString&id=' + id);
    },


    activation: function(id, this_)
    {
        new Request.JSON({
            url: '/ajax.php?do=musicActivation',
            onComplete: function(response) {
                $(this_).set('src', '/images/admin_7x7_active'+ response +'.gif');
        }}).get({'id': id});
    },


    playlistAddRemove: function(e)
    {
        e.stop();
        var a = $(this);
        var row = a.getParent().getParent();
        var id = row.getElement('a.download').get('href').replace('/get/music/','').toInt();

        new Request.JSON({
            url: '/ajax.php?do='+ a.get('class'),
            onComplete: function(response) {
                if (response)
                {
                    a.set('class', 'removePlaylist');
                    a.set('title', 'Удалить из плейлиста');
                }
                else
                {
                    if ($('playlist')) row.destroy();
                    a.set('class', 'addPlaylist');
                    a.set('title', 'Добавить в плейлист');
                }
        }}).get({'id': id});
    },


    playlistUpDn: function(e)
    {
        e.stop();
        var a = $(this);
        var row = a.getParent().getParent();
        var id = row.get('id').toInt();
        var go = a.get('class');

        if (go == 'up' && row.getPrevious() || go == 'dn' && row.getNext())
        new Request.JSON({
            url: '/ajax.php?do=orderbyPlayList',
            onComplete: function(response) {
                if (response)
                {
                    if (go == 'up' && row.getPrevious()) row.inject(row.getPrevious(), 'before');
                    if (go == 'dn' && row.getNext())     row.inject(row.getNext(), 'after');
                }
        }}).get({'id': id, 'go': go});
    },


    play: function(e)
    {
        e.stop();
        var id = $(this).getParent().getParent().get('id');

        music.movie().getNext(id, music.playlistTitle(id));
    },


    markSelected: function(id)
    {
        if ($('playlist').getElement('tr.selected')) $('playlist').getElement('tr.selected').erase('class');
        $(id).set('class', 'selected');
    },


    getNext: function(id)
    {
        if ($(id).getNext()) var id = $(id).getNext().get('id');
        else var id = $('playlist').getElement('tr').get('id');

        music.movie().getNext(id, music.playlistTitle(id));
    },


    getPrev: function(id)
    {
        if ($(id).getPrevious()) var id = $(id).getPrevious().get('id');
        else var id = $('playlist').getElement('tr:last-child').get('id');

        music.movie().getPrevious(id, music.playlistTitle(id));
    },


    getFirst: function()
    {
        if ($('playlist'))
        {
            var id = $('playlist').getElement('tr').get('id');
            music.movie().getFirst(id, music.playlistTitle(id));
        }
        else if ($('content').getElement('h2.music'))
        {
            music.movie().getFirst($('content').getElement('h2.music').get('id'), '');
        }
    },


    playlistTitle: function(id)
    {
        return $(id).getElements('td')[2].get('text');
    },


    movie: function()
    {
         if (navigator.appName.indexOf("Microsoft") != -1) {
             return window['player'];
         } else {
             return document['player'];
         }
     },


     playlistWindow: function(e)
     {
         if (user.id)
         {
             e.stop();
             window.open('/playlist','Playlist_Window','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width=750,height=550')
         }
     }

}
