jQuery(document).ready(function(){
	// Gallery
	if ($('#gallery_containter').length)
	{
		// Количество изображений на странице
		var pictures_on_page = 6;

		var gallery_containter = $('#gallery_containter');
		var gallery_pictures = gallery_containter.find('li a');
		// Если общее количество изображений больше допустимого количества, то добавляем пагинацию
		if (gallery_pictures.length && gallery_pictures.length > pictures_on_page)
		{
			// Время анимации и ширина фоновой картинки
			var animate_time = 500;
			var background_image_width = 2100;

			// Оптимальные параметры высота для 6 изображений на стрнице
			$('#gallery_containter').css('height', '462px');
			$('#gallery').css('height', '442px');
			
			// Анимация скольки изображений сработала
			// Переменная должна равняться количеству изображений на страницу, чтобы можно было переключиться на другую страницу
			var images_animated = pictures_on_page;

			// Обновление пагинации, анимация изображений, сдвиг фона
			var gallery_pagination_refresh = function()
			{
				var prev_pictures, next_pictures;
				// Если задана, значит это не первое срабатывание анимации
				if (current_page)
				{
					// Убираем выделение с элемента пагинации
					gallery_pagination_elements[current_page - 1].className = '';
					// Выделяем изображения, которые надо скрыть
					prev_pictures = gallery_pictures.slice((current_page - 1) * pictures_on_page, (current_page - 1) * pictures_on_page + pictures_on_page);
				}
				// Выделяем новую страницу в пагинации
				gallery_pagination_elements[next_page - 1].className = 'selected';

				// Выбираем изображения, которые надо показать
				next_pictures = gallery_pictures.slice((next_page - 1) * pictures_on_page, (next_page - 1) * pictures_on_page + pictures_on_page);

				// Если есть что скрывать =)
				if (prev_pictures)
				{
					images_animated = 0;
					var animate_count = 0;
					prev_pictures
					.each(function(){
						var $this = $(this);
						$this
						.animate({opacity: 0}, animate_time, 'linear', function(){
							$this.css('display', 'none');
							animate_count++;
							if (animate_count == prev_pictures.length)
							{
								next_pictures.css('display', 'block').animate({opacity: 1}, animate_time, 'linear', function(){
									images_animated++;
								});
							}
						});
					});
					if (document.body.offsetWidth < background_image_width)
					{
						$(document.body).animate({backgroundPosition:(-(background_image_width - document.body.offsetWidth)*((next_page - 1)/(total_pages-1)))+'px 255px'}, animate_time*2);
					}
				}
				else
				{
					// Первый запуск
					// Всем изображениям присваиваем display:none, и opacity:0
					// Затем нужные изображения показываем
					images_animated = pictures_on_page;
					gallery_pictures.css('display', 'none').css('opacity', 0);
					next_pictures.css('display', 'block').css('opacity', 1);
				}

				// Окончательно сменили страницу
				current_page = next_page;
			}

			// Функция пагинации
			var gallery_pagination_change_page = function(page)
			{
				// Если анимация полностью завершена и мы выбрали другую страницу, тогда запускаем анимацию
				if (images_animated == Math.min(pictures_on_page, (gallery_pictures.length - (current_page - 1) * pictures_on_page)) && next_page != page)
				{
					next_page = page;
					gallery_pagination_refresh();
				}
			}

			var next_page = 1;
			var current_page = null;
			var total_pages = Math.ceil(gallery_pictures.length / pictures_on_page);

			// Формируем объекты пагинации, добавляем в родительский контейнер
			var gallery_pagination = $('#gallery_pagination');
			var tmp = '';
			for (var i = 0; i < total_pages; i++)
			{
				tmp += '<li>' + (i + 1) + '</li>';
			}
			gallery_pagination.append(tmp);
			// и назначаем им функционал
			var gallery_pagination_elements = gallery_pagination.find('li');
			gallery_pagination_elements.click(function() {
				gallery_pagination_change_page(this.innerHTML);
			});
			gallery_pagination.css('display', 'block');
			// Первый запуск
			gallery_pagination_refresh();
		}
		var overlay = new Overlay();
		gallery_pictures.click(function(){
			if ($(this).hasClass('image'))
			{
				overlay.show('<div class="gallery_overlay"><img src="' + this.href + '" alt="' + this.title + '" id="image_gallery_big" /><br /><div class="sign"><hr />' + this.title + '</div></div>', function(){
					overlay.setTop(40);
				});
			}
			else if ($(this).hasClass('video'))
			{
				overlay.show(
				'<div class="gallery_overlay">' +
				'<object type="application/x-shockwave-flash" data="/player/uflvplayer.swf" width="640" height="360">' +
					'<param name="bgcolor" value="#fff" />' +
					'<param name="allowFullScreen" value="true" />' +
					'<param name="allowScriptAccess" value="always" />' +
					'<param name="movie" value="/player/uflvplayer.swf" />' +
					'<param name="FlashVars" value="way=' + this.href + '&amp;swf=/player/uflvplayer.swf&amp;w=640&amp;h=360&amp;pic=' + escape($(this).find('img').attr('rel')) + '&amp;autoplay=0&amp;tools=1&amp;skin=white&amp;volume=70&amp;q=&amp;comment=" />' +
				'</object>' +
				'<br /><hr /><div class="sign">' + this.title + '</div>' +
				'</div>',
				function(){
					overlay.setTop(200);
				});
			}
			return false;
		});
	}
});
