var Tooltips=Class.create();Tooltips.prototype={initialize:function(a,b){var c=$$(a);c.each(function(d){new Tooltip(d,b)})}};var Tooltip=Class.create();Tooltip.prototype={initialize:function(b,a){this.el=$(b);this.initialized=false;this.setOptions(a);this.showEvent=this.show.bindAsEventListener(this);this.hideEvent=this.hide.bindAsEventListener(this);this.updateEvent=this.update.bindAsEventListener(this);Event.observe(this.el,"mouseover",this.showEvent);Event.observe(this.el,"mouseout",this.hideEvent);this.content=this.el.title.stripScripts().strip();this.el.title="";this.el.descendants().each(function(c){if(Element.readAttribute(c,"alt")){c.alt=""}})},setOptions:function(a){this.options={backgroundColor:"#999",borderColor:"#666",textColor:"",textShadowColor:"",maxWidth:250,align:"left",delay:0,mouseFollow:true,opacity:1,appearDuration:0.25,hideDuration:0.25};Object.extend(this.options,a||{})},show:function(a){this.xCord=Event.pointerX(a);this.yCord=Event.pointerY(a);if(!this.initialized){this.timeout=window.setTimeout(this.appear.bind(this),this.options.delay)}},hide:function(a){if(this.initialized){this.appearingFX.cancel();if(this.options.mouseFollow){Event.stopObserving(this.el,"mousemove",this.updateEvent)}new Effect.Fade(this.tooltip,{duration:this.options.hideDuration,afterFinish:function(){Element.remove(this.tooltip)}.bind(this)})}this._clearTimeout(this.timeout);this.initialized=false},update:function(a){this.xCord=Event.pointerX(a);this.yCord=Event.pointerY(a);this.setup()},appear:function(){this.tooltip=new Element("div",{className:"tooltip",style:"display: none"});var c=new Element("div",{className:"xarrow"}).insert('<b class="a1"></b><b class="a2"></b><b class="a3"></b><b class="a4"></b><b class="a5"></b><b class="a6"></b>');var d=new Element("div",{className:"xtop"}).insert(new Element("div",{className:"xb1",style:"background-color:"+this.options.borderColor+";"})).insert(new Element("div",{className:"xb2",style:"background-color:"+this.options.backgroundColor+"; border-color:"+this.options.borderColor+";"})).insert(new Element("div",{className:"xb3",style:"background-color:"+this.options.backgroundColor+"; border-color:"+this.options.borderColor+";"})).insert(new Element("div",{className:"xb4",style:"background-color:"+this.options.backgroundColor+"; border-color:"+this.options.borderColor+";"}));var a=new Element("div",{className:"xbottom"}).insert(new Element("div",{className:"xb4",style:"background-color:"+this.options.backgroundColor+"; border-color:"+this.options.borderColor+";"})).insert(new Element("div",{className:"xb3",style:"background-color:"+this.options.backgroundColor+"; border-color:"+this.options.borderColor+";"})).insert(new Element("div",{className:"xb2",style:"background-color:"+this.options.backgroundColor+"; border-color:"+this.options.borderColor+";"})).insert(new Element("div",{className:"xb1",style:"background-color:"+this.options.borderColor+";"}));var b=new Element("div",{className:"xboxcontent",style:"background-color:"+this.options.backgroundColor+"; border-color:"+this.options.borderColor+((this.options.textColor!="")?"; color:"+this.options.textColor:"")+((this.options.textShadowColor!="")?"; text-shadow:2px 2px 0"+this.options.textShadowColor+";":"")}).update(this.content);this.tooltip.insert(c).insert(d).insert(b).insert(a);$(document.body).insert({top:this.tooltip});this.tooltip.select(".xarrow b").each(function(e){if(!e.hasClassName("a1")){e.setStyle({backgroundColor:this.options.backgroundColor,borderColor:this.options.borderColor})}else{e.setStyle({backgroundColor:this.options.borderColor})}}.bind(this));Element.extend(this.tooltip);this.options.width=this.tooltip.getWidth()+1;this.tooltip.style.width=this.options.width+"px";this.setup();if(this.options.mouseFollow){Event.observe(this.el,"mousemove",this.updateEvent)}this.initialized=true;this.appearingFX=new Effect.Appear(this.tooltip,{duration:this.options.appearDuration,to:this.options.opacity})},setup:function(){if(this.options.width>this.options.maxWidth){this.options.width=this.options.maxWidth;this.tooltip.style.width=this.options.width+"px"}if(this.xCord+this.options.width>=Element.getWidth(document.body)){this.options.align="right";this.xCord=this.xCord-this.options.width+20;this.tooltip.down(".xarrow").setStyle({left:this.options.width-24+"px"})}else{this.options.align="left";this.tooltip.down(".xarrow").setStyle({left:12+"px"})}this.tooltip.style.left=this.xCord-7+"px";this.tooltip.style.top=this.yCord+12+"px"},_clearTimeout:function(a){clearTimeout(a);clearInterval(a);return null}};
