function fadeGallery(){
	$('.gallery').each(function(){
		var fg = this;
		var _t = null;
		//def options
		fg.duration = 500;
		fg.autoswitch = 4000;
		fg.list = $('ul.slide > li', fg);
		fg.thumb = $('ul.switcher > li', fg);
		fg.a = fg.thumb.index(fg.thumb.filter('.active:eq(0)'));
		if(fg.a ==-1) fg.a=0; 
		fg.thumb.removeClass('active').eq(fg.a).addClass('active');
		fg.list.hide().eq(fg.a).show();

		if(fg.autoswitch){
			_t = setTimeout(function(){
				if(fg.a < fg.list.length-1) changeEl(fg.a+1);
				else changeEl(0);
			},fg.autoswitch)
		}

		fg.thumb.click(function(){
			changeEl(fg.thumb.index(this));
			return false;
		})
		function changeEl(ind){
			if(fg.a != ind){
				if(fg.list.eq(fg.a).is(':animated')) fg.list.eq(fg.a).stop(true, true);
				//hide text in active slide
				fg.list.eq(fg.a).find('.slider-text').animate({height: 0},250,function(){
					//hide text in next slide
					fg.list.eq(ind).find('.slider-text').css({height: 0});
					//show next slide
					fg.list.eq(ind).css({
						opacity: 0,
						display: 'block',
						zIndex: 3
					}).animate({opacity: 1},{duration: fg.duration, complete: function(){
						$(this).css({zIndex:'', opacity:'auto'});
						fg.list.eq(fg.a).hide();
						//show text in next slide
						fg.list.eq(ind).find('.slider-text').animate({height: fg.list.eq(ind).find('.slider-text').children().innerHeight(true)},250, function(){
							fg.thumb.removeClass('active').eq(ind).addClass('active');
							fg.a = ind;

							//autoslide
							if(fg.autoswitch){
								if(_t) clearTimeout(_t);
								_t = setTimeout(function(){
									if(fg.a < fg.list.length-1) changeEl(fg.a+1);
									else changeEl(0);
								},fg.autoswitch)
							}
						})
					}});
				})
			}
		}
	})
}
/*fadeGallery*/
jQuery.fn.fadeGallery = function(_options){
	var _options = jQuery.extend({
		listSelector: '> li',
		navHolder:		false,
		navCreate:		false,
		thumbsSelector: 'li',
		prev:			'a.prev',
		next:			'a.next',
		swichTime:		false,
		delay:			900,
		fadeIEfix:		false,
		onChange:		null
	},_options);
	return this.each(function(){
		var _swichTime = _options.swichTime;
		var _d = (_options.fadeIEfix) ? ($.browser.msie ? 0 : _options.delay) : (_options.delay);
		var _this = $(this);
		var _list = $(_options.listSelector, _this);
		var _linksHold = $(_options.navHolder, _this);

		if(_options.navCreate){
			var _htmlNav ='<ul>';
			for(var i=0; i<_list.length; i++) {
				_htmlNav += '<li><a href="#">'+(i+1)+'</a></li>';
			}
			_htmlNav +='</ul>';
			_linksHold.html(_htmlNav);
		}
		var _links = $(_options.thumbsSelector, _linksHold);
		var _btnPrev = $(_options.prev , _this);
		var _btnNext = $(_options.next , _this);
		var _a = _list.index(_list.filter('.active:eq(0)'));
		if(_a == -1) _a = 0;
		var _t;
		_list.removeClass('active').css({display: 'none', opacity: 0}).eq(_a).addClass('active').css({display: 'block', opacity: 1}).css('opacity', 'auto');
		_links.eq(_a).addClass('active');

		autoSwitch();
		function autoSwitch(){
			if (_swichTime){
				_t = setTimeout(function(){
					if(_a < _list.length - 1) changeEl(_a + 1);
					else changeEl(0);
				}, _swichTime);
			}
		}

		if (_btnPrev){
			_btnPrev.click(function(){
				var _prevItem = 0;
				if (_a > 0) _prevItem = _a-1;
				else _prevItem = _list.length-1;
				changeEl(_prevItem);
				return false;
			})
		}
		if (_btnNext){
			_btnNext.click(function(){
				var _nextItem = 0;
				if (_a < _list.length - 1) _nextItem = _a+1;
				else _nextItem = 0;
				changeEl(_nextItem);
				return false;
			})
		}

		if(_links){
			_links.click(function(){
				var _ind = _links.removeClass('active').index($(this).addClass('active'));
				changeEl(_ind);
				return false;
			})
		}
		function changeEl(_ind){
			if(_t) clearTimeout(_t);
			if(_list.is(':animated')) _list.stop(true, true);
			if(_ind != _a){
				_links.removeClass('active').eq(_ind).addClass('active');
				_list.eq(_a).removeClass('active').animate({opacity: 0}, {queue:false, duration:_d});
				_list.eq(_ind).addClass('active').css({opacity: 0, display:'block'}).animate({opacity: 1}, {queue:false, duration:_d,complete:function(){
					$(this).css('opacity', 'auto');
					_a = _ind;
					autoSwitch();
					if (jQuery.isFunction(_options.onChange)) {
						_options.onChange.apply(_this);
					};
				}});
			}
		}
	});
};

$(function(){
	fadeGallery();
	$('ul.f-gall').fadeGallery({
		listSelector: '> li',
		navHolder:		false,
		navCreate:		false,
		swichTime:		2000,
		delay:			900
	});
})