var BySlideMenu=new Class({Implements:Options,options:{defaultIndex:false,expandMode:"mouseover",pinMode:false,vertical:false,compressSize:40,elementWidth:320,elementHeight:240,autoSize:true,duration:500,transition:"linear",containerWidth:null,containerHeight:null,useOverflow:false},initialize:function(f,o){this.setOptions(o);this.elementsId=[];this.containerId=$pick(f,"byslidemenu");var b=$(this.containerId);b.addEvent("mouseleave",function(){this.resetAll()}.bind(this));var a=b.getChildren();var e=a.length;var j=null,i=null;if(this.options.autoSize){var m=a[0].getElement("img");if(m){j=m.getHeight();i=m.getWidth()}}var h=a[0].getStyle("padding-left").toInt()+a[0].getStyle("padding-right").toInt()+a[0].getStyle("border-left-width").toInt()+a[0].getStyle("border-right-width").toInt();var d=a[0].getStyle("padding-top").toInt()+a[0].getStyle("padding-bottom").toInt()+a[0].getStyle("border-top-width").toInt()+a[0].getStyle("border-bottom-width").toInt();if(this.options.vertical){this.posAttr="top";var l=$pick(i,this.options.containerWidth,this.options.elementWidth);if(l=="full"){l=b.getParent().getStyle("width").toInt()}if(this.options.containerHeight){if(this.options.containerWidth=="full"){var n=b.getParent().getStyle("height").toInt()}else{var n=this.options.containerHeight}this.openSize=n-((e-1)*this.options.compressSize)}else{this.openSize=$pick(j,this.options.elementHeight);var n=this.openSize+((e-1)*this.options.compressSize)}this.closeSize=n/e;var g=this.openSize;var k=l}else{this.posAttr="left";var n=$pick(j,this.options.containerHeight,this.options.elementHeight);if(n=="full"){n=b.getParent().getStyle("height").toInt()}if(this.options.containerWidth){if(this.options.containerWidth=="full"){var l=b.getParent().getStyle("width").toInt()}else{var l=this.options.containerWidth}this.openSize=l-((e-1)*this.options.compressSize)}else{this.openSize=$pick(i,this.options.elementWidth);var l=this.openSize+((e-1)*this.options.compressSize)}this.closeSize=l/e;var g=n;var k=this.openSize}b.setStyles({padding:0,position:"relative",overflow:"hidden",width:l,height:n});var c=0;a.each(function(s){var p=c*this.options.compressSize;var q=this.openSize+((c-1)*this.options.compressSize);var r=c*this.closeSize;s.setStyles({position:"absolute",height:g-d,width:k-h});s.setStyle(this.posAttr,r);s.set("tween",{duration:this.options.duration,transition:this.options.transition});c++;s.set("id",this.containerId+"_Elm"+c);s.store("id",c);s.store("beforePos",p);s.store("afterPos",q);s.store("closePos",r);this.elementsId.include(c);if([this.options.pinMode,this.options.expandMode].contains("mouseover")){s.addEvent("mouseenter",function(t){if(this.options.expandMode=="mouseover"){this.expand(t,this.options.pinMode=="mouseover")}}.bind(this,s))}if(this.options.pinMode||this.options.expandMode=="click"){s.addEvent("click",function(t){if(this.options.defaultIndex==t.retrieve("id")){this.options.defaultIndex=0;this.resetAll()}else{if(this.options.expandMode=="click"){this.expand(t,this.options.pinMode=="click")}else{this.options.defaultIndex=t.retrieve("id")}}}.bind(this,s))}},this);if(this.options.defaultIndex){this.expand(this.options.defaultIndex,false,true)}},expand:function(c,d,b){if($type(c)=="number"){c=$(this.containerId+"_Elm"+c)}if(this.options.useOverflow){this.clearOverflow()}var a=c.retrieve("id");if(this.options.useOverflow){this.switchOverflowTimer=this.switchOverflow.delay(this.options.duration,this,c)}if(d){this.options.defaultIndex=a}this.elementsId.each(function(e){var f=$(this.containerId+"_Elm"+e);if(e>a){this.compressAfter(f,b)}else{this.compressBefore(f,b)}},this)},switchOverflow:function(a){a.setStyle("overflow","auto")},clearOverflow:function(){$clear(this.switchOverflowTimer);$(this.containerId).getChildren().setStyle("overflow","")},compressBefore:function(c,a){var d=c.retrieve("beforePos");var b=c.get("tween",{property:this.posAttr,duration:this.options.duration,transition:this.options.transition});if(a){b.set(d)}else{b.start(d)}},compressAfter:function(c,a){var d=c.retrieve("afterPos");var b=c.get("tween",{property:this.posAttr,duration:this.options.duration,transition:this.options.transition});if(a){b.set(d)}else{b.start(d)}},reset:function(a){},resetAll:function(){if(this.options.useOverflow){this.clearOverflow()}if(this.options.defaultIndex){this.expand(this.options.defaultIndex)}else{this.elementsId.each(function(a){this.reset($(this.containerId+"_Elm"+a))},this)}}});