var Modal = {
	closeBox: function() {
		$('overlay-bg').unpin();
		$('overlay-bg').hide();
		$('overlay').tween('opacity', 0).get('tween').chain(function() {
			$('overlay-contents').empty();
		});
	},
	
	showBox: function() {
		$('overlay').setStyle('top', window.getScroll().y.toInt() + 20);
		
		$('overlay-bg').show();
		$('overlay-bg').pin();
		//$('overlay').show();
		$('overlay').tween('opacity', 1);
		
		if(Browser.Engine.trident4) {
			fixPNGIE6();
		}
	},
	
	loadAndDisplayUrl: function(url) {
		url = $type(url) == 'element' ? $(url).getProperty('href') : url;
		
		var r = new Request.HTML({
			url: url,
			onComplete: function(responseTree, responseElements, responseHTML, responseJavaScript) {
				$('overlay-contents').set('html', responseHTML);
				Modal.showBox();
			}
		}).get();
	}
};

window.addEvent('domready', function() {
	var thumbs = $$('a.thumb');
	thumbs.each(function(el) {
		el.addEvents({
			'click': function(e) {
				if(e)
					e.stop();
				
				Modal.loadAndDisplayUrl(el);
				return false;
			},
			
			'mouseenter': function(e) {
				var overlay = el.getNext('div.info');
				var dl = overlay.getElement('dl');
				overlay.tween('height', dl.getHeight().toInt());
			},
			
			'mouseleave': function(e) {
				var overlay = el.getNext('div.info');
				overlay.tween('height', 0);
			}
		});
	});
	
	$$('.info').each(function(el) {
		el.setStyle('opacity', 0.9);
		
		el.addEvents({
			'mouseenter': function(e) {
				el.getPrevious('a.thumb').fireEvent('mouseenter');
			},
			
			'mouseleave': function(e) {
				el.getPrevious('a.thumb').fireEvent('mouseleave');
			}
		});
	});
	
	$('overlay').setStyles({'display':'block', 'opacity':0});
	$('overlay-bg').addEvent('click', Modal.closeBox);
	$('overlay-close').addEvent('click', Modal.closeBox);
});