//VimeoBox, Copyright (c) 2009 Iván Rodríguez, <http://epplestun.blogspot.com>, GPL License.
/*
Script: VimeoBox.js
	Ventana modal para previsualizar videos de Vimeo

License:
	CPL license.
*/
var VimeoBox = new Class({
	backgroundOpacity : 0.8,
	
	initialize: function(options){
		this.options = options;		
		this.show();
	},
		
	show: function() {
		var self = this;
		
		var _d 				= $(document.body);
		var _coords 		= _d.getCoordinates();
		var _dimensions 	= _d.getScrollSize();
		
		var _back = new Element('div', {
			styles : {
				'position' : 'absolute',
				'top' : _coords.top,
				'left' : _coords.left,
				'width'  : _dimensions.x,
				'height' : _dimensions.y,
				'background' : '#000',
				'opacity' : this.backgroundOpacity
			}
		});
		
		_d.adopt(_back);
			
		var player = new Swiff('http://vimeo.com/moogaloop.swf', {
			width: self.options.videoInfo.width,
    		height: self.options.videoInfo.height,
    		params: {
				wmode: 'opaque'
			},
    		vars : {
        		clip_id : self.options.videoInfo.clip_id,
				server : self.options.server,
				show_title : self.options.show_title,
				show_byline : self.options.show_byline,
				show_portrait : self.options.show_portrait,
				color : self.options.color,
				fullscreen : self.options.fullscreen
			}
		});
		
		var _left = _d.getPosition().x + ((_coords.width - self.options.videoInfo.width) / 2);
		var _top  = 0;
				
		if(500 > _coords.height) {
			_top = _d.getPosition().y - 50;
		} else {
			_top = _d.getPosition().y + ((_coords.height - self.options.videoInfo.height) / 2);
		}
		
		var _w = new Element('div', {
			styles : {
				'position' : 'absolute',
				'padding' : '5px',
				'top' : _top,
				'left' : _left,
				'width'  : self.options.videoInfo.width,
				'height' : self.options.videoInfo.height,
				'background' : '#fff',
				'opacity' : 1
			}
		});
				
		_w.adopt(player);
								
		var elements = [_back, _w];
				
		_w.addEvent('clickout', function() {
			self.hide.delay(self.options.duration * 0, self, [elements])
		});
				
		_d.adopt(_w);
		//_w.fade('in');
	},
	
	hide : function(elements) {
		var effects = new Fx.Elements(elements, {
			duration : 400, 
			onComplete : function() {
				elements.each(function(el) {
					el.dispose();
				});
			}
		}).start({
			'0': { 'opacity': [this.backgroundOpacity, 0] }, 
			'1': { 'opacity': [this.backgroundOpacity, 0] } 
		});
	}
});
