 
     y_pos
 
-
-
+#####
+# realDimensions
+#
+# Calculates the true height and top of an element by accounting for all 
+# absolutely positioned child elements. 
+#
+# This method is expensive, use it sparingly.
 realDimensions = ($el) -> 
 
   recurse = ($e, min_top, max_top) -> 

  onScroll : (e) -> 
    scroller.viewport_top = document.documentElement.scrollTop || document.body.scrollTop

    # Determine stacking order based on the y position at which 
    # the sticky was mounted. 
    sorted_by_original_y = ( [k, v()] for own k,v of scroller.registry)
    sorted_by_original_y.sort (a,b) -> a.stack_priority - b.stack_priority

    [stuck, unstuck] = scroller.determineIfStuck sorted_by_original_y

    for [k,v] in unstuck
      sticky = fetch(k)
      if sticky.stuck
        sticky.stuck = false
        stuck.y = null
        save sticky
        console.log "Toggled  #{k} to #{sticky.stuck}"

        if v.stuck_key?
          external_stuck = fetch(v.stuck_key)
          external_stuck.stuck = false
          save external_stuck

    if stuck.length > 0
      stuck_with_values = _.filter sorted_by_original_y, (s) -> s[0] in (k for [k,v] in stuck)
      y_pos = scroller.calculateYPositions stuck_with_values

      for [k,v] in stuck
        sticky = fetch k

        if !sticky.stuck
          sticky.stuck = true
          console.log "Toggled #{k} to #{sticky.stuck}"

          if v.stuck_key?
            external_stuck = fetch(v.stuck_key)
            external_stuck.stuck = true
            save external_stuck


        sticky.y = y_pos[k].value
        save sticky

    scroller.last_viewport_top = scroller.viewport_top

  #######
  # determineIfStuck


      if is_stuck
        y_stack += v.height
        stuck.push v.key
      else
        unstuck.push v.key

    [stuck, unstuck]

  #######
  # solveForY
  #
  # Helper method for onScroll that returns optimal y positions for
  # each stuck component. Optimal placement facilitated by the definition
