var now_playing;
var was_single = false;
var play_flag = new Array();

function thisMovie(movieName)
{
    if (window.document[movieName])
    {
        return window.document[movieName];
    }
    if (navigator.appName.indexOf("Microsoft Internet")==-1)
    {
        if (document.embeds && document.embeds[movieName])
            return document.embeds[movieName];
    }
    else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
    {
        return document.getElementById(movieName);
    }
}

var checkIfPlayerExist = function()
{
    if(document.getElementById("OmegaPlayer") != null)
        return true;
    else
        return false;
}

var clearIcons = function()
{
    var i = 1;
    $("#playlist li input" ).each(
        function(){
            $(this).parent('li').find('img').attr('src' , '/static/ico_play.png');
            $(this).parent('li').find('p').children('span').attr('onCLick' , 'tick('+i+');');
            i++;
        });
}
var clearList = function()
{
    $('.utwory ul li').each(
        function(){
            each_id = $(this).attr('dds');
            $(this).find('img').attr('src','/static/ico_play.png');
            $(this).find('span.play_single').attr('onClick','single_tick('+each_id+')');
            $(this).removeClass('ui-selected');
            play_flag[each_id] = false;
        });
    checkCurrent();
}

var tick = function(id)
{
    if(checkIfPlayerExist() != false)
    {
        $.ajax({
            type: "POST",
            url: _URL+'player/tick/'+playlist_id+'/'+id ,
            data: "",
            success: function(data){
                if( parseInt(data) != 2 )
                {
                    if(thisMovie("OmegaPlayer").getdata()==false ||
                        was_single == true ||
                        playlist_id == now_playing)
                    {                    
                        play();
                        was_single = false;
                        clearList();
                    }
                    else
                    {
                        thisMovie("OmegaPlayer").jsClearBuffer();
                        setVolume(volume_global);
                    }
                }
                else
                    tb_show('Please Login','#TB_inline?width=420&height=220&inlineId=loginForm&modal=true', null);
            }
        });
    }
}

var play = function(type)
{
    if(checkIfPlayerExist() != false)
    {
        $("#playerplay").find('a').attr('href','javascript:pause()');
        $("#playerplay").find('img').attr('src','static/alfa_pause.gif');
        $.ajax({
            type: "POST",
            url:  _URL+'player/start/'+playlist_id ,
            data: "",
            success: function(data)
            {
                if( parseInt(data) != 2 )
                {
                    url = data;
                    thisMovie("OmegaPlayer").jsSetUrl( url );
                    thisMovie("OmegaPlayer").jsPlay();
                    if( type == "single" )
                    {
                        $.post( _URL+'playlist/kill_single/'+playlist_id);
                        playlist_id = $('select option:selected').val();
                        was_single = true;
                    }
                    setVolume(volume_global);
                    now_playing = playlist_id;
                }
                else
                    tb_show('Please Login','#TB_inline?width=420&height=220&inlineId=loginForm&modal=true', null);
            }
        });

    }

}
var pause = function()
{
    if(checkIfPlayerExist() != false)
    {
        clearIcons();
        thisMovie("OmegaPlayer").jsPause();
        $("#playerplay").find('img').attr('src','static/alfa_play.gif');
        $("#playerplay").find('a').attr('href','javascript:play()'); 
    }
}
var changeUrl = function(url)
{
    if(checkIfPlayerExist() != false)
    {
        thisMovie("OmegaPlayer").jsSetUrl(url);
    }

}
var stop = function()
{
    if(checkIfPlayerExist() != false)
    {
        clearIcons();
        thisMovie("OmegaPlayer").jsStop();
        $("#playerplay").find('img').attr('src','static/alfa_play.gif');
        $("#playerplay").find('a').attr('href','javascript:play()');
    }
}

var next = function()
{
    next_piece = now_playing+1;
    tick(next_piece);
}

var prev = function()
{
    prev_piece = now_playing-1;
    if(prev_piece > 0)
        tick(prev_piece);
    else
        tick(1);
}

var setVolume = function( volume )
{
    if(checkIfPlayerExist() != false)
    {
        thisMovie("OmegaPlayer").jsSetVolume(volume);
        if(volume == 0){
            pause();
            document.getElementById('glosnik').src='static/alfa_vol_off.gif';
        }
        if(volume_global == 0 && volume != 0){
            play();
            document.getElementById('glosnik').src='static/alfa_vol_on.gif';
        }
        var cookie_date = new Date ( 2020, 01, 15 );
        document.cookie = "playervolume="+volume+"; expires=" + cookie_date.toGMTString();
        volume_global = volume;
    }

}
var chvol = function()
{
    if(checkIfPlayerExist() != false)
    {
        if(volume_global>0)
        {
            setVolume(0);
            $("#volume_slider").slider("value","0");
            document.getElementById('glosnik').src='static/alfa_vol_off.gif';
        }
        else
        {
            if(volume_global > 0)
                volume = volume_global;
            else
                volume = 100;

            setVolume(volume);
            $("#volume_slider").slider("value",volume)
            document.getElementById('glosnik').src='static/alfa_vol_on.gif';
        }
    }
}

var play_single = function(id)
{
    if(checkIfPlayerExist() != false)
    {
        if( user != 0 )
        {
            $.ajax({
                type: "POST",
                url: _URL+'playlist/play_single/'+id ,
                date:"",
                success:function(data){
                    playlist_id = parseInt(data);
                    play('single');
                    clearIcons();
                }
            });
        }
        else
        {
            $.ajax({
                type: "POST",
                url: _URL+'playlist/captcha/'+id,
                date:"",
                success:function(data){
                    if(parseInt(data) == "0")
                    {
                        showLimitAlert("1","single");
                    }
                    else
                    {
                        $('#captchaform input[name=captcha]').val(' ');
                        var d =new Date();
                        $('#captcha_img img').attr( 'src' , 'captcha.php?t=p&'+d.getTime());
                        tb_show('Kod zabezpieczający', '#TB_inline?width=420&height=320&inlineId=captchaform&modal=true', null);
                    }
                }
            });
        }
    }
}

var single_tick = function( id )
{
    if( play_flag[id] === false || typeof(play_flag[id]) == "undefined")
    {
        if(thisMovie("OmegaPlayer").getdata()==true)
        {
            stop();
        }
        play_flag = new Array();
        play_single( id );
        var each_id;
        $('.utwory ul li').each(
            function(){
                each_id = $(this).attr('dds');
                $(this).find('img').attr('src','/static/ico_play.png');
                $(this).find('span.play_single').attr('onClick','single_tick('+each_id+')');
                $(this).removeClass('ui-selected');
            });
        $('.utwory ul li[dds='+id+"]").find('img').attr('src','/static/ico_pause.png');
        $('.utwory ul li[dds='+id+"]").find('span.play_single').attr('onClick','single_pause('+id+')')
        play_flag[id] = true;
    }
    else
    if(play_flag[id] === true)
    {
        thisMovie("OmegaPlayer").jsPlay();
        $('.utwory ul li[dds='+id+"]").find('img').attr('src','/static/ico_pause.png');
        $('.utwory ul li[dds='+id+"]").find('span.play_single').attr('onClick','single_pause('+id+')')
    }
}
var single_pause = function(id)
{
    pause();
    $('.utwory ul li[dds='+id+"]").find('img').attr('src','/static/ico_play.png');
    $('.utwory ul li[dds='+id+"]").find('span.play_single').attr('onClick','single_tick('+id+')');
}
var captchacode = function()
{
    $.ajax({
        type: "POST",
        url: _URL+'playlist/captcha/',
        data:"captcha="+$('form[name=captchaform] input[name=captcha]').val(),
        success:function(data){
            tb_remove();
            if( parseInt(data) != "0")
            {
                playlist_id = parseInt(data);
                play( 'single' );
            }
            else
            {
                showLimitAlert("1","captcha");
            }
        }
    });
    return false;
}

var showLimitAlert = function( size , type)
{
    if( type == "pieces" )
        $('#alert p').text("Limit na ilość utworów w danej playliscie został przekroczony o "+size+" utworów" );
    if( type == "playlist" )
        $('#alert p').text("Możesz stworzyć tylko 5 playlist");
    if( type == "single" )
    {
        $('#alert p').text("Możesz odsłuchać tylko 5 utworów w ciągu 1 godziny.");
    }
    if( type == "captcha")
    {
        $('#alert p').text("Wpisany kod zabezpieczający nie zgadza się z obrazkiem.");
    }
    setTimeout(
        function(){
            tb_show('Błąd','#TB_inline?width=420&height=220&inlineId=alert&modal=true', null)
            },500);
    
}
var checkCurrent = function()
{

    $.ajax({
        type:"POST",
        url: _URL +"playlist/checkCurrent/",
        data: "pl_id="+playlist_id,
        success:function(data){
            data = parseInt(data);
            if(now_playing != data)
            {
                now_playing = data;
                if (data == 0)
                    data = 1;
                var i = 1;
                $("#playlist li input" ).each(
                    function(){
                        $(this).parent('li').find('img').attr('src' , '/static/ico_play.png');
                        $(this).parent('li').find('p').attr('style' , 'color:black');
                        $(this).parent('li').find('p').children('span').attr('onClick', 'tick('+i+');');
                        if( $(this).val() == data )
                        {
                            $(this).parent('li').find('img').attr('src' , '/static/ico_pause.png');
                            $(this).parent('li').find('p').attr('style' , 'color:#EA005C');
                            $(this).parent('li').find('p').children('span').attr('onClick', 'pause();');
                        }
                        i++;
                    });
            }
        }
    });
}

var deletePlaylist = function(id)
{
    if(thisMovie("OmegaPlayer").getdata()==true)
        stop();
    $.post( _URL+'playlist/usun/'+id);
    $('#playlist li').remove();
    $('select option:selected').remove();
    if( typeof($('select option:first').val()) != "undefined")
        playlist_id = $('select option:first').val();
    else
    {
        $.post( _URL+"playlist/killcookie/");
        playlist_id = "";
    }
    tb_remove();
    setTimeout( function(){
        changePlaylistToUpdate();
        $.post( _URL+'playlist/zmienListe', {
            playlist_id : playlist_id
        },function(data){
            if( parseInt(data) !== 0)
            {
                $('#playlist').html(data);
                tick(1);
            }
        });
    } , 500);
}
var updatePlaylistName =function(id)
{
    $.post( _URL+'playlist/stworz' , {
        playlist_to_update : id ,
        playlist_name: $('#TB_ajaxContent input[name=playlist_name]').val()
    },function(data)
    {
        $('select option:selected').text(data);
    });
    changePlaylistToUpdate();
    tb_remove();
}

var clearPlaylist = function(id)
{
    if(thisMovie("OmegaPlayer").getdata()==true)
        stop();
    $.post(_URL+'playlist/wyczysc/'+id,
        function(data){
            $('#playlist li').remove();
        });
    tb_remove();
    $('#showall').attr('style','display:none');
}

var changePlaylistToUpdate = function()
{
    $('#playlist_delete').find('p').html('Czy mam usunąć playlistę '+$('select option:selected').text() );
    $('#playlist_delete').find('input[name=delete]').attr('onClick' , 'deletePlaylist('+playlist_id+')');
    $('#playlist_change_name').find('input[type=text]').attr('value' , $('select option:selected').text() );
    $('#playlist_change_name').find('input[name=update]').attr('onClick' , 'updatePlaylistName('+playlist_id+')');
    $('#playlist_clear').find('p').html('Czy mam wyczyścić playlistę '+$('select option:selected').text() );
    $('#playlist_clear').find('input[name=delete]').attr('onClick' , 'clearPlaylist('+playlist_id+')');
}
$(function() {
    var $list = $('.list'), $playlist = $('#playlist'), $trash = $('#trash'), $albums= $('.album_list');
    var unique = function(){
        var i=0;
        $playlist.find('li').each(function(){
            $(this).attr('id', i++);
        })
    }
    var setorder = function()
    {
        var position = 1;
        $playlist.find('li').each(function ()
        {
            $(this).children('input[name=arrangement]').val(position);
            $(this).find('p').children('span').attr('onClick', 'tick('+position+')' );
            $(this).find('img').attr('style' , 'cursor:pointer;');
            $(this).removeClass('ui-selectee');
            $(this).find('span').removeClass('shadow');
            position += 1
        });
        if(pieces_count < 11)
            $('#showall').attr('style','display:none');
        else
            $('#showall').attr('style','display:inline');
    }
    $("#playlist li:gt(9)").remove();
    // let the items in $list and $playlist be selectable
    unique();
    changePlaylistToUpdate();
    $list.selectable({});
    var id ="";
    $('#playlist').sortable({
        placeholder: 'placeholder',
        connectWith: '#trash',
        start: function(ui)
        {
            id = $('#playlist li.ui-draggable-dragging').attr('id');
        },

        update: function()
        {
            var listorder =new Array();
            $(this).find('li').each( function(){
                listorder.push('item[]='+$(this).attr('dds'));
            });
            var listOrder = listorder.join('&');
            $.post( _URL +"playlist/edytujKolejnosc/"+playlist_id, listOrder );
            setorder();
            unique();
        }
    }).disableSelection();
    // let the list items be draggable
    $('p',$list).draggable({
        helper: 'clone',
        cursor: 'move'
    });
    $('img' ,$albums).draggable({
        helper: 'clone',
        cursor: 'move'
    });


    var checklimit = function( ulsize , success)
    {

        $.post( _URL+"/playlist/sprawdzLimit/"+playlist_id,
        {
            size : ulsize
        },
        function(data){
            if( parseInt(data) > 50 )
                showLimitAlert( parseInt(data) - 50 , "pieces");
            else
            {
                pieces_count = parseInt(data);
                return success();
            }
        });
    }
    var manyappend = function()
    {
        var stock = new Array();
        $("li.ui-selected").not('li.ui-draggable-dragging').each(function(){
            stock.push($(this).attr('dds'));
            appendLi($(this).droppable('widget'));
        });
        postlist(stock , setorder);
    }
    var postlist = function(stock , callback)
    {
        $.post( _URL +"playlist/dodaj/"+playlist_id , {
            'item[]' : stock.reverse()
        }, function(data){
            if( typeof( parseInt(data)) == 'number' && !isNaN(parseInt(data)) )
            {
                playlist_id = data;
                changePlaylistToUpdate();
                $("#playerplay").find('a').attr('href','javascript:tick(1)');
            }
            callback();
        });
        if(showed == false)
            $("#playlist li:gt(9)").remove();
        unique();
        setorder();
    }
    // let the playlist be droppable, accepting the list items
    $playlist.droppable({
        accept:".list p , .album_list img ",
        activeClass: "playlist-red",
        drop: function(ev, ui) {
            if( user !== 0){
                if ( !$('.ui-draggable-dragging').hasClass('album'))
                {
                    if ($list.find('li').hasClass('ui-selected'))
                    {
                        checklimit( $("li.ui-selected").size() , manyappend);
                    }
                    else
                    {
                        $("p.ui-draggable-dragging").parent('li').addClass('ui-selected');
                        checklimit( 1 , manyappend);
                    }
                }
                else
                {
                    if( typeof($('select option:first').val()) == "undefined")
                    {
                        $.post( _URL+"playlist/stworz" , {
                            playlist_name : "new_playlist"
                        },
                        function(data){
                            $('select[name=playlists]').append(data)
                            playlist_id = $('select option:selected').val();
                            changePlaylistToUpdate();
                            $("#playerplay").find('a').attr('href','javascript:tick(1)');
                        });
                    }
                    $.post( _URL +"playlist/dodajAlbum/"+playlist_id , {
                        'album_id' : $('.ui-draggable-dragging').attr('id')
                    }, function(data)
                    {
                        if( parseInt(data) > 0 )
                            showLimitAlert( parseInt(data) , "pieces");
                        else
                        {
                            $(data).prependTo('#playlist');

                        }
                        if(showed == false)
                            $("#playlist li:gt(9)").remove();
                        setorder();
                        unique();
                    });
                }
            }
            else
            {
                tb_show('Please Login','#TB_inline?width=420&height=220&inlineId=loginForm&modal=true', null);
            }
        }
    });

    // let the trash be droppable as well, accepting items from the playlist
    $trash.droppable({
        accept: '#playlist li',
        activeClass: 'trash-big',
        drop: function(ev, ui) {
            var stock = new Array();
            var arrangement = new Array();
            if(user != "undefinied" || user !== 0)
            {

                if ($playlist.find('li').hasClass('ui-selected'))
                {
                    $("#playlist li.ui-selected" ).not('li.ui-draggable-dragging').each(function(){
                        stock.push($(this).attr('dds'));
                        arrangement.push($(this).children('input[name=arrangement]').val());
                        trashLi($(this).droppable('widget'));
                    })
                }
                else
                {
                    $("li.ui-sortable-helper").each(function(){
                        $(this).removeClass('ui-draggable-dragging');
                        $(this).removeAttr('style');
                        stock.push($(this).attr('dds'));
                        arrangement.push($(this).children('input[name=arrangement]').val());
                        trashLi($(this).droppable('widget'));
                    })
                }
                $.post( _URL +"playlist/usunUtwor/"+playlist_id ,{
                    'item[]' :  stock ,
                    'arrangement[]' : arrangement
                } , function(data){
                    if( showed == false)
                        $('#playlist').append(data)
                    setorder();
                    unique();
                });

            }
            else
            {
                tb_show('Please Login','#TB_inline?width=420&height=220&inlineId=loginForm&modal=true', null);
            }
        }

    });

    // appending selected items to playlist
    function appendLi($item) {
        var $lista = $playlist;
        $item.clone().prependTo($lista);
        //let remove selectable and draggable classes
        $('.ui-selected').removeClass('ui-selected');
        $('.ui-draggable-dragging').remove();
        $item.removeClass('ui-selected');
    }

    // removing selected items from playlist
    function trashLi($item)
    {
        id = $item.attr('id');
        $('#'+id).remove();
        $('body').attr('cursor','');
    }

    //adding a multiple selecting options, even added later
    $('li.ui-selectee').live('click' , function(){
        var $item = $(this);
        if( $item.hasClass('ui-selected') == true ){
            $item.removeClass('ui-selected');
        }
        else
        {
            $item.addClass('ui-selected');
        }
        return false;
    });

    //changing playlists
    $('select[name=playlists]').change( function(){
        $.post( _URL+'playlist/zmienListe', {
            playlist_id : $('option:selected' , this).val()
        },function(data){
            playlist_id = $('select option:selected').val();
            if( parseInt(data) !== 0)
            {
                $('#playlist').html(data);
                play();
                setorder();
                changePlaylistToUpdate();
            }
        })
    });
});
var newplaylist = function(){
    tb_remove();
    if( user !== 0)
    {
        $.post( _URL+"playlist/stworz" , {
            playlist_name : $("#TB_ajaxContent input[name=playlist_name]").val()
        },
        function(data){
            if( data == 0)
            {
                $('#playlist_name').find('p.error').text("Należy wypełnić pole nazwa playlisty");
                tb_show('Error','#TB_inline?width=420&height=220&inlineId=playlist_name&modal=true', null);
            }
            else if( data == 1 )
            {
                showLimitAlert( parseInt(data) , "playlist");
            }
            else if( data == 2)
            {
                tb_show('Please Login','#TB_inline?width=420&height=220&inlineId=loginForm&modal=true', null);
            }
            else
            {
                $('select option:selected').removeAttr("selected");
                $('select[name=playlists]').append(data);
                playlist_id = $('select option:selected').val();
                $('#playlist li').remove();
                changePlaylistToUpdate();
            }
        });
    }
    else
    {
        setTimeout(function(){
            tb_show('Please Login','#TB_inline?width=420&height=220&inlineId=loginForm&modal=true', null);
        },1000);
    }

};

var getpage = function( page )
{
    if(page) {
        $.ajax({
            type: "POST",
            url:  _URL+ page ,
            data: "type=ajax",
            beforeSend:function()
            {
                tb_show('Loading','#TB_inline?width=68&height=68&inlineId=loading&modal=true');
            },
            success:function(data){
                tb_remove();
                $("#page > div#content > #page > div#content").html(data);

                setTimeout( function(){
                    $('.list p').draggable({
                        helper: 'clone',
                        cursor: 'move'
                    });

                    $('.album_list img').draggable({
                        helper: 'clone',
                        cursor: 'move'
                    });
                },2000);
            }
        });
    }
    else
    {
}
}
var sendform = function()
{
    geturl = $('form[name=search]').attr('action');
    form = $('form[name=search]').serialize();
    $.history.load(geturl+"?"+form);
    return false;
}

function sendEnterKey(e,type)
{
    var key;

    if(window.event)
        key = window.event.keyCode;     //IE
    else
        key = e.which;     //firefox

    if(key == 13){
        if(type == "search")
        {
            $(".text_search").blur();
            return sendform();
        }
    }
    else
        return true;
}

