var ToolTip=new Class({Implements:[Options],options:{container:null,hovered:null,tips:null,ToolTipClass:"ToolTips",followMouse:false,sticky:false,fromTop:15,fromLeft:0,duration:300,fadeDistance:20},initialize:function(A){this.setOptions(A);if(!$(this.options.container)){return}this.elements=$(this.options.container).getElements(this.options.hovered);this.tips=$(this.options.container).getElements(this.options.tips);this.start();this.visible=0;this.currentElement=null},start:function(){this.createContainer();this.fx=new Fx.Morph(this.container,{duration:this.options.duration,wait:false,transition:Fx.Transitions.Sine.easeOut});this.elements.each(function(B,A){B.addEvent(this.options.followMouse?"mousemove":"mouseenter",function(C){this.currentElement=A;this.showToolTip(C)}.bind(this));B.erase("title");if(!this.options.sticky){B.addEvent("mouseleave",this.hideToolTip.bind(this))}else{this.closeTip=new Element("a",{"class":"sticky_close",href:"#",styles:{position:"absolute",top:3,right:3}});this.closeTip.injectInside(this.header);this.closeTip.addEvent("click",this.hideToolTip.bind(this))}}.bind(this))},showToolTip:function(B){var B=new Event(B);this.message.set({html:this.tips[this.currentElement].get("html")});this.elemHeight=this.options.followMouse?0:this.elements[this.currentElement].getCoordinates().height;this.top=this.options.followMouse?B.client.y:this.elements[this.currentElement].getPosition().y;var C=this.options.followMouse?B.client.x:this.elements[this.currentElement].getPosition().x;var A=this.visible==1?this.top+this.options.fromTop+this.elemHeight:this.top+this.options.fromTop+this.elemHeight+this.options.fadeDistance;this.container.setStyles({top:A,left:C+this.options.fromLeft,display:"block","z-index":"110000"});this.fx.start({opacity:1,top:this.top+this.options.fromTop+this.elemHeight});this.visible=1},hideToolTip:function(A){new Event(A).stop();this.container.setStyles({"z-index":"100000"});this.fx.start({opacity:0,top:this.top+this.options.fromTop+this.elemHeight+this.options.fadeDistance});this.visible=0},createContainer:function(){this.container=new Element("div").set({"class":this.options.ToolTipClass,styles:{position:"absolute",opacity:0,display:"none","z-index":"100000"}}).injectInside(document.body);this.header=new Element("div").set({"class":"top"});this.message=new Element("div").set({"class":"message"});this.footer=new Element("div").set({"class":"footer"});this.container.adopt(this.header,this.message,this.footer)},alert:function(A){$("debug").innerHTML+="<br>"+A}});
