

/****
 * Konfigurierbare Parameter
 **/
/*Schritte in den gescrollt werden soll*/
var steps = 20;
/*Geschwindigkeit in der gescrollt werden soll*/
var scrollSpeed = 33;
/*Bilder die Angezeigt werden sollen*/
var scrollbox_display_images = 5;



/****
 * Die hier unten stehende Werte nicht aendern!
 **/
var center_image = -1;
var opacityStartValue = 20;
var currentFadeInValue = opacityStartValue;
var currentFadeOutValue = 100;
var scrollbox = null;
var scrollbox_images = new Array();
var pos = 0;
var totalStripLength = 0;
var direction = '';
var fadeSteps = 0;
var leftFromCenter = -1;
var rightFromCenter = -1;
var centerPos = -1;
var fadeInImg = -1;
var fadeOutImg = -1;
var autoScrollDirection = '8';
var autoScrollSpeed = -1;
var initDone = false;


function initScrollbar(){
	if(!(scrollbox = document.getElementById('scrollbox'))){
		alert('Scrollbox wurde im Dokument nicht gefunden.');
		return false;
	}
	if(!loadImages()){
		alert('Fehler beim Laden der Bilder');
		return false;
	}
	if(scrollbox_display_images%2){
		center_image = parseInt(scrollbox_display_images/2);
		fadeSteps = 100/steps;
	}

	setImages();
	scrollbox.style['width'] = scrollbox_images[0].width*scrollbox_display_images+'px';
	scrollbox.style['height'] = scrollbox_images[0].height+'px';
	totalStripLength = scrollbox_images[0].width*scrollbox_images.length;
	initDone = true;
}

/**
 * @param direction => Richtung in die gescrollt werden soll
 * @param speed => Geschwindigkeit in Millisekunden ind der gescrollt werden soll
 * @access public
 * @return bool
 **/
function activateAutoScroll(direction,speed){
	initScrollbar();
	if(direction == 'left' || direction == 'right'){
		autoScrollDirection = direction;
	} else {
		alert('Unbekannte Richtung '+direction);
		return false;
	}
	if(speed <= 0){
		alert('Geschwindigkeit muss groesser 0 sein');
		return false;
	} else {
		autoScrollSpeed = speed='10';
	}
	autoScroll();
}

/**
 *
 * @access public
 * @return void
 **/
function autoScroll(){
	if(initDone) {
		scroll(autoScrollDirection);
	}
	setTimeout('autoScroll()', scrollSpeed+autoScrollSpeed);
}

function imageFadeIn(imgNr){
	if(currentFadeInValue <= 100) {
		scrollbox_images[imgNr].style['filter'] = 'alpha(opacity='+currentFadeInValue+')';
		scrollbox_images[imgNr].style['MozOpacity'] = currentFadeInValue/100;
		currentFadeInValue += fadeSteps;
	}
}

function imageFadeOut(imgNr){
	if(currentFadeOutValue >= opacityStartValue) {
		scrollbox_images[imgNr].style['filter'] = 'alpha(opacity='+currentFadeOutValue+')';
		scrollbox_images[imgNr].style['MozOpacity'] = currentFadeOutValue/100;
		currentFadeOutValue -= fadeSteps;
	}
}

function loadImages(){
	var element = null;
	var i=0;
	while((element = document.getElementById('slide_element['+i+']'))){
		scrollbox_images[i] = element;
		i++;
	}
	return (scrollbox_images.length > 0);
}

function setImages(){
	for(i=0;i<scrollbox_images.length;i++){
		if(center_image >= 0 && i != center_image){
			scrollbox_images[i].style['filter'] = 'alpha(opacity='+opacityStartValue+')';
			scrollbox_images[i].style['MozOpacity'] = opacityStartValue/100;
			if(i == (center_image-1)) {
				leftFromCenter = scrollbox_images[i].width*i;
			} else if(i == (center_image+1)){
				rightFromCenter = scrollbox_images[i].width*i;
			}
		} else if(i == center_image){
			centerPos = scrollbox_images[i].width*i;
		}
		scrollbox_images[i].style['left'] = scrollbox_images[i].width*i+'px';
	}
}

function getImg(){
	var cPos=0,lastCPos=0,imgNr=-1;
	for(i=0;i<(scrollbox_images.length-1);i++){
		cPos = Number(scrollbox_images[i].style['left'].substr(0,scrollbox_images[i].style['left'].length-2));
		if(cPos < lastCPos && cPos < 0){
			imgNr = i;
			lastCPos = cPos;
		}
	}
	if(imgNr < 0){
		cPos=0;
		lastCPos=0;
		for(i=0;i<(scrollbox_images.length-1);i++){
			cPos = Number(scrollbox_images[i].style['left'].substr(0,scrollbox_images[i].style['left'].length-2));
			if(cPos > lastCPos){
				imgNr = i;
				lastCPos = cPos;
			}
		}
	}
	return scrollbox_images[imgNr];
}


function scroll(set_direction){
	if(pos == 0){
		direction = set_direction;
		if(direction == 'left') {
			firstImg = getImg();
			cPos = Number(firstImg.style['left'].substr(0,firstImg.style['left'].length-2));
			if(cPos < 0) {
				firstImg.style['left'] = (totalStripLength - (firstImg.width*2))+'px';
			}
		}else if(direction = 'right'){
			lastImg = getImg();
			cPos = Number(lastImg.style['left'].substr(0,lastImg.style['left'].length-2));
			if(cPos > 0) {
				lastImg.style['left'] = (0 - lastImg.width)+'px';
			}
		} else {
			alert('Unknow direction '+direction);
			return false;
		}
	}
	if(pos < scrollbox_images[0].width){
		for(i=0;i<(scrollbox_images.length-1);i++){
			cPos = Number(scrollbox_images[i].style['left'].substr(0,scrollbox_images[i].style['left'].length-2));
			if(direction == 'right') {
				if(cPos == leftFromCenter && fadeInImg < 0){
					fadeInImg = i;
				} else if(cPos == centerPos && fadeOutImg < 0){
					fadeOutImg = i;
				}
				if(i == fadeInImg){
					imageFadeIn(i);
				} else if(i == fadeOutImg){
					imageFadeOut(i);
				}
				scrollbox_images[i].style['left'] = cPos+scrollbox_images[i].width/steps+'px';
			} else if(direction = 'left'){
				if(cPos == centerPos && fadeOutImg < 0){
					fadeOutImg = i;
				} else if(cPos == rightFromCenter && fadeInImg < 0){
					fadeInImg = i;
				}
				if(i == fadeInImg){
					imageFadeIn(i);
				} else if(i == fadeOutImg){
					imageFadeOut(i);
				}
				scrollbox_images[i].style['left'] = cPos-scrollbox_images[i].width/steps+'px';
			}
		}
		pos += scrollbox_images[i].width/steps;
		setTimeout('scroll()', scrollSpeed);
	} else {
		fadeInImg = -1;
		fadeOutImg = -1;
		pos = 0;
		currentFadeInValue = opacityStartValue;
		currentFadeOutValue = 100;
	}
}

/**
* goToUrl:
* Oeffnet eine neues Fenster
* ---
* @param
* ziel => url auf die verwiesen werden soll
* ---
* by a.giertz
*/
function goToUrl(ziel){

	indexFenster=window.open(ziel,"INDEX","screenX=5,screenY=10,resizable=yes,status=no,toolbar=no,personalbar=no,menubar=no,scrollbars=no");
	indexFenster.focus();
}

/**
* ViewImage:
* oeffnet das angeclickte bild,
* erstellt ein popup das bei anclicken und verlust
* des focus sich wieder schliesst.
* ---
* @param
* bildurl => das bild, das geoeffnet werden soll
* bildtitel => titel des fensters
* x => x pos des fensters
* y => y pos des fensters
* ---
* by setcookie
*/
function ViewImage(bildurl,bildtitel,x,y) {

	var tmp_img = new Image();
	tmp_img.src = bildurl;
	var eigenschaft,sbreite,shoehe,fenster,b,h;
	// stellt die Bildschirmabmessungen fest
	var ns6 = (!document.all && document.getElementById);
	var ie4 = (document.all);
	var ns4 = (document.layers);

	if(ns6||ns4)
	{
		sbreite = window.innerWidth;
		shoehe = window.innerHeight;
	}
	else if(ie4)
	{
		sbreite = document.body.clientWidth;
		shoehe = document.body.clientHeight;
	}
	if(!x)
		x = (sbreite-(tmp_img.width/2))/2;
	if(!y)
		y = (shoehe-(tmp_img.height/2))/2;

	eigenschaften="left="+x+",top="+y+",screenX="+x+",screenY="+y+",width="+tmp_img.width+",height="+tmp_img.height+",menubar=no,toolbar=no";
	fenster=window.open("","",eigenschaften);
	fenster.focus();
	fenster.document.open();
	with (fenster)
	{
		document.write("<html><head>");
		document.write("<script type='text/javascript' language='JavaScript'>");
		document.write("function click() { window.close(); } ");  // bei click  schliessen
		document.write("document.onmousedown=click ");
		document.write("</script>");
		document.write("<title>"+bildtitel+"</title></head>");
		document.write("<body onblur='window.close()'"); // bei Focusverlust schliessen
		document.write("marginwidth='0' marginheight='0' leftmargin='0' topmargin='0'>");
		document.write("<center>");
		document.write("<img src='"+ bildurl +"' border='0'>");
		document.write("<center>");
		document.write("</body></html>");
		fenster.document.close();
	}
}
