/*globals define*/

/**
 * ep/fn/scrollbeyond
 * @param  {Object}     ep [ep object]
 * @return {Object}     ep
 */
define('ep/fn/scrollbeyond', ['ep'], function (ep) {
    'use strict';

    /**
     * onScrollBeyond
     * @param   {Object} callback    executed when content reaches end of container
     * @usage   (domnode_to_scroll).onScrollBeyond(callback);
     */
    ep.fn.onScrollBeyond = function (callback) {

        var target = ep(this),
            innerWrap = target.wrapInner('<div class="ep-scrollbeyond-container" />').find('.ep-scrollbeyond-container');

        target.on('scroll', function (e) {

            var fire = (target.scrollTop() > (innerWrap.height() - target.height()))
                ? callback.call(this)
                : false;
        });
    };

    return ep;
});