app/bower_components/jquery-waypoints/shortcuts/sticky-elements/waypoints-sticky.js
// Generated by CoffeeScript 1.6.2
/*
Sticky Elements Shortcut for jQuery Waypoints - v2.0.5
Copyright (c) 2011-2014 Caleb Troughton
Licensed under the MIT license.
https://github.com/imakewebthings/jquery-waypoints/blob/master/licenses.txt
*/
(function() {
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
return define(['jquery', 'waypoints'], factory);
} else {
return factory(root.jQuery);
}
})(window, function($) {
var defaults, wrap;
defaults = {
wrapper: '<div class="sticky-wrapper" />',
stuckClass: 'stuck',
direction: 'down right'
};
wrap = function($elements, options) {
var $parent;
$elements.wrap(options.wrapper);
$parent = $elements.parent();
return $parent.data('isWaypointStickyWrapper', true);
};
$.waypoints('extendFn', 'sticky', function(opt) {
var $wrap, options, originalHandler;
options = $.extend({}, $.fn.waypoint.defaults, defaults, opt);
$wrap = wrap(this, options);
originalHandler = options.handler;
options.handler = function(direction) {
var $sticky, shouldBeStuck;
$sticky = $(this).children(':first');
shouldBeStuck = options.direction.indexOf(direction) !== -1;
$sticky.toggleClass(options.stuckClass, shouldBeStuck);
$wrap.height(shouldBeStuck ? $sticky.outerHeight() : '');
if (originalHandler != null) {
return originalHandler.call(this, direction);
}
};
$wrap.waypoint(options);
return this.data('stuckClass', options.stuckClass);
});
return $.waypoints('extendFn', 'unsticky', function() {
var $parent;
$parent = this.parent();
if (!$parent.data('isWaypointStickyWrapper')) {
return this;
}
$parent.waypoint('destroy');
this.unwrap();
return this.removeClass(this.data('stuckClass'));
});
});
}).call(this);