/****************************************************************
"bretteleben.de JavaScript Slideshow" - Version 20100412
License: http://www.gnu.org/copyleft/gpl.html
Author: Andreas Berger
Copyright (c) 2010 Andreas Berger - andreas_berger@bretteleben.de
Project page and Demo at http://www.bretteleben.de
Last update: 2010-04-12
Poorly modified (slim version): Feierfox - info@corvina.ch
*****************************************************************/
//*****parameters to set*****
var def_imges=new Array ('/pics2/2.jpeg' ,'/pics2/10.jpeg' ,'/pics2/3.jpeg' ,'/pics2/25.jpeg' ,'/pics2/17.jpeg' ,'/pics2/22.jpeg' ,'/pics2/15.jpeg' ,'/pics2/28.jpeg' ,'/pics2/24.jpeg' ,'/pics2/16.jpeg' ,'/pics2/20.jpeg' ,'/pics2/33.jpeg' ,'/pics2/29.jpeg' ,'/pics2/41.jpeg' ,'/pics2/37.jpeg' ,'/pics2/18.jpeg' ,'/pics2/9.jpeg' ,'/pics2/26.jpeg' ,'/pics2/7.jpeg' ,'/pics2/23.jpeg' ,'/pics2/6.jpeg' ,'/pics2/13.jpeg' ,'/pics2/31.jpeg' ,'/pics2/36.jpeg' ,'/pics2/12.jpeg' ,'/pics2/8.jpeg' ,'/pics2/14.jpeg' ,'/pics2/34.jpeg' ,'/pics2/32.jpeg' ,'/pics2/21.jpeg' ,'/pics2/0.jpeg' ,'/pics2/30.jpeg' ,'/pics2/35.jpeg' ,'/pics2/2.jpeg' ,'/pics2/4.jpeg' ,'/pics2/19.jpeg' ,'/pics2/38.jpeg' ,'/pics2/11.jpeg' ,'/pics2/1.jpeg' ,'/pics2/40.jpeg' ,'/pics2/5.jpeg' ,'/pics2/39.jpeg' ,'/pics2/27.jpeg');
var def_divid="slideshow";
var def_picwid=128;
var def_pichei=128;
var def_backgr="#ffffff";
var def_sdur=2;
var def_fdur=1;
var def_steps=20;
var def_startwhen="y";
var def_shuffle="y";
//****************************************************************

//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){

//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 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){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)";
        try{pnext.style.removeAttribute("filter");} catch(err){}
        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);
            }
        }
    }

//insert css and images
    this.b_insert= function(){
        var b, thestylid, thez, thevis, slidehei;
        slidehei=pichei
        var myhtml="<div style='position:absolute;'>";
        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;'>";
                myhtml+="<img src='"+imges[(b-1)]+"' style='vertical-align:middle;border:0;' alt=''/></div>";
        }
            myhtml+="</div>";
        document.getElementById(divid).innerHTML=myhtml;
        self.b_myfade();
    }

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

var be_0= new be_slideshow();
