window.addEvent('domready', function(){
	
	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.init()
	}
});

snapShots = {
  init: function(){
		$$('#snapshots a').addEvent('click', function(){
			if (!$('snapshot')) {
				new Element('div',{id: 'snapshot'}).inject($('preview'));
			} else {
				//@todo fadeout
				$('snapshot').empty()
			}
			($('snapshot').hasClass('loading')) ? false : snapShots.load(this);
			return false;
		});
  },
  load: function(anchor){
  	$('snapshot').addClass('loading');
  	var preload = new Asset.image(anchor.get('href'), {
  		onload: function(){
  		  // Don't show the image yet
  		  preload.fade('hide')
  		  
        // Enlarge preview pane content area to accommodate image (if necessary)
  			$('preview').set('tween',{
  				duration: 1000,
  				transition: 'quad:out'
  			}).tween('padding-top',(preload.height >= 350) ? preload.height + 40 : 350)

        // Open up the snapshot area
  			$('snapshot').set('morph',{
  				duration: 1000,
  				transition: 'quad:out',
  				onComplete: function(){
  					$('snapshot').adopt(
  						preload.fade('in'),
  						new Element('a',{
  							id: 'snapshotClose',
  							title: 'Press \'x\' to close Snapshot',
  							href: 'javascript:snapShots.close()',
  							html: '<kbd>x</kbd>'
  						})
  					).removeClass('loading');
  					document.addEvent('keydown',function(event){
  						var event = new Event(event);
  						if(event.key == 'x') {snapShots.close()}
  					});
  					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
  			})
  		}
  	});
  },
  close: function(){
    $$('#snapshot *').set('tween',{
  		duration:200,
  		onComplete: function(){
  			$('preview').tween('padding-top',350);
  			$('snapshot').set('tween',{
  				duration: 1000,
  				transition: 'quad:out'
  			}).tween('height',0);
  		}
  	}).fade('out');
  }
}