var application = {
	initNavigation: function(options) {
		var navigationItems = $$('#headerNavigation li a');
		
		navigationItems.each(function(item){
			var overlay = Builder.node('span', { className: 'overlay' }),
				overEffect, outEffect;
			
			item.insert({ bottom: overlay });
			
			$(overlay).setOpacity(0);
			
			item.observe('mouseover', function(event){
				overEffect = new Effect.Opacity(overlay, { to: 1, from: 0, duration: 0.5, beforeStart: function(){ if(outEffect) outEffect.cancel(); } });
			});
			
			item.observe('mouseout', function(event){
				outEffect = new Effect.Opacity(overlay, { to: 0, from: 1, duration: 0.5, beforeStart: function(){ if(overEffect) overEffect.cancel(); } });
			});
		});
	},
	
	initSubNavigation: function(options) {
		var navItems = $$('.sidebar .navigation li');
		var overEffect, outEffect;
		
		navItems.each(function(item){	
			item.observe('mouseover', function(){
				overEffect = new Effect.Scale(this, 90, { scaleY: false, duration: 0.1, queue: 'cancel' });
			});
			
			item.observe('mouseout', function(){
				outEffect = new Effect.Scale(this, 110, { scaleY: false, duration: 0.1, queue: 'cancel', afterFinish: function() { item.setStyle({ width: '214px' }); } });
			});
		});
	},
	
	initSlideshow: function(options) {
		var slideshows = $$('.slideshow');
		
		slideshows.each(function(slideshow){
			var image = slideshow.down('.image'), thumbs = slideshow.select('.thumb a');
			
			thumbImages = new Array();
			
			thumbs.each(function(thumb, index){
				thumbImages[index] = Builder.node('img', { src: thumb.readAttribute('href') });
				
				thumb.observe('click', function(event){
					event.stop();
					
					new Effect.Opacity(image, { to: 0, from: 1, duration: 0.25, afterFinish: function() { 
							new Effect.Opacity(image, { to: 1, from: 0, duration: 0.5, beforeStart: function() {
									image.down('img').replace(thumbImages[index]);
								} 
							});
						} 
					});
				});
			});
		});
	}
}

document.observe('dom:loaded', function() {
	application.initNavigation();
	application.initSubNavigation();
	application.initSlideshow();
});