/* jqIzeYoutubePlaylist - (c) 2010 Emil Müller http://ize.webhop.net/home/jquery-plugins/jqizeyoutubeplayer Released under the GPL License http://www.gnu.org/licenses/gpl-3.0.txt requires: - jQuery 1.4.x */ (function ($) { $.fn.IzeYoutubePlaylist = function (settings) { var currentItem = null; var config = { width: 260, height: 'auto', playlistID: '37646B34DB2C47DB', maxResults: 50, //50 is max onPlaylistLoaded: function () { }, onItemClick: function () { } }; if (settings) $.extend(config, settings); init = function (el) { setupMainContainer(el); loadPlaylist(el, 1); } setupMainContainer = function (el) { $(el).css({ width: config.width, height: config.height, position: 'relative' }); } loadPlaylist = function (el, startindex) { //load youtube playlist in json format //eg. http://gdata.youtube.com/feeds/api/playlists/021B87CCA16D5E96?v=2&max-results=50&alt=json //clear current playlist $(el).empty(); //pass format=5 to retrieve only videos that may be embedded $.getJSON('http://gdata.youtube.com/feeds/api/playlists/' + config.playlistID + '?v=2&format=5&start-index=' + startindex + '&max-results=' + config.maxResults + '&alt=json-in-script&callback=?', function (data) { //populate playlist var playlist = $("
").attr("id", "playlist").attr("start", startindex).attr("results", data.feed.openSearch$totalResults.$t); for (var i = 0; i < data.feed.entry.length; i++) { var entry = $("").addClass("item"); entry.attr("url", data.feed.entry[i].media$group.media$content[0].url) .attr("videoid", data.feed.entry[i].media$group.yt$videoid.$t) .attr("index", i) .click(function () { doItemClick($(this)); }); if (i == 0) entry.attr("first", "true"); if (i == data.feed.entry.length - 1) entry.attr("last", "true"); var title = $('').addClass("title").text(data.feed.entry[i].title.$t); var description = $('').addClass("description").text(data.feed.entry[i].media$group.media$description.$t); var thumbnail = $('').addClass("thumbnail").css({ width: '120px', height: '70px', background: "url('" + data.feed.entry[i].media$group.media$thumbnail[0].url + "') no-repeat center center" }); var duration = $('').addClass("duration").text(secondsToString(data.feed.entry[i].media$group.yt$duration.seconds)); entry.append(thumbnail); entry.append(title); entry.append(description); entry.append(duration); playlist.append(entry); } var playlistNavigation = $("