document.observe("dom:loaded", function() {
});

var type = 'single';
var ActiveScrollS = false;
slideShow= function(direction)
{
	if (direction == 'auto')
	{
		var direction = 'fwd';
	}
	else if(slideinter)
	{
		clearInterval(slideinter);
	}
	if (ActiveScrollS == false)
	{
		ActiveScrollS = true;
		var current	= $$('#slideshow .active');
		var prevView	= current[0];
		var siblings		= prevView.siblings();
		var children		= $('slideshow').childElements();
		var totalLength		= siblings.length;
		if(direction == 'fwd') {
			var nextView	= prevView.next();
			var last = false;
			if (nextView == null)
			{
				last = true;
				nextView = children[0];
			}
		}
		else {
			ActiveScrollS	= false;
			return false;
		}
		if (nextView != null)
		{
			prevView.removeClassName('active');
			nextView.addClassName('active');
			
			if (last == true)
			{
				if (type == 'both') {
					new Effect.Fade(prevView, { duration:0.5, afterFinish: (function() {
						new Effect.Appear(nextView, { duration:0.5, afterFinish: (
							function() {
								ActiveScrollS	= false;
							}
						)});
					})});
				} else {
					nextView.show();
					new Effect.Fade(prevView, { duration:1, afterFinish: (
						function() {
							ActiveScrollS	= false;
							prevView.hide();
						}
					)});
				}
			}
			else
			{
				if (type == 'both') {
					new Effect.Fade(prevView, { duration:0.5, afterFinish: (function() {
						new Effect.Appear(nextView, { duration:0.5, afterFinish: (
							function() {
								ActiveScrollS	= false;
							}
						)});
					})});
				} else {
					new Effect.Appear(nextView, { duration:1, afterFinish: (
						function() {
							ActiveScrollS	= false;
							prevView.hide();
						}
					)});
				}
			}
		}
		else
		{
			ActiveScrollS	= false;
			return false;
		}
	}
	return false;
}

showPhoto = function(id) {
	window.clearInterval(slideinter);
	slideinter = false;
	
	var current	= $$('.active');
	var prevView	= current[0];
	var nextView	= $('image_'+id);
	
	prevView.removeClassName('active');
	nextView.addClassName('active');
	
	new Effect.Fade(prevView, { duration:0.5, afterFinish: (function() {
		new Effect.Appear(nextView, { duration:0.5, afterFinish: (
			function() {
				ActiveScrollS	= false;
			}
		)});
	})});
}

var slideinter = false;
autostartslideshow = function(task)
{
	if (task == 'off')
	{
		if(slideinter)
		{
			window.clearInterval(slideinter);
			slideinter = false;
		}
	}
	else
	{
		if(!slideinter)
		{
			slideinter = window.setInterval('slideShow("auto")', 3000);
		}
	}
}

scrollbar = function(scrollThis, handle, track) {
	var additionalOffset = 20; // Additional size add by padding etc to the Scroll Bars. Only will need 1 value of this if style is the same for each bar.
	var scrollThis = $(scrollThis);
	/*scrollThis.setStyle({top:'0px'});*/
	var handle = $(handle);
	var track = $(track);
	var visibleHeight = scrollThis.getHeight();
	var scrollHeight = scrollThis.scrollHeight;
	var percent = ((visibleHeight-additionalOffset)/scrollHeight)*100;
	handle.setStyle({height: percent+'%'});
	
	Object.extend(Event, { wheel:function (event){var delta = 0; if (!event) event = window.event; if (event.wheelDelta) { delta = event.wheelDelta/120; if (window.opera) delta = -delta; } else if (event.detail) { delta = -event.detail/3;     } return Math.round(delta); } });
	Event.observe(scrollThis, 'mousewheel', function(e) { slider.setValueBy((-Event.wheel(e)/15)); });
	Event.observe(scrollThis, 'DOMMouseScroll', function(e) { slider.setValueBy((-Event.wheel(e)/20)); });
			
	var slider = new Control.Slider(handle, track, {
		axis: 'vertical',
		onSlide: function(v) { scrollVertical(v, scrollThis, slider);  },
		onChange: function(v) { scrollVertical(v, scrollThis, slider); }
	});
	function scrollVertical(value, element, slider) {
		element.scrollTop = Math.round(value/slider.maximum*(element.scrollHeight-element.offsetHeight));
	}
	function scrollHorizontal(value, element, slider) {
		element.scrollLeft = Math.round(value/slider.maximum*(element.scrollWidth-element.offsetWidth));
	}
}