try {
	var playlistReady = playerReady;
} catch (err){}
playerReady = function(obj) {
	setTimeout(function(){checkPlaylistLoaded(obj)}, 1);
	try {
		playlistReady(obj);
	} catch (err){
	}
}
function itemHandler(obj) {
	var item = obj['index'];
	var playlist = $("#playlist ul");
	var currentItem = 0;
	playlist.children().each(function(){
		if (currentItem == item) {
			$(this).addClass("playing");
		} else {
			$(this).removeClass("playing");
		}
		currentItem++;
	});
}
function checkPlaylistLoaded(obj) {
	var player = document.getElementById(obj['id']);
	var jsPlaylist = player.getPlaylist();
	if (jsPlaylist.length > 0) {
		var playlist = createPlaylist(obj);
		populatePlaylist(player, jsPlaylist, playlist);
		player.addControllerListener("PLAYLIST","playlistHandler");
		player.addControllerListener("ITEM","itemHandler");
	} else {
		setTimeout(function(){checkPlaylistLoaded(obj)}, 150);
	}
}
function createPlaylist(){
	return $("<ul></ul>").appendTo("#playlist");
}
function playlistHandler(obj){
	var player = document.getElementById(obj['id']);
	var jsPlaylist = player.getPlaylist();
	var playlist = $("#playlist ul");
	populatePlaylist(player, jsPlaylist, playlist);
}
function populatePlaylist(player, jsPlaylist, playlist){
	playlist.empty();
	for (var i=0;i<jsPlaylist.length;i++) {
		var jsItem = jsPlaylist[i];
		playlist.append("<li><a href=\"javascript:void(0);\" title="+dump(jsItem)+">"+dump(jsItem)+"</a></li>");
	}
	var playlistItem = 0;
	playlist.children().each(function(){
		var currentItem = playlistItem;
		$(this).find("a").click(function () {
			player.sendEvent("ITEM", currentItem);
		});
		playlistItem++;
	});
}
function dump(arr) {
	var output = "${title}";
	var variables = getVars(output);
	for (var j=0; j<variables.length; j++) {
		var variable = variables[j];
		var varName = variable.replace('${','').replace('}','');
		var value = arr[varName];
		if (!value) {
			value = '';
		}
		output = output.replace(variable, value);
	}
	return output;
}
function getVars(str){
	return str.match(/\$\{(.*?)\}/g);
}
