/* Сохраняем версию библиотеке jQuery, подключаемую в рамках модуля, в специальную переменную */
var	$jqCourtOurCourt = jQuery.noConflict();

/* Предыдущую подключенную версию библиотеки сохраняем в переменную jQuery */
jQuery = $;

(function($) {
	$(function(){
		ourCourt.init();
	});

	ourCourt = {
		
		DOM: {},
		speed: 500,
		timeout: 5000,
		
		/**
		 * Объявляем события блока Наш суд
		 */
		init : function() {
			var self = this;
			
			this.DOM.$container = $('.js-our_court');
			this.DOM.$images = this.DOM.$container.find('.js-our_court-img-wrapper'),
			this.DOM.$descr = this.DOM.$container.find('.js-our_court-descr');
			this.DOM.$buttons = {
				all: this.DOM.$container.find('.js-cursor-button'),
				prev: this.DOM.$container.find('.js-cursor-button-left'),
				next: this.DOM.$container.find('.js-cursor-button-right')
			};
			
			if (this.isSlideshow) {
				//Расскрываем фотки
				this.initShowImg();
				//Запуска автоматическую смену фоток
				this.initSlideShow();
			} else {
				//Расскрываем фотки
				this.initShowImg();
				//Объявляем обработчик нажатия кнопки смены фоток
				this.bindClickButton();
			}
			
		},
		
		
		/**
		 * Обработчик нажатия по кнопке смены фотки
		 */
		bindClickButton: function() {
			var self = this;
			
			//Показываем кнопки перехода при наведении курсора на фото
			this.DOM.$container
					.find('.js-our_court-img')
					.hover(
						function(){
							self.DOM.$buttons.all.show();
						},
						function() {
							self.DOM.$buttons.all.hide();
						}
					);
			
			this.DOM.$images.cycle({
				fx: 'fade',
				speed: this.speed,
				timeout: 0,
				next: this.DOM.$buttons.next,
				prev: this.DOM.$buttons.prev,
				before: function(currSlideElement, nextSlideElement, options, forwardFlag) {
					self.loadNextImg({
						next: $(nextSlideElement)
					});
				}
			});
		},
		
		
		/**
		 * Автоматическая смена фоток и описания
		 */
		initSlideShow: function(){
			var self = this;
			
			//Смена фоток
			this.DOM.$images.cycle({
				fx: 'fade',
				speed: this.speed,
				timeout: this.timeout,
				before: function(currSlideElement, nextSlideElement, options, forwardFlag) {
					var id = $(nextSlideElement).attr('id'),
						current = $('.js-our_court-descr')
						.find('.active')
						.removeClass('active');

					$('.js-our_court-descr__' + id)
						.addClass('active')
						.fadeIn(this.speed);

					current.fadeOut(this.speed);

					self.loadNextImg({
						next: $(nextSlideElement)
					});
				}
			});
		},
		
		
		loadNextImg: function(p) {
			var self = this,
				$block = p.next.find('.our_court-img'),
				$img = $block.find('img'),
				src, image;
			
			if (!$img.length) {
				this.pauseSlide();
				image = document.createElement('img');
				//проверка загруженности картинки
				image.onload = function(){
					self.resumeSlide();
				};
				//устанавливаем путь картинки
				image.src = $block.attr('rel');
				//размещаем картинку в новости
				$block.html(image);
			}
		},
		
		
		resumeSlide: function() {
			this.DOM.$images.cycle('resume');
			this.DOM.$descr.cycle('resume');
		},
		
		
		pauseSlide: function() {
			this.DOM.$images.cycle('pause');
			this.DOM.$descr.cycle('pause');
		},
		
		
		initShowImg: function() {
			this.DOM.$container
					.find('.our_court-img')
					.show();
		}
	}
})($jqCourtOurCourt);

