var discScrollBar = {

	sliderControl: null,
	viewable: 4, // Number of discs viewable
	override: false, // Override event handling
	
	// Initilise
	init: function() {
	
		// Get disc browser elements
		var discBrowser = $('disc_browser');
		var discContainer = $('disc_browser').down();
	
		// Get slider elements
		var slider = $('disc_slider').down('.slider');
		var handle = slider.down('.handle');
		
		// Attach events to left and right buttons
		$('disc_slider').down('.button_left').observe('click', discScrollBar.moveLeft, false);
		$('disc_slider').down('.button_right').observe('click', discScrollBar.moveRight, false);
		$('disc_slider').down('.button_left').observe('mousedown', discScrollBar.buttonLeftOn, false);
		$('disc_slider').down('.button_left').observe('mouseup', discScrollBar.buttonLeftOff, false);
		$('disc_slider').down('.button_left').observe('mouseout', discScrollBar.buttonLeftOff, false);
		$('disc_slider').down('.button_right').observe('mousedown', discScrollBar.buttonRightOn, false);
		$('disc_slider').down('.button_right').observe('mouseup', discScrollBar.buttonRightOff, false);
		$('disc_slider').down('.button_right').observe('mouseout', discScrollBar.buttonRightOff, false);
		
		// Get count of discs
		var discCount = $('disc_browser').select('h2').length;
		var discWidth = parseInt((discBrowser.down().getWidth() - 20) / discCount);
		var steps = discCount - discScrollBar.viewable;
		
		// Adjust width of handle
		handle.style.width = Math.floor(slider.getWidth() / steps * discScrollBar.viewable) + 'px';
	
		// Create slider
		discScrollBar.sliderControl = new Control.Slider(handle, slider, {
			range: $R(0, steps),
			sliderValue: 0,
			onSlide: function(value) {
			
				// Slide Browser
				if (!discScrollBar.override) {
					divScroller.setPrecise(discBrowser, value * discWidth, 0);
				}
				
			},
			onChange: function(value) {
			
				// Slide Browser
				//divScroller.easePrecise(discBrowser, Math.round(value) * discWidth, 0);
				if (!discScrollBar.override) {
					discScrollBar.override = true;
					discScrollBar.sliderControl.setValue(Math.round(value));
					discScrollBar.override = false;
				} else {
					divScroller.easePrecise(discBrowser, value * discWidth, 0);
				}
				
			}
		});
	
	},
	
	// Move left
	moveLeft: function(e) {
		e.stop();
		discScrollBar.sliderControl.setValue(discScrollBar.sliderControl.value - discScrollBar.viewable);
	},
	
	// Move Right
	moveRight: function(e) {
		e.stop();
		discScrollBar.sliderControl.setValue(discScrollBar.sliderControl.value + discScrollBar.viewable);
	},

	// Button Click
	buttonLeftOn: function(e) { e.stop(); e.findElement('div').addClassName('button_left_hover'); },
	buttonRightOn: function(e) { e.stop(); e.findElement('div').addClassName('button_right_hover'); },
	buttonLeftOff: function(e) { e.stop(); e.findElement('div').removeClassName('button_left_hover'); },
	buttonRightOff: function(e) { e.stop(); e.findElement('div').removeClassName('button_right_hover'); }
	

}

Event.observe(window, 'load', discScrollBar.init, false);