/****************************************************************
"bretteleben.de JavaScript Slideshow" - Version 20090406
License: http://www.gnu.org/copyleft/gpl.html
Author: Andreas Berger
Copyright (c) 2009 Andreas Berger - andreas_berger@bretteleben.de
Project page and Demo at http://www.bretteleben.de
Last update: 2009-04-06
*****************************************************************/
//*****parameters to set*****
//into this array insert the paths of your pics.
var def_imges=new Array ('head/ausfahrt001.jpg', 'head/ausfahrt002.jpg', 'head/ausfahrt003.jpg', 'head/ausfahrt004.jpg', 'head/ausfahrt005.jpg', 'head/ausfahrt006.jpg', 'head/ausfahrt007.jpg', 'head/ausfahrt008.jpg', 'head/ausfahrt009.jpg', 'head/ausfahrt010.jpg', 'head/ausfahrt011.jpg', 'head/ausfahrt012.jpg', 'head/blacksat0001.jpg', 'head/blacksat0002.jpg', 'head/blacksat0003.jpg', 'head/blacksat0004.jpg', 'head/ely0001.jpg', 'head/ely0002.jpg', 'head/emo0001.jpg', 'head/emo0002.jpg', 'head/emo0003.jpg', 'head/emo0004.jpg', 'head/emo0005.jpg', 'head/emo0006.jpg', 'head/emo0007.jpg', 'head/emo0008.jpg', 'head/emo0009.jpg', 'head/emo0010.jpg', 'head/emo0011.jpg', 'head/emo0012.jpg', 'head/emo0013.jpg', 'head/emo0014.jpg', 'head/emo0015.jpg', 'head/emo0016.jpg', 'head/emo0017.jpg', 'head/emo0018.jpg', 'head/emo0019.jpg', 'head/emo0020.jpg', 'head/emo0021.jpg', 'head/emo0022.jpg', 'head/emo0023.jpg', 'head/emo0024.jpg', 'head/emo0025.jpg', 'head/emo0026.jpg', 'head/emo0027.jpg', 'head/emo0028.jpg', 'head/emo0029.jpg', 'head/emo0030.jpg', 'head/emo0031.jpg', 'head/emo0032.jpg', 'head/emo0033.jpg', 'head/emo0034.jpg', 'head/geo0001.jpg', 'head/geo0002.jpg', 'head/geo0003.jpg', 'head/geo0004.jpg', 'head/geo0005.jpg', 'head/geo0006.jpg', 'head/KY-emo001.jpg', 'head/KY-emo002.jpg', 'head/KY-emo003.jpg', 'head/KY-emo004.jpg', 'head/KY-emo005.jpg', 'head/KY-emo006.jpg', 'head/KY-emo007.jpg', 'head/KY-emo008.jpg', 'head/KY-emo009.jpg', 'head/KY-emo010.jpg', 'head/KY-emo011.jpg', 'head/KY-emo012.jpg', 'head/KY-emo013.jpg', 'head/KY-emo014.jpg', 'head/KY-emo015.jpg', 'head/KY-emo016.jpg', 'head/logo0001.jpg', 'head/logo0002.jpg', 'head/logo0003.jpg', 'head/logo0004.jpg', 'head/logo0005.jpg', 'head/logo0006.jpg', 'head/logo0007.jpg', 'head/logo0008.jpg', 'head/logo0009.jpg', 'head/ludix0001.jpg', 'head/me0001.jpg', 'head/me0002.jpg', 'head/me0003.jpg', 'head/me0004.jpg', 'head/me0005.jpg', 'head/me0006.jpg', 'head/me0007.jpg', 'head/me0008.jpg', 'head/mio0001.jpg', 'head/mio0002.jpg', 'head/pr0001.jpg', 'head/pr0002.jpg', 'head/pr0003.jpg', 'head/pr0004.jpg', 'head/pr0005.jpg', 'head/pr0006.jpg', 'head/pr0007.jpg', 'head/pr0008.jpg', 'head/pr0009.jpg', 'head/pr0010.jpg', 'head/ra0001.jpg', 'head/ra0002.jpg', 'head/ra0003.jpg', 'head/ra0004.jpg', 'head/ra0005.jpg', 'head/ra0006.jpg', 'head/ra0007.jpg', 'head/ra0008.jpg', 'head/ra0009.jpg', 'head/ra0010.jpg', 'head/ra0011.jpg', 'head/ra0012.jpg', 'head/ra0013.jpg', 'head/ra0014.jpg', 'head/ra0015.jpg', 'head/ra0016.jpg', 'head/ra0017.jpg', 'head/sat0001.jpg', 'head/sat0002.jpg', 'head/sat0003.jpg', 'head/sat0004.jpg', 'head/sat0005.jpg', 'head/sat0006.jpg', 'head/sat0007.jpg', 'head/sat0008.jpg', 'head/sat0009.jpg', 'head/sat0010.jpg', 'head/sat0011.jpg', 'head/sat0012.jpg', 'head/sat0013.jpg', 'head/sat0014.jpg', 'head/sat0015.jpg', 'head/sat0016.jpg', 'head/sat0018.jpg', 'head/sat0019.jpg', 'head/sat0020.jpg', 'head/sat0021.jpg', 'head/skr0001.jpg', 'head/skr0002.jpg', 'head/skr0003.jpg', 'head/skr0004.jpg', 'head/skr0005.jpg', 'head/skr0006.jpg', 'head/skr0007.jpg', 'head/skr0008.jpg', 'head/skr0009.jpg', 'head/sym0001.jpg', 'head/sym0002.jpg', 'head/sym0003.jpg', 'head/sym0004.jpg', 'head/sym0005.jpg', 'head/tec0001.jpg', 'head/tec0002.jpg', 'head/tec0003.jpg', 'head/tec0004.jpg', 'head/tec0005.jpg', 'head/tec0006.jpg', 'head/tec0007.jpg', 'head/tec0008.jpg', 'head/wi-geo0001.jpg', 'head/wi-geo0002.jpg', 'head/wi-geo0003.jpg', 'head/wi-sat0001.jpg', 'head/wi-sat0002.jpg', 'head/barca001.jpg', 'head/barca002.jpg', 'head/barca003.jpg', 'head/barca004.jpg');
    //In diesem Array werden die Bilder angelegt, die die Slideshow verwenden soll.
 
var def_divid="slideshow";
    //Das ist die Identity des DIV-Containers,
    //in dem die Slideshow angezeigt werden soll
 
var def_picwid=980;
    //Die Breite des breitesten Bildes in Pixel.
    //Hinweis: Die Bilder werden vom Script nicht skaliert!
 
var def_pichei=220;
    //Die Höhe des höchsten Bildes in Pixel.
    //Hinweis: Die Bilder werden vom Script nicht skaliert!
 
var def_backgr="#061453";
    //Die Hintergrundfarbe der Slideshow. Sie ist von Bedeutung, wenn Bilder 
    //nicht exakt den - in den beiden vorherigen Parametern angegebenen
    //Abmessungen entsprechen.
 
var def_sdur=10;
    //Die Zeit, die ein Bild zwischen zwei Wechseln angezeigt wird in Sekunden
 
var def_fdur=2;
    //Die Zeit, die der Wechsel dauern soll
 
var def_steps=20;
    //Die Anzahl der Schritte, in denen von 100-0 überblendet werden soll
    //Ein Wert von 1 bis 100, je höher desto fließender der Wechsel
 
var def_startwhen="y";
    //Soll nach dem Laden automatisch gestartet werden? "y" für Ja, "n" für Nein
 
var def_shuffle="y";
    //Soll mit einem zufälligen Bild begonnen werden? "y" für Ja, "n" für Nein
 
var def_showcontr="n";
    //Sollen Kontrollelemente angezeigt werden? "y" für Ja, "n" für Nein
 
var def_contr=new Array('bwd.png','start.png','stop.png','fwd.png');
    //bei den Kontrollelementen hat man die Wahl zwischen Textlinks und grafischen
    //Buttons. In diesem Array werden dementsprechend entweder der Text für die
    //Textlinks oder der Pfad zum Button eingetragen. Findet das Script die Endung
    //.jpg, .gif oder .png, dann wird der Button angezeigt, ansonsten ein Textlink
    //die Reihenfolge der Kontrollelemente und damit auch der Elemente in diesem 
    //Array ist: ZURÜCK - START - STOP - VOR
//****************************************************************

//daisychain onload-events
function daisychain(sl){if(window.onload) {var ld=window.onload;window.onload=function(){ld();sl();};}else{window.onload=function(){sl();};}}

function be_slideshow(be_slideid,be_imges,be_divid,be_picwid,be_pichei,be_backgr,be_sdur,be_fdur,be_steps,be_startwhen,be_shuffle,be_showcontr,be_contr){

//declarations and defaults
	var slideid=(be_slideid)?be_slideid:"0";
	var imges=(be_imges)?be_imges:def_imges;
	var divid=(be_divid)?be_divid:def_divid;
	var picwid=(be_picwid)?be_picwid:def_picwid;
	var pichei=(be_pichei)?be_pichei:def_pichei;
	var backgr=(be_backgr)?be_backgr:def_backgr;
	var sdur=(be_sdur)?be_sdur:def_sdur;
	var fdur=(be_fdur)?be_fdur:def_fdur;
	var steps=(be_steps)?be_steps:def_steps;
	var startwhen=(be_startwhen)?be_startwhen:def_startwhen;
			startwhen=(startwhen.toLowerCase()=="y")?1:0;
	var shuffle=(be_shuffle)?be_shuffle:def_shuffle;
			shuffle=(shuffle.toLowerCase()=="y")?1:0;
	var showcontr=(be_showcontr)?be_showcontr:def_showcontr;
			showcontr=(showcontr.toLowerCase()=="y")?1:0;
	var contr=(be_contr)?be_contr:def_contr;
	var ftim=fdur*1000/steps;
	var stim=sdur*1000;
	var emax=imges.length;
	var self = this;
	var stopit=1;
	var startim=1;
	var u=0;
	var parr = new Array();
	var ptofade,pnext,factor,mytimeout;
//check if there are at least 3 pictures, elswhere double the array
	if(imges.length<=2){imges=imges.concat(imges);}
//shuffle images if set
    if(shuffle){imges.sort(function() {return 0.5 - Math.random()})} 
//  if(shuffle){var i;for(i=0;i<=Math.floor(Math.random()*imges.length);i++){imges.push(imges.shift());}}
  
//push images into array and get things going
	this.b_myfade = function(){
		var a,idakt,paktidakt,ie5exep;
		for(a=1;a<=emax;a++){
			idakt="img_"+slideid+"_"+a;paktidakt=document.getElementById(idakt);
    	ie5exep=new Array(paktidakt);parr=parr.concat(ie5exep);
    }
		if(startwhen){
			stopit=0;
 			mytimeout=setTimeout(function(){self.b_slide();},stim);
 		}
	}

//prepare current and next and trigger slide
	this.b_slide = function(){
		clearTimeout(mytimeout);
		u=0;
		ptofade=parr[startim-1];
		if(startim<emax){pnext=parr[startim];}
		else{pnext=parr[0];}
		pnext.style.zIndex=1;
		pnext.style.visibility="visible";
		pnext.style.filter="Alpha(Opacity=100)";
		pnext.style.MozOpacity=1;
		pnext.style.opacity=1;
		ptofade.style.zIndex=2;
		ptofade.style.visibility="visible";
		ptofade.style.filter="Alpha(Opacity=100)";
		ptofade.style.MozOpacity=1;
		ptofade.style.opacity=1;
		factor=100/steps;
		if(stopit=="0"){
			this.b_slidenow();
		}
	}

//one step forward
	this.b_forw = function(){
		stopit=1;
		clearTimeout(mytimeout);
		ptofade=parr[startim-1];
		if(startim<emax){pnext=parr[startim];startim=startim+1;}
		else{pnext=parr[0];startim=1;}
		ptofade.style.visibility="hidden";
		ptofade.style.zIndex=1;
		pnext.style.visibility="visible";
		pnext.style.zIndex=2;
		self.b_slide();
	}

//one step back
	this.b_back = function(){
		stopit=1;
		clearTimeout(mytimeout);
		if(u==0){ //between two slides
			ptofade=parr[startim-1];
			if(startim<emax){pnext=parr[startim];}
			else{pnext=parr[0];}
			pnext.style.visibility="hidden";
			ptofade.style.zIndex=1;
			ptofade.style.visibility="visible";
			if(startim>=2){startim=startim-1;}
			else{startim=emax;}
			self.b_slide();
		}
		else{ //whilst sliding
			self.b_slide();
		}
	}

//slide as said, then give back
	this.b_slidenow = function(){
		var check1,maxalpha,curralpha;
		check1=ptofade.style.MozOpacity;
		maxalpha=(100-factor*u)/100*105;
		if(check1<=maxalpha/100){u=u+1;}
		curralpha=100-factor*u;
		ptofade.style.filter="Alpha(Opacity="+curralpha+")";
		ptofade.style.MozOpacity=curralpha/100;
		ptofade.style.opacity=curralpha/100;
		if(u<steps){ //slide not finished
			if(stopit=="0"){mytimeout=setTimeout(function(){self.b_slidenow();},ftim);}
			else {this.b_slide();}
		}
		else{ //slide finished
			if(startim<emax){
				ptofade.style.visibility="hidden";
				ptofade.style.zIndex=1;
				pnext.style.zIndex=2;
				startim=startim+1;u=0;
				mytimeout=setTimeout(function(){self.b_slide();},stim);
			}
			else{
				ptofade.style.visibility="hidden";
				ptofade.style.zIndex=1;
				pnext.style.zIndex=2;
				startim=1;u=0;
				mytimeout=setTimeout(function(){self.b_slide();},stim);
			}
		}
	}

//manual start
	this.b_start= function(){
		if(stopit==1){
 			stopit=0;
 			mytimeout=setTimeout(function(){self.b_slide();},stim);
 		}
	}

//manual stop
	this.b_stop= function(){
		clearTimeout(mytimeout);
		stopit=1;
		this.b_slide();
	}

//insert css and images
	this.b_insert= function(){
		var b, thestylid, thez, thevis, slidehei;
		slidehei=(showcontr)?(pichei+25):(pichei); //add space for the controls
		var myhtml="<div style='width:"+picwid+"px;height:"+slidehei+"px;'>";
   			myhtml+="<div style='position:absolute;width:"+picwid+"px;height:"+pichei+"px;'>";
		for(b=1;b<=emax;b++){
			thez=1;thevis='hidden';
			if(b<=1) {thez=2; thevis='visible';}
			  myhtml+="<div id='img_"+slideid+"_"+b+"' style='font-size:0;line-height:"+pichei+"px;margin:0;padding:0;text-align:center;visibility:"+thevis+";z-index:"+thez+";position:absolute;left:0;top:0;width:"+picwid+"px;height:"+pichei+"px;background-color:"+backgr+";'>";
				myhtml+="<img src='"+imges[(b-1)]+"' style='vertical-align:middle;border:0;' alt=''/></div>";
		}
   			myhtml+="</div>";
//show controls
		if(showcontr){
				for(b=1;b<=4;b++){
					var check=contr[b-1].substring(contr[b-1].length-3).toLowerCase(); //check for buttons
					contr[b-1]=(check=="jpg"||check=="gif"||check=="png")?("<img src='"+contr[b-1]+"' style='border:none;' alt=''/>"):(contr[b-1]);
				}
   			myhtml+="<div style='display:block;width:"+picwid+"px;padding-top:"+(pichei+3)+"px;text-align:right;'>";
   			myhtml+="<a href='javascript:be_"+slideid+".b_back();' style='text-decoration:none'>"+contr[0]+"</a>&nbsp;";
   			myhtml+="<a href='javascript:be_"+slideid+".b_start();' style='text-decoration:none'>"+contr[1]+"</a>&nbsp;";
   			myhtml+="<a href='javascript:be_"+slideid+".b_stop();' style='text-decoration:none'>"+contr[2]+"</a>&nbsp;";
   			myhtml+="<a href='javascript:be_"+slideid+".b_forw();' style='text-decoration:none'>"+contr[3]+"</a>";
		}
   			myhtml+="</div>";
		document.getElementById(divid).innerHTML=myhtml;
//        setTimeout(function(){self.b_myfade();},stim); //start verzögern
		self.b_myfade();
	}

//call autostart-function
daisychain(this.b_insert);
	
}

var be_0= new be_slideshow();