MochiKit.Base._deps('Flowplayer', ['Base', 'DOM', 'Iter']);

if (typeof flashembed != 'function')
{
	throw 'MochiKit flowplayer depends on flashembed.js (http://flowplayer.org/player/flash-embed.html)';
}

Flowplayer = {
	baseOptions: {
		src: '/flowplayer/FlowPlayerDark.swf',
		width: 400,
		height: 300,
		bgcolor: '#000000',
		id: 'player'
	},

	replace: function(el, flash_options, user_options) {
		flashembed(el, flash_options, user_options);
	},

	replaceByClass: function(klass, options) {
		var flash_options = MochiKit.Base.merge(Flowplayer.baseOptions, options);

		var els = MochiKit.DOM.getElementsByTagAndClassName(null, klass);
		if (els)
		{
			MochiKit.Iter.forEach(els, function(el){ Flowplayer.replace(el, flash_options, Flowplayer.getOpts(el)); });
		}
	},

	replaceElement: function(el, options) {
		var flash_options = MochiKit.Base.merge(Flowplayer.baseOptions, options);

		Flowplayer.replace(el, flash_options, Flowplayer.getOpts(el));
	},

	replaceExternalElement: function(el, options, source) {
		var flash_options = MochiKit.Base.merge(Flowplayer.baseOptions, options);

		Flowplayer.replace(el, flash_options, Flowplayer.getOpts(source));
	},

	getOpts: function(el) {
		var options = {
			config: {
				initialScale: 'orig',
				useNativeFullScreen: true,
				autoPlay: false,
				autoRewind: true,
				loop: false,
				autoBuffering: false,
				// menuItems: [true, true, true, true, false, false, false],
				showFullScreenButton: false,
				controlsOverVideo: 'ease',
				showMenu: false
			}};

		var anchor = MochiKit.DOM.getFirstElementByTagAndClassName('a', null, el);
		anchor = anchor.getAttribute('href');
		// options.config.playList = [{url: anchor.replace('.flv', '.jpg'), type: 'jpg', overlayId: 'play'}, {url: anchor}];
		options.config.playList = new Array();
		if (anchor.search('.flv') != -1)
		{
			options.config.playList.push({url: anchor.replace('.flv', '.jpg'), type: 'jpg', overlayId: 'play'});
		}

		options.config.playList.push({url: anchor});

		return options;
	}
};
