     imageWait()
 
   slideFromLocation: ->
-    value = if this.isFile()
-      location.hash
-    else
-      location.pathname
-
-    Number(value.substr(1))
+    Number(location.hash.substr(1))
 
   handlePopState: (e) =>
-    this.advanceTo(if e.state then e.state.index else this.slideFromLocation())
+    this.advanceTo(this.slideFromLocation())
 
   handleClick: (e) =>
     this.advance() if e.target.tagName != 'A'

  advance: (offset = 1) =>
    this.advanceTo(Math.max(Math.min(@currentSlide + offset, @length - 1), 0))

  isFile: => location.href.slice(0, 4) == 'file'

  advanceTo: (index) =>
    @priorSlide = @currentSlide
    @currentSlide = index || 0

    this.calculate()

    if this.isFile()
      location.hash = @currentSlide
    else
      history.pushState({ index: @currentSlide }, '', @currentSlide)

  calculate: =>
    if @currentWindowHeight != window.innerHeight

    @_slidesViewer ||= document.querySelector(@identifier)

  start: ->
    @timer.render()

    document.addEventListener('click', @handleClick, false)
