var ScrollBar = new Class({
	options: {
		capaScroll: 'capaScroll',
		capaBarra:	'capaBarra',
		barra:	'barra',
		up:	'up',
		down: 'down',
		velocidad: 1
	},
	initialize: function(options){
		this.setOptions(options);
//		offsetCapaScroll = this.options.capaScroll.getSize().scrollSize.y - this.options.capaBarra.getSize().size.y;
	
		//si la barra no tiene altura definida, le ponemos una altura proporcional (altura capaScroll/altura capaBarra)
		if(this.options.barra.getSize().size.y==0) this.options.barra.setStyle('height',((this.options.capaScroll.getSize().size.y*this.options.capaBarra.getSize().size.y)/this.options.capaScroll.getSize().scrollSize.y));
		offsetBarra = this.options.capaBarra.getSize().size.y - this.options.barra.getSize().size.y;
//		this.relacion = offsetCapaScroll/offsetBarra;		//por cada píxel que se desplace la barra, nos indica cuántos píxeles se ha de mover la capaScroll
		
		if(!$(this.velocidad)) this.velocidad=1;
		
		this.relacion = this.options.capaScroll.getSize().scrollSize.y/100;		
	
		var fx = new Fx.Style(this.options.barra, 'top', {duration: 300/this.velocidad, wait:false, transitions: Fx.Transitions.Quad.easeOut});
		this.fxcS = new Fx.Scroll(this.options.capaScroll, 'top', {duration: 300/this.velocidad, wait:false, transitions: Fx.Transitions.Quad.easeOut});
		
		this.mySlide = new Slider(this.options.capaBarra, this.options.barra, {
							 onChange: function(pos){
//								 $('messages').setHTML("Ha cambiado a " + pos + "!");
								 this.fireEvent('arrastrar',pos);
							 },
							 onTick: function(pos){
								 fx.custom(pos);
							 },
							 onComplete: function(pos){
								 this.fireEvent('arrastrar', pos);
							 },
							 steps:100,
							 mode: 'vertical'
		 }).set(0);
	this.mySlide.addEvent('arrastrar', this.arrastrar.bind(this));
		
  },
  arrastrar: function(pos){
//		this.options.capaScroll.scrollTo('0', this.relacion*pos);
//		this.fxcS.start(this.options.capaScroll.getPosition().y,this.relacion*pos);
		if(pos!=0 || pos!=100){
			this.fxcS.scrollTo('0', Math.ceil(this.relacion)*pos);
		}
		if(pos==0) this.fxcS.scrollTo('0','0');
		if(pos==100) this.fxcS.scrollTo('0','100');
		
  }
	  	
});
ScrollBar.implement(new Options, new Events);
