var customScrollbars = new Class({
	
	
	Implements: [Options],
	
	
	options: {
		scrollbars: '.scrollbar',
		scrollTrack: '.scrolltrack',
		scrollHandle: '.scrollhandle'
	},
	
	
	initialize: function(options) {
		
		
		this.setOptions(options);
		this.scrollbars = $$(this.options.scrollbars);
		
		
		this.scrollbars.each(function(scrollbar) {
			
			
			scrollbar.active = false;
			scrollbar.track = scrollbar.getFirst(this.options.scrollTrack);
			scrollbar.handle = scrollbar.track.getFirst(this.options.scrollHandle);
			scrollbar.content = $(scrollbar.get('id').replace(this.options.scrollbars.replace('.', '') + '-', ''));
			scrollbar.content.setStyle('overflow-y', 'hidden');
			
			
			this.toggleScrollbar(scrollbar);
			
			
		}.bind(this));
		
		
	},
	
	
	toggleScrollbar: function(scrollbar) {
		
		
		var scrollHeight = scrollbar.content.getScrollSize().y;
		var contentHeight = scrollbar.content.getSize().y;
		
		
		if (scrollHeight > contentHeight) {
			
			
			scrollbar.setStyle('display', 'block');
			var handleHeight = ((contentHeight / scrollHeight) * scrollbar.getComputedSize('vertical').height).round();
			scrollbar.handle.setStyle('height', handleHeight + 'px');
			
			
			var contentScroll = new Fx.Scroll(scrollbar.content);
			
			
			var scrollSlide = new Slider(scrollbar.track, scrollbar.handle, {
				mode: 'vertical',
				wheel: true,
				steps: scrollHeight - contentHeight,
				onChange: function(step) {
					contentScroll.set(0, step);
				}
			});
			
			
			scrollbar.content.addEvent('mousewheel', function(e) {
				e = new Event(e).stop();
				var step = scrollSlide.step - e.wheel * 10;
				scrollSlide.set(step);
			});
			
			
			scrollbar.active = true;
			
			
		} else {
			
			
			scrollbar.setStyle('display', 'none');
			scrollbar.active = false;
		}
		
		
	}
	
	
	
	
});

