/*
 * jQuery galleryScrollV v1.1.0
 */

jQuery.fn.galleryScrollV = function(_options){
	// defaults options	
	var _options = jQuery.extend({
		btUp: 'a.up-arrow',
		btDown: 'a.down-arrow',
		holder: 'div',
		mover: 'ul',
		scrollEl: 'li',
		duration : 1000,
		tabset: false,
		step: false
	},_options);

	return this.each(function(){
		var _wraper = jQuery(this);
		var _holder = jQuery(_options.holder, _wraper);
		var _mover = jQuery(_options.mover, _holder);
		var _lis = jQuery(_options.scrollEl, _mover);
		var _links = jQuery(_options.tabset, _wraper);
		var _prev = jQuery(_options.btUp, _wraper);
		var _next = jQuery(_options.btDown, _wraper);
		var _step = _options.step ? (_lis.eq(0).outerHeight(true) * _options.step) : _holder.outerHeight();
		var _duration = _options.duration;
		var _maxMargin = _lis.length*_lis.eq(0).outerHeight(true)-_holder.outerHeight();
		var _length = Math.floor(_maxMargin/_step)+1;
		var _current = 0;
		var _margin = 0;
		
		if (_maxMargin%_step == 0) _length -= 1;
		
		if (_options.tabset) {
			_links.each(function(i,link){
				jQuery(link).click(function(){
					_links.parent().removeClass('active');
					_margin = _step*i;
					if (i >= _length) _margin = _maxMargin;
					_mover.animate({'marginTop': -_margin}, {duration:_duration, queue:false})
					_current = i;
					jQuery(this).parent().addClass('active');
					return false;
				});
			});
		}
		_next.click(function(){
			if (_options.tabset) {_links.parent().removeClass('active');}
			_current += 1;
			if (_current > _length) _current = 0;
			_margin = _step*_current;
			if (_current >= _length) _margin = _maxMargin;
			_mover.animate({'marginTop': -_margin}, {duration:_duration, queue:false})
			if (_options.tabset) {_links.eq(_current).parent().addClass('active');}
			return false;
		});
		_prev.click(function(){
			if (_options.tabset) {_links.parent().removeClass('active');}
			_current -= 1;
			if (_current < 0) _current = _length;
			_margin = _step*_current;
			if (_current >= _length) _margin = _maxMargin;
			_mover.animate({'marginTop': -_margin}, {duration:_duration, queue:false})
			if (_options.tabset) {_links.eq(_current).parent().addClass('active');}
			return false;
		});
	});
}

jQuery(document).ready(function(){
	jQuery('div.gallery-list').galleryScrollV({
		btUp: 'div.link-prev a',
		btDown: 'div.link-next a',
		holder: 'div.list',
		mover: 'ul',
		scrollEl: '> li',
		duration : 1000
	});
})

