var gallery_loader;
var gallery_div;
var gallery_field;
var gallery_block;
var gallery_image;
var gallery_gif;
var gallery_text;

function gallery_init(file, width, height, text) {
	// Инициализация глобальных переменных.
	gallery_div = document.getElementById("gallery_div");
	gallery_field = document.getElementById("gallery_field");
	gallery_block = document.getElementById("gallery_block");
	gallery_image = document.getElementById("gallery_image");
	gallery_gif = document.getElementById("gallery_gif");
	gallery_text = document.getElementById("gallery_text");

	// Консервирование данных о рисунке лоадера.
	// Выполнять только один раз (иногда захватывает рисунок вместо лоадера).
	if (!gallery_loader) {
							  gallery_loader = gallery_image.width
												   ? new Image(gallery_image.width, gallery_image.height)
													 // Патч для IE (нет размеров рисунка, полученного из HTML).
												   : new Image();
							  gallery_loader.src = gallery_image.src;
						 }

	// Блокирование колёсика прокрутки (есть ли в этом необходимость).
	if (document.getElementById("gallery_div").addEventListener) document.getElementById("gallery_div").addEventListener("DOMMouseScroll", wheel, false);
	document.getElementById("gallery_div").onmousewheel = wheel;

	// Инициализация загрузки рисунка.
	gallery_image_to_show = new Image(width, height);
	gallery_image_to_show.src = file;

	// Инициализация белого поля галереи.
	gallery_field.style.width = width;
	gallery_field.style.left = document.body.scrollWidth / 2 - (parseInt(width) + 50 * 2) / 2;
	gallery_field.style.top = document.body.scrollTop + 50;

	// Патч для IE (глючит обработка ширины блоков).
	gallery_block.style.width = width;
	gallery_gif.style.width = width;
	gallery_text.style.width = width;

	// Инициализация блока для рисунка.
	gallery_block.style.height = height;

	// Отображение текста.
	if (text) {
				   gallery_text.innerHTML = text;
				   gallery_text.style.display = "block";
			  }

	// Инициализация слоя затемнения галлереи (по сути - её отображение).
	gallery_div.style.height = document.body.scrollHeight;
	gallery_div.style.display = "block";

	// Вывод рисунка.
	interval = window.setInterval("gallery_show();", 500);
}

function gallery_show() {
	// Проверка загрузки рисунка.
	if (gallery_image_to_show.complete) window.clearInterval(interval);
	else return false;

	// Вывод рисунка.
	gallery_image.width = gallery_image_to_show.width;
	gallery_image.height = gallery_image_to_show.height;
	gallery_image.src = gallery_image_to_show.src;
}

function gallery_close() {
	// Сокрытие слоя галереи.
	gallery_div.style.display = "none";

	// Сокрытие текстового слоя.
	gallery_text.style.display = "none";

	// Откат изображения к лоадеру.
	gallery_image.width = gallery_loader.width;
	gallery_image.height = gallery_loader.height;
	gallery_image.src = gallery_loader.src;
}

function wheel(event) {
	// Патч на событие для IE.
	if (!event) event = window.event;

	// Отменим текущее событие - событие по умолчанию (cкролинг окна).
	if (event.preventDefault) event.preventDefault();

	// Дополнительный патч для IE.
	event.returnValue = false;
}
