
function slider(){var clThis=this;var clDoc=document;var clError='';var clDotsAnz=0;var clActiveDot=0;var clTimeOut='';var clSliderDiv='';var clFadeTimeout='';this.defaults={sliderDiv:'slDiv',beforeCreate:function(){},success:function(){},onError:function(){},timeToFade:1000,animationSpeed:5000}
this.init=function(options){var optionsArray=new Array('sliderDiv','beforeCreate','success','onError','timeToFade','animationSpeed');var max=optionsArray.length;var tempDots='';for(var h=0;h<max;h++){var name=optionsArray[h];this[name]=(options!==undefined&&options[name]!==undefined)?options[name]:clThis.defaults[name];}
if(!getEle(clThis.sliderDiv)||!getEle('slDots')){clError='Das Slider Div ist nicht vorhanden';}else{clSliderDiv=getEle(clThis.sliderDiv);tempDots=getEle('slDots');tempDots=tempDots.getElementsByTagName('li');clDotsAnz=tempDots.length-1;for(var fnI=0;fnI<=clDotsAnz;fnI++){tempDots[fnI].onclick=function(){var fnID=this.id.replace(/slDot/,'');clThis.switchOffer(fnID);};}
if(clThis.animationSpeed>0){clTimeOut=setTimeout(function(){clThis.switchOffer(-1);},clThis.animationSpeed);}}
if(clError!=''){clError='';}}
this.switchOffer=function(extID){clearTimeout(clTimeOut);getEle('overlayDots').style.display='block';var oldEle=getEle('slSlide'+clActiveDot);if(/^\d*$/.test(extID)&&extID!=''){clActiveDot=parseInt(extID);}else{clActiveDot=parseInt(clActiveDot)+1;}
if(clActiveDot>clDotsAnz){clActiveDot=0;}
var actEle=getEle('slSlide'+clActiveDot);actEle.style.display='block';var fnDotsDiv=getEle('slDots');var fnDots=fnDotsDiv.getElementsByTagName('li');var fnDotsL=fnDots.length;for(fnI=0;fnI<fnDotsL;fnI++){removeClass(fnDots[fnI],'slDotAktive');}
addClass(fnDots[clActiveDot],'slDotAktive');animateFade(oldEle,actEle.id);}
resetAfterFading=function(oldEle,actEle){oldEle.style.display='none';oldEle.style.zIndex=50;oldEle.opacity='';oldEle.FadeState='';oldEle.FadeTimeLeft='';changeOpac(oldEle,1);actEle.style.zIndex=100;getEle('overlayDots').style.display='none';if(clThis.animationSpeed>0){clTimeOut=setTimeout(function(){clThis.switchOffer(-1);},clThis.animationSpeed);}}
closeSlider=function(){clSliderDiv.innerHTML='';}
animateFade=function(oldEle,extActEleID){if(oldEle==null)
return;clearTimeout(clFadeTimeout);var fnFadeState=oldEle.FadeState;if(fnFadeState==null||fnFadeState==''){var fnOpacity=oldEle.opacity;if(fnOpacity==null||fnOpacity==''||fnOpacity=='1'||typeof fnOpacity==undefined){oldEle.FadeState=2;}else{oldEle.FadeState=-2;}}
if(fnFadeState==1||fnFadeState==-1){oldEle.FadeState=oldEle.FadeState==1?-1:1;oldEle.FadeTimeLeft=clThis.timeToFade-oldEle.FadeTimeLeft;}else{oldEle.FadeState=oldEle.FadeState==2?-1:1;oldEle.FadeTimeLeft=clThis.timeToFade;clFadeTimeout=setTimeout("fadeIt("+new Date().getTime()+",'"+oldEle.id+"', '"+extActEleID+"')",33);}}
fadeIt=function(lastTick,extEleID,extActEleID){var curTick=new Date().getTime();var elapsedTicks=curTick-lastTick;var extEle=getEle(extEleID);if(extEle.FadeTimeLeft<=elapsedTicks){extEle.opacity=extEle.FadeState==1?'1':'0';changeOpac(extEle,extEle.FadeState==1?'1':'0');extEle.FadeState=extEle.FadeState==1?2:-2;resetAfterFading(extEle,getEle(extActEleID));return;}
extEle.FadeTimeLeft-=elapsedTicks;var newOpVal=extEle.FadeTimeLeft/clThis.timeToFade;if(extEle.FadeState==1){newOpVal=1-newOpVal;}
changeOpac(extEle,newOpVal)
clFadeTimeout=setTimeout("fadeIt("+curTick+",'"+extEleID+"', '"+extActEleID+"')",33);}
changeOpac=function(extEle,extOpacity){var fnEleStyle=extEle.style;fnEleStyle.opacity=(extOpacity);fnEleStyle.MozOpacity=(extOpacity);fnEleStyle.KhtmlOpacity=(extOpacity);fnEleStyle.filter='alpha(opacity='+(extOpacity*100)+')';}
getEle=function(el){e=clDoc.getElementById(el);return e;}
addClass=function(element,className){if(!hasClass(element,className)){if(element.className){element.className+=" "+className;}else{element.className=className;}}}
removeClass=function(ele,cls){if(hasClass(ele,cls)){var reg=new RegExp('(\\s|^)'+cls+'(\\s|$)');ele.className=ele.className.replace(reg,' ');}}
hasClass=function(element,className){var regexp=addClass[className];if(!regexp){regexp=addClass[className]=new RegExp("(^|\\s)"+className+"(\\s|$)");}
return regexp.test(element.className);}}