window.gallery = {
	init: function(link_list) {
		var index        = -1;
		var display_pane = jQuery('#left>.inner-padding');
		var gallery      = jQuery('#gallery');
		var gallery_list = jQuery('#gallery>.gallery');
		var gallery_len  = gallery_list.length;
		var fade_delay   = 1000;

		// hide gallery list by default
		gallery_list.css('display','none');

		// show gallery
		link_list.click(function(){ 
			display_pane.css('display','none');
			index = link_list.index(this);
			gallery.css('display','block');
			gallery_list.eq(index).css('display','block');

			// hide next and previous buttons
			if (gallery_len > 1) {
				jQuery('a.next', gallery).css('opacity', '1').animate({opacity: '0'}, fade_delay, 'swing');
				jQuery('a.previous', gallery).css('opacity', '1').animate({opacity: '0'}, fade_delay, 'swing');
			} else {
				jQuery('a.next', gallery).css('display', 'none');
				jQuery('a.previous', gallery).css('display', 'none');
			}

			return false;
		});

		// hide gallery
		jQuery('a.close', gallery).click(function(){
			gallery.css('display','none');
			gallery_list.css('display','none');

			try {
				gallery_list.find('.flash>object').each(function(){ this.SetVariable("player:jsStop", ""); });
			} catch(err) {}

			display_pane.css('display','block');
			return false;
		});

		// next element
		jQuery('a.next', gallery).click(function(){
			index = index + 1 >= gallery_len ? 0 : index + 1;
			gallery_list.css('display','none').eq(index).css('display','block');

			try {
				gallery_list.find('.flash>object').each(function(){ this.SetVariable("player:jsStop", ""); });
			} catch(err) {}

			return false;
		}).mouseover(function(){
			jQuery(this).animate({opacity: '1'}, fade_delay, 'swing');
		}).mouseout(function(){
			jQuery(this).animate({opacity: '0'}, fade_delay, 'swing');
		});

		// previous element
		jQuery('a.previous', gallery).click(function(){
			index = index - 1 < 0 ? gallery_len - 1 : index - 1;
			gallery_list.css('display','none').eq(index).css('display','block');

			try {
				gallery_list.find('.flash>object').each(function(){ this.SetVariable("player:jsStop", ""); });
			} catch(err) {}

			return false;
		}).mouseover(function(){
			jQuery(this).animate({opacity: '1'}, fade_delay, 'swing');
		}).mouseout(function(){
			jQuery(this).animate({opacity: '0'}, fade_delay, 'swing');
		});
	}
}
