
SqueezeBox.extend({
	fromParams: function(options) {
		this.initialize();
		//if (this.element) this.trash();
		//this.element = $(from);
		this.setOptions($merge(this.presets, options || {}));
		this.assignOptions();
		var handler = this.options.handler;
		this.url = (this.options.url)?this.options.url:this.url;
		//alert(handler);
		if (handler) return this.setContent(handler, this.parsers[handler].call(this, true));;
		var ret = false;
		this.parsers.some(function(parser, key) {
			var content = parser.call(this);
			if (content) {
				ret = this.setContent(key, content);
				return true;
			}
			//alert(parser + ' ' + key);
			return true;
		}, this);
		return ret;
	}
});
SqueezeBox.extend({
	toggleOverlay: function(state) {
		var full = this.doc.getSize().x;
		this.overlay.setStyle('display', (state) ? '' : 'none');
		//this.doc.body[(state) ? 'addClass' : 'removeClass']('body-overlayed');
		if (state) {
			this.scrollOffset = this.doc.getWindow().getSize().x - full;
			this.doc.body.setStyle('margin-right', this.scrollOffset);
		} else {
			this.doc.body.setStyle('margin-right', '');
		}
	}}
);

SqueezeBox.parsers.extend({
	div: function(preset) {
		return preset;
	}
});

SqueezeBox.handlers.extend({
	div: function(id) {
		this.asset = new Element('div', $merge({
			width: this.options.size.x,
			height: this.options.size.y
		}, this.options.divOptions));
		this.options.div_cont.inject(this.asset);
		//this.asset.setStyle('overflow-x', 'hidden');
		//this.asset.setStyle('overflow-y', 'auto');
		return this.asset;
	}
});

/* ONLY FLASH box*/
SqueezeBox.parsers.extend({
	swf_obj: function(preset) {		
		return preset;
	}
});

SqueezeBox.handlers.extend({	
	swf_obj: function(id) {			
		this.asset = new Element('div', $merge({						
			width: this.options.size.x,
			height: this.options.size.y
		}, this.options.assetOptions));								
		var swf_obj = new Swiff(this.options.swf_src, {
			id: this.options.swf_id,
				width: this.options.swf_size.x,
				height: this.options.swf_size.y,
				container:this.asset,
				params: this.options.swf_params,
				vars: this.options.swf_vars,
				callBacks: {
					load: this.options.swf_backCalls
				},
				properties: this.options.swf_attr
			});
		//$(swf_obj).inject(this.asset);			
		return this.asset;
	}
});