//Licensed to the Apache Software Foundation (ASF) under one or more
//contributor license agreements.  See the NOTICE file distributed with
//this work for additional information regarding copyright ownership.
//The ASF licenses this file to You under the Apache License, Version 2.0
//(the "License"); you may not use this file except in compliance with
//the License.  You may obtain a copy of the License at
//
//http://www.apache.org/licenses/LICENSE-2.0
//
//Unless required by applicable law or agreed to in writing, software
//distributed under the License is distributed on an "AS IS" BASIS,
//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
//express or implied. See the License for the specific language governing
//permissions and limitations under the License.
//
// Declare your book-specific javascript overrides in this file.
//= require 'waypoints/waypoint'
//= require 'waypoints/context'
//= require 'waypoints/group'
//= require 'waypoints/noframeworkAdapter'
//= require 'waypoints/sticky'

window.onload = function() {
  Bookbinder.boot();
  var sticky = new Waypoint.Sticky({
    element: document.querySelector('#js-to-top'),
    wrapper: '<div class="sticky-wrapper" />',
    stuckClass: 'sticky',
    offset: 100
  });
}
