var BackgroundSlider=new Class({getOptions:function(){return{duration:300,wait:500,transition:Fx.Transitions.sineInOut,className:false,fixHeight:false,fixWidth:false,id:false,padding:{top:0,right:0,bottom:0,left:0},onClick:this.setStart,mouseOver:true}},initialize:function(B,A){this.setOptions(this.getOptions(),A);this.elements=$$(B);this.timer=0;if(this.options.id){this.bg=$(this.options.id)}else{this.bg=new Element("div").setProperty("id","BgSlider_"+new Date().getTime()).injectInside(document.body);if(this.options.className){this.bg.addClass(this.options.className)}}this.effects=new Fx.Styles(this.bg,{duration:this.options.duration,transition:this.options.transition});this.elements.each(function(D,C){if(this.options.mouseOver){D.addEvent("mouseover",this.move.bind(this,D));D.addEvent("mouseout",this.reset.bind(this))}D.addEvent("click",this.options.onClick.bind(this,D));if(D.hasClass("bgStart")){this.set(D)}},this);window.addEvent("resize",function(){this.move(this.startElement)}.bind(this))},setStart:function(A){this.startElement=A},set:function(A){this.setStart(A);var C=A.getCoordinates();if(this.options.id){this.options.padding.top=this.bg.getStyle("paddingTop").toInt();this.options.padding.right=this.bg.getStyle("paddingRight").toInt();this.options.padding.bottom=this.bg.getStyle("paddingBottom").toInt();this.options.padding.left=this.bg.getStyle("paddingLeft").toInt();this.bg.setStyle("padding","0px")}var B={};B.top=(C.top-this.options.padding.top)+"px";B.left=(C.left-this.options.padding.left)+"px";if(!this.options.fixHeight){B.height=(C.height+this.options.padding.top+this.options.padding.bottom)+"px"}if(!this.options.fixWidth){B.width=(C.width+this.options.padding.left+this.options.padding.right)+"px"}this.bg.setStyles(B)},reset:function(){if(this.options.wait){this.timer=this.move.delay(this.options.wait,this,this.startElement)}},move:function(A){$clear(this.timer);var C=A.getCoordinates();this.effects.stop();var B={};B.top=C.top-this.options.padding.top;B.left=C.left-this.options.padding.left;if(!this.options.fixHeight){B.height=C.height+this.options.padding.top+this.options.padding.bottom}if(!this.options.fixWidth){B.width=C.width+this.options.padding.left+this.options.padding.right}this.effects.start(B)}});BackgroundSlider.implement(new Options);BackgroundSlider.implement(new Events);