window.addEvent('domready', function(){

	if($$('#introSummary dd') != "") {
		
		amPosition = new Fx.Tween($('introSummary').getElement('dt'),{unit:'em',link:'cancel',transition:'back:out'})
		amColour = new Fx.Tween($('introSummary').getElement('dt img'),{link:'cancel',transition:'back:out'})
		
		$$('#introSummary dd').addEvent('mouseenter', function(){
			var index = $$('#introSummary dd').indexOf(this);
			var colour = '#'+this.get('class').substr(6);
			amPosition.start('margin-top',index*1.928);
			amColour.start('background-color',colour);
		});
		$$('#introSummary dd').addEvent('mouseleave', function(){
			var index = $$('#introSummary dd').indexOf(this);
			amPosition.start('margin-top',0);
			amColour.start('background-color','#689AC7');
		});
		
		amColour.start('background-color','#'+$('introSummary').getElement('dd').get('class').substr(6));

	}
	
	if($('reCaptchaAddress')) {
		// If a spam-harvester is happy to run this much javascript for my address, it can have it!
		var emailAccount = 'nospam';
		var domain = 'andrewmee.com';
		emailAccount = ($defined(emailAccount)) ? 'hello' : 'nospam';
		var cleanAddress = new Element('span',{
			html: 'Email me at <a id="cleanAddress" href="mailto:'+emailAccount+'&#64;'+domain+'"><span>'+emailAccount+'</span>&#64;'+domain+'</a>'
		})
		cleanAddress.replaces($('reCaptchaAddress'));
	}

	if($('snapshots')) {
		$$('#snapshots a').addEvent('click', function(){
			if (!$('snapshot')) {
				new Element('div',{
					id: 'snapshot'
				}).addClass('primary').inject($$('h2')[0],'after');
			} else {
				//@todo fadeout
				$('snapshot').empty()
			}
			($('snapshot').hasClass('loading')) ? false : loadSnapshot(this);
			return false;
		});
	}
});
function loadSnapshot(anchor) {
	$('snapshot').addClass('loading');
	var preload = new Asset.image(anchor.get('href'), {
		onload: function(){
			$('content').set('tween',{
				duration: 1000,
				transition: 'quad:out'
			}).tween('padding-top',(preload.height >= 350) ? preload.height : 350)
			
			$('snapshot').set('morph',{
				duration: 1000,
				transition: 'quad:out',
				onComplete: function(){
					$('snapshot').adopt(
						preload.fade('hide').fade('in'),
						new Element('a',{
							id: 'snapshotClose',
							title: 'Press \'x\' to close Snapshot',
							href: 'javascript:closeSnapshot()',
							html: '<kbd>x</kbd>'
						})
					).removeClass('loading');
					document.addEvent('keydown',function(event){
						var event = new Event(event);
						if(event.key == 'x') {closeSnapshot()}
					});
					if($defined(anchor.getChildren('img')[0].get('title')) && $defined(anchor.getChildren('img')[0].get('alt'))) {$('snapshot').adopt(
						new Element('div',{
							id: 'snapshotDescription',
							html: '<h3>'+anchor.getChildren('img')[0].get('title')+'</h3><p>'+anchor.getChildren('img')[0].get('alt')+'</p>'
						}).fade('hide').set('morph', {
							duration: 1000,
							transition: 'expo:in:out'
						}).morph({
							bottom: [75,9],
							opacity: 0.6
						})
					)}
				}
			}).morph({
				height: preload.height+20,
				'margin-top': -31-preload.height
			})
		}
	});
}

function closeSnapshot() {
	$$('#snapshot *').set('tween',{
		duration:200,
		onComplete: function(){
			$('content').tween('padding-top',350);
			$('snapshot').morph({
				height: 0,
				'margin-top': -11
			});
		}
	}).fade('out');
}