function scrollHortizontial(newPos, max){
	var contentDiv = $('slidercontent');
	var contentList = $$('#slidercontent li');
	var width = 0;
	contentList.each(function(s){
		width += s.getWidth();
		width += parseInt(s.getStyle('marginLeft'));
		width += parseInt(s.getStyle('marginRight'));
	});
	width = width-$('sliderbox').getWidth();
	var leftOffset = -1*(Math.round(newPos/max*width));
	contentDiv.style.left = leftOffset+"px";
}
function scrollVertical(newPos, scrollingContent, slider){
	scrollingContent.scrollTop = Math.round(newPos/slider.maximum*(scrollingContent.scrollHeight-scrollingContent.offsetHeight));
}
function scrollButton(newPos, sliderControl){
	if (newPos >= 0 && newPos <= 100){
		if (sliderControl.value != 0 && newPos < 0){ newPos = 0; }
		if (sliderControl.value != 100 && newPos > 100){ newPos = 100; }
		sliderControl.setValue(newPos);
		scrollHortizontial(newPos, sliderControl.maximum);
	}
}

slideshow={
	//Variables
	sliderControl:null,
	viewableWidth:0,
	contentWidth:0,
	offsetContentWidth:0,

	//Functions
	init:function(){
		if($('slidertrack') == null)
			return;
		this.sliderControl=new Control.Slider($('sliderhandle'),$('slidertrack'),{
			range: $R(0, 100),
			maximum: 100,
			axis:'horizontal',
			onSlide: function(newPos) { scrollHortizontial(newPos, this.maximum);  },
			onChange: function(newPos) { scrollHortizontial(newPos, this.maximum); }
		});
		
		// observe slider right button down
		Event.observe($('slider-right'), 'mousedown', (function() {
			var tempSliderControl = this.sliderControl;
			$('slider-right').animationId=window.setInterval(function() {
				newPos = tempSliderControl.value+1;
				scrollButton(newPos, tempSliderControl);
			}, 30);
		}).bind(this), false);

		// observe slider right button up
		Event.observe($('slider-right'), 'mouseup', (function() {
			window.clearInterval($('slider-right').animationId);
		}).bind(this), false);

		// observe slider left button down
		Event.observe($('slider-left'), 'mousedown', (function() {
			var tempSliderControl = this.sliderControl;
			$('slider-left').animationId=window.setInterval(function() {
				newPos = tempSliderControl.value-2;
				scrollButton(newPos, tempSliderControl);
			}, 45);
		}).bind(this), false);

		// observe slider left button up
		Event.observe($('slider-left'), 'mouseup', (function() {
			window.clearInterval($('slider-left').animationId);
		}).bind(this), false);
	}
};

// load slider object on page load
Event.observe(window, 'load', function() { slideshow.init(); }, false);
