/**
 * Class extending the Swiff class to provide flashVars for FlowPlayer.
 * @param {Object} path
 * @param {Object} options
 */
var FlowPlayerSwiff = new Class({
	Extends: Swiff,
	initialize: function(path, options){
		this.instance = 'Swiff_' + $time();

		this.setOptions(options);
		options = this.options;
		var id = this.id = options.id || this.instance;
		var container = $(options.container);

		Swiff.CallBacks[this.instance] = {};

		var params = options.params, vars = options.vars, callBacks = options.callBacks;
		var properties = $extend({height: options.height, width: options.width}, options.properties);

		var self = this;

		for (var callBack in callBacks){
			Swiff.CallBacks[this.instance][callBack] = (function(option){
				return function(){
					return option.apply(self.object, arguments);
				};
			})(callBacks[callBack]);
			vars[callBack] = 'Swiff.CallBacks.' + this.instance + '.' + callBack;
		}

		// start of extension, removed one line
		params.flashVars = '';
		if (vars.config) {
			params.flashVars += "config={";
			for (var cfg in vars.config) {
				if (cfg == 'videoFile') {
					params.flashVars += "'" + cfg + "':'" + vars.config[cfg] + "',";
				} else {
					params.flashVars += "'" + cfg + "':" + vars.config[cfg] + ",";
				}
			}
			params.flashVars += "}";
		} else {
			params.flashVars = Hash.toQueryString(vars);
		}
		// end of extension
		
		if (Browser.Engine.trident){
			properties.classid = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000';
			params.movie = path;
		} else {
			properties.type = 'application/x-shockwave-flash';
			properties.data = path;
		}
		var build = '<object id="' + id + '"';
		for (var property in properties) build += ' ' + property + '="' + properties[property] + '"';
		build += '>';
		for (var param in params){
			if (params[param]) build += '<param name="' + param + '" value="' + params[param] + '" />';
		}
		build += '</object>';
		this.object =  ((container) ? container.empty() : new Element('div')).set('html', build).firstChild;
	}
});
