var BackgroundSlider=new Class({getOptions:function(){return{duration:300,wait:500,transition:Fx.Transitions.sineInOut,className:!1,fixHeight:!1,fixWidth:!1,id:!1,padding:{top:0,right:0,bottom:0,left:0},onClick:this.setStart,mouseOver:!0}},initialize:function(a,b){this.setOptions(this.getOptions(),b);this.elements=$$(a);this.timer=0;this.options.id?this.bg=$(this.options.id):(this.bg=(new Element("div")).setProperty("id","BgSlider_"+(new Date).getTime()).injectInside(document.body),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(a){this.options.mouseOver&&(a.addEvent("mouseover",this.move.bind(this,a)),a.addEvent("mouseout",this.reset.bind(this)));a.addEvent("click",this.options.onClick.bind(this,a));a.hasClass("bgStart")&&this.set(a)},this);window.addEvent("resize",function(){this.move(this.startElement)}.bind(this))},setStart:function(a){this.startElement= a},set:function(a){this.setStart(a);a=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=a.top-this.options.padding.top+"px";b.left=a.left-this.options.padding.left+"px";if(!this.options.fixHeight)b.height= a.height+this.options.padding.top+this.options.padding.bottom+"px";if(!this.options.fixWidth)b.width=a.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);a=a.getCoordinates();this.effects.stop();var b={};b.top=a.top-this.options.padding.top;b.left=a.left-this.options.padding.left;if(!this.options.fixHeight)b.height=a.height+ this.options.padding.top+this.options.padding.bottom;if(!this.options.fixWidth)b.width=a.width+this.options.padding.left+this.options.padding.right;this.effects.start(b)}});BackgroundSlider.implement(new Options);BackgroundSlider.implement(new Events);
