var Mediabox = new Class({
	initialize: function(link) {
		this.link = link;
		link.onclick = this.click.bindWithEvent(this);
        window.addEvent('unload', function() { this.link = null; }.bind(this) );
	},
	click: function() {
		overlay = newDiv('mediaboxOverlay');
		overlay.setStyle('height', window.getScrollHeight()+'px');
		overlay.onclick = this.close.bindWithEvent(this);
		overlay.injectInside(document.body);
		
		mediabox = newDiv('mediabox');
		mediabox.setStyle('top', parseInt(window.getScrollTop()) + 40 + 'px');
		
		outerMediaContainer = newDiv('outerMediaContainer');
		if (this.link.getProperty('media_width')) {
			width = parseInt(this.link.getProperty('media_width'));
			height = parseInt(this.link.getProperty('media_height'));
		} else {
			match = this.link.href.match(/size=(\d+)x(\d+)/);
			width = parseInt(match[1]);
			height = parseInt(match[2]);
		}
		
		isMovie = /\.mov/i.test(this.link.href);
		
		width += 4;
		if (isMovie)
			height += 18;
		else
			height += 2;
			
		outerMediaContainer.setStyles({width: width + 'px', height: height + 'px'}).injectInside(mediabox);
		
		mediaContainer = newDiv('mediaContainer');
		mediaContainer.injectInside(outerMediaContainer);
		
		mediaContent = newDiv('mediaContent');
		
		if (isMovie) {
			movieHTML = '<embed name="mediaboxMedia" enablejavascript="true" pluginspage="http://www.apple.com/quicktime/download" ';
			movieHTML += 'width="' + width + '" height="' + height + '" type="video/quicktime" ';
			movieHTML += 'src="' + this.link.href + '" />';
			mediaContent.innerHTML = movieHTML;
		} else
			mediaContent.innerHTML = "<img src=\"" + this.link.href + "\" />";
		
		mediaContent.injectInside(mediaContainer);
		
		mediaDataContainer = newDiv('mediaDataContainer');
		mediaDataContainer.addClass('clearfix').setStyle('width', width + 'px');
		mediaDataContainer.injectInside(mediabox);
		
		mediaData = newDiv('mediaData');
		mediaData.injectInside(mediaDataContainer);
		
		mediaDetails = newDiv('mediaDetails');
		mediaDetails.injectInside(mediaDataContainer);
		
		caption = new Element('span');
		caption.id = 'caption';
		caption.setHTML(this.link.title);
		caption.injectInside(mediaDetails);
		
		bottomNav = newDiv('bottomNav');
		bottomNav.injectInside(mediaData);
		
		bottomNavClose = new Element('a');
		bottomNavClose.id = 'bottomNavClose';
		bottomNavClose.href='#';
		bottomNavClose.onclick = this.close.bindWithEvent(this);
		bottomNavClose.injectInside(bottomNav);
		
		mediabox.injectInside(document.body);
		
		$ES( '.flash_block' ).each(function(element) { element.hide(); } );
 		return false;
	},
	close: function() {
		if (document.mediaboxMedia)
			document.mediaboxMedia.Stop();
		$ES( '.flash_block' ).each(function(element) { element.show(); } );
		$('mediaContent').hide(); // Hack for IE
		$('mediaboxOverlay').remove();
		$('mediabox').remove();
		return false;
	}
});

window.onDomReady(function(){
	$ES( '.mediabox_link' ).each(function(link) { new Mediabox(link); });
});

