                 .on 'mouseleave blur', (e) ->
                   $t.data 'hover', false if e.type is 'mouseleave'
                   _.Tooltip.hide $t
+              
+              # If the tooltip is 'hoverable' (aka it should stay while the mouse is over the tooltip itself)
               if $t.data('hoverable')? and not $t.data('mouse')?
                 $div.hover ->
                   _.Tooltip.show $t

        _.each obj, (val) -> val?[str]?(args...)
          
      # Initialize an object by calling init on children and then assigning the load method to jQuery's DOM ready call
      init: (obj) ->
        _.mass obj, 'init'
        $ -> _.load obj
        
      # Call on jQuery's DOM ready call
      load: (obj) ->
        _.mass obj, 'load'
        _.dom obj
        $('body').on 'DOMSubtreeModified', (e) -> _.dom obj, e unless obj.domLocked
        
      # Call on every DOMSubtreeModified event (use carefully, doesn't work in Opera *shocking*)
      dom: (obj, e) ->
        obj.domLocked = true
        _.mass obj, 'dom', e
        obj.domLocked = false
      
      # Clean a string for use in a URL or query
      clean: (str, opt={}) ->

                  $(@).data hover: false
                  _.Tooltip.hide $t
              else
              
                # Otherwise turn off interaction with the mouse
                $div.css
                  pointerEvents: 'none'
                  '-webkit-user-select': 'none'
                  '-moz-user-select': 'none'
                  userSelect: 'none'
                      
        # Show the tooltip if it's not already visible
        show: ($t) ->
