$(document).ready(function() {

	function handleSliderChange(e, ui) {
		var maxScroll = $("#sideColumn").attr("scrollHeight") - $("#sideColumn").height();
		$("#sideColumn").animate( {scrollTop: (100 - ui.value) * (maxScroll / 100), overwrite: true }, 150);
	}

	function handleSliderSlide(e, ui) {
		var maxScroll = $("#sideColumn").attr("scrollHeight") - $("#sideColumn").height();
		$("#sideColumn").attr({scrollTop: (100 - ui.value) * (maxScroll / 100) });
	}
	
	$('#sideColumn').css({'overflow': 'hidden'});	
	
	if ( $("#sideColumn").attr("scrollHeight") > $("#sideColumn").height() ) {
		$('#sideColumn')
			.wrap('<div id="sideColumnWrapper" />')
			.before('<div id="slider"></div>');

		$("#slider").slider( {
			animate: false,
		    change: handleSliderChange,
		    slide: handleSliderSlide,
			orientation: "vertical",
			value: 100
		}).css({opacity: 0});
		
		$("#sideColumnWrapper").hover( 
			function() { $("#slider").animate( { opacity: 1, queue: false }, 200 ); $(".ui-slider-handle").animate( { opacity: 1, queue: false }, 200 ); }, 
			function() { $("#slider").animate( { opacity: 0, queue: false }, 200 ); $(".ui-slider-handle").animate( { opacity: 0, queue: false }, 200 ); }
		);
		
		//mousewheel
		$("#sideColumn").bind("mousewheel", function(event, delta) {
			var speed = 10;
			var mySlider = $("#slider");
			var sliderVal = mySlider.slider("option", "value");

			sliderVal += (delta*speed);

			if (sliderVal > mySlider.slider("option", "max")) sliderVal = mySlider.slider("option", "max");
			else if (sliderVal < mySlider.slider("option", "min")) sliderVal = mySlider.slider("option", "min");

			$("#slider").slider("value", sliderVal);

			event.preventDefault();
		});		
	}
});


