     CSS_ANIMATED_CLASS = 'has-animated'
     CSS_EXIT_CLASS = 'has-exited'
     DATA_OFFSET = 'offset'
+    DATA_REPEAT = 'scroll-repeat'
 
     constructor: (@$context, data) ->
         @context = @$context.get(0)
+        @repeat = @$context.data DATA_REPEAT or 0
         @$body = $(document.body)
+
+        @repeat = JSON.parse @repeat
 
         if data?.isPjax
             @$body.one FOURTEEN.PjaxNavigation.EVENT_ANIMATION_SHOWN, @addEventListeners

            @watcher.destroy()
            @watcher = null

    onEnterViewport: () =>
        return if @hasPartiallyPlayed
        @hasPartiallyPlayed = true
        @$context.addClass CSS_PARTIALLY_VISIBLE_CLASS

    onFullyEnterViewport: () =>
        return if @hasFullyPlayed
        @hasFullyPlayed = true
        @$context.addClass CSS_FULLY_VISIBLE_CLASS + " " + CSS_ANIMATE_CLASS

        animationEnd = FOURTEEN.Utils.whichAnimationEvent()

        return if @hasExited
        @hasExited = true
        @$context.addClass CSS_EXIT_CLASS
        if @repeat
            @reset()
        else if @hasPartiallyPlayed and @hasFullyPlayed
            @removeEventListeners()