$(function(){
	$('.gallery').each(function(){
		var fg = this;
		var _t = null;
		//def options
		fg.duration = 1000;
		fg.autoswitch = 8000;
		fg.list = $('div.slider > ul > li', fg);
		fg.thumb = $('div.pager a', fg);
		fg.a = fg.thumb.index(fg.thumb.filter('.active:eq(0)'));
		fg.cur = fg.a;
		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(){
			if(fg.thumb.index(this)==fg.cur) return false;
			changeEl(fg.thumb.index(this));
			return false;
		})
		function changeEl(ind){
			if(fg.a != ind && fg.cur!=ind){
				fg.cur = 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('.text').animate({height: 0},250,function(){
					//hide text in next slide
					fg.list.eq(ind).find('.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('.text').animate({height: fg.list.eq(ind).find('.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)
							}
						})
					}});
				})
			}
		}
	});
});
