   # @method triggerEvents
   # @public
 
-  triggerEvents: (event) ->
+  _triggerEvents: (event, el) ->
     event = event.split /\s+/
     if event.length == 1
       event = event[0]
       evt = new CustomEvent event, bubbles: true, clientX: 0, clientY: 0
-      if @gazeEl isnt null then @gazeEl.dispatchEvent(evt)
+      if el isnt null then el.dispatchEvent(evt)
     else
       for e in event
         @triggerEvents e
+
+
+
+  _resetFixationTimer: ->
+    clearTimeout @fixationTimer
+    @fixationTimer = setTimeout =>
+      @fixatedEl = @gazeEl
+      if @fixatedEl is null then return
+      @fixatedEl.setAttribute 'data-eyejs-fixated', ''
+      @triggerEvents 'fixation'
+      @emit 'fixation', @fixatedEl
+    , FIXATION_TIME
+
 
   ##
   # Handles gaze event. If the current gaze element is unchanged, then


    @blinks = new BlinkController

    @blinks.on 'open', (timeClosed) =>
      @triggerEvents 'eyesopen'
      if timeClosed > 400 and timeClosed < 1000
        @triggerEvents 'blink click'

    @blinks.on 'close', =>
      @triggerEvents 'eyesclose'

    # The last frame received.

        @blinks.pushClose()
    , 100


  triggerGazeEvents: (event) ->
    @_triggerEvents(event, @gazeEl)


  triggerEvents: (event) ->
    @_triggerEvents(event, @fixatedEl)




  ##
  # This method triggers space-separated event names on the current gaze
  # element.
