function showFullImage(image_path)
{
	var i_layer = document.getElementById('full_image_layer');
	if (i_layer)
	{
		if (i_layer.style.display == 'none')
		{
			i_layer.style.display = 'block';
		}
		else
		{
			i_layer.style.display = 'none';
		}
	}
	else
	{
		var i_layer = document.createElement('div');
		i_layer.id = 'full_image_layer';
		i_layer.className = 'full_image_loading';
		i_layer.onclick = showFullImage;
		i_layer.image = image_path;

		i_layer.innerHTML = '<div><img src="/i/ani_snake.gif" border="0" width="16" height="16" align="middle"> Изображение загружается...</div>';
		document.body.appendChild(i_layer);

		i_layer.style.display = 'block';
		setLayerPosition();
		
		var image = new Image();
		image.src = image_path;

		if (image.addEventListener)
		{
			image.addEventListener("load", setImageSrc, false);
		}
		else if (image.attachEvent)
		{
			image.attachEvent("onload", setImageSrc);
		}
		else
		{
			image.onload = setImageSrc;
		}
	}
	return false;
}

function setImageSrc()
{
	var i_layer = document.getElementById('full_image_layer');
	var image_path = i_layer.image;
	i_layer.className = 'full_image_block';
	i_layer.innerHTML = '<img src="'+image_path+'" border="0" id="full_image">';

	setLayerPosition();
}

function setLayerPosition()
{
	var i_layer = document.getElementById('full_image_layer');
	var windowWidth = 0;
	var windowHeight = 0;
	var scrollY = 0;
	var scrollX = 0;

	var blockWidth = Geometry.getElementWidth(i_layer);
	var blockHeight = Geometry.getElementHeight(i_layer);

	var k = 1;
	
	windowWidth = Geometry.getViewportWidth();
	windowHeight = Geometry.getViewportHeight();
	scrollX = Geometry.getHorizontalScroll();
	scrollY = Geometry.getVerticalScroll();

	var image = document.getElementById('full_image');
	if (image)
	{
		var space = blockWidth - image.width;
		if (blockWidth > windowWidth)
		{
			k = blockWidth / windowWidth;
			blockWidth = windowWidth;
			blockHeight = blockHeight / k;
			image.width = blockWidth - space;
			image.height = blockHeight - space;
		}
		if (blockHeight > windowHeight)
		{
			k = blockHeight / windowHeight;
			blockWidth = blockWidth / k;
			blockHeight = windowHeight;
			image.width = blockWidth - space;
			image.height = blockHeight - space;
		}

	}

	var top = scrollY + (windowHeight - blockHeight) / 2;
	var left = scrollX + (windowWidth - blockWidth) / 2;
	if (top < 0)
	{
		top = 0;
	}
	if (left < 0)
	{
		left = 0;
	}

	i_layer.style.top = top + 'px';
	i_layer.style.left = left + 'px';
}

function scrollToCenterImage(layer)
{
	var layer_name = 'preview_image';
	if (typeof(layer) == 'string')
	{
		layer_name = layer;
	}
	var win_height = Geometry.getViewportHeight();
	var img_height = Geometry.getElementHeight(layer_name);
	var img_y = Geometry.getElementY(layer_name);
	var curr_scroll = Geometry.getVerticalScroll();
	
	var scroll_top = img_y - (win_height - img_height) / 2;
	Geometry.setVerticalScroll(scroll_top);
}