var photo_active = 0;
var photo_loading = false;
var photo_max = 15;
var photo_page;
var photos = new Array();

function photo_advance(reverse)
{
	if (!photo_loading)
	{
		if (reverse)
		{
			if (0 == photo_active)
			{
				var index = photos.length - 1;
			}
			else
			{
				var index = photo_active - 1;
			}
		}
		else
		{
			if (photos.length - 1 == photo_active)
			{
				var index = 0;
			}
			else
			{
				var index = photo_active + 1;
			}
		}
		
		photo_load(index);
		
		return true;
	}
	
	return false;
}

function photo_load(index)
{
	index = parseInt(index);
	
	if (!photo_loading)
	{
		photo_loading = true;
		
		if (Math.floor(index / photo_max) !== photo_page)
		{
			photo_thumbnails_load(Math.floor(index / photo_max));
		}
		
		var image = document.getElementById('gallery').getElementsByTagName('img')[0];
		
		image.style.display = 'none';
		
		image.onload = function ()
		{
			this.style.display = '';
			
			document.getElementById('gallery').getElementsByTagName('p')[0].innerHTML = (null == photos[index].Photos.caption ? '' : photos[index].Photos.caption);
			
			if (document.getElementById('thumb' + photo_active))
			{
				document.getElementById('thumb' + photo_active).className = '';
			}
			if (document.getElementById('thumb' + index))
			{
				document.getElementById('thumb' + index).className = 'selected';
			}
			
			var input = document.getElementById('pager').getElementsByTagName('input');
			
			input[0].style.display = (0 < index ? '' : 'none');
			input[1].style.display = (photos.length > index + 1 ? '' : 'none');
			
			photo_active = index;
			photo_loading = false;
		};
		
		image.alt = photos[index].Photos.title;
		image.src = '';
		image.src = photos[index].Photos.photo.link;
		
		return true;
	}
	
	return false;
}

function photo_thumbnails_advance(reverse)
{
	if (reverse)
	{
		if (0 == photo_page)
		{
			var page = Math.floor((photos.length - 1) / photo_max);
		}
		else
		{
			var page = photo_page - 1;
		}
	}
	else
	{
		if (photos.length <= (photo_page + 1) * photo_max)
		{
			var page = 0;
		}
		else
		{
			var page = photo_page + 1;
		}
	}
	
	photo_thumbnails_load(page);
}

function photo_thumbnails_load(page)
{
	page = parseInt(page);
	
	var li = document.getElementById('thumbnails').getElementsByTagName('li');
	
	var start = page * photo_max;
	var count = (photo_max < photos.length - start ? photo_max : photos.length - start);
	
	for (var index = 0; li.length > index; ++index)
	{
		var a = li[index].getElementsByTagName('a')[0];
		
		a.style.display = 'none';
		a.id = 'thumb' + (start + index);
		
		if (photo_active == start + index)
		{
			a.className = 'selected';
		}
		else
		{
			a.className = '';
		}
		
		if (index < count)
		{
			var img = li[index].getElementsByTagName('img')[0];
			
			img.src = '';
			img.src = photos[start + index].Photos.photo.thumbnails[0].link;
			img.alt = photos[start + index].Photos.title;
		}
	}
	
	var li = document.getElementById('controls').getElementsByTagName('li');
	
	li[0].innerHTML = 'Photos ' + (start + 1) + '-' + (start + count) + ' of ' + photos.length;
	li[1].style.display = li[2].style.display = (0 < page ? '' : 'none');
	li[3].style.display = li[4].style.display = (photos.length > (page + 1) * photo_max ? '' : 'none');
	
	photo_page = page;
}
