/***********************************************************************************************

Copyright (c) 2005 - Alf Magne Kalleland post@dhtmlgoodies.com

UPDATE LOG:

March, 10th, 2006 : Added support for a message while large image is loading

Get this and other scripts at www.dhtmlgoodies.com

You can use this script freely as long as this copyright message is kept intact.

***********************************************************************************************/

var ud_defSlideSpeed = 10;
var ud_viewPortName = 'programViewPort'; // viewPort viewing clip of content container
var ud_imageGalleryObjName = 'programContent'; // moved content container inside viewPort
var ud_slideEndName = 'programSlideEnd'; // stop marker vor content inside content container
var ud_forwardArrowName = 'btn_right_down'; // image an link for movement
var ud_backArrowName = 'btn_right_up'; // image an link for movement

var ud_imageGalleryTopPos = false;
var ud_imageGalleryHeight = false;
var ud_imageGalleryObj = false;
var ud_maxGalleryYPos = false;
var ud_minGalleryYPos = false;
var ud_slideSpeed = 0;

function ud_startSlide(e) {
	if (document.all) e = event;
	var id = this.id;
	this.getElementsByTagName('IMG')[0].src = 'images/' + this.id + '_over.gif';
	
	if (this.id == ud_forwardArrowName) {
		//ud_slideSpeed = -20;
		ud_slideSpeed = -ud_defSlideSpeed;
	} else {
		//ud_slideSpeed = 20;
		ud_slideSpeed = ud_defSlideSpeed;
	}
}

function ud_releaseSlide() {
	var id = this.id;
	this.getElementsByTagName('IMG')[0].src = 'images/' + this.id + '.gif';
	ud_slideSpeed = 0;
}

function ud_gallerySlide() {
	if (ud_slideSpeed != 0 && ud_imageGalleryObj.offsetHeight > ud_imageGalleryHeight) {
		ud_galleryMove();
	}
	setTimeout('ud_gallerySlide()', 20);
}

function ud_galleryMove() {
	var topPos = ud_imageGalleryObj.offsetTop;
	topPos = topPos / 1 + ud_slideSpeed;
	if (topPos > 14) {
		topPos = 14;
		ud_slideSpeed = 0;
	}
	
	if (topPos < -ud_imageGalleryObj.offsetHeight +ud_imageGalleryHeight +1) {
		topPos = -ud_imageGalleryObj.offsetHeight +ud_imageGalleryHeight +1;
		ud_slideSpeed = 0;
	}
	ud_imageGalleryObj.style.top = topPos + 'px';
}

function ud_slideWheel(event) {
	var delta = 0;
	if (!event) /* For IE. */
		event = window.event;
	if (event.wheelDelta) { /* IE/Opera. */
		delta = event.wheelDelta/120;
		if (window.opera)
			delta = -delta;
	} else if (event.detail) { /** Mozilla case. */
		delta = -event.detail/3;
	}
	if (delta) {
		ud_slideSpeed = delta * 3 * ud_defSlideSpeed;
		ud_galleryMove();
		ud_slideSpeed = 0;
	}
	if (event.preventDefault)
		event.preventDefault();
	event.returnValue = false;
}

function ud_initSlideShow() {
	var galleryViewPort = document.getElementById(ud_viewPortName);
	if (window.addEventListener)
	        /** DOMMouseScroll is for mozilla. */
	       galleryViewPort.addEventListener('DOMMouseScroll', function(event){ud_slideWheel(event);}, false);
	/** IE/Opera. */
		galleryViewPort.onmousewheel = function(event){ud_slideWheel(event);};
	document.getElementById(ud_forwardArrowName).onmousemove = ud_startSlide;
	document.getElementById(ud_forwardArrowName).onmouseout = ud_releaseSlide;
	document.getElementById(ud_backArrowName).onmousemove = ud_startSlide;
	document.getElementById(ud_backArrowName).onmouseout = ud_releaseSlide;
	
	ud_imageGalleryObj = document.getElementById(ud_imageGalleryObjName);
	ud_imageGalleryTopPos = ud_imageGalleryObj.offsetTop;
	ud_imageGalleryHeight = document.getElementById(ud_viewPortName).offsetHeight;
	ud_maxGalleryYPos = ud_imageGalleryObj.offsetTop;
	ud_minGalleryYPos = ud_imageGalleryHeight - document.getElementById(ud_slideEndName).offsetTop;
	
	// workaround for displacement bug - now replaced with fixed size for ud_imageGalleryObj
	//ud_imageGalleryObj.style.height = (ud_imageGalleryObj.offsetHeight*1.4) + 'px';
	
	ud_gallerySlide();
}

window.onload = ud_initSlideShow;
