//init page
$(function(){
	initFadeGallery();
});
function initFadeGallery(){
	$('.visual').fadeGallery();
	$('.inner-visual').fadeGallery({
		begin:'right'
	});
}
jQuery.fn.fadeGallery = function(_options){
	var _options = jQuery.extend({
		galleryLeft:'ul.left-part',
		galleryRight:'ul.right-part',
		duration: 750,
		autoRotation: 4000,
		activeClass:'active',
		begin:'left'
	},_options);
	
	return this.each(function(){
		// gallery options
		var _this 			= jQuery(this);
		var _galleryLeft 	= jQuery(_options.galleryLeft, _this);
		var _galleryRight 	= jQuery(_options.galleryRight, _this);
		var _speed 			= _options.duration;
		var _begin			= _options.begin;
		var _activeClass 	= _options.activeClass;
		var _autoRotation	= _options.autoRotation;
		
		var timer;
		var slidesLeft = _galleryLeft.children();
		slidesLeft.each(function(){
			if(!$(this).hasClass(_activeClass)){
				$(this).hide();
			}
		});
		
		var slidesRight = _galleryRight.children();
		slidesRight.each(function(){
			if(!$(this).hasClass(_activeClass)){
				$(this).hide();
			}
		});
		
		var currentInd = 0;
		if(slidesLeft.filter('.'+_activeClass).index() != currentInd){
			currentInd = slidesLeft.filter('.'+__activeClass).index();
			slidesRight.removeClass(_activeClass).eq(currentInd).addClass(_activeClass);
		}
		else{
			slidesRight.removeClass(_activeClass).eq(currentInd).addClass(_activeClass);
		}
		var prevIndex = currentInd;
		
		function goSlide(){
			clearTimeout(timer);
			currentInd++;
			var delay = 800;
			if(currentInd > slidesLeft.length-1){
				currentInd = 0;
				delay = 0;
			}
			if(_begin == 'left'){
				slidesLeft.removeClass(_activeClass).eq(prevIndex).fadeOut(_speed);
				slidesLeft.eq(currentInd).addClass(_activeClass).fadeIn(_speed);
				
				setTimeout(function(){
					slidesRight.removeClass(_activeClass).eq(prevIndex).fadeOut(_speed);
					slidesRight.eq(currentInd).addClass(_activeClass).fadeIn(_speed);
					prevIndex = currentInd;
				},delay);
			}
			else{
				slidesRight.removeClass(_activeClass).eq(prevIndex).fadeOut(_speed);
				slidesRight.eq(currentInd).addClass(_activeClass).fadeIn(_speed);
				
				setTimeout(function(){
					slidesLeft.removeClass(_activeClass).eq(prevIndex).fadeOut(_speed);
					slidesLeft.eq(currentInd).addClass(_activeClass).fadeIn(_speed);
					prevIndex = currentInd;
				},delay);
			}
			goAutoRotation();
		}
		
		function goAutoRotation(){
			if (_autoRotation) {
				clearTimeout(timer);
				timer = setTimeout(goSlide, _autoRotation);
			}
		}
		goAutoRotation();
		jQuery(window).focus(function(){
			goAutoRotation();
		}).blur(function(){
			clearTimeout(timer);
		});
	});
}

