$j=jQuery.noConflict();
/* Gallery (fade-on-click, auto-fade) */
jQuery.fn.gallFade = function(_options){
	// defaults options	
	var _options = jQuery.extend({
		duration: 700,
		autoSlide: 5000
	},_options);

	return this.each(function(){
		var _hold = $j(this);
		var _speed = _options.duration;
		var _timer = _options.autoSlide;
		var _wrap = _hold.find('div.banner > ul > li');
		var _holdEl = _hold.find('div.gallery > div > ul');
		var _el = _hold.find('div.gallery > div > ul > li');
		var hGall = _hold.find('div.gallery');
		var _next = _hold.find('a.link-next');
		var _prev = _hold.find('a.link-prev');
		var _count = _wrap.index(_wrap.filter(':last'));
		var _t;
		var _w = _el.outerWidth(true);
		var _wrapHolderW = Math.ceil(_wrap.parent().width()/_w);
		var _active = _wrap.index(_wrap.filter('.active'));
		if (_active < 0) _active = 0;
		var _last = _active;
		_wrap.css({opacity:0}).eq(_active).css({opacity:1}).css('opacity','auto');
		
		function scrollEl(side){
			if (side == 'prev'){
				if (_active > _count - 7){
					_holdEl.eq(0).animate({
						marginLeft: -(_w * (_count - 7)) + "px"
					}, {queue:false, duration: _speed});
				}
				else{
					_holdEl.eq(0).animate({
						marginLeft: -(_w * _active) + "px"
					}, {queue:false, duration: _speed});
				}
			}
			else{
				if (_active < 7){
					_holdEl.eq(0).animate({
						marginLeft: 0 + "px"
					}, {queue:false, duration: _speed});
				}
				else{
					_holdEl.eq(0).animate({
						marginLeft: -(_w * (_active-7)) + "px"
					}, {queue:false, duration: _speed});
				}
			}
		}
		function fadeEl(){
			_wrap.eq(_last).animate({
				opacity:0
			}, {queue:false, duration: _speed});
			_wrap.eq(_active).animate({
				opacity:1
			}, {queue:false, duration: _speed, complete: function(){
				$j(this).css('opacity','auto');
			}});
			_wrap.removeClass('active').eq(_active).addClass('active');
			_el.removeClass('active').eq(_active).addClass('active');
			_last = _active;
		}
		function runTimer(){
			_t = setInterval(function(){
				_active++;
				if (_active > (_count)) _active = 0;
				fadeEl();
				scrollEl('next');
			}, _timer);
		}
		_next.click(function(){
			_active++;
			if (_active > (_count)) _active = 0;
			fadeEl();
			scrollEl('next');
			return false;
		});
		_prev.click(function(){
			_active--;
			if (_active < 0) _active = _count;
			fadeEl();
			scrollEl('prev');
			return false;
		});
		runTimer();
		_el.click(function(){
			_active = _el.index($j(this));
			fadeEl();
			return false;
		});
		hGall.hover(function(){
			if(_t) clearTimeout(_t);
		}, function(){
			runTimer();
		})
	});
}
$j(document).ready(function(){
	$j('div.gallery-holder').gallFade({
		duration: 700
	});
});
