image_indx = 0;
image_list = new Array();

Event.observe(window, 'load', function(event) {

	$$('div.controls a.previous').each(function(elt) {
		Event.observe(elt, 'click', function(event) { event.stop(); previous_image(); });
	});
	
	$$('div.controls a.next').each(function(elt) {
		Event.observe(elt, 'click', function(event) { event.stop(); next_image(); });
	});	
	
	Event.observe($$('div.thumbs')[0], 'click', function(event) {
		elt = Event.element(event);
		
		if(elt.nodeName.toLowerCase() == 'img') {
			event.stop();
			change_image(elt.getAttribute('iid'), true);			
		}
	});
	
	image_list 	= $$('div.thumbs img');
});

function next_image() {

	image_indx++;
	
	image_indx = image_indx % image_list.length;
	
	change_image();
}

function previous_image() {
	image_indx--;
	
	if(image_indx < 0)
		image_indx = image_list.length - 1;
		
	change_image();
} 

changing_image = false;
function change_image(iid, do_scroll) {
	f = function(o) {
		xmlDoc = create_xml_doc(o.responseText);
		
		img_ttl = getText(xmlDoc, 'imgtitle');
		img_txt = getText(xmlDoc, 'imgtext');
		img_src = getText(xmlDoc, 'imgfilename');		
		
		main_cnt.getElementsBySelector('h4')[0].innerHTML 		= img_ttl;
		
		if(!main_cnt.getElementsBySelector('p').length) {
			p_desc = new Element('p');	
			$('adjuster').appendChild(p_desc);
		}
		
		main_cnt.getElementsBySelector('p')[0].innerHTML 		= img_txt;		
		main_cnt.getElementsBySelector('a.enlarge')[0].href 	= img_src;		
		
		new_img = new Element('img', { 'title': img_ttl, 'style': 'display: none;' });		

		img_href = img_cnt.getElementsBySelector('a')[0];
				
		img_href.insert({ top: new_img });
		img_href.href = img_src;
		
		Event.observe(new_img, 'load', function(event) { 		
			elt = Event.element(event);
			
			// remove the old image(s)
			dead_imgs = img_cnt.getElementsBySelector('img');
			
			for(x = 1; x < dead_imgs.length; x++)
				dead_imgs[x].remove();
			
			// show the new image
			elt.show();
			
			// remove the loader
			ldr.remove(); 
			
			new Effect.Morph('description', {
			  style: 'height: ' + parseInt($('adjuster').getStyle('height')) + 'px',
			  duration: 0.6,
			  queue: 'end',
			  afterFinish: function() { changing_image = false; }
			});
		});
		
		new_img.setAttribute('src', img_src);		
	}
	
	if(changing_image) {
		mini_alert('Sorry!  Your last image is still loading...');
		return false;
	}
		
	changing_image = true;		
	
	if(do_scroll)
		Effect.ScrollTo( $$('div.gallery')[0], 1000, { axis: 'x', queue: 'end' } );
	
	img_id 		= !iid ? image_list[image_indx].getAttribute('iid') : iid;	
	
	main_cnt 	= $$('div.primary_image')[0];
	img_cnt		= main_cnt.getElementsBySelector('div.image')[0];	
	
	ldr 		= loader(img_cnt, loading_image, '');
	
	$('description').setStyle({ height: parseInt($('description').getStyle('height')) + 'px' });
	
	new Ajax.Request(index_file, {  
		method: 'post', 
		postBody: 'action=xml_image&img_id=' + img_id,
		onSuccess: f
	});	
}

function mini_alert(msg) {
	alrt = $('mn_alrt');
	
	if(!alrt) {
		alrt = new Element('div', { id: 'mn_alrt' });
		document.body.appendChild(alrt);
	}
	
	alrt.show();
	
	alrt.update(msg);
	
	center_box(alrt, true);
	
	setTimeout(function() { $('mn_alrt').hide(); }, 2000);
}
