var ldr = '';
var image_indx = 0;
var image_list = new Array();
var image_is_loading = false;

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(); });
	});
	
	if($$('div.thumbs').toArray().length > 0) {
		Event.observe($$('div.thumbs')[0], 'click', function(event) {
			elt = Event.element(event);
			
			if(elt.nodeName.toLowerCase() == 'img') {
				event.stop();
				change_image(elt.getAttribute('iid'));
				Effect.ScrollTo( $$('div.gallery')[0], 1000, { axis: 'x', queue: 'end' } );
			}
		});
		
		image_list 	= $$('div.thumbs img');
	} else {
		image_list = new Array();
	}
});

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();
} 

function change_image(iid) {
	if(image_is_loading)
		return false;
	image_is_loading = true;
	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;
		*/
		
		if(!$('imgtxt')) {
			p_desc = new Element('div', { 'id' : 'imgtxt' });
			$('adjuster').appendChild(p_desc);
		}
		
		$('imgtxt').innerHTML 		= img_txt == '' ? '&nbsp;' : img_txt;
		
		//alert(main_cnt.inspect());
		
		main_cnt.getElementsBySelector('a.enlarge')[0].href 	= img_src;		
		
		//new_img = new Element('img', { 'src': img_src, 'title': img_ttl, 'style': 'display: none;' });
		new_img = new Element('img', { 'title': img_ttl, 'style': 'display: none;' });

		img_href = img_cnt.getElementsBySelector('a')[0];

		img_href.href = img_src;
		img_href.insert({ top: new_img });
		
		//alert('Source: '+img_src);
		
		Event.observe(new_img, 'load', function(event) {
			//alert('Load Fired');
			elt = Event.element(event);
			
			// remove the old image
			img_cnt.getElementsBySelector('img')[1].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.8,
			  queue: 'end'
			});
			image_is_loading = false;
		});

		new_img.src = img_src;
	}
	
	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
	});
}
