var ToolTip=new Class({
    initialize:function(trigger,content,options){
        this.setOptions({
            duration:300,
            transition:Fx.Transitions.linear,
            wait:false,
            tooltipClass:'yoo-tooltip',
            style:'default',
            width:50,
            display:'inline',
            mode:'cursor',
            sticky:0
        },options);this.open=false;this.trigger=$(trigger);this.trigger.setStyles(this.triggerstyles());this.tooltip=new Element('div',{
            'class':this.options.tooltipClass,
            'styles':{
                'position':'absolute',
                'top':0,
                'left':0,
                'z-index':10,
                'visibility':'hidden',
                'width':this.options.width
                }
            }).injectTop(document.body);this.tooltip_style=new Element('div',{
            'class':this.options.style
            }).injectInside(this.tooltip);this.tooltip_tl=new Element('div',{
            'class':'tooltip-tl',
            'styles':{
                'width':this.options.width
                }
            }).injectInside(this.tooltip_style);this.tooltip_tr=new Element('div',{
            'class':'tooltip-tr'
        }).injectInside(this.tooltip_tl);this.tooltip_t=new Element('div',{
            'class':'tooltip-t',
            'styles':{
                'height':15
            }
            }).injectInside(this.tooltip_tr);this.tooltip_l=new Element('div',{
            'class':'tooltip-l',
            'styles':{
                'width':this.options.width
                }
            }).injectAfter(this.tooltip_tl);this.tooltip_r=new Element('div',{
            'class':'tooltip-r'
        }).injectInside(this.tooltip_l);this.tooltip_m=new Element('div',{
            'class':'tooltip-m'
        }).injectInside(this.tooltip_r).setHTML(content);this.tooltip_bl=new Element('div',{
            'class':'tooltip-bl',
            'styles':{
                'width':this.options.width
                }
            }).injectAfter(this.tooltip_l);this.tooltip_br=new Element('div',{
            'class':'tooltip-br'
        }).injectInside(this.tooltip_bl);this.tooltip_b=new Element('div',{
            'class':'tooltip-b'
        }).injectInside(this.tooltip_br);this.tooltip_arrow=new Element('div',{
            'class':'tooltip-arrow',
            'styles':{
                'height':23
            }
            }).injectInside(this.tooltip_b);if(this.options.sticky){
            this.close=new Element('div',{
                'class':'tooltip-close'
            }).injectInside(this.tooltip_tl)
            }this.fx=new Fx.Styles(this.tooltip,this.options);this.trigger.addEvent('mouseenter',this.show.bindWithEvent(this));if(this.options.sticky){
            this.close.addEvent('mouseenter',this.hide.bindWithEvent(this))
            }else{
            this.trigger.addEvent('mouseleave',this.hide.bindWithEvent(this))
            }
        },
    show:function(event){
        if(!this.open){
            this.pos=this.position(event);this.tooltip.setStyles({
                'opacity':0,
                'top':this.pos.top+'px',
                'left':this.pos.left+'px'
                });this.fx.start({
                'opacity':1,
                'top':(this.pos.top-10)+'px'
                });this.open=true
            }
        },
    hide:function(event){
        this.fx.start({
            'opacity':0,
            'top':(this.pos.top-20)+'px'
            });this.open=false
        },
    position:function(event){
        var trg=this.trigger.getCoordinates();var tip=this.tooltip.getCoordinates();if(this.options.mode=='cursor'){
            var event=new Event(event);trg=$extend(trg,{
                'top':event.page.y,
                'left':event.page.x,
                'width':0
            })
            }return{
            'top':trg.top-(tip.height),
            'left':trg.left-(tip.width/2)+(trg.width/2)
            }
        },
    triggerstyles:function(){
        var styles={
            'display':this.options.display
            };if(!this.trigger.getFirst())return styles;var first=this.trigger.getFirst().getCoordinates();return $extend(styles,{
            'width':first.width
            })
        }
    });ToolTip.implement(new Options);