var imagesArray = new Array();
var thumbnailsArray = new Array();
var pos = 0;
var increment = 3;
var delay = 10;
var timer = 0;
var ajax = null;
var currentImage = "";

function scrollup()
{
	stopscroll();
	var aDiv = document.getElementById("scroller");
	if (pos >= increment){
		pos = pos - increment;
		aDiv.scrollTop = pos;
		timer = setInterval("scrollup()", delay);
	}
}

function scrolldown()
{
	stopscroll();
	var aDiv = document.getElementById("scroller");
	if (pos <= aDiv.scrollHeight - increment - aDiv.clientHeight){
		pos = pos + increment;
		aDiv.scrollTop = pos;
		timer = setInterval("scrolldown()", delay);
	}
}

function stopscroll()
{
	clearInterval(timer);
	var aDiv = document.getElementById("scroller");
	var idx = aDiv.scrollTop / 70;
	loadThumbnails(idx-4, idx+10);
}

function loadImage(id)
{
	currentImage = id;
	var aImg = document.getElementById("mainImage");
	var aProgress = document.getElementById("progress");
	var aDiv = document.getElementById("scroller");
	pos = aDiv.scrollTop;
	aImg.style.display = "none";
	aProgress.style.display = "block";
	aImg.src = imagesArray[id];
	oDescription.setID(id);
	oDescription.showDescription();

	var images = document.getElementsByTagName("img");
	for (var i=0; i<images.length; i++){
		var img = images[i];
		if (img.className == "thumbnail_act"){
			img.className = "thumbnail";
		}
	}
	var actThumbnail = document.getElementById("thumb_" + id);
	if (actThumbnail){
		actThumbnail.className = "thumbnail_act"; 
	}
	var y = (document.all) ? actThumbnail.offsetTop : actThumbnail.y;
	if (y - pos > 430){
		pos = y - 430;
		aDiv.scrollTop = pos;
	}
	if (y < pos){
		pos = y;
		aDiv.scrollTop = pos;
	}
	stopscroll();
}

function imageLoaded()
{
	var aImg = document.getElementById("mainImage");
	var aProgress = document.getElementById("progress");
	aProgress.style.display = "none";
	aImg.style.display = "block";
}

function initializeAjax()
{
	try {	
		ajax = new XMLHttpRequest();
		return true;
	}
	catch (e) {}
	try {	
		ajax = new ActiveXObject("Msxml2.XMLHTTP");
		return true;
	}
	catch (e) {}
	try {
		ajax = new ActiveXObject("Microsoft.XMLHTTP");
		return true;
	}
	catch (e) {}
	return false;
}

function CDescription()
{
	var m_id;
	var m_isLoaded = false;
	var m_body = "";
	var aDiv;

	var onDownloaded = function()
	{
		this.aDiv = document.getElementById("desc_text");
		if ((4 == ajax.readyState) && (200 == ajax.status)){
			m_isLoaded = true;
			m_body = ajax.responseText;
			this.aDiv.innerHTML = m_body;
		}
	}
		
	this.showDescription = function()
	{
		this.aDiv = document.getElementById("desc_text");
		if (this.m_isLoaded)	{
			this.aDiv.innerHTML = m_body;
		}
		else {
			this.aDiv.innerHTML = ""
			if (ajax) {
				ajax.abort();
				ajax.onreadystatechange = onDownloaded;
				ajax.open("GET", "photogallery.asp" + window.location.search + "&descriptionID=" + this.m_id, true);
				ajax.send(null);		
			}
		}
	}

	this.setID = function(id)
	{
		this.m_id = id;
		this.m_isLoaded = false;
	}
}

function loadThumbnails(from, to)
{
	var cnt = 0;
	for (var i in thumbnailsArray){
		if (cnt >= from && cnt <= to){
			var url = thumbnailsArray[i];
			var element = document.getElementById(i);
			if (element && element.src.indexOf("empty_thumbnail.png") > -1){
				element.src = url;
			}
		}
		cnt++;
	}
}

function goToFirst()
{
	var cnt = 0;
	for (var i in imagesArray){
		if (cnt == 0){
			loadImage(i);
			break;
		}
		cnt++;
	}
	return false;
}

function goToLast()
{
	var cnt = 0;
	for (var i in imagesArray){
		if (cnt == nImages-1){
			loadImage(i);
			break;
		}
		cnt++;
	}
	return false;
}

function goToPrev()
{
	var cnt = 0;
	var prevImage = "";
	for (var i in imagesArray){
		if (i == currentImage && cnt > 0){
			loadImage(prevImage);
			break;
		}
		cnt++;
		prevImage = i;
	}
	return false;
}

function goToNext()
{
	var nextImage = false;
	for (var i in imagesArray){
		if (nextImage){
			loadImage(i);
			break;
		}
		if (i == currentImage){
			nextImage = true;
		}
	}
	return false;
}

