var playerOptions = {};
var playerPlaylists = {};
var playerInitialized = {};

function playerReady(obj) {
	var id = obj.id;
	
	if (!playerInitialized[id]) {
		playerInitialized[id] = true;
		
		var _this = $('#'+id);
		var player = _this.get(0);
		
		var playlist = playerPlaylists[id];
		var options = playerOptions[id];
		
		if (playlist.length > 1) {
			var list = $('<ul>').addClass('playerPlaylist');
			$.each(playlist, function(i, e) {
				var item = $('<li>');
				var nr = i+1;
				item.text(nr+'. '+(e.title?e.title:options.type.toUpperCase()+' '+nr));
				item.click(function(e) {
					e.preventDefault();
					player.sendEvent('ITEM', i);
				});
				list.append(item);
			});
			_this.closest('div.player').append(list);
			player.addControllerListener('ITEM','playerItemEvent');
		}
	
		playerLoadPlaylist(player, playlist);
	}
}

function playerLoadPlaylist(player, playlist) {
	if((typeof player.getPlaylist() !== null) && (typeof player.getPlaylist() !== 'undefined')) {
		player.sendEvent('LOAD', playlist);
	} else {
		setTimeout(function() {
			playerLoadPlaylist(player, playlist);
		}, 100);
	}
}

function playerItemEvent(obj) {
	var id = obj.id;
	var _this = $('#'+id);
	
	var current = obj.index;
	$('#'+id).closest('div.player').find('ul.playerPlaylist > li').each(function(index, item) {
		var _this = $(this);
		if (index == current) {
			_this.addClass('active');
		} else {
			_this.removeClass('active');
		}
	});
}

function player(id, playlist, options) {
	var settings = {
		skin: null,
		fullscreen: false,
		type: '',
		width: 400,
		height: 300
	};
	
	if (options) {
		$.extend(settings, options);
	}
	
	playerOptions[id] = settings;
	playerPlaylists[id] = playlist;
	
	var flashvars = {
		file: 'placeholder.flv',
		volume: 100,
		dock: false,
		repeat: 'list',
		fullscreen: settings.fullscreen,
		displaytitle: true,
		playerready: 'playerReady',
		screencolor: '#000000',
		id: id
	};
	
	if (settings.skin) {
		flashvars.skin = settings.skin;
	};
	
	var params = {
		allowScriptAccess: 'always',
		allowFullscreen: settings.fullscreen
	};
	
	var attributes = {
		id: id,
		style: 'display: block'
	};
	
	swfobject.embedSWF('swf/player-licensed.swf', id, settings.width, settings.height, '10.0.0', 'swf/expressInstall.swf', flashvars, params, attributes);
}

