scroll_div=function(obj,scr,knb,tp,up,down,step,speed){

	this.obj=$(obj);
	this.scr=$(scr);
	this.knb=$(knb);
	this.up=$(up);
	this.down=$(down);
	this.step=(step) ? step : 20;
	this.speed=(speed) ? speed : 100;

	if(this.obj.getSize().scrollSize.y>this.obj.getSize().size.y){

		this.scr.setStyle('display','block');
		this.up.setStyle('display','block');
		this.down.setStyle('display','block');

		this.mySlide = new Slider(this.scr, this.knb, {	
			steps: this.obj.getSize().size.y,	
			mode: ((tp=='horizontal') ? 'horizontal' : 'vertical'),	
			onChange: function(step){
				if(this.obj) this.obj.scrollTo(0, ((this.obj.getSize().scrollSize.y-this.obj.getSize().size.y)/this.obj.getSize().size.y)*step);
			}
		}).set(0);
		
		this.mySlide.obj=this.obj;
		
	}else{

		this.scr.setStyle('display','none');
		this.up.setStyle('display','none');
		this.down.setStyle('display','none');

	}

	if(this.up){
		this.up.parent=this;
		this.up.step=this.step;
		this.up.mySlide=this.mySlide;
		this.up.addEvent('mousedown',function(){
			this.parent.startScroll(-1);
		});
		this.up.addEvent('mouseup',function(){
			this.parent.endScroll();
		});
	}
	
	if(this.down){
		this.down.parent=this;
		this.down.step=this.step;
		this.down.mySlide=this.mySlide;
		this.down.addEvent('mousedown',function(){
			this.parent.startScroll(1);
		});
		this.down.addEvent('mouseup',function(){
			this.parent.endScroll();
		});
	}
	
	this.refresh = function() {

		if(this.obj.getSize().scrollSize.y>this.obj.getSize().size.y){

			this.scr.setStyle('display','block');
			this.up.setStyle('display','block');
			this.down.setStyle('display','block');

			this.mySlide = new Slider(this.scr, this.knb, {	
				steps: this.obj.getSize().size.y,	
				mode: ((tp=='horizontal') ? 'horizontal' : 'vertical'),	
				onChange: function(step){
					if(this.obj) this.obj.scrollTo(0, ((this.obj.getSize().scrollSize.y-this.obj.getSize().size.y)/this.obj.getSize().size.y)*step);
				}
			}).set(0);
			
			this.mySlide.obj=this.obj;
			this.obj.scrollTo(0,0);
			
		}else{
			
			if(this.mySlide) this.mySlide.set(0);
			this.obj.scrollTo(0,0);
			this.scr.setStyle('display','none');
			this.up.setStyle('display','none');
			this.down.setStyle('display','none');

		}
		
		if(this.up) this.up.mySlide=this.mySlide;
		if(this.down) this.down.mySlide=this.mySlide		
	}

	this.startScroll = function(dir) {
		if (this.aniTimer) window.clearTimeout(this.aniTimer)

		this.dir=dir
		this.mySlide.set(this.mySlide.step+(this.dir*this.step));

		this.aniTimer	= window.setTimeout(this.scroll.bind(this), this.speed)
	}

	this.scroll = function() {
		this.aniTimer	= window.setTimeout(this.scroll.bind(this), this.speed)
		
		this.mySlide.set(this.mySlide.step+(this.dir*this.step));
	}

	this.endScroll = function() {
		if (this.aniTimer) this.aniTimer = window.clearTimeout(this.aniTimer)
	}
	
}
