function Scroller(id, params){
	if(!params){
		params = {};
	}
	this.prevButton = params["prevButton"] || (id + '_prevButton');
	this.nextButton = params["nextButton"] || (id + '_nextButton');
	this.leftGrad = params["leftGrad"] || (id + '_leftGrad');
	this.rightGrad = params["rightGrad"] || (id + '_rightGrad');
	this.listId = params["listId"] || (id + '_listId');
	this.listIdChild = params["listIdChild"] || (id + '_listIdChild');
	this.divPadding = params["divPadding"] || 12;
	var elem = this;
	var divp = $( "#"+this.listId );
	var divc = $( "#"+this.listIdChild );

	$(divc.children()[0]).addClass("first");
	this.updateButtons();
	
	$( "#"+this.prevButton ).mousedown(function(){
		elem.slideScrollLeft();
	});

	$( "#"+this.nextButton ).mousedown(function(){
		elem.slideScrollRight();
	});
	
	$( "#"+this.prevButton ).click(function(){
		return false;
	});

	$( "#"+this.nextButton ).click(function(){
		return false;
	});

	$(window).resize(function(){
		elem.updateButtons();
	});
	
	$(window).load(function(){
		elem.updateButtons();
	});

}

Scroller.prototype.updateButtons = function() {
	var prevBtn = $("#"+this.prevButton);
	var nextBtn = $("#"+this.nextButton);
	var leftGrad = $("#"+this.leftGrad);
	var rightGrad = $("#"+this.rightGrad);
	var divp 	= $( "#"+this.listId );
	var divc 	= $( "#"+this.listIdChild );
	var divpWidth = divp.width();
	var divcWidth = divc.width();
	
	if (divpWidth >= divcWidth){
		prevBtn.css('visibility','hidden');
		nextBtn.css('visibility','hidden');
        leftGrad.hide();
        rightGrad.hide();
		return;
	}
	if (divp.scrollLeft() == 0){
		prevBtn.css('visibility','hidden');
		nextBtn.css('visibility','visible');
        leftGrad.hide();
        rightGrad.show();
	} else if (divp.scrollLeft() + divpWidth >= divcWidth ) {
		prevBtn.css('visibility','visible');
		nextBtn.css('visibility','hidden');
        leftGrad.show();
        rightGrad.hide();
	} else {
		prevBtn.css('visibility','visible');
		nextBtn.css('visibility','visible');
        leftGrad.show();
        rightGrad.show();
	}
	return;
}

Scroller.prototype.slideScrollLeft = function() {
	var elem = this;
	var divp = $( "#"+this.listId );
	var divc = $( "#"+this.listIdChild );
	var lastChild = divc.find('div:last-child');

	if ( this.isScrolled ){
		return;
	}
	
	var elemLeft = divp.scrollLeft() - lastChild.outerWidth() - this.divPadding;
	this.isScrolled = true;

	elem.intervalId = setInterval(function(){
		if(divp.scrollLeft() <= elemLeft || divp.scrollLeft() == 0) {
			clearInterval(elem.intervalId);
			elem.isScrolled = false;
			elemLeft = null;
			elem.updateButtons();
		} else {
			var left = divp.scrollLeft() - 43;
			divp.scrollLeft(left);
		}
	}, 20);

	return;
}

Scroller.prototype.slideScrollRight = function() {
	var elem = this;
	var divp = $( "#"+this.listId );
	var divc = $( "#"+this.listIdChild );
	var lastChild = divc.find('div:last-child');

	if ( this.isScrolled ){
		return;
	}
	
	var elemLeft = divp.scrollLeft() + lastChild.outerWidth() + this.divPadding;
	this.isScrolled = true;

	elem.intervalId = setInterval(function(){
		if( divp.scrollLeft() >= elemLeft || divp.scrollLeft() + divp.width() >= divc.width()) {
			clearInterval(elem.intervalId);
			elem.isScrolled = false;
			elemLeft = null;
			elem.updateButtons();
		} else {
			var left = divp.scrollLeft() + 43;
			divp.scrollLeft(left);
		}
	}, 20);

	return;
}