/*
	jQuery Version:				jQuery 1.4.2
	Plugin Name:				UniScroller V 1.0
	Changes: 					Morozov Igor: http://www.morozoff.info
*/
(function($) {
	$.fn.uniScroll = function(options) {

		// setup default settings
		var defaults = {
			speed: 				200,
			lessBtn:			'#clickscroll-less',
			moreBtn:			'#clickscroll-more'
		},
		settings = $.extend({}, defaults, options);

		return this.each(function() {
			var obj = $(this);
			var pboxScroll = obj.children('ul');
			var listWidth = 0;
			var moverightvar, moveleftvar;
			pboxScroll.children('li').each(function(i) {
				listWidth += $(this).outerWidth(true);
			});
			
			pboxScroll.width(listWidth);
			obj.scrollLeft(0)
			disarrows();
			
			var groupWidth = listWidth - obj.width();
			
			var moveRight = function() {
				if(obj.scrollLeft() < groupWidth) {
					obj.scrollLeft(parseInt(obj.scrollLeft())+settings.speed);
					pboxScroll.moverightvar=setTimeout(moveRight,15);
				}
				else {
					clearTimeout(pboxScroll.moverightvar);
					$(settings.moreBtn).hide();
				}
				disarrows();
				return false;
			};
			var moveLeft = function() {
				if(obj.scrollLeft() > 0) {
					obj.scrollLeft(parseInt(obj.scrollLeft())-settings.speed);
					pboxScroll.moveleftvar=setTimeout(moveLeft,15);
				}
				else {
					clearTimeout(pboxScroll.moveleftvar);
					$(settings.lessBtn).hide();
				}
				disarrows();
				return false;
			};
			$(settings.moreBtn).bind('mousedown', function() {
				moveRight();
			}).bind('mouseup', function() {
				clearTimeout(pboxScroll.moverightvar);
			}).bind('click', function() {
				return false;
			});
			$(settings.lessBtn).bind('mousedown', function() {
				moveLeft();
			}).bind('mouseup', function() {
				clearTimeout(pboxScroll.moveleftvar);
			}).bind('click', function() {
				return false;
			});
			
			function disarrows() {
				if(obj.scrollLeft() === groupWidth) {
					$(settings.lessBtn).show();
					$(settings.moreBtn).hide();
				}
				else if(obj.scrollLeft() === 0) {
					$(settings.lessBtn).hide();
					$(settings.moreBtn).show();
				}
				else {
					$(settings.lessBtn).show();
					$(settings.moreBtn).show();
				}
			}


		}); // END: return this

		// returns the jQuery object to allow for chainability.  
		return this;
	};
})(jQuery);