var Carousel=Class.create();Carousel.prototype={speed:1,direction:-1,autoplay:false,btnLeft:null,btnRight:null,wrapper:null,slides:null,count:0,bundle:5,displayedItems:5,index:0,slideWidth:123,slideHeight:0,moveDuration:0.75,contMoveDelay:1000,alreadyMoving:false,x:0,y:0,autoplayTimeout:null,listener:null,initialize:function(a,k){this.element=$(a);var b=this.element.getElementsByClassName("btnLeft");var j=this.element.getElementsByClassName("btnRight");if(!b||b.length==0){new Insertion.Top(this.element,'<a href="#" class="btnLeft"></a>')}if(!j||j.length==0){new Insertion.Before(this.element.getElementsByClassName("clear")[0],'<a href="#" class="btnRight"></a>')}this.btnLeft=this.element.getElementsByClassName("btnLeft")[0];this.btnRight=this.element.getElementsByClassName("btnRight")[0];if(this.btnLeft){this.btnLeft.functionality="rewind"}if(this.btnRight){this.btnRight.functionality="usualSlide"}this.wrapper=this.element.getElementsByClassName("carouselInnerWr")[0];this.slides=this.wrapper.childElements();this.count=this.slides.length;if(this.count==0){this.element.hide();return}if($(this.slides[0]).hasClassName("contentasset")){this.slides=this.slides[0].childElements();this.count=this.slides.length}this.listener=$A();var d=0;var h=this.slides.length;if(h==0){this.btnLeft.hide();this.btnRight.hide();return}var c,f;for(c=0;c<h;c++){var g=this.slides[c];var e=g.down("img");if(e!=undefined){if(!e.complete){e.observe("load",this.fixHeightIssue.bindAsEventListener(this))}else{this.fixHeightIssue({element:function(){return e}})}}}if(typeof(k)!="undefined"){autoplay=k.autoplay;bundle=k.bundle;displayedItems=k.displayedItems;slideWidth=k.slideWidth;slideHeight=k.slideHeight;if(k.moveDuration){this.moveDuration=k.moveDuration}if(bundle>=4){this.moveDuration+=0.2}}this.autoplay=typeof(autoplay)!="undefined"?autoplay:false;this.displayedItems=typeof(displayedItems)!="undefined"?displayedItems:5;this.bundle=typeof(bundle)!="undefined"?(bundle>this.displayedItems?this.displayedItems:bundle):this.displayedItems;this.slideWidth=typeof(slideWidth)!="undefined"?slideWidth:123;this.slideHeight=typeof(slideHeight)!="undefined"?slideHeight:0;this.btnLeft.onclick=function(){this.previous();return false}.bind(this);this.btnRight.onclick=function(){this.next();return false}.bind(this);if(this.autoplay){if(this.displayedItems<this.count){this.wrapper.onmouseover=this.onmouseover.bind(this);this.wrapper.onmouseout=this.onmouseout.bind(this);this.move()}this.updateButtonStates()}else{this.updateButtonStates()}},fixHeightIssue:function(b){this.max_height=this.max_height||0;var c=b.element();var a=c.getHeight();if(a>this.max_height){this.max_height=a;this.wrapper.up().style.height=this.max_height+"px";this.btnLeft.style.marginTop=this.btnRight.style.marginTop=(this.max_height-40)/2+"px"}},next:function(){if(this.alreadyMoving){return}window.clearTimeout(this.autoplayTimeout);this.x=parseInt(this.wrapper.style.left.replace("px",""));this.y=parseInt(this.wrapper.style.top.replace("px",""));if(this.btnRight.functionality=="usualSlide"){this.direction=-1;this.alreadyMoving=true;var b=this.bundle;var e=this.count-this.index;if(e-this.bundle<this.displayedItems){b=(e-this.displayedItems)}var d=this.autoplay?(-(this.x+this.slideWidth*this.index)):0;this.index+=b;this.curEffect=new Effect.MoveBy(this.wrapper,this.direction*this.slideHeight*b,d+this.direction*this.slideWidth*b,{duration:this.moveDuration,afterFinish:function(){this.x=parseInt(this.wrapper.style.left.replace("px",""));this.y=parseInt(this.wrapper.style.top.replace("px",""));this.alreadyMoving=false;if(this.autoplay){window.setTimeout(this.move.bind(this),this.contMoveDelay)}}.bind(this)});this.updateButtonStates();this.direction=-1}else{if(this.btnRight.functionality=="rewind"){this.direction=1;this.alreadyMoving=true;var b=this.index;var d=this.autoplay?(-(this.x+this.slideWidth*this.index)):0;this.index-=b;var c=this.direction*this.slideHeight*b;var f=d+this.direction*this.slideWidth*b;var a=this.moveDuration;if(a&&a!=""&&a>0){a*=2}this.curEffect=new Effect.MoveBy(this.wrapper,c,f,{duration:a,transition:Effect.Transitions.SwingFrom,afterFinish:function(){this.x=parseInt(this.wrapper.style.left.replace("px",""));this.y=parseInt(this.wrapper.style.top.replace("px",""));this.alreadyMoving=false;this.updateButtonStates();if(this.autoplay){window.setTimeout(this.continueAutoplay.bind(this),this.contMoveDelay)}}.bind(this)});this.direction=1}}},previous:function(){if(this.alreadyMoving){return}window.clearTimeout(this.autoplayTimeout);this.x=parseInt(this.wrapper.style.left.replace("px",""));this.y=parseInt(this.wrapper.style.top.replace("px",""));if(this.btnLeft.functionality=="rewind"){this.direction=-1;this.alreadyMoving=true;var b=this.count-this.displayedItems;var e=this.autoplay?(-(this.x+this.slideWidth*this.index)):0;this.index+=b;var d=this.direction*this.slideHeight*b;var f=e+this.direction*this.slideWidth*b;var a=this.moveDuration;if(a&&a!=""&&a>0){a*=2}this.curEffect=new Effect.MoveBy(this.wrapper,d,f,{duration:a,transition:Effect.Transitions.SwingFrom,afterFinish:function(){this.x=parseInt(this.wrapper.style.left.replace("px",""));this.y=parseInt(this.wrapper.style.top.replace("px",""));this.alreadyMoving=false;if(this.autoplay){window.setTimeout(this.continueAutoplay.bind(this),this.contMoveDelay)}}.bind(this)});this.updateButtonStates();this.direction=-1}else{if(this.btnLeft.functionality=="usualSlide"){this.direction=1;this.alreadyMoving=true;var b=this.bundle;var c=this.index-this.bundle;if(c<0){b+=c}var e=this.autoplay?(-(this.x+this.slideWidth*this.index)):0;this.index-=b;this.curEffect=new Effect.MoveBy(this.wrapper,this.direction*this.slideHeight*b,e+this.direction*this.slideWidth*b,{duration:this.moveDuration,afterFinish:function(){this.x=parseInt(this.wrapper.style.left.replace("px",""));this.y=parseInt(this.wrapper.style.top.replace("px",""));this.alreadyMoving=false;this.updateButtonStates();if(this.autoplay){window.setTimeout(this.continueAutoplay.bind(this),this.contMoveDelay)}}.bind(this)});this.direction=1}}},updateButtonStates:function(){if(this.index+this.displayedItems>=this.count){this.btnRight.functionality="rewind"}else{this.btnRight.functionality="usualSlide"}if(this.index==0){this.btnLeft.functionality="rewind"}else{this.btnLeft.functionality="usualSlide"}if(this.count<=this.displayedItems){this.btnLeft.style.visibility="hidden";this.btnRight.style.visibility="hidden";this.btnLeft.style.display="none";this.btnRight.style.display="none"}this.notifyListener()},move:function(){if(this.alreadyMoving){return}this.wrapper.style.left=this.x+"px";this.x+=this.speed*this.direction;if(this.x>0||this.x<(-1*this.count*this.slideWidth+this.slideWidth*this.displayedItems)){this.direction*=-1}if(this.x>0){this.x=0}else{if(this.x<(-1*this.count*this.slideWidth+this.slideWidth*this.displayedItems)){this.x=-1*this.count*this.slideWidth+this.slideWidth*this.displayedItems}}var a=-1*this.x/this.slideWidth;this.index=this.direction==-1?Math.floor(a):Math.ceil(a);this.updateButtonStates();this.continueAutoplay()},continueAutoplay:function(){if(this.autoplayTimeout){window.clearTimeout(this.autoplayTimeout)}this.autoplayTimeout=window.setTimeout(this.move.bind(this),50)},onmouseover:function(){window.clearTimeout(this.autoplayTimeout)},onmouseout:function(){this.continueAutoplay()},notifyListener:function(){if(this.listener==null||this.listener.length<1){return}var a,b;for(a=0,b=this.listener.length;a<b;a++){var c=this.listener[a];c()}},addListener:function(a){this.listener.push(a)}};var PageDisplay=Class.create();PageDisplay.prototype={initialize:function(b,a){if(typeof(b)!="string"){return alert("Kein HTML fuer "+b+" gefunden")}if(typeof(a)!="object"){return alert("Kein Carousel-Objekt uebergeben")}this.element=$(b);this.carousel=a;this.indexProd=this.element.getElementsBySelector(".indexProd")[0];this.prodCount=this.element.getElementsBySelector(".prodCount")[0];this.carousel.addListener(this.onSwitch.bind(this));this.setProdCount(this.carousel.count);this.setIndexProd(1,this.carousel.bundle)},setProdCount:function(a){this.prodCount.innerHTML=a},setIndexProd:function(c,a){var b=a;if(this.carousel.count<a){b=this.carousel.count}this.indexProd.innerHTML=c+"-"+b},onSwitch:function(){this.setProdCount(this.carousel.count);this.setIndexProd(this.carousel.index+1,this.carousel.index+this.carousel.bundle)}};