/***********************************************************************************************

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 udpv_defSlideSpeed = 10;
var udpv_viewPortName = 'programPreview'; // viewPort viewing clip of content container
var udpv_imageGalleryObjName = 'programPreviewContent'; // moved content container inside viewPort
var udpv_slideEndName = 'previewEnd'; // stop marker vor content inside content container
var udpv_forwardArrowName = 'btn_left_down'; // image an link for movement
var udpv_backArrowName = 'btn_left_up'; // image an link for movement

var udpv_imageGalleryTopPos = false;
var udpv_imageGalleryHeight = false;
var udpv_imageGalleryObj = false;
var udpv_maxGalleryYPos = false;
var udpv_minGalleryYPos = false;
var udpv_slideSpeed = 0;
//alert('previewslider');
function udpv_startSlide(e) {
	if (document.all) e = event;
	var id = this.id;
	this.getElementsByTagName('IMG')[0].src = 'images/' + this.id + '_over.gif';
	
	if (this.id == udpv_forwardArrowName) {
		//udpv_slideSpeed = -20;
		udpv_slideSpeed = -udpv_defSlideSpeed;
	} else {
		//udpv_slideSpeed = 20;
		udpv_slideSpeed = udpv_defSlideSpeed;
	}
}

function udpv_releaseSlide() {
	var id = this.id;
	this.getElementsByTagName('IMG')[0].src = 'images/' + this.id + '.gif';
	udpv_slideSpeed = 0;
}

function udpv_gallerySlide() {
	if (udpv_slideSpeed != 0 && udpv_imageGalleryObj.offsetHeight > udpv_imageGalleryHeight) {
		udpv_galleryMove();
	}
	setTimeout('udpv_gallerySlide()', 20);
}

function udpv_galleryMove() {
	var topPos = udpv_imageGalleryObj.offsetTop;
	topPos = topPos / 1 + udpv_slideSpeed;
	if (topPos > 14) {
		topPos = 14;
		udpv_slideSpeed = 0;
	}
	
	if (topPos < -udpv_imageGalleryObj.offsetHeight +udpv_imageGalleryHeight +1) {
		topPos = -udpv_imageGalleryObj.offsetHeight +udpv_imageGalleryHeight +1;
		udpv_slideSpeed = 0;
	}
	udpv_imageGalleryObj.style.top = topPos + 'px';
}

function udpv_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) {
		udpv_slideSpeed = delta * 3 * udpv_defSlideSpeed;
		udpv_galleryMove();
		udpv_slideSpeed = 0;
	}
	if (event.preventDefault)
		event.preventDefault();
	event.returnValue = false;
}

function udpv_initSlideShow() {
	var galleryViewPort = document.getElementById(udpv_viewPortName);
	if (window.addEventListener)
	        /** DOMMouseScroll is for mozilla. */
	       galleryViewPort.addEventListener('DOMMouseScroll', function(event){udpv_slideWheel(event);}, false);
	/** IE/Opera. */
		galleryViewPort.onmousewheel = function(event){udpv_slideWheel(event);};
	document.getElementById(udpv_forwardArrowName).onmousemove = udpv_startSlide;
	document.getElementById(udpv_forwardArrowName).onmouseout = udpv_releaseSlide;
	document.getElementById(udpv_backArrowName).onmousemove = udpv_startSlide;
	document.getElementById(udpv_backArrowName).onmouseout = udpv_releaseSlide;
	
	udpv_imageGalleryObj = document.getElementById(udpv_imageGalleryObjName);
	udpv_imageGalleryTopPos = udpv_imageGalleryObj.offsetTop;
	udpv_imageGalleryHeight = document.getElementById(udpv_viewPortName).offsetHeight;
	udpv_maxGalleryYPos = udpv_imageGalleryObj.offsetTop;
	udpv_minGalleryYPos = udpv_imageGalleryHeight - document.getElementById(udpv_slideEndName).offsetTop;
	
	// workaround for displacement bug - now replaced with fixed size for udpv_imageGalleryObj
	//udpv_imageGalleryObj.style.height = (udpv_imageGalleryObj.offsetHeight*1.4) + 'px';
	udpv_gallerySlide();
}

window.onload = udpv_initSlideShow;
