//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
  });
}
