// JavaScript Document
Scrollable = new Class({

	initialize:function(e,o) {
		if (($type(e)=='element')&&(e.getSize().size.y<=e.getSize().scrollSize.y)) {
			this.options = {
				'height': e.getSize().size.y,
				'width': e.getSize().size.x,
				'top': e.getTop(),
				'left': e.getCoordinates().left,
				'right': e.getCoordinates().left+e.getSize().size.x,
				'trackerClass':'scroller',
				'trackerElement':$('scroller'),
				'knobClass':'knob',
				'knobElement':$('knob')
			};
			$extend(this.options, o);
			
			//alert(e.getTop()+' - '+this.options.top);
			//e.setStyle('position','relative')
			if (!this.options.trackerElement) {
				tracker = new Element('div',{
					'class':this.options.trackerClass,
					'styles':{
						'position':'absolute',
						'top':this.options.top,
						'left':this.options.right,
						'height':this.options.height
					}
				});		//	Gestore dello Scroller
			tracker.injectAfter(e);
				
			} else if ($type(this.options.trackerElement)=='element') (tracker = this.options.trackerElement);
			if (!this.options.knobElement) {			
				knob = new Element('div',{
					'class':this.options.knobClass,
					'styles':{
						'width':'100%',
						'height':e.getSize().size.y / (e.getSize().scrollSize.y)*e.getSize().size.y
					}
				});			//	Gestore del cursore
				knob.injectInside(tracker);
			} else if ($type(this.options.knobElement)=='element') (knob = this.options.knobElement);

			
			var the_slide = new Slider(tracker, knob, {
				steps: 100,	
				mode: 'vertical',	
				onChange: function(step){
					e.scrollTo(0, ((e.getSize().scrollSize.y - e.getSize().size.y)/100)*step);
				}
			}).set(0);
			
			e.addEvent('mousewheel',function(evt) {
				ev = new Event(evt);
				if (((ev.wheel<0)&&(!window.opera))||((ev.wheel>0)&&(window.opera))) the_slide.set(the_slide.step+10)
				else if (((ev.wheel>0)&&(!window.opera))||((ev.wheel<0)&&(window.opera))) the_slide.set(the_slide.step-10)
			});
			
		}
	}
});
