var jScroller = function(options) {
	var settings = {
		countShowedItems: 3,
		mainSelector: '',
		additSelector: '.pub-list-scroll',
		itemSelector: '.pub-item',
		prevBtnSelector: '.pub-scroll-prev',
		nextBtnSelector: '.pub-scroll-next'
	};
	jQuery.extend(settings, options);
	
	var Scroller = {jPrev: null, jNext: null};

	Scroller.Prev = function() {
		var cur = $(settings.mainSelector + settings.additSelector + ' .g-current:last');
		if (cur.size() > 0) {
			if (cur.prevAll(settings.itemSelector + ':not(.g-current):first').addClass('g-current').size() > 0) {
				cur.removeClass('g-current');
				Scroller.jNext.show();
				if (cur.prevAll(settings.itemSelector + ':not(.g-current)').size() <= 0) {
					Scroller.jPrev.hide();
				}
			}
		}
	};
	Scroller.Next = function() {
		var cur = $(settings.mainSelector + settings.additSelector + ' .g-current:first');
		if (cur.size() > 0) {
			if (cur.nextAll(settings.itemSelector + ':not(.g-current):first').addClass('g-current').size() > 0) {
				cur.removeClass('g-current');
				Scroller.jPrev.show();
				if (cur.nextAll(settings.itemSelector + ':not(.g-current)').size() <= 0) {
					Scroller.jNext.hide();
				}
			}
		}
	};
	Scroller.Wheel = function(event, delta){
		event.preventDefault();
		Scroller[(delta > 0? 'jPrev': 'jNext')].click();
	};
	Scroller.MouseOver = function() {};
	Scroller.MouseOut = function() {};
	
	var onReady = function() {
		Scroller.block = $(settings.mainSelector + settings.additSelector).wheel(Scroller.Wheel).mouseover(Scroller.MouseOver).mouseout(Scroller.MouseOut);
		Scroller.jPrev = $(settings.mainSelector + settings.additSelector + ' ' + settings.prevBtnSelector).click(Scroller.Prev);
		Scroller.jNext = $(settings.mainSelector + settings.additSelector + ' ' + settings.nextBtnSelector).click(Scroller.Next);
		if ($(settings.mainSelector + settings.additSelector + ' ' + settings.itemSelector).size() > settings.countShowedItems) {
			Scroller.jNext.show();
		}
	};

	return {
		onReady: onReady
	};
};


