document.loaded(function() {
	new DesignMuseum();
	new CustomScroller();
});

var DesignMuseum = Class.create();
DesignMuseum.prototype = {
	initialize: function() {
		$(document.body).addClassName('javascript');
		
		$('circle-content').childElements('li').each(function(element) {
			element.hide();
		});
		
		document.getElementsByClassName('rollover-link').each(function(element) {
			Event.observe(element, 'click', this.toggleOverlay.bindAsEventListener(this));
		}.bind(this));
		
		document.getElementsByClassName('close-link').each(function(element) {
			Event.observe(element, 'click', this.closeOverlay.bindAsEventListener(this));
		}.bind(this));	
	},
	
	toggleOverlay: function(e) {
		document.getElementsByClassName('overlay-showing').each(function(element) {
			element.hide();
		});
		
		if(document.getElementsByClassName('vdm-content').length > 0) {
			var container = document.getElementsByClassName('vdm-content')[0];
			$A(container.getElementsByClassName('active')).each(function(e) {
				e.removeClassName('active');
			});	
		}	
	
		var eventElement = Event.element(e);
		if(typeof(eventElement.href) == 'undefined') {
			eventElement = eventElement.up('a');
		}
		
		var linkHref = new String(eventElement.href);
		var hashLink = linkHref.substring(linkHref.indexOf('#')+1);
		
		$(hashLink).addClassName(hashLink);
		$(hashLink).addClassName('overlay-showing');
		eventElement.addClassName('active');
		$(hashLink).show();
		
		Event.stop(e);
	},
	
	closeOverlay: function(e) {
		Event.element(e).up('li').hide();
		
		if(document.getElementsByClassName('vdm-content').length > 0) {
			var container = document.getElementsByClassName('vdm-content')[0];
			$A(container.getElementsByClassName('active')).each(function(e) {
				e.removeClassName('active');
			});	
		}	
		
		Event.stop(e);
	}
}



var CustomScroller = Class.create();
CustomScroller.prototype = {
	initialize: function() {
		if ($('exhibitions-content-outer')) {		
			new Control.Slider('slider', 'track', {
				axis: 'vertical',
				onSlide: this.moveSlider.bind(this),
				onChange: this.moveSlider.bind(this)
			});	
		}
	},
	
	moveSlider: function(value) {	  
	  	var offset = ($('exhibitions-content').getHeight() - $('exhibitions-content-outer').getHeight()) * value;
	  	$('exhibitions-content').setStyle({
	  		top: '-' + offset + 'px'
	  	});
	}
}
