var openNewWindow;var MooFlow=new Class({getOptions:function(){return{onStart:Class.empty,onClickView:Class.empty,container:"MooFlow",imgContainer:"images",slider:false,caption:false,reflection:0.5,factor:115,startIndex:0,buttons:false,interval:3000,useWindowResize:false,useMouseWheel:false,useKeyInput:false}},initialize:function(A){this.setOptions(this.getOptions(),A);this.MooFlow=$(this.options.container);this.images=$$(this.options.images);this.iL=this.images.length-1;this.factor=this.options.factor;this.ref=this.options.reflection;this.foc=130;this.cur=0;this.tar=0;this.index=this.options.startIndex;this.isRun=false;this.sli=null;this.checker=null;this.interval=this.options.interval;if(this.options.buttons){this.initButtons(this.options.buttons)}if(this.options.useWindowResize){window.addEvent("resize",this.update.bind(this))}if(this.options.useMouseWheel){this.MooFlow.addEvent("mousewheel",this.wheelTo.bind(this))}if(this.options.useKeyInput){document.addEvent("keydown",this.keyTo.bind(this))}this.init()},init:function(){this.images.each(function(B,A){B.setStyle("display","block");B.addEvent("click",this.clickTo.bind(this,[A]));B.addEvent("dblclick",this.callBack.bind(this,[B,A]));B.w=B.width;B.h=B.height},this);this.update();this.fireEvent("onStart")},update:function(){this.oW=this.MooFlow.getSize().size.x;this.MooFlow.setStyles({height:this.oW*0.52,visibility:"visible"});$(this.options.imgContainer).setStyle("height",this.oW*0.5);this.sz=this.oW*0.5;if(this.options.slider){this.sli=new Slider($(this.options.slider.slider),$(this.options.slider.knob),{steps:this.iL}).set(this.index);$(this.options.slider.knob).setStyles({width:$(this.options.slider.slider).getSize().size.x/this.iL,opacity:1});this.sli.addEvent("onChange",this.glideTo.bind(this))}this.process(this.index*-this.foc);this.glideTo(this.index)},initButtons:function(A){if($chk(A.prev)){$(A.prev).addEvent("click",this.prev.bind(this))}if($chk(A.stop)){$(A.stop).addEvent("click",this.stop.bind(this))}if($chk(A.play)){$(A.play).addEvent("click",this.play.bind(this))}if($chk(A.next)){$(A.next).addEvent("click",this.next.bind(this))}},callBack:function(B,A){if(this.index!=A){return }this.fireEvent("onClickView",B)},prev:function(){if(this.index>0){this.clickTo(this.index-1)}},stop:function(){$clear(this.autoPlay)},play:function(){this.autoPlay=this.auto.periodical(this.interval,this)},auto:function(){if(this.index<this.iL){this.next()}else{if(this.index==this.iL){this.clickTo(0)}}},next:function(){if(this.index<this.iL){this.clickTo(this.index+1)}},start:function(){this.isRun=true;this.checker=this.check.periodical(50,this)},end:function(){$clear(this.checker)},keyTo:function(A){A=new Event(A);switch(A.code){case 37:A.stop();this.prev();break;case 39:A.stop();this.next()}},wheelTo:function(A){A=new Event(A).stop();var B=A.wheel;if(A.preventDefault){A.preventDefault()}if(B>0){this.prev()}if(B<0){this.next()}},clickTo:function(C){if(C==this.index){var A=this.images[C].name.substr(0,2);if(A=="1|"){var B=this.images[C].name.substr(2,this.images[C].name.length-2);window.open(B)}else{document.location=this.images[C].name}return }if(this.options.slider){this.sli.set(C)}else{this.glideTo(C)}},glideTo:function(A){if(!this.isRun){this.start()}if(this.options.caption&&this.images[A]){$(this.options.caption).setHTML(this.images[A].alt)}this.index=A;this.tar=A*-this.foc},check:function(){switch(this.tar<this.cur-1||this.tar>this.cur+1){case true:this.process(this.cur+(this.tar-this.cur)/3);break;default:this.isRun=false;this.end()}},process:function(x){this.cur=x;var zI=this.iL,z,iH,iW,f=this.factor,ref=this.ref,oW=this.oW,s=this.sz,fo=this.foc;with(Math){this.images.each(function(img){if(x<-fo*5||x>fo*5){img.setStyle("display","none")}else{iH=img.h,iW=img.w;z=Math.sqrt(10000+x*x)+100;L=x/z*s+s-(f/2)/z*s;H=(iH/iW*f)/z*s;T=(oW*0.36-H)+((H/(ref+1))*ref);W=round(iW*H/iH);if(H>=iW*0.5){W=round(f/z*s)}img.setStyle("left",round(L));img.setStyle("height",round(H));img.setStyle("width",round(W));img.setStyle("top",round(T));img.setStyle("zIndex",x<0?zI++:zI--);img.setStyle("display","block")}x+=fo})}}});MooFlow.implement(new Options);MooFlow.implement(new Events);