var application = {
	initExpandableLists: function(){
		var lists = $$('dl.expandable');
		
		lists.each(function(list){
			var terms = list.select('dt'),
				definitions = list.select('dd'),
				closeLink;
				
			terms.each(function(term, i){
				term.observe('click', function(event){
					event.stop();
					
					definitions[i].toggle();
				});
			});
			
			definitions.each(function(definition, i){
				definition.hide();
				
				closeLink = Builder.node('p', [
					Builder.node('a', {
						className: 'close',
						href: '#'
					})
				]);
				
				definition.insert({ bottom: closeLink })
				
				definition.observe('click', function(event){
					event.stop();
					
					definitions[i].toggle();
				});
			});
		});
	},
	
	initImageBorders: function(toColor, fromColor){
		var imageLinks = $$('.image a img, .thumb a img');
		
		imageLinks.each(function(link){
			link.observe('mouseover', function(event){
				link.morph('border-color: ' + toColor, { duration: 0.5 });
			});
			
			link.observe('mouseout', function(event){
				link.morph('border-color: ' + fromColor, { duration: 0.5 })
			});
		});
	},
	
	initHeaderAnimations: function(animateHeader){
		var title = $('headerTitle'),
			subTitle = $('headerSubTitle');
		
		if (animateHeader == true){
			subTitle.setOpacity(0);
		
			new Effect.Move(title, { x: 14, y: 12, mode: 'absolute', duration: 1,
				afterFinish: function(){
					new Effect.Opacity(subTitle, { from: 0, to: 1 });
				} 
			});
		} else {
			title.setStyle({ top: '12px' });
		}
	}
}

document.observe('dom:loaded', function() {
	application.initExpandableLists();
	application.initImageBorders('#dd3b2e', '#cccccc');
	application.initHeaderAnimations(animateHeader);
});