var BySlideMenu=new Class({Implements:Options,options:{defaultIndex:false,expandMode:"mouseover",pinMode:false,vertical:false,compressSize:40,elementWidth:320,elementHeight:240,autoSize:true,duration:"normal",transition:"linear"},initialize:function(E,M){this.setOptions(M);this.elementsId=[];this.containerId=$pick(E,"byslidemenu");var B=$(this.containerId);B.addEvent("mouseleave",function(){this.resetAll()}.bind(this));var A=B.getChildren();var D=A.length;var H=null,G=null;if(this.options.autoSize){var K=A[0].getElement("img");if(K){H=K.getHeight();G=K.getWidth()}}if(this.options.vertical){this.posAttr="top";this.openSize=$pick(H,this.options.elementHeight);var J=$pick(G,this.options.elementWidth);var L=this.openSize+((D-1)*this.options.compressSize);this.closeSize=L/D;var F=this.openSize;var I=J}else{this.posAttr="left";this.openSize=$pick(G,this.options.elementWidth);var L=$pick(H,this.options.elementHeight);var J=this.openSize+((D-1)*this.options.compressSize);this.closeSize=J/D;var F=L;var I=this.openSize}B.setStyles({padding:0,position:"relative",overflow:"hidden",width:J,height:L});var C=0;A.each(function(Q){var N=C*this.options.compressSize;var O=this.openSize+((C-1)*this.options.compressSize);var P=C*this.closeSize;Q.setStyles({position:"absolute",height:F,width:I});Q.setStyle(this.posAttr,P);Q.set("tween",{duration:this.options.duration,transition:this.options.transition});C++;Q.set("id",this.containerId+"_Elm"+C);Q.store("id",C);Q.store("beforePos",N);Q.store("afterPos",O);Q.store("closePos",P);this.elementsId.include(C);if([this.options.pinMode,this.options.expandMode].contains("mouseover")){Q.addEvent("mouseenter",function(R){if(this.options.expandMode=="mouseover"){this.expand(R,this.options.pinMode=="mouseover")}}.bind(this,Q))}if(this.options.pinMode||this.options.expandMode=="click"){Q.addEvent("click",function(R){if(this.options.defaultIndex==R.retrieve("id")){this.options.defaultIndex=0;this.resetAll()}else{if(this.options.expandMode=="click"){this.expand(R,this.options.pinMode=="click")}else{this.options.defaultIndex=R.retrieve("id")}}}.bind(this,Q))}},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)}var A=C.retrieve("id");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)},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){var B=A.retrieve("closePos");A.get("tween",{property:this.posAttr,duration:this.options.duration,transition:this.options.transition}).start(B)},resetAll:function(){if(this.options.defaultIndex){this.expand(this.options.defaultIndex)}else{this.elementsId.each(function(A){this.reset($(this.containerId+"_Elm"+A))},this)}}});
