{"version":3,"sources":["waypoints.js"],"names":["__indexOf","indexOf","item","i","l","this","length","__slice","slice","root","factory","define","amd","$","jQuery","window","$w","Context","Waypoint","allWaypoints","contextCounter","contextKey","contexts","isTouch","jQMethods","methods","resizeEvent","scrollEvent","waypointCounter","waypointKey","wp","wps","call","horizontal","vertical","$element","_this","element","didResize","didScroll","id","oldScroll","x","scrollLeft","y","scrollTop","waypoints","data","bind","scrollHandler","doScroll","setTimeout","settings","scrollThrottle","resizeHandler","resizeThrottle","prototype","axes","newScroll","forward","backward","each","aKey","axis","direction","isForward","triggered","wKey","waypoint","_ref","_ref1","offset","push","sort","a","b","reverse","options","continuous","trigger","refresh","cOffset","isWin","isWindow","contextOffset","left","contextScroll","contextDimension","width","offsetProp","top","height","adjustment","elementOffset","oldOffset","isFunction","apply","parseFloat","Math","ceil","onlyOnScroll","enabled","checkEmpty","isEmptyObject","unbind","join","context","idList","extend","fn","defaults","contextHeight","outerHeight","callback","handler","args","triggerOnce","destroy","disable","enable","getWaypointsByElement","all","ids","map","init","f","$this","contextElement","closest","_invoke","prev","selector","_traverse","stack","index","next","aggregate","inArray","pushStack","$elements","method","arguments","isPlainObject","error","viewportHeight","innerHeight","contextSelector","collection","arr","key","unique","above","_filter","below","right","extendFn","methodName","test","load"],"mappings":"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","file":"../waypoints.min.js","sourcesContent":["// Generated by CoffeeScript 1.6.2\n/*\njQuery Waypoints - v2.0.3\nCopyright (c) 2011-2013 Caleb Troughton\nDual licensed under the MIT license and GPL license.\nhttps://github.com/imakewebthings/jquery-waypoints/blob/master/licenses.txt\n*/\n\n\n(function() {\n var __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },\n __slice = [].slice;\n\n (function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n return define('waypoints', ['jquery'], function($) {\n return factory($, root);\n });\n } else {\n return factory(root.jQuery, root);\n }\n })(this, function($, window) {\n var $w, Context, Waypoint, allWaypoints, contextCounter, contextKey, contexts, isTouch, jQMethods, methods, resizeEvent, scrollEvent, waypointCounter, waypointKey, wp, wps;\n\n $w = $(window);\n isTouch = __indexOf.call(window, 'ontouchstart') >= 0;\n allWaypoints = {\n horizontal: {},\n vertical: {}\n };\n contextCounter = 1;\n contexts = {};\n contextKey = 'waypoints-context-id';\n resizeEvent = 'resize.waypoints';\n scrollEvent = 'scroll.waypoints';\n waypointCounter = 1;\n waypointKey = 'waypoints-waypoint-ids';\n wp = 'waypoint';\n wps = 'waypoints';\n Context = (function() {\n function Context($element) {\n var _this = this;\n\n this.$element = $element;\n this.element = $element[0];\n this.didResize = false;\n this.didScroll = false;\n this.id = 'context' + contextCounter++;\n this.oldScroll = {\n x: $element.scrollLeft(),\n y: $element.scrollTop()\n };\n this.waypoints = {\n horizontal: {},\n vertical: {}\n };\n $element.data(contextKey, this.id);\n contexts[this.id] = this;\n $element.bind(scrollEvent, function() {\n var scrollHandler;\n\n if (!(_this.didScroll || isTouch)) {\n _this.didScroll = true;\n scrollHandler = function() {\n _this.doScroll();\n return _this.didScroll = false;\n };\n return window.setTimeout(scrollHandler, $[wps].settings.scrollThrottle);\n }\n });\n $element.bind(resizeEvent, function() {\n var resizeHandler;\n\n if (!_this.didResize) {\n _this.didResize = true;\n resizeHandler = function() {\n $[wps]('refresh');\n return _this.didResize = false;\n };\n return window.setTimeout(resizeHandler, $[wps].settings.resizeThrottle);\n }\n });\n }\n\n Context.prototype.doScroll = function() {\n var axes,\n _this = this;\n\n axes = {\n horizontal: {\n newScroll: this.$element.scrollLeft(),\n oldScroll: this.oldScroll.x,\n forward: 'right',\n backward: 'left'\n },\n vertical: {\n newScroll: this.$element.scrollTop(),\n oldScroll: this.oldScroll.y,\n forward: 'down',\n backward: 'up'\n }\n };\n if (isTouch && (!axes.vertical.oldScroll || !axes.vertical.newScroll)) {\n $[wps]('refresh');\n }\n $.each(axes, function(aKey, axis) {\n var direction, isForward, triggered;\n\n triggered = [];\n isForward = axis.newScroll > axis.oldScroll;\n direction = isForward ? axis.forward : axis.backward;\n $.each(_this.waypoints[aKey], function(wKey, waypoint) {\n var _ref, _ref1;\n\n if ((axis.oldScroll < (_ref = waypoint.offset) && _ref <= axis.newScroll)) {\n return triggered.push(waypoint);\n } else if ((axis.newScroll < (_ref1 = waypoint.offset) && _ref1 <= axis.oldScroll)) {\n return triggered.push(waypoint);\n }\n });\n triggered.sort(function(a, b) {\n return a.offset - b.offset;\n });\n if (!isForward) {\n triggered.reverse();\n }\n return $.each(triggered, function(i, waypoint) {\n if (waypoint.options.continuous || i === triggered.length - 1) {\n return waypoint.trigger([direction]);\n }\n });\n });\n return this.oldScroll = {\n x: axes.horizontal.newScroll,\n y: axes.vertical.newScroll\n };\n };\n\n Context.prototype.refresh = function() {\n var axes, cOffset, isWin,\n _this = this;\n\n isWin = $.isWindow(this.element);\n cOffset = this.$element.offset();\n this.doScroll();\n axes = {\n horizontal: {\n contextOffset: isWin ? 0 : cOffset.left,\n contextScroll: isWin ? 0 : this.oldScroll.x,\n contextDimension: this.$element.width(),\n oldScroll: this.oldScroll.x,\n forward: 'right',\n backward: 'left',\n offsetProp: 'left'\n },\n vertical: {\n contextOffset: isWin ? 0 : cOffset.top,\n contextScroll: isWin ? 0 : this.oldScroll.y,\n contextDimension: isWin ? $[wps]('viewportHeight') : this.$element.height(),\n oldScroll: this.oldScroll.y,\n forward: 'down',\n backward: 'up',\n offsetProp: 'top'\n }\n };\n return $.each(axes, function(aKey, axis) {\n return $.each(_this.waypoints[aKey], function(i, waypoint) {\n var adjustment, elementOffset, oldOffset, _ref, _ref1;\n\n adjustment = waypoint.options.offset;\n oldOffset = waypoint.offset;\n elementOffset = $.isWindow(waypoint.element) ? 0 : waypoint.$element.offset()[axis.offsetProp];\n if ($.isFunction(adjustment)) {\n adjustment = adjustment.apply(waypoint.element);\n } else if (typeof adjustment === 'string') {\n adjustment = parseFloat(adjustment);\n if (waypoint.options.offset.indexOf('%') > -1) {\n adjustment = Math.ceil(axis.contextDimension * adjustment / 100);\n }\n }\n waypoint.offset = elementOffset - axis.contextOffset + axis.contextScroll - adjustment;\n if ((waypoint.options.onlyOnScroll && (oldOffset != null)) || !waypoint.enabled) {\n return;\n }\n if (oldOffset !== null && (oldOffset < (_ref = axis.oldScroll) && _ref <= waypoint.offset)) {\n return waypoint.trigger([axis.backward]);\n } else if (oldOffset !== null && (oldOffset > (_ref1 = axis.oldScroll) && _ref1 >= waypoint.offset)) {\n return waypoint.trigger([axis.forward]);\n } else if (oldOffset === null && axis.oldScroll >= waypoint.offset) {\n return waypoint.trigger([axis.forward]);\n }\n });\n });\n };\n\n Context.prototype.checkEmpty = function() {\n if ($.isEmptyObject(this.waypoints.horizontal) && $.isEmptyObject(this.waypoints.vertical)) {\n this.$element.unbind([resizeEvent, scrollEvent].join(' '));\n return delete contexts[this.id];\n }\n };\n\n return Context;\n\n })();\n Waypoint = (function() {\n function Waypoint($element, context, options) {\n var idList, _ref;\n\n options = $.extend({}, $.fn[wp].defaults, options);\n if (options.offset === 'bottom-in-view') {\n options.offset = function() {\n var contextHeight;\n\n contextHeight = $[wps]('viewportHeight');\n if (!$.isWindow(context.element)) {\n contextHeight = context.$element.height();\n }\n return contextHeight - $(this).outerHeight();\n };\n }\n this.$element = $element;\n this.element = $element[0];\n this.axis = options.horizontal ? 'horizontal' : 'vertical';\n this.callback = options.handler;\n this.context = context;\n this.enabled = options.enabled;\n this.id = 'waypoints' + waypointCounter++;\n this.offset = null;\n this.options = options;\n context.waypoints[this.axis][this.id] = this;\n allWaypoints[this.axis][this.id] = this;\n idList = (_ref = $element.data(waypointKey)) != null ? _ref : [];\n idList.push(this.id);\n $element.data(waypointKey, idList);\n }\n\n Waypoint.prototype.trigger = function(args) {\n if (!this.enabled) {\n return;\n }\n if (this.callback != null) {\n this.callback.apply(this.element, args);\n }\n if (this.options.triggerOnce) {\n return this.destroy();\n }\n };\n\n Waypoint.prototype.disable = function() {\n return this.enabled = false;\n };\n\n Waypoint.prototype.enable = function() {\n this.context.refresh();\n return this.enabled = true;\n };\n\n Waypoint.prototype.destroy = function() {\n delete allWaypoints[this.axis][this.id];\n delete this.context.waypoints[this.axis][this.id];\n return this.context.checkEmpty();\n };\n\n Waypoint.getWaypointsByElement = function(element) {\n var all, ids;\n\n ids = $(element).data(waypointKey);\n if (!ids) {\n return [];\n }\n all = $.extend({}, allWaypoints.horizontal, allWaypoints.vertical);\n return $.map(ids, function(id) {\n return all[id];\n });\n };\n\n return Waypoint;\n\n })();\n methods = {\n init: function(f, options) {\n var _ref;\n\n if (options == null) {\n options = {};\n }\n if ((_ref = options.handler) == null) {\n options.handler = f;\n }\n this.each(function() {\n var $this, context, contextElement, _ref1;\n\n $this = $(this);\n contextElement = (_ref1 = options.context) != null ? _ref1 : $.fn[wp].defaults.context;\n if (!$.isWindow(contextElement)) {\n contextElement = $this.closest(contextElement);\n }\n contextElement = $(contextElement);\n context = contexts[contextElement.data(contextKey)];\n if (!context) {\n context = new Context(contextElement);\n }\n return new Waypoint($this, context, options);\n });\n $[wps]('refresh');\n return this;\n },\n disable: function() {\n return methods._invoke(this, 'disable');\n },\n enable: function() {\n return methods._invoke(this, 'enable');\n },\n destroy: function() {\n return methods._invoke(this, 'destroy');\n },\n prev: function(axis, selector) {\n return methods._traverse.call(this, axis, selector, function(stack, index, waypoints) {\n if (index > 0) {\n return stack.push(waypoints[index - 1]);\n }\n });\n },\n next: function(axis, selector) {\n return methods._traverse.call(this, axis, selector, function(stack, index, waypoints) {\n if (index < waypoints.length - 1) {\n return stack.push(waypoints[index + 1]);\n }\n });\n },\n _traverse: function(axis, selector, push) {\n var stack, waypoints;\n\n if (axis == null) {\n axis = 'vertical';\n }\n if (selector == null) {\n selector = window;\n }\n waypoints = jQMethods.aggregate(selector);\n stack = [];\n this.each(function() {\n var index;\n\n index = $.inArray(this, waypoints[axis]);\n return push(stack, index, waypoints[axis]);\n });\n return this.pushStack(stack);\n },\n _invoke: function($elements, method) {\n $elements.each(function() {\n var waypoints;\n\n waypoints = Waypoint.getWaypointsByElement(this);\n return $.each(waypoints, function(i, waypoint) {\n waypoint[method]();\n return true;\n });\n });\n return this;\n }\n };\n $.fn[wp] = function() {\n var args, method;\n\n method = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n if (methods[method]) {\n return methods[method].apply(this, args);\n } else if ($.isFunction(method)) {\n return methods.init.apply(this, arguments);\n } else if ($.isPlainObject(method)) {\n return methods.init.apply(this, [null, method]);\n } else if (!method) {\n return $.error(\"jQuery Waypoints needs a callback function or handler option.\");\n } else {\n return $.error(\"The \" + method + \" method does not exist in jQuery Waypoints.\");\n }\n };\n $.fn[wp].defaults = {\n context: window,\n continuous: true,\n enabled: true,\n horizontal: false,\n offset: 0,\n triggerOnce: false\n };\n jQMethods = {\n refresh: function() {\n return $.each(contexts, function(i, context) {\n return context.refresh();\n });\n },\n viewportHeight: function() {\n var _ref;\n\n return (_ref = window.innerHeight) != null ? _ref : $w.height();\n },\n aggregate: function(contextSelector) {\n var collection, waypoints, _ref;\n\n collection = allWaypoints;\n if (contextSelector) {\n collection = (_ref = contexts[$(contextSelector).data(contextKey)]) != null ? _ref.waypoints : void 0;\n }\n if (!collection) {\n return [];\n }\n waypoints = {\n horizontal: [],\n vertical: []\n };\n $.each(waypoints, function(axis, arr) {\n $.each(collection[axis], function(key, waypoint) {\n return arr.push(waypoint);\n });\n arr.sort(function(a, b) {\n return a.offset - b.offset;\n });\n waypoints[axis] = $.map(arr, function(waypoint) {\n return waypoint.element;\n });\n return waypoints[axis] = $.unique(waypoints[axis]);\n });\n return waypoints;\n },\n above: function(contextSelector) {\n if (contextSelector == null) {\n contextSelector = window;\n }\n return jQMethods._filter(contextSelector, 'vertical', function(context, waypoint) {\n return waypoint.offset <= context.oldScroll.y;\n });\n },\n below: function(contextSelector) {\n if (contextSelector == null) {\n contextSelector = window;\n }\n return jQMethods._filter(contextSelector, 'vertical', function(context, waypoint) {\n return waypoint.offset > context.oldScroll.y;\n });\n },\n left: function(contextSelector) {\n if (contextSelector == null) {\n contextSelector = window;\n }\n return jQMethods._filter(contextSelector, 'horizontal', function(context, waypoint) {\n return waypoint.offset <= context.oldScroll.x;\n });\n },\n right: function(contextSelector) {\n if (contextSelector == null) {\n contextSelector = window;\n }\n return jQMethods._filter(contextSelector, 'horizontal', function(context, waypoint) {\n return waypoint.offset > context.oldScroll.x;\n });\n },\n enable: function() {\n return jQMethods._invoke('enable');\n },\n disable: function() {\n return jQMethods._invoke('disable');\n },\n destroy: function() {\n return jQMethods._invoke('destroy');\n },\n extendFn: function(methodName, f) {\n return methods[methodName] = f;\n },\n _invoke: function(method) {\n var waypoints;\n\n waypoints = $.extend({}, allWaypoints.vertical, allWaypoints.horizontal);\n return $.each(waypoints, function(key, waypoint) {\n waypoint[method]();\n return true;\n });\n },\n _filter: function(selector, axis, test) {\n var context, waypoints;\n\n context = contexts[$(selector).data(contextKey)];\n if (!context) {\n return [];\n }\n waypoints = [];\n $.each(context.waypoints[axis], function(i, waypoint) {\n if (test(context, waypoint)) {\n return waypoints.push(waypoint);\n }\n });\n waypoints.sort(function(a, b) {\n return a.offset - b.offset;\n });\n return $.map(waypoints, function(waypoint) {\n return waypoint.element;\n });\n }\n };\n $[wps] = function() {\n var args, method;\n\n method = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n if (jQMethods[method]) {\n return jQMethods[method].apply(null, args);\n } else {\n return jQMethods.aggregate.call(null, method);\n }\n };\n $[wps].settings = {\n resizeThrottle: 100,\n scrollThrottle: 30\n };\n return $w.load(function() {\n return $[wps]('refresh');\n });\n });\n\n}).call(this);\n"]}