function GalleryHandler() {
	this.BottomLimit = 20; /* px */
	this.LoadInterval = 500; /* ms */
}

GalleryHandler.prototype.BottomLimit;
GalleryHandler.prototype.LoadInterval;

GalleryHandler.prototype.LoadPreviewImage = function() {
	if (!document.getElementById('gal_prev_img').complete) {
		setTimeout("Gallery.LoadPreviewImage()", this.LoadInterval);
	} else {
		var imageHeight = document.getElementById('gal_prev_img').offsetHeight;
		var screenHeight = document.getElementById('gal_prev_img_box').offsetHeight;
		if (imageHeight > screenHeight - this.BottomLimit) {
			imageHeight = screenHeight - this.BottomLimit;
			document.getElementById('gal_prev_img').style.height = imageHeight + 'px';
		}
		var marginTop = (screenHeight - imageHeight) / 2;
		document.getElementById('gal_prev_img').style.marginTop = marginTop+'px';
		document.getElementById('gal_prev_img').style.visibility = 'visible';
	}
}

GalleryHandler.prototype.Init = function() {
	return true;
}

GalleryHandler.prototype.ShowPreview = function(imageSrc) {
	document.getElementById('gal_prev_img').src = imageSrc;
	showElement('gal_prev_bg');
	showElement('gal_prev_img_box');
	document.getElementById('gal_prev_img').style.visibility = 'hidden';
	setTimeout("Gallery.LoadPreviewImage()", this.LoadInterval);
}

GalleryHandler.prototype.HidePreview = function() {
	hideElement('gal_prev_bg');
	hideElement('gal_prev_img_box');
	document.getElementById('gal_prev_img').src = '';
}

GalleryHandler.prototype.ShowImage = function(imageSrc, imagePreviewSrc) {
	document.getElementById('gal_img').src = imageSrc;
	document.getElementById('gal_img').onclick = new Function('Gallery.ShowPreview(\''+imagePreviewSrc+'\');');
}

var Gallery = new GalleryHandler;
