jQuery.fn.gallFade = function(_options){
	// defaults options	
	var _options = jQuery.extend({
		duration: 700,
		autoSlide: 5000
	},_options);

	return this.each(function(){
		var _hold = $(this);
		var _speed = _options.duration;
		var _timer = _options.autoSlide;
		var _el = _hold.find('div.slides ul > li');
		var _elSwitch = _hold.find('div.swicher ul > li > a');
		var _next = _hold.find('a.link-next');
		var _prev = _hold.find('a.link-prev');
		var _count = _el.index(_el.filter(':last'));
		var _active = _el.index(_el.filter('.active'));
		if (_active < 0) _active = 0;
		var _last = _active;
		
		_el.css({opacity:0}).eq(_active).css({opacity:1})
		
		function scrollEl(){
			_el.eq(_active).animate({
				opacity:1
			}, {queue:false, duration: _speed})
			_el.eq(_last).animate({
				opacity:0
			}, {queue:false, duration: _speed})
			_el.removeClass('active').eq(_active).addClass('active');
			_elSwitch.removeClass('active').eq(_active).addClass('active');
			_last = _active;
		}
		function runTimer(){
			_t = setInterval(function(){
				_active++;
				if (_active > _count) _active = 0;
				scrollEl();
			}, _timer)
		}
		runTimer();
		_next.click(function(){
			if (_t) clearTimeout(_t);
			_active++;
			if (_active > _count) _active = 0;
			scrollEl();
			runTimer();
			return false;
		});
		_prev.click(function(){
			if (_t) clearTimeout(_t);
			_active--;
			if (_active < 0) _active = _count;
			scrollEl();
			runTimer();
			return false;
		});
		_elSwitch.click(function(){
			if (_t) clearTimeout(_t);
			_active = _elSwitch.index($(this));
			scrollEl();
			runTimer();
			return false;
		});
	});
}

$(document).ready(function(){
	$('div.gallery-fade').gallFade({
		duration: 1000,
		autoSlide: 7000
	});
});