/* Функция просмотра увеличенных изображений */

function bigImg(mode,oImage)
{
	var imgPath=$(oImage).parent().attr("href"); // Путь к большому изображению

	var $imgFrame=$("#imgframe"); // Поле изображения

	var $imgTitleFrame=$("#imgtitle"); // Поле описания
	var $bgLayer=$("#background"); // Задний фон
	var $img=$("#bigimg"); // Изображение
	var $imgWait=$("#imgframe_wait"); // Значок загрузки

	var selector=".smallimg";
	if(oImage) selector+=(oImage.id?("[id="+oImage.id+"]"):"");

	var $imgs=$(selector); // Список изображений

	var $prevImg=$("#previmg"); // Предыдущее изображение
	var $nextImg=$("#nextimg"); // Следующее изображение

	var maxWidth=700; // Максимальная ширина изображения
	var maxHeight=550; // Максимальная высота изображения

	switch(mode) // Режим
	{
		case "open": // Открытие
			var newImg=new Image(); // Создание нового изображения
				
			$imgFrame.hide(); // Скрытие изображения, когда появляется полоса загрузки
			$bgLayer.show(); // Задний фон делается видимым
			$imgWait.show(); // Значок загруки делается видимым

			newImg.onload=function() // Обработчик события "onLoad" для изображения
			{
				var prevImgIndex=$imgs.index(oImage)-1;
				var nextImgIndex=$imgs.index(oImage)+1;

				if(prevImgIndex>=0) // Если есть предыдущее изображение
				{
					$prevImg.unbind().click(function(){ // Обработчик клика мышью
						bigImg('open',$imgs[prevImgIndex]); // Назначается функция увеличения изображения
						return false; // Отмена перехода по ссылке
					});

					$prevImg.show();
				}
				else $prevImg.hide(); // Иначе - стрелка "влево" скрывается

				if(nextImgIndex<$imgs.length) // Если есть следующее изображение
				{
					$nextImg.unbind().click(function(){ // Обработчик клика мышью
						bigImg('open',$imgs[nextImgIndex]); // Назначается функция увеличения изображения
						return false; // Отмена перехода по ссылке
					});

					$nextImg.show();
				}
				else $nextImg.hide(); // Иначе - стрелка "вправо" скрывается

				var imgWidth=newImg.width; // Ширина изображения
				var imgHeight=newImg.height; // Высота изображения

				//Определение ориентации изображения

				if(imgWidth>=imgHeight) var imgOrientation="horizontal";
				else var imgOrientation="vertical";

				// В зависимости от ориентации
	
				switch(imgOrientation)
				{
					case "horizontal": // Горизонтальная ориентация
						if(imgWidth>maxWidth) // Если ширина больше максимальной ширины
						{
							var ratio=imgHeight/imgWidth; // Соотношение сторон
							imgWidth=maxWidth; // Ширина обрезается по максимальной ширине
							imgHeight=Math.round(imgWidth*ratio); // И устанавливается новая высота в соответствии с соотношением сторон
						}
						break;

					case "vertical": // Вертикальная ориентация
						if(imgHeight>maxHeight) // Если высота больше максимальной высоты
						{
							var ratio=imgWidth/imgHeight; // Соотношение сторон
							imgHeight=maxHeight; // Высота обрезается по максимальной высоте
							imgWidth=Math.round(imgHeight*ratio); // И устанавливается новая ширина в соответствии с соотношением сторон
						}
						break;
				}

				$img.attr("src",imgPath); // Загрузка изображения
				$img.width(imgWidth); // Новая ширина изображения
				$img.height(imgHeight); // Новая высота изображения

				$imgTitleFrame.width(imgWidth-50); // Ширина описания (на 50 пикс. меньше ширины изображения)

				var imgTitle=oImage.alt || oImage.title; // Описание изображения
				$imgTitleFrame.html((imgTitle)?imgTitle:"(Нет описания)"); // Установка описания

				$("#imgfooter").width(imgWidth-50); // Ширина подсказки (на 50 пикс. меньше ширины изображения)
				$imgWait.hide(); // Скрытие значка загрузки

				$imgFrame.css("margin-left",-$img.width()/2); // Горизонтальное позиционирование блока изображения
				$imgFrame.css("margin-top",-$imgFrame.height()/2); // Вертикальное позиционирование блока изображения

				$imgFrame.show(); // Блок изображения становится видимым
			}
			newImg.src=imgPath; // Загрузка изображения
			break;

		case "close": // Закрытие
			$imgFrame.hide(); // Скрытие блока изображения
			$bgLayer.hide(); // Скрытие заднего фона
			$imgWait.hide(); // Скрытие значка загрузки
			$img.src=""; // Разгрузка изображения
			break;
	}
}
