code: function(event) {
  		
  		var self = this,
  			ok = true;
  		
  		if (self.__state != 'stable' && self.__state != 'appearing') {
  			
  			// if a timeout is not already running
  			if (!self.__timeouts.open) {
  				
  				self._trigger({
  					type: 'start',
  					event: event,
  					stop: function() {
  						ok = false;
  					}
  				});
  				
  				if (ok) {
  					
  					var delay = (event.type.indexOf('touch') == 0) ?
  						self.__options.delayTouch :
  						self.__options.delay;
  					
  					if (delay[0]) {
  						
  						self.__timeouts.open = setTimeout(function() {
  							
  							self.__timeouts.open = null;
  							
  							// open only if the pointer (mouse or touch) is still over the origin.
  							// The check on the "meaningful event" can only be made here, after some
  							// time has passed (to know if the touch was a swipe or not)
  							if (self.__pointerIsOverOrigin && self._touchIsMeaningfulEvent(event)) {
  								
  								// signal that we go on
  								self._trigger('startend');
  								
  								self._open(event);
  							}
  							else {
  								// signal that we cancel
  								self._trigger('startcancel');
  							}
  						}, delay[0]);
  					}
  					else {
  						// signal that we go on
  						self._trigger('startend');
  						
  						self._open(event);
  					}
  				}
  			}
  		}
  		
  		return self;
  	}
docs: When using the mouseenter/touchstart open triggers, this function will
  schedule the opening of the tooltip after the delay, if there is one
  
  @param event
  @returns {self}
  @protected