var gal_active = 'gal1';
var gal_behind = 'gal2';
var gal_index  = 0;
var gal_image;

// gallery_images and gal_old_cat are set by the homepage.

function gallery_cycle() {
	gal_index++;
	if (gal_index >= gallery_images.length) {
		gal_index = 0;
	}

	image = gallery_images[gal_index];
	gal_image = image;

	$(gal_behind + 'ibox').innerHTML =
		'<img id="' + gal_behind + 'img" />';
	$(gal_behind + 'img').src   = image.image;
        $(gal_behind + 'img').style.paddingTop = '3px';
	$(gal_behind + 'link').href = '#';
	$(gal_behind + 'com').innerHTML  = image.com_name;
	$(gal_behind + 'sci').innerHTML  = image.sci_name;
	$(gal_behind + 'copy').innerHTML = '&copy; ' + image.copyright;

  	gallery_appear.delay(5);
}

function gallery_appear() {
	if (advancedShowing) {
		gallery_appear.delay(2);
		return;
	}

	img = $(gal_behind + 'img');
	if (!img.complete) {
		gallery_appear.delay(1);
		return;
	}

	$('gal_bord_link').href = '#';

	swap = gal_active;
	gal_active = gal_behind;
	gal_behind = swap;

	new_cat = gal_image.category.toLowerCase();
	if (gal_old_cat == new_cat) {
		new Effect.Opacity('gal-' + gal_old_cat,
			{from: 1.0, to: 0.25, duration: 1.5});
		gallery_scale_reappear.delay(1.5);
	} else {
		$('gal-' + gal_old_cat).fade({duration: 2.0});
		gallery_scale_appear.delay(1);
	}
	gal_old_cat = new_cat;

	$(gal_active + 'box').appear({duration: 3.0});

	gallery_ready.delay(3);
}

function gallery_scale_appear() {
	cat = gal_image.category.toLowerCase();
	$('gal-' + cat).appear({duration: 2.0});
}

function gallery_scale_reappear() {
	cat = gal_image.category.toLowerCase();
	new Effect.Opacity('gal-' + cat, {from: 0.25, to: 1.0, duration: 1.5});
}

function gallery_ready() {
	$(gal_active + 'link').href = $('gal_bord_link').href = gal_image.link;

	a_style = $(gal_active + 'box').style;
	b_style = $(gal_behind + 'box').style;

	b_style.display = 'none';
	b_style.zIndex = 2;
	a_style.zIndex = 1;

	gallery_cycle();
}

function gallery_start() {
	if (!$('gal1img').complete) {
		gallery_start.delay(1);
	} else {
		gallery_cycle();
	}
}
