var clicked_this;

window.addEvent('domready', function(){

		$$('.gallery .gallery-item a').addEvent('click', function(e){
			// init
			e.stop();
			e.stopPropagation();
			
			var loc = this.get('href');
		
			clicked_this = this;
		
			// elements setup
			var viewer = new Element('div', {id: 'viewer'});
			var viewport = new Element('div', {id: 'viewport'});
			var nimg = new Element('img', {src: loc, id: 'shown-img'});
			var close = new Element('a', {id: 'img-close'});
			var shadow = new Element('div', {id: 'img-shadow'});
			
			var nxt = new Element('a', {id: 'next-btn'});
			var prv = new Element('a', {id: 'prev-btn'});
			
		
			// elements adopt
			$$('body').adopt(viewer);
			$('viewer').adopt(shadow);
			$('img-shadow').adopt(viewport);
			$('viewport').adopt(nimg);
			fix_ie();
			$('viewport').adopt(close);
			$('viewport').adopt(nxt);
			$('viewport').adopt(prv);
		
			$('viewer').set('opacity', 0);
			$('viewer').fade('in');
			
			$('viewer').addEvent('click', function(){
				close_wndw();
			});
			
			$('img-close').addEvent('click', function(){
				e.stop();
				close_wndw();
			});
			
			$('next-btn').addEvent('click', function(e){
				e.stop();
				get_next(clicked_this, e);
			});
			
			$('prev-btn').addEvent('click', function(e){
				e.stop();
				get_prev(clicked_this, e);
			});
			
			get_copy(clicked_this);
		
			return false;	
		});
	//}
});

function close_wndw(){
	$('viewer').fade('out');
	var timeout = disposer.delay(500);
	
	function disposer(){
		$('viewer').dispose();
	}
};

function get_next(el, e){
	$('shown-img').setStyles({'width':'auto','height':'auto'});
	var p = $(el.parentNode.parentNode);
	var n;
	if(p.getNext('dl') != null){
		n = p.getNext('dl');
	} else {
		n = $(el.parentNode.parentNode.parentNode).getFirst('dl');
	}
	clicked_this = n.getElement('a');
	e.stop();
	var h = n.getElement('a').get('href');
	$('shown-img').set('src', h);
	$('shown-img').addEvent('load', function() { fix_ie(); });
	get_copy(n);
}

function get_prev(el, e){
	$('shown-img').setStyles({'width':'auto','height':'auto'});
	var p = $(el.parentNode.parentNode);
	var n;
	if(p.getPrevious('dl') != null){
		n = p.getPrevious('dl');
	} else {
		n = $(el.parentNode.parentNode.parentNode).getLast('dl');
	}
	clicked_this = n.getElement('a');
	e.stop();
	var h = n.getElement('a').get('href');
	$('shown-img').set('src', h);
	$('shown-img').addEvent('load', function() { fix_ie(); });
	get_copy(n);
}

window.addEvent('keydown', function(e){
	if($('viewer')){
		if(e.key == "esc" || e.key == 'c') close_wndw();
	}
});

function get_copy(el){
	var p = el.getElement('img').get('alt');
	if(!$('copyright')){
		if(p != null){
			var pt = new Element('p', {id: 'copyright', text: p});
			$('viewport').adopt(pt);
		}
	} else if($('copyright')){
		if(p != null){
			$('copyright').set('text', p);
		} else {
			$('copyright').dispose();
		}
	}
}

function fix_ie() {
	if(Browser.Engine.trident){
		var im = $('shown-img');
		if(im.getStyle('width').toInt() > 800) {
			im.style.width = '800px';
		} else if(im.getStyle('height').toInt() > 500) {
			im.style.height = '700px';
		}
		$('img-shadow').setStyle('width', im.getStyle('width'));	
	}
	
}
