$(document).ready(function() {
  /* $("#jquery_jplayer_2").jPlayer( {
    ready: function () {
      $(this).jPlayer("setMedia", {
        mp3: "music/Germanov_Sche(Radio-version).mp3" // Defines the mp3 url
      });
    },
    "swfPath": 'js',
    'supplied': 'mp3'
  }); */
    var Playlist = function(instance, playlist, options) {
            var self = this;

            this.instance = instance; // String: To associate specific HTML with this playlist
            this.playlist = playlist; // Array of Objects: The playlist
            this.options = options; // Object: The jPlayer constructor options for this playlist

            this.current = 0;

            this.cssId = {
                    jPlayer: "jquery_jplayer_",
                    'interface': "jp_interface_",
                    playlist: "jp_playlist_"
            };
            this.cssSelector = {};

            $.each(this.cssId, function(entity, id) {
                    self.cssSelector[entity] = "#" + id + self.instance;
            });

            /*if(!this.options.cssSelectorAncestor) {
                    
            } */
            if(!this.options.cssSelectorAncestor) {
                    this.options.cssSelectorAncestor = this.cssSelector.interface;
            }

            $(this.cssSelector.jPlayer).jPlayer(this.options);

            $(this.cssSelector.interface + " .jp-previous").click(function() {
                    self.playlistPrev();
                    $(this).blur();
                    return false;
            });

            $(this.cssSelector.interface + " .jp-next").click(function() {
                    self.playlistNext();
                    $(this).blur();
                    return false;
            });
    };


    Playlist.prototype = {
            displayPlaylist: function() {
                    var self = this;
                    $(this.cssSelector.playlist + " ul").empty();
                    for (i=0; i < this.playlist.length; i++) {
                            var listItem = (i === this.playlist.length-1) ? "<li class='jp-playlist-last'>" : "<li>";
                            listItem += "<a href='#' id='" + this.cssId.playlist + this.instance + "_item_" + i +"' tabindex='1'>"+ this.playlist[i].name +"</a>";

                            // Create links to free media
                            if(this.playlist[i].free) {
                                    var first = true;
                                    listItem += "<div class='jp-free-media'>(";
                                    $.each(this.playlist[i], function(property,value) {
                                            if($.jPlayer.prototype.format[property]) { // Check property is a media format.
                                                    if(first) {
                                                            first = false;
                                                    } else {
                                                            listItem += " | ";
                                                    }
                                                    listItem += "<a id='" + self.cssId.playlist + self.instance + "_item_" + i + "_" + property + "' href='" + value + "' tabindex='1'>" + property + "</a>";
                                            }
                                    });
                                    listItem += ")</span>";
                            }

                            listItem += "</li>";

                            // Associate playlist items with their media
                            $(this.cssSelector.playlist + " ul").append(listItem);
                            $(this.cssSelector.playlist + "_item_" + i).data("index", i).click(function() {
                                    var index = $(this).data("index");
                                    if(self.current !== index) {
                                            self.playlistChange(index);
                                    } else {
                                            $(self.cssSelector.jPlayer).jPlayer("play");
                                    }
                                    $(this).blur();
                                    return false;
                            });

                            // Disable free media links to force access via right click
                            if(this.playlist[i].free) {
                                    $.each(this.playlist[i], function(property,value) {
                                            if($.jPlayer.prototype.format[property]) { // Check property is a media format.
                                                    $(self.cssSelector.playlist + "_item_" + i + "_" + property).data("index", i).click(function() {
                                                            var index = $(this).data("index");
                                                            $(self.cssSelector.playlist + "_item_" + index).click();
                                                            $(this).blur();
                                                            return false;
                                                    });
                                            }
                                    });
                            }
                    }
            },
            playlistInit: function(autoplay) {
                    if(autoplay) {
                            this.playlistChange(this.current);
                    } else {
                            this.playlistConfig(this.current);
                    }
            },
            playlistConfig: function(index) {
                    $(this.cssSelector.playlist + "_item_" + this.current).removeClass("jp-playlist-current").parent().removeClass("jp-playlist-current");
                    $(this.cssSelector.playlist + "_item_" + index).addClass("jp-playlist-current").parent().addClass("jp-playlist-current");
                    this.current = index;
                    $(this.cssSelector.jPlayer).jPlayer("setMedia", this.playlist[this.current]);
            },
            playlistChange: function(index) {
                    this.playlistConfig(index);
                    $(this.cssSelector.jPlayer).jPlayer("play");
            },
            playlistNext: function() {
                    var index = (this.current + 1 < this.playlist.length) ? this.current + 1 : 0;
                    this.playlistChange(index);
            },
            playlistPrev: function() {
                    var index = (this.current - 1 >= 0) ? this.current - 1 : this.playlist.length - 1;
                    this.playlistChange(index);
            }
    };

    var audioPlaylist = new Playlist("2", [
		{
			name:"Ще",
			mp3:"music/Germanov_Sche(Radio-version).mp3"
		},
		{
			name:"Повертаюсь",
			mp3:"music/Germanov_Povertayus(Radio-version).mp3"
		},
        {
			name:"Не сама",
			mp3:"music/Germanov_Ne_Sama(Radio-version).mp3"
		},
        {
			name:"Бути ближче",
			mp3:"music/Germanov_Buty_Bluzhche(Radio-version).mp3"
		},
        {
			name:"Зорепад",
			mp3:"music/Germanov-Zorepad(Radio-version).mp3"
		},
        {
			name:"Дякую",
			mp3:"music/Germanov_Dyakuyu(Radio-version).mp3"
		},
/*                {
			name:"Берег (демо)",
			mp3:"music/Germanov_Bereg(Demo).mp3"
		},
                {
			name:"Зорепад (демо)",
			mp3:"music/Germanov_Zorepad(Demo).mp3"
		},
                {
			name:"Бути ближчим (демо)",
			mp3:"music/Germanov_Buty_Blyzhche(Demo).mp3"
		}, */
    ], 
    {
            ready: function() {
                    audioPlaylist.displayPlaylist();
                    audioPlaylist.playlistInit(false); // Parameter is a boolean for autoplay.
            },
            ended: function() {
                    audioPlaylist.playlistNext();
            },
            play: function() {
                    $(this).jPlayer("pauseOthers");
            },
            swfPath: "js",
            supplied: "mp3"
    });

    /*
    $("#jquery_jplayer_2").jPlayer({
        ready: function () {
               audioPlaylist.displayPlaylist();
               audioPlaylist.playlistInit(false);
        },
        swfPath: "js",
        supplied: "m4a, oga",
        cssSelectorAncestor: "#jp_interface"
    }); */


});
